Hi MacPorts folks - SWIG 4.0.0 has been released after much ado < 
https://sourceforge.net/p/swig/news/2019/04/swig-400-released/ >. I'm positive 
that this release fixes a bunch of bugs from the prior 3.0.12 release, as well 
as adds a bunch of new useful features! But also as with any release there are 
probably bugs we don't yet really know about.

For those who don't know: SWIG creates a compiled interface between languages, 
for example from C++ to Python; hence, testing and verification are 2 parts: 
the build (e.g., compiled C++ / Python interface), and the binary (e.g., 
importing the compiled interface into Python). Testing dependent ports for the 
former (the build) is pretty straight forward, something our CI can handle for 
PRs once the new SWIG4 is in place. That said, there are some 190 ports that 
depend on the SWIG subports, which makes testing the latter (loading the 
compiled SWIG into the target language) challenging to verify.

Given the unknowns of how well SWIG4 will work with current ports and the sheer 
number of ports that depend on the various SWIG subports, I'm inclined to 
create a "SWIG4" port (and subports) that somehow -do not- conflict with SWIG 
(3; and subports), so that projects can still use the current SWIG (3; and 
subports, bugs and all) but have a migration path forward to the new SWIG4. 
SWIG (3) would no longer be maintained except critical bug fixes (if that); all 
future maintenance would be for SWIG4, and we'd create a ticket encouraging 
port maintainers to move their ports to SWIG4 if that's reasonably possible. 
Each port maintainer could then test / verify / fix their ports, individually 
and separately and in whatever time they need; there would be no real pressure 
to update to SWIG4 so long as SWIG (3) still builds.

Thanks in advance for your thoughts and advice on how to proceed here! - MLD

Reply via email to