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