autobuild 1.18.1 → 1.19.0
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/autobuild/import/git.rb +12 -1
- data/lib/autobuild/package.rb +21 -21
- data/lib/autobuild/packages/python.rb +5 -6
- data/lib/autobuild/parallel.rb +8 -4
- data/lib/autobuild/rake_task_extension.rb +10 -5
- data/lib/autobuild/utility.rb +26 -0
- data/lib/autobuild/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 2db3dc0a2d21505b88966e48b4019800e42f39e4a44cbd113a874a4aefad8dc8
         | 
| 4 | 
            +
              data.tar.gz: 3f19bf595f8c258899f1cfd3636257e9c58bd0ca02680a1e205d12d645cb9354
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: ac1af6ad08365cda04b28c52e8283fdaf2b4f56ae0b320961fb8600c7126e242c7e83569d8ac8f6722b441efc5f10d18b90a576a76efee1dc53c9c442327562f
         | 
| 7 | 
            +
              data.tar.gz: e716f6c428ea5c6384465697abd8124a9e6aa739ab78025129beec71dd4ec14630e81804f0109a6707575713e69d86fbcd2d16fea4031cff1953ae6ff702fcf9
         | 
    
        data/lib/autobuild/import/git.rb
    CHANGED
    
    | @@ -24,6 +24,11 @@ class << self | |
| 24 24 | 
             
                        # AUTOBUILD_GIT_CACHE_DIR and AUTOBUILD_CACHE_DIR environment
         | 
| 25 25 | 
             
                        # variables
         | 
| 26 26 | 
             
                        #
         | 
| 27 | 
            +
                        # Because of its role within the caching system in autobuild/autoproj,
         | 
| 28 | 
            +
                        # these defaults are not applied to git repositories that are using
         | 
| 29 | 
            +
                        # submodules. The autoproj cache builder does not generate repositories
         | 
| 30 | 
            +
                        # compatible with having submodules
         | 
| 31 | 
            +
                        #
         | 
| 27 32 | 
             
                        # @return [Array]
         | 
| 28 33 | 
             
                        # @see default_alternates=, Git#alternates
         | 
| 29 34 | 
             
                        def default_alternates
         | 
| @@ -111,7 +116,6 @@ def self.at_least_version(*version) | |
| 111 116 | 
             
                    #   workflow, it is recommended to not use submodules but checkout all
         | 
| 112 117 | 
             
                    #   repositories separately instead.
         | 
| 113 118 | 
             
                    def initialize(repository, branch = nil, options = {})
         | 
| 114 | 
            -
                        @alternates = Git.default_alternates.dup
         | 
| 115 119 | 
             
                        @git_dir_cache = Array.new
         | 
| 116 120 | 
             
                        @local_branch = @remote_branch = nil
         | 
| 117 121 | 
             
                        @tag = @commit = nil
         | 
| @@ -155,6 +159,13 @@ def initialize(repository, branch = nil, options = {}) | |
| 155 159 |  | 
| 156 160 | 
             
                        @single_branch = gitopts[:single_branch]
         | 
| 157 161 | 
             
                        @with_submodules = gitopts.delete(:with_submodules)
         | 
| 162 | 
            +
                        @alternates =
         | 
| 163 | 
            +
                            if @with_submodules
         | 
| 164 | 
            +
                                []
         | 
| 165 | 
            +
                            else
         | 
| 166 | 
            +
                                Git.default_alternates.dup
         | 
| 167 | 
            +
                            end
         | 
| 168 | 
            +
             | 
| 158 169 | 
             
                        @remote_name = 'autobuild'
         | 
| 159 170 | 
             
                        @push_to = nil
         | 
| 160 171 | 
             
                        relocate(repository, gitopts)
         | 
    
        data/lib/autobuild/package.rb
    CHANGED
    
    | @@ -207,28 +207,20 @@ def checked_out? | |
| 207 207 | 
             
                        File.directory?(srcdir)
         | 
| 208 208 | 
             
                    end
         | 
| 209 209 |  | 
| 210 | 
            -
                    def prepare_invoked?
         | 
| 211 | 
            -
                        task("#{name}-prepare").already_invoked?
         | 
| 212 | 
            -
                    end
         | 
| 213 | 
            -
             | 
| 214 | 
            -
                    def prepared?
         | 
