Changelog¶
1.59.1¶
Bug fixes¶
- fix: avoid parameters being null for first build causing problems (#465)
 - fix: use correct version range syntax in setup.py (#464)
 - fix: compile reject-patterns before using them (#463)
 
1.58.0¶
- feat: execute variant finally from chained variants (#459)
 
1.57.0¶
New features¶
- feat(config): support fallbacks for variable expansion (#456)
 
Bug fixes¶
- fix(execution): set LC_CTYPE to UTF-8 directly on platforms that support that (#455)
 
1.56.1¶
Empty release.
1.56.0¶
New features¶
- feat(groovy): add hopic command string to workspace preparation end callback (#451)
 
1.55.0¶
New features¶
- feat: allow similar run-on-change value in chained variants (#445)
 - feat: finally support within variants (#443)
 - feat: allow non bumping only commits on pr flow in hotfix context (#446)
 
Improvements¶
- improvement(versioning): log list of tags we couldn’t determine our version from (#442)
 
1.54.0¶
New features¶
- feat: merge pass-through-environment-vars from config and templates (#436)
 - feat(groovy): make source ref publicly available (#434)
 - feat: add junit archive callbacks (#440)
 
Bug fixes¶
- fix: handle default pass-through-environment-vars in config (#438)
 - fix(groovy): ignore build status for has_submittable_change after submit started (#437)
 - fix: make sure hopic-init always has proper workspace (#441)
 
1.53.0¶
New features¶
- feat(checkout): always restore mtime of files for fresh clones (#435)
 
Improvements¶
- improvement: allow replay builds as submitting builds if there is no diff (#433)
 - chore: add event identifier to the logging in case an error occurred (#432)
 
1.52.0¶
New features¶
- feat: add pip constraints support to prepare-source-tree (#431)
 
Bug fixes¶
- fix(groovy): handle nonexistent pull request authors (#428)
 
1.51.0¶
New features¶
- feat: allow run-on-change in preceding wait-on-full-previous-phase (#425)
 - feat(versioning): support ‘carver’ versions from git tags with PURE_VERSION (#430)
 
Bug fixes¶
- fix: limit setuptools build system requires to prevent breakage on macOS (#424)
 - fix: always send on_build_end event (#426)
 - fix(groovy): work around Groovy’s inability to obtain an empty string suffix (#427)
 - fix(groovy): work around Groovy’s inability to obtain an empty string prefix (#429)
 
1.49.2¶
Bug fixes¶
- fix: always prepare workspace during hopic-init (#421)
 - fix: make sure all workspaces are prepared again after waiting for lock (#422)
 
1.49.0¶
New features¶
- feat(hotfix): allow ignoring certain commit tags since the last release (#411)
 
Bug fixes¶
- fix: report build status on merge commit rather than target commit (#415)
 - fix: report build status notification to HEAD commit (#416)
 
1.48.1¶
Improvements¶
- improvement(cli): log the reason for not bumping the version (#409)
 
Bug fixes¶
- fix: set parameters to environment when not set already (#408)
 - fix: only override parameters env variables when not set before (#410)
 - fix: avoid mandatory script approval for accessing environment (#414)
 
1.47.0¶
New features¶
- feat(modality): make the modality commit’s message dynamically configurable (#403)
 
Improvements¶
- improvement(config): without storage default version bumping to disabled (#401)
 - improvement(groovy): increase timeout for downloading Hopic to 1 minute (from 5) (#405)
 
Bug fixes¶
- fix(groovy): avoid setting BranchJobProperty twice (#404)
 - fix(groovy): respect the clean build parameter on submit as well (#406)
 
1.46.0¶
New features¶
- feat: bundle prepare-source-tree and reproduce same state in unbundle (#393)
 
Improvements¶
- build: use PEP-517 frontend “build” for building packages
 
Bug fixes¶
- fix: ensure worktrees are checked out on ‘unbundle’ too (#400)
 
1.45.1¶
Improvements¶
- build: rely on pyproject.toml for setup’s dependencies
 
Bug fixes¶
- fix: avoid setuptools_scm 6.1.1
 - fix: don’t call Protocol’s __init__ (#399)
 
1.45.0¶
New features¶
- feat: pin pip packages on first hopic installation (#392)
 
Bug fixes¶
- fix: don’t allow URL constraints (#394)
 
1.42.1¶
Bug fixes¶
- fix(modality): keep building with CFGDIR as CWD (#386)
 - fix(modality-merge): don’t parse commit message as strict when not bumping (#387)
 
1.42.0¶
New features¶
- feat(modality): allow credentials to be used by modality changes (#385)
 
Improvements¶
- ci: use ‘darker’ to enforce Black coding style on changed lines only (#383)
 
1.41.3¶
Improvements¶
- improvement: abort build when HEAD commit changes during build (#380)
 - refactor(apply-modality-change): let config_reader handle modality cfg parsing (#378)
 
Bug fixes¶
- fix: only cache submit HEAD after locks are acquired (#381)
 - fix: make JSON encoder able to encode Path’s and avoid them as keys (#384)
 
1.41.2¶
Bug fixes¶
- fix: always return boolean when asking if branch is publishable (#379)
 
Documentation improvements¶
- docs(config): revise VERSION variable docs (#371)
 
1.41.1¶
Improvements¶
- refactor(versioning): create ‘Version’ protocol class and annotate implementors (#377)
 
Bug fixes¶
- fix(ciDriver): test MODALITY from env, not from params (#375)
 - fix: raise error when initial version couldn’t be found (#365)
 
1.41.0¶
New features¶
- feat: use change applicator message to determine version bump (#367)
 - feat(groovy): expose Jenkins’ version in environment variable JENKINS_VERSION (#372)
 - feat(build): support a per-command and per-variant timeout (#373)
 
Improvements¶
- improvement(build): log reason for skipping run-on-change steps (#366)
 
Bug fixes¶
- fix(build): run new-version-only steps whenever the version is actually bumped (#366)
 - fix(modality): expand vars in commit message (#370)
 
Documentation improvements¶
- docs: repair list in configuration:PUBLISH_VERSION (#368)
 
1.40.2¶
Improvements¶
- improvement(hotfix): accept periods in hotfix IDs too (#363)
 
Bug fixes¶
- fix(binary-normalize): ensure that long paths can be archived as well (#364)
 - fix(binary-normalize): clamp mtime in PAX header too (#364)
 - fix(hotfix): reject all PEP-440 reserved keywords from being used in hotfix IDs (#363)
 
1.40.1¶
Bug fixes¶
- fix(merge): determine base version before checking that it’s a valid hotfix base (#362)
 
1.40.0¶
- feat: extend top-level config instead of replacing it with ‘config’ sub-member (#360)
 - feat: print critical path of pipeline (#355)
 - feat(merge): version bumping and error checking for PRs to hotfix branches (#357)
 
Documentation improvements¶
- docs: use consistent boolean form in docs and examples (#310)
 
1.39.2¶
Bug fixes¶
- fix: initialize all global variables when parsing config (#354)
 - fix: warning about old-style metadata.entry_points usage (#361)
 - fix: introduce mypy type checking and fix type annotations (#359)
 
1.39.0¶
New features¶
- feat(build): expose build name, number, URL, start time and duration as vars (#352)
 - feat: log ip address of node first time it is used (#298)
 
1.38.0¶
New features¶
- feat: make source commit ranges available without ‘foreach’ (#349)
 
Bug fixes¶
- fix: read config file directly after merge (#350)
 - fix: pin typeguard version until breaking issue is resolved (#353)
 
1.37.0¶
New features¶
- feat(template.utils): support options with the same name as Python keywords (#348)
 
1.36.0¶
New features¶
- feat(template): add helper functions for creating command argument lists (#346)
 
Bug fixes¶
- fix: only parse merge commit message for merge change requests (#347)
 
1.35.0¶
New features¶
- feat(groovy): expose lock wrapper (#343)
 
Performance improvements¶
- perf: cache template entry points (#344)
 
Improvements¶
- improvement(groovy): don’t log NOP submits as having run (#342)
 
1.34.0¶
New features¶
- feat(groovy): allow taking additional locks only from specified phase onward (#338)
 
1.33.1¶
Bug fixes¶
- fix: cache static jenkins SCM properties (#332)
 - fix: avoid adding duplicate notes to same commit (#332)
 
1.33.0¶
New features¶
- feat: add allow-missing for junit and archive config (#325)
 - feat: increase abbreviated commit hash’ length in version number to 14 nibbles (#328)
 - feat(groovy): abort submits when BitBucket PR state changed since the start (#327)
 - feat(config): add new default config file location .ci/hopic-ci-config.yaml (#336)
 
Improvements¶
- improvement(config): type check member options of archive/fingerprint/junit (#329)
 - improvement(archival): process Ant-style 
dir/**/subdir/*glob patterns (#329) - improvement(build): detect and complain about declared-but-missing artifacts (#329)
 
Bug fixes¶
- fix(groovy): restore BB PR metadata to avoid altering the msg during a build (#330)
 - fix(autocomplete): load default config file as well during autocompletion (#331)
 - fix: avoid using specific versions of typeguard (#333)
 - fix(unbundle): don’t delete tags we cannot fetch again (#335)
 
1.32.0¶
New features¶
- feat(checkout): support checking out a specific commit of the target branch (#316)
 
Improvements¶
- improvement(groovy): abort early when a build’s PR changed since build started (#315)
 
Bug fixes¶
- fix(groovy): ensure to build the same commit of the target branch on all nodes (#316)
 - fix(checkout): don’t try to check out the same commit on the configured repo too (#323)
 - fix(groovy): only pin target branch to commits obtained while holding merge lock (#324)
 - fix: only run docker with tty when stdout is a terminal (#321)
 
1.31.0¶
New features¶
- feat: expose ci lock timings (#313)
 - feat: add lock-on-change to ci-locks config (#319)
 - feat: expose has_prerelease function from cidriver (#319)
 
Improvements¶
- refactor(groovy): extract taking a resource lock to new function (#313)
 - improvement: log a more helpful error for invalid merge commit message (#312)
 
1.30.0¶
New features¶
- feat: add version check for pull request title (#300)
 - feat: expose node allocation timings via an interface (#302)
 - feat: add more detailed information to build info metrics (#309)
 - feat: introduce allow-empty-archive (#307)
 - feat: allow extra ‘docker run’ args to be specified per variant (#284)
 
Improvements¶
- improvement(versioning): log ‘git describe’ form of failed-to-parse git version (#301)
 - improvement: set human-friendly error for unknown VERSION (#266)
 
Documentation improvements¶
- docs: requirements for the version format to support a hotfix process (#308)
 
Bug fixes¶
- fix: use only simple types on node information interface (#309)
 - fix: handle all build status values of Jenkins (#309)
 - fix: run archive before junit (#307)
 
1.29.2¶
Improvements¶
- improvement(groovy): mark methods that override something from the base as such (#299)
 
Bug fixes¶
- fix(groovy): abort before submitting a changed PR (#295)
 - fix: align abort_if_changed method signature (#297)
 - fix(groovy): annotate and align method signatures between base and derived (#299)
 
1.29.0¶
New features¶
- feat(config): add option to avoid waiting on the full previous phase (#270)
 - feat: execute a variant’s next phase in the current one if asked to (#270)
 - feat(groovy): detect and skip execution of empty NOP variants (#270)
 
Improvements¶
- improvement: provide information when build is called with unknown parameters (#289)
 - improvement: use the variant’s name only as the parallel block’s name (#270)
 - improvement(config): reject differing run-on-change settings in the same variant (#270)
 - improvement(groovy): log output from ‘git’ commands too at debug verbosity (#291)
 
Bug fixes¶
- fix: don’t ask for credentials in a dry run (#288)
 - fix: restore java based path relativization (#290)
 - fix(groovy): ensure we build the same commit from the PR on every node (#292)
 - fix(groovy): use Iterable.first() instead of Iterable[0] (#293)
 - fix(groovy): add missing script-approval to determine job properties (#294)
 
1.28.1¶
Improvements¶
- add labels to all ci-driver build steps (#287)
 
Bug fixes¶
- fix: ensure base class of MissingCredentialVar is initialized (#286)
 - fix: do not pretend that a missing credential is a credential (#286)
 - fix(git_time): check for intended GitObjectType value (#285)
 
1.28.0¶
New features¶
- feat(templates): use ‘typeguard’ pkg to type check arguments to templates (#272)
 - feat(config): complain about templates’ defaults not matching their own types (#273)
 - feat(groovy): log node usage at end of pipeline (#275)
 - feat(groovy): automatically add verbosity and clean parameters to jobs (#283)
 - feat(config): support generator template functions (#282)
 - feat(config): type check the results yielded from a generator template function (#282)
 
Improvements¶
- improvement: git clean sub modules and sub repositories too (#274)
 - improvement(logging): log version bumps at INFO level including original version (#276)
 - improvement(extensions): inform users when they might need to update pip (#281)
 - improvement(config): check return value of templates agains their annotations (#282)
 - improvement(config): raise type error from yield statement in generator template (#282)
 
Bug fixes¶
- fix(groovy): keep a reference to the usage entry we’re updating (broken by #275) (#278)
 - fix(credentials): don’t encode for forms but for URLs (#280)
 
Improvements¶
- improvement: git clean sub modules and sub repositories too (#274)
 
1.27.1¶
Bug fixes¶
- fix(groovy): force new checkout on initial node when publishing (#264)
 - fix: don’t try to obfuscate empty credential strings (#267)
 - fix(config): recurse when flattening command lists (#271)
 
1.27.0¶
New features¶
- feat: add additional ci-locks to hopic (#214)
 - feat: hide credential information during command printing (#253)
 - improvement: allow for providing phase and variant as short options (#252)
 - improvement: add support for multiple executors on a single node (#251)
 - feat: report build status in same way as bitbucket Jenkins plugin (#257)
 - feat(config): add the ‘environment’ keyword for easier overriding of env vars (#256)
 
Improvements¶
- improvement(template): type check Sequence template parameters (#255)
 - fix(groovy): always generate merge commits in the UTC timezone (#260)
 - improvement: use GIT_SEQUENCE_EDITOR to override only the ‘git rebase -i’ editor (#262)
 - improvement(config): reject attempts to use conflicting ‘node-label’ values (#259)
 
Documentation improvements¶
- test(doc): examples used in the documentation are syntactically valid (#263)
 
Documentation fixes¶
- docs: don’t swap the phase and variant names (#263)
 - docs(with-credentials): fix typo in credential type (#263)
 
1.26.0¶
New features¶
- feat: add publishable-version to hopic (#229)
 - feat: add post-submit block that gets executed just after submission (#230)
 - feat: perform type and existance checking of template parameters (#249)
 
Improvements¶
- improvement: log error when root config object is not a map (#245)
 - improvement(getinfo): only expose first value of permitted fields (#246)
 
Bug fixes¶
- fix: determine git’s commit hash even when not creating a tag (#248)
 - fix: expose credentials in local environment as well (#250)
 
Documentation fixes¶
- docs: update instructions to enable interactive support post install on macos (#247)
 
1.25.0¶
New features¶
- feat: support url encoding in username/password credentials (#235)
 - feat: on macosx pack the username and password into the password field (#234)
 - feat: add support for using Jenkins’ SSH key credentials (#241)
 
Bug fixes¶
- fix: only determine Hopic’s commit hash once (#238)
 - fix: pin ‘keyring’ on a version that we can actually work with (#242)
 - fix: handle signals while stopping Docker containers (#236)
 
Documentation improvements¶
- docs: include contribution guidelines in the produced documentation (#243)
 
1.24.0¶
New features¶
- feat: make credential used during Bitbucket operations configurable
 
Improvements¶
- improvement: remove error logs during template loading
 - improvement: use longer timestamp in local version dirty field
 - docs: add CONTRIBUTING.md
 
Bug fixes¶
- fix: remove script approval requirement for reporting build status
 - fix: return result of echo_cmd when click context is used
 - fix: remove Jenkins script approval requirement for stash
 - fix: prevent splitting footers with empty lines
 
1.23.0¶
New features¶
- feat: add dry-run option to build command
 - feat: add version option to hopic
 - feat: support yaml strings from templates
 
Bug fixes¶
- fix: ignore YAML errors while reading optional config file
 
1.22.0¶
New features¶
- feat: install extensions more thoroughly and log their versions
 
Bug fixes¶
- fix: update __main__.py with previously moved cli entrypoint
 - fix: mark our produced package as zip-safe to increase installation speed
 - fix: give notes the same commit/author times as the commits they’re annotating
 - fix: don’t create a git note for existing commits
 - fix: use exec flag for tmpfs docker parameter
 
1.16.1¶
Bug fixes¶
- fix: don’t refer to undefined variables in error messages
 - fix: use operator ‘=’ instead of operator ‘==’ where assignment is required
 
1.16.0¶
Empty release
1.14.3¶
Bug fixes¶
- fix(credentials): don’t import unused ‘secretstorage’
 
Documentation fixes¶
- docs: use correct syntax for specifying ‘extra’ requirements to install
 
1.14.0¶
New features¶
- feat: attempt to obtain credentials from the user’s keyring
 
Improvements¶
- improvement: upgrade to GitPython 3.y.z as we don’t need Python 2 support
 
1.13.4¶
Improvements¶
- improvement: mock a username for the current uid inside docker with nss-wrapper
 
Bug fixes¶
- fix: pass on committer metadata to sub worktree
 
1.13.2¶
Empty release
1.11.2¶
Bug fixes¶
- fix: don’t assume branch name is available
 
Documentation fixes¶
- docs: fix indentation in Sphinx config file
 
1.11.0¶
New features¶
- feat: allow executing multiple phases/variants instead of just a single one
 
Improvements¶
- improvement: raise a readable error when phases/variants have the wrong type
 
1.10.1¶
Improvements¶
- improvement: prevent attempts to define multiple phases with the same name
 
Bug fixes¶
- fix: reset the WORKSPACE variable based on the use of an image before every step
 
1.9.0¶
New features¶
- feat: add template support for YAML snippets
 
Improvements¶
- improvement: log when all merge criteria are met
 - improvement: log failure of sub commands instead of exiting with a traceback
 - docs: describe Hopic variables
 
1.8.0¶
New features¶
- feat: add !embed support in configuration
 
Improvements¶
- improvement: show a warning when failing to parse the version part of a git tag
 
1.5.1¶
Improvements¶
- improvement: switch to ‘slim’ image for Python instead of ‘alpine’
 
Bug fixes¶
- fix: ensure that we always pass the –workspace and –config arguments to Hopic
 
1.5.0¶
New features¶
- feat: make Hopic command available as param to on_build_node/with_hopic closures
 
1.2.2¶
Bug fixes¶
- fix: always get the same last Hopic version on every build node
 - revert: add configuration to upload artifacts on failed builds
 
1.1.0¶
New features¶
- feat: stop the running Docker container when receiving SIGINT or SIGTERM
 
Improvements¶
- refactor: use commisery’s commit message parsing
 
1.0.0¶
Improvements¶
- ci: run tests with Python 3.7 too
 
Cleanup¶
- refactor!: rename ‘ci-driver’ to ‘hopic’
 - chore!: get rid of old cfg.yml as default config file name
 - chore!: switch over to Python 3.6.5 (PIPE-251)
 - chore(cli)!: delete unused ‘phases’ and ‘variants’ sub commands
 
0.15.0¶
New features¶
- feat: don’t execute run on change variants if build isn’t green
 - feat: only version bump if it contains a new feature, bug fix or breaking change
 
Bug fixes¶
- fix: increase git-rebase –autosquash timeout from 5 secs to 5 mins
 - fix: don’t clear Acked-By on autosquashes
 - fix: crash when moving submodule in PR
 - fix: give decent error messages for conventional commit syntax errors
 
0.14.0¶
New Features¶
- feat: don’t clear Acked-By on autosquashes
 
Bug fixes¶
- fix: ensure hopic is always executed with a UTF-8 locale
 
0.13.0¶
New features¶
- feat: add docker image override within a phase #PIPE-367
 - feat: allow ptrace operations within docker #PIPE-385
 - feat(config): search for specified Ivy manifest relative to $CFGDIR
 
Improvements¶
- ci(message-checker): ignore tag merges as well as branch merges
 - improvement(logging): display info used by conventional-commits bumping policy
 
Bug fixes¶
- fix: replace DOS line endings with Unix line endings in produced commit messages
 - fix: use Python 2-compatible super() function
 - fix: parsing of conventional-commits on Python 2 #PIPE-405
 
0.12.0¶
New features¶
- feat: use conventional commits for bumping and branch restriction (d313ddf)
- feat: add commit message decomposition class (e0b8a29)
 - feat: add Conventional Commmit parser (6e90e39)
 - feat: add conventional commit footer parsing (9d04254)
 - feat(config): add a bumping policy (ef34046)
 - feat(merge): parse commit messages according to the configured policy (27d8858)
 - feat(merge): bump the correct version field according to conventional commits (2905ea9)
 - feat(merge): allow a version bumping policy for less than every change (eb3b8b6)
 - feat(merge): reject breaking changes and new features on release branches (d200cdf)
 
 - feat: make clean checkout commands customizable (3b0fafb)
 - feat: allow multiple with-credentials (d3418a1)
 
Improvements¶
- improvement: detect wrongly typed image options (8c706af)
 - refactor(config): unify the produced ‘image’ config structure (449c744)
 - improvement(config): display config error messages without backtrace (c8329b0)
 - improvement: have workspace default to containing repository of config file (e8e89c7)
 - docs: add documentation for description and stash (a427d90)
 
Bug fixes¶
- fix(show-config): allow JSON serialization of ‘!image-from-ivy-manifest’ images (b37321b)
 - fix(carver): separate the major, minor and patch components by dots (b23b733)
 - fix: use relative config path for version file (59199f1)
 - fix: handle CredentialNotFoundException where it can be thrown (a47cdd4)
 - fix: avoid wrapping in withCredentials when no credentials are requested (f08e9c2)
 
0.11.0¶
New features¶
- feat: make execution possible with ‘hopic’ as command
 
Improvements¶
- improvement: raise exception when specified ivy manifest does not exist
 - improvement(log): add hint for initial version tag
 
Bug fixes¶
- fix: only restore mtime for regular files and symlinks
 - fix: use the common ancestor of the source and target commit for autosquash
 - fix: ignore submodule checkout failure during checkout-source-tree
 - fix: use git submodule sync to update submodule url when checking out source
 
0.10.1¶
Improvements¶
- improvement(groovy): retrieve execution graph in a single ‘getinfo’ call
 
Bug fixes¶
- fix: use full repository directory when updating submodules recursively
 - fix: reset the config directory after re-reading the config file
 
0.10.0¶
New features¶
- feat: allow passing environment variables into containers
 
Improvements¶
- improvement: log reason why Bitbucket refuses to merge
 
Bug fixes¶
- fix: use blacklisted object when printing error to avoid crash
 
0.9.0¶
New features¶
- feat: checkout submodules too during checkout
 - feat: note the used Hopic version in the merge commit
 
Improvements¶
- improvement: use Hopic’s default config location in the CI-Driver
 - improvement(groovy): log when we’re skipping submission for replays
 
Bug fixes¶
- fix: re-check default locations for config file after checking out and merging
 
0.8.1¶
Bug fixes¶
- fix(groovy): avoid confusing e-mail addresses for usernames
 - fix(carver): don’t include the prerelease portion in tags by default
 
0.7.1¶
Bug fixes¶
- fix(groovy): move regex evaluation to non-CPS context
 
Improvements¶
- improvement: use : as GIT_EDITOR to prevent starting an editor at all
 
0.6.0¶
New features¶
- feat: add support for Docker –volume-from mapping at variant level
 - feat: expose current GIT_COMMIT and GIT_BRANCH
 
Bug fixes¶
- fix: ensure that the execution flow is built _after_ merging
 
0.5.1¶
Bug fixes¶
- fix: only remove/add files from non-empty lists
 - doc: document all release branch versions
 
0.4.1¶
Logging improvements¶
- logging(debug): tell when we’re restoring mtimes
 - improvement: don’t log a back trace for fatally terminated commands
 
0.3.1¶
Improvements¶
- improvement: add debug logging about pre/post autosquashing commit sets
 - improvement: log the failure information when failing to autosquash
 - improvement: ensure hash stability of autosquashed commit
 
0.3.0¶
New features¶
- feat: add support for promoting builds after submission
 - feat: make default node expression configurable via optional param
 - feat: support feature branches
 - feat: execute a command once for every autosquashed source commit
 
0.2.3¶
Bug fixes¶
- fix: only remove/add files from non-empty lists
 - doc: document all release branch versions
 
0.2.2¶
Improvements¶
- improvement: better logging about submittability
 
Bug fixes¶
- fix: only restore mtimes for clean builds
 - fix: avoid scientific notation for timestamps
 - fix: workaround Groovy regexes producing null matches
 - fix: ensure $HOME is available for modality changes
 
0.2.1¶
Artifactory related improvements
Improvements¶
- improvement: handle artifactory ‘target’ in config reader
 - improvement: expose all versioning related environment variables
 - improvement: perform all artifactory build uploads from a single node
 - improvement: translate Artifactory FileSpec patterns to Ant FileSet
 
0.2.0¶
New features¶
- feat: execute a command once for every source commit
 - feat: make the branch name, build id and lock name public
 - feat(bb-pr): expand ‘@user’ tokens in pull request descriptions
 - feat: add support for executing commands with credentials
 - feat(git): support for other branches in subdirectory worktrees
 
0.1.7¶
Bug fixes¶
- fix: only restore mtimes for clean builds
 - fix: avoid scientific notation for timestamps
 - fix: ensure $HOME is available for modality changes
 
Improvements¶
- improvement: better logging about submittability
 
0.1.6¶
Artifactory related improvements
Improvements¶
- improvement: handle artifactory ‘target’ in config reader
 - improvement: expose all versioning related environment variables
 - improvement: perform all artifactory build uploads from a single node
 - improvement: translate Artifactory FileSpec patterns to Ant FileSet
 
0.1.5¶
Bugfix and greater docker volume specification flexibility
Improvements¶
- improvement: allow overriding the ${WORKSPACE} volume
 
Bug fixes¶
- fix: use slicing instead of indexing to get string suffix
 
0.1.4¶
Fix versioning bugs and improve CLI defaults
Improvements¶
- improvement: don’t destroy config sections until we’re done with them
 - improvement: give –config a default
 - improvement: give –workspace a decent default
 
Bug fixes¶
- fix: find version file relative to CI config file
 - fix: use version-policy specific defaults for the formatting of tags
 - fix: prevent tag failure for non-semver versioning policies
 
0.1.3¶
Fix various bugs and produce more stable build ids on Artifactory
Improvements¶
- improvement: produce more stable build names and numbers on Artifactory
 
Bug fixes¶
- fix: don’t forget to delete checkouts if we don’t have change-only steps
 - fix: remove checkouts without wrongly checking for them first
 - fix: work around bug JENKINS-47730
 - fix: don’t break when given multiple target artifactory servers
 - fix: lock without ‘run-on-change: only’ steps too when submitting
 - fix: workaround Jenkins Git plugin bug causing wrong GIT_COMMIT
 - fix: submit even if we don’t have any build steps
 - fix: prevent infinite downloads from blocking the build forever
 - fix: don’t read config file before checking it out
 - fix: complain when trying to bump a non-existant version
 - fix(config): allow using Hopic CI driver without build steps
 
0.1.2¶
Improvements¶
- improvement: allow stacking prepare-source-tree commands
 
Bug fixes¶
- fix: prevent failure when failing to read an optional config file
 - fix: apply version bumping policy for the change that introduces it too
 - fix: prevent interpreting local time as UTC
 - fix: don’t remove submit-config until successfully used
 - fix(groovy): lock change target branch instead of target repo
 - fix(git): don’t remove or add empty lists of files
 - fix(restore-mtimes): don’t update mtime of symlink targets
 - fix(shell-completion): only yield completions matching (partial) input
 - fix(groovy): allow expansion of ${WORKSPACE} always
 
Documentation¶
- docs: add the start of documentation
 
0.1.0¶
Initial release