Moya: Release 9.0.0

Created on 8 May 2017  ยท  31Comments  ยท  Source: Moya/Moya

After #762 is ready and merged, we should look at releasing 9.0.0! ๐ŸŽ‰๐Ÿš€

  • [x] Queues (#762)
  • [x] rx.request / reactive.request (#1140, #1153, #1163)
  • [x] Removing deprecated methods/types from 8.0.0 (#1162)
  • [x] Check 8.0 -> 9.0 migration with an old project and check if the fix-its work as expected / there is need for a migration guide
chore

Most helpful comment

Aaaaaand it's out! ๐ŸŽ‰ We can officially close this one, it was a fun ride! Thank you all, you are awesome ๐Ÿฅ‡

zrzut ekranu 2017-09-04 o 21 11 35

All 31 comments

I think it is time to focus more on this release in the near future. There were multiple issues regarding our new introductions in 9.0.0 and Swift 4 is on the horizon. I'd love to have queues changes (#762) in, and if we can, rx.request & reactive.request from #963 and sampleData from #1126 as well. These are quite big breaking changes so I think we could try and wait for that, but we might want to just go without them if it takes too much time. What do you guys think?

Yeah, I think we should try to get 9.0.0 out of the door soonish, also to avoid having 10.0.0 being around the corner immediately.

I feel like the queue changes are first priority. rx.request and reactive.request are not that difficult to implement (I think?). As both are breaking changes, it would be nice to have them both in one release.

I think the sampleData is a little less of a priority, and we might want to put that into 10.0.0 if it takes too long.

Exactly my point of view as well. Let's just try and finish queues, then pursue rx.request & reactive.request (which shouldn't be hard to implement, but if it turns out there is something in the way, we might want to skip it as well). If we can get sampleData PR in the meantime - great. If not, we may release 9.0.0 anyways.

I was thinking of a migration strategy to go from RxMoyaProvider to MoyaProvider.rx and from ReactiveSwiftMoyaProvider to MoyaProvider.reactive, but couldn't think of any where we can have a fix-it. Then I thought of something else. What we can do, is deprecate RxMoyaProvider and ReactiveSwiftMoyaProvider's inits and make them private in 10.0.0, therefore having a more user-friendly migration as well as a transition with deprecation.

Yeah, that's a good idea, let's do it ๐Ÿ‘

I'm thinking of merging 9.0.0-dev into master after we merge queues & removing deprecations. What do you guys think?

@sunshinejr I think that's a good idea. #1126 SampleData still needs some time and I think there are enough changes in 9.0 as is. I recommend we move it to 10.0 to not hold up this release.

Removed sample data from the todo-list and checked availability point since it has been recently merged. ~Only queues left (which probably needs a double-check only)~ and a final check for the entire release.

I also think it might be a good idea to do a beta release before the official one. Seems like quite a lot has changed! ๐Ÿ˜„

Edit: Queues merged! Now we need to merge changes from master & 9.0.0-dev. I will try to do it on the weekend!

Update! ๐ŸŽ‰

I've managed to merge changes from master & 9.0.0. I Must say it wasn't _that_ easy, but I think I've got everything in the end. I'm gonna make a PR in a sec, because it would be awesome to double check we got everything. Especially reactive providers with tests, since we had 2 PRs side by side, with one being in master and second one in 9.0.0-dev, so I had to merge them manually.

Also, I think that we should do alpha release instead of beta first. Why? There is this PR #1147, it progressed really fast from zero to almost ready state. I'm not sure if we can squeeze this one in 9.0.0, we gotta think about it for sure, but making an alpha release gives us more flexibility.

+1 on the alpha.

We can also think about adding Swift 4.0 support. From what I've seen we just need to change NetworkLoggerPlugin init, because it uses fileprivate method as a default parameter, thus Swift 4 compiler complains. Simple fix would be to use optional output parameter with nil as a default argument and in case nil is passed, use NetworkLoggerPlugin.reversedPrint. This way compiler shouldn't complain anymore ๐Ÿ˜„

This might be a good idea just after an alpha merge since we probably don't want to mess with that PR anymore ๐Ÿ˜„

Seems like a great idea, especially when it would be that simple. No reason to make it another major version bump just for Swift 4.

Okay everyone, alpha is merged. I'm gonna do a release in a bit ๐ŸŽ‰

Thanks for all the hard work you've been putting into this, @sunshinejr! ๐Ÿ’ช

9.0.0-alpha released! Thanks to everyone involved ๐Ÿ’ช๐Ÿ’ช๐Ÿ’ช

We can try to focus on the next release now ๐Ÿ˜„ Apart from bugs/patches we'd need to do, we could:

  • Update NetworkLoggerPlugin to make Moya compatible with Swift 4.0
  • If we update our codebase to support Swift 4.0, we shoud update our CI setup to build both 3.X version and 4.0.
  • Add #1147 (+ documentation/tests).
  • Update AccessTokenPlugin to accept Basic or Bearer. This should be covered by @yar1vn from #1172.

What do you think guys? Something to add, something to remove?

@sunshinejr When referring to the next release, are you talking about 9.0.0-beta or 10.0.0?

Oh, I mean in 9.0.0 context - beta.1/alpha.2, depends how we feel about what we can still add to the pile.

I'm happy #1147 is planned to be added, too โ€“ I think documentation is up-to-date, the only missing thing should be tests. I've got a question on the last bullet point of the initial post though:

Check 8.0 -> 9.0 migration with an old project and check if the fix-its work as expected / there is need for a migration guide

First, do I understand it correctly, you were able to add Xcode fix-its to the code base of Moya? I didn't know we can do this. If so, I should probably add some fix-its to #1147 as well. And second, #1147 does include a MigrationGuides.md file which could be extended with other changes as well. Also it should be probably linked to within the Readme.md or at least in the release notes.

And one more thing: We should probably update or remove the ArrayAsRootContainer.md cause it doesn't work as it is now. It depends on an outdated Alamofire class structure, I'm not sure how the same is possible with the updated ones.

@BasThomas Thanks for the pointers. I've tried to add fix-its but my approaches all failed.
See https://github.com/Moya/Moya/pull/1147#issuecomment-318890623 for more details.

We are closing in for the next release! ๐ŸŽ‰ I think the last PR that is needed (from the code perspective) is #1241. We've come really far with this one!

The only question I'm having is whether we should release alpha.2 or beta.1? Do we have more breaking changes that we want to include in this release? ๐Ÿค”

@sunshinejr Thanks for taking care of those unit tests ๐Ÿ’ช I think we should go with beta.1. I don't have any more breaking changes personally and I don't think we should hold up the release for much longer. There's been more issues regarding Swift 4 recently and people looking to use some of the changes made in 9.0.0.

That's what I was thinking as well! We need to speed up with the process a little bit, we can add more breaking changes in the 10.0 from now on. Thanks for the input, @SD10!

So, we've got tests merged in (we've got a lot of improvement lately thanks to @phimage), I'm gonna release beta.1 in a while! ๐ŸŽ‰

Beta 1 released! Thanks to everyone that played even a small part in it! ๐ŸŽ‰ ๐ŸŽ‰ ๐ŸŽ‰

Now it's time to make sure it is all working well before final release. ๐Ÿ˜„

Thanks for all the effort, everyone - and @sunshinejr in particular. ๐Ÿ™Œ

Thank you for all your hard-work @sunshinejr @BasThomas ๐Ÿบ ๐ŸŽ‰

Thank you all to review my PR and for the hard-work

to make sure it is all working well

To achieve this I make a new PR about multipart part upload ;)

Alright everybody. After weeks of testing we got only one issue and it's fixed now by @SD10 at #1252. We should aim for a release! ๐ŸŽ‰ I think that we can test it out till the end of this weekend and release it on Monday. At least that is a time I would like to have to test it out ๐Ÿ˜„. In the meantime we can check out documentation (especially migration) if everything is alright.

What do you guys think? ๐Ÿ˜‰

Seems like a great plan. Let's get this shipped!

Alright, this is exciting! Doing final checks and releasing this bad boy in a few! ๐ŸŽ‰ Gonna keep you guys posted!

Aaaaaand it's out! ๐ŸŽ‰ We can officially close this one, it was a fun ride! Thank you all, you are awesome ๐Ÿฅ‡

zrzut ekranu 2017-09-04 o 21 11 35

Was this page helpful?
0 / 5 - 0 ratings