Newsgroups: php.internals
Path: news.php.net
Xref: news.php.net php.internals:114757
Return-Path: <nikita.ppv@gmail.com>
Delivered-To: mailing list internals@lists.php.net
Received: (qmail 78427 invoked from network); 7 Jun 2021 07:48:18 -0000
Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5)
  by pb1.pair.com with SMTP; 7 Jun 2021 07:48:18 -0000
Received: from php-smtp4.php.net (localhost [127.0.0.1])
	by php-smtp4.php.net (Postfix) with ESMTP id D378D1804AE
	for <internals@lists.php.net>; Mon,  7 Jun 2021 01:02:42 -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.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE,
	RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS
	autolearn=no autolearn_force=no version=3.4.2
X-Spam-Virus: No
X-Envelope-From: <nikita.ppv@gmail.com>
Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52])
	(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:02:42 -0700 (PDT)
Received: by mail-lf1-f52.google.com with SMTP id r198so21436059lff.11
        for <internals@lists.php.net>; Mon, 07 Jun 2021 01:02:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc;
        bh=tDDtgIU/aXir4BXJ9p0eRfyr81RiMk6Ifv4U9wiV3mE=;
        b=onazmX6D32I9poeeGLroRkVM6x0Kan7S5/Q6mJzqPlhmcZK+jf7DYrwyt6+O/acNqL
         GRXCliHU56hH8N7lL0zY8KHLGUp1VtsnwPAicxS9RqlVBbQdkvyiLEcrdQkJjxJEd8ZA
         X5lm73naZAcQ7sG1qecUdcoehsGqdTwFn37gGpBFQnrA8v61O+psQJTT+VMKon10gMRV
         G/y9cX1NRWu2Re5vGnlHbwOvEBPjaz0Cp5oAZH4CF9FZUTeByZaGKsm4F8pXBK93R2v2
         i2baUqSJIpd4sa0brSqonGnb2R0w8IK2sG4N+WP0Y36O3wxy5OS8fNaZ5i0W2JMM/snb
         wO9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=tDDtgIU/aXir4BXJ9p0eRfyr81RiMk6Ifv4U9wiV3mE=;
        b=kP3t28SzTyw9UNXSQFvJIlPY+MKSoG5OwxsEKPYCTyzN2EuYDm91pr/ym8WCsMdA1x
         oRUHKR421n11Z3ZVKEpUF+aLFZQT47PBwIV9Md/upUXPUsOXfCYmEzfp34GtXRUatb4H
         fO4HdGvxNZvyuBi7fzF3tNEpXU1oZW4jAoR3EMW2+NDkbruS9Lfxv4lfBtFnxppkhXpf
         ZjS5K/7QH35bcNYx5y6XOslvPan55GNj57QgV+HA6WihHWbTv0LOW3iFBR/PVzpdON4r
         HYgzrU2dEb3sfSlmaM2H5n+5EBO8HuWtz7Dr5yyus79nBiXX0ArvLcs1daUHLP9oPrmI
         d7Ow==
X-Gm-Message-State: AOAM532gllN/c2z+kb60Am1Ptd85ux22i+RMp+ONHT3GU5yxjNiSsCbG
	Qw3uydqGF4qYQGRKtTyBlZGb/GcyTMlYMqj4GUk=
X-Google-Smtp-Source: ABdhPJycNMGwRcM8l50txph1qD1DJxoD8m8xeTPxKMRQpav3o4ftaXXlPmI/oogROPQvNxkerE/xioUFauJQ/jOnzlk=
X-Received: by 2002:a05:6512:70d:: with SMTP id b13mr11075213lfs.315.1623052960607;
 Mon, 07 Jun 2021 01:02:40 -0700 (PDT)
MIME-Version: 1.0
References: <581375a1-e18c-c88f-3bc4-557420ea15a3@gmx.de>
In-Reply-To: <581375a1-e18c-c88f-3bc4-557420ea15a3@gmx.de>
Date: Mon, 7 Jun 2021 10:02:24 +0200
Message-ID: <CAF+90c_3A4o7QK--HxeJDaNQuFvwt9v+m=Re1Y4dDMCfvKm0Nw@mail.gmail.com>
To: "Christoph M. Becker" <cmbecker69@gmx.de>
Cc: PHP internals <internals@lists.php.net>
Content-Type: multipart/alternative; boundary="0000000000002b2fdb05c4287776"
Subject: Re: [PHP-DEV] PHP 8.1 and PECL ext builds for Windows
From: nikita.ppv@gmail.com (Nikita Popov)

--0000000000002b2fdb05c4287776
Content-Type: text/plain; charset="UTF-8"

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

> Hi all,
>
> 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.


> 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-tools?
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?

Anyhow, if these PHP 8.1 builds turn out to be good, I'd also like to do
> the PHP 8.0 builds this way; this would free required capacities on the
> current build machine (plus save a bit of my time), which is actually
> supposed to do the PECL extension builds.


Automating PHP 8.0 builds sounds good as well.


> 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 new
> releases.  Furthermore, extensions maintainers would be more flexible
> regarding the supported PHP version (currently, the PECL builds are done
> 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 without
some automation (there are >16 Windows release artifacts for apcu).

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?

Regards,
Nikita

--0000000000002b2fdb05c4287776--