jqr / heroku_san

Helpful stuffs for Heroku.
MIT License
583 stars 99 forks source link

Heroku Legacy Platform has been deprecated (heroku_san will stop working soon?) #177

Open iacobus opened 7 years ago

iacobus commented 7 years ago

Hello,

Thanks for your work on heroku_san. I'm opening this issue to flag the fact that heroku-api (https://github.com/heroku/heroku.rb), a core dependency to heroku_san, has officially been deprecated by Heroku, and it was deemed "sunset" as of April 15th, 2017. heroku-api implements what Heroku calls the "Heroku Legacy API". [1]

Since I was surprised that we could still use heroku_san, I've reached out to Heroku and they confirmed that such sunset has been "soft", as in that they are so far testing brownouts to get customers to move off the legacy API, but they plan to fully sunset it "in the short term".

From my understanding of heroku_san, the dependency on heroku-api is core, and presumably it'll stop functioning when Heroku does in fact sunset the Legacy API. Am I understanding the issue correctly? If so, is work to migrate heroku_san to https://github.com/heroku/platform-api, the new Heroku API, already happening, or where do we stand in terms of the future of the tool?

Thank you!

[1] https://devcenter.heroku.com/changelog-items/862 & https://blog.heroku.com/sunsetting_heroku_s_legacy_platform_api_v2

arsandov commented 7 years ago

Do you know any alternative? This API will be shutdown on June 26th https://devcenter.heroku.com/changelog-items/1147

iacobus commented 7 years ago

Hey @arsandov — we already had a custom deploy strategy inheriting from HerokuSan::Deploy::Base, so we've opted to replace our calls to HerokuSan::API methods (that at the moment rely on method_missing) with calls to HerokuSan::API#sh method and directly use the Heroku CLI in the deployment machine. For example, replacing api.post_app_maintenance(app, "1") with api.sh(app, "maintenance:on"). Our strategy did not have much exposure to the broad API so this was a fairly quick task. I think we'll stick to this as long as the future of heroku_san remains unclear.

kmayer commented 7 years ago

Anyone want pair with me this weekend to push a new release?

Sent from my iPhone

On Jun 22, 2017, at 7:24 PM, Jacobo Blasco notifications@github.com wrote:

Hey @arsandov — we already had a custom deploy strategy inheriting from HerokuSan::Deploy::Base, so we've opted to replace our calls to HerokuSan::API methods (that at the moment rely on method_missing) with calls to HerokuSan::API#sh method and directly use the Heroku CLI in the deployment machine. For example, replacing api.post_app_maintenance(app, "1") with api.sh(app, "maintenance:on"). Our strategy did not have much exposure to the broad API so this was a fairly quick task. I think we'll stick to this while the future of heroku_san remains unclear.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

kmayer commented 7 years ago

I use heroku_san every day, and so far, it hasn't failed. When it does, it'll be high on our developer backlog to get it running again. Until then, I'm resource deprived. I'm casting out for some pairing love, in hopes that two brains will get this done sooner.

arsandov commented 7 years ago

Thanks for the possible approach @iacobus. We use heroku_san to deploy our app, after the API sunset, we have a minor error while doing deploying in the last step (after running migrations), it looks like dynos are not being restarted, running manually heroku restart -a appname fix this issue

ashercoren commented 7 years ago

We are facing the same problem. Get an error at the last step. This sometimes terminates the deployment.

driedyam commented 7 years ago

We've been hand-rolling our deploys since the API sunset. Be great if this got updated.

kmayer commented 7 years ago

I've set aside some time on the 26th at a Ruby hack night to work on it.

On Thu, Jul 20, 2017 at 10:50 AM, driedyam notifications@github.com wrote:

We've been hand-rolling our deploys since the API sunset. Be great if this got updated.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/jqr/heroku_san/issues/177#issuecomment-316780232, or mute the thread https://github.com/notifications/unsubscribe-auth/AABM5CO1WwSg4O38ROoM6x7hMlbW8gdrks5sP5NKgaJpZM4N3kLT .

-- CTO, PacerPro, Inc. https://www.pacerpro.com Want to talk to me? Schedule an appointment here: https://calendly.com/ken-pacerpro/15min

ItamarShDev commented 7 years ago

Hey! any progress regarding this matter?

kmayer commented 7 years ago

I'll let you know by Thursday morning

driedyam commented 7 years ago

Sooooo?

jqr commented 7 years ago

