mojolicious / minion

:octopus: Perl high performance job queue

Home Page:https://metacpan.org/release/Minion

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Backward compatibility breakage

borisbaldassari opened this issue · comments

Hi!

I'm not sure about when that occured, but I've updated my perl modules and now the whole minion API seems to be broken. Among the changes I have identified so far:

  • app->minion->backend->job_info isn't available anymore, have to use list_jobs instead.
  • app->minion->backend->list_jobs now returns a hash ref (was an array ref not so long ago).

I'm still investigating, but other pieces seem to have been moved. Maybe this is all normal, but I could not find any explanation so far so I'm a bit confused..

  • Minion version: 8.03
  • Perl version: (with perlbrew) 5.26.1
  • Operating system: Linux Mint Debian Edition LMDE 2 Betsy

BTW, thanks for all the good work, Mojo rocks. I've built Alambic on top of it, and your framework has proved great and flawless up to now.

Hello Boris,

Yes there were some breaking changes in the Minion version 8.0 release. Per the project rules breaking changes are allowed at major version releases. While we are sorry that your code is broken, this process has consistently allowed the Mojo project and related projects to improve. In this case the breaking changes allowed for a new Minion Admin UI (Mojolicious::Plugin::Minion::Admin) to be provided, which we hope you'll use and enjoy.

To help you update your code, the changes are always listed in the Changes file:
https://github.com/kraih/minion/blob/0dd0c312cc19886ecc859e1386c5f78800aaaa37/Changes#L15-L24

Hi Joel,

Thanks for the quick and to-the-point answer. Hum. my bad. :-)
As a sidenote, while I fully understand and appreciate this approach, I now realise that it can be brutal.. I had barely seen the specific upgrade of Minion in the cpanm command, even less that it introduced breaking changes. That's probably the price to pay for a always-up-to-date framework.

I will subscribe to the mailing list now..

Thanks, have a great day!

I am not sure if this applies to your situation, but with any Perl production deployment it's recommended to use Carton to pin your dependencies, so you can take care with any version updates. https://metacpan.org/pod/Carton (Note that carton exec is not actually needed, you can simply use the installed local/lib/perl5 library dir in whatever manner is suitable to your application.)