Skip to content
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

nixVersions.nix_2_20: init at 2.20.5; nixVersions.unstable: 2.19 -> 2.20 #285264

Merged
merged 3 commits into from
Mar 8, 2024

Conversation

SuperSandro2000
Copy link
Member

@SuperSandro2000 SuperSandro2000 commented Jan 31, 2024

Description of changes

Fails to compile NixOS/nix#9888

nix> In file included from include/boost/container/vector.hpp:27,
nix>                  from include/boost/container/small_vector.hpp:27,
nix>                  from src/libexpr/gc-small-vector.hh:3,
nix>                  from src/libexpr/eval.cc:21:
nix> include/boost/container/allocator_traits.hpp: In instantiation of 'struct boost::container::allocator_traits<traceable_allocator<void> >':
nix> include/boost/container/small_vector.hpp:122:7:   required from 'class boost::container::small_vector_allocator<nix::Value*, traceable_allocator<void>, void>'
nix> include/boost/container/allocator_traits.hpp:145:48:   required from 'struct boost::container::allocator_traits<boost::container::small_vector_allocator<nix::Value*, traceable_allocator<void>, void> >'
nix> include/boost/container/vector.hpp:802:88:   required from 'class boost::container::vector<nix::Value*, boost::container::small_vector_allocator<nix::Value*, traceable_allocator<void>,
void>, void>'
nix> include/boost/container/small_vector.hpp:341:7:   required from 'class boost::container::small_vector_base<nix::Value*, traceable_allocator<nix::Value*>, void>'
nix> include/boost/container/small_vector.hpp:531:7:   required from 'class boost::container::small_vector<nix::Value*, 4, traceable_allocator<nix::Value*>, void>'
nix> src/libexpr/eval.cc:1730:31:   required from here
nix> include/boost/container/allocator_traits.hpp:145:48: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> In file included from src/libexpr/value.hh:15,
nix>                  from src/libexpr/nixexpr.hh:7,
nix>                  from src/libexpr/attr-set.hh:4,
nix>                  from src/libexpr/eval.hh:4,
nix>                  from src/libexpr/eval.cc:1:
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:210:13: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:215:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:215:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:219:13: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:223:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:228:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:233:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> In file included from include/boost/container/vector.hpp:27,
nix>                  from include/boost/container/small_vector.hpp:27,
nix>                  from src/libexpr/gc-small-vector.hh:3,
nix>                  from src/libexpr/primops.cc:7:
nix> include/boost/container/allocator_traits.hpp: In instantiation of 'struct boost::container::allocator_traits<traceable_allocator<void> >':
nix> include/boost/container/small_vector.hpp:122:7:   required from 'class boost::container::small_vector_allocator<nix::Value*, traceable_allocator<void>, void>'
nix> include/boost/container/allocator_traits.hpp:145:48:   required from 'struct boost::container::allocator_traits<boost::container::small_vector_allocator<nix::Value*, traceable_allocator<void>, void> >'
nix> include/boost/container/vector.hpp:802:88:   required from 'class boost::container::vector<nix::Value*, boost::container::small_vector_allocator<nix::Value*, traceable_allocator<void>,
void>, void>'
nix> include/boost/container/small_vector.hpp:341:7:   required from 'class boost::container::small_vector_base<nix::Value*, traceable_allocator<nix::Value*>, void>'
nix> include/boost/container/small_vector.hpp:531:7:   required from 'class boost::container::small_vector<nix::Value*, 128, traceable_allocator<nix::Value*>, void>'
nix> src/libexpr/primops.cc:2733:56:   required from here
nix> include/boost/container/allocator_traits.hpp:145:48: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> In file included from src/libexpr/value.hh:15,
nix>                  from src/libexpr/nixexpr.hh:7,
nix>                  from src/libexpr/attr-set.hh:4,
nix>                  from src/libexpr/eval.hh:4,
nix>                  from src/libexpr/eval-inline.hh:5,
nix>                  from src/libexpr/primops.cc:4:
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:210:13: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:215:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:215:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:219:13: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:223:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:228:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:233:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> make: *** [mk/patterns.mk:2: src/libexpr/eval.o] Error 1
nix> make: *** Waiting for unfinished jobs....
nix> make: *** [mk/patterns.mk:2: src/libexpr/primops.o] Error 1
nix> rm src/nix/generated-doc/files/profiles.md

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@edolstra
Copy link
Member

edolstra commented Feb 1, 2024

@roberth
Copy link
Member

roberth commented Feb 1, 2024

I've added the patch before the other commits. It's not specific to Nix, and is always valid.
In this order all commits should be buildable.

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/nix-2-20-released/39027/6

@SuperSandro2000 SuperSandro2000 marked this pull request as ready for review February 3, 2024 20:09
@infinisil
Copy link
Member

Btw the lib test failure is legit, it detected a regression: NixOS/nix#9901

@lf- lf- mentioned this pull request Feb 4, 2024
13 tasks
kirillrdy pushed a commit that referenced this pull request Feb 5, 2024
Update nix-doc to be API compatible with Nix 2.20 when that is released.