| 215 | 
            -
                        @prepared
         | 
| 216 | 
            -
                    end
         | 
| 217 | 
            -
             | 
| 218 210 | 
             
                    def import_invoked?
         | 
| 219 | 
            -
                         | 
| 211 | 
            +
                        @import_invoked
         | 
| 220 212 | 
             
                    end
         | 
| 221 213 |  | 
| 222 214 | 
             
                    def imported?
         | 
| 223 215 | 
             
                        @imported
         | 
| 224 216 | 
             
                    end
         | 
| 225 217 |  | 
| 226 | 
            -
                    def  | 
| 227 | 
            -
                         | 
| 218 | 
            +
                    def install_invoked?
         | 
| 219 | 
            +
                        @install_invoked
         | 
| 228 220 | 
             
                    end
         | 
| 229 221 |  | 
| 230 | 
            -
                    def  | 
| 231 | 
            -
                        @ | 
| 222 | 
            +
                    def installed?
         | 
| 223 | 
            +
                        @installed
         | 
| 232 224 | 
             
                    end
         | 
| 233 225 |  | 
| 234 226 | 
             
                    def to_s
         | 
| @@ -459,12 +451,13 @@ def isolate_errors(options = Hash.new) | |
| 459 451 | 
             
                    def import(options = Hash.new)
         | 
| 460 452 | 
             
                        options = Hash[only_local: options] unless options.respond_to?(:to_hash)
         | 
| 461 453 |  | 
| 454 | 
            +
                        @import_invoked = true
         | 
| 462 455 | 
             
                        if @importer
         | 
| 463 456 | 
             
                            result = @importer.import(self, options)
         | 
| 464 | 
            -
                            @imported = true
         | 
| 465 457 | 
             
                        elsif update?
         | 
| 466 458 | 
             
                            message "%s: no importer defined, doing nothing"
         | 
| 467 459 | 
             
                        end
         | 
| 460 | 
            +
                        @imported = true
         | 
| 468 461 |  | 
| 469 462 | 
             
                        # Add the dependencies declared in spec
         | 
| 470 463 | 
             
                        depends_on(*@spec_dependencies) if @spec_dependencies
         | 
| @@ -480,7 +473,10 @@ def prepare | |
| 480 473 | 
             
                        stamps = dependencies.map { |p| Package[p].installstamp }
         | 
| 481 474 |  | 
| 482 475 | 
             
                        file installstamp => stamps do
         | 
| 483 | 
            -
                            isolate_errors  | 
| 476 | 
            +
                            isolate_errors do
         | 
| 477 | 
            +
                                @install_invoked = true
         | 
| 478 | 
            +
                                install
         | 
| 479 | 
            +
                            end
         | 
| 484 480 | 
             
                        end
         | 
| 485 481 | 
             
                        task "#{name}-build" => installstamp
         | 
| 486 482 |  | 
| @@ -563,7 +559,7 @@ def install | |
| 563 559 |  | 
| 564 560 | 
             
                        Autobuild.touch_stamp(installstamp)
         | 
| 565 561 |  | 
| 566 | 
            -
                        @ | 
| 562 | 
            +
                        @installed = true
         | 
| 567 563 | 
             
                    end
         | 
| 568 564 |  | 
| 569 565 | 
             
                    def run(*args, &block)
         | 
| @@ -580,6 +576,14 @@ def run(*args, &block) | |
| 580 576 |  | 
| 581 577 | 
             
                    module TaskExtension
         | 
| 582 578 | 
             
                        attr_accessor :package
         | 
| 579 | 
            +
             | 
| 580 | 
            +
                        def disabled?
         | 
| 581 | 
            +
                            if @disabled.nil? && package
         | 
| 582 | 
            +
                                package.disabled?
         | 
| 583 | 
            +
                            else
         | 
| 584 | 
            +
                                super
         | 
| 585 | 
            +
                            end
         | 
| 586 | 
            +
                        end
         | 
| 583 587 | 
             
                    end
         | 
| 584 588 |  | 
| 585 589 | 
             
                    def source_tree(*args, &block)
         | 
| @@ -820,17 +824,13 @@ def disable_phases(*phases) | |
| 820 824 | 
             
                        phases.each do |phase|
         | 
| 821 825 | 
             
                            task "#{name}-#{phase}"
         | 
