-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
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
Update default attributes to latest version available #40015
Comments
Mapping |
|
If I understand correctly people are against it because PEP 394 recommends to symlink python to python2 with the rationale being to preserve compatibility with existing python2 script. |
@FRidh Ah, sorry. |
boost is another one for the list :). |
OCaml should probably be on this list. |
feel like this needs to be updated, ansible is at 2.8 for example |
nodejs should be updated. It's currently at 10.x but the recommended LTS is 12.x, and 10.x goes to maintenance mode in a few months. |
I believe |
@matthewbauer should we re-open this in another issue? |
Here are several that I’ve noticed:
I wrote a quick script to find more candidates: { pkgs ? import <nixpkgs> { } }:
let
flatten = attr: v:
if !(builtins.tryEval v).success then
{ }
else if pkgs.lib.isDerivation v then {
${attr} = v;
} else if builtins.isAttrs v && (v.recurseForDerivations or false) then
flattenAttrs "${attr}." v
else
{ };
flattenAttrs = attr: v:
builtins.foldl' (x: y: x // y) { } (builtins.attrValues
(builtins.mapAttrs (attr': flatten "${attr}${attr'}") v));
flatPkgs = flattenAttrs "" pkgs;
latest = builtins.foldl' (d: p:
if p == null then
d
else if builtins.hasAttr p.name d
&& builtins.compareVersions p.version d.${p.name}.version < 0 then
d
else
d // { ${p.name} = { inherit (p) attr version; }; }) { }
(builtins.attrValues (builtins.mapAttrs (attr: drv:
let t = builtins.tryEval drv.name;
in if t.success then
builtins.parseDrvName t.value // { inherit attr; }
else
null) flatPkgs));
in builtins.concatStringsSep "" (builtins.attrValues (builtins.mapAttrs
(attr: drv:
if builtins.match ".*[0-9](..*)?" attr == null then
let t = builtins.tryEval drv.name;
in if t.success then
let p = builtins.parseDrvName t.value;
in if p.version == latest.${p.name}.version then
""
else ''
${attr} "${p.name}-${p.version}" → ${
latest.${p.name}.attr
} "${p.name}-${latest.${p.name}.version}"
''
else
""
else
"") flatPkgs)) Here’s the output—unfiltered with many false positives, but still useful to scan as a starting point:
|
I just ran into this. Upstream is at 8.0 and default readline is at 6.3 . |
I marked this as stale due to inactivity. → More info |
Perhaps this deserves to live on? |
Pending in #120259. |
Done in #77950. |
Obsolete, see #100089.
Default is 5.0 already.
Default is 6.9. |
I marked this as stale due to inactivity. → More info |
Not stale. I've run into problems with readline6 on aarch64-darwin that are resolved by using readline81: |
Should zabbix be removed from the OP ? Latest stable is https://github.com/zabbix/zabbix/releases/tag/6.4.6 |
A lot of the bullet points in the original post have already been completed or are themselves outdated; does anyone want to update this? If not we should probably just close it and maybe split out issues for the ones that are still relevant? |
This is a tracking issue for old top-level attributes when the newest version is not being used. The usual policy is to make the generic attribute point to the latest version available & specify the older versions as arguments to
callPackage
where needed. There are legitimate exceptions but always good to try to get the latest software. Most of the exceptions have to do with `core' attributes like gcc or llvm where we need to be very careful when updating to avoid mass rebuilds & potential breakage.This is not a complete list. Additions are welcome!
I am looking into making a script to finding these using
nix-env -qaP
but it is still a work in progress. All of the above were generated manually.The text was updated successfully, but these errors were encountered: