Merge pull request #666 from HelenCampbell/release
[puppet-modules/puppetlabs-apt.git] / CHANGELOG.md
1 ## Supported Release 2.4.0
2 ### Summary
3 A release that includes only a couple of additional features, but includes several cleanups and bugfixes around existing issues.
4
5 #### Features
6 - Tests updated to check for idempotency.
7 - (MODULES-4224) Implementation of beaker-module_install_helper.
8 - Deprecation warnings are now handled by the deprecation function in stdlib.
9
10 #### Bugfixes
11 - Now http and https sources fixed for apt_key and can take a userinfo.
12 - GPG key update.
13 - Notify_update param now defaults to true to avoid validation errors.
14 - Implement retry on tests which pull key from a key server which sometimes times out (transient error).
15 - String comparison error now comphensated for in update.pp.
16 - (MODULES-4104) Removal of the port number from repository location in order to get the host name of the repository.
17 - Puppet lint warnings addressed.
18 - A few small readme issues addressed.
19
20 ## Supported Release 2.3.0
21 ### Summary
22 A release containing many bugfixes with additional features.
23
24 #### Features
25 - Apt_updates facts now use /usr/bin/apt-get.
26 - Addition of notify update to apt::source.
27 - Update to newest modulesync_configs.
28 - Installs software-properties-common for Xenial.
29 - Modulesync updates.
30 - Add ability to specify a hash of apt::conf defines.
31
32 #### Bugfixes
33 - A clean up of spec/defines/key_compat_specs, also now runs under STRICT_VARIABLES.
34 - Apt::setting expects priority to be an integer, set defaults accordingly.
35 - Fixed version check for Ubuntu on 16.04.
36 - Now uses hkps.pool.sks-keyservers.net instead of pgp.mit.edu.
37 - Updates and fixes to tests. General cleanup.
38 - Fixed regexp for $ensure params.
39 - Apt/params: Remove unused LSB facts.
40 - Replaced `-s` with `-f` in ppa rspec tests - After the repository is added, the "${::apt::sources_list_d}/${sources_list_d_filename}" file is created as an empty file. The unless condition of Exec["add-apt-repository-${name}"] calls test -s, which returns 1 if the file is empty. Because the file is empty, the unless condition is never true and the repository is added on every execution. This change replaces the -s test condition with -f, which is true if the file exists or false otherwise.
41 - Limit non-strict parsing to pre-3.5.0 only - Puppet 3.5.0 introduced strict variables and the module handles strict variables by using the defined() function. This does not work on prior versions of puppet so we now gate based on that version. Puppet 4 series has a new setting `strict` that may be set to enforce strict variables while `strict_variables` remains unset (see PUP-6358) which causes the conditional in manifests/params.pp to erroniously use non-strict 3.5-era parsing and fail. This new conditional corrects the cases such that strict variable behavior happens on versions 3.5.0 and later.
42
43 ##Supported Release 2.2.2
44 ###Summary
45
46 Several bug fixes and the addition of support updates to Debian 8 and Ubuntu Wily.
47
48 ####Bugfixes
49 - Small fixes to descriptions within the readme and the addition of some examples.
50 - Updates to run on Ubuntu Wily.
51 - Fixed apt_key tempfile race condition.
52 - Run stages limitation added to the documentation.
53 - Remove unneeded whitespace in source.list template.
54 - Handle PPA names that contain a plus character.
55 - Update to current msync configs.
56 - Avoid duplicate package resources when package_manage => true.
57 - Avoid multiple package resource declarations.
58 - Ensure PPAs in tests have valid form.
59 - Look for correct sources.list.d file for apt::ppa.
60 - Debian 8 support addiiton to metadata.
61
62 ##Supported Release 2.2.1
63 ###Summary
64
65 Small release for support of newer PE versions. This increments the version of PE in the metadata.json file.
66
67 ##2015-09-29 - Supported Release 2.2.0
68 ###Summary
69
70 This release includes a few bugfixes.
71
72 ####Features
73 - Adds an `ensure` parameter for user control of proxy presence.
74 - Adds ability to set `notify_update` to `apt::conf` (MODULES-2269).
75 - Apt pins no longer trigger an `apt-get update` run.
76 - Adds support for creating pins from main class.
77
78 ####Bugfixes
79 - Updates to use the official Debian mirrors.
80 - Fixes path to `preferences` and `preferences.d`
81 - Fixes pinning for backports (MODULES-2446).
82 - Fixes the name/extension of the preferences files.
83
84 ##2015-07-28 - Supported Release 2.1.1
85 ###Summary
86
87 This release includes a few bugfixes.
88
89 ####Bugfixes
90 - Fix incorrect use of anchoring (MODULES-2190)
91 - Use correct comment type for apt.conf files
92 - Test fixes
93 - Documentation fixes
94
95 ##2015-06-16 - Supported Release 2.1.0
96 ###Summary
97
98 This release largely makes `apt::key` and `apt::source` API-compatible with the 1.8.x versions for ease in upgrading, and also addresses some compatibility issues with older versions of Puppet.
99
100 ####Features
101 - Add API compatibility to `apt::key` and `apt::source`
102 - Added `apt_reboot_required` fact
103
104 ####Bugfixes
105 - Fix compatibility with Puppet versions 3.0-3.4
106 - Work around future parser bug PUP-4133
107
108 ##2015-04-28 - Supported Release 2.0.1
109 ###Summary
110
111 This bug fixes a few compatibility issues that came up with the 2.0.0 release, and includes test and documentation updates.
112
113 ####Bugfixes
114 - Fix incompatibility with keyrings containing multiple keys
115 - Fix bugs preventing the module from working with Puppet < 3.5.0
116
117 ##2015-04-07 - Supported Release 2.0.0
118 ###Summary
119
120 This is a major rewrite of the apt module. Many classes and defines were removed, but all existing functionality should still work. Please carefully review documentation before upgrading.
121
122 ####Backwards-incompatible changes
123
124 As this is a major rewrite of the module there are a great number of backwards incompatible changes. Please review this and the updated README carefully before upgrading.
125
126 #####`apt_key`
127 - `keyserver_options` parameter renamed to `options`
128
129 #####`apt::backports`
130 - This no longer works out of the box on Linux Mint. If using this on mint, you must specify the `location`, `release`, `repos`, and `key` parameters. [Example](examples/backports.pp)
131
132 #####`apt::builddep`
133 - This define was removed. Functionality can be matched passing 'build-dep' to `install_options` in the package resource. [Example](examples/builddep.pp)
134
135 #####`apt::debian::testing`
136 - This class was removed. Manually add an `apt::source` instead. [Example](examples/debian_testing.pp)
137
138 #####`apt::debian::unstable`
139 - This class was removed. Manually add an `apt::source` instead. [Example](examples/debian_unstable.pp)
140
141 #####`apt::force`
142 - This define was removed. Functionallity can be matched by setting `install_options` in the package resource. See [here](examples/force.pp) for how to set the options.
143
144 #####`apt::hold`
145 - This define was removed. Simply use an `apt::pin` with `priority => 1001` for the same functionality.
146
147 #####`apt`
148 - `always_apt_update` - This parameter was removed. Use `update => { 'frequency' => 'always' }` instead.
149 - `apt_update_frequency` - This parameter was removed. Use `update => { 'frequency' => <frequency> }` instead.
150 - `disable_keys` - This parameter was removed. See this [example](examples/disable_keys.pp) if you need this functionality.
151 - `proxy_host` - This parameter was removed. Use `proxy => { 'host' => <host> }` instead.
152 - `proxy_port` - This parameter was removed. Use `proxy => { 'port' => <port> }` instead.
153 - `purge_sources_list` - This parameter was removed. Use `purge => { 'sources.list' => <bool> }` instead.
154 - `purge_sources_list_d` - This parameter was removed. Use `purge => { 'sources.list.d' => <bool> }` instead.
155 - `purge_preferences` - This parameter was removed. Use `purge => { 'preferences' => <bool> }` instead.
156 - `purge_preferences_d` - This parameter was removed. Use `purge => { 'preferences.d' => <bool> }` instead.
157 - `update_timeout` - This parameter was removed. Use `update => { 'timeout' => <timeout> }` instead.
158 - `update_tries` - This parameter was removed. Use `update => { 'tries' => <tries> }` instead.
159
160 #####`apt::key`
161 - `key` - This parameter was renamed to `id`.
162 - `key_content` - This parameter was renamed to `content`.
163 - `key_source` - This parameter was renamed to `source`.
164 - `key_server` - This parameter was renamed to `server`.
165 - `key_options` - This parameter was renamed to `options`.
166
167 #####`apt::release`
168 - This class was removed. See this [example](examples/release.pp) for how to achieve this functionality.
169
170 #####`apt::source`
171 - `include_src` - This parameter was removed. Use `include => { 'src' => <bool> }` instead. ***NOTE*** This now defaults to false.
172 - `include_deb` - This parameter was removed. Use `include => { 'deb' => <bool> }` instead.
173 - `required_packages` - This parameter was removed. Use package resources for these packages if needed.
174 - `key` - This can either be a key id or a hash including key options. If using a hash, `key => { 'id' => <id> }` must be specified.
175 - `key_server` - This parameter was removed. Use `key => { 'server' => <server> }` instead.
176 - `key_content` - This parameter was removed. Use `key => { 'content' => <content> }` instead.
177 - `key_source` - This parameter was removed. Use `key => { 'source' => <source> }` instead.
178 - `trusted_source` - This parameter was renamed to `allow_unsigned`.
179
180 #####`apt::unattended_upgrades`
181 - This class was removed and is being republished under the puppet-community namespace. The git repository is available [here](https://github.com/puppet-community/puppet-unattended_upgrades) and it will be published to the forge [here](https://forge.puppetlabs.com/puppet/unattended_upgrades).
182
183 ####Changes to default behavior
184 - By default purge unmanaged files in 'sources.list', 'sources.list.d', 'preferences', and 'preferences.d'.
185 - Changed default for `package_manage` in `apt::ppa` to `false`. Set to `true` in a single PPA if you need the package to be managed.
186 - `apt::source` will no longer include the `src` entries by default. 
187 - `pin` in `apt::source` now defaults to `undef` instead of `false`
188
189 ####Features
190 - Added the ability to pass hashes of `apt::key`s, `apt::ppa`s, and `apt::setting`s to `apt`.
191 - Added 'https' key to `proxy` hash to allow disabling `https_proxy` for the `apt::ppa` environment.
192 - Added `apt::setting` define to abstract away configuration.
193 - Added the ability to pass hashes to `pin` and `key` in `apt::backports` and `apt::source`.
194
195 ####Bugfixes
196 - Fixes for strict variables.
197
198 ##2015-03-17 - Supported Release 1.8.0
199 ###Summary
200
201 This is the last planned feature release of the 1.x series of this module. All new features will be evaluated for puppetlabs-apt 2.x.
202
203 This release includes many important features, including support for full fingerprints, and fixes issues where `apt_key` was not supporting user/password and `apt_has_updates` was not properly parsing the `apt-check` output.
204
205 ####Changes to default behavior
206 - The apt module will now throw warnings if you don't use full fingerprints for `apt_key`s
207
208 ####Features
209 - Use gpg to check keys to work around https://bugs.launchpad.net/ubuntu/+source/gnupg2/+bug/1409117 (MODULES-1675)
210 - Add 'oldstable' to the default update origins for wheezy
211 - Add utopic, vivid, and cumulus compatibility
212 - Add support for full fingerprints
213 - New parameter for `apt::source`
214   - `trusted_source`
215 - New parameters for `apt::ppa`
216   - `package_name`
217   - `package_manage`
218 - New parameter for `apt::unattended_upgrades`
219   - `legacy_origin`
220 - Separate `apt::pin` from `apt::backports` to allow pin by release instead of origin
221
222 ####Bugfixes
223 - Cleanup lint and future parser issues
224 - Fix to support username and passwords again for `apt_key` (MODULES-1119)
225 - Fix issue where `apt::force` `$install_check` didn't work with non-English locales (MODULES-1231)
226 - Allow 5 digit ports in `apt_key`
227 - Fix for `ensure => absent` in `apt_key` (MODULES-1661)
228 - Fix `apt_has_updates` not parsing `apt-check` output correctly
229 - Fix inconsistent headers across files (MODULES-1200)
230 - Clean up formatting for 50unattended-upgrades.erb
231
232 ##2014-10-28 - Supported Release 1.7.0
233 ###Summary
234
235 This release includes several new features, documentation and test improvements, and a few bug fixes.
236
237 ####Features
238 - Updated unit and acceptance tests
239 - Update module to work with Linux Mint
240 - Documentation updates
241 - Future parser / strict variables support
242 - Improved support for long GPG keys
243 - New parameters!
244   - Added `apt_update_frequency` to apt
245   - Added `cfg_files` and `cfg_missing` parameters to apt::force
246   - Added `randomsleep` to apt::unattended_upgrades
247 - Added `apt_update_last_success` fact
248 - Refactored facts for performance improvements
249
250 ####Bugfixes
251 - Update apt::builddep to require Exec['apt_update'] instead of notifying it
252 - Clean up lint errors
253
254 ##2014-08-20 - Supported Release 1.6.0
255 ###Summary
256
257 ####Features
258 - Allow URL or domain name for key_server parameter
259 - Allow custom comment for sources list
260 - Enable auto-update for Debian squeeze LTS
261 - Add facts showing available updates
262 - Test refactoring
263
264 ####Bugfixes
265 - Allow dashes in URL or domain for key_server parameter
266
267 ##2014-08-13 - Supported Release 1.5.3
268 ###Summary
269
270 This is a bugfix releases.  It addresses a bad regex, failures with unicode
271 characters, and issues with the $proxy_host handling in apt::ppa.
272
273 ####Features
274 - Synced files from Modulesync
275
276 ####Bugfixes
277 - Fix regex to follow APT requirements in apt::pin
278 - Fix for unicode characters
279 - Fix inconsistent $proxy_host handling in apt and apt::ppa
280 - Fix typo in README
281 - Fix broken acceptance tests
282
283 ##2014-07-15 - Supported Release 1.5.2
284 ###Summary
285
286 This release merely updates metadata.json so the module can be uninstalled and
287 upgraded via the puppet module command.
288
289 ##2014-07-10 - Supported Release 1.5.1
290 ###Summary
291
292 This release has added tests to ensure graceful failure on OSX.
293
294 ##2014-06-04 - Release 1.5.0
295 ###Summary
296
297 This release adds support for Ubuntu 14.04.  It also includes many new features 
298 and important bugfixes.  One huge change is that apt::key was replaced with
299 apt_key, which allows you to use puppet resource apt_key to inventory keys on
300 your system.
301
302 Special thanks to daenney, our intrepid unofficial apt maintainer!
303
304 ####Features
305 - Add support for Ubuntu Trusty!
306 - Add apt::hold define
307 - Generate valid *.pref files in apt::pin
308 - Made pin_priority configurable for apt::backports
309 - Add apt_key type and provider
310 - Rename "${apt_conf_d}/proxy" to "${apt_conf_d}/01proxy"
311 - apt::key rewritten to use apt_key type
312 - Add support for update_tries to apt::update
313
314 ####Bugfixes
315 - Typo fixes
316 - Fix unattended upgrades
317 - Removed bogus line when using purge_preferences
318 - Fix apt::force to upgrade allow packages to be upgraded to the pacakge from the specified release
319
320 ##2014-03-04 - Supported Release 1.4.2
321 ###Summary
322
323 This is a supported release. This release tidies up 1.4.1 and re-enables
324 support for Ubuntu 10.04
325
326 ####Features
327
328 ####Bugfixes
329 - Fix apt:ppa to include the -y Ubuntu 10.04 requires.
330 - Documentation changes.
331 - Test fixups.
332
333 ####Known Bugs
334
335 * No known issues.
336
337
338
339 ##2014-02-13 1.4.1
340 ###Summary
341 This is a bugfix release.
342
343 ####Bugfixes
344 - Fix apt::force unable to upgrade packages from releases other than its original
345 - Removed a few refeneces to aptitude instead of apt-get for portability
346 - Removed call to getparam() due to stdlib dependency
347 - Correct apt::source template when architecture is provided
348 - Retry package installs if apt is locked
349 - Use root to exec in apt::ppa
350 - Updated tests and converted acceptance tests to beaker
351
352 ##2013-10-08 - Release 1.4.0
353
354 ###Summary
355
356 Minor bugfix and allow the timeout to be adjusted.
357
358 ####Features
359 - Add an `updates_timeout` to apt::params
360
361 ####Bugfixes
362 - Ensure apt::ppa can read a ppa removed by hand.
363
364
365 ##2013-10-08 - Release 1.3.0
366 ###Summary
367
368 This major feature in this release is the new apt::unattended_upgrades class,
369 allowing you to handle Ubuntu's unattended feature.  This allows you to select
370 specific packages to automatically upgrade without any further user
371 involvement.
372
373 In addition we extend our Wheezy support, add proxy support to apt:ppa and do
374 various cleanups and tweaks.
375
376 ####Features
377 - Add apt::unattended_upgrades support for Ubuntu.
378 - Add wheezy backports support.
379 - Use the geoDNS http.debian.net instead of the main debian ftp server.
380 - Add `options` parameter to apt::ppa in order to pass options to apt-add-repository command.
381 - Add proxy support for apt::ppa (uses proxy_host and proxy_port from apt).
382
383 ####Bugfixes
384 - Fix regsubst() calls to quote single letters (for future parser).
385 - Fix lint warnings and other misc cleanup.
386
387
388 ##2013-07-03 - Release 1.2.0
389
390 ####Features
391 - Add geppetto `.project` natures
392 - Add GH auto-release
393 - Add `apt::key::key_options` parameter
394 - Add complex pin support using distribution properties for `apt::pin` via new properties:
395   - `apt::pin::codename`
396   - `apt::pin::release_version`
397   - `apt::pin::component`
398   - `apt::pin::originator`
399   - `apt::pin::label`
400 - Add source architecture support to `apt::source::architecture`
401
402 ####Bugfixes
403 - Use apt-get instead of aptitude in apt::force
404 - Update default backports location
405 - Add dependency for required packages before apt-get update
406
407
408 ##2013-06-02 - Release 1.1.1
409 ###Summary
410
411 This is a bug fix release that resolves a number of issues:
412
413 * By changing template variable usage, we remove the deprecation warnings
414   for Puppet 3.2.x
415 * Fixed proxy file removal, when proxy absent
416
417 Some documentation, style and whitespaces changes were also merged. This
418 release also introduced proper rspec-puppet unit testing on Travis-CI to help
419 reduce regression.
420
421 Thanks to all the community contributors below that made this patch possible.
422
423 #### Detail Changes
424
425 * fix minor comment type (Chris Rutter)
426 * whitespace fixes (Michael Moll)
427 * Update travis config file (William Van Hevelingen)
428 * Build all branches on travis (William Van Hevelingen)
429 * Standardize travis.yml on pattern introduced in stdlib (William Van Hevelingen)
430 * Updated content to conform to README best practices template (Lauren Rother)
431 * Fix apt::release example in readme (Brian Galey)
432 * add @ to variables in template (Peter Hoeg)
433 * Remove deprecation warnings for pin.pref.erb as well (Ken Barber)
434 * Update travis.yml to latest versions of puppet (Ken Barber)
435 * Fix proxy file removal (Scott Barber)
436 * Add spec test for removing proxy configuration (Dean Reilly)
437 * Fix apt::key listing longer than 8 chars (Benjamin Knofe)
438
439
440
441
442 ## Release 1.1.0
443 ###Summary
444
445 This release includes Ubuntu 12.10 (Quantal) support for PPAs.
446
447 ---
448
449 ##2012-05-25 - Puppet Labs <info@puppetlabs.com> - Release 0.0.4
450 ###Summary
451
452  * Fix ppa list filename when there is a period in the PPA name
453  * Add .pref extension to apt preferences files
454  * Allow preferences to be purged
455  * Extend pin support
456
457
458 ##2012-05-04 - Puppet Labs <info@puppetlabs.com> - Release 0.0.3
459 ###Summary
460  
461  * only invoke apt-get update once
462  * only install python-software-properties if a ppa is added
463  * support 'ensure => absent' for all defined types
464  * add apt::conf
465  * add apt::backports
466  * fixed Modulefile for module tool dependency resolution
467  * configure proxy before doing apt-get update
468  * use apt-get update instead of aptitude for apt::ppa
469  * add support to pin release
470
471
472 ##2012-03-26 - Puppet Labs <info@puppetlabs.com> - Release 0.0.2
473 ###Summary
474
475 * 41cedbb (#13261) Add real examples to smoke tests.
476 * d159a78 (#13261) Add key.pp smoke test
477 * 7116c7a (#13261) Replace foo source with puppetlabs source
478 * 1ead0bf Ignore pkg directory.
479 * 9c13872 (#13289) Fix some more style violations
480 * 0ea4ffa (#13289) Change test scaffolding to use a module & manifest dir fixture path
481 * a758247 (#13289) Clean up style violations and fix corresponding tests
482 * 99c3fd3 (#13289) Add puppet lint tests to Rakefile
483 * 5148cbf (#13125) Apt keys should be case insensitive
484 * b9607a4 Convert apt::key to use anchors
485
486
487 ##2012-03-07 - Puppet Labs <info@puppetlabs.com> - Release 0.0.1
488 ###Summary
489
490 * d4fec56 Modify apt::source release parameter test
491 * 1132a07 (#12917) Add contributors to README
492 * 8cdaf85 (#12823) Add apt::key defined type and modify apt::source to use it
493 * 7c0d10b (#12809) $release should use $lsbdistcodename and fall back to manual input
494 * be2cc3e (#12522) Adjust spec test for splitting purge
495 * 7dc60ae (#12522) Split purge option to spare sources.list
496 * 9059c4e Fix source specs to test all key permutations
497 * 8acb202 Add test for python-software-properties package
498 * a4af11f Check if python-software-properties is defined before attempting to define it.
499 * 1dcbf3d Add tests for required_packages change
500 * f3735d2 Allow duplicate $required_packages
501 * 74c8371 (#12430) Add tests for changes to apt module
502 * 97ebb2d Test two sources with the same key
503 * 1160bcd (#12526) Add ability to reverse apt { disable_keys => true }
504 * 2842d73 Add Modulefile to puppet-apt
505 * c657742 Allow the use of the same key in multiple sources
506 * 8c27963 (#12522) Adding purge option to apt class
507 * 997c9fd (#12529) Add unit test for apt proxy settings
508 * 50f3cca (#12529) Add parameter to support setting a proxy for apt
509 * d522877 (#12094) Replace chained .with_* with a hash
510 * 8cf1bd0 (#12094) Remove deprecated spec.opts file
511 * 2d688f4 (#12094) Add rspec-puppet tests for apt
512 * 0fb5f78 (#12094) Replace name with path in file resources
513 * f759bc0 (#11953) Apt::force passes $version to aptitude
514 * f71db53 (#11413) Add spec test for apt::force to verify changes to unless
515 * 2f5d317 (#11413) Update dpkg query used by apt::force
516 * cf6caa1 (#10451) Add test coverage to apt::ppa
517 * 0dd697d include_src parameter in example; Whitespace cleanup
518 * b662eb8 fix typos in "repositories"
519 * 1be7457 Fix (#10451) - apt::ppa fails to "apt-get update" when new PPA source is added
520 * 864302a Set the pin priority before adding the source (Fix #10449)
521 * 1de4e0a Refactored as per mlitteken
522 * 1af9a13 Added some crazy bash madness to check if the ppa is installed already. Otherwise the manifest tries to add it on every run!
523 * 52ca73e (#8720) Replace Apt::Ppa with Apt::Builddep
524 * 5c05fa0 added builddep command.
525 * a11af50 added the ability to specify the content of a key
526 * c42db0f Fixes ppa test.
527 * 77d2b0d reformatted whitespace to match recommended style of 2 space indentation.
528 * 27ebdfc ignore swap files.
529 * 377d58a added smoke tests for module.
530 * 18f614b reformatted apt::ppa according to recommended style.
531 * d8a1e4e Created a params class to hold global data.
532 * 636ae85 Added two params for apt class
533 * 148fc73 Update LICENSE.
534 * ed2d19e Support ability to add more than one PPA
535 * 420d537 Add call to apt-update after add-apt-repository in apt::ppa
536 * 945be77 Add package definition for python-software-properties
537 * 71fc425 Abs paths for all commands
538 * 9d51cd1 Adding LICENSE
539 * 71796e3 Heading fix in README
540 * 87777d8 Typo in README
541 * f848bac First commit