| 822 826 | 
             
                            t = Rake::Task["#{name}-#{phase}"]
         | 
| 823 | 
            -
                            t.disable | 
| 827 | 
            +
                            t.disable
         | 
| 824 828 | 
             
                        end
         | 
| 825 829 | 
             
                    end
         | 
| 826 830 |  | 
| 827 831 | 
             
                    # Make sure that this package will be ignored in the build
         | 
| 828 832 | 
             
                    def disable(phases = Autobuild.all_phases)
         | 
| 829 833 | 
             
                        @disabled = true
         | 
| 830 | 
            -
                        disable_phases(*phases)
         | 
| 831 | 
            -
                        task(installstamp)
         | 
| 832 | 
            -
                        t = Rake::Task[installstamp]
         | 
| 833 | 
            -
                        t.disable!
         | 
| 834 834 | 
             
                    end
         | 
| 835 835 |  | 
| 836 836 | 
             
                    def utility(utility_name)
         | 
| @@ -22,9 +22,8 @@ def initialize(options) | |
| 22 22 | 
             
                        super
         | 
| 23 23 | 
             
                    end
         | 
| 24 24 |  | 
| 25 | 
            -
                    def  | 
| 26 | 
            -
                         | 
| 27 | 
            -
                        @install_mode = File.file?(File.join(srcdir, 'setup.py'))
         | 
| 25 | 
            +
                    def install_mode?
         | 
| 26 | 
            +
                        File.file?(File.join(srcdir, 'setup.py'))
         | 
| 28 27 | 
             
                    end
         | 
| 29 28 |  | 
| 30 29 | 
             
                    def prepare_for_forced_build
         | 
| @@ -65,7 +64,7 @@ def python_path | |
| 65 64 |  | 
| 66 65 | 
             
                    # Do the build in builddir
         | 
| 67 66 | 
             
                    def build
         | 
| 68 | 
            -
                        return unless  | 
| 67 | 
            +
                        return unless install_mode?
         | 
| 69 68 |  | 
| 70 69 | 
             
                        command = generate_build_command
         | 
| 71 70 | 
             
                        command << '--force' if @forced
         | 
| @@ -78,7 +77,7 @@ def build | |
| 78 77 |  | 
| 79 78 | 
             
                    # Install the result in prefix
         | 
| 80 79 | 
             
                    def install
         | 
| 81 | 
            -
                        return unless  | 
| 80 | 
            +
                        return unless install_mode?
         | 
| 82 81 |  | 
| 83 82 | 
             
                        command = generate_install_command
         | 
| 84 83 | 
             
                        command << '--force' if @forced
         | 
| @@ -91,7 +90,7 @@ def install | |
| 91 90 |  | 
| 92 91 | 
             
                    def update_environment
         | 
| 93 92 | 
             
                        super
         | 
| 94 | 
            -
                        path =  | 
| 93 | 
            +
                        path = install_mode? ? python_path : srcdir
         | 
| 95 94 | 
             
                        env_add_path 'PYTHONPATH', path
         | 
| 96 95 | 
             
                    end
         | 
| 97 96 | 
             
                end
         | 
    
        data/lib/autobuild/parallel.rb
    CHANGED
    
    | @@ -188,12 +188,16 @@ def invoke_parallel(required_tasks) | |
| 188 188 | 
             
                                break if !pending_task && available_workers.size == workers.size
         | 
| 189 189 | 
             
                            end
         | 
| 190 190 |  | 
| 191 | 
            -
                             | 
| 192 | 
            -
             | 
| 191 | 
            +
                            bypass_task = pending_task.disabled? ||
         | 
| 192 | 
            +
                                          pending_task.already_invoked? ||
         | 
| 193 | 
            +
                                          !pending_task.needed?
         | 
| 194 | 
            +
             | 
| 195 | 
            +
                            if bypass_task
         | 
| 196 | 
            +
                                pending_task.already_invoked = true
         | 
| 193 197 | 
             
                                state.process_finished_task(pending_task)
         | 
| 194 198 | 
             
                                next
         | 
| 195 | 
            -
                            elsif  | 
| 196 | 
            -
                                pending_task | 
| 199 | 
            +
                            elsif state.trivial_task?(pending_task)
         | 
| 200 | 
            +
                                Worker.execute_task(pending_task)
         | 
