-
-
Notifications
You must be signed in to change notification settings - Fork 14.7k
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
rebar3: 3.4.3 -> 3.6.1 #43430
rebar3: 3.4.3 -> 3.6.1 #43430
Conversation
@GrahamcOfBorg build rebar3 rebar3-open |
@gleber Do you know if it's expected behaviour that rebar3 wants non-constrained packages to be the latest version? I'm currently generating an updated Edit: Hmm, nope, it doesn't pick up where it left off. It seems to always fail on the same package:
Going to investigate that in hex2nix now. Second edit: Investigation in a 5> ibrowse:send_req("https://hex.pm/api/packages/soap"
, [{"User-Agent", "hex2nix"}, {"Accept", "application/json"}]
, get
, []
, h2n_util:get_ibrowse_http_env()).
=ERROR REPORT==== 12-Jul-2018::22:51:02 ===
SSL: hello: ssl_alert.erl:88:Fatal error: internal error
{error,{conn_failed,{error,{tls_alert,"internal error"}}}} Opening the example page in a browser works fine, so it's not an expired certificate or random other misfortune. Third edit: Current status. |
Okay, for some reason this TLS connection does not succeed in Erlang 19, but it does in Erlang 20. Does anyone know if there's a reason for the default Erlang in Nix still being at 19? Edit: It may be time to resume tomorrow, by now my local Second edit: With some surgery to get a local nix-shell with Third edit: FWIW, the actual issue that I ran into here was with |
Package regeneration has failed multiple times on various random issues and it seems to be difficult to resume where I'm going to see if I can fix the issues relevant for this PR manually, and then work on a package set update in a new PR. Does that sound reasonable, @gleber? |
@tazjin This sounds good. |
The failing build was hex2nix itself and I've now worked around that by pinning its dependencies in the @xeji This isn't WIP anymore, can you remove the label? |
src = fetchFromGitHub { | ||
owner = "erlang-nix"; | ||
owner = "tazjin"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please revert back to erlang-nix
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixing in next push, good catch! :)
@@ -30,6 +30,20 @@ buildRebar3 rec { | |||
|
|||
enableDebugInfo = true; | |||
|
|||
# hex2nix does not specify version constraints, in which case |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe it's better to submit these changes directly to hex2nix
repo? It seems like the right thing to do.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That does actually make sense, I'll prepare a change. Currently JSX is imported manually at version 2.8.2 in the derivation for hex2nix, do you know if there's a reason for it? The latest packaged version is 2.8.0 and I'd prefer to stick to that until the packages are regenerated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cursory test of hex2nix compiled with JSX 2.8.0 shows that it still works. The changelog for JSX contains nothing that looks relevant between 2.8.0 and 2.8.2.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change submitted here: erlang-nix/hex2nix#22
Unpinned dependency versions can cause build issues in Nix if the package registry index snapshot contains a newer version than what is packaged in nixpkgs. See NixOS/nixpkgs#43430 for context. The versions chosen here are the most recent ones currently packaged in nixpkgs, with the exception of ibrowse which has been pinned to a version that is not affected by cmullaparthi/ibrowse#160.
Unpinned dependency versions can cause build issues in Nix if the package registry index snapshot contains a newer version than what is packaged in nixpkgs. See NixOS/nixpkgs#43430 for context. The versions chosen here are the most recent ones currently packaged in nixpkgs, with the exception of ibrowse which has been pinned to a version that is not affected by cmullaparthi/ibrowse#160.
Unpinned dependency versions can cause build issues in Nix if the package registry index snapshot contains a newer version than what is packaged in nixpkgs. See NixOS/nixpkgs#43430 for context. The versions chosen here are the most recent ones currently packaged in nixpkgs, with the exception of ibrowse which has been pinned to a version that is not affected by cmullaparthi/ibrowse#160.
Alright, updated the hex2nix-derivation after the merge of erlang-nix/hex2nix#22 now. I've appended the commit short hash to the version, but if it's released as a version |
Updates rebar3 to version 3.6.1, which amongst other things introduces support for rebar3 on Erlang/OTP 21. Changes made: * rebar3 and dependencies updated to new versions * rebar3 hermeticity patch updated to apply against new version * hex package registry snapshot updated
Updates hex2nix to a new version that includes pinned dependencies. This allows building hex2nix even if newer versions of dependencies than what is packaged in `hex-packages.nix` are available in the package snapshot. The version of ibrowse used has been downgraded due to an issue in the library. Custom builds of the ibrowse and jsx dependencies have been removed from the derivation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for pushing it forward!
is this ready to merge now? |
@xeji Yep. I ran |
Great. Let's just check the bumped packages then since it's standard procedure: |
Success on x86_64-linux (full log) Attempted: rebar3, hex2nix Partial log (click to expand)
|
Success on x86_64-darwin (full log) Attempted: rebar3, hex2nix Partial log (click to expand)
|
Success on aarch64-linux (full log) Attempted: rebar3, hex2nix Partial log (click to expand)
|
Erlang/OTP 19 is relatively old and is starting to cause issues with, amongst other things, TLS compatibility. Check out NixOS#43430 for some additional information.
Left to do:
update(will be a followup PR)hex-packages.nix
(currently running on my machine)Updates rebar3 to version 3.6.1, which amongst other things introduces
support for rebar3 on Erlang/OTP 21.
Changes made:
Motivation for this change
Nixpkgs already includes Erlang/OTP 21. The current included version of rebar3 is incompatible with the Erlang release, so an update is required.
This fixes #38966.
Things done
sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)nix path-info -S
before and after)