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

Reply via email to