I can understand the serious interest in updates, but just remember this is open source code. It's made by people just like you in their very limited free time. If you need this right away, the best move is to jump in and help! 😀

driedyam commented 7 years ago

Sure thing! I'm just giving Ken a hard time. We are actually good friends, so no pushiness intended.

kmayer commented 7 years ago

Barretto, I'd totally forgotten about your obscure, vegetative state github handle. As an update, instead of going to the meet up and happy hacking, I was on nursing duty, again. And now, I think, I've got whatever plague Asher, Aidan and Amy have. At least I'm not pooping on the floor like the cat. TMI? FOSS me, baby. Free. Open.

ItamarShDev commented 7 years ago

so.... any news?

ItamarShDev commented 6 years ago

i dont want to bother ans sound rude, but is there any plan to update this?

kmayer commented 6 years ago

yes, but it comes behind a lot of other things in my life. pull requests are always welcome

On Tue, Sep 26, 2017 at 11:28 PM, itamar sharify notifications@github.com wrote:

i dont want to bother ans sound rude, but is there any plan to update this?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/jqr/heroku_san/issues/177#issuecomment-332422161, or mute the thread https://github.com/notifications/unsubscribe-auth/AABM5FDeCjIintqilm2wxfVSYZwddr0qks5smesHgaJpZM4N3kLT .

-- CTO, PacerPro, Inc. https://www.pacerpro.com Want to talk to me? Schedule an appointment here: https://calendly.com/ken-pacerpro/15min

kristopher commented 6 years ago

Has anybody had a chance to see how divergent the new api is?

On Wed, Sep 27, 2017 at 11:59 AM, Ken Mayer notifications@github.com wrote:

yes, but it comes behind a lot of other things in my life. pull requests are always welcome

On Tue, Sep 26, 2017 at 11:28 PM, itamar sharify <notifications@github.com

wrote:

i dont want to bother ans sound rude, but is there any plan to update this?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/jqr/heroku_san/issues/177#issuecomment-332422161, or mute the thread https://github.com/notifications/unsubscribe-auth/ AABM5FDeCjIintqilm2wxfVSYZwddr0qks5smesHgaJpZM4N3kLT .

-- CTO, PacerPro, Inc. https://www.pacerpro.com Want to talk to me? Schedule an appointment here: https://calendly.com/ken-pacerpro/15min

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/jqr/heroku_san/issues/177#issuecomment-332570210, or mute the thread https://github.com/notifications/unsubscribe-auth/AAARODyR-iMnXMNoLBQgqMubD982LxYfks5smnDugaJpZM4N3kLT .

tansaku commented 6 years ago

@kmayer so what do we need to do to get this sorted?

tansaku commented 6 years ago

Sorry, that was a bit wooly. I see that heroku has switched apis. So presumably we need a wrapper for the new api and to hook that up to heroku_san and then test each function in turn.

I'll check out today and start poking around. I guess it all depends how divergent the new api is and how the old api is connected up to heroku_san ...

tansaku commented 6 years ago

I have it all installed and tests passing - looks like api namespace is mapped over directly, so whatever folks type in as a command can get sent directly to the api ... hmmm

ItamarShDev commented 6 years ago

@tansaku any updates?

kmayer commented 6 years ago

Looking at the code, this isn't a hard change.

@ItamarShDev This is an open source project. It is supported by the generous donation of our free time. Sam and I spent a couple of hours this weekend looking at it. If you want it to move faster, put up something, yourself.

I use this in production on our cedar-14 stack and it is still working for us. I can guarantee that the day it stops working for us, I will dedicate engineering resources ($$$) to it. So you can wait until I have funds, or you can write code.

Stop asking for updates. I don't work for you. When we have something, you'll see a commit or a pull request, or my tweets.

driedyam commented 6 years ago

If it is of any help to anybody, I've updated to the new api in my fork https://github.com/Cureus/heroku_san. I didn't have the bandwidth to translate all the features like dynamic app creation, but only did the ones necessary to run our project. This includes maintenance, web, workers, and restarting. Deploying and tailing logs should have continued to work, even with the old api, so that was a no-op. I've updated the tests to the modules that were updated, but yanking out the old api obviously breaks the tests for all the other methods I haven't touched which is the only reason why I haven't done a pull request yet. If somebody wants to fill in the rest of the blanks from my fork, be my guest!

ItamarShDev commented 6 years ago

@kmayer i asked @tansaku about updates on his research, and not for updates of the library :) i wanted to know the results of his research to try and help acctually sorry if it was misunderstood.