Uploaded image for project: 'Puppet Development Kit'
  1. Puppet Development Kit
  2. PDK-1199

Symlink validation check looks in gems in error for default PDK modules

    Details

    • Template:
    • Acceptance Criteria:
      Hide

      Default PDK module should pass Travis CI symlink checks when bringing in the R10K gem

      Show
      Default PDK module should pass Travis CI symlink checks when bringing in the R10K gem
    • Method Found:
      Needs Assessment
    • Release Notes:
      Bug Fix
    • Release Notes Summary:
      Fixes a bug where modules with bundled gems that include symlinks will fail validation.
    • QA Risk Assessment:
      Needs Assessment

      Description

      When adding the Bolt gem, it brings in the R10K gem which has symlink.

      The puppetlabs-reboot module has the default Travis CI configuration for a PDKified module. And is failing travis symlink checks due to symlinks in a bundled gem

      https://travis-ci.org/puppetlabs/puppetlabs-reboot/jobs/439038744

      $ ruby --version
      ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
      $ rvm --version
      rvm 1.29.3 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
      $ bundle --version
      Bundler version 1.16.2
      $ gem --version
      2.7.7
      before_install.1
      0.17s$ bundle -v
      Bundler version 1.16.2
      before_install.2
      0.00s$ rm -f Gemfile.lock
      before_install.3
      2.23s$ gem update --system
      Latest version already installed. Done.
      before_install.4
      0.16s$ gem --version
      2.7.7
      before_install.5
      0.17s$ bundle -v
      Bundler version 1.16.2
      install.bundler
      5.44s$ bundle install --without system_tests --path=${BUNDLE_PATH:-vendor/bundle}
      The dependency puppet-module-win-default-r2.4 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mswin32, x86-mingw32, x64-mingw32. To add those platforms to the bundle, run `bundle lock --add-platform x86-mswin32 x86-mingw32 x64-mingw32`.
      The dependency puppet-module-win-dev-r2.4 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mswin32, x86-mingw32, x64-mingw32. To add those platforms to the bundle, run `bundle lock --add-platform x86-mswin32 x86-mingw32 x64-mingw32`.
      The dependency puppet-module-win-system-r2.4 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mswin32, x86-mingw32, x64-mingw32. To add those platforms to the bundle, run `bundle lock --add-platform x86-mswin32 x86-mingw32 x64-mingw32`.
      Fetching gem metadata from https://rubygems.org/.........
      Resolving dependencies......
      Using rake 12.3.1
      Using CFPropertyList 2.3.6
      Using public_suffix 3.0.3
      Using addressable 2.5.2
      Using ansi 1.5.0
      Using ast 2.4.0
      Using concurrent-ruby 1.0.5
      Using fast_gettext 1.1.2
      Using locale 2.1.2
      Using little-plugger 1.1.4
      Using multi_json 1.13.1
      Using logging 2.2.2
      Using minitar 0.6.1
      Using net-ssh 4.2.0
      Using net-scp 1.2.1
      Using orchestrator_client 0.3.1
      Using colored 1.2
      Using cri 2.6.1
      Using text 1.3.1
      Using gettext 3.2.9
      Using gettext-setup 0.30
      Using log4r 1.1.10
      Using multipart-post 2.0.0
      Using faraday 0.13.1
      Using faraday_middleware 0.12.2
      Using semantic_puppet 1.0.2
      Using puppet_forge 2.2.9
      Using r10k 2.6.4
      Using unicode-display_width 1.4.0
      Using terminal-table 1.8.0
      Using builder 3.2.3
      Using erubis 2.7.0
      Using ffi 1.9.25
      Using gssapi 1.2.0
      Using gyoku 1.3.1
      Using httpclient 2.8.3
      Using nori 2.6.0
      Using rubyntlm 0.6.2
      Using winrm 2.2.3
      Using rubyzip 1.2.2
      Using winrm-fs 1.3.0
      Using bolt 0.24.0
      Using bundler 1.16.2
      Using json 2.1.0
      Using docile 1.3.1
      Using simplecov-html 0.10.2
      Using simplecov 0.16.1
      Using url 0.3.2
      Fetching codecov 0.1.13
      Installing codecov 0.1.13
      Using coderay 1.1.2
      Using diff-lcs 1.3
      Using unf_ext 0.0.7.5
      Using unf 0.1.4
      Using domain_name 0.5.20180417
      Using facter 2.5.1
      Using jgrep 1.5.0
      Using facterdb 0.5.2
      Using hiera 3.4.5
      Using hirb 0.7.3
      Using http-cookie 1.0.3
      Using json-schema 2.8.0
      Using stomp 1.4.4
      Using systemu 2.6.5
      Using mcollective-client 2.12.3
      Using metaclass 0.0.4
      Using spdx-licenses 1.2.0
      Using metadata-json-lint 2.2.0
      Using method_source 0.8.2
      Using mime-types 2.99.3
      Using mocha 1.1.0
      Using net-telnet 0.2.0
      Using netrc 0.11.0
      Using parallel 1.12.1
      Using parallel_tests 2.14.2
      Using parser 2.5.1.2
      Using powerpack 0.1.2
      Using slop 3.6.0
      Using pry 0.10.4
      Using puppet 5.5.6
      Using rest-client 1.8.0
      Using puppet-blacksmith 3.4.0
      Using puppet-lint 2.3.6
      Using puppet-module-posix-default-r2.4 0.3.12
      Using rgen 0.8.2
      Using yard 0.9.16
      Using puppet-strings 2.1.0
      Using puppet-syntax 2.4.1
      Using puppet_pot_generator 1.0.1
      Using rspec-support 3.8.0
      Using rspec-core 3.8.0
      Using rspec-expectations 3.8.1
      Using rspec-mocks 3.8.0
      Using rspec 3.8.0
      Using rspec-puppet 2.7.1
      Using puppetlabs_spec_helper 2.11.0
      Using rainbow 2.2.2
      Using rspec-puppet-facts 1.9.0
      Using rspec_junit_formatter 0.4.1
      Using ruby-progressbar 1.10.0
      Using rubocop 0.49.1
      Using rubocop-i18n 1.2.0
      Using rubocop-rspec 1.16.0
      Using simplecov-console 0.4.2
      Using sfl 2.3
      Using specinfra 2.67.3
      Using puppet-module-posix-dev-r2.4 0.3.12
      Bundle complete! 12 Gemfile dependencies, 106 gems now installed.
      Gems in the group system_tests were not installed.
      Bundled gems are installed into `./vendor/bundle`
      1.90s$ bundle exec rake $CHECK
      ---> syntax:manifests
      ---> syntax:templates
      ---> syntax:hiera:yaml
      Symlink found: vendor/bundle/ruby/2.4.0/gems/r10k-2.6.4/test => ./integration
      rake aborted!
      Symlink(s) exist within this directory
      /home/travis/build/puppetlabs/puppetlabs-reboot/vendor/bundle/ruby/2.4.0/gems/puppetlabs_spec_helper-2.11.0/lib/puppetlabs_spec_helper/rake_tasks.rb:264:in `block (2 levels) in <top (required)>'
      /home/travis/build/puppetlabs/puppetlabs-reboot/vendor/bundle/ruby/2.4.0/gems/rake-12.3.1/exe/rake:27:in `<top (required)>'
      /home/travis/.rvm/gems/ruby-2.4.1/bin/bundle:23:in `load'
      /home/travis/.rvm/gems/ruby-2.4.1/bin/bundle:23:in `<main>'
      Tasks: TOP => check:symlinks
      (See full trace by running task with --trace)
      

      Possible solutions

      • The symlink check should ignore the `\vendor` folder
      • The symlink check should honor the .pdkignore file
      • The symlink check should honor the .gitignore file

        Attachments

          Activity

            jsd-sla-details-panel

              People

              • Assignee:
                tim.sharpe Tim Sharpe
                Reporter:
                glenn.sarti Glenn Sarti
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: