knife-changelog 1.0.7 → 1.0.8
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/lib/chef/knife/changelog.rb +1 -1
- data/lib/knife/changelog/version.rb +1 -1
- data/lib/policyfile.rb +18 -20
- data/spec/data/{tmp_dir → updated}/Policyfile.lock.json +0 -0
- data/spec/unit/policyfile_spec.rb +9 -5
- metadata +4 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: a8c08f818e37b6f6f8dedf0ac339c7f2630eb2274c7d8a2b4972aeb32cb0f33a
         | 
| 4 | 
            +
              data.tar.gz: 8c2201411c66858acdad4549da4a4d72cb9f2b90c157b1b4fa584b597ae4eb9d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 3dfadbf13353ae064112f338fd037208318bf875c91007bc59bb366154677bed539066929c1b70c79b1cf572358285234b3eade84345ca09c2bc0c7b6ad8878f
         | 
| 7 | 
            +
              data.tar.gz: f7c58bc018fedc0c91a1a745637036741f7990760d9632a7723c9a04f0286ede092bfa910a1d379e8cefe14f545434ff286d87626e4944d7455d724311ddb7cb
         | 
    
        data/lib/chef/knife/changelog.rb
    CHANGED
    
    | @@ -55,7 +55,7 @@ class Chef | |
| 55 55 | 
             
                  def run
         | 
| 56 56 | 
             
                    Log.info config
         | 
| 57 57 | 
             
                    if config[:policyfile] && File.exist?(config[:policyfile])
         | 
| 58 | 
            -
                      PolicyChangelog.new(@name_args, config[:policyfile]).generate_changelog
         | 
| 58 | 
            +
                      puts PolicyChangelog.new(@name_args, config[:policyfile]).generate_changelog
         | 
| 59 59 | 
             
                    else
         | 
| 60 60 | 
             
                      berksfile = Berkshelf::Berksfile.from_options({})
         | 
| 61 61 | 
             
                      puts KnifeChangelog::Changelog::Berksfile
         | 
    
        data/lib/policyfile.rb
    CHANGED
    
    | @@ -25,19 +25,13 @@ class PolicyChangelog | |
| 25 25 | 
             
              #
         | 
| 26 26 | 
             
              # @return update_dir [String] tmp directory with updated Policyfile.lock
         | 
| 27 27 | 
             
              def update_policyfile_lock
         | 
| 28 | 
            -
                 | 
| 29 | 
            -
                 | 
| 30 | 
            -
                  FileUtils.cp(
         | 
| 31 | 
            -
                    File.join(@policyfile_dir, file),
         | 
| 32 | 
            -
                    update_dir
         | 
| 33 | 
            -
                  )
         | 
| 34 | 
            -
                end
         | 
| 28 | 
            +
                backup_dir = Dir.mktmpdir
         | 
| 29 | 
            +
                FileUtils.cp(File.join(@policyfile_dir, 'Policyfile.lock.json'), backup_dir)
         | 
| 35 30 | 
             
                updater = ChefDK::Command::Update.new
         | 
