Skip to content

bosh-stemcell: introduce Gemfile, move deps to gemspec#543

Merged
aramprice merged 4 commits into
ubuntu-jammyfrom
deps-in-gemspec
Apr 13, 2026
Merged

bosh-stemcell: introduce Gemfile, move deps to gemspec#543
aramprice merged 4 commits into
ubuntu-jammyfrom
deps-in-gemspec

Conversation

@aramprice

Copy link
Copy Markdown
Member
  • add Rakefile for gem
  • update testing to use rake spec
  • dev dependency gems are removed from cache

@coderabbitai

coderabbitai Bot commented Apr 11, 2026

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • ✅ Review completed - (🔄 Check again to review again)

Walkthrough

This pull request refactors the test infrastructure from using direct RSpec invocations to Rake-based task execution. The root Gemfile is reorganized to move development and test dependencies into the bosh-stemcell package's gemspec file, while rake and bosh-stemcell are elevated to top-level gems. A new Gemfile and Rakefile are added to the bosh-stemcell directory, defining RSpec-backed Rake tasks for spec execution and filtering. Git LFS pointers for vendored gems are removed, RuboCop configurations are deleted, and test execution scripts are updated to use the new Rake-based approach with environment variable precomputation for test isolation.

Suggested reviewers

  • ystros
🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'bosh-stemcell: introduce Gemfile, move deps to gemspec' accurately summarizes the main changes: introducing a Gemfile for the bosh-stemcell gem and moving dependencies to the gemspec file.
Description check ✅ Passed The description is related to the changeset, mentioning the addition of a Rakefile, updating testing to use 'rake spec', and removal of dev dependency gems from cache, all of which are present in the changes.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch deps-in-gemspec

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@ci/tasks/test-unit.sh`:
- Line 19: The OS_IMAGE assignment using readlink -f with a glob can return
multiple matches unpredictably; update the logic that sets OS_IMAGE so it
deterministically picks a single tarball (or fails fast) before invoking bundle
exec rspec: iterate or glob-match the pattern used in readlink -f, sort the
results deterministically (e.g., lexicographically or with version-aware sort),
select a single entry (or exit with a clear error if more than one is found),
and then export/use that resolved path for the OS_IMAGE variable prior to
running the existing bundle exec rspec spec/ --tag shellout_types command.

In `@README.md`:
- Around line 191-193: The README has the shell commands in the wrong order:
"bundle install" runs before changing into the bosh-stemcell directory; update
the sequence so you first run "cd /opt/bosh/bosh-stemcell" and then "bundle
install" (so the bundle install runs inside the bosh-stemcell directory) to
match the updated CI/task flow and local test setup expectations.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0a361892-6a78-4b16-8ba7-fcf83e9fd020

📥 Commits

Reviewing files that changed from the base of the PR and between 6f0a721 and 6ec8953.

⛔ Files ignored due to path filters (1)
  • Gemfile.lock is excluded by !**/*.lock
📒 Files selected for processing (19)
  • .github/workflows/ruby.yml
  • Gemfile
  • README.md
  • bosh-stemcell/Gemfile
  • bosh-stemcell/Rakefile
  • bosh-stemcell/bosh-stemcell.gemspec
  • ci/tasks/test-unit.sh
  • vendor/cache/diff-lcs-1.6.2.gem
  • vendor/cache/fakefs-3.2.1.gem
  • vendor/cache/multi_json-1.19.1.gem
  • vendor/cache/multi_json-1.20.0.gem
  • vendor/cache/rspec-3.13.2.gem
  • vendor/cache/rspec-core-3.13.6.gem
  • vendor/cache/rspec-expectations-3.13.5.gem
  • vendor/cache/rspec-instafail-1.0.0.gem
  • vendor/cache/rspec-its-2.0.0.gem
  • vendor/cache/rspec-mocks-3.13.8.gem
  • vendor/cache/rspec-support-3.13.7.gem
  • vendor/cache/timecop-0.9.10.gem
💤 Files with no reviewable changes (11)
  • vendor/cache/diff-lcs-1.6.2.gem
  • vendor/cache/rspec-expectations-3.13.5.gem
  • vendor/cache/rspec-mocks-3.13.8.gem
  • vendor/cache/rspec-core-3.13.6.gem
  • vendor/cache/fakefs-3.2.1.gem
  • vendor/cache/timecop-0.9.10.gem
  • vendor/cache/rspec-its-2.0.0.gem
  • vendor/cache/rspec-3.13.2.gem
  • vendor/cache/multi_json-1.19.1.gem
  • vendor/cache/rspec-instafail-1.0.0.gem
  • vendor/cache/rspec-support-3.13.7.gem

Comment thread ci/tasks/test-unit.sh Outdated
Comment thread README.md Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@ci/tasks/test-unit.sh`:
- Line 16: The script is hardcoding the Concourse input path via pushd
"${REPO_PARENT}/bosh-linux-stemcell-builder/bosh-stemcell"; change it to use the
already-computed REPO_ROOT variable instead so the path is robust across
environments — replace the pushd call that references REPO_PARENT with one that
uses REPO_ROOT (keep the rest of the relative subpath
"bosh-linux-stemcell-builder/bosh-stemcell" unchanged) so the script uses
REPO_ROOT for locating the repo.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: a5a3ad81-6919-4628-8bb6-faf88f7e6731

📥 Commits

Reviewing files that changed from the base of the PR and between 6ec8953 and bf9bae7.

