Replies: 10 comments 2 replies
-
Somehow I have a feeling that the last option (Alternative deployment as DNF5 package but using DNF as primary command) can provide the most of benefits. |
Beta Was this translation helpful? Give feedback.
-
As i see it, DNF5 is a new application, not just a new mayor version, so it should be packaged as dnf5, but should use dnf as binary the python binding should properly be named python3-dnf5, then lib naming is not used very often in python |
Beta Was this translation helpful? Give feedback.
-
As we already named the package in the previous version of Fedora to accommodate the new software (DNF5) i would not change it. DNF5 represents a new application so it should have its own package name. With regards to backwards compatibility it should have symlinks to cover most usage by the users (dnf5, dnf, yum etc.) So from my point of view the 3rd option makes the most sense. With regards to the documentation, if my system has installed DNF5 by default and i write |
Beta Was this translation helpful? Give feedback.
-
We may want to get some inspiration from how the introduction of Python3 was handled in Fedora, which seems to resemble the DNF5 situation quite a bit. Currently, it's shipped as the It can be argued the Python3 transition has set a precedent for how these major upgrades should (can) be handled (in Fedora), so we might as well follow the lead? |
Beta Was this translation helpful? Give feedback.
-
I am coming in to this discussion late, but I have some comments. Generally speaking I think it's bad form to incorporate the software major version as part of the name. There are well known examples where this has become established and accepted, but it does lead to changes or conflicts down the road. The one I am thinking about is Perl where the world just ran with "perl5" because perl4 was already out in the wild and perl5 was significantly different and also early on was installed alongside perl4 (which was already called "perl"). Skip to now and they tried to continue with perl6, but eventually ended up renaming that effort to raku and just let Perl continue as "perl5". Personally, I wish the yum to dnf name change never happened, but here we are. "dnf" is established as a command name now and that's fine. It's worth considering how versioning of dnf will work going forward. Will there be a dnf major version 6? 7? I understand the dnf5 transition is quite significant. And it needs to coexist with the existing dnf for at least some time. I think the command names going forward should push for "dnf" as the preferred name even if "dnf5" comaptibility symlinks are provided. As for naming the software, I think a name like dnfutils or dnftools is more appropriate than "dnf5". The name would avoid stomping on the existing "dnf" package name, but it would remove the major version from the software package names, which I think is something worth avoiding. |
Beta Was this translation helpful? Give feedback.
-
I like the third option most. Since the desired state is replace DNF4 with DNF5, when that happens, I would rename as much of the tools, manual pages, examples, packages back to dnf without a version. If there is a technical requirement to keep a distinct name (e.g. a completely different API of the Python library), then keep it with the number. However, things which aspire to resemble DNF4 (e.g. dnf command) should be unversioned. |
Beta Was this translation helpful? Give feedback.
-
I think that everything has been already said there 🙂 I also agree with the 3rd option. Binary is different now, therefore we're gonna have a |
Beta Was this translation helpful? Give feedback.
-
I would generally prefer unversioned names for everything. |
Beta Was this translation helpful? Give feedback.
-
Option 3 sounds optimal because:
|
Beta Was this translation helpful? Give feedback.
-
Option 3 for me too. The plan is to make dnf-3 and dnf5 co-installable for some time. That would be significantly harder with option 2, and is much easier with option 3. The only thing that needs to change when the default is flipped is who provides the symlink. This is much easier than changing the package name. |
Beta Was this translation helpful? Give feedback.
-
There is on going discussion (Fedora-devel-Fedora 39 proposal) about naming of the next generation of software management tool. The new package will provide
dnf
,yum
,dnf5
, andmicrodnf
and symlink or binary to ensure compatibility, upgrade path, install path (dnf install dnf|microdnf|yum|dnf5
=> install the new tool) and improve adoption speed.There are several questions which I would like to ask community (Fedora, RHEL, upstream developers)
**dnf**
,yum
,**dnf5**
, ormicrodnf
) should we use for a package providing binary (currently DNF5)?Additional information
The new tool is accompanied with library that provide bindings (Python, ...). The new library cannot be named
libdnf
therefore we named it aslibdnf5
. Package providing the new Python bindings cannot be namedpythonX-libdnf
, orpythonX-dnf
, therefore we named itpythonX-libdnf5
. The new bindings will be imported in Python aslibdnf5
. If we use the same names as DNF used, we will break a lot of thing on during runtime, because package requirements will not help us (Requires dnf > 4.0.0
can be satisfied by both library).In Fedora 38 the new package (
dnf5
) is deployed to replacemicrodnf
, and cannot be named asdnf
there because we cannot replace DNF in Fedora 38.I would like to describe 3 basic scenario how we can deploy the new tool in Fedora 39. Please consider that scenarios do not contain all details.
1. Proposed deployment as DNF5
Pros
dnf
ordnf5
Neg
DNF5
New command-line tool will be shipped in dnf5 package that will provide
dnf
,microdnf
,yum
,dnf5
,/usr/bin/yum
,/usr/bin/dnf
,/usr/bin/dnf5
,/usr/bin/microdnf
, Obsoletingdnf
,microdnf
,yum
, Conflicting withdnf
.man dnf
,man dnf5
,man microdnf
, andman yum
will open dnf5 man pages. Man pages will use examples withdnf5
command, but man pages will state thatdnf5
provide dnf and other aliases.Plugins for dnf5 (commands, modifier of output) will be packages as
dnf5-plugins
2. Alternative deployment as DNF
Pros
Neg
dnf
ordnf5
dnf plugins
with same name pattern for thenew dnf
and theold dnf
.New command-line tool will be shipped in
dnf
package (dnf5
package from Fedora 38 will be renamed todnf
) that will providednf
,microdnf
,yum
,dnf5
,/usr/bin/yum
,/usr/bin/dnf
,/usr/bin/dnf5
,/usr/bin/microdnf
, Obsoletingmicrodnf
,yum
,dnf5
, Conflicting withdnf-deprecated
.man dnf
,man dnf5
,man microdnf
, andman yum
will open dnf5 man pages. Man pages will use examples withdnf5
command, but man pages will state thatdnf5
provide dnf and other aliases.Plugins for the
new dnf
(commands, modifier of output) will be packages asdnf-plugins
. Here I see a confusion because theold dnf
also ship its own plugins as dnf-plugins. Good new is that plugins for dnf4 requirepython3-dnf
.Additional it will ship old dnf as
dnf-deprecated
, but it will be not installed after system-upgrade. If any tool wants to use old DNF they need to start requirednf-deprecated
.3. Alternative deployment as DNF5 package but using DNF as primary command
Pros
Neg
dnf
ordnf5
New command-line tool will be shipped in dnf5 package that will provide
dnf
,microdnf
,yum
,dnf5
,/usr/bin/yum
,/usr/bin/dnf
,/usr/bin/dnf5
,/usr/bin/microdnf
, Obsoletingdnf
,microdnf
,yum
, Conflicting withdnf
.man dnf
,man dnf5
,man microdnf
, andman yum
will open dnf5 man pages. Man pages will use examples withdnf
command, but man pages will state that it provides other aliases.Plugins for dnf5 (commands, modifier of output) will be packages as
dnf5-plugins
.Beta Was this translation helpful? Give feedback.
All reactions