Newsgroups: php.internals
Path: news.php.net
Xref: news.php.net php.internals:114759
Return-Path: <cmbecker69@gmx.de>
Delivered-To: mailing list internals@lists.php.net
Received: (qmail 86395 invoked from network); 7 Jun 2021 08:44:03 -0000
Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5)
  by pb1.pair.com with SMTP; 7 Jun 2021 08:44:03 -0000
Received: from php-smtp4.php.net (localhost [127.0.0.1])
	by php-smtp4.php.net (Postfix) with ESMTP id E18841804CC
	for <internals@lists.php.net>; Mon,  7 Jun 2021 01:58:28 -0700 (PDT)
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net
X-Spam-Level: 
X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,NICE_REPLY_A,
	RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,
	SPF_PASS autolearn=no autolearn_force=no version=3.4.2
X-Spam-Virus: No
X-Envelope-From: <cmbecker69@gmx.de>
Received: from mout.gmx.net (mout.gmx.net [212.227.15.19])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(No client certificate requested)
	by php-smtp4.php.net (Postfix) with ESMTPS
	for <internals@lists.php.net>; Mon,  7 Jun 2021 01:58:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;
	s=badeba3b8450; t=1623056306;
	bh=Cc/f3iB6TYxH0nrUK9Gqp0ugS5ld7bU+1GKSYd/OAB4=;
	h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To;
	b=ir1MFZlltVxlyCnFZbtkMcHmF/Y0WImPHZ3OQ0MFx+FXP5Q+Y+TcoRXml/TLmivjj
	 fmNUIvV4/2GDqwi9ldmuWta25expLCCKgRygjHzejjGREXgMb5XGaee4Up+t3yv2V3
	 gyPeSxd7jYpmLieQJiy678nrqviGrc/hN47NRFm8=