⛔ Files ignored due to path filters (1)
  • Gemfile.lock is excluded by !**/*.lock
📒 Files selected for processing (19)
  • .github/workflows/ruby.yml
  • Gemfile
  • README.md
  • bosh-stemcell/Gemfile
  • bosh-stemcell/Rakefile
  • bosh-stemcell/bosh-stemcell.gemspec
  • ci/tasks/test-unit.sh
  • vendor/cache/diff-lcs-1.6.2.gem
  • vendor/cache/fakefs-3.2.1.gem
  • vendor/cache/multi_json-1.19.1.gem
  • vendor/cache/multi_json-1.20.0.gem
  • vendor/cache/rspec-3.13.2.gem
  • vendor/cache/rspec-core-3.13.6.gem
  • vendor/cache/rspec-expectations-3.13.5.gem
  • vendor/cache/rspec-instafail-1.0.0.gem
  • vendor/cache/rspec-its-2.0.0.gem
  • vendor/cache/rspec-mocks-3.13.8.gem
  • vendor/cache/rspec-support-3.13.7.gem
  • vendor/cache/timecop-0.9.10.gem
💤 Files with no reviewable changes (11)
  • vendor/cache/rspec-expectations-3.13.5.gem
  • vendor/cache/rspec-mocks-3.13.8.gem
  • vendor/cache/fakefs-3.2.1.gem
  • vendor/cache/multi_json-1.19.1.gem
  • vendor/cache/rspec-3.13.2.gem
  • vendor/cache/rspec-its-2.0.0.gem
  • vendor/cache/rspec-support-3.13.7.gem
  • vendor/cache/diff-lcs-1.6.2.gem
  • vendor/cache/timecop-0.9.10.gem
  • vendor/cache/rspec-instafail-1.0.0.gem
  • vendor/cache/rspec-core-3.13.6.gem

Comment thread ci/tasks/test-unit.sh Outdated
coderabbitai[bot]
coderabbitai Bot previously approved these changes Apr 11, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
bosh-stemcell/spec/shellout_types/spec_helper.rb (1)

17-31: ⚠️ Potential issue | 🟠 Major

Apply the non-Linux guard to all shellout_types execution paths.

Line 18 only blocks unsupported OS in the ENV['OS_IMAGE'] branch. If ENV['SHELLOUT_CHROOT_DIR'] is set, non-Linux runs bypass this check and can fail later in less actionable ways.

Suggested fix
 RSpec.configure do |config|
   if config.inclusion_filter[:shellout_types]
+    unless supported_testing_os?
+      raise "Running 'shellout_types' specs on '#{RUBY_PLATFORM}' is not supported"
+    end
+
     if ENV['OS_IMAGE']
       `@os_image_dir` = Dir.mktmpdir('os-image-rspec')
       ShelloutTypes::Chroot.chroot_dir = `@os_image_dir`
       config.add_setting(:os_image_dir, default: `@os_image_dir`)

       config.before(:suite) do
-        raise "Running 'shellout_types' specs on '#{RUBY_PLATFORM}' is not supported" unless supported_testing_os?
-
         Bosh::Core::Shell.new.run("sudo tar zxf #{ENV['OS_IMAGE']} -C #{config.os_image_dir}")
         Bosh::Core::Shell.new.run("sudo chgrp -Rh $(id -g) #{config.os_image_dir}")
         Bosh::Core::Shell.new.run("sudo chmod 775 #{config.os_image_dir}")
         Bosh::Core::Shell.new.run("sudo chroot #{config.os_image_dir} /bin/bash -c 'useradd -G nogroup shellout'")
       end
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@bosh-stemcell/spec/shellout_types/spec_helper.rb` around lines 17 - 31, The
non-Linux guard (supported_testing_os? check and raise) currently lives only
inside the config.before(:suite) branch for ENV['OS_IMAGE']; ensure it also
protects the ENV['SHELLOUT_CHROOT_DIR'] path by moving the supported_testing_os?
check to cover both branches (i.e., run the guard before the if/elsif that
handles ENV['OS_IMAGE'] and ENV['SHELLOUT_CHROOT_DIR']) or add the same raise in
the elsif branch; update the code that assigns ShelloutTypes::Chroot.chroot_dir
and any setup under the elsif to only run after the supported_testing_os? check
so non-Linux runs are blocked consistently.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@README.md`:
- Around line 175-177: The README currently runs "bundle install --local" before
changing into the bosh-stemcell directory which targets the wrong bundle context
and fails without cached gems; change the steps to first cd into
/opt/bosh/bosh-stemcell then run a normal bundle install (omit --local) to fetch
missing dev gems, then run the rake command
(OS_IMAGE=/opt/bosh/tmp/ubuntu_base_image.tgz bundle exec rake
spec:shellout_types) so bundle executes in the correct project context and can
install required gems.

---

Outside diff comments:
In `@bosh-stemcell/spec/shellout_types/spec_helper.rb`:
- Around line 17-31: The non-Linux guard (supported_testing_os? check and raise)
currently lives only inside the config.before(:suite) branch for
ENV['OS_IMAGE']; ensure it also protects the ENV['SHELLOUT_CHROOT_DIR'] path by
moving the supported_testing_os? check to cover both branches (i.e., run the
guard before the if/elsif that handles ENV['OS_IMAGE'] and
ENV['SHELLOUT_CHROOT_DIR']) or add the same raise in the elsif branch; update
the code that assigns ShelloutTypes::Chroot.chroot_dir and any setup under the
elsif to only run after the supported_testing_os? check so non-Linux runs are
blocked consistently.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 5bc67071-0324-40e5-bee6-f505a2b269da

📥 Commits

Reviewing files that changed from the base of the PR and between 2a02c85 and ba42356.

📒 Files selected for processing (3)
  • README.md
  • bosh-stemcell/spec/bosh/stemcell/helpers_sh_spec.rb
  • bosh-stemcell/spec/shellout_types/spec_helper.rb

Comment thread README.md
@github-project-automation github-project-automation Bot moved this from Pending Merge | Prioritized to Waiting for Changes | Open for Contribution in Foundational Infrastructure Working Group Apr 11, 2026
@aramprice aramprice force-pushed the deps-in-gemspec branch 2 times, most recently from 0eb87c6 to 64620b7 Compare April 11, 2026 02:10

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
README.md (1)

175-177: ⚠️ Potential issue | 🟠 Major

Run Bundler inside bosh-stemcell for ShelloutTypes setup.

Line 175 installs with --local before changing directories, so the install targets the wrong Gemfile and can miss bosh-stemcell dev dependencies needed by Line 177.

Suggested fix
-bundle install --local
-cd /opt/bosh/bosh-stemcell
-OS_IMAGE=/opt/bosh/tmp/ubuntu_base_image.tgz bundle exec rake spec:shellout_types
+cd /opt/bosh/bosh-stemcell
+bundle install
+OS_IMAGE=/opt/bosh/tmp/ubuntu_base_image.tgz bundle exec rake spec:shellout_types
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 175 - 177, The sequence runs "bundle install --local"
before changing into the bosh-stemcell dir, so the Gemfile for "cd
/opt/bosh/bosh-stemcell" isn't used and dev deps for running "bundle exec rake
spec:shellout_types" may be missed; to fix, run "bundle install" (with --local
if needed) inside the bosh-stemcell directory (i.e., change into
/opt/bosh/bosh-stemcell first) so the correct Gemfile is installed, then run
"OS_IMAGE=/opt/bosh/tmp/ubuntu_base_image.tgz bundle exec rake
spec:shellout_types".
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@README.md`:
- Around line 175-177: The sequence runs "bundle install --local" before
changing into the bosh-stemcell dir, so the Gemfile for "cd
/opt/bosh/bosh-stemcell" isn't used and dev deps for running "bundle exec rake
spec:shellout_types" may be missed; to fix, run "bundle install" (with --local
if needed) inside the bosh-stemcell directory (i.e., change into
/opt/bosh/bosh-stemcell first) so the correct Gemfile is installed, then run
"OS_IMAGE=/opt/bosh/tmp/ubuntu_base_image.tgz bundle exec rake
spec:shellout_types".

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: f24808bf-27b6-4790-97f5-5d61dcc025a3

📥 Commits

Reviewing files that changed from the base of the PR and between ba42356 and 591d683.

⛔ Files ignored due to path filters (1)
  • Gemfile.lock is excluded by !**/*.lock
📒 Files selected for processing (42)
  • .bundle/config
  • .gitattributes
  • .github/workflows/ruby.yml
  • .rubocop.yml
  • Gemfile
  • README.md
  • Rakefile
  • bosh-stemcell/.rubocop.yml
  • bosh-stemcell/Gemfile
  • bosh-stemcell/Rakefile
  • bosh-stemcell/bosh-stemcell.gemspec
  • bosh-stemcell/spec/bosh/stemcell/helpers_sh_spec.rb
  • bosh-stemcell/spec/shellout_types/spec_helper.rb
  • ci/tasks/test-unit.sh
  • vendor/cache/diff-lcs-1.6.2.gem
  • vendor/cache/fakefs-3.2.1.gem
  • vendor/cache/little-plugger-1.1.4.gem
  • vendor/cache/logging-2.4.0.gem
  • vendor/cache/multi_json-1.19.1.gem
  • vendor/cache/rake-13.3.1.gem
  • vendor/cache/rspec-3.13.2.gem
  • vendor/cache/rspec-core-3.13.6.gem
  • vendor/cache/rspec-expectations-3.13.5.gem
  • vendor/cache/rspec-instafail-1.0.0.gem
  • vendor/cache/rspec-its-2.0.0.gem
  • vendor/cache/rspec-mocks-3.13.8.gem
  • vendor/cache/rspec-support-3.13.7.gem
  • vendor/cache/timecop-0.9.10.gem
  • vendor/package/diff-lcs-1.6.2.gem
  • vendor/package/fakefs-3.2.1.gem
  • vendor/package/little-plugger-1.1.4.gem
  • vendor/package/logging-2.4.0.gem
  • vendor/package/multi_json-1.19.1.gem
  • vendor/package/rake-13.3.1.gem
  • vendor/package/rspec-3.13.2.gem
  • vendor/package/rspec-core-3.13.6.gem
  • vendor/package/rspec-expectations-3.13.5.gem
  • vendor/package/rspec-instafail-1.0.0.gem
  • vendor/package/rspec-its-2.0.0.gem
  • vendor/package/rspec-mocks-3.13.8.gem
  • vendor/package/rspec-support-3.13.7.gem
  • vendor/package/timecop-0.9.10.gem
💤 Files with no reviewable changes (19)
  • .bundle/config
  • Rakefile
  • .gitattributes
  • vendor/cache/rspec-3.13.2.gem
  • vendor/cache/rspec-expectations-3.13.5.gem
  • vendor/cache/rspec-instafail-1.0.0.gem
  • vendor/cache/rspec-support-3.13.7.gem
  • vendor/cache/rspec-mocks-3.13.8.gem
  • vendor/cache/diff-lcs-1.6.2.gem
  • vendor/cache/multi_json-1.19.1.gem
  • vendor/cache/fakefs-3.2.1.gem
  • vendor/cache/rspec-core-3.13.6.gem
  • vendor/cache/little-plugger-1.1.4.gem
  • vendor/cache/rake-13.3.1.gem
  • vendor/cache/rspec-its-2.0.0.gem
  • bosh-stemcell/.rubocop.yml
  • .rubocop.yml
  • vendor/cache/logging-2.4.0.gem
  • vendor/cache/timecop-0.9.10.gem

coderabbitai[bot]
coderabbitai Bot previously approved these changes Apr 11, 2026
@github-project-automation github-project-automation Bot moved this from Waiting for Changes | Open for Contribution to Pending Merge | Prioritized in Foundational Infrastructure Working Group Apr 11, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 15

♻️ Duplicate comments (1)
README.md (1)

175-177: ⚠️ Potential issue | 🟠 Major

Run bundler inside bosh-stemcell and avoid --local here.

Line 175 installs in the wrong directory context and --local can fail after dev gems were removed from cache; this conflicts with the updated rake-based test flow.

✅ Suggested fix
-bundle install --local
-cd /opt/bosh/bosh-stemcell
+cd /opt/bosh/bosh-stemcell
+bundle install
 OS_IMAGE=/opt/bosh/tmp/ubuntu_base_image.tgz bundle exec rake spec:shellout_types
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 175 - 177, The README currently runs "bundle install
--local" before changing into the bosh-stemcell directory and uses "--local"
which can fail; change the sequence to first cd into the bosh-stemcell directory
and run "bundle install" without "--local", then run
"OS_IMAGE=/opt/bosh/tmp/ubuntu_base_image.tgz bundle exec rake
spec:shellout_types" so the gems are installed in the correct project context
and not forced from local cache.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/ruby.yml:
- Around line 12-15: The workflow currently runs the default Rake task (bundle
exec rake) inside bosh-stemcell/, which does not run the shellout-types suite
due to the --tag ~shellout_types setting in bosh-stemcell/.rspec; update the
step to explicitly run both test tasks by invoking "bundle exec rake spec" and
"bundle exec rake spec:shellout_types" (or a single command that runs both in
sequence) so the CI executes the same suites as ci/tasks/test-unit.sh and
ensures shellout-types tests run.

