Skip to content

Releases: DtxdF/director

v0.9.0

11 Jul 22:25
Compare
Choose a tag to compare

Changes between 0.8.0 and 0.9.0

  • Improved: definition of the "Ephemeral Concept".
  • Added: describe command.
  • Added: check command.
  • Fixed: indentation in src/director/__init__.py

Full Changelog: v0.8.0...v0.9.0

v0.8.0

11 Jan 17:28
Compare
Choose a tag to compare

Changes between 0.7.0 and 0.8.0

  • Added: reverse order in the down command (Destroying services in the opposite order of the up command is really important, especially when using volumes that depend on that order.).

Full Changelog: v0.7.0...v0.8.0

v0.7.0

20 Dec 21:26
Compare
Choose a tag to compare

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

07 Dec 09:00
Compare
Choose a tag to compare

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 when KeyboardInterrupt is throwed.
  • Supress output of the kill(1) command in director.jail._terminate().

Full Changelog: v0.6.0...v0.6.1

v0.6.0

03 Dec 08:29
Compare
Choose a tag to compare

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 the cached argument is implemented in director.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

02 Nov 17:26
Compare
Choose a tag to compare

Changes between 0.4.0 and 0.5.0

  • Improved: machinery to avoid hanging sub-processes:
    • Added: commands/timeout to configuration.
    • Set stdin to DEVNULL.
    • Set GIT_ASKPASS to true 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

27 Sep 12:34
Compare
Choose a tag to compare

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

26 Sep 07:37
Compare
Choose a tag to compare

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 named info.
  • 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

19 Aug 18:45
Compare
Choose a tag to compare

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

v0.2.0

19 Aug 15:22
Compare
Choose a tag to compare

Changes between 0.1.0 and 0.2.0

  • Added: lock feature to not execute up and down at the same time.
  • Added: more checks to recreate a jail:
    • Recreate a jail when its Makejail fails.
    • Recreate a jail when it fails starting.
  • Use the Director file to check if the project exists instead of the project directory (Assuming only the project directory maybe wrong since in a previous run the directory did successfully created, but the Director file did not.).
  • Fixed: error when changing the path to a different volume than the old one (When changing the path to a different volume than the old one for the nullfs types, the not a directory or does not exist. error is displayed as Director is checking both volumes for the new and old YAML file.).

Full Changelog: v0.1.0...v0.2.0