X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c
Received: from [192.168.2.130] ([84.179.237.12]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MkHQh-1l5an51VXt-00kiSa; Mon, 07
 Jun 2021 10:58:26 +0200
To: Nikita Popov <nikita.ppv@gmail.com>
Cc: PHP internals <internals@lists.php.net>
References: <581375a1-e18c-c88f-3bc4-557420ea15a3@gmx.de>
 <CAF+90c_3A4o7QK--HxeJDaNQuFvwt9v+m=Re1Y4dDMCfvKm0Nw@mail.gmail.com>
Message-ID: <9bc4fef7-d144-5623-da96-75516d28c163@gmx.de>
Date: Mon, 7 Jun 2021 10:58:25 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
 Thunderbird/78.11.0
MIME-Version: 1.0
In-Reply-To: <CAF+90c_3A4o7QK--HxeJDaNQuFvwt9v+m=Re1Y4dDMCfvKm0Nw@mail.gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Language: de-DE
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:tc9d06gQ2p127LI2XtxkWvFAJgqmqGgHx01sazuNli1YFUx5/Jf
 ytFGyMyBwNlU92r9v9CoIAhwLjn+EI72KVbcE378Xvg2M3wq6S0WUpIOteSXb3Q2maKGkc+
 tI9GVWegwKTqGp9J/vVsm3l0TWbwZDPzsUmUWPIAiN5bB1sidej9HVcTzgchacr2zOsmweA
 jumUENyQL2zez7B8aOreg==
X-UI-Out-Filterresults: notjunk:1;V03:K0:qiz7tQ4FHWQ=:A7kgVi0IMHqo2+eMNnne1F
 mkqMXN/L7RVGAfRvxWl1xDgz5hzPevoT8ngRFb1GerS25Gd34GSMTmRZsLiqDN1lZ1c3Enh5T
 wvDa8MsuMqcXKYp1sbBqn5insPApPRHwwZQqEItGXiFbpU31enE0mP6BPLGzx/97hpep9CsvF
 /jNTqR7k0Pu1v+zjoxh69J1iVjdCtQGIKrA+kuDVVGvuCPzUN7oh/TII9R3cpWJel6Wekt2lU
 lkOg/FF1ITkxXSP2BtaqyxeQTvFtdDn39TjiExrWc1M81v1awdawRCeGU6Sowh1GCeRYxI/cb
 0zcT4wuNeBdzvv+qtprInxpT1+j9xeJjHmPxn3ONfvqO1Ne+h5sOGPB0VVJiAWpILwp1dUUen
 1T94XjYA1AbuetffrCa5zM3s9KvDegxvpcUqIX1BnMf2c0ZtFCH2baWAI7WEZDwUL3pB78qH9
 ldxyPJOJOgvPkgu+h2aWC6Icby00E9ma3pNUgR3HJK3MAgPmwaK+64qLLkihhWRAV04mhGC2q
 ohYrr1wcJPCDBeUQnA495at6CglU6Azxo4sktieiWQLZJbKiMmJrllFvqU0s2GkHFquFm4s5N
 o9utMr54FNF3nm2fa449Oib4Ihqv4fUBDw/HjzQ0zdMoahY5Z00q/JI4DbQzqCfH7xRcBuvU/
 DrGqLgh/dlDgWLhUtkxC1XImb7HjoubwcLE0/EL1j1eGOIJ/MOUFLxBYL/FrGUnUdkSv08V3I
 nN0D5NhnCGIzBED81bthAF/umF5P5q2YVrWdeSAp3Z4xbQuBySH8CvynPkGVQ6ORb2EtbrL2C
 392XM8x8jRqPxjK5pdgpZ86oks/tPT3D7oAPgvd0SK+ULjNNghHEJ2X/u7UME2B8+YRhSoThf
 jcI+8FAvpFErMxAFgWn6JUyi+zG7xwKsfTZtdY7qMfgV8ZznXYdy1Bad10o3fKZaslBaqgTCt
 U9GyW4T4fEj0bXt7wrQwbV3n4IjwusXVvBYzcx/4novDxbE28dyzjVyYvIYzg9fK8vykoPbIo
 LMKdMosPYo4jHnf3jBDLwf+tJK4BjHvpBxuQFWzqaHSAFTg4FlYaWY+vagmw5MtIfQnEgkg6+
 AeUo+AVWp68QGMvkfv3IaqhE7p8SbjSYqYi
Subject: Re: [PHP-DEV] PHP 8.1 and PECL ext builds for Windows
From: cmbecker69@gmx.de ("Christoph M. Becker")

On 07.06.2021 at 10:02, Nikita Popov wrote:

> On Sun, Jun 6, 2021 at 3:26 PM Christoph M. Becker <cmbecker69@gmx.de>
> wrote:

>> on Tuesday, PHP 8.1.0alpha1 is supposed to be tagged, and since I don't
>> have the capacity to do these builds manually (as currently done with
>> the PHP 8.0 builds), I've set up an automation which does the builds on
>> GH action runners[1].
>
> To clarify, this builds the binary Windows release artifacts? Automating
> that using GH actions is great.

Right, that is about building the relese artifacts, which will then be
available from <https://windows.php.net/>.

>> This should likely be integrated into php-src or
>> php-sdk, whereyby the latter needs to be forked into a php organization
>> repo as soon as possible, since there is a pending commit regarding the
>> exclusion of yet unsupported PGO training scenarios, and we also should
>> roll a new SDK release, and update some of the bundled tools.
>
> Is php-sdk referring to https://github.com/microsoft/php-sdk-binary-tool=
s?
> Having this in the PHP organization sounds reasonable, though I don't
> really follow your reasoning. How is the exclusion of PGO training
> scenarios relevant here? Is the concern here that Microsoft will not be
> maintaining the SDK for new PHP versions, so the PHP organization should
> take over doing that going forward?

Indeed, Microsoft has no intentions to maintain that repo for PHP 8, so
we need to fork.

>> While these builds are
>> automated, and mostly work well, there are sometimes issues with new
>> releases and the dependency libraries are rarely updated (a lot of
>> these[2] are ancient versions).  And although I'm planning to enable
>> snapshot builds when PHP 8.1 enters the beta release cycle (as usual),
>> and to do the mass rebuild after PHP 8.1.0 is released, I won't be able
>> to spend much time to help with resolving issues.  In my opinion, it
>> would be beneficial to push the burden of providing Windows builds to
>> the extension maintainers.  There are already AppVeyor integrations for
>> several PECL extensions, some of them producing binaries which are
>> basically identical to the PECL builds, and generally Windows CI should
>> be helpful for package maintainers to detect potential issues before ne=
w
>> releases.  Furthermore, extensions maintainers would be more flexible
>> regarding the supported PHP version (currently, the PECL builds are don=
e
>> for PHP 7.3, 7.4 and 8.0 only).
>
> I see some possible complications here, mainly around storage and
> accessibility of the produced artifacts. Artifacts produced by AppVeyor =
are
> only stored for one month and not easily found. A nice thing about the
> current system is that the artifacts for all extensions can be found in =
one
> central place.
>
> The minimum would be to move artifacts from AppVeyor into GitHub release
> artifacts to make sure they're persistent, which is rather tedious witho=
ut
> some automation (there are >16 Windows release artifacts for apcu).

AppVeyor (and other CI providers) allows to upload artifacts to
arbitrary locations; at least AppVeyor supports uploading of artifacts
to GH realeases[1], so this could be automated.  I'd be very surprised,
if other GH CI providers wouldn't support that as well.

[1] <https://www.appveyor.com/docs/deployment/github/>

> Regarding dependencies, does this mean that extensions should also build
> DLLs for dependency libraries themselves? Are there any concerns about
> different extensions building different versions of the same library, or
> similar?

Oh, right, that could be an issue.  Maybe we should stick with providing
the dependencies from windows.php.net?  Not sure how to handle the
details, though.  This doesn't look super urgent to me, but I would like
to see more (Windows) CI integrations of the package repos soon.
Reusable, publicly available GH actions might make CI integration for
packages super simple even on Windows.  Any help welcome!

Christoph