On May 6, 2021, at 08:41, Nathaniel W Griswold wrote:
> I was doing something today and needed nodejs on my system.
>
> I kinda just wanted the current version, but i saw there were a bunch of
> ‘nodejs’ packages, like nodejs12-nodejs16.
>
> I ended up googling for info about node versions so i could install the right
> one for my purposes, but i thought maybe something could have been better.
>
> Two questions:
>
> 1) I wanted to avoid installing any beta. Is there a naming convention in
> macports for beta packages? Is there a possibility a package can be
> non-stable release with a normal name? If so, is that supposed to be in the
> description?
>
> 2) Is there anything in macports to just grab the current accepted release of
> a package? Like a pointer to a current version kinda like on debian systems?
Most software packages that are available in MacPorts are offered in a single
port which is supposed to be a recent stable version. Non-stable versions are
sometimes offered in a companion port which has the same name but with the
-devel suffix, for example minivmac and minivmac-devel. The -devel version is
expected to be a drop-in replacement for the stable version and is expected to
install files to the same place as the stable version and conflict with one it.
Sometimes a port is a non-stable version even though its name does not end with
-devel. This might happen if no stable version of the software has been
released yet, or if the developers do not release specific versions, or if some
bugfix after the latest stable version is needed to build on the latest macOS
or with Apple Silicon for example.
You would expect to be able to identify a non-stable version by its version
number, which might contain "alpha", "beta", "RC", or a date usually in
YYYYMMDD format. If the port is a -devel port, the long description should
probably mention how it differs from the non-devel port, i.e. that it is a
non-stable development version.
The node, php, python, perl, ruby, gcc, clang, mysql, postgresql, db, and
several other collections of ports are exceptions which offer multiple ports of
different versions because it is thought to be useful for a user to able to
pick which version of this software they want. The user may even wish to
install multiple versions of the software at the same time. Therefore these
ports are supposed to install files to different locations and not conflict
with one another. (The node port collection disregards this expectation.) The
-devel naming scheme is not supposed to be used in this case. (The clang and
gcc port collection disregards this expectation.) There is no facility in
MacPorts for directing you to whichever of these ports is the latest stable one.