| 197 201 | 
             
                                state.process_finished_task(pending_task)
         | 
| 198 202 | 
             
                                next
         | 
| 199 203 | 
             
                            end
         | 
| @@ -6,11 +6,16 @@ def already_invoked? | |
| 6 6 |  | 
| 7 7 | 
             
                    attr_writer :already_invoked
         | 
| 8 8 |  | 
| 9 | 
            -
                    def  | 
| 10 | 
            -
                        @ | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 9 | 
            +
                    def disabled?
         | 
| 10 | 
            +
                        @disabled
         | 
| 11 | 
            +
                    end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                    def disabled!
         | 
| 14 | 
            +
                        disable
         | 
| 15 | 
            +
                    end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                    def disable
         | 
| 18 | 
            +
                        @disabled = true
         | 
| 14 19 | 
             
                    end
         | 
| 15 20 | 
             
                end
         | 
| 16 21 | 
             
            end
         | 
    
        data/lib/autobuild/utility.rb
    CHANGED
    
    | @@ -29,6 +29,10 @@ def initialize(name, package, install_on_error: false) | |
| 29 29 | 
             
                        @source_dir = nil
         | 
| 30 30 | 
             
                        @target_dir = nil
         | 
| 31 31 | 
             
                        @install_on_error = install_on_error
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                        @invoked = false
         | 
| 34 | 
            +
                        @success = false
         | 
| 35 | 
            +
                        @installed = false
         | 
| 32 36 | 
             
                    end
         | 
| 33 37 |  | 
| 34 38 | 
             
                    # Directory in which the utility will generate some files The
         | 
| @@ -98,7 +102,10 @@ def task(&block) | |
| 98 102 | 
             
                    end
         | 
| 99 103 |  | 
| 100 104 | 
             
                    def call_task_block
         | 
| 105 | 
            +
                        @invoked = true
         | 
| 106 | 
            +
             | 
| 101 107 | 
             
                        yield if block_given?
         | 
| 108 | 
            +
                        @success = true
         | 
| 102 109 |  | 
| 103 110 | 
             
                        # Allow the user to install manually in the task
         | 
| 104 111 | 
             
                        # block
         | 
| @@ -107,6 +114,7 @@ def call_task_block | |
| 107 114 | 
             
                        raise
         | 
| 108 115 | 
             
                    rescue ::Exception => e
         | 
| 109 116 | 
             
                        install if install_on_error? && !@installed && target_dir
         | 
| 117 | 
            +
                        @success = false
         | 
| 110 118 |  | 
| 111 119 | 
             
                        if Autobuild.send("pass_#{name}_errors")
         | 
| 112 120 | 
             
                            raise
         | 
| @@ -167,6 +175,24 @@ def install | |
| 167 175 | 
             
                        @installed = true
         | 
| 168 176 | 
             
                    end
         | 
| 169 177 |  | 
| 178 | 
            +
                    # True if the utility has been invoked
         | 
| 179 | 
            +
                    def invoked?
         | 
| 180 | 
            +
                        @invoked
         | 
| 181 | 
            +
                    end
         | 
| 182 | 
            +
             | 
| 183 | 
            +
                    # True if the utility has been successful
         | 
| 184 | 
            +
                    #
         | 
| 185 | 
            +
                    # Combine with {#invoked?} to determine whether 'false' means 'not run'
         | 
| 186 | 
            +
                    # or 'failed'
         | 
| 187 | 
            +
                    def success?
         | 
| 188 | 
            +
                        @success
         | 
| 189 | 
            +
                    end
         | 
| 190 | 
            +
             | 
| 191 | 
            +
                    # True if the utility's results have been installed
         | 
| 192 | 
            +
                    def installed?
         | 
| 193 | 
            +
                        @installed
         | 
| 194 | 
            +
                    end
         | 
| 195 | 
            +
             | 
| 170 196 | 
             
                    # Can be called in the block given to {task} to announce that the
         | 
| 171 197 | 
             
                    # utility is to be disabled for that package. This is mainly used
         | 
| 172 198 | 
             
                    # when a runtime check is necessary to know if a package can run
         | 
    
        data/lib/autobuild/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: autobuild
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.19.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Sylvain Joyeux
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2019- | 
| 11 | 
            +
            date: 2019-10-03 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: pastel
         |