gem-release 2.0.0.dev.2 → 2.0.0.dev.3
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.
- checksums.yaml +4 -4
- data/TODO.txt +30 -2
- data/lib/gem/release/cmds/bump.rb +30 -10
- data/lib/gem/release/cmds/tag.rb +3 -2
- data/lib/gem/release/config/files.rb +1 -1
- data/lib/gem/release/context/gemspec.rb +1 -1
- data/lib/gem/release/data.rb +5 -1
- data/lib/gem/release/files/templates/group.rb +1 -1
- data/lib/gem/release/files/version.rb +10 -2
- data/lib/gem/release/helper.rb +2 -1
- data/lib/gem/release/support/gem_command.rb +7 -0
- data/lib/gem/release/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 3379c9a8fe1a960836949e5167f96f83d10c71c7
         | 
| 4 | 
            +
              data.tar.gz: a59c0b440b3d1ffd6cc862f2d696b267b478268d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 3c31dd8dadfea502f17759e37228e920e773d7a7584d84cbc2c58ea5752ea9fd6bfd9ee2499866756feea1a6297d203c13384dee10d7a6b74aaa7a44a5309f82
         | 
| 7 | 
            +
              data.tar.gz: 6e23a458c04035355e4e62c78992e125f17f39a9d1a5d24f26326cdb906ab1477263619b8f6fd88927b27490bba13d205af9384466bdc644f24116141f5dbba9
         | 
    
        data/TODO.txt
    CHANGED
    
    | @@ -3,14 +3,42 @@ | |
| 3 3 | 
             
            - Add defaults to options help output [5]
         | 
| 4 4 | 
             
            - Add specs for all error conditions [6]
         | 
| 5 5 | 
             
            - Add a changelog [7]
         | 
| 6 | 
            +
            - Check for TODO tags [17]
         | 
| 6 7 |  | 
| 7 8 | 
             
            - Make sure we don't double tag the same repo when several args are given [9]
         | 
| 8 9 |  | 
| 10 | 
            +
            - Port "Adding ability to GPG sign commits and tags" [10]
         | 
| 11 | 
            +
              https://github.com/svenfuchs/gem-release/pull/44
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            # Done
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            x Port "Support version files of gems with *rb suffix" done:2017-05-02 [13]
         | 
| 16 | 
            +
              https://github.com/svenfuchs/gem-release/pull/53
         | 
| 17 | 
            +
              Ported
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            x Port "Add --message for BumpCommand", allow to use a config var for this done:2017-05-02 [11]
         | 
| 20 | 
            +
              https://github.com/svenfuchs/gem-release/pull/61
         | 
| 21 | 
            +
              Ported
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            x Port "Maintenance tasks" done:2017-05-02 [12]
         | 
| 24 | 
            +
              https://github.com/svenfuchs/gem-release/pull/57
         | 
| 25 | 
            +
              Ported
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            x Check "bump any version file" done:2017-05-02 [14]
         | 
| 28 | 
            +
              https://github.com/svenfuchs/gem-release/pull/45
         | 
| 29 | 
            +
              Ported
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            x Consider "gem bootstrap --private for private gems" done:2017-05-01 [15]
         | 
| 32 | 
            +
              https://github.com/svenfuchs/gem-release/issues/51
         | 
| 33 | 
            +
              Already covered via custom templates
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            x See if we can remove unused common options from `help` done:2017-05-01 [16]
         | 
| 36 | 
            +
              https://github.com/svenfuchs/gem-release/issues/55
         | 
| 37 | 
            +
              Can't figure out how, without removing options globally for everyone/all other commands
         | 
| 38 | 
            +
             | 
| 9 39 | 
             
            x Release and tag should fail if there are uncommitted changes done:2017-05-01 [8]
         | 
| 10 40 | 
             
              https://github.com/svenfuchs/gem-release/issues/34
         | 
| 11 41 |  | 
| 12 | 
            -
            # Double check
         | 
| 13 | 
            -
             | 
| 14 42 | 
             
            x Misleading success message done:2017-05-01 [4]
         | 
| 15 43 | 
             
              https://github.com/svenfuchs/gem-release/issues/60
         | 
| 16 44 | 
             
                Pushing foo-0.0.5.gem
         | 
