Skip to content

Commit

Permalink
(#15464) Exclude gem command from bundler
Browse files Browse the repository at this point in the history
This patch simply excludes the `gem` command from the dependency
handling of Bundler with the `rubygems-bundler` gem installed.

This patch also updates the README to describe the resolution to the
spec test failures we've been seeing when Puppet contains a Gemfile in
the project root.

To summarize: Use of RVM is considered dangerous

We're able to work around the problem, but the hijacking of shell
builtin commands is a maintenance burden we're not willing to shoulder,
hence RVM being considered a dangerous tool.
  • Loading branch information
Jeff McCune committed Aug 20, 2012
1 parent 54ea4fe commit 48a9cc2
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
1 change: 1 addition & 0 deletions .noexec.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
exclude:
- gem
- rake
- rspec
22 changes: 22 additions & 0 deletions README_DEVELOPER.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,28 @@
This file is intended to provide a place for developers and contributors to
document what other developers need to know about changes made to Puppet.

# Use of RVM considered dangerous #

Use of RVM in production situations, e.g. running CI tests against this
repository, is considered dangerous. The reason we consider RVM to be
dangerous is because the default behavior of RVM is to hijack the builtin
behavior of the shell, causing Gemfile files to be loaded and evaluated when
the shell changes directories into the project root.

This behavior causes the CI Job execution environment that runs with `set -e`
to be incompatible with RVM.

We work around this issue by disabling the per-project RC file parsing using

if ! grep -qx rvm_project_rvmrc=0 ~/.rvmrc; then
echo rvm_project_rvmrc=0 >> ~/.rvmrc
fi

When we setup CI nodes, but this is not standard or expected behavior.

Please consider rbenv instead of rvm. The default behavior of rvm is difficult
to maintain with `set -e` shell environments.

# Dependencies #

Puppet is considered an Application as it relates to the recommendation of
Expand Down

0 comments on commit 48a9cc2

Please sign in to comment.