* Proposal: nss updates
@ 2024-06-27 14:13 Ian Eure
2024-06-27 16:21 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2024-07-01 2:50 ` Maxim Cournoyer
0 siblings, 2 replies; 10+ messages in thread
From: Ian Eure @ 2024-06-27 14:13 UTC (permalink / raw)
To: guix-devel
The nss package updates frequently, around once a month. It's
also very low in the package graph, so a ton of stuff depends on
it. The most recent update was a graft for security fixes, so we
didn't have to rebuild everything, but the new Librewolf version
once again requires an nss update. I'm considering options to
balance update frequency vs. huge rebuilds.
Mozilla has strong compatibility guarantees for nss, so the risk
of packages breaking is very small. This is purely about the cost
in CPU time to build and bandwidth to transfer packages.
Mozilla provides an ESR channel for nss, but Guix doesn't use it —
we went from 3.88.1 to 3.99, skipping 3.91, which is the current
ESR.
I think the default nss in Guix should be the ESR, but we should
also have a package for the latest nss, for stuff which needs it.
This would let us update to the most recent nss without rebuilding
so much, and only eat that cost when there’s a new ESR -- this
happens approximately once a year.
Concretely:
The current nss package should stay how it is. When the next ESR
happens, it should update to that (ungrafting nss at the same
time), and track ESR releases only from that point forward. I
don’t think it would make sense to downgrade the current 3.99
package to the 3.91 ESR, so this will be a little funky until that
release happens.
The latest version of nss should be added as a second package,
named "nss-latest", bound to `nss-latest'. It should track
updates as frequently as needed.
While I’d prefer having the packages named "nss-esr" and "nss", I
think the ESR should get the more prominent "nss" name, which
should make it easy for developers to do the right thing -- if a
bunch of packages depend on nss-latest, we’re back to the initial
problem. Code comments documenting this would also be added.
We might also want to adopt this approach for nspr.
I’m not sure about nss-certs; I think that should probably track
the nss ESR, and I don’t think there’s a compelling need for a
package tracking the rapid release channel. I do want to improve
this package by having it reuse the origin of nss instead of
duplicating it.
Does all this seem reasonable to everyone? If so, I can start
sending patches.
Thanks,
— Ian
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Proposal: nss updates
2024-06-27 14:13 Proposal: nss updates Ian Eure
@ 2024-06-27 16:21 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2024-06-27 20:56 ` Ian Eure
2024-07-01 2:50 ` Maxim Cournoyer
1 sibling, 1 reply; 10+ messages in thread
From: Felix Lechner via Development of GNU Guix and the GNU System distribution. @ 2024-06-27 16:21 UTC (permalink / raw)
To: Ian Eure, guix-devel
Hi Ian,
On Thu, Jun 27 2024, Ian Eure wrote:
> The nss package updates frequently, around once a month. [...] I'm
> considering options to balance update frequency vs. huge rebuilds.
Your plan sounds reasonable but my opinion is inconsequential. Instead,
I'd like to point out that you are not alone:
Wouldn't you like it if two days a month were set aside to allow uploads
that trigger large rebuilds? The approach would pool intensive uploads
in the time domain rather than how we do it now in space, namely
branches.
The advantages would be (1) as you pointed ou, faster availability of
package updates; (2) gradual acceptance of large, potentially breaking
changes; (3) fewer rebases (4) broader testing of new features; (5) less
bureaucracy because all development happens on the main branch.
Moreover, there is also a better way to provide a "stable" Guix:
High substitute coverage for users---a goal that conflicts in our
current "space" paradigm with your effort to provide needed
updates---could instead be offered by modifying the 'guix pull' command
to accept a manifest of of the software the user needs, or perhaps a
percentage threshold of available substitutes.
Soon we would be able drop point releases, too, in addition to our large
community branches.
Kind regards
Felix
P.S. Ceterum censeo core-updates delendam esse!
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Proposal: nss updates
2024-06-27 16:21 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
@ 2024-06-27 20:56 ` Ian Eure
0 siblings, 0 replies; 10+ messages in thread
From: Ian Eure @ 2024-06-27 20:56 UTC (permalink / raw)
To: Felix Lechner; +Cc: guix-devel
Hi Felix,
Felix Lechner <felix.lechner@lease-up.com> writes:
> Hi Ian,
>
> On Thu, Jun 27 2024, Ian Eure wrote:
>
>> The nss package updates frequently, around once a month. [...]
>> I'm
>> considering options to balance update frequency vs. huge
>> rebuilds.
>
> Your plan sounds reasonable but my opinion is inconsequential.
> Instead,
> I'd like to point out that you are not alone:
>
> Wouldn't you like it if two days a month were set aside to allow
> uploads
> that trigger large rebuilds? The approach would pool intensive
> uploads
> in the time domain rather than how we do it now in space, namely
> branches.
>
I think this is probably a good idea, though the implementation
might be difficult to manage. I’m not sure where the patches
would go if not some short-lived branch, so we’d still likely have
the space complexity. A one-month timebox for large changes,
where they merge or get backed out at the end, seems like it could
be a reasonable way to break down some of the long-running
branches.
One thing we should be considerate of is users with limited
bandwidth. Even if Guix has the compute to build and bandwidth to
serve, not all of its users will.
Thanks,
— Ian
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Proposal: nss updates
2024-06-27 14:13 Proposal: nss updates Ian Eure
2024-06-27 16:21 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
@ 2024-07-01 2:50 ` Maxim Cournoyer
2024-07-01 15:00 ` Ian Eure
1 sibling, 1 reply; 10+ messages in thread
From: Maxim Cournoyer @ 2024-07-01 2:50 UTC (permalink / raw)
To: Ian Eure; +Cc: guix-devel
Hi Ian,
Ian Eure <ian@retrospec.tv> writes:
[...]
> Concretely:
>
> The current nss package should stay how it is. When the next ESR
> happens, it should update to that (ungrafting nss at the same time),
> and track ESR releases only from that point forward. I don’t think it
> would make sense to downgrade the current 3.99 package to the 3.91
> ESR, so this will be a little funky until that release happens.
>
> The latest version of nss should be added as a second package, named
> "nss-latest", bound to `nss-latest'. It should track updates as
> frequently as needed.
Conventionally in Guix that'd be called nss-next.
> While I’d prefer having the packages named "nss-esr" and "nss", I
> think the ESR should get the more prominent "nss" name, which should
> make it easy for developers to do the right thing -- if a bunch of
> packages depend on nss-latest, we’re back to the initial problem.
> Code comments documenting this would also be added.
>
> We might also want to adopt this approach for nspr.
>
> I’m not sure about nss-certs; I think that should probably track the
> nss ESR, and I don’t think there’s a compelling need for a package
> tracking the rapid release channel. I do want to improve this package
> by having it reuse the origin of nss instead of duplicating it.
>
> Does all this seem reasonable to everyone? If so, I can start sending
> patches.
This all sounds reasonable to me. Thank you for thinking about it and
proposing to improve the situation.
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Proposal: nss updates
2024-07-01 2:50 ` Maxim Cournoyer
@ 2024-07-01 15:00 ` Ian Eure
2024-07-01 20:31 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
0 siblings, 1 reply; 10+ messages in thread
From: Ian Eure @ 2024-07-01 15:00 UTC (permalink / raw)
To: Maxim Cournoyer; +Cc: guix-devel
Hi Maxim,
Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
> Hi Ian,
>
> Ian Eure <ian@retrospec.tv> writes:
>
> [...]
>
>> Concretely:
>>
>> The current nss package should stay how it is. When the next
>> ESR
>> happens, it should update to that (ungrafting nss at the same
>> time),
>> and track ESR releases only from that point forward. I don’t
>> think it
>> would make sense to downgrade the current 3.99 package to the
>> 3.91
>> ESR, so this will be a little funky until that release happens.
>>
>> The latest version of nss should be added as a second package,
>> named
>> "nss-latest", bound to `nss-latest'. It should track updates
>> as
>> frequently as needed.
>
> Conventionally in Guix that'd be called nss-next.
>
Oh boy, naming things! :)
I’m aware of the -next convention, but I’m not sure it makes sense
here. It’s used primarily for newer versions packages in the same
release channel -- ex. the default Python in Guix is python@3.10,
but there’s python-next@3.12. At some point, python will get
promoted to 3.12.x -- the "next" name is a reflection of this;
it’s intended to be the next python package in Guix. Upstream has
a single release channel, with a sliding support window over those
releases.
The nss/nspr situation is somewhat different, as there are two
upstream channels ("rapid release" and "extended support
release"). ESRs are a subset of rapid releases, and the majority
of rapid releases never enter the ESR channel. Naming a rapid
release nss-next when it will almost never become promoted to the
nss package feels wrong to me.
>> While I’d prefer having the packages named "nss-esr" and "nss",
>> I
>> think the ESR should get the more prominent "nss" name, which
>> should
>> make it easy for developers to do the right thing -- if a bunch
>> of
>> packages depend on nss-latest, we’re back to the initial
>> problem.
>> Code comments documenting this would also be added.
>>
>> We might also want to adopt this approach for nspr.
>>
>> I’m not sure about nss-certs; I think that should probably
>> track the
>> nss ESR, and I don’t think there’s a compelling need for a
>> package
>> tracking the rapid release channel. I do want to improve this
>> package
>> by having it reuse the origin of nss instead of duplicating it.
>>
>> Does all this seem reasonable to everyone? If so, I can start
>> sending
>> patches.
>
> This all sounds reasonable to me. Thank you for thinking about
> it and
> proposing to improve the situation.
>
Thank you very much for your thoughts.
I opened 71832 which implements the first part of my nss proposal
and updates Librewolf, so if you have strong feelings about -next
vs. -latest, that might be the best place to raise them.
Thanks,
— Ian
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Proposal: nss updates
2024-07-01 15:00 ` Ian Eure
@ 2024-07-01 20:31 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2024-07-02 0:06 ` Ian Eure
0 siblings, 1 reply; 10+ messages in thread
From: Felix Lechner via Development of GNU Guix and the GNU System distribution. @ 2024-07-01 20:31 UTC (permalink / raw)
To: Ian Eure, Maxim Cournoyer; +Cc: guix-devel
Hi Ian,
On Mon, Jul 01 2024, Ian Eure wrote:
> if you have strong feelings about -next vs. -latest
How about nss-rapid? It provides the clue about what was packaged to
someone who knows libnss.
Kind regards
Felix
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Proposal: nss updates
2024-07-01 20:31 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
@ 2024-07-02 0:06 ` Ian Eure
2024-07-02 1:57 ` Maxim Cournoyer
0 siblings, 1 reply; 10+ messages in thread
From: Ian Eure @ 2024-07-02 0:06 UTC (permalink / raw)
To: Felix Lechner; +Cc: Maxim Cournoyer, guix-devel
Felix Lechner <felix.lechner@lease-up.com> writes:
> Hi Ian,
>
> On Mon, Jul 01 2024, Ian Eure wrote:
>
>> if you have strong feelings about -next vs. -latest
>
> How about nss-rapid? It provides the clue about what was
> packaged to
> someone who knows libnss.
>
I like it. I’ll update the package descriptions to make this
clear as well.
Thanks,
— Ian
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Proposal: nss updates
2024-07-02 0:06 ` Ian Eure
@ 2024-07-02 1:57 ` Maxim Cournoyer
2024-08-15 23:38 ` Ian Eure
0 siblings, 1 reply; 10+ messages in thread
From: Maxim Cournoyer @ 2024-07-02 1:57 UTC (permalink / raw)
To: Ian Eure; +Cc: Felix Lechner, guix-devel
Hi,
Ian Eure <ian@retrospec.tv> writes:
> Felix Lechner <felix.lechner@lease-up.com> writes:
>
>> Hi Ian,
>>
>> On Mon, Jul 01 2024, Ian Eure wrote:
>>
>>> if you have strong feelings about -next vs. -latest
>>
>> How about nss-rapid? It provides the clue about what was packaged
>> to
>> someone who knows libnss.
>>
>
> I like it. I’ll update the package descriptions to make this clear as
> well.
Thanks for the explanations regarding the ESR and rapid release channels
of distribution for NSS. I don't feel strongly about it, but the
'-latest' prefix is a bit easier to grok for someone not acquainted with
libnss.
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Proposal: nss updates
2024-07-02 1:57 ` Maxim Cournoyer
@ 2024-08-15 23:38 ` Ian Eure
2024-08-18 14:10 ` Maxim Cournoyer
0 siblings, 1 reply; 10+ messages in thread
From: Ian Eure @ 2024-08-15 23:38 UTC (permalink / raw)
To: Maxim Cournoyer; +Cc: Felix Lechner, guix-devel
Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
> Hi,
>
> Ian Eure <ian@retrospec.tv> writes:
>
>> Felix Lechner <felix.lechner@lease-up.com> writes:
>>
>>> Hi Ian,
>>>
>>> On Mon, Jul 01 2024, Ian Eure wrote:
>>>
>>>> if you have strong feelings about -next vs. -latest
>>>
>>> How about nss-rapid? It provides the clue about what was
>>> packaged
>>> to
>>> someone who knows libnss.
>>>
>>
>> I like it. I’ll update the package descriptions to make this
>> clear as
>> well.
>
> Thanks for the explanations regarding the ESR and rapid release
> channels
> of distribution for NSS. I don't feel strongly about it, but
> the
> '-latest' prefix is a bit easier to grok for someone not
> acquainted with
> libnss.
I don’t have a strong preference either way, but lean towards
calling it -rapid, as it matches the upstream terminology. The
package descriptions can disambiguate this, ex. adding "(ESR)" or
similar to nss.
The recent 3.101.1 NSS release is an ESR, per the relesae
notes[1]. What’s the process for getting that update into Guix?
Since it’ll cause many rebuilds, it needs to go into a branch
first. core-updates seems like a reasonable place for it -- do I
just send a patch and use prose to indicate that it should land in
core-updates instead of master? Or if I perform the work on the
core-updates branch, do the patches indicate that when emailed?
Thanks,
— Ian
[1]:
https://firefox-source-docs.mozilla.org/security/nss/releases/nss_3_101_1.html
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Proposal: nss updates
2024-08-15 23:38 ` Ian Eure
@ 2024-08-18 14:10 ` Maxim Cournoyer
0 siblings, 0 replies; 10+ messages in thread
From: Maxim Cournoyer @ 2024-08-18 14:10 UTC (permalink / raw)
To: Ian Eure; +Cc: Felix Lechner, guix-devel
Hi Ian,
Ian Eure <ian@retrospec.tv> writes:
[...]
> The recent 3.101.1 NSS release is an ESR, per the relesae notes[1].
> What’s the process for getting that update into Guix? Since it’ll
> cause many rebuilds, it needs to go into a branch first. core-updates
> seems like a reasonable place for it -- do I just send a patch and use
> prose to indicate that it should land in core-updates instead of
> master? Or if I perform the work on the core-updates branch, do the
> patches indicate that when emailed?
I'd suggest to create the patches first, then build them on a feature
branch using CI (cuirass). You'll need some help from some committer who
can pushes the patches to a branch and configure the CI to build it.
I have myself little availability at the moment but that's going to
improve in the coming weeks.
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2024-08-18 14:11 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-27 14:13 Proposal: nss updates Ian Eure
2024-06-27 16:21 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2024-06-27 20:56 ` Ian Eure
2024-07-01 2:50 ` Maxim Cournoyer
2024-07-01 15:00 ` Ian Eure
2024-07-01 20:31 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2024-07-02 0:06 ` Ian Eure
2024-07-02 1:57 ` Maxim Cournoyer
2024-08-15 23:38 ` Ian Eure
2024-08-18 14:10 ` Maxim Cournoyer
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).