Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Bumping to heroku-buildpack-ruby v102. #7

Closed
wants to merge 293 commits into
from

Conversation

Projects
None yet

No description provided.

hone and others added some commits Jul 25, 2013

@hone hone Revert "rake task defined specs"
This reverts commit 00d1d3b.
e793ac0
@hone hone Revert "[#118] make rake_task_defined? work in the face of extraneous…
… output"

This reverts commit 3fe9155.
fe56807
@hone hone Revert "ruby 1.8.7 does not have rake available"
This reverts commit 9bb7cbf.
603e0d5
@hone hone Revert "add bin to PATH for rake task check"
This reverts commit 3243f42.
41a9058
@hone hone Revert "don't error out if there's no Gemfile"
This reverts commit f627008.
567a078
@hone hone Revert "Better checking for existence of Rake tasks"
This reverts commit 9b96e6d.
ae06d39
@hone hone special case JRuby 1.7.3 to older JDKs due to jffi bug 4ada741
@hone hone update changelog 7791eba
@hone hone v74 de7dbc0
@schneems schneems Use Hatchet::Runner available in 1.1.0
Fix tests on travis
4d28b07
@schneems schneems Merge pull request #120 from heroku/schneems/hatchet-runner
Abstract Anvil versus git app to make configurable
f2fe96a
@hone hone use rubinius' heroku binaries 2a5f5fe
@hone hone add checksum checking for rbx 2045976
@hone hone Revert "special case JRuby 1.7.3 to older JDKs due to jffi bug"
This reverts commit 4ada741.

