For the rationale, see discussion in https://github.com/gentoo/devmanual/pull/326: ---------------------------------------------------------------------- thesamesam commented 2024-01-21: Does the relevant section <https://dev.gentoo.org/~ulm/pms/head/pms.html#section-4.4.4> of PMS need clarification? It says: > Any name that has appeared as the origin of a move must not be > reused in the future I suppose it doesn't say "has ever". ---------------------------------------------------------------------- mgorny commented 2024-01-21: > Does the relevant section > <https://dev.gentoo.org/~ulm/pms/head/pms.html#section-4.4.4> of PMS > need clarification? > > It says: > >> Any name that has appeared as the origin of a move must not be >> reused in the future > > I suppose it doesn't say "has ever". Probably yes. I suppose it's going to be hard to formally convey the right meaning. ---------------------------------------------------------------------- ulm commented 2024-01-21: We had a previous discussion in bug 296713 <https://bugs.gentoo.org/296713>, where the conclusion was that mistakes can be corrected before they hit the rsync mirrors. Apart from that case, moves are pretty much permanent and cannot be reverted. Are we sure that this change won't open up possible undefined behaviour, especially when considering multiple repositories and binary packages? ---------------------------------------------------------------------- mgorny commented 2024-01-22: > Are we sure that this change won't open up possible undefined > behaviour, especially when considering multiple repositories and > binary packages? I can't think of anything worse than what we have right now. The worst mess would be if overlay copies our |pkgmove| entry so ::gentoo would specify 'B → A' and the overlay 'A → B'. However, there's really no reason why'd they do that, and we can't protect against them doing something like that anyway. My understanding is that if you move package back, and remove the original move entry, then: * packages (installed or binary) that didn't have the original move applied won't have any changes done to them (which is fine) * packages that have the original move applied will be moved back ---------------------------------------------------------------------- ulm commented 2024-01-22: What do we do for PMS (which I'd rather not expand too much)? Would something like the following be sufficient? -Any name that has appeared as the origin of a move must not be -reused in the future. +Any name that has ever appeared as the origin of a move must not be +reused by another package in the future. ---------------------------------------------------------------------- thesamesam commented 2024-01-22: > What do we do for PMS (which I'd rather not expand too much)? Would > something like the following be sufficient? > > -Any name that has appeared as the origin of a move must not be > -reused in the future. > +Any name that has ever appeared as the origin of a move must not be > +reused by another package in the future. Wouldn't this imply we can never cleanup |updates/|, or at least must have |pkgcheck| check git history or similar, to avoid accidental reuse by e.g. restoring a last-rited package, or adding a new package with an ancient name? ---------------------------------------------------------------------- mgorny commented 2024-01-22: > What do we do for PMS (which I'd rather not expand too much)? Would > something like the following be sufficient? > > -Any name that has appeared as the origin of a move must not be > -reused in the future. > +Any name that has ever appeared as the origin of a move must not be > +reused by another package in the future. That would work for me. Though TBH I think PMS is stepping too much into the "policy" area here. Perhaps it would be cleaner to explain what the consequences would be. ---------------------------------------------------------------------- ulm commented 2024-01-22: Thinking about it, I'd also be happy to revert https://gitweb.gentoo.org/proj/pms.git/commit/?id=3ba90e4a4918cfe820bb7c627bef2fc0d5a9fed5 and leave the policy for the devmanual. ---------------------------------------------------------------------- thesamesam left a comment 2024-01-27: [...] wrt PMS: I feel like we still need to say something about not reusing names (we don't want conflicting updates entries?), just not about how long they are there for? Or do we have something for that already? ---------------------------------------------------------------------- ulm commented 2024-01-27: > wrt PMS: I feel like we still need to say something about not > reusing names (we don't want conflicting updates entries?), just not > about how long they are there for? Or do we have something for that > already? How about this? "At any given time, a name that appears as the origin of a move may not be used as a qualified package name in the repository. A slot that appears as the origin of a slot move may not be used by packages matching the spec of that slot move." ---------------------------------------------------------------------- thesamesam commented 2024-01-27: perfect, thanks! ---------------------------------------------------------------------- mgorny commented 2024-01-27: Yes, that sounds about right. Also clearly splits specification from policy. ----------------------------------------------------------------------
Created attachment 883250 [details, diff] tree-layout.tex: Loosen restrictions on reusing package and slot names
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/proj/pms.git/commit/?id=47772dd3b715953dda0e663c62d31814043f9df6 commit 47772dd3b715953dda0e663c62d31814043f9df6 Author: Ulrich Müller <ulm@gentoo.org> AuthorDate: 2024-01-27 09:04:54 +0000 Commit: Ulrich Müller <ulm@gentoo.org> CommitDate: 2024-01-27 13:03:44 +0000 tree-layout.tex: Loosen restrictions on reusing package and slot names Closes: https://bugs.gentoo.org/923019 Signed-off-by: Ulrich Müller <ulm@gentoo.org> tree-layout.tex | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)