In MacPorts, "boost" is currently at 1.71.0. There are traditionally 3 Boost
releases per year: late April, mid August, and early December. The current
release of 1.75.0 was on December 11, 2020 <
https://www.boost.org/users/history/version_1_75_0.html >.
Boost is a challenging port to get updated. The API changes regularly which
breaks backwards compatibility. It takes time even for actively-in-development
ports to get working with these releases; and older ports that are not actively
in development will just fail eventually because the updated Boost API is so
different. We can't just update the "boost" port because it breaks other ports;
reliably; potentially for weeks if not months until fixes are in place. Some
ports will of course work without modification; but many will not. Some of
those ports are not trivially updated to work with newer Boost, whether by us
directly or via upstream fixes. These reasons are why Boost is stuck where it
is for such a long time.
Prior PRs have failed because too many boost-dependent ports could not be
updated, and it would take too much aggregate time to do all of this work --
and so some of the ports updated in the PR get stale & need to be rebased,
which takes even more time ... just not enough time in the day / week / month
to get all of this done!
I don't know what the ideal solution here is, hence this email to start a
discussion. What I do know is that -something- has to change, since MacPorts
can't keep up with current Boost releases in the current way we handle the
Boost ports ("boost" and "boost169").
The best solution I've been able to come up with is to make new boostXYZ ports
that are installable in parallel: boost169 already exists, as noted; I don't
have it installed yet, but it's on my list to do so, to try to figure out the
right way to do such parallel installs. We would then move the current
"port:boost" to "port:boost171" and change the dependency for all ports that
depend on it. Then, we can add in Boost 1.72 / 73 / 74 / 75, and any port that
can be updated to newer Boost has the option to be updated; and, also, all
future Boost releases will be simple to add in as a new port.
The primary downside of just having boostXYZ is keeping those older Boost
versions building on newer macOS and newer compilers ... but, this is almost
always challenging anyway, so I don't see this is a new issue.
What does the MacPorts-hive think here? I should have some time in the coming
month or so to do this work; I'd like to have some general agreement as to what
the work should be. - MLD