Skip to content
New issue

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

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[close #103] Remove active support #107

Merged
merged 2 commits into from
Aug 10, 2020
Merged

Conversation

schneems
Copy link
Contributor

No description provided.

@schneems schneems force-pushed the schneems/nuke-active-support branch 3 times, most recently from e1cc5b5 to 23bb238 Compare August 10, 2020 15:02
Copy link
Member

@edmorley edmorley left a comment

Choose a reason for hiding this comment

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

Thank you 👍

(Also I'd missed that active_support/core_ext/object/blank provided .present? too)

@schneems schneems force-pushed the schneems/nuke-active-support branch from 23bb238 to 977ed65 Compare August 10, 2020 20:02
@schneems
Copy link
Contributor Author

Working on this I found and documented some flappyness as a result of #110

In https://app.circleci.com/pipelines/github/heroku/hatchet/166/workflows/1f61788d-e127-458e-bf77-fa869823a44d/jobs/492 we're seeing this failure:

```
  1) CIFourTest error with bad app

     Failure/Error: return connection.request(options)

     

     Excon::Error::TooManyRequests:

       Expected([201, 200]) <=> Actual(429 Too Many Requests)

     # ./vendor/bundle/ruby/2.5.0/gems/excon-0.76.0/lib/excon/middlewares/expects.rb:13:in `response_call'
     # ./vendor/bundle/ruby/2.5.0/gems/excon-0.76.0/lib/excon/middlewares/response_parser.rb:12:in `response_call'
     # ./vendor/bundle/ruby/2.5.0/gems/excon-0.76.0/lib/excon/connection.rb:450:in `response'
     # ./vendor/bundle/ruby/2.5.0/gems/excon-0.76.0/lib/excon/connection.rb:281:in `request'
     # ./lib/hatchet/test_run.rb:226:in `block (2 levels) in raw_excon_request'
     # ./vendor/bundle/ruby/2.5.0/gems/rate_throttle_client-0.1.2/lib/rate_throttle_client/clients/exponential_increase_proportional_remaining_decrease.rb:17:in `call'
     # ./lib/hatchet/test_run.rb:223:in `block in raw_excon_request'
     # ./vendor/bundle/ruby/2.5.0/gems/rrrretry-1.0.0/lib/rrrretry.rb:41:in `retry'
     # ./lib/hatchet/test_run.rb:222:in `raw_excon_request'
     # ./lib/hatchet/test_run.rb:206:in `excon_request'
     # ./lib/hatchet/test_run.rb:89:in `info'
     # ./lib/hatchet/test_run.rb:127:in `block in wait!'
     # ./lib/hatchet/test_run.rb:125:in `wait!'
     # ./lib/hatchet/app.rb:452:in `block in run_ci'
     # ./lib/hatchet/app.rb:346:in `block (2 levels) in in_directory'
     # ./lib/hatchet/app.rb:344:in `chdir'
     # ./lib/hatchet/app.rb:344:in `block in in_directory'
     # ./lib/hatchet/app.rb:342:in `in_directory'
     # ./lib/hatchet/app.rb:424:in `run_ci'

```

This comes from an expectation being placed on the request that says it must either be a `200` or a `201` we also need to be able to accept a 429 response or the request cannot be retried. This commit allows calls to the test API can be rate throttled
@schneems
Copy link
Contributor Author

I ran into (yet another) edge case and decided to fix it right here 161f404. I would like to set up a unit test for it, since the behavior is otherwise so intermittent, but since there's not already a webmock enabled unit test with this class it's pretty heavyweight. If we want to do more dev on this class, it's worth investing in some unit tests.

@schneems schneems merged commit 0ef8ebc into main Aug 10, 2020
@schneems schneems deleted the schneems/nuke-active-support branch August 10, 2020 20:36
schneems added a commit to heroku/heroku-buildpack-python that referenced this pull request Aug 11, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)
schneems added a commit to heroku/heroku-buildpack-php that referenced this pull request Aug 11, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)
edmorley pushed a commit to heroku/heroku-buildpack-python that referenced this pull request Aug 11, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)

[skip changelog]
schneems added a commit to heroku/heroku-buildpack-jvm-common that referenced this pull request Aug 11, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)
schneems added a commit to heroku/heroku-buildpack-scala that referenced this pull request Aug 11, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)
schneems added a commit to heroku/heroku-buildpack-clojure that referenced this pull request Aug 11, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)
schneems added a commit to heroku/heroku-buildpack-java that referenced this pull request Aug 11, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)
schneems added a commit to heroku/heroku-buildpack-nodejs that referenced this pull request Aug 11, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)
dryan pushed a commit to dryan/heroku-buildpack-python that referenced this pull request Nov 19, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)

[skip changelog]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants