-
Notifications
You must be signed in to change notification settings - Fork 7
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
Conversation
e1cc5b5
to
23bb238
Compare
There was a problem hiding this 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)
23bb238
to
977ed65
Compare
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
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. |
- 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)
- 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)
- 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]
- 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)
- 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)
- 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)
- 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)
- 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)
- 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]
No description provided.