tech-pkg archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: fish shell versioning
Paolo Vincenzo Olivo <vins%NetBSD.org@localhost> writes:
> Hi,
> Currently we have 2 packages for fish shell:
>
> * shells/fish: the original 3.x branch, now unmaintained upstream.
> * shells/fish4: the 4.x branch, which is a complete rewrite in Rust.
>
> We may alternatively:
>
> 1. keep things as they are now.
> 2. update shells/fish with shells/fish4 and move the 3.x branch to
> shells/fish3. In case, decide whether this should be done before or
> after the freeze.
>
> In any case I think it's advisable to keep fish 3.x in repo, since
> having a shell depend on Rust makes it unavailable on several "minor"
> platforms.
The general rule is that either
There is one version only and we expect that over the next 5 years we
will only have one version at a time (which may be updated). Then
there is no version suffix
or
We have more than one, or there is a recent history of needing more
than one, or we expect more than one in the future. Every version in
pkgsrc is versioned.
Your logic for keeping a version written in a portable language so that
it is in general available is compelling, so I think we end up firmly in
the second case.
Having foo and fooN is bad, as it is not immediately obvious which is
which and why. We end up there when a package transitions from "the
latest version is ok for everybody so we have one" to "the package has
made troubling decisions and there are reasons why the latest version
isn't ok". You may point out that fooN and fooM also are somewhat
difficult to interpret, but IMHO the risk of confusion is much lower, as
people should take that as a clue to read foo*/DESCR.
While there's generally a bias against renaming, moving fish to fish3
seems reasonable.
However, the most important step is easy and seems not to have
happened: reading DESCR of both does not explain any of this. A simple
"This is the current release. It is implemented in rust and thus not
available on all platforms." and "This is a previous release which is no
longer maintained. It is, however, available on platforms not supported
by rust." would do wonders for understanding
Home |
Main Index |
Thread Index |
Old Index