Build dependency mix_task_archive_deps archived

95 views
Skip to first unread message

noxdafox

unread,
Aug 30, 2020, 7:17:55 AM8/30/20
to rabbitmq-users
Greetings,

The repository:
https://github.com/rabbitmq/mix_task_archive_deps
Has been archived. Yet it is a rabbitmq build dependency:
https://github.com/rabbitmq/rabbitmq-common/blob/master/mk/rabbitmq-dist.mk#L207

I was investigating an issue preventing me to build plugins with Elixir > 1.8.x and I have few fixes to commit.

Is there a reason why it has been archived? Are there alternatives to be used?

KR,

Matteo.

noxdafox

unread,
Sep 27, 2020, 12:09:40 PM9/27/20
to rabbitmq-users
Anyone who can answer this? This is blocking the build of elixir plugins with Elixir > 1.9.

Luke Bakken

unread,
Sep 28, 2020, 8:31:09 AM9/28/20
to rabbitmq-users
Hi Matteo,

Sorry that your message went unnoticed. Archived GH repos should still be available to use. What error are you getting? Can you provide reproduction instructions?

Thanks,
Luke

Luke Bakken

unread,
Sep 28, 2020, 8:39:12 AM9/28/20
to rabbitmq-users
For what it's worth, that make target works correctly on my machine. kerl has exported the MIX_ARCHIVES env variable (output truncated):

$ make "$MIX_ARCHIVES/mix_task_archive_deps-0.4.0" --file ./mk/rabbitmq-dist.mk 
* creating /home/lbakken/.kiex/mix/archives/elixir-1.9.4/mix_task_archive_deps-0.4.0

Thanks,
Luke

noxdafox

unread,
Sep 28, 2020, 2:39:12 PM9/28/20
to rabbitmq-users
Issue is when you try to build a distribution as the archiving logic relies on 2 functions which have been deprecated in elixir 1.8 and removed in 1.9.

I tried to open an issue to the repository but archived ones do not accept new issues or PRs. I have already a backwards compatible fix but I guess we need to un-archive the repo first.

How to reproduce on a Linux machine with elixir > 1.9:
$ mix archive.install ./mix_task_archive_deps-0.4.0.ez

$ git clone g...@github.com:noxdafox/rabbitmq-message-deduplication.git  # Elixir-based plugin as an example
$ cd rabbitmq-message-deduplication
$ make && make dist

...

Generated rabbitmq_cloudwatch_exporter app
** (UndefinedFunctionError) function Mix.Dep.loaded/1 is undefined or private
    (mix 1.10.4) Mix.Dep.loaded([env: :dev])
    lib/mix/tasks/archive/build.deps.ex:72: Mix.Tasks.Archive.Build.Deps.list/1
    lib/mix/tasks/archive/build.deps.ex:54: Mix.Tasks.Archive.Build.Deps.build_archives/1
    lib/mix/tasks/archive/build.all.ex:62: Mix.Tasks.Archive.Build.All.run/1
    (mix 1.10.4) lib/mix/task.ex:330: Mix.Task.run_task/3
    (elixir 1.10.4) lib/enum.ex:783: Enum."-each/2-lists^foreach/1-0-"/2
    (elixir 1.10.4) lib/enum.ex:783: Enum.each/2
    (mix 1.10.4) lib/mix/task.ex:330: Mix.Task.run_task/3
make[1]: *** [/home/noxdafox/development/rabbitmq-cloudwatch-exporter/deps/rabbit_common/mk/rabbitmq-dist.mk:200: plugins/rabbitmq_cloudwatch_exporter-1.0.0.ez] Error 1
make[1]: Leaving directory '/home/noxdafox/development/rabbitmq-cloudwatch-exporter'
make: *** [/home/noxdafox/development/rabbitmq-cloudwatch-exporter/deps/rabbit_common/mk/rabbitmq-dist.mk:217: dist] Error 2

Luke Bakken

unread,
Sep 28, 2020, 2:45:10 PM9/28/20
to rabbitmq-users
Thank you for the explanation! I have un-archived the repository. Please open your pull request and we'll get the fix in ASAP.

Thanks,
Luke

noxdafox

unread,
Sep 28, 2020, 3:21:38 PM9/28/20
to rabbitmq-users
Done! Thanks!

Matteo.
Reply all
Reply to author
Forward
0 new messages