we rolled about OpenJDK versions
b22ae4b
@hone hone instrument the request_id 7aefa7e
@hone hone update changelog 1b5f062
@hone hone v75 4e3b342
@hone hone fix request_id instrumentation to follow Build & Packaging standard e998531
@hone hone update changelog 0489ef6
@hone hone v76 b0ae4a2
@hone hone nokogiri should compile with system libs
As of nokogiri 1.6.0, they default to using the vendored libxml2 libs.
This is problematic for two reasons. First, with the way the heroku
build environment works,
sparklemotion/nokogiri#923. This means it
won't link nokogiri.so properly since it's dependent on hardcoded paths
that don't exist during runtime. Second, compiling libxml2 and friends
is unnecessary since we have them already setup. We should skip this to
speed up deploys.
05a8582
@hone hone Merge pull request #124 from heroku/nokogiri
nokogiri should compile with system libs
b6687d1
@hone hone update changelog 69230cc
@hone hone v77 4f3089c
@wuputah @mikehale wuputah dont install plugins if plugins exist as gems f2f22b4
@wuputah @mikehale wuputah Warning when plugin gets installed
avoids the 'topic' output entirely if no plugins need to be installed
58db630
@mikehale mikehale use if.any? 1a992a8
@schneems schneems Merge pull request #11 from heroku/skip-plugins-if-gems
Skip plugins if gems
58e3503
@hone hone add intelligent messaging for the nokogiri fix d014273
@hone hone Merge tag 'v77' 50cdd4e
@schneems schneems [close #127] Fix LPXC Deadlock Error
LPXC can experience a deadlock error reported in #127 it was fixed in this commit:
ryandotsmith/lpxc@1f0bd9c

We are vendoring those changes in in this commit
5b033b3
@schneems schneems Merge pull request #128 from heroku/schneems/lpxc-fix
[close #127] Fix LPXC Deadlock Error
edac489
@schneems @schneems schneems Clean up plugin logic and warning text
added a test
1ee1677
@schneems schneems Merge pull request #126 from heroku/schneems/plugin-warnings
Clean up plugin logic and warning text
34f5f70
@schneems schneems Bugfix and More tests for plugin logic 9eb3fc1
@hone hone Merge pull request #132 from heroku/schneems/less-inheritance-in-plugins
Bugfix and More tests for plugin logic
968736e
@hone hone Revert "Merge pull request #132 from heroku/schneems/less-inheritance…
…-in-plugins"

This reverts commit 968736e, reversing
changes made to 34f5f70.

Still some issues with this Pull Request. Going to work on it some more.
6663f5e
@hone hone remove extra '--' from warnings 2f3e3d1
@schneems schneems Symlink ruby.exe to ruby
Rails 4 introduced the `bin/` directory to generated projects with executables `rails`, `bundle`, `rake`, etc. The file generated on windows has a link to an incorrect `ruby.exe` in the shebang line. See #134.

This PR adds a symlink so that `ruby.exe` can be called in addition to `ruby.
ed235df
@hone hone should set $GEM_PATH as well for the build process
if this isn't setup properly, locally it might pick the wrong bundler
c944525
@schneems @hone schneems Bugfix and More tests for plugin logic
Actually testing for presence of directories now !
8d889f3
@hone hone rails 4 plugin work
* move rails_12factor gem test to the beginning
* test against ruby 2 since that's the new default
* rails_12factor not rails_12_factor
1305e3d
@hone hone rails 3 plugin work
* gem and plugin names are different
* rails_12factor not rails_12_factor
494a67e
@hone hone only warn once about plugin injection in rails 3 9055967
@schneems @hone schneems fix specs 728657f
@hone hone use `PluginInstaller` for runtime asset compilation a8341db
@hone hone set deprecation notices for runtime assets compilation d60256f
@hone hone fix specs 672e18a
@hone hone update changelog 2e080a3
@hone hone v78 fd4dfc0
@hone hone remove debug output from LXPC
If someone is using user-env-compile and sets DEBUG to true, then the
output will be displayed causing a build failure.
e88b9c5
@hone hone Merge pull request #139 from heroku/schneems/rails4-windows-fix
Symlink ruby.exe to ruby
3e45b29
@hone hone fix syntax error in spec fff8ff4
@hone hone Merge pull request #141 from heroku/remove_debug_lxpc
remove debug output from LXPC
6bee178
@hone hone update changelog 3aa57f8
@hone hone v79 90afa59
@hone hone add bundler binstubs to the .profile.d path bab143e
@freeformz freeformz Remove RUBY_VERSION env var support
The docs says it was going to be removed entirely in August 2012.

It is now Sept 2013. About time to remove it.
527658a
@hone hone Merge pull request #144 from heroku/remove_ruby_version_env_var
Remove RUBY_VERSION env var support
7b8f49e
@hone hone set indy to false. Fixes #145. 74f0b90
@hone hone store the rails 4 asset cache to improve asset pipeline performance 77a4220
@hone hone Merge pull request #146 from hone/jruby-passenger
set indy to false. Fixes #145.
437ceb4
@schneems schneems Move logic to testable class 666220c
@schneems schneems Merge pull request #147 from hone/cache_assets
store the rails 4 asset cache to improve asset pipeline performance
6468b2e
@hone hone restrict build rubies to mri 1.9.2 and 1.8.7 31e5c51
@hone hone update changelog c3133e8
@hone hone Merge pull request #143 from heroku/add_binstubs_to_path
add bundler binstubs to the .profile.d path
b962ebe
@hone hone v80 0b97d6a
@hone hone ensure s3 objects are coming out of Virginia
From @mfine:

S3 objects are sitting in the wrong side of the country, eventual
consistency be damned. There is no US East region in S3; there is
something called US Standard, and it runs out of Virginia AND Seattle
datacenters. It's a legacy artifact and a source of endless operational
pain within AWS. Objects are intended to be replicated across the
datacenters, but sometimes this doesn't work out, and objects get stuck
in one datacenter or the other. Since we run everything out of US East,
it's operationally prohibitive to get things stuck in Seattle. This is a
per object issue, not a per bucket issue - objects in the same bucket
can end up in either Virginia or Seattle.

This is really easy to do by accident - upload an object from your
laptop in San Francisco, and you get bound to the Seattle datacenter.
AWS provides endpoints that will bind objects either to Virginia or
Seattle in US Standard. Be safe and prefer using
s3-external-1.amazonaws.com.

You can read more about it here:
https://forums.aws.amazon.com/message.jspa?messageID=185820
6dcc243
@hone hone Merge pull request #151 from hone/s3_virginia
ensure s3 objects are coming out of Virginia
d87420d
@hone hone refactorings from @tenderlove e612e24
@hone hone if using bundle exec, -rbundler/setup fudges with RUBYOPT 141051a
@mmcgrana mmcgrana Remove extra / unmatched double quote 1da7e7d
@hone hone Merge pull request #158 from heroku/remove-extra-quote
Remove extra / unmatched double quote
ada64e7
@hone hone Setup a default bundler cache for ruby 2.0.0 (default ruby) d19810e
@hone hone use the patchlevel for default cache bedbe20
@hone hone update changelog 4c99525
@hone hone if the cdn.yml is empty, return a Hash a513029
@hone hone try using S3 instead of Cloudfront 04d8a3a
@hone hone v81 bc896ed
@schneems schneems [close #159] Remove deprecated asset behavior
Rails3 deploys that do not successfully run `assets:precompile` will now fail.
9d418c5
@schneems schneems The default cache skips installing nokogiri
Not sure how this wasn't caught earlier but with the default cache, nokogiri doesn't get installed using Ruby 2.0.0. We may want to change how we're testing for this, but for now this spec fix should keep the suite working for now.

Here is the new output:

```
-----> Fetching custom git buildpack... done
-----> Ruby app detected
-----> Using Ruby version: ruby-2.0.0
-----> Installing dependencies using Bundler version 1.3.2
       New app detected loading default bundler cache
       Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
       Using mini_portile (0.5.1)
       Using nokogiri (1.6.0)
       Using bundler (1.3.2)
       Your bundle is complete! It was installed into ./vendor/bundle
       Bundle completed (0.53s)
       Cleaning up the bundler cache.
       Removing sass (3.2.10)
       Removing railties (4.0.0)
       Removing rails_serve_static_assets (0.0.1)
       Removing activerecord-deprecated_finders (1.0.3)
       Removing polyglot (0.3.3)
```
e662aac
@schneems schneems Merge pull request #161 from heroku/schneems/remove-runtime-asset-com…
…pilation

[close #159] Remove deprecated asset behavior
67c6974
@hone hone move benchmark require to top d63fa2f
@hone hone if buildpack version is 0, should not clear the cache 6ff0aa5
@schneems schneems [close #29] Better Retry/Failure Support for Curl 77943bb
@schneems schneems Do as little work in Detect as possible dd75ed5
@schneems schneems v82 fc0e556
@schneems schneems Merge pull request #166 from heroku/schneems/clean-detect
Do as little work in Detect as possible
f5f19f2
@schneems schneems Merge pull request #165 from heroku/schneems/improve-curl
[close #29] Better Retry/Failure Support for Curl
1b3d9df
@schneems schneems fix fetcher 5bb8ef1
@schneems schneems Merge pull request #167 from heroku/schneems/fix-fetcher
fix fetcher
ee06b54
@hone @schneems hone extract ruby version logic into RubyVersion 15df637
@schneems schneems [close #36] Unit test RubyVersion class
This commit adds unit tests to the RubyVersion class. A refactoring was done to improve testability (additional constants needed). Exposing any error coming from bundler #36 is now accomplished and tested.

Default version for new and old apps are tested. Explicit version with bundler for MRI and JRuby are tested. Specifying an invalid version via gemfile is not tested.

Use bundler internals to detect Ruby Version

Don't do work in release
Don't require language_pack in release
Defer testing JRuby warning to #168
e9da49c
@schneems schneems Merge pull request #153 from heroku/ruby_version_merge
extract ruby version logic into RubyVersion
454c283
@schneems schneems changelog 2cfb426
@hone hone add jruby test 01708c7
@hone hone Fix warning warning libjffi-1.2.so on < JRuby 1.7.3
[JRuby Issue](jruby/jruby#899). We need to use
an older JDK for JRuby 1.7.3 and lower.
e602cbe
@hone hone update changelog 7200d36
@schneems schneems Merge pull request #168 from heroku/jdk_u40_update
Fix warning warning libjffi-1.2.so on < JRuby 1.7.3
97b3261

hone and others added some commits Jan 1, 2014

@hone @schneems hone buildpack:tag task creates tag and pushes it 2869fa7
@hone @schneems hone buildpack:release task f1f3192
@schneems schneems Merge pull request #194 from heroku/releasing
Rake Tasks for Release Management
9b0bee1
@hone hone remove unnecessary .gem files when packaging gems 597ec09
@hone hone re-remove vulcan tasks that got added back in by #194 d3c383d
@schneems schneems Bump to bundler 1.5.2 which includes parallel fix 42d7d33
@schneems schneems Use instance variable instead of const for tar name ee01bc2
@hone hone Merge pull request #198 from heroku/reremove_vulcan_tasks
Reremove vulcan tasks
5d824b9
@schneems schneems Merge pull request #199 from heroku/schneems/bundler-1.5.2
Bump to bundler 1.5.2 which includes parallel fix
b6aa373
@schneems schneems bump to v91 fbf73e6
@schneems schneems changelog 9eec344
@hone hone fix stash checking for buildpack:increment 5f7c4f8
@hone hone add messaging around buildpack increment success dfeff1d
@hone hone Merge pull request #204 from heroku/fix_buildpack_increment
Fix buildpack increment
08a1256
@hone @schneems hone raise an error if problems detecting the bundler vendor directory d37e519
@hone @schneems hone figure out slug vendor base without munging in errors 128d472
@schneems schneems add tests for user env compile 8b6126f
@schneems schneems Merge pull request #203 from heroku/stderr
Fixes #202
57dde7f
@schneems schneems Refactor gem logic into BundlerWrapper
gem_is_bundled?("thin") => bundler.has_gem?("thin")

This reduces the surface area of the LanguagePack and keeps the internals of the `bundler` object lock file less exposed.
c1bac44
@jvanbaarsen jvanbaarsen Fixed a typo
Should be rails 4
f55aacf
@schneems schneems Refactor has_windows_gemfile_lock? to bundler
Hide the internals of the Gemfile lock parser from LanguagePack
ba37e16
@schneems schneems Faster `gem_version`
Implement `bundler.gem_version` to be constant time lookup using a hash instead of scanning with a detect.

Checking for Gemfile.lock is redundant since we have a `NoLockfile` language pack that detects this before any other packs can be run.

Reduce the Language Pack footprint so it knows less about the internals of the lockfile parser
d688747
@schneems schneems Update to use new class edfb64e
@schneems schneems Remove un-needed Gemfile.lock check 8410666
@schneems schneems add bundler specs for windows Gemfile detect 92edacb
@schneems schneems Merge pull request #181 from heroku/schneems/bundle-wrapper-refactor
Schneems/bundle wrapper refactor
5ee1d0d
@schneems schneems Merge pull request #207 from jvanbaarsen/patch-1
Fixed a typo
d604616
@schneems schneems [close #205] Check for Rakefile before rake runs
If no Rakefile (or variant) is present we should not attempt to detect rake tasks.
c086369
@schneems schneems Merge pull request #208 from heroku/schneems/rakefile-detect
[close #205] Check for Rakefile before rake runs
836ddab
@hone hone update v92 changelog 45ccfd8
@hone hone update changelog dates ad94f6f
@hone hone bump to v92 bfe07ef
@hone hone fix rake buildpack:tag when used separately 2964026
@schneems @hone schneems consolidate run commands 368c0c8
@schneems @hone schneems allow ability to read in env de9af15
@schneems @hone schneems make sure all rake tasks go through `RakeRunner` b7c58b1
@schneems @hone schneems use options hashes for RakeRunner c1e0519
@schneems @hone schneems always use rake when running rake task 45f6a36
@hone hone pass user env when detecting rake tasks 8cee15b
@hone hone set user env for bundle install, rake, rails3/4 assets:precompile 1baab52
@hone hone add env var blacklist 99b3d6d
@hone hone use new build env arg format using a directory of env vars 0361919
@hone hone need to setup bash shell env when passing env during run 301163b
@hone hone Merge pull request #201 from heroku/uec_spike
buildpack-env-args...ponies!
443c4c2
@schneems schneems Merge pull request #215 from heroku/schneems/update-hatchet
heroku hatchet 1.1.9
7a0b63a
@schneems schneems heroku hatchet 1.1.9 cea0ffb
@schneems schneems Fix parallel bundler tests
- Always use a tmpdir to download bundler.
- Remove un-used methods `Ruby.bundle` and `Ruby.bundler_path`.
- Re-name `install_language_pack_gems` to `install_bundler_in_app` since that's all it ever does
- Copy bundler into app path instead of re-downloading
ce73965
@schneems schneems Merge pull request #212 from heroku/schneems/parallel-bundle-wrapper-fix
Fix parallel bundler tests
64c7c71
@hone hone update changelog 4559334
@hone hone bump to v93 eeac22b
@hone hone Cleanup language pack config var setup, especially with PATH c683d40
@hone hone always return @slug_vendor_base in slug_vendor_base 7a6eb0f
@hone hone add quiet option for RakeTask#invoke 1ff5b99
@hone hone standardize all rake task usage through RakeRunner 450bf0a
@schneems schneems Merge pull request #217 from heroku/cleanup_config_vars_path
Cleanup config vars, specifically PATH
41f1398
@schneems schneems bump to v94 9629247
@schneems schneems changelog aba42af
@hone hone remove last occurrence of install_language_pack_gems f8d6a0c
@schneems schneems changelog b2d8f90
@schneems schneems bump to v96 16ba64a
@schneems schneems bump to v97 1396fb0
@schneems schneems changelog ff10339
@hone hone when tagging a release, push commits to master faf1201
@hone hone add jdk to the path if using JRuby 63b51e9
@hone hone Merge pull request #220 from heroku/git_push_master
when tagging a release, push commits to master
974ce8e
@hone hone Merge pull request #221 from heroku/jdk_path
JDK Path
823363f
@hone hone update changelog a40df5a
@hone hone bump to v98 5d1ac1b
@schneems schneems bump versions of heroku hatchet
Allows us to modify files of individual repos without having the changes be persisted across tests.
1afa0a4
@schneems schneems Test upgrading ruby versions aaa17c7
@hone hone bump libyaml to 0.1.5 for CVE-2013-6393 ac6554c
@schneems schneems hatchet now takes care of `git config` a421fb8
@schneems schneems Merge pull request #223 from heroku/schneems/version-change-test
Test upgrading Ruby versions
9aa34d6
@hone hone recompile psych if it's compiled with 0.1.4 bdf2b6a
@hone hone Merge pull request #224 from heroku/libyaml
compile psych with libyaml 0.1.5
78ac43a
@hone hone update changelog 64407c1
@hone hone bump to v99 78311b7
@hone hone update changelog 6389f7e
@hone hone take into account buildpack v99 was a noop 0f18299
@hone hone bump to v100 b1c209f
@hone @schneems hone read user ENV settings for both user-env-compile or buildpack-env-arg 7203ca0
@hone @schneems hone quote env vars e2f7016
@hone @schneems hone remove run_with_env
run supports everything run_with_env does, so let's use that
2e43dac
@schneems schneems Merge pull request #219 from heroku/ponies
buildpack-env-arg fixes
d659cb8
@schneems schneems fix rake detection when DATABASE_URL not present
Introduced `rake_env` to LanguagePack interface. Renamed `default_database_url` to `database_url`.
74ed870
@schneems schneems travis 7e95dca
@hone hone Merge pull request #214 from heroku/schneems/database_url_issue
fix rake detection when DATABASE_URL not present
c01a03e
@hone hone push to github before tagging/releasing dd02c68
@hone hone update changelog 4f69adf
@hone hone bump to v101 6e02f44
@hone hone fix github_remote extraction 3d3e69e
@hone hone pass output options to pipe 3e2c972
@hone hone actually use the blacklist env vars cdfc16c
@hone hone Merge pull request #225 from heroku/path_debug
more pony fixes
2eb97fc
@hone hone update changelog a3d9d77
@hone hone bump to v102 17a3447
Austin Ziegler Merge remote-tracking branch 'heroku/master'
* heroku/master: (235 commits)
  bump to v102
  update changelog
  actually use the blacklist env vars
  pass output options to pipe
  fix github_remote extraction
  bump to v101
  push to github before tagging/releasing
  update changelog
  travis
  fix rake detection when DATABASE_URL not present
  remove run_with_env
  quote env vars
  read user ENV settings for both user-env-compile or buildpack-env-arg
  bump to v100
  take into account buildpack v99 was a noop
  update changelog
  bump to v99
  update changelog
  recompile psych if it's compiled with 0.1.4
  hatchet now takes care of `git config`
  ...

Conflicts:
	lib/language_pack/rails3.rb
d6a21c3
Austin Ziegler Fix gem presence testing.
Incorporates the changes in c1bac44.
0190eb3

lbeder commented Feb 21, 2014

👍

@halostatue halostatue closed this Mar 12, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment