On 07.06.2021 at 13:32, Anatol Belski wrote:

> Removing the centralized PECL builder and dependency manager would most 
> likely lead to a huge regression in the support and manageability. Right now 
> there's one place pecl.php.net to go for the non core extension builds and 
> any dependencies are guaranteed to be non conflicting. If this gets 
> decentralized, the effort is moved to the extension maintainers which will 
> most likely mean the chaos in where to get a DLL, DLL hell issues, absent DLL 
> because the configuration is hard. This will steadily lead to the situation 
> that was there before.
>
> IMO even keeping the basic version of the centralized approach even having a 
> sporadic chance to fix issues is a far better way to go than dropping the 
> existing achievements. Also in the long run, other approaches like moving to 
> vcpkg for deps, checking on other things like cmake and pickle might be a 
> good way, if there's  a community interest. More volunteers on the community 
> side would be great in this sense, too.

Good points, thank you for bringing them up!  I have to fully agree that
we should not drop the central point of distribution (i.e.
windows.php.net).  I don't think, however, that we can stick with the
current PECL build system for long.  Maybe the biggest issue is that
extension maintainers may see automatic DLL builds as a given, or at
least may not be able to fix things, because only few have access to the
build machine.  And even if that was not an issue, not many more would
know where to look at.  In other words, the bus factor is very low, and
it may happen at some point in time, that no new DLLs would be built for
*any* extension.

This is why I still think it would be good to shift some of the burden
of maintaining Windows builds to extension maintainers is a good thing.
 It is not about making their job harder, but rather about preventing
serious issues, and also to correct expectations; extension maintainers
might well assume that their extension is supported on common Linux
distros, but they shouldn't *assume* it is supported on Windows as well
(let alone that the dependency libraries have fixes for all known
relevant security issues).

Even if extensions are developed solely on Linux (and most are, as far
as I know), they should have some Windows CI (at least doing the actual
builds; better to run the test suite as well, of course), and that
shouldn't be a real problem – there are several CI providers which are
free for OSS projects.  We should do our best to provide them with
appropriate tools, so Windows CI integration can be set up as easily as
for Linux phpize builds.  That would not solve the issues regarding
dependencies, but appears to be a reasonable first step in the right
direction.

Thanks,
Christoph

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to