New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add erlang modules #11651
Add erlang modules #11651
Conversation
cc @manpages |
None of the Erlang packages have a |
According to http://hydra.cryp.to/jobset/nixpkgs/erlang-updates, |
@peti i, thank you for taking a look. I've tested it with the following command and it worked for me: $ nix-build ~/code/erl/nixpkgs/ -v -A erlangPackages 2>&1 | ix How can i test it on Hydra? Do I need to set up my own Hydra for that? |
Are you building with |
I've tested this with |
@gleber, typically you'll need to setup hydra yourself, which can be a bit of a headache. We've had a noble yet tentative step up by @aszlig to be Hydra's release manager, so Hydra will be incorporated into NixOS' module infrastructure (via configuration.nix). Which will automate Hydra greatly. Though you probably don't need Hydra at this stage. |
Looks like
I will work on making sure it doesn't fetch anything. |
4f1eb61
to
37474f9
Compare
There are some packages on Hex which have custom hex-specific names, but inside there's a base project name. Remove most packages andadd ibrowse, meck, jiffy
If compilePorts is enabled plugin "pc" is added to the rebar.config during postPatch. This makes rebar3 compile download the plugin, hence added TODO.
Allow specifying pluginDeps for buildHex listing rebar3 plugins which are required for given package to be built by rebar3.
This allows to avoid fetching registry file from S3 at build time, making the build hermetic and much faster. Automatic tools will be used to update said external repo content when Hex packages are imported/update.
Adds "meta" for meck package as a test.
This will allow to reuse this code to fetch rebar3's dependencies to ensure it's hermetic build.
37474f9
to
ccf5e81
Compare
This makes rebar3 build a bit more hermetic. Next stage is to pull in rebar3 plugins dependencies for bootstrap to pick up.
ccf5e81
to
6e3df42
Compare
6e3df42
to
bb1b5c7
Compare
@peti @sjmackenzie @RumataEstor I've made rebar3 compilation hermetic and cleaned up branch history. Please take a look again. |
And the build now works on my NixOS done like this: nix-build ~/code/nixpkgs/ -vv -A erlangPackages --option build-use-chroot true |
Okay, all builds succeed now: http://hydra.cryp.to/eval/746730. |
I think it's fine to merge the current state into |
@gleber, at some point, it might be a good idea to post some kind of announcement to the |
Great step forward, kudos @gleber!
|
🍻 |
Thanks, Peter. I've created a tracking issue which will remind me about docs: #11748 I will subscribe to |
@gleber awesome work. |
Hello Nix community
This is rebase of #11614
I am working on getting Erlang packages into Nix and here's my first stab at the problem. The approach is similar to what is done for Haskell. Here are main points:
This establishes basic build functions and provides 5 Erlang packages and 1 rebar3 plugin. Implemented features:
buildHex
which automates definition of Erlang packages to be fetched from Hex.pm CDNRebar3 depends on a concept of registry, which is usually fetched from S3. I've created a separate github repo in which I plan to snapshot that single file from S3 (to be done automatically using
Rebar3 is imported separately from rebar2 since they are very different. @the-kenny
Further work:
I'd love to hear some initial comments on the code to get guidance. This is my first Nixpkgs contribution.
Thanks!
@sjmackenzie @peti @7c6f434c @pSub @copumpkin