Skip to content

Latest commit

 

History

History
316 lines (233 loc) · 9.93 KB

CHANGELOG.md

File metadata and controls

316 lines (233 loc) · 9.93 KB

Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

2.13.1 - 2024-05-28

Fixed

  • Fixed SIGPIPE disposition being set to ignore (#255)

2.13.0 - 2024-03-25

Added

  • Added support for Python 3.12 (#244)
  • Add explicit support for mounting named volumes (#250)
    • This officially restores and extends the (unsupported) pre-v2.12 behavior.

Changed

  • Removed use of deprecated pkg_resources (#247)
  • Rewrote scubainit in Rust (#232)

2.12.0 - 2023-09-15

Added

  • Enable the use of relative paths in a volume hostpath (#227)

2.11.0 - 2023-09-09

Changed

  • Introduced pyproject.toml and moved metadata from setup.py (#211)
  • Added type annotations to scuba package and mypy checking in CI (#207)

Removed

  • Drop support for Python 3.5 - 3.6 (#205)

Fixed

  • Fixed bug causing invalid volume spec error on Docker 24.0.5 and newer (#217)

2.10.1 - 2023-03-07

Fixed

  • Create directories for volumes as invoking user rather than root. (#201)

2.10.0 - 2022-01-12

Added

  • Add ability to use environment variables in volume paths (#192)

2.9.0 - 2021-09-15

Added

  • Add ability to specify volumes in .scuba.yml (#186)

2.8.0 - 2021-08-18

Added

  • Add ability to specify additional docker arguments in .scuba.yml (#177)

Changed

  • Switched testing framework from from nose to pytest

2.7.0 - 2020-06-08

Changed

  • Switched to using argcomplete to provide Bash command line completion (#162)

2.6.1 - 2020-04-24

Fixed

  • scubainit ignores matching passwd/group/shadow file entries when creating the user. This allows transparently running scuba as root. (#164)
  • Fixed bug where scubainit incorrectly displayed the exit status of a failed hook script. (#165)
  • Fixed bug where user home directory was not writable when scuba workdir existed below the home directory. (#169)

2.6.0 - 2020-03-25

Added

  • Add ability to override the shell in which the scuba-generated script is run, via command line option (--shell) or via .scuba.yml (#159)
  • Add ability to specify in .scuba.yml that a particular alias should run as root (#159)

2.5.0 - 2020-03-05

Changed

  • Use username/groupname of invoking user inside container (#153)
  • Ignore already existing UID/GIDs (#139)
  • Allow top-level image to be omitted in .scuba.yml (#158)

Fixed

  • Fixed deprecation error with collections.Mapping (#156)

Removed

  • Drop support for Python 2 (#154)

2.4.2 - 2020-02-24

Changed

  • Use GitHub Actions instead of Travis CI for publishing releases

2.4.1 - 2020-02-21

Added

  • Cache yaml files loaded by !from_yaml

Removed

  • Drop support for Python 3.4

2.4.0 - 2020-01-06

Added

  • Enable scuba to override entrypoint via --entrypoint or .scuba.yml (#125)
  • Add support for nested scripts (#128)
  • Add SCUBA_ROOT environment variable (#129)
  • Add support for escaped dots in !from_yml (#137)

Changed

  • Don't run image entrypoint for each line in a mult-line alias (#121)
  • Use yaml.SafeLoader for loading config (#133)

Removed

  • Drop support for Python 2.6, 3.2, and 3.3 (#119, #130)

2.3.0 - 2018-09-10

Added

  • Add -e/--env command-line option (#111)
  • Add support for setting environment in .scuba.yml (#120)

Changed

  • Implemented auto-versioning using Git and Travis (#112)

Fixed

  • Copy scubainit to allow SELinux relabeling (#117)

2.2.0 - 2018-03-07

Changed

  • Allow script to be a single string value in the "common script schema" which applies to hooks and aliases (#102)

Fixed

  • Display nicer error message if no command is given and image doesn't specify a Cmd (#104)
  • Don't mangle && in scripts (#100)
  • Don't allocate tty if stdin is redirected (#95)

2.1.0 - 2017-04-03

Added

  • Added --image option (#87)

2.0.1 - 2017-01-17

Fixed

  • Fixed image entrypoint being ignored (#83)

2.0.0 - 2016-11-21

Added

  • Added support for enhanced aliases (#67)
  • Added support for per-alias image specification (#68)
  • Add bash completion support (#69)

Changed

  • All ancillary files are bind-mounted via single temp dir
  • Hook scripts are moved to hooks/ subdirectory
  • User commands always executed via shell (#66)
  • Top-level directory mounted at same path in container (#70)
  • Alias names cannot contain spaces
  • Improve distributions (#74, #75, #76, #78)

Removed

  • Remove support for remote Docker instances (#64) Support for this was limited/broken as of 1.7.0 anyway; this officially removes support for it.

Fixed

  • Fixed inability to run an image that doesn't yet exist locally, broken in 1.7.0 (#79)

1.7.0 - 2016-05-19

Added

  • Add support for scubainit hooks

Changed

  • scubainit re-implemented as a C program, which does the following:
    • Creates the scubauser user/group
    • Sets the umask
    • Switches users then execs the user command This is to provide more control during initialization, without the artifacts caused by the use of 'su' in the .scubainit from 1.3.
  • scubauser now has a proper writable home directory in the container (#45)

1.6.0 - 2016-02-06

Added

  • Add -d to pass arbitrary arguments to docker run

1.5.0 - 2016-02-01

Added

  • Add -r option to run container as root
  • Add automated testing (both unit and system tests)
  • Add support for Python 2.6 - 3.5
  • Added to PyPI

Changed

  • Scuba is now a package, and setup.py installs it as such, including an auto-generated console_script wrapper.
  • --dry-run output now shows an actual docker command-line.
  • Only pass --tty to docker if scuba's stdout is a TTY.

Fixed

  • Better handle empty .scuba.yml and other YAML-related errors
  • Fix numerous bugs when running under Python 3

1.4.0 - 2016-01-08

Added

  • Added --verbose and --dry-run options

Removed

  • umask is no longer set in the container. (See #24)

Fixed

  • Problems introduced in v1.3.0 with Ctrl+C in images are fixed. The user command now runs as PID 1 again, as there is no more .scubainit script.

1.3.0 - 2016-01-07

Added

  • Set umask in container to the same as the host (local Docker only)

Changed

  • Change working directory from /build to /scubaroot
  • Use .scubainit script to create scubauser user/group at container startup. This avoids the oddity of running as a uid not listed in /etc/passwd, avoiding various bugs (see issue 11). (local Docker only)

1.2.0 - 2015-12-27

Added

  • Search up the directory hierarchy for .scuba.yml; this allows invoking scuba from a project subdirectory.
  • Add !from_yaml support to YAML loading; this allows specifying image from an external YAML file (e.g. .gitlab-ci.yml).
  • Add CHANGELOG.md

Changed

  • Show better error message when docker cannot be executed

1.1.2 - 2015-12-22

Fixed

  • Don't pass --user option when remote docker is being used

1.1.1 - 2015-12-22

Fixed

  • Fix bug when aliases is not found in .scuba.yml

1.1.0 - 2015-12-20

Added

  • Support for Bash-like aliases, specified in .scuba.yml

1.0.0 - 2015-12-18

Removed

  • Remove the command node from .scuba.yml spec; it limits the usefulness of scuba by limiting the user to one command. Now command is specified on command line after scuba.

Added

  • Argument parsing to scuba (-v for version)
  • Check for and reject extraneous nodes in .scuba.yml

0.1.0 - 2015-12-09

First versioned release