pma / amqp

Idiomatic Elixir client for RabbitMQ

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Announcement - Plan for 1.0.0

ono opened this issue · comments

We plan to release 1.0.0 in September. The release will include some backward incompatible changes.

Planned changes

  • Handle error response from amqp_client and returns {:error, atom} instead of raising MatchError in such cases (#68).
  • Related to the above, we will review the rest of APIs and fix some inconsistencies if needed.

TODOs

  • Release 0.2.3 with typespec improvements
  • Create 0.2 branch for the stable release
  • Tweak README on master branch with the information
  • Merge #68 and release 1.0.0-pre.1
  • Review the code base again and make a PR for other inconsistent API tweaks
  • Update the document with a clear instruction about changes and upgrading
  • Release 1.0.0-pre.2
  • Wait at least one week after the final release candidate
  • Release 1.0.0

Upgrade guide

https://github.com/pma/amqp/wiki/Upgrade-from-0.X-to-1.0

Reviewed code again and found some API will have the return value like value | {:error, info}. For example: https://github.com/pma/amqp/blob/master/lib/amqp/queue.ex#L134

I think the return values should be basically one of the followings:

  • value
  • :ok
  • value | nil
  • :ok | {:error, info}
  • {:ok, value} | {:error, info}

value | {:error, info} can be an attractive option in terms of the compatibility for the short term but it will be problematic in terms of consistency for long term IMO.

Status update. Sorry I know it's behind schedule but it is slowly getting. I am also keen on sorting out #41 as part of 1.0 so there will be another pre release.

Anything you want some help on?

If I'm just getting started with AMQP, can I assume at this point that 1.0.0-pre.3 is relatively stable?

@ddresselhaus 1.0.x is mostly for interface changes and I'd expect that it is not unstable. However the migration won't be that hassle so I'd suggest to use 0.3.x for now if you plan to use it in production.

I'm sorry about the delay on 1.0.x. I have been caught by other private things but am hoping to start working on this project again in the new year. Happy new year!

<3 Thanks ono!

Any further updates please and how can I help

Same as above, started using the library so keen to help out if I can.

@ono, @pma I cloned and upgraded the master branch to work with Elixir 1.6, however one test fails - I can post details on this separately. In the meantime, I can push my branch, for review and commentary, however, activity on this project is somewhat ad-hoc.

Myself, my team, @hoodsuphopeshigh @ArThien and I am sure more developers can help you guys... please, if there is a roadmap, let us know to get this active again.

Let me know your thoughts and next steps.

1.0.0 Release

I made last code change for 1.0.0 on #83
I also need to write an upgrade instruction. Once the document has been done, I will release 1.0.0-pre.4. I am planning to do it this weekend so please bear with me.

If no one has reported issue on the pre-release for a week we will be releasing 1.0.0.

Message order

I was originally planning to solve this issue as 1.0 issue but we will leave it for 1.1.

Elixir 1.6

Thanks for your PR. Just to add I had confirmed the stable version of amqp is compatible with Elixir 1.6 at least. I probably bump the stable version to 0.4 for amqp_client 3.7.x. I plan to take some time in this weekend so I will look into your PR.

Thanks.

Just published 1.0.0.pre-4 and this will be the last pre-release before 1.0.0 unless we find any major issues. If there is no major issue, we will be releasing 1.0.0 next week.

I also wrote upgrading guide. Let me know if it doesn't give you a clear idea about the migration.

There seems to be some changes on amqp_client 3.7.X so it won't be supported with amqp 0.3. Please migrate amqp to 1.0 if you need to use 3.7.X.

Thank you for your patience. It took more than I was planning... We'd like to make it as stable as possible so please try it out and give us feedback.

Released 1.0.0 ✌️
Please check our migration guide for details.