Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:114765 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 4364 invoked from network); 7 Jun 2021 10:52:44 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 7 Jun 2021 10:52:44 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 1C2CD1804C9 for ; Mon, 7 Jun 2021 04:07:11 -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: Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) (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 ; Mon, 7 Jun 2021 04:07:10 -0700 (PDT) Received: by mail-lf1-f42.google.com with SMTP id r5so25623960lfr.5 for ; Mon, 07 Jun 2021 04:07:10 -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=29gcQpVJN/dgwQkqFOgoPJxo2vdEJC4rZjzekj1jl9w=; b=jkiv+jylLWGxtEW1o8B38c/hBifAwDlrd3EpfEUptsGhPUh3RjqZBKdbkn2pNZa4xG ft8RhluvsiFPEdwPbCd1sZ27oKokbBtYIqm9XIH1YawAQUFSfoYyJEW+uOBj4ST85HLJ /rcFb8Mhd9E2GxOsyBZGBr5cAxELclk77dD5NLBkbGryK/GxVdf1QPfXI0JwvcuDzTvx UozGbymBEJ2Xp394TJtoQHRs4UTi/JSVXl84NHIATMpVPXlKqUFmV0/YPKwESeOTpdk3 z8AZX8bLG8y5TOmXaDFDFpAgUjRVj2GiYjxOaHfciQ7mizPMqKAImwu2L0O0/mRXRovP 7yRg== 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=29gcQpVJN/dgwQkqFOgoPJxo2vdEJC4rZjzekj1jl9w=; b=jfWH5qTX0adj5ceP2xhOEYOt0VD1tntlSGvW67lsQC81b7YE7vgoP7NOi/nu61q77E oBaSkau8THN6jeDe99QAN3rZ3ECHp+sdqhHt11aP9X1jun8Woe7uiQZSW17ZFAX3andf +6uSU/ThQ+KM/ZvYl25dOSNgKduLmxDKyLyJNknWcTWqxWMTswSgKE7trN1LP2NU06Xx eFZ0hUoUs3qzWnSUiFytLaL8TgZDMuQEtDna2TRlFxFsOcxIHwBayXfrKQPa2jdzPSw4 6g2rQXnC/5o5hIOgFc82XzUzc5c1TkHHdlIDhCHGV3vTjHhVx0KwabicL9bTMicz6O85 j9tQ== X-Gm-Message-State: AOAM5325rYv+YnzbPPKDb5vR/ljyD25d+okf4rwtWyRy1kGcmnp2hvyv rJ0uHMNN1XRm9MZYuzUJY0gle8UF24k5YIoOHFw= X-Google-Smtp-Source: ABdhPJz/jjE/RI4iQgfDjVasgXK5LJNSkvHmHjDEKfO3eFLoJClryUaAD/mo0gtclWlmVy7zfJmWd3aj3VWcIuXTUMU= X-Received: by 2002:a19:7d05:: with SMTP id y5mr7288510lfc.159.1623064029296; Mon, 07 Jun 2021 04:07:09 -0700 (PDT) MIME-Version: 1.0 References: <581375a1-e18c-c88f-3bc4-557420ea15a3@gmx.de> <9bc4fef7-d144-5623-da96-75516d28c163@gmx.de> In-Reply-To: <9bc4fef7-d144-5623-da96-75516d28c163@gmx.de> Date: Mon, 7 Jun 2021 13:06:53 +0200 Message-ID: To: "Christoph M. Becker" Cc: PHP internals Content-Type: multipart/alternative; boundary="000000000000e9fc0b05c42b0ad3" Subject: Re: [PHP-DEV] PHP 8.1 and PECL ext builds for Windows From: nikita.ppv@gmail.com (Nikita Popov) --000000000000e9fc0b05c42b0ad3 Content-Type: text/plain; charset="UTF-8" On Mon, Jun 7, 2021 at 10:58 AM Christoph M. Becker wrote: > On 07.06.2021 at 10:02, Nikita Popov wrote: > > > On Sun, Jun 6, 2021 at 3:26 PM Christoph M. Becker > > 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 . > > >> 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? > > Indeed, Microsoft has no intentions to maintain that repo for PHP 8, so > we need to fork. > Okay, sounds good to me. Rather than a GitHub fork, I'd suggest pushing a clone of the repo, and indicate the original source in the repo description. GitHub forks have some annoying limitations (like the inability to use search), which are not great for long-term forks. > >> 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). > > 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] > Okay, that looks nice, and should make producing Windows builds a matter of creating a GitHub tag. Do you know if any PHP ext already uses this, so it could be seen in action? > 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! > Right. I think a problem here is that the AppVeyor configuration for extensions is a bit arcane (at least to me). If one could just pick up a centrally maintained action from the GH marketplace, put in your target PHP versions and let the magic happen, that would make things simpler. Regards, Nikita --000000000000e9fc0b05c42b0ad3--