metasploit-version 0.1.2-java → 0.1.3-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +2 -0
  3. data/.travis.yml +10 -3
  4. data/CHANGELOG.md +6 -0
  5. data/CONTRIBUTING.md +10 -44
  6. data/Gemfile +12 -8
  7. data/RELEASING.md +86 -0
  8. data/Rakefile +5 -4
  9. data/UPGRADING.md +1 -0
  10. data/app/templates/.rspec.tt +2 -0
  11. data/app/templates/CHANGELOG.md.tt +18 -0
  12. data/app/templates/CONTRIBUTING.md.tt +122 -0
  13. data/app/templates/RELEASING.md.tt +99 -0
  14. data/app/templates/Rakefile.tt +7 -0
  15. data/app/templates/UPGRADING.md.tt +1 -0
  16. data/app/templates/lib/versioned/version.rb.tt +64 -0
  17. data/app/templates/spec/lib/versioned/version_spec.rb.tt +3 -0
  18. data/app/templates/spec/lib/versioned_spec.rb.tt +4 -0
  19. data/app/templates/spec/spec_helper.rb.tt +76 -0
  20. data/bin/metasploit-version +12 -0
  21. data/config/cucumber.yml +3 -0
  22. data/features/metasploit-version/install/add_development_dependency.feature +68 -0
  23. data/features/metasploit-version/install/bundle_install.feature +24 -0
  24. data/features/metasploit-version/install/changelog.feature +29 -0
  25. data/features/metasploit-version/install/conflict.feature +45 -0
  26. data/features/metasploit-version/install/contributing.feature +139 -0
  27. data/features/metasploit-version/install/namespace_spec/gem_version_constant.feature +154 -0
  28. data/features/metasploit-version/install/namespace_spec/namespace.feature +33 -0
  29. data/features/metasploit-version/install/namespace_spec/version_constant.feature +179 -0
  30. data/features/metasploit-version/install/rake_spec.feature +27 -0
  31. data/features/metasploit-version/install/releasing/ruby_versions.feature +50 -0
  32. data/features/metasploit-version/install/releasing/versioning.feature +138 -0
  33. data/features/metasploit-version/install/steps/gemspec_steps.rb +19 -0
  34. data/features/metasploit-version/install/upgrading.feature +19 -0
  35. data/features/metasploit-version/install/version.feature +11 -0
  36. data/features/metasploit-version/install/version/namespace.feature +157 -0
  37. data/features/metasploit-version/install/version/prerelease.feature +154 -0
  38. data/features/metasploit-version/install/version_spec/namespace.feature +32 -0
  39. data/features/metasploit-version/install/version_spec/testing/branch_from_master.feature +40 -0
  40. data/features/metasploit-version/install/version_spec/testing/branching_from_branch.feature +161 -0
  41. data/features/metasploit-version/install/version_spec/testing/merge_branch_to_master.feature +97 -0
  42. data/features/{shared/examples/metasploit/version/version_module/prerelease/git/step_definitions → step_definitions}/environment_variable_steps.rb +1 -1
  43. data/features/{shared/examples/metasploit/version/version_module/prerelease/git/step_definitions → step_definitions}/git_steps.rb +11 -3
  44. data/features/support/env.rb +15 -11
  45. data/lib/metasploit/version.rb +1 -0
  46. data/lib/metasploit/version/cli.rb +321 -0
  47. data/lib/metasploit/version/version.rb +2 -2
  48. data/metasploit-version.gemspec +2 -2
  49. data/spec/lib/metasploit/version/branch_spec.rb +1 -3
  50. data/spec/lib/metasploit/version/cli_spec.rb +514 -0
  51. data/spec/lib/metasploit/version/version_spec.rb +2 -4
  52. data/spec/lib/metasploit/version_spec.rb +2 -4
  53. data/spec/spec_helper.rb +63 -1
  54. data/spec/support/shared/examples/metasploit/version/version_module.rb +3 -1
  55. metadata +81 -7
@@ -0,0 +1,7 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'bundler/setup'
3
+ require 'rspec/core/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ task default: :spec
@@ -0,0 +1 @@
1
+ No Deprecations or Incompatible Changes have been introduced at this time
@@ -0,0 +1,64 @@
1
+ <%- namespaces.each_with_index do |module_name, i| -%>
2
+ <%= ' ' * i %>module <%= module_name %>
3
+ <%- end -%>
4
+ <%- indent = ' ' * namespaces.length -%>
5
+ <%= indent %># Holds components of {VERSION} as defined by {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0}.
6
+ <%= indent %>module Version
7
+ <%= indent %> #
8
+ <%= indent %> # CONSTANTS
9
+ <%= indent %> #
10
+
11
+ <%= indent %> # The major version number.
12
+ <%= indent %> MAJOR = <%= options[:major] %>
13
+ <%= indent %> # The minor version number, scoped to the {MAJOR} version number.
14
+ <%= indent %> MINOR = <%= options[:minor] %>
15
+ <%= indent %> # The patch version number, scoped to the {MAJOR} and {MINOR} version numbers.
16
+ <%= indent %> PATCH = <%= options[:patch] %>
17
+ <%- if prerelease -%>
18
+ <%= indent %> # The prerelease version, scoped to the {MAJOR}, {MINOR}, and {PATCH} version numbers.
19
+ <%= indent %> PRERELEASE = '<%= prerelease %>'
20
+ <%- end -%>
21
+
22
+ <%= indent %> #
23
+ <%= indent %> # Module Methods
24
+ <%= indent %> #
25
+
26
+ <%= indent %> # The full version string, including the {<%= namespace_name %>::Version::MAJOR},
27
+ <%= indent %> # {<%= namespace_name %>::Version::MINOR}, {<%= namespace_name %>::Version::PATCH}, and optionally, the
28
+ <%= indent %> # `<%= namespace_name %>::Version::PRERELEASE` in the
29
+ <%= indent %> # {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0} format.
30
+ <%= indent %> #
31
+ <%= indent %> # @return [String] '{<%= namespace_name %>::Version::MAJOR}.{<%= namespace_name %>::Version::MINOR}.{<%= namespace_name %>::Version::PATCH}' on master.
32
+ <%= indent %> # '{<%= namespace_name %>::Version::MAJOR}.{<%= namespace_name %>::Version::MINOR}.{<%= namespace_name %>::Version::PATCH}-PRERELEASE'
33
+ <%= indent %> # on any branch other than master.
34
+ <%= indent %> def self.full
35
+ <%= indent %> version = "#{MAJOR}.#{MINOR}.#{PATCH}"
36
+
37
+ <%= indent %> if defined? PRERELEASE
38
+ <%= indent %> version = "#{version}-#{PRERELEASE}"
39
+ <%= indent %> end
40
+
41
+ <%= indent %> version
42
+ <%= indent %> end
43
+
44
+ <%= indent %> # The full gem version string, including the {<%= namespace_name %>::Version::MAJOR},
45
+ <%= indent %> # {<%= namespace_name %>::Version::MINOR}, {<%= namespace_name %>::Version::PATCH}, and optionally, the
46
+ <%= indent %> # `<%= namespace_name %>::Version::PRERELEASE` in the
47
+ <%= indent %> # {http://guides.rubygems.org/specification-reference/#version RubyGems versioning} format.
48
+ <%= indent %> #
49
+ <%= indent %> # @return [String] '{<%= namespace_name %>::Version::MAJOR}.{<%= namespace_name %>::Version::MINOR}.{<%= namespace_name %>::Version::PATCH}'
50
+ <%= indent %> # on master. '{<%= namespace_name %>::Version::MAJOR}.{<%= namespace_name %>::Version::MINOR}.{<%= namespace_name %>::Version::PATCH}.PRERELEASE'
51
+ <%= indent %> # on any branch other than master.
52
+ <%= indent %> def self.gem
53
+ <%= indent %> full.gsub('-', '.pre.')
54
+ <%= indent %> end
55
+ <%= indent %>end
56
+
57
+ <%= indent %># (see Version.gem)
58
+ <%= indent %>GEM_VERSION = Version.gem
59
+
60
+ <%= indent %># (see Version.full)
61
+ <%= indent %>VERSION = Version.full
62
+ <%- (namespaces.length - 1).downto(0) do |i| -%>
63
+ <%= ' ' * i %>end
64
+ <%- end -%>
@@ -0,0 +1,3 @@
1
+ RSpec.describe <%= namespace_name %>::Version do
2
+ it_should_behave_like 'Metasploit::Version Version Module'
3
+ end
@@ -0,0 +1,4 @@
1
+ RSpec.describe <%= namespace_name %> do
2
+ it_should_behave_like 'Metasploit::Version GEM_VERSION constant'
3
+ it_should_behave_like 'Metasploit::Version VERSION constant'
4
+ end
@@ -0,0 +1,76 @@
1
+ require 'bundler/setup'
2
+
3
+ #
4
+ # Gems
5
+ #
6
+
7
+ require 'metasploit/version'
8
+
9
+ #
10
+ # Project
11
+ #
12
+
13
+ require '<%= namespaced_path %>'
14
+
15
+ # Use find_all_by_name instead of find_by_name as find_all_by_name will return pre-release versions
16
+ gem_specification = Gem::Specification.find_all_by_name('metasploit-version').first
17
+
18
+ Dir[File.join(gem_specification.gem_dir, 'spec', 'support', '**', '*.rb')].each do |f|
19
+ require f
20
+ end
21
+
22
+ RSpec.configure do |config|
23
+ config.expose_dsl_globally = false
24
+
25
+ # These two settings work together to allow you to limit a spec run
26
+ # to individual examples or groups you care about by tagging them with
27
+ # `:focus` metadata. When nothing is tagged with `:focus`, all examples
28
+ # get run.
29
+ config.filter_run :focus
30
+ config.run_all_when_everything_filtered = true
31
+
32
+ # allow more verbose output when running an individual spec file.
33
+ if config.files_to_run.one?
34
+ # RSpec filters the backtrace by default so as not to be so noisy.
35
+ # This causes the full backtrace to be printed when running a single
36
+ # spec file (e.g. to troubleshoot a particular spec failure).
37
+ config.full_backtrace = true
38
+ end
39
+
40
+ # Print the 10 slowest examples and example groups at the
41
+ # end of the spec run, to help surface which specs are running
42
+ # particularly slow.
43
+ config.profile_examples = 10
44
+
45
+ # Run specs in random order to surface order dependencies. If you find an
46
+ # order dependency and want to debug it, you can fix the order by providing
47
+ # the seed, which is printed after each run.
48
+ # --seed 1234
49
+ config.order = :random
50
+
51
+ # Seed global randomization in this process using the `--seed` CLI option.
52
+ # Setting this allows you to use `--seed` to deterministically reproduce
53
+ # test failures related to randomization by passing the same `--seed` value
54
+ # as the one that triggered the failure.
55
+ Kernel.srand config.seed
56
+
57
+ config.expect_with :rspec do |expectations|
58
+ # Enable only the newer, non-monkey-patching expect syntax.
59
+ expectations.syntax = :expect
60
+ end
61
+
62
+ # rspec-mocks config goes here. You can use an alternate test double
63
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
64
+ config.mock_with :rspec do |mocks|
65
+ # Enable only the newer, non-monkey-patching expect syntax.
66
+ # For more details, see:
67
+ # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
68
+ mocks.syntax = :expect
69
+
70
+ mocks.patch_marshal_to_support_partial_doubles = false
71
+
72
+ # Prevents you from mocking or stubbing a method that does not exist on
73
+ # a real object.
74
+ mocks.verify_partial_doubles = true
75
+ end
76
+ end
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+
5
+ begin
6
+ require 'metasploit/version/cli'
7
+ rescue LoadError
8
+ warn 'Could not load "metasploit/version/cli"'
9
+ exit -1
10
+ end
11
+
12
+ Metasploit::Version::CLI.start
@@ -0,0 +1,3 @@
1
+ ---
2
+ # Don't automatically load simplecov_setup as it will be loaded as needed in Before
3
+ default: --exclude support/simplecov_setup.rb
@@ -0,0 +1,68 @@
1
+ Feature: metasploit-version install adds 'metasploit-version' as a development dependency
2
+
3
+ The `metasploit-version install` command will add 'metasploit-version' to the gem's gemspec if it is not already
4
+ added.
5
+
6
+ Background:
7
+ Given I successfully run `bundle gem add_development_dependency`
8
+ And I cd to "add_development_dependency"
9
+
10
+ Scenario: Not added to gemspec
11
+ When I successfully run `metasploit-version install --force --no-bundle-install`
12
+ Then metasploit-version should be development dependency with semantic version restriction in "add_development_dependency.gemspec"
13
+
14
+ Scenario: No semantic version restriction
15
+ Given I overwrite "add_development_dependency.gemspec" with:
16
+ """
17
+ # coding: utf-8
18
+
19
+ Gem::Specification.new do |spec|
20
+ spec.name = "add_development_dependency"
21
+ spec.version = '0.0.0'
22
+ spec.authors = ["Luke Imhoff"]
23
+ spec.email = ["luke_imhoff@rapid7.com"]
24
+ spec.summary = %q{TODO: Write a short summary. Required.}
25
+ spec.description = %q{TODO: Write a longer description. Optional.}
26
+ spec.homepage = ""
27
+ spec.license = "MIT"
28
+
29
+ spec.files = `git ls-files -z`.split("\x0")
30
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
31
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
32
+ spec.require_paths = ["lib"]
33
+
34
+ spec.add_development_dependency "bundler", "~> 1.6"
35
+ spec.add_development_dependency 'metasploit-version'
36
+ spec.add_development_dependency "rake"
37
+ end
38
+ """
39
+ When I successfully run `metasploit-version install --force --no-bundle-install`
40
+ Then metasploit-version should be development dependency with semantic version restriction in "add_development_dependency.gemspec"
41
+
42
+ Scenario: Semantic version restriction in gemspec
43
+ Given I overwrite "add_development_dependency.gemspec" with:
44
+ """
45
+ # coding: utf-8
46
+
47
+ Gem::Specification.new do |spec|
48
+ spec.name = "add_development_dependency"
49
+ spec.version = '0.0.0'
50
+ spec.authors = ["Luke Imhoff"]
51
+ spec.email = ["luke_imhoff@rapid7.com"]
52
+ spec.summary = %q{TODO: Write a short summary. Required.}
53
+ spec.description = %q{TODO: Write a longer description. Optional.}
54
+ spec.homepage = ""
55
+ spec.license = "MIT"
56
+
57
+ spec.files = `git ls-files -z`.split("\x0")
58
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
59
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
60
+ spec.require_paths = ["lib"]
61
+
62
+ spec.add_development_dependency "bundler", "~> 1.6"
63
+ spec.add_development_dependency 'metasploit-version', '~> 0.0.0'
64
+ spec.add_development_dependency "rake"
65
+ end
66
+ """
67
+ When I successfully run `metasploit-version install --force --no-bundle-install`
68
+ Then metasploit-version should be development dependency with semantic version restriction in "add_development_dependency.gemspec"
@@ -0,0 +1,24 @@
1
+ Feature: metasploit-version install will install dependencies with bundle install
2
+
3
+ After `metasploit-version install` adds the `metasploit-version` as a development dependency to the gemspec,
4
+ `metasploit-version install` should run `bundle install` so that `metasploit-version` itself and its dependencies,
5
+ such as `rspec` are installed so that user can immediately run `rake spec`
6
+
7
+ Scenario:
8
+ Given I build gem from project's "metasploit-version.gemspec"
9
+ And I'm using a clean gemset "installed"
10
+ When I run `bundle list`
11
+ Then the output from "bundle list" should not contain "metasploit-version"
12
+ Given I install latest local "metasploit-version" gem
13
+ And I successfully run `bundle gem installed`
14
+ And I cd to "installed"
15
+ And my git identity is configured
16
+ And I successfully run `git commit --message "bundle gem installed"`
17
+ And I unset the environment variable "TRAVIS_BRANCH"
18
+ And I set the environment variables to:
19
+ | variable | value |
20
+ | TRAVIS_PULL_REQUEST | false |
21
+ And I successfully run `metasploit-version install --force`
22
+ When I run `bundle list`
23
+ Then the output from "bundle list" should contain "metasploit-version"
24
+ And the output from "bundle list" should contain "rspec"
@@ -0,0 +1,29 @@
1
+ Feature: metasploit-version install should add CHANGELOG.md
2
+
3
+ `metasploit-version install` should generate CHANGELOG.md which details the Enhancements, Bug Fixes, Deprecations and
4
+ Incompatible Changes for each release version. Items in each category should link to the associated PR with a
5
+ user-facing summary and contributor credit using their github handle.
6
+
7
+ See https://github.com/intridea/hashie/blob/master/CHANGELOG.md for an example of this item format and
8
+ https://github.com/elixir-lang/elixir/blob/e38f960d7edbf564c8e1b44bd2266ad9eaf6a453/CHANGELOG.md for an example of the
9
+ category breakdown.
10
+
11
+ Scenario:
12
+ Given I successfully run `bundle gem changed`
13
+ And I cd to "changed"
14
+ And my git identity is configured
15
+ And I successfully run `git commit --message "bundle gem changed"`
16
+ And I unset the environment variable "TRAVIS_BRANCH"
17
+ And I set the environment variables to:
18
+ | variable | value |
19
+ | TRAVIS_PULL_REQUEST | false |
20
+ When I successfully run `metasploit-version install --force --no-bundle-install`
21
+ Then the file "CHANGELOG.md" should contain:
22
+ """
23
+ # Next Release
24
+
25
+ * Enhancements
26
+ * Bug Fixes
27
+ * Deprecations
28
+ * Incompatible Changes
29
+ """
@@ -0,0 +1,45 @@
1
+ Feature: metasploit-version install handles conflicts in 'version.rb' and 'Rakefile'
2
+
3
+ `metasploit-version install` will detect if the a version.rb file and/or Rakefile already exists and prompt the user
4
+ for conflict resolution. The user can also non-interactive force the files to be overwritten with --force or skip
5
+ overwriting the files with --skip.
6
+
7
+ Background:
8
+ Given I successfully run `bundle gem metasploit_version_install_conflict`
9
+ And I cd to "metasploit_version_install_conflict"
10
+ And I write to "spec/lib/metasploit_version_install_conflict_spec.rb" with:
11
+ """
12
+ RSpec.describe MetasploitVersionInstallConflict do
13
+ it 'is a Module' do
14
+ expect(described_class).to be_a Module
15
+ end
16
+ end
17
+
18
+ """
19
+
20
+ Scenario: Prompts for confirmation if --force or --skip is not used
21
+ When I run `metasploit-version install --no-bundle-install` interactively
22
+ # to overwrite version.rb
23
+ And I type "y"
24
+ # to overwrite Rakefile
25
+ And I type "y"
26
+ # to overwrite metasploit_version_install_spec.rb
27
+ And I type "y"
28
+ Then the output should contain "conflict Rakefile"
29
+ And the output should contain "conflict lib/metasploit_version_install_conflict/version.rb"
30
+ And the output should contain "conflict spec/lib/metasploit_version_install_conflict_spec.rb"
31
+ And the output should contain "force Rakefile"
32
+ And the output should contain "force lib/metasploit_version_install_conflict/version.rb"
33
+ And the output should contain "force spec/lib/metasploit_version_install_conflict_spec.rb"
34
+
35
+ Scenario: --force will force update version.rb
36
+ When I successfully run `metasploit-version install --force --no-bundle-install`
37
+ Then the output should contain "force Rakefile"
38
+ And the output should contain "force lib/metasploit_version_install_conflict/version.rb"
39
+ And the output should contain "force spec/lib/metasploit_version_install_conflict_spec.rb"
40
+
41
+ Scenario: --skip will not update version.rb
42
+ When I successfully run `metasploit-version install --no-bundle-install --skip`
43
+ Then the output should contain "skip Rakefile"
44
+ And the output should contain "skip lib/metasploit_version_install_conflict/version.rb"
45
+ And the output should contain "skip spec/lib/metasploit_version_install_conflict_spec.rb"
@@ -0,0 +1,139 @@
1
+ Feature: metasploit-version install should add CONTRIBUTING.md
2
+
3
+ `metasploit-version install` should generate CONTRIBUTING.md
4
+
5
+ Scenario:
6
+ Given I successfully run `bundle gem contributed`
7
+ And I cd to "contributed"
8
+ And my git identity is configured
9
+ And I successfully run `git commit --message "bundle gem contributed"`
10
+ And I unset the environment variable "TRAVIS_BRANCH"
11
+ And I set the environment variables to:
12
+ | variable | value |
13
+ | TRAVIS_PULL_REQUEST | false |
14
+ When I successfully run `metasploit-version install --force --no-bundle-install`
15
+ Then the file "CONTRIBUTING.md" should contain:
16
+ """
17
+ # Contributing
18
+
19
+ ## Forking
20
+
21
+ [Fork this repository](https://github.com/rapid7/contributed/fork)
22
+
23
+ ## Branching
24
+
25
+ Branch names follow the format `TYPE/ISSUE/SUMMARY`. You can create it with `git checkout -b TYPE/ISSUE/SUMMARY`.
26
+
27
+ ### `TYPE`
28
+
29
+ `TYPE` can be `bug`, `chore`, or `feature`.
30
+
31
+ ### `ISSUE`
32
+
33
+ `ISSUE` is either a [Github issue](https://github.com/rapid7/contributed/issues) or an issue from some other
34
+ issue tracking software.
35
+
36
+ ### `SUMMARY`
37
+
38
+ `SUMMARY` is is short summary of the purpose of the branch composed of lower case words separated by '-' so that it is a valid `PRERELEASE` for the Gem version.
39
+
40
+ ## Changes
41
+
42
+ ### `PRERELEASE`
43
+
44
+ 1. Update `PRERELEASE` to match the `SUMMARY` in the branch name. If you branched from `master`, and [version.rb](lib/contributed/version.rb) does not have `PRERELEASE` defined, then adding the following lines after `PATCH`:
45
+ ```
46
+ # The prerelease version, scoped to the {MAJOR}, {MINOR}, and {PATCH} version number.
47
+ PRERELEASE = '<SUMMARY>'
48
+ ```
49
+ 2. `rake spec`
50
+ 3. Verify the specs pass, which indicates that `PRERELEASE` was updated correctly.
51
+ 4. Commit the change `git commit -a`
52
+
53
+ ### Your changes
54
+
55
+ Make your changes or however many commits you like, committing each with `git commit`.
56
+
57
+ ### Pre-Pull Request Testing
58
+
59
+ 1. Run specs one last time before opening the Pull Request: `rake spec`
60
+ 2. Verify there was no failures.
61
+
62
+ ### Push
63
+
64
+ Push your branch to your fork on gitub: `git push TYPE/ISSUE/SUMMARY`
65
+
66
+ ### Pull Request
67
+
68
+ * [Create new Pull Request](https://github.com/rapid7/contributed/compare/)
69
+ * Add a Verification Steps to the description comment
70
+
71
+ ```
72
+ # Verification Steps
73
+
74
+ - [ ] `bundle install`
75
+
76
+ ## `rake spec`
77
+ - [ ] `rake spec`
78
+ - [ ] VERIFY no failures
79
+ ```
80
+
81
+ You should also include at least one scenario to manually check the changes outside of specs.
82
+
83
+ * Add a Post-merge Steps comment
84
+
85
+ The 'Post-merge Steps' are a reminder to the reviewer of the Pull Request of how to update the [`PRERELEASE`](lib/contributed/version.rb) so that [version_spec.rb](spec/lib/contributed/version.rb_spec.rb) passes on the target branch after the merge.
86
+
87
+ DESTINATION is the name of the destination branch into which the merge is being made. SOURCE_SUMMARY is the SUMMARY from TYPE/ISSUE/SUMMARY branch name for the SOURCE branch that is being made.
88
+
89
+ When merging to `master`:
90
+
91
+ ```
92
+ # Post-merge Steps
93
+
94
+ Perform these steps prior to pushing to master or the build will be broke on master.
95
+
96
+ ## Version
97
+ - [ ] Edit `lib/contributed/version.rb`
98
+ - [ ] Remove `PRERELEASE` and its comment as `PRERELEASE` is not defined on master.
99
+
100
+ ## Gem build
101
+ - [ ] gem build *.gemspec
102
+ - [ ] VERIFY the gem has no '.pre' version suffix.
103
+
104
+ ## RSpec
105
+ - [ ] `rake spec`
106
+ - [ ] VERIFY version examples pass without failures
107
+
108
+ ## Commit & Push
109
+ - [ ] `git commit -a`
110
+ - [ ] `git push origin master`
111
+ ```
112
+
113
+ When merging to DESTINATION other than `master`:
114
+
115
+ ```
116
+ # Post-merge Steps
117
+
118
+ Perform these steps prior to pushing to DESTINATION or the build will be broke on DESTINATION.
119
+
120
+ ## Version
121
+ - [ ] Edit `lib/contributed/version.rb`
122
+ - [ ] Change `PRERELEASE` from `SOURCE_SUMMARY` to `DESTINATION_SUMMARY` to match the branch (DESTINATION) summary (DESTINATION_SUMMARY)
123
+
124
+ ## Gem build
125
+ - [ ] gem build contributed.gemspec
126
+ - [ ] VERIFY the prerelease suffix has change on the gem.
127
+
128
+ ## RSpec
129
+ - [ ] `rake spec`
130
+ - [ ] VERIFY version examples pass without failures
131
+
132
+ ## Commit & Push
133
+ - [ ] `git commit -a`
134
+ - [ ] `git push origin DESTINATION`
135
+ ```
136
+
137
+ To update the [CHANGELOG.md](CHANGELOG.md) with the merged changes or release the merged code see
138
+ [RELEASING.md](RELEASING.md)
139
+ """