In `@bosh-stemcell/lib/bosh/stemcell/build_environment.rb`:
- Around line 1-4: The code currently injects raw env values into the shell
command (in BuildEnvironment where the shell command is assembled) which breaks
if values contain single quotes; fix it by escaping each environment value
before interpolation using Ruby's Shellwords.shellescape (or Shellwords.escape)
when building the command string in the BuildEnvironment class/method that
prepares the shell invocation so every value is safely quoted/escaped before
substitution.

In `@bosh-stemcell/lib/bosh/stemcell/stemcell_packager.rb`:
- Around line 77-83: The file-inventory logic uses stdout.split(" ") which is
space-delimited and can mis-parse ls output; in stemcell_packager.rb change the
actual assignment to parse newline-safe entries (e.g. actual =
stdout.lines.map(&:strip).reject(&:empty?) or stdout.split("\n").map(&:strip))
so missing and extra calculations that use actual.include?(...) work correctly;
update the actual variable where stdout.split(" ") is used and keep the
subsequent missing/extra logic unchanged.
- Line 84: Replace the shell-interpolated Open3.capture3 call with the argv form
to avoid shell parsing: instead of Open3.capture3("tar zcf #{tarball_name}
#{expected.join(" ")}"), call Open3.capture3 with separate arguments using the
existing variables (e.g., Open3.capture3('tar', 'zcf', tarball_name, *expected))
so tarball_name and expected are passed as discrete argv entries; keep the same
stdout/stderr/status assignment and return handling around Open3.capture3.

In `@bosh-stemcell/spec/bosh/stemcell/build_environment_spec.rb`:
- Around line 23-30: The spec contains a duplicated let(:version) fixture (first
defined as "1234" and then redefined as "007"), shadowing the initial value;
remove or rename the redundant let(:version) declaration so only the intended
version is defined (either delete the second let(:version) or rename it to a new
fixture like let(:other_version)) and update any examples that rely on the
removed/renamed symbol (look for let(:version) in build_environment_spec.rb and
the surrounding examples).
- Around line 145-154: The after hook in the "when resume_from is set" context
always clears ENV["resume_from"], which can leak state; change the
setup/teardown to save the original value (e.g. prev = ENV["resume_from"] in the
before block) and restore it in the after block (ENV["resume_from"] = prev), so
the spec for resume_from preserves any parent process environment instead of
hard-resetting it.

In `@bosh-stemcell/spec/bosh/stemcell/disk_image_spec.rb`:
- Around line 42-43: Rename the misspelled local variable losetup_commad to
losetup_command in the disk_image_spec (update its declaration and any uses in
the same example), and update the corresponding allow(...).to
receive(...).with(...) call so it references losetup_command instead of
losetup_commad to keep naming consistent and searchable.

In `@bosh-stemcell/spec/bosh/stemcell/operating_system_spec.rb`:
- Line 7: Update the spec example description string in the it block that
currently reads "returns the correct infrastrcture" to the correctly spelled
"returns the correct infrastructure" so the test output is clear; locate the it
example in operating_system_spec.rb (the it "returns the correct infrastrcture"
block) and correct the typo in the description.

In `@bosh-stemcell/spec/os_image/ubuntu_spec.rb`:
- Around line 139-142: The test for /etc/machine-id currently uses its(:content)
{ should match "" } which matches any string; update the assertion to check
exact emptiness — replace the matcher in the describe block for
file("/etc/machine-id") (the its(:content) assertion) with a strict empty check
such as its(:content) { should be_empty } or its(:content) { should eq "" } so
the spec only passes when the file content is exactly empty.
- Around line 376-408: The shadow_match is created with Regexp.new passing
[Regexp::MULTILINE] (an Array) as the flags which is invalid; update the
Regexp.new call that defines shadow_match to pass Regexp::MULTILINE directly
(not wrapped in an Array) so the multiline flag is applied correctly to the
pattern.

In `@bosh-stemcell/spec/shellout_types/file_spec.rb`:
- Line 293: The expression rand(100) + 1 * 65535 is ambiguous; update all four
occurrences (including the let(:current_group) declaration) to make the intended
grouping explicit by adding parentheses or simplifying the math—e.g. if you mean
"add 65535" replace with rand(100) + 65535, or if you mean "multiply the sum"
replace with (rand(100) + 1) * 65535; apply the same explicit change to every
occurrence in this file so the intent is unambiguous.

In `@bosh-stemcell/spec/support/cis.rb`:
- Line 1: The file uses Set.new to initialize $cis_test_cases but doesn't
require the Set class; add require "set" at the top of the file (before the
$cis_test_cases = Set.new line) so the standard library Set is loaded and
$cis_test_cases can be initialized without causing NameError; locate the Set
usage and the global variable $cis_test_cases in cis.rb and insert the require
accordingly.

In `@bosh-stemcell/spec/support/os_image_shared_examples.rb`:
- Around line 489-500: Remove the duplicated RSpec context block that repeats
the "contains no users with that can update their password frequently (stig:
V-38477)" test; specifically delete the second context containing the describe
command("awk -F: '$1 !~ /^root$/ && $2 !~ /^[!*]/ && $4 != \"1\" {print $1 \":\"
$4}' /etc/shadow") and its two expectations (exit_status and stdout) so only the
original test remains; keep the first context and its describe as-is and run the
spec suite to verify no duplicates remain.
- Around line 478-479: Replace the incorrect user-ownership assertion that
checks subject.group with a proper owner check: change the first spec for
"should be owned by root user (stig: V-38502)" to use the be_owned_by("root")
matcher against subject, and remove the redundant second line that repeats
subject.group == "root" (the group ownership test should remain a single,
distinct assertion using subject.group or a be_owned_by matcher for group if
desired).

In `@ci/tasks/test-unit.sh`:
- Around line 19-22: The OS_IMAGE environment variable is exported globally
causing `bundle exec rake spec` to pick up the os_image filter; remove the
top-level `export OS_IMAGE="${os_image}"` and instead set OS_IMAGE only for the
shellout_types task by invoking the second rake with the variable scoped (e.g.
`OS_IMAGE="${os_image}" bundle exec rake spec:shellout_types`) or exporting
immediately before running `bundle exec rake spec:shellout_types`, ensuring
`bundle exec rake spec` runs without the OS_IMAGE filter.

