CHANGELOG ========= 1.2.0 ----- Unreleased ### User Notes Preliminary support for Puppetfile modules from SVN sources. SVN repositories can track the latest available revision or may be pinned to a specific revision. Forge modules can now track the latest available version. This can be enabled by setting the module version to `:latest`. Git based Puppetfile modules can now be specified as branches, tags, and commits. When tags and commits are specified r10k can perform optimizations when updating the given repositories to reduce network accesses. Command execution has been greatly improved. The old library for executing commands (systemu) had very high overhead and was 50 - 100 times slower than %x[] or fork/exec. It's been replaced with a custom process execution implementation. Modules can swap out sources. When an existing module is changed from Forge to Git, for instance, the existing module will be removed before the new module is installed. (GH-30) 1.2.0rc2 -------- 2014/02/27 ### Notes Git repositories were not tracking their upstream remotes, repos should now properly update upstream changes. Git reference clones now fetch their cache remotes immediately after the initial clone. 1.2.0rc1 -------- 2014/02/08 Release Candidate 1 for 1.2.0 1.1.4 ----- 2014-02-24 This is a backwards compatible bugfix release. ### Notes * (GH-90) Multiple environments with the same name but with different sources were previously colliding and some environments were being ignored. This has been fixed and all environments should be deployed when updates are run. ### Thanks Thanks to the following contributors for their their extraordinary patience and help in for chasing down GH-90: * Andreas Ntaflos (antaflos) * Igor Galić (igalic) 1.1.3 ----- 2014-01-26 This is a backwards compatible maintenance release. ### Notes * (GH-82) Added all git managed files, including README.markdown, CHANGELOG, and LICENSE to the gemspec for better compatibility with non-gem packages. 1.1.2 ----- 2014-01-06 This is a backwards compatible maintenance release. ### Developer notes * If Puppet and r10k are required in the same namespace, it's possible for the vendored copy of SemVer to conflict with the Puppet version. This was fixed by renaming the copy vendored in r10k and putting it under a namespace. 1.1.1 ----- 2013-12-11 This is a backwards compatible bugfix release. ### User notes * (GH-48) Environment prefixing always defaults to off. Users were already using r10k with multiple sources but in different directories, and prefixing breaks this behavior. Since this was a backwards incompatible change this has to be rolled back. * (GH-64) Multiple sources in a single directory no longer purge each other. ### Thanks Thanks to the following contributors for their help in 1.1.1: * Stig Sandbeck Mathisen * Gabriel M Schuyler 1.1.0 ----- 2013-09-30 This is a backwards compatible bugfix and feature release. ### User notes (GH-35) Puppetfiles can now specify a path to the moduledir, instead of assuming '/modules'. It can be set with the Puppetfile `moduledir` directive. Note that this is not compatible with librarian-puppet. (GH-53) Multiple environment sources can now be specified in a single directory. When multiple sources are specified, each environment will be prefixed with the source name. This can be enabled and disabled with the source `prefix` option. (GH-45) Documentation has been greatly expanded. (GH-56) New subcommand: `r10k puppetfile check` allows you to validate the syntax of a Puppetfile. (GH-66) Initial clones use `git checkout` when switching to a new branch instead of just `git reset`; without this change it would look like the wrong branch was checked out. (GH-59) r10k can now pull from Pulp repositories for Forge based modules. (GH-70) Handle unset HOME - in case that HOME is unset, assume that the current user is root. This mainly occurs when r10k is being run as the `prerun` command under Puppet. ### Developer notes The method mocking framework has been switched from mocha to rspec-mocks. Mocha is notoriously bad about breaking changes between versions and rspec-mocks is very robust, so Mocha has been ripped out and dropped as a dependency. Rspec expectations now use the `expect(thing).to` syntax instead `thing.should` A quasi settings framework has been extracted to make application settings less bad. In the long term a general application framework will be extracted from r10k to handle generic 'application' problems like this, but for now the settings framework is the way to handle singleton data. R10K:Git::Cache object memoization has been extracted into a standalone class instead of being grafted onto the class. All hail the single responsibility principle! R10K::Module code has been refactored. There's now a real base class instead of a hacky mixin with some metadata magic on top. ### Thanks Thanks to the following contributors for their help in 1.1.0: * Alex Linden Levy * Abhay Chrungoo * Adam Vessey * Chuck Schweizer * Elias Probst * Greg Baker * Jochen Schalanda * Theo Chatzimichos 1.0.0 ----- 2013-05-30 This is a backwards incompatible bugfix and feature release. ### Configuration The configuration file format of 0.0.9 should be compatible with 1.0.0, and any issues with that should be considered a bug. A longstanding issue was confusion between symbols and strings in r10k.yaml (GH-18). To resolve this, symbols and strings will be treated equally and should produce the same behavior. In the long run, symbols will probably be deprecated for the sake of conformity. ### Command line invocation A number of commands have been renamed. They still but will emit a deprecation warning and will redirect to the new command implementation. The only exceptions is the are the `r10k environment cache` and `r10k environment stale` commands, but they were pretty much useless anyways. Log level verbosity can now be specified by level name instead of level number. If --verbose is passed without a level, it will set the log level to `info`. ### Puppetfile support r10k can be used to deploy modules from a standalone Puppetfile. See `r10k puppetfile` for more information. Modules without a version in the format of 'foo/bar' will be assumed. (GH-21) ### API r10k handles versioning according to SemVer; since this is a major release this is a backwards incompatible API change. It's unlikely that this has had any extensions written on top of it, but if you have, then heads up. However, all versions of 1.x should be backwards compatible. ### Bugfixes A number of bugs were due to underlying architecture flaws. Part of 1.0.0 has been a significant architectural overhaul, so on top of all of the above changes there should be a lot of other bugs that have been fixed.