Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
Checking mergeability… Don't worry, you can still create the pull request.
Commits on Mar 03, 2012
@gregors surround --gemfile option input with single quotes
so appraisal can work with paths that contain spaces
Commits on Mar 18, 2012
@gregors add test for bundle command creation 8023273
@gregors add bundle command method 6b41d07
Commits on Mar 19, 2012
@gabebw gabebw Use a gem that we already depend on. Fixes #28. beaee3b
Commits on Mar 23, 2012
@mike-burns mike-burns Merge branch 'bugs/space_in_path' of… 6deffbe
Commits on Mar 25, 2012
@gabebw gabebw Fix syntax error. c7e8197
@gabebw gabebw Add Travis CI configuration. 6f5b399
@gabebw gabebw Add contribution guidelines. fd05fdf
@gabebw gabebw Add Travis-CI status to README. eb6df23
@gabebw gabebw Remove Gemfile.lock. 97bba87
@osheroff osheroff clean up appraisal names for gemfile path 75a4970
@osheroff osheroff spaces to underscores in clean_name b21220a
@osheroff osheroff add spec for cleaning up appraisal name 1d4fa93
@gabebw gabebw Add __FILE__ and __LINE__ for better backtraces. 1a29d89
@gabebw gabebw Revert "Add __FILE__ and __LINE__ for better backtraces."
This reverts commit 1a29d89.
Commits on Jun 20, 2012
@adelcambre adelcambre Support for multiple group names
* Bundler's group method can take multiple group names, appraisal breaks
* Add test to group with many arguments
Commits on Aug 31, 2012
@mike-burns mike-burns How to hit 1.0.0 a12af22
Commits on Sep 14, 2012
Adarsh Pandit Update MIT-License copyright year 2686f1c
Adarsh Pandit Update copyright year f379ec5
Commits on Oct 16, 2012
@gabebw gabebw Whitespace etc ec22939
Commits on Oct 20, 2012
@grosser grosser check and only install if necessary -> faster ec1caf1
Commits on Oct 22, 2012
@grosser grosser ignore gemfile.lock since that is what was inntended by not checking …
…it in
Commits on Oct 31, 2012
@jferris jferris Remove local bundle config
.bundle holds per-machine configuration and should not be committed
@jferris jferris Bump to 0.5.0 f0e9f6f
Commits on Nov 02, 2012
@gabebw gabebw Keep dots when generating a Gemfile
This also changes how punctuation that isn't "." is treated. Previously, it
would be removed, now it is converted to "_". Thus, `appraise "rails3.0!"` now
generates "rails3.0_.gemfile" where before it generated "rails30.gemfile".
Commits on Nov 07, 2012
@jferris jferris Bump to 0.5.1
* Fix for generated gemfiles missing periods
Commits on Jan 06, 2013
Adarsh Pandit Update copyright year to 2013 ac28193
Commits on Apr 05, 2013
@kachick kachick Enable warnings on spec task b2f9644
@kachick kachick Declare ivar in #initialize
This commit removes below interpreter warning.

* warning: instance variable @{ivar} not initialized
@tricknotes tricknotes Replace `source :rubygems` with url for
Bundler (1.3.0) says:

The source :rubygems is deprecated because HTTP requests are insecure.
Please change your source to ''; if possible, or
''; if not.
@sikachu sikachu Test appraisal with Ruby 2.0.0, remove 1.9.2 9d3c0ae
@sikachu sikachu Bump to 0.5.2 5232ed8
Commits on Apr 19, 2013
@sanemat sanemat Add necessary newline and remove excess newline
Allow one newline on generated gemfile end
- Add necessary newline
- Remove excess newline
Commits on Apr 26, 2013
@sikachu sikachu Dup a Gemfile by load it into another Gemfile b9b7b5d
@sikachu sikachu Add support for parsing `group` in Gemfile 55e158f
Commits on May 27, 2013
@sikachu sikachu Make Appraisal support more Bundler directive
Add support for:

* git
* ruby
@sikachu sikachu Make sure that user can `git commit` on Travis fdc2319
Commits on Jul 02, 2013
@bf4 bf4 Let the gem know it is MIT licensed
Adding license param to gem spec
@sikachu sikachu Merge pull request #52 from bf4/add-li
Specify license in the gemspec
Commits on Jul 03, 2013
@sikachu sikachu Add example on how to config Travis CI
[ci skip]
Commits on Jul 10, 2013
@mike-burns mike-burns Drop support for 1.8.7
In light of
we are dropping support for Ruby 1.8.7.
Commits on Jul 11, 2013
@mike-burns mike-burns Merge pull request #53 from thoughtbot/drop-1.8
Drop support for 1.8.7
Commits on Aug 26, 2013
@sanemat sanemat Refactor following bundle command 6a2c6c9
@sanemat sanemat Add bundler parallel install option dad08f8
Commits on Aug 27, 2013
@sanemat sanemat Add parallel gem for detecting the count of cpu cores
Use the count of cpu cores for `bundle install` parallel jobs,
because bundler v1.4.0.pre.1 provides parallel install option.
Commits on Sep 04, 2013
@sikachu sikachu Make Travis build against more branches and rubies 6517734
@sikachu sikachu Allow failures on JRuby and ruby-head for now 089f3dd
@padi padi Complain if no Appraisals file is found. 19e74b1
@sikachu sikachu Add missing integration test on missing Appraisals
Also, rename exceptions.rb to errors.rb
@sikachu sikachu Refactor and private `Appraisal#install_command`
This command should not be called directly outside Appraisal, so it does
not make sense to leave it as a public method.
@sikachu sikachu Shift `ARGV` when re-running the command
In some circumstances, `ARGV.slice` may return nil. It's safer to just
do `ARGV.shift` and discard the first object in the Array, since in
the end the resulting object would still be an array.

Fixes #54, Fixes #59.
Commits on Sep 13, 2013
@sikachu sikachu Update gemspec styling e0d3a3c
@sikachu sikachu Add my name to gem author bb3be89
@sikachu sikachu Add thor and bin/appraisal executable 5022244
@sikachu sikachu Setup RSpec to support acceptance testing f8ed189
@sikachu sikachu Add base spec for `appraisal generate` d7471e7
Commits on Sep 19, 2013
@sikachu sikachu `appraisal generate` is now working d69021c
@sikachu sikachu Add default task, so `bin/appraisal` => `generate` 8b4926f
@sikachu sikachu Speed up some test by build gem only once 946cec7
@sikachu sikachu Fix cucumber test failure c572f8c
@sikachu sikachu Adds `appraisal install` a56237d
@sikachu sikachu Do less RSpec overriding 7349a7b
@sikachu sikachu Auto relative-ize generated gemfiles
Fixes #49 and closes #50
@sikachu sikachu Make `appraisal` runs install command instead 3ee56a5
@sikachu sikachu Make Thor exit with nonzero status code on failure a160202
@sikachu sikachu Add `appraisal clean` command 48ec3dc
@sikachu sikachu Add `appraisal APPRAISAL_NAME COMMAND` command f3bc229
@sikachu sikachu Add `appraisal COMMAND` to run the command` f72e964
This prevents the need to have a description for each appraisal
subcommand as we'll add "Usage" section on top of the help command.
@sikachu sikachu Add useful help message to `appraisal help` 3e44e33
@sikachu sikachu List available appraisals when you run `help` bf5259a
@sikachu sikachu Add `appraisal update`
Fixes #60
Commits on Sep 21, 2013
@sikachu sikachu Add --jobs flag (-j) to set the jobs size
Also, remove automatic CPU cores detection and let users specify the
number of jobs themselves.

Closes #62
@sikachu sikachu Cleanup command calls 86b3c87
@sikachu sikachu Remove GOALS
I think we've reached it. :)
@sikachu sikachu Deprecate all rake tasks except `appraisal:all`
* Display warning when user invoke those tasks
* Run `appraisal` script when user invoke those tasks instead.
@sikachu sikachu Sets `APPRAISAL_INITIALIZED` when invoking command
This should be useful for people to track if their environment variables
has already been initialized and/or modified by Appraisal.
@sikachu sikachu Update README
* Update examples to use `appraisal` command.
* Update Rakefile setting.
* Minor adjustment on version control policy.
@sikachu sikachu Install prerelease version of Bundler on Travis CI 6724eb5
Commits on Oct 29, 2013
@phillbaker phillbaker Add description of known Bundle installation limitation.
Appraisal seems to require Bundler to install the requirements of the Gemfile in the global namespace, see #13 and #30.
@sikachu sikachu Remove trailing space from c03c964
@sikachu sikachu Bump to 1.0.0.beta1 a283e09
Commits on Nov 05, 2013
@bricker bricker Relax thor dependency ba10652
Commits on Nov 06, 2013
@sikachu sikachu Lock Thor to 0.14.0 during development
We already relax our dependency in ba10652. However, we need to limit
Thor to this version during development to make sure that we're not
using any version feature of Thor that is not available in the older
version, as Rails 3.0.0 requires Thor '~> 0.14.0'.

Fixes #67
@sikachu sikachu Bump to 1.0.0.beta2 8df6294
Commits on Jan 24, 2014
@jwaldrip jwaldrip Added platforms support a52df39
@jwaldrip jwaldrip remove invalid alias 7435f67
@jwaldrip jwaldrip Rubinius is clearly not working on travis, add to ingnore group for now 9fb49b9
@jwaldrip jwaldrip Make changes requested by @sikachu 6d599ff
Commits on Feb 23, 2014
@sikachu sikachu Prefix `bundle exec` on `run_simple`
The test were passing fine locally since I had `rubygems-bundler` gem,
which setups the environment without needing to run `bundle exec`.
However, this does not work on TravisCI.
@sikachu sikachu Turn off verbose for RSpec rake task 83f8bcf
@sikachu sikachu Update build matrix
* Install stable version of Bundler
* Add Ruby 2.1.0
* Change `rbx-19mode` to just `rbx`
* Allow failure on `rbx` :(
Commits on Feb 28, 2014
@sikachu sikachu Fix build error on Rubinius by requiring matcher
There was some problem with class autoloading in Rubinius, which can be
workaround by just requiring that missing file.

See rubinius/rubinius#2934
@sikachu sikachu Switch Ruby 2.1.0 with 2.1.1 56197f5
@sikachu sikachu Bump to 1.0.0.beta3 7711d4d
Commits on Mar 31, 2014
@sikachu sikachu Fix build on JRuby
* Stop using Aruba CLI in the RSpec.
* Shift from `bundle exec` to generate and use binstubs.
@sikachu sikachu Remove redundant cucumber feature cad3334
@sikachu sikachu Split CLI specs into multiple files a94043c
@sikachu sikachu Move gemspec feature to RSpec ba12452
@sikachu sikachu Move missing Appraisals spec to install spec 2469d3f
@sikachu sikachu Move Bundler DSL compatibility test to RSpec 3c9b011
@sikachu sikachu Remove dependencies on Aruba and Cucumber 71ccfc8
@sikachu sikachu Add missing test on Gemfile DSL 917be0c
Commits on Apr 01, 2014
@sikachu sikachu Add test for `platforms` syntax in Gemfile DSL d92b8f0
@sikachu sikachu Add support for Bundler DSL in Appraisals file
Fixes #47, #48, #51
@sikachu sikachu Speed up test case
* Only build gem that necessary for `bundle install`
* Pass `-lN` (local, skip documentation) to `gem install`


    Finished in 1 minute 54.3 seconds


    Finished in 1 minute 2.4 seconds
@sikachu sikachu Support `gemspec` DSL in Appraisals file
Fixes #48
@sikachu sikachu Stop inheriting Gemfile-like from Gemfile
This is to prevent an unexpected behavior when user has other definition
more than `gem` in definition blocks.
@sikachu sikachu Add missing requires 7c934bf
@sikachu sikachu Better format output file generated from Appraisal
So, instead of having

  gem "foo", :bar=>"baz"

We now have

  gem "foo", :bar => "baz"
Commits on Apr 02, 2014
@sikachu sikachu Fix test failure on `rubygems-head`
There's a regression in which RubyGems ignore the version of the
packaged gem file on `rubygems-head`. This is a workaround to make sure
that RubyGems install a correct version of the test gem.

See also rubygems/rubygems#875
@sikachu sikachu Do not display error when requiring rake task
Instead, only show missing Appraisals file error when user execute
@sikachu sikachu Add support for `path` block in Appraisals 3ab7fdf
@sikachu sikachu Bump to 1.0.0 7bb38f6
@sikachu sikachu Allow user to view help without Appraisals file
Check for the existance of Appraisals file first before trying to list
out available appraisals and triggers the error.
Commits on May 11, 2014
@pat pat Updating CLI for MRI 1.8 friendliness bd6eef4
Commits on Jun 06, 2014
@sikachu sikachu Upgrade Travis Ruby stack e04b562
@sikachu sikachu Use proper setting for rbx aa91563
@sikachu sikachu Update RSpec and use RSpec 3.0 syntax 385246e
Commits on Jun 25, 2014
@opsidao opsidao Add 'list' subcommand to CLI
Closes #74
Commits on Aug 21, 2014
@sikachu sikachu Move newline test out of context e981ccb
Commits on Aug 22, 2014
@sikachu sikachu Override dependency when defined in Appraisals
This fixes bug in the scenario where the same gem both defined in
`Gemfile` and `Appraisals` file.
@sikachu sikachu Bump to 1.0.1 3f8ffe8
Commits on Oct 10, 2014
@sikachu sikachu Bump `master` branch to `1.1.0-beta`.
This is to make sure that user awares that `1.0.x` releases is branching
off `1-0-stable` branch instead of `master`.
Commits on Oct 31, 2014
@sikachu sikachu Relax Ruby version number on Travis
As Ruby 2.1 is already conform to SemVer, this will make Travis to pick
the latest patch version of Ruby for us automatically.
Commits on Dec 26, 2014
@sikachu sikachu Test against Ruby 2.2 5deda10
Commits on Dec 28, 2014
@sikachu sikachu Copy Kernel#capture helper from Rails
Rails deprecated this helper as it's not threadsafe. However, in our
situation, we're only using it in the test so it doesn't matter.
Commits on Dec 31, 2014
@grosser grosser Mention `wwtd` for testing against multiple Rubies
Closes #73
@sikachu sikachu Reword suggestion about WWTD ae3875f
Commits on Jan 01, 2015
@oliverklee oliverklee Configure Travis for better build performance
Set sudo: false to allow Travis to use their new container-based

Closes #79
Commits on Jan 02, 2015
@sikachu sikachu Add `appraisal (-v/--version)`
Closes #80
@sikachu sikachu Add `gemspec` support in `group` clause
Fixes #76
@sikachu sikachu Match Bundler's DSL on `group` and `platforms`
* Add `platform` alias.
* Deprecate `groups`.

Fixes #78
Commits on Feb 05, 2015
@razum2um razum2um remove duplicate sources f0de312
Commits on Feb 06, 2015
@sikachu sikachu Merge pull request #85 from razum2um/master
Do not write duplicate sources in the Gemfile.
@sikachu sikachu Add support for `VERBOSE=1` to view $stdout
This will help debugging issues during code run.
@sikachu sikachu Refactor Gemfile and Gemspec object
* Remove the guard clause for `gemspec "../"` support.
* Make sure that we don't append `..` to `gemspec` path multiple times.
Commits on Mar 04, 2015
@sikachu sikachu Properly prefix relative paths
Appraisal now correctly prefix relative paths in these directives:

* `gem` directive (`:path` and `:git` option)
* `path` directive
* `git` directive

Fix #82
@mcmire mcmire Allow commands with spaces to be constructed as new Commands
If you were using the `appraisal` executable and passed an argument that
contained spaces, those spaces would not be preserved when Appraisal
went to execute the full command. For instance, this command...

    appraisal 4.2 rspec spec/some/file_spec.rb -e "some example group"

*Should* be expanded as follows:

    BUNDLE_GEMFILE=$PWD/gemfiles/4.2.gemfile rspec spec/some/file_spec.rb -e "some example group"

...but before this commit would be incorrectly expanded as follows:

    BUNDLE_GEMFILE=$PWD/gemfiles/4.2.gemfile rspec spec/some/file_spec.rb -e some example group

Close #86
Commits on Mar 09, 2015
@sikachu sikachu Targetting 2.0.0 on master branch
Version 1.0.0 was released[1] on April 2, 2014. I think it's time for us
to move onto the next major version.

Commits on Mar 10, 2015
@sikachu sikachu Remove unused Command#exec ed5f50d
@sikachu sikachu Ensure Bundler is available in vendored path
This fixes an issue where user would get "Could not find bundler" error
when tries to use Appraisal in project that vendorize gems.

The root cause was that Bundler will not bundle itself when you run
`bundle install` with `--path` option. As Appraisal resets `GEM_HOME`
to avoid dependency conflict, it also made RubyGems unable to locate
code for Bundler as well.

Fix #13, #30 and #87.
Commits on Mar 20, 2015
@sikachu sikachu Update test suite to work with bundle path
* Do not cleanup gem path between specs, but cleanup before the suite.
* Reinstall Bundler to vendored path.
* Remove Bundler cache on git gem after rebuild a git gem.
@sikachu sikachu Remove unused Cucumber's dependency helper 493a3e4
@sikachu sikachu Remove deprecated `groups` syntax
Note that `group` syntax is still available. This gets removed because
it is not officially supported by Bundler.

Fix #83
Commits on Mar 27, 2015
@sikachu sikachu Properly mark version as 2.0.0.beta
Ruby 1.8.7 did not like having `-` in the version name.
@jondeandres jondeandres Use hash rockets instead of `foo: bar` syntax.
Close #89
Commits on Apr 01, 2015
@sikachu sikachu Make Appraisal compatible with Ruby 1.8.7
This includes:

* Lock some dependencies to version that supports Ruby 1.8.7 when
  running on Ruby 1.8.7.
* Remove usage of `require_relative`.
* Use old style of hash syntax throughout the code.
* Explicitly set `ENV` override as `Kernel#system` on Ruby 1.8.7 does
  not take first `env` argument.
* Use `ActiveSupport::OrderedHash` on dependencies list to maintain the
  hash ordering.
* Active Support become part of runtime dependency.

This also adds Ruby 1.8.7 to build matrix.
@mshibuya mshibuya Support nesting of Bundler block DSL
Close #84
Commits on Apr 08, 2015
@sikachu sikachu Link to thoughtbot's code of conduct 0df3e03
Commits on Apr 10, 2015
@sikachu sikachu Add Travis configuration helpers
* Add `--travis` flag to `appraisal generate` to display the correct
  gemfiles configuration.
* Warn when users have an incorrect gemfiles configuration in their
  `.travis.yml` file.
* Advise users to run command with `--travis` if they have no `gemfiles`
  configuration in their `.travis.yml` file.

Fix #65
@sikachu sikachu Bump to 2.0.0 66ce72c
Commits on Apr 14, 2015
@PikachuEXE PikachuEXE Fix config key being used for gemfiles
Fix #91, Close #92
@sikachu sikachu Bump to 2.0.1 1bf6d7c