cc #285264
@nyabinary
Copy link
Contributor

What work does this need to be ready?

@infinisil
Copy link
Member

@nyabinary Nixpkgs CI runs the lib tests for all nixVersions, so the regression in 2.20 should be fixed first.

@SuperSandro2000
Copy link
Member Author

we are waiting for NixOS/nix#10023 to be included in a tag

@edolstra
Copy link
Member

2.20.2 is now released.

@infinisil
Copy link
Member

I'm both glad and sad to see that the lib.fileset tests discovered more regressions..

@Ma27
Copy link
Member

Ma27 commented Feb 19, 2024

Personally, I'm not convinced that we should provide a Nix that's not compatible with our lib.

@SuperSandro2000
Copy link
Member Author

Maybe nix should run those tests, so that in the future those regressions are not only noticed after a release and the bump in nixpkgs.

@infinisil
Copy link
Member

@SuperSandro2000 Agreed, there's even already a draft PR by Robert for that: NixOS/nix#9900

Copy link
Member

@RaitoBezarius RaitoBezarius left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like repeating myself: this has to wait for a patch release from Nix upstream. People wanting the ultimate bleeding edge can apply this PR as a patch themselves. There's no need to rush the unstable package.

For the stable package, this is out of the question given the current regression atmosphere.

@Ma27
Copy link
Member

Ma27 commented Mar 3, 2024

@RaitoBezarius For which patch specifically? edcb3430ef39a225aada06ef898c907d8277fbe8 and the stuff before that @roberth has added (and also appears to pass CI)?
That's part of 2.20.4: https://github.com/NixOS/nix/commits/2.20.4/
Sorry, wrote 2.20.5 first because I misread the commit log.

@RaitoBezarius
Copy link
Member

@RaitoBezarius For which patch specifically? edcb3430ef39a225aada06ef898c907d8277fbe8 and the stuff before that @roberth has added (and also appears to pass CI)? That's part of 2.20.4: NixOS/nix@2.20.4 (commits) Sorry, wrote 2.20.5 first because I misread the commit log.

Yeah,
picture of the tag date

It seems recent, as long as this PR is bumped to this patch release and tests passes, we can proceed.

@SuperSandro2000
Copy link
Member Author

I assume you're strictly talking about the applied patch and not about the fact that lib tests were broken before?

I was referring to #285264 (comment)

However, I'm against declaring it stable just in case people are considering to do so now.

Not part of this PR anyway and I can delegate that decision to other people.

It seems recent, as long as this PR is bumped to this patch release and tests passes, we can proceed.

That somehow went passed me. Updated now.

@Ma27
Copy link
Member

Ma27 commented Mar 4, 2024

Not part of this PR anyway and I can delegate that decision to other people.

Sure, that was statement was made proactively just in case people were about to reconsider this decision :)

@teutat3s teutat3s requested a review from RaitoBezarius March 6, 2024 16:18
@Mic92 Mic92 mentioned this pull request Mar 7, 2024
13 tasks
@Mic92
Copy link
Member

Mic92 commented Mar 7, 2024

I couldn't force push to squash the existing commits while fixing merge conflicts, so I created a new PR: #294120

@ofborg ofborg bot added the 2.status: merge conflict This PR has merge conflicts with the target branch label Mar 7, 2024
@ofborg ofborg bot removed the 2.status: merge conflict This PR has merge conflicts with the target branch label Mar 7, 2024
@ofborg ofborg bot requested a review from Ma27 March 7, 2024 21:58
@SuperSandro2000
Copy link
Member Author

So, who wants to press the merge button?

@marcusramberg
Copy link
Contributor

I guess the pr title should be updated to say 2.20.5.

@lovesegfault lovesegfault merged commit 3ce7157 into NixOS:master Mar 8, 2024
23 checks passed
@SuperSandro2000 SuperSandro2000 changed the title nixVersions.nix_2_20: init at 2.20.3; nixVersions.unstable: 2.19 -> 2.20 nixVersions.nix_2_20: init at 2.20.5; nixVersions.unstable: 2.19 -> 2.20 Mar 8, 2024
@SuperSandro2000 SuperSandro2000 deleted the nix-1.20 branch March 8, 2024 14:59
@domenkozar
Copy link
Member

Should this be backported to 23.11?

@RaitoBezarius
Copy link
Member

Usually, we don't aim to backport nixVersions.unstable bump to stable.

Because unstable's Nix in stable should be stable and too many people depend on unstable Nix thinking it's stable in general when it's not.

I have no strong feeling, but I'm not keeping the pieces if it breaks someone's production.

@Mic92
Copy link
Member

Mic92 commented Mar 22, 2024

What if the it's just a new attribute 2_20, 2_21 but leaving nixVersions.unstable untouched?

@RaitoBezarius
Copy link
Member

What if the it's just a new attribute 2_20, 2_21 but leaving nixVersions.unstable untouched?

Completely fine, per backport policies!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.