---

Duplicate comments:
In `@README.md`:
- Around line 175-177: The README currently runs "bundle install --local" before
changing into the bosh-stemcell directory and uses "--local" which can fail;
change the sequence to first cd into the bosh-stemcell directory and run "bundle
install" without "--local", then run
"OS_IMAGE=/opt/bosh/tmp/ubuntu_base_image.tgz bundle exec rake
spec:shellout_types" so the gems are installed in the correct project context
and not forced from local cache.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 71b441c8-2d6d-42a5-ad38-e5fabd97be92

📥 Commits

Reviewing files that changed from the base of the PR and between ba42356 and a892c55.

⛔ Files ignored due to path filters (1)
  • Gemfile.lock is excluded by !**/*.lock
📒 Files selected for processing (122)
  • .bundle/config
  • .gitattributes
  • .github/workflows/ruby.yml
  • .rubocop.yml
  • Gemfile
  • README.md
  • Rakefile
  • bosh-stemcell/.rubocop.yml
  • bosh-stemcell/Gemfile
  • bosh-stemcell/Rakefile
  • bosh-stemcell/bosh-stemcell.gemspec
  • bosh-stemcell/lib/bosh/core/shell.rb
  • bosh-stemcell/lib/bosh/stemcell/arch.rb
  • bosh-stemcell/lib/bosh/stemcell/archive.rb
  • bosh-stemcell/lib/bosh/stemcell/archive_filename.rb
  • bosh-stemcell/lib/bosh/stemcell/aws/region.rb
  • bosh-stemcell/lib/bosh/stemcell/build_environment.rb
  • bosh-stemcell/lib/bosh/stemcell/builder_options.rb
  • bosh-stemcell/lib/bosh/stemcell/definition.rb
  • bosh-stemcell/lib/bosh/stemcell/disk_image.rb
  • bosh-stemcell/lib/bosh/stemcell/infrastructure.rb
  • bosh-stemcell/lib/bosh/stemcell/operating_system.rb
  • bosh-stemcell/lib/bosh/stemcell/os_image_builder.rb
  • bosh-stemcell/lib/bosh/stemcell/stage_collection.rb
  • bosh-stemcell/lib/bosh/stemcell/stage_runner.rb
  • bosh-stemcell/lib/bosh/stemcell/stemcell_builder.rb
  • bosh-stemcell/lib/bosh/stemcell/stemcell_packager.rb
  • bosh-stemcell/lib/bosh/stemcell/version.rb
  • bosh-stemcell/lib/shellout_types/chroot.rb
  • bosh-stemcell/lib/shellout_types/file.rb
  • bosh-stemcell/lib/shellout_types/group.rb
  • bosh-stemcell/lib/shellout_types/package.rb
  • bosh-stemcell/lib/shellout_types/service.rb
  • bosh-stemcell/lib/shellout_types/user.rb
  • bosh-stemcell/spec/bosh/stemcell/archive_filename_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/archive_handler_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/archive_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/build_environment_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/builder_options_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/definition_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/disk_image_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/helpers_sh_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/infrastructure_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/operating_system_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/os_image_builder_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/stage_collection_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/stage_runner_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/stemcell_builder_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/stemcell_packager_spec.rb
  • bosh-stemcell/spec/bosh/stemcell_spec.rb
  • bosh-stemcell/spec/os_image/ubuntu_spec.rb
  • bosh-stemcell/spec/shellout_types/chroot_spec.rb
  • bosh-stemcell/spec/shellout_types/command_spec.rb
  • bosh-stemcell/spec/shellout_types/file_spec.rb
  • bosh-stemcell/spec/shellout_types/group_spec.rb
  • bosh-stemcell/spec/shellout_types/package_spec.rb
  • bosh-stemcell/spec/shellout_types/service_spec.rb
  • bosh-stemcell/spec/shellout_types/spec_helper.rb
  • bosh-stemcell/spec/shellout_types/user_spec.rb
  • bosh-stemcell/spec/spec_helper.rb
  • bosh-stemcell/spec/stemcells/alicloud_spec.rb
  • bosh-stemcell/spec/stemcells/aws_spec.rb
  • bosh-stemcell/spec/stemcells/azure_spec.rb
  • bosh-stemcell/spec/stemcells/cis_spec.rb
  • bosh-stemcell/spec/stemcells/cloudstack_spec.rb
  • bosh-stemcell/spec/stemcells/fips_spec.rb
  • bosh-stemcell/spec/stemcells/go_agent_spec.rb
  • bosh-stemcell/spec/stemcells/google_spec.rb
  • bosh-stemcell/spec/stemcells/openstack_spec.rb
  • bosh-stemcell/spec/stemcells/softlayer_spec.rb
  • bosh-stemcell/spec/stemcells/stig_spec.rb
  • bosh-stemcell/spec/stemcells/ubuntu_spec.rb
  • bosh-stemcell/spec/stemcells/vcloud_spec.rb
  • bosh-stemcell/spec/stemcells/vsphere_spec.rb
  • bosh-stemcell/spec/stemcells/warden_spec.rb
  • bosh-stemcell/spec/support/be_valid_json_file_matcher.rb
  • bosh-stemcell/spec/support/cis.rb
  • bosh-stemcell/spec/support/os_image.rb
  • bosh-stemcell/spec/support/os_image_chrony_shared_examples.rb
  • bosh-stemcell/spec/support/os_image_linux_kernel_modules_shared_examples.rb
  • bosh-stemcell/spec/support/os_image_linux_kernel_shared_examples.rb
  • bosh-stemcell/spec/support/os_image_shared_examples.rb
  • bosh-stemcell/spec/support/os_image_systemd_shared_examples.rb
  • bosh-stemcell/spec/support/os_image_ubuntu_shared_examples.rb
  • bosh-stemcell/spec/support/os_image_upstart_shared_examples.rb
  • bosh-stemcell/spec/support/shellout_type_assertions.rb
  • bosh-stemcell/spec/support/spec_assets.rb
  • bosh-stemcell/spec/support/spec_ordering.rb
  • bosh-stemcell/spec/support/stemcell_image.rb
  • bosh-stemcell/spec/support/stemcell_shared_examples.rb
  • bosh-stemcell/spec/support/stemcell_tarball.rb
  • bosh-stemcell/spec/support/stig.rb
  • bosh-stemcell/spec/support/udf_module_disabled.rb
  • ci/tasks/test-unit.sh
  • vendor/cache/diff-lcs-1.6.2.gem
  • vendor/cache/fakefs-3.2.1.gem
  • vendor/cache/little-plugger-1.1.4.gem
  • vendor/cache/logging-2.4.0.gem
  • vendor/cache/multi_json-1.19.1.gem
  • vendor/cache/rake-13.3.1.gem
  • vendor/cache/rspec-3.13.2.gem
  • vendor/cache/rspec-core-3.13.6.gem
  • vendor/cache/rspec-expectations-3.13.5.gem
  • vendor/cache/rspec-instafail-1.0.0.gem
  • vendor/cache/rspec-its-2.0.0.gem
  • vendor/cache/rspec-mocks-3.13.8.gem
  • vendor/cache/rspec-support-3.13.7.gem
  • vendor/cache/timecop-0.9.10.gem
  • vendor/package/diff-lcs-1.6.2.gem
  • vendor/package/fakefs-3.2.1.gem
  • vendor/package/little-plugger-1.1.4.gem
  • vendor/package/logging-2.4.0.gem
  • vendor/package/multi_json-1.19.1.gem
  • vendor/package/rake-13.3.1.gem
  • vendor/package/rspec-3.13.2.gem
  • vendor/package/rspec-core-3.13.6.gem
  • vendor/package/rspec-expectations-3.13.5.gem
  • vendor/package/rspec-instafail-1.0.0.gem
  • vendor/package/rspec-its-2.0.0.gem
  • vendor/package/rspec-mocks-3.13.8.gem
  • vendor/package/rspec-support-3.13.7.gem
  • vendor/package/timecop-0.9.10.gem
💤 Files with no reviewable changes (20)
  • .bundle/config
  • .gitattributes
  • Rakefile
  • .rubocop.yml
  • bosh-stemcell/.rubocop.yml
  • vendor/cache/rspec-expectations-3.13.5.gem
  • bosh-stemcell/spec/support/spec_ordering.rb
  • vendor/cache/rspec-instafail-1.0.0.gem
  • vendor/cache/logging-2.4.0.gem
  • vendor/cache/little-plugger-1.1.4.gem
  • vendor/cache/fakefs-3.2.1.gem
  • vendor/cache/rake-13.3.1.gem
  • vendor/cache/rspec-support-3.13.7.gem
  • vendor/cache/rspec-3.13.2.gem
  • vendor/cache/rspec-mocks-3.13.8.gem
  • vendor/cache/multi_json-1.19.1.gem
  • vendor/cache/rspec-its-2.0.0.gem
  • vendor/cache/timecop-0.9.10.gem
  • vendor/cache/rspec-core-3.13.6.gem
  • vendor/cache/diff-lcs-1.6.2.gem

Comment thread .github/workflows/ruby.yml
Comment thread bosh-stemcell/lib/bosh/stemcell/build_environment.rb
Comment thread bosh-stemcell/lib/bosh/stemcell/stemcell_packager.rb
Comment thread bosh-stemcell/lib/bosh/stemcell/stemcell_packager.rb
Comment thread bosh-stemcell/spec/bosh/stemcell/build_environment_spec.rb
Comment thread bosh-stemcell/spec/shellout_types/file_spec.rb
Comment thread bosh-stemcell/spec/support/cis.rb
Comment thread bosh-stemcell/spec/support/os_image_shared_examples.rb
Comment thread bosh-stemcell/spec/support/os_image_shared_examples.rb
Comment thread ci/tasks/test-unit.sh Outdated
@github-project-automation github-project-automation Bot moved this from Pending Merge | Prioritized to Waiting for Changes | Open for Contribution in Foundational Infrastructure Working Group Apr 11, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

♻️ Duplicate comments (2)
.github/workflows/ruby.yml (1)

14-14: ⚠️ Potential issue | 🟠 Major

Line 14: Workflow drops the explicit spec:shellout_types run.

bundle exec rake runs the default task, but ci/tasks/test-unit.sh still runs rake spec and rake spec:shellout_types separately (with OS_IMAGE). This job is now out of sync with that coverage.

Suggested fix
       run: |
         bundle install
-        bundle exec rake
+        bundle exec rake spec
+        OS_IMAGE=ubuntu-jammy bundle exec rake spec:shellout_types
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/ruby.yml at line 14, Workflow currently runs the default
"bundle exec rake" which omits the explicit "spec:shellout_types" task used by
ci/tasks/test-unit.sh; update the job to run the same tasks as the CI script by
replacing "bundle exec rake" with explicit commands (e.g., "bundle exec rake
spec", then "bundle exec rake spec:shellout_types" or a combined rake
invocation) so the workflow coverage matches the test script, referencing the
rake tasks "spec" and "spec:shellout_types" and the CI helper
"ci/tasks/test-unit.sh" to ensure parity.
README.md (1)

175-177: ⚠️ Potential issue | 🟠 Major

Run Bundler inside bosh-stemcell and remove --local in ShelloutTypes instructions.

Line 175 still installs with --local before changing directories (Line 176), which can fail now that cached dev gems were removed and uses the wrong bundle context.

Suggested fix
-bundle install --local
-cd /opt/bosh/bosh-stemcell
+cd /opt/bosh/bosh-stemcell
+bundle install
 OS_IMAGE=/opt/bosh/tmp/ubuntu_base_image.tgz bundle exec rake spec:shellout_types
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 175 - 177, Update the README so that the bundle
install command runs inside the bosh-stemcell directory and remove the --local
flag; specifically, change the sequence to cd /opt/bosh/bosh-stemcell first,
then run bundle install (without --local) before executing
OS_IMAGE=/opt/bosh/tmp/ubuntu_base_image.tgz bundle exec rake
spec:shellout_types, ensuring the bundle context is the bosh-stemcell directory.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@bosh-stemcell/lib/bosh/stemcell/stage_collection.rb`:
- Around line 60-63: The case statement contains duplicate branches for
Infrastructure::Vsphere and Infrastructure::Vcloud both calling
vsphere_vcloud_stages; refactor the case to merge them into a single when clause
(e.g. when Infrastructure::Vsphere, Infrastructure::Vcloud then
vsphere_vcloud_stages) so only one branch calls vsphere_vcloud_stages and the
Lint/DuplicateBranch warning is resolved.

In `@bosh-stemcell/lib/shellout_types/service.rb`:
- Line 59: The line in check_is_enabled_systemctl currently uses a redundant
boolean fallback ("^enabled$/.match?(stdout) || false"); remove the "|| false"
and return the matcher result directly by using /^enabled$/.match?(stdout) so
the method returns the MatchData/boolean as intended (or explicitly convert only
if a strict true/false is required); update the expression inside
check_is_enabled_systemctl accordingly.

In `@bosh-stemcell/spec/stemcells/cloudstack_spec.rb`:
- Line 10: The RSpec context string "installed by
bosh_disable_password_authentication" is misleading; update the context in
cloudstack_spec.rb to reference the actual stage name/location (e.g., "base_ssh"
or "base_ssh stage (stemcell_builder/stages/base_ssh/apply.sh)") so it matches
the implementation in stemcell_builder/stages/base_ssh/apply.sh and improves
traceability when running specs or debugging; change the context description
around the existing context block to the clearer name and ensure any related
it/describes remain consistent.

---

Duplicate comments:
In @.github/workflows/ruby.yml:
- Line 14: Workflow currently runs the default "bundle exec rake" which omits
the explicit "spec:shellout_types" task used by ci/tasks/test-unit.sh; update
the job to run the same tasks as the CI script by replacing "bundle exec rake"
with explicit commands (e.g., "bundle exec rake spec", then "bundle exec rake
spec:shellout_types" or a combined rake invocation) so the workflow coverage
matches the test script, referencing the rake tasks "spec" and
"spec:shellout_types" and the CI helper "ci/tasks/test-unit.sh" to ensure
parity.

In `@README.md`:
- Around line 175-177: Update the README so that the bundle install command runs
inside the bosh-stemcell directory and remove the --local flag; specifically,
change the sequence to cd /opt/bosh/bosh-stemcell first, then run bundle install
(without --local) before executing OS_IMAGE=/opt/bosh/tmp/ubuntu_base_image.tgz
bundle exec rake spec:shellout_types, ensuring the bundle context is the
bosh-stemcell directory.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 1f049481-0e2c-4d91-b05d-8a7ab51e4b0a

📥 Commits

Reviewing files that changed from the base of the PR and between ba42356 and 93e7481.

⛔ Files ignored due to path filters (1)
  • Gemfile.lock is excluded by !**/*.lock
📒 Files selected for processing (122)
  • .bundle/config
  • .gitattributes
  • .github/workflows/ruby.yml
  • .rubocop.yml
  • Gemfile
  • README.md
  • Rakefile
  • bosh-stemcell/.rubocop.yml
  • bosh-stemcell/Gemfile
  • bosh-stemcell/Rakefile
  • bosh-stemcell/bosh-stemcell.gemspec
  • bosh-stemcell/lib/bosh/core/shell.rb
  • bosh-stemcell/lib/bosh/stemcell/arch.rb
  • bosh-stemcell/lib/bosh/stemcell/archive.rb
  • bosh-stemcell/lib/bosh/stemcell/archive_filename.rb
  • bosh-stemcell/lib/bosh/stemcell/aws/region.rb
  • bosh-stemcell/lib/bosh/stemcell/build_environment.rb
  • bosh-stemcell/lib/bosh/stemcell/builder_options.rb
  • bosh-stemcell/lib/bosh/stemcell/definition.rb
  • bosh-stemcell/lib/bosh/stemcell/disk_image.rb
  • bosh-stemcell/lib/bosh/stemcell/infrastructure.rb
  • bosh-stemcell/lib/bosh/stemcell/operating_system.rb
  • bosh-stemcell/lib/bosh/stemcell/os_image_builder.rb
  • bosh-stemcell/lib/bosh/stemcell/stage_collection.rb
  • bosh-stemcell/lib/bosh/stemcell/stage_runner.rb
  • bosh-stemcell/lib/bosh/stemcell/stemcell_builder.rb
  • bosh-stemcell/lib/bosh/stemcell/stemcell_packager.rb
  • bosh-stemcell/lib/bosh/stemcell/version.rb
  • bosh-stemcell/lib/shellout_types/chroot.rb
  • bosh-stemcell/lib/shellout_types/file.rb
  • bosh-stemcell/lib/shellout_types/group.rb
  • bosh-stemcell/lib/shellout_types/package.rb
  • bosh-stemcell/lib/shellout_types/service.rb
  • bosh-stemcell/lib/shellout_types/user.rb
  • bosh-stemcell/spec/bosh/stemcell/archive_filename_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/archive_handler_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/archive_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/build_environment_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/builder_options_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/definition_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/disk_image_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/helpers_sh_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/infrastructure_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/operating_system_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/os_image_builder_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/stage_collection_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/stage_runner_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/stemcell_builder_spec.rb
  • bosh-stemcell/spec/bosh/stemcell/stemcell_packager_spec.rb
  • bosh-stemcell/spec/bosh/stemcell_spec.rb
  • bosh-stemcell/spec/os_image/ubuntu_spec.rb
  • bosh-stemcell/spec/shellout_types/chroot_spec.rb
  • bosh-stemcell/spec/shellout_types/command_spec.rb
  • bosh-stemcell/spec/shellout_types/file_spec.rb
  • bosh-stemcell/spec/shellout_types/group_spec.rb
  • bosh-stemcell/spec/shellout_types/package_spec.rb
  • bosh-stemcell/spec/shellout_types/service_spec.rb
  • bosh-stemcell/spec/shellout_types/spec_helper.rb
  • bosh-stemcell/spec/shellout_types/user_spec.rb
  • bosh-stemcell/spec/spec_helper.rb
  • bosh-stemcell/spec/stemcells/alicloud_spec.rb
  • bosh-stemcell/spec/stemcells/aws_spec.rb
  • bosh-stemcell/spec/stemcells/azure_spec.rb
  • bosh-stemcell/spec/stemcells/cis_spec.rb
  • bosh-stemcell/spec/stemcells/cloudstack_spec.rb
  • bosh-stemcell/spec/stemcells/fips_spec.rb
  • bosh-stemcell/spec/stemcells/go_agent_spec.rb
  • bosh-stemcell/spec/stemcells/google_spec.rb
  • bosh-stemcell/spec/stemcells/openstack_spec.rb
  • bosh-stemcell/spec/stemcells/softlayer_spec.rb
  • bosh-stemcell/spec/stemcells/stig_spec.rb
  • bosh-stemcell/spec/stemcells/ubuntu_spec.rb
  • bosh-stemcell/spec/stemcells/vcloud_spec.rb
  • bosh-stemcell/spec/stemcells/vsphere_spec.rb
  • bosh-stemcell/spec/stemcells/warden_spec.rb
  • bosh-stemcell/spec/support/be_valid_json_file_matcher.rb
  • bosh-stemcell/spec/support/cis.rb
  • bosh-stemcell/spec/support/os_image.rb
  • bosh-stemcell/spec/support/os_image_chrony_shared_examples.rb
  • bosh-stemcell/spec/support/os_image_linux_kernel_modules_shared_examples.rb
  • bosh-stemcell/spec/support/os_image_linux_kernel_shared_examples.rb
  • bosh-stemcell/spec/support/os_image_shared_examples.rb
  • bosh-stemcell/spec/support/os_image_systemd_shared_examples.rb
  • bosh-stemcell/spec/support/os_image_ubuntu_shared_examples.rb
  • bosh-stemcell/spec/support/os_image_upstart_shared_examples.rb
  • bosh-stemcell/spec/support/shellout_type_assertions.rb
  • bosh-stemcell/spec/support/spec_assets.rb
  • bosh-stemcell/spec/support/spec_ordering.rb
  • bosh-stemcell/spec/support/stemcell_image.rb
  • bosh-stemcell/spec/support/stemcell_shared_examples.rb
  • bosh-stemcell/spec/support/stemcell_tarball.rb
  • bosh-stemcell/spec/support/stig.rb
  • bosh-stemcell/spec/support/udf_module_disabled.rb
  • ci/tasks/test-unit.sh
  • vendor/cache/diff-lcs-1.6.2.gem
  • vendor/cache/fakefs-3.2.1.gem
  • vendor/cache/little-plugger-1.1.4.gem
  • vendor/cache/logging-2.4.0.gem
  • vendor/cache/multi_json-1.19.1.gem
  • vendor/cache/rake-13.3.1.gem
  • vendor/cache/rspec-3.13.2.gem
  • vendor/cache/rspec-core-3.13.6.gem
  • vendor/cache/rspec-expectations-3.13.5.gem
  • vendor/cache/rspec-instafail-1.0.0.gem
  • vendor/cache/rspec-its-2.0.0.gem
  • vendor/cache/rspec-mocks-3.13.8.gem
  • vendor/cache/rspec-support-3.13.7.gem
  • vendor/cache/timecop-0.9.10.gem
  • vendor/package/diff-lcs-1.6.2.gem
  • vendor/package/fakefs-3.2.1.gem
  • vendor/package/little-plugger-1.1.4.gem
  • vendor/package/logging-2.4.0.gem
  • vendor/package/multi_json-1.19.1.gem
  • vendor/package/rake-13.3.1.gem
  • vendor/package/rspec-3.13.2.gem
  • vendor/package/rspec-core-3.13.6.gem
  • vendor/package/rspec-expectations-3.13.5.gem
  • vendor/package/rspec-instafail-1.0.0.gem
  • vendor/package/rspec-its-2.0.0.gem
  • vendor/package/rspec-mocks-3.13.8.gem
  • vendor/package/rspec-support-3.13.7.gem
  • vendor/package/timecop-0.9.10.gem