| @@ -43,20 +43,32 @@ module Gem | |
| 43 43 |  | 
| 44 44 | 
             
                    DESCR = {
         | 
| 45 45 | 
             
                      version: 'Target version: next [major|minor|patch|pre|release] or a given version number [x.x.x]',
         | 
| 46 | 
            -
                      commit:  ' | 
| 46 | 
            +
                      commit:  'Create a commit after incrementing gem version',
         | 
| 47 | 
            +
                      message: 'Commit message template',
         | 
| 47 48 | 
             
                      push:    'Push the new commit to the git remote repository',
         | 
| 48 49 | 
             
                      remote:  'Git remote to push to (defaults to origin)',
         | 
| 50 | 
            +
                      sign:    'GPG sign the commit message',
         | 
| 49 51 | 
             
                      tag:     'Shortcut for running the `gem tag` command',
         | 
| 50 52 | 
             
                      recurse: 'Recurse into directories that contain gemspec files',
         | 
| 51 | 
            -
                      release: 'Shortcut for the `gem release` command'
         | 
| 53 | 
            +
                      release: 'Shortcut for the `gem release` command',
         | 
| 54 | 
            +
                      file:    'Full path to the version file'
         | 
| 52 55 | 
             
                    }
         | 
| 53 56 |  | 
| 54 57 | 
             
                    DEFAULTS = {
         | 
| 55 | 
            -
                      commit: | 
| 56 | 
            -
                       | 
| 57 | 
            -
                       | 
| 58 | 
            +
                      commit:  true,
         | 
| 59 | 
            +
                      message: 'Bump to %{to} [skip ci]',
         | 
| 60 | 
            +
                      push:    false,
         | 
| 61 | 
            +
                      remote:  'origin'
         | 
| 58 62 | 
             
                    }
         | 
| 59 63 |  | 
| 64 | 
            +
                    opt '-v', '--version VERSION', DESCR[:version] do |value|
         | 
| 65 | 
            +
                      opts[:version] = value
         | 
| 66 | 
            +
                    end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                    opt '-m', '--message', DESCR[:message] do |value|
         | 
| 69 | 
            +
                      opts[:message] = value
         | 
| 70 | 
            +
                    end
         | 
| 71 | 
            +
             | 
| 60 72 | 
             
                    opt '-c', '--[no-]commit', DESCR[:commit] do |value|
         | 
| 61 73 | 
             
                      opts[:commit] = value
         | 
| 62 74 | 
             
                    end
         | 
| @@ -69,8 +81,8 @@ module Gem | |
| 69 81 | 
             
                      opts[:remote] = value
         | 
| 70 82 | 
             
                    end
         | 
| 71 83 |  | 
| 72 | 
            -
                    opt '- | 
| 73 | 
            -
                      opts[: | 
| 84 | 
            +
                    opt '-s', '--sign', DESCR[:sign] do |value|
         | 
| 85 | 
            +
                      opts[:sign] = value
         | 
| 74 86 | 
             
                    end
         | 
| 75 87 |  | 
| 76 88 | 
             
                    opt '-t', '--tag', DESCR[:tag] do |value|
         | 
| @@ -85,6 +97,10 @@ module Gem | |
| 85 97 | 
             
                      opts[:recurse] = value
         | 
| 86 98 | 
             
                    end
         | 
| 87 99 |  | 
| 100 | 
            +
                    opt '--file', DESCR[:file] do |value|
         | 
| 101 | 
            +
                      opts[:file] = value
         | 
| 102 | 
            +
                    end
         | 
| 103 | 
            +
             | 
| 88 104 | 
             
                    MSGS = {
         | 
| 89 105 | 
             
                      bump:          'Bumping %s from version %s to %s',
         | 
| 90 106 | 
             
                      version:       'Changing version in %s from %s to %s',
         | 
| @@ -98,7 +114,7 @@ module Gem | |
| 98 114 |  | 
| 99 115 | 
             
                    CMDS = {
         | 
| 100 116 | 
             
                      git_add:    'git add %s',
         | 
| 101 | 
            -
                      git_commit: 'git commit -m  | 
| 117 | 
            +
                      git_commit: 'git commit -m %p %s',
         | 
| 102 118 | 
             
                      git_push:   'git push %s'
         | 
| 103 119 | 
             
                    }
         | 
| 104 120 |  | 
| @@ -131,7 +147,7 @@ module Gem | |
| 131 147 |  | 
| 132 148 | 
             
                      def commit
         | 
| 133 149 | 
             
                        cmd :git_add, version.path
         | 
| 134 | 
            -
                        cmd :git_commit,  | 
| 150 | 
            +
                        cmd :git_commit, message, opts[:sign] ? '-S' : ''
         | 
| 135 151 | 
             
                      end
         | 
| 136 152 |  | 
| 137 153 | 
             
                      def push
         | 
| @@ -150,8 +166,12 @@ module Gem | |
| 150 166 | 
             
                        @version = nil
         | 
| 151 167 | 
             
                      end
         | 
| 152 168 |  | 
| 169 | 
            +
                      def message
         | 
| 170 | 
            +
                        opts[:message] % version.to_h
         | 
| 171 | 
            +
                      end
         | 
| 172 | 
            +
             | 
| 153 173 | 
             
                      def version
         | 
| 154 | 
            -
                        @version ||= Files::Version.new(gem.name, opts[:version])
         | 
| 174 | 
            +
                        @version ||= Files::Version.new(gem.name, opts[:version], only(opts, :file))
         | 
| 155 175 | 
             
                      end
         | 
| 156 176 |  | 
| 157 177 | 
             
                      def push?
         | 
    
        data/lib/gem/release/cmds/tag.rb
    CHANGED
    
    | @@ -31,6 +31,7 @@ module Gem | |
| 31 31 | 
             
                    DESCR = {
         | 
| 32 32 | 
             
                      push:    'Push tag to the remote git repository',
         | 
| 33 33 | 
             
                      remote:  'Git remote to push to (defaults to origin)',
         | 
| 34 | 
            +
                      sign:    'GPG sign the tag',
         | 
| 34 35 | 
             
                    }
         | 
| 35 36 |  | 
| 36 37 | 
             
                    opt '-p', '--[no]-push', DESCR[:push] do
         | 
| @@ -50,7 +51,7 @@ module Gem | |
| 50 51 | 
             
                    }
         | 
| 51 52 |  | 
| 52 53 | 
             
                    CMDS = {
         | 
| 53 | 
            -
                      git_tag:   'git tag -am "tag %s" %s',
         | 
| 54 | 
            +
                      git_tag:   'git tag -am "tag %s" %s %s',
         | 
| 54 55 | 
             
                      git_push:  'git push --tags %s'
         | 
| 55 56 | 
             
                    }
         | 
| 56 57 |  | 
| @@ -71,7 +72,7 @@ module Gem | |
| 71 72 | 
             
                      end
         | 
| 72 73 |  | 
| 73 74 | 
             
                      def tag
         | 
| 74 | 
            -
                        cmd :git_tag, tag_name, tag_name
         | 
| 75 | 
            +
                        cmd :git_tag, tag_name, tag_name, opts[:sign] ? '--sign' : ''
         | 
| 75 76 | 
             
                      end
         | 
| 76 77 |  | 
| 77 78 | 
             
                      def push
         | 
    
        data/lib/gem/release/data.rb
    CHANGED
    
    | @@ -10,7 +10,7 @@ module Gem | |
| 10 10 | 
             
                  def data
         | 
| 11 11 | 
             
                    {
         | 
| 12 12 | 
             
                      gem_name:     gem_name,
         | 
| 13 | 
            -
                      gem_path:      | 
| 13 | 
            +
                      gem_path:     gem_path,
         | 
| 14 14 | 
             
                      module_names: module_names,
         | 
| 15 15 | 
             
                      author:       user_name,
         | 
| 16 16 | 
             
                      email:        user_email,
         | 
| @@ -32,6 +32,10 @@ module Gem | |
| 32 32 | 
             
                      gem.name || raise('No gem_name given.')
         | 
| 33 33 | 
             
                    end
         | 
| 34 34 |  | 
| 35 | 
            +
                    def gem_path
         | 
| 36 | 
            +
                      gem_name.gsub('-', '/').sub(/_rb$/, '')
         | 
| 37 | 
            +
                    end
         | 
| 38 | 
            +
             | 
| 35 39 | 
             
                    def user_name
         | 
| 36 40 | 
             
                      system.git_user_name || '[your name]'
         | 
| 37 41 | 
             
                    end
         | 
| @@ -3,7 +3,7 @@ require 'gem/release/version/number' | |
| 3 3 | 
             
            module Gem
         | 
| 4 4 | 
             
              module Release
         | 
| 5 5 | 
             
                module Files
         | 
| 6 | 
            -
                  class Version < Struct.new(:name, :version)
         | 
| 6 | 
            +
                  class Version < Struct.new(:name, :version, :opts)
         | 
| 7 7 | 
             
                    VERSION      = /(VERSION\s*=\s*(?:"|'))((?:(?!"|').)*)("|')/
         | 
| 8 8 | 
             
                    RELEASE      = /^(\d+)\.(\d+)\.(\d+)(.*)$/
         | 
| 9 9 | 
             
                    PRE_RELEASE  = /^(\d+)\.(\d+)\.(\d+)\.?(.*)(\d+)$/
         | 
| @@ -19,7 +19,7 @@ module Gem | |
| 19 19 | 
             
                    end
         | 
| 20 20 |  | 
| 21 21 | 
             
                    def path
         | 
| 22 | 
            -
                      @path ||= paths.detect { |path| File. | 
| 22 | 
            +
                      @path ||= opts[:file] || paths.detect { |path| File.exist?(path) }
         | 
| 23 23 | 
             
                    end
         | 
| 24 24 |  | 
| 25 25 | 
             
                    def from
         | 
| @@ -30,6 +30,10 @@ module Gem | |
| 30 30 | 
             
                      @to ||= number.bump
         | 
| 31 31 | 
             
                    end
         | 
| 32 32 |  | 
| 33 | 
            +
                    def to_h
         | 
| 34 | 
            +
                      { from: from, to: to }
         | 
| 35 | 
            +
                    end
         | 
| 36 | 
            +
             | 
| 33 37 | 
             
                    private
         | 
| 34 38 |  | 
| 35 39 | 
             
                      def paths
         | 
| @@ -62,6 +66,10 @@ module Gem | |
| 62 66 | 
             
                      def path_to(path)
         | 
| 63 67 | 
             
                        "lib/#{path}/version.rb"
         | 
| 64 68 | 
             
                      end
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                      def name
         | 
| 71 | 
            +
                        @name ||= super.sub(/_rb$/, '')
         | 
| 72 | 
            +
                      end
         | 
| 65 73 | 
             
                  end
         | 
| 66 74 | 
             
                end
         | 
| 67 75 | 
             
              end
         | 
    
        data/lib/gem/release/helper.rb
    CHANGED
    
    | @@ -17,6 +17,7 @@ module Gem | |
| 17 17 | 
             
                      info cmd, *args
         | 
| 18 18 | 
             
                      cmd = self.class::CMDS[cmd] % args
         | 
| 19 19 | 
             
                    end
         | 
| 20 | 
            +
                    cmd = cmd.strip
         | 
| 20 21 | 
             
                    notice "$ #{cmd}"
         | 
| 21 22 | 
             
                    result = pretend? ? true : system.run(cmd)
         | 
| 22 23 | 
             
                    abort "The command `#{cmd}` was unsuccessful." unless result
         | 
| @@ -31,7 +32,7 @@ module Gem | |
| 31 32 | 
             
                  %w(announce notice info warn error).each do |level|
         | 
| 32 33 | 
             
                    define_method(level) do |msg, *args|
         | 
| 33 34 | 
             
                      msg = self.class::MSGS[msg] % args if msg.is_a?(Symbol)
         | 
| 34 | 
            -
                      context.send(level, msg) unless quiet?
         | 
| 35 | 
            +
                      context.send(level, msg.strip) unless quiet?
         | 
| 35 36 | 
             
                    end
         | 
| 36 37 | 
             
                  end
         | 
| 37 38 |  | 
    
        data/lib/gem/release/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: gem-release
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2.0.0.dev. | 
| 4 | 
            +
              version: 2.0.0.dev.3
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Sven Fuchs
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2017-05- | 
| 12 | 
            +
            date: 2017-05-02 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies: []
         | 
| 14 14 | 
             
            description: Release your ruby gems with ease. (What a bold statement for such a tiny
         | 
| 15 15 | 
             
              plugin ...)
         |