From b0e6bc6d84c041f8438937324f60dabfad755752 Mon Sep 17 00:00:00 2001 From: Eimhin Laverty Date: Mon, 13 Aug 2018 14:55:23 +0100 Subject: [PATCH] (MODULES-7661) - Release prep for 3.0.0 release --- .gitignore | 1 + .pdkignore | 1 + .rubocop.yml | 3 + .sync.yml | 6 + .travis.yml | 16 +-- CHANGELOG.md | 25 +++- Gemfile | 2 +- HISTORY.md | 296 ++++++++++++++++++++++++++++++++++++++++++++ Rakefile | 69 +++++++++++ metadata.json | 6 +- spec/spec_helper.rb | 9 ++ 11 files changed, 421 insertions(+), 13 deletions(-) create mode 100644 HISTORY.md diff --git a/.gitignore b/.gitignore index 49bc2a4..650022e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.git/ .*.sw[op] .metadata .yardoc diff --git a/.pdkignore b/.pdkignore index 49bc2a4..650022e 100644 --- a/.pdkignore +++ b/.pdkignore @@ -1,3 +1,4 @@ +.git/ .*.sw[op] .metadata .yardoc diff --git a/.rubocop.yml b/.rubocop.yml index 7ed6225..54d1597 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -71,6 +71,7 @@ RSpec/MessageSpies: Style/Documentation: Exclude: - lib/puppet/parser/functions/**/* + - spec/**/* Style/WordArray: EnforcedStyle: brackets Style/CollectionMethods: @@ -81,6 +82,8 @@ Style/StringMethods: Enabled: true Layout/EndOfLine: Enabled: false +Layout/IndentHeredoc: + Enabled: false Metrics/AbcSize: Enabled: false Metrics/BlockLength: diff --git a/.sync.yml b/.sync.yml index 6dd4f21..da6e8c3 100644 --- a/.sync.yml +++ b/.sync.yml @@ -10,6 +10,12 @@ - release Gemfile: + optional: + ':development': + - gem: 'github_changelog_generator' + git: 'https://github.com/skywinder/github-changelog-generator' + ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018' + condition: "Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2')" required: ':system_tests': - gem: 'puppet-module-posix-system-r#{minor_version}' diff --git a/.travis.yml b/.travis.yml index 76b202c..0ea4e0a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,7 @@ script: - 'bundle exec rake $CHECK' bundler_args: --without system_tests rvm: - - 2.4.1 + - 2.4.4 env: global: - BEAKER_PUPPET_COLLECTION=puppet5 PUPPET_GEM_VERSION="~> 5.0" @@ -23,16 +23,16 @@ matrix: - bundler_args: dist: trusty - env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_set=docker/centos-7 - rvm: 2.4.1 + env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_set=docker/centos-7 BEAKER_TESTMODE=apply + rvm: 2.4.4 script: bundle exec rake beaker services: docker sudo: required - bundler_args: dist: trusty - env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_set=docker/ubuntu-14.04 - rvm: 2.4.1 + env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_set=docker/ubuntu-14.04 BEAKER_TESTMODE=apply + rvm: 2.4.4 script: bundle exec rake beaker services: docker sudo: required @@ -45,9 +45,9 @@ matrix: rvm: 2.1.9 branches: only: - - master - - /^v\d/ - - release + - master + - /^v\d/ + - release notifications: email: false deploy: diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b4cf10..d905ea4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,24 @@ -## Supported Release [2.4.0] +# Change log + +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/) and this project adheres to [Semantic Versioning](http://semver.org). + +## [3.0.0](https://github.com/puppetlabs/puppetlabs-java/tree/3.0.0) (2018-08-13) + +[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/2.4.0...3.0.0) + +### Changed + +- \[FM-6963\] Removal of unsupported OS from java [\#295](https://github.com/puppetlabs/puppetlabs-java/pull/295) ([david22swan](https://github.com/david22swan)) + +### Added + +- \(MODULES-7561\) - Addition of support for Ubuntu 18.04 to java [\#299](https://github.com/puppetlabs/puppetlabs-java/pull/299) ([david22swan](https://github.com/david22swan)) + +### Fixed + +- Remove ensure\_resource to avoid potential conflict [\#287](https://github.com/puppetlabs/puppetlabs-java/pull/287) ([sevencastles](https://github.com/sevencastles)) + +## 2.4.0 ### Summary This release uses the PDK convert functionality which in return makes the module PDK compliant. Also includes a clean up from Rubocop. @@ -294,3 +314,6 @@ Jeff McCune [2.3.0]:https://github.com/puppetlabs/puppetlabs-java/compare/2.2.0...2.3.0 [2.2.0]:https://github.com/puppetlabs/puppetlabs-java/compare/2.1.1...2.2.0 + + +\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* diff --git a/Gemfile b/Gemfile index a7ec820..27a28c3 100644 --- a/Gemfile +++ b/Gemfile @@ -33,7 +33,7 @@ group :development do gem "puppet-module-posix-dev-r#{minor_version}", require: false, platforms: [:ruby] gem "puppet-module-win-default-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw] gem "puppet-module-win-dev-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw] - gem "puppet-blacksmith", '~> 3.4', require: false, platforms: [:ruby] + gem "github_changelog_generator", require: false, git: 'https://github.com/skywinder/github-changelog-generator', ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018' if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2') end group :system_tests do gem "puppet-module-posix-system-r#{minor_version}", require: false, platforms: [:ruby] diff --git a/HISTORY.md b/HISTORY.md new file mode 100644 index 0000000..4af830e --- /dev/null +++ b/HISTORY.md @@ -0,0 +1,296 @@ +## 2.4.0 +### Summary +This release uses the PDK convert functionality which in return makes the module PDK compliant. Also includes a clean up from Rubocop. + +#### Changed +- 1.3.2 PDK convert has been applied [MODULES-6456](https://tickets.puppetlabs.com/browse/MODULES-6456) +- The modules has undergone a Rubocop cleanup. + +#### Fixed +- $java_home for SLES 11.4 has been updated to the correct location. + +## Supported Release [2.3.0] +### Summary +This release is in order to implement Rubocop changes into the module. + +#### Added +- Several Modulesync changes have been made. +- Rubocop has been implemented in the module. +- CentOS 7 is now supported. +- Red Hat Enterprise Linux (RHEL) 7 is now supported. +- Ubuntu artful 1710 now supported. +- Bionic 1804 now supported. + +## Supported Release [2.2.0] +### Summary +This release is a maintenance release that includes a roll up of minor changes. + +#### Added +- Addition of Ubuntu for Oracle Java. +- Addition of Debian 9 in supported versions. +- Addition of OpenBSD case and use `realpath` rather than `readlink` in Java Default Home Facter fact. + +#### Removed +- Removal of OpenBSD as a special case and deprecated `with_env` in Java Version Facter Facter fact. + +## Supported Release 2.1.1 +### Summary +This release is a maintenance release that includes a roll up of minor changes. + +#### Added +- Basic Arch Linux, Cloud Linux and Ubuntu 17.04 compatibility. +- Metadata bump for Puppet 5. +- Search for matching line with java version. +- ([MODULES-4069](https://tickets.puppet.com/browse/MODULES-4069)) Fail when required params are not available in params. +- A test for java version when java not installed. +- Allow latest archive version as dependency. + +#### Changed +- CONTRIBUTING.md document includes updates. +- Removal of Ubuntu 10.04 ad 12.04, Debian 6 in supported versions. + +## Supported Release 2.1.0 +### Summary +This release adds fixes to restore the ability to install Oracle Java. It also fixes the paths for the latest RHEL 7 1.7.0 and 1.8.0 OpenJDKs. + +### Added +- java::oracle parameter `url` +- java::oracle parameter `url_hash` + +### Fixed +- Let `java_default_home` fact work when /usr/bin/java does not exist +- Add puppet 4 parameter types +- Use `/usr/lib/jvm/java-1.x.0` symlinks for `java_home` defaults. + +## Supported Release 2.0.0 +### Summary + +This is a major release including some bug fixes, new parameters, and general module updates. + +**This release drops Puppet 3 support** + +#### Added +- Debian Stretch, Yakkety Yak, Amazon Linux, Oracle Linux, Scientific Linux CERN compatibility +- `version_major` and `version_minor` parameters for specifying Java SE version to install +- `$JAVA_HOME` now set by the module on compatible systems. The `java_home` parameter is also provided for manual setting. [MODULES-2971](https://tickets.puppetlabs.com/browse/MODULES-2971) +- `proxy_server` and `proxy_type` for choosing a proxy server to get Java from + +#### Changed +- Moved lower Puppet version requirement to 4.7.0 + +#### Fixed +- Module no longer downloads the Java archive on Puppet runs if Java is already installed. +- java_default_home fact is not always correct on oracle packages [MODULES-4050](https://tickets.puppetlabs.com/browse/MODULES-4050) +- Order of operations for archives [MODULES-4751](https://tickets.puppetlabs.com/browse/https://tickets.puppetlabs.com/browse/MODULES-4751) +- Increase Xmx setting for `java_version` fact [MODULES-4736](https://tickets.puppetlabs.com/browse/MODULES-4736) + +## Supported Release 1.6.0 +### Summary + +Addition of a new supported OS, along with several other features and bugfixes. + +#### Features +- Ubuntu 16.04 support. +- Addition example for installing Java 8. +- Update to newest modulesync_configs. +- Addition of RedHat for Oracle Java. + +#### Bugfixes +- Custom archive type now given extract_path. +- Fix for rspec deprectation warnings. +- Typo fixes for readme. +- Fixed tests to run under strict variables. +- Updated Java package for SLES 11.4. + +## Supported Release 1.5.0 +### Summary + +A release which has several support additions for different OSes. Also a couple of additional features and a few bug fixes. + +#### Features +- Added Ubuntu 15.10 compatibility. +- Addition of two facts: java_libjvm_path and java_default_home. +- Added support for oracle-j2re1.8 and oracle-j2sdk1.8. +- Adds FreeBSD Support. +- Exposed the Puppet package resources install_options parameter via a new class parameter named package_options. +- Debian 8 support. +- Add support for official Oracle Java SE jdk and jre packages for CentOS. +- Use java 8 as the default on RHEL > 7.0. + +#### Bugfixes +- Updated fixtures.yml to use git instead of http for stdlib. +- Updates to current msync configs. +- Small README updates and syntax error fixes. + +## Supported Release 1.4.3 +### Summary + +Small release for support of newer PE versions. This increments the version of PE in the metadata.json file. + +## 2015-10-07 - Supported Release 1.4.2 +### Summary +This release fixes the fact to not trigger java every time on OS X when it is not available. + +#### Bugfixes +- Causes java\_version fact to not run `java` when java is not installed on OS X + +## 2015-07-16 - Supported Release 1.4.1 +### Summary +This release updates the metadata for the upcoming release of PE and update params for OEL to match metadata + +#### Bugfixes: +- Add missing OEL to params + +## 2015-07-07 - Supported Release 1.4.0 +### Summary +This release adds several new features, bugfixes, documentation updates, and test improvements. + +#### Features: +- Puppet 4 support and testing +- Adds support for several Operating Systems + - Ubuntu 15.04 + - OpenBSD 5.6, 5.7 + - Fedora 20, 21, 22 + +#### Bugfixes: +- Fixes java_version fact to work on large systems. (MODULES-1749) +- Improves maintainability of java_version fact. +- Fixes java package names on Fedora 21+. +- Fixes java install problems on Puppet 3.7.5 - 3.8.1 (PUP-4520) +- Fixes create-java-alternatives commands on RedHat distros. +- Fixes bug with Debian systems missing java-common package. + +## 2015-01-20 - Supported Release 1.3.0 +### Summary +This release adds 3 new facts for determining Java version, adds RHEL alternatives support, adds utopic support, and fixes the flag for `update-java-alternatives` when installed from a headless pacakge. + +#### Features +- Added RHEL support for alternatives +- New facts + - java_major_version + - java_patch_level + - java_version +- Add support for utopic + +#### Bugfixes +- Use `--jre-headless` in the `update-java-alternatives` command when installed from a `headless` package + +## 2014-11-11 - Supported Version 1.2.0 + +### Summary: +This release adds SLES 12 support and is tested for Future Parser Support + +#### Bugfixes: +- Several readme updates +- Testcase flexability increased + +#### Features: +- Add SLES 12 support +- Future Parser tested +- Validated against PE 3.7 + +## 2014-08-25 - Supported Version 1.1.2 + +### Summary: +This release begins the support coverage of the puppetlabs-java module. + +### Bugfixes: +- Update java alternative values from deprecated names +- Readme updated +- Testing updated + +## 2014-05-02 - Version 1.1.1 + +### Summary: + +Add support for new versions of Debian and Ubuntu! + +#### Features: +- Add support for Ubuntu Trusty (14.04) +- Add support for Debian Jessie (8.x) + +## 2014-01-06 - Version 1.1.0 + +### Summary: + +Primarily a release for Ubuntu users! + +#### Features: +- Add support for Ubuntu Saucy (13.10) +- Add `java_home` parameter for centralized setting of JAVA_HOME. +- Add Scientific Linux + +#### Bugfixes: +- Plus signs are valid in debian/ubuntu package names. + +## 2013-08-01 - Version 1.0.1 + +Matthaus Owens +* Update java packages for Fedora systems + +## 2013-07-29 - Version 1.0.0 + +#### Detailed Changes + +Krzysztof SuszyƄski +* Adding support for Oracle Enterprise Linux + +Peter Drake +* Add support for natty + +Robert Munteanu +* Add support for OpenSUSE + +Martin Jackson +* Added support Amazon Linux using facter >= 1.7.x + +Gareth Rushgrove +Brett Porter +* Fixes for older versions of CentOS +* Improvements to module build and tests + +Nathan R Valentine +* Add support for Ubuntu quantal and raring + +Sharif Nassar +* Add support for Debian alternatives, and more than one JDK/JRE per platform. + +## 2013-04-04 - Version 0.3.0 +Reid Vandewiele - +* Refactor, introduce params pattern + +## 2012-11-15 - Version 0.2.0 +Scott Schneider +* Add Solaris support + +## 2011-06-16 - Version 0.1.5 +Jeff McCune +* Add Debian based distro (Lucid) support + +## 2011-06-02 - Version 0.1.4 +Jeff McCune +* Fix class composition ordering problems + +## 2011-05-28 - Version 0.1.3 +Jeff McCune +* Remove stages + +## 2011-05-26 - Version 0.1.2 +Jeff McCune +* Changes JRE/JDK selection class parameter to $distribution + +## 2011-05-25 - Version 0.1.1 +Jeff McCune +* Re-did versioning to follow semantic versioning +* Add validation of class parameters + +## 2011-05-24 - Version 0.1.0 +Jeff McCune +* Default to JDK version 6u25 + +## 2011-05-24 - Version 0.0.1 +Jeff McCune +* Initial release + +[2.3.0]:https://github.com/puppetlabs/puppetlabs-java/compare/2.2.0...2.3.0 +[2.2.0]:https://github.com/puppetlabs/puppetlabs-java/compare/2.1.1...2.2.0 diff --git a/Rakefile b/Rakefile index d4e36da..204fb18 100644 --- a/Rakefile +++ b/Rakefile @@ -1,6 +1,75 @@ require 'puppetlabs_spec_helper/rake_tasks' require 'puppet-syntax/tasks/puppet-syntax' require 'puppet_blacksmith/rake_tasks' if Bundler.rubygems.find_name('puppet-blacksmith').any? +require 'github_changelog_generator/task' if Bundler.rubygems.find_name('github_changelog_generator').any? + +def changelog_user + return unless Rake.application.top_level_tasks.include? "changelog" + returnVal = nil || JSON.load(File.read('metadata.json'))['author'] + raise "unable to find the changelog_user in .sync.yml, or the author in metadata.json" if returnVal.nil? + puts "GitHubChangelogGenerator user:#{returnVal}" + returnVal +end + +def changelog_project + return unless Rake.application.top_level_tasks.include? "changelog" + returnVal = nil || JSON.load(File.read('metadata.json'))['name'] + raise "unable to find the changelog_project in .sync.yml or the name in metadata.json" if returnVal.nil? + puts "GitHubChangelogGenerator project:#{returnVal}" + returnVal +end + +def changelog_future_release + return unless Rake.application.top_level_tasks.include? "changelog" + returnVal = JSON.load(File.read('metadata.json'))['version'] + raise "unable to find the future_release (version) in metadata.json" if returnVal.nil? + puts "GitHubChangelogGenerator future_release:#{returnVal}" + returnVal +end PuppetLint.configuration.send('disable_relative') +if Bundler.rubygems.find_name('github_changelog_generator').any? + GitHubChangelogGenerator::RakeTask.new :changelog do |config| + raise "Set CHANGELOG_GITHUB_TOKEN environment variable eg 'export CHANGELOG_GITHUB_TOKEN=valid_token_here'" if Rake.application.top_level_tasks.include? "changelog" and ENV['CHANGELOG_GITHUB_TOKEN'].nil? + config.user = "#{changelog_user}" + config.project = "#{changelog_project}" + config.future_release = "#{changelog_future_release}" + config.exclude_labels = ['maintenance'] + config.header = "# Change log\n\nAll 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/) and this project adheres to [Semantic Versioning](http://semver.org)." + config.add_pr_wo_labels = true + config.issues = false + config.merge_prefix = "### UNCATEGORIZED PRS; GO LABEL THEM" + config.configure_sections = { + "Changed" => { + "prefix" => "### Changed", + "labels" => ["backwards-incompatible"], + }, + "Added" => { + "prefix" => "### Added", + "labels" => ["feature", "enhancement"], + }, + "Fixed" => { + "prefix" => "### Fixed", + "labels" => ["bugfix"], + }, + } + end +else + desc 'Generate a Changelog from GitHub' + task :changelog do + raise <= Gem::Version.new('2.2.2')" +EOM + end +end + diff --git a/metadata.json b/metadata.json index 4ab501f..2f926fd 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "name": "puppetlabs-java", - "version": "2.4.0", + "version": "3.0.0", "author": "puppetlabs", "summary": "Installs the correct Java package on various platforms.", "license": "Apache-2.0", @@ -88,6 +88,6 @@ } ], "template-url": "https://github.com/puppetlabs/pdk-templates", - "template-ref": "heads/master-0-g34e3266", - "pdk-version": "1.5.0" + "template-ref": "1.6.1-0-g6b0d497", + "pdk-version": "1.6.1" } diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index e117192..e69d11d 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -34,3 +34,12 @@ RSpec.configure do |c| Puppet.settings[:strict] = :warning end end + +def ensure_module_defined(module_name) + module_name.split('::').reduce(Object) do |last_module, next_module| + last_module.const_set(next_module, Module.new) unless last_module.const_defined?(next_module) + last_module.const_get(next_module) + end +end + +# 'spec_overrides' from sync.yml will appear below this line