💤 Files with no reviewable changes (20)
  • .bundle/config
  • .gitattributes
  • Rakefile
  • vendor/cache/rspec-instafail-1.0.0.gem
  • vendor/cache/multi_json-1.19.1.gem
  • vendor/cache/rspec-expectations-3.13.5.gem
  • vendor/cache/fakefs-3.2.1.gem
  • vendor/cache/logging-2.4.0.gem
  • bosh-stemcell/spec/support/spec_ordering.rb
  • vendor/cache/rspec-mocks-3.13.8.gem
  • vendor/cache/diff-lcs-1.6.2.gem
  • vendor/cache/rspec-its-2.0.0.gem
  • vendor/cache/timecop-0.9.10.gem
  • vendor/cache/rspec-3.13.2.gem
  • vendor/cache/rspec-core-3.13.6.gem
  • bosh-stemcell/.rubocop.yml
  • .rubocop.yml
  • vendor/cache/little-plugger-1.1.4.gem
  • vendor/cache/rspec-support-3.13.7.gem
  • vendor/cache/rake-13.3.1.gem

Comment thread bosh-stemcell/lib/bosh/stemcell/stage_collection.rb
Comment thread bosh-stemcell/lib/shellout_types/service.rb
Comment thread bosh-stemcell/spec/stemcells/cloudstack_spec.rb
@github-project-automation github-project-automation Bot moved this from Waiting for Changes | Open for Contribution to Pending Merge | Prioritized in Foundational Infrastructure Working Group Apr 12, 2026
- add Rakefile for gem
- update testing to use `rake spec`
- dev dependency gems are removed from cache
- add rake task to cover --tag shellout_types
- remove `logger` gem as it is not used
- remove vendored gems as the only gem needed now is `rake`
- remove conditionality for macOS (nee OSX)
- add `skip` for tests which are not runnable on macOS
- update README
No rubocop gem was present in Gemfile(s)
@aramprice aramprice merged commit 229001f into ubuntu-jammy Apr 13, 2026
12 checks passed
@github-project-automation github-project-automation Bot moved this from Pending Merge | Prioritized to Done in Foundational Infrastructure Working Group Apr 13, 2026
@aramprice aramprice deleted the deps-in-gemspec branch April 13, 2026 20:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

2 participants