Releases: DtxdF/director
Releases · DtxdF/director
v0.10.0
Changes between 0.9.0 and 0.10.0
Updated
: Python version in README (thanks @imiguelsalcedo).Moved
note to the correct section.Fixed
URL to install AppJail.
Full Changelog: v0.9.0...v0.10.0
v0.9.0
Changes between 0.8.0 and 0.9.0
Improved
: definition of the "Ephemeral Concept".Added
:describe
command.Added
:check
command.Fixed
: indentation insrc/director/__init__.py
Full Changelog: v0.8.0...v0.9.0
v0.8.0
Changes between 0.7.0 and 0.8.0
Added
: reverse order in the down command (Destroying services in the opposite order of theup
command is really important, especially when using volumes that depend on that order.).
Full Changelog: v0.7.0...v0.8.0
v0.7.0
Changes between 0.6.1 and 0.7.0
- Create a directory when
<volumefs>
is used and it does not exist. Added
:default_volume_type
to the specification.- Remove dummy file 'fail' after creating the service (If the service fails somehow a dummy file called
fail
is created, but after recreating the service that file is not removed even if the service is created successfully, the problem is that every time director runs the project it sees that service as fail and recreates it every time). - Set environment variables as start arguments (Because from now on AppJail supports setting environment variables as start arguments which have the advantage of persisting after starting the jail, Director sets them as such).
Added
:start-environment
to the specification.
Full Changelog: v0.6.1...v0.7.0
v0.6.1
Changes between 0.6.0 and 0.6.1
FIXED
: inconsistencies of the jail name (Reading the current and next Director file to obtain the jail name is inconsistent when they are not checked, resulting in an invalid jail name, particularly when random names are used. More care is now applied to obtain the correct jail name.).FIXED
:director.jail._run()
return code whenKeyboardInterrupt
is throwed.- Supress output of the
kill(1)
command indirector.jail._terminate()
.
Full Changelog: v0.6.0...v0.6.1
v0.6.0
Changes between 0.5.0 and 0.6.0
- Stop the jail after KeyboardInterrupt.
Added
: signal handling.- Send
SIGTERM
signal after stopping the jail in KeywordInterrupt. - Ignore signals after execute the handler
Fixed
old link pointing to Unprivileged Users in AppJail README.Improved
: command execution:- Processes are not killed as AppJail has been enhanced to terminate its child processes and this operation may take a moment, so it should not be interrupted.
- Returns the exit code of a command when it fails instead of exiting.
- Allow timeout for non-root users.
- Terminate open processes before exiting.
- Allow non-root users to terminate processes (Since non-root users need AppJail configured to run unprivileged users, Director can take advantage of this to terminate the remaining processes.)
Fixed
unlock atexit handler (This handler is added before locking Director, which is incorrect since Director checks if it is already locking when it locks itself, so the lock file is removed by another process. To fix this problem, the handler is added after locking Director.).Fixed
:director.jail.is_dirty()
for when stdout is incorrectly.Fixed
cached jail name (The jail name is not updated in case the user changes it in the Director file, so thecached
argument is implemented indirector.project.get_jail_name()
to get the jail name without depending on the file containing it.).
Full Changelog: v0.5.0...v0.6.0
v0.5.0
Changes between 0.4.0 and 0.5.0
Improved
: machinery to avoid hanging sub-processes:Added
:commands/timeout
to configuration.- Set
stdin
toDEVNULL
. - Set
GIT_ASKPASS
totrue
to avoid hangings when authentication is required.
Added
:mode
to the specification.Added
:owner
&group
to the specification.Added
:umask
to the specification.- Keep the old random name of a service (Random names do not persist after recreating the service, which can be inconvenient, so random names now persist if they are not removed from the Director file.).
Fixed
:get_jail_name()
(get_jail_name()
throw the ServiceNotFound exception even when the jail exist in either the current or the next YAML file.)Added
:down --ignore-services
option.Fixed
: creating of device when it does not exist (device
is created as a directory when it does not exist, but this check is only against directories, which is an incorrect assumption, since a file can be used.).Changed
: default filesystem type to<pseudofs>
.Added
: support for pseudofs.
Full Changelog: v0.4.0...v0.5.0
v0.4.0
Changes between 0.3.0 and 0.4.0
Added
: checks for unknown keys.Added
: Convertion of non-string keys and values to strings.Added
:differ_options(...)
to detect when global options change from the previous one.
Full Changelog: v0.3.0...v0.4.0
v0.3.0
Changes between 0.2.1 and 0.3.0
Added
: instructions to install Director from FreeBSD repositories.Changed
: link to install AppJail in README (The old one points to the home page
instead of the installation instructions.).Changed
: base directory (Logs and project data are now stored in~/.director
which allows each user with permission to run AppJail to maintain their projects without conflicting with file system permissions.).Improved
: configuration file loading logic (More configuration files and methods for loading them are now taken into account.).Added
:remove_force
to configuration.Added
:remove_recursive
to configuration.Added
: support for environment variables (Director can now use environment variables
in your Director file and can also load them from a .env file.)Improved
: the checks to recreate a service (Director now performs more checks to recreate a service: when the Makejail modification time of the service changes, when the service differs from the old one, when the--overwrite
option is specified, when the service has previously failed, and when the project is new.).Added
:ignore_mtime
to the specification (To not perform the Makejail modification time test.)Changed
: StrictYAML to pyaml-env (StrictYAML is a great and technically good project and I am happy with it, but adding environment variables support using StrictYAML involves using strings for the old keys and creating a function to parse the value of such things to expand the environment variables, this means that StrictYAML is not taken advantage of and to not reinvent the wheel I use an external library, which is currently pyaml-env. This also improves performance as PyYAML is used as a backend to that library.).Added
:--env-file
option.Improved
: help messages.Fixed
: exit status code (All commands returned 0 even when returning a non-zero value, since click does not return them correctly. To fix this,sys.exit(...)
is used.)Added
:up --overwrite
option.Added
:down --ignored-failed
option.Added
:ls --state
option.- Move
ls -p <project>
as a single command namedinfo
. Added
: state support for projects.Added
:EX_OK
to sysexits module.Added
: "Ephemeral concept" in README.
Full Changelog: v0.2.1...v0.3.0
v0.2.1
Changes between 0.2.0 and 0.2.1
- Only successfully created projects are taken into account (A dummy file is used to check whether a project has been created correctly, in order to avoid the use of projects that are possibly broken due to failures or interrupted operations.).
Fixed
: up and down when checking if the project is locked.
Full Changelog: v0.2.0...v0.2.1