| 36 | 
            -
                updater.run([
         | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
                 | 
| 40 | 
            -
                update_dir
         | 
| 31 | 
            +
                updater.run([@policyfile_path, @cookbooks_to_update].flatten)
         | 
| 32 | 
            +
                updated_policyfile_lock = read_policyfile_lock(@policyfile_dir)
         | 
| 33 | 
            +
                FileUtils.cp(File.join(backup_dir, 'Policyfile.lock.json'), @policyfile_dir)
         | 
| 34 | 
            +
                updated_policyfile_lock
         | 
| 41 35 | 
             
              end
         | 
| 42 36 |  | 
| 43 37 | 
             
              # Parses JSON in Policyfile.lock.
         | 
| @@ -153,15 +147,16 @@ class PolicyChangelog | |
| 153 147 | 
             
                repo.tags.last.name[/^v/] ? 'v' : ''
         | 
| 154 148 | 
             
              end
         | 
| 155 149 |  | 
| 156 | 
            -
              #  | 
| 150 | 
            +
              # Formats commit changelog to be more readable
         | 
| 157 151 | 
             
              #
         | 
| 158 152 | 
             
              # @param name [String] cookbook name
         | 
| 159 153 | 
             
              # @param data [Hash] cookbook versions and source url data
         | 
| 160 | 
            -
               | 
| 161 | 
            -
             | 
| 162 | 
            -
                 | 
| 163 | 
            -
                 | 
| 164 | 
            -
                 | 
| 154 | 
            +
              # @return [String] formatted changelog
         | 
| 155 | 
            +
              def format_output(name, data)
         | 
| 156 | 
            +
                output = ["\nChangelog for #{name}: #{data['current_version']}->#{data['target_version']}"]
         | 
| 157 | 
            +
                output << '=' * output.first.size
         | 
| 158 | 
            +
                output << git_changelog(data['source_url'], data['current_version'], data['target_version'])
         | 
| 159 | 
            +
                output.join("\n")
         | 
| 165 160 | 
             
              end
         | 
| 166 161 |  | 
| 167 162 | 
             
              # Filters out cookbooks which are not updated, are not used after update or
         | 
| @@ -177,11 +172,13 @@ class PolicyChangelog | |
| 177 172 | 
             
              end
         | 
| 178 173 |  | 
| 179 174 | 
             
              # Generates Policyfile changelog
         | 
| 175 | 
            +
              #
         | 
| 176 | 
            +
              # @return [String] formatted version changelog
         | 
| 180 177 | 
             
              def generate_changelog
         | 
| 181 178 | 
             
                lock_current = read_policyfile_lock(@policyfile_dir)
         | 
| 182 179 | 
             
                current = versions(lock_current['cookbook_locks'], 'current')
         | 
| 183 180 |  | 
| 184 | 
            -
                lock_target =  | 
| 181 | 
            +
                lock_target = update_policyfile_lock
         | 
| 185 182 | 
             
                target = versions(lock_target['cookbook_locks'], 'target')
         | 
| 186 183 |  | 
| 187 184 | 
             
                updated_cookbooks = current.deep_merge(target).reject { |_name, data| reject_version_filter(data) }
         | 
| @@ -189,6 +186,7 @@ class PolicyChangelog | |
| 189 186 | 
             
                updated_cookbooks.each_key do |name|
         | 
| 190 187 | 
             
                  sources[name] = get_source_url(lock_target['cookbook_locks'][name]['source_options'])
         | 
| 191 188 | 
             
                end
         | 
| 192 | 
            -
                updated_cookbooks.deep_merge(sources). | 
| 189 | 
            +
                updated_cookbooks.deep_merge(sources).map { |name, data| format_output(name, data) }.join("\n")
         | 
| 193 190 | 
             
              end
         | 
| 194 191 | 
             
            end
         | 
| 192 | 
            +
             | 
| 
            File without changes
         | 
| @@ -8,8 +8,8 @@ RSpec.describe PolicyChangelog do | |
| 8 8 | 
             
                File.expand_path(File.join(File.dirname(__FILE__), '../data'))
         | 
| 9 9 | 
             
              end
         | 
| 10 10 |  | 
| 11 | 
            -
              let(: | 
| 12 | 
            -
                File.join(pf_dir, ' | 
| 11 | 
            +
              let(:target_dir) do
         | 
| 12 | 
            +
                File.join(pf_dir, 'updated')
         | 
| 13 13 | 
             
              end
         | 
| 14 14 |  | 
| 15 15 | 
             
              let(:changelog) do
         | 
| @@ -21,7 +21,7 @@ RSpec.describe PolicyChangelog do | |
| 21 21 | 
             
              end
         | 
| 22 22 |  | 
| 23 23 | 
             
              let(:lock_target) do
         | 
| 24 | 
            -
                JSON.parse(File.read(File.join( | 
| 24 | 
            +
                JSON.parse(File.read(File.join(target_dir, 'Policyfile.lock.json')))
         | 
| 25 25 | 
             
              end
         | 
| 26 26 |  | 
| 27 27 | 
             
              let(:current_versions) do
         | 
| @@ -249,11 +249,15 @@ RSpec.describe PolicyChangelog do | |
| 249 249 | 
             
                context 'when generating a changelog' do
         | 
| 250 250 | 
             
                  it 'detects type for regular tag' do
         | 
| 251 251 | 
             
                    allow(changelog).to receive(:update_policyfile_lock)
         | 
| 252 | 
            -
                      .and_return( | 
| 252 | 
            +
                      .and_return(changelog.read_policyfile_lock(target_dir))
         | 
| 253 253 | 
             
                    allow(changelog).to receive(:git_changelog)
         | 
| 254 254 | 
             
                      .and_return('e1b971a Add test commit message')
         | 
| 255 255 |  | 
| 256 | 
            -
                     | 
| 256 | 
            +
                    output = "\nChangelog for users: 4.0.0->5.3.1\n" \
         | 
| 257 | 
            +
                      "==================================\n"         \
         | 
| 258 | 
            +
                      "e1b971a Add test commit message"
         | 
| 259 | 
            +
             | 
| 260 | 
            +
                    expect(changelog.generate_changelog).to eq(output)
         | 
| 257 261 | 
             
                  end
         | 
| 258 262 | 
             
                end
         | 
| 259 263 | 
             
              end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: knife-changelog
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0. | 
| 4 | 
            +
              version: 1.0.8
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Gregoire Seux
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2018-01- | 
| 11 | 
            +
            date: 2018-01-25 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -219,7 +219,7 @@ files: | |
| 219 219 | 
             
            - spec/data/Berksfile.lock
         | 
| 220 220 | 
             
            - spec/data/Policyfile.lock.json
         | 
| 221 221 | 
             
            - spec/data/Policyfile.rb
         | 
| 222 | 
            -
            - spec/data/ | 
| 222 | 
            +
            - spec/data/updated/Policyfile.lock.json
         | 
| 223 223 | 
             
            - spec/spec_helper.rb
         | 
| 224 224 | 
             
            - spec/unit/changelog_spec.rb
         | 
| 225 225 | 
             
            - spec/unit/policyfile_spec.rb
         | 
| @@ -252,7 +252,7 @@ test_files: | |
| 252 252 | 
             
            - spec/data/Berksfile.lock
         | 
| 253 253 | 
             
            - spec/data/Policyfile.lock.json
         | 
| 254 254 | 
             
            - spec/data/Policyfile.rb
         | 
| 255 | 
            -
            - spec/data/ | 
| 255 | 
            +
            - spec/data/updated/Policyfile.lock.json
         | 
| 256 256 | 
             
            - spec/spec_helper.rb
         | 
| 257 257 | 
             
            - spec/unit/changelog_spec.rb
         | 
| 258 258 | 
             
            - spec/unit/policyfile_spec.rb
         |