Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:125385 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by qa.php.net (Postfix) with ESMTPS id 734AA1A00BD for ; Mon, 2 Sep 2024 12:58:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1725282041; bh=jBGGdcEkhmDqR7s0NNNcdshYe/0UJVxnCPe+7Q2fg3U=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=FREXlssuARttT0v74+yeH+XVyT/BtroHbe6FFoN0eBTx8wIC+oNMAbZrySpDwDtHe m6R0WJJ8mYfIYTg6vmlyCxWun8RjTCG+rKgMcpWr+/oQ2eGF+6eCHBbvtszKS9KmeZ 4C25MNu9FjbIhBSEhHQbRXWbyh1d6amwWidsXr++4g8KEAE7+hLuZp6Rk0ItW5IMKS Pzm1iOQFAEYvFukn+DlOAdTh2Ni+bIOJUpEsOHGTl+aYK6mQuijQjhcfwEMC/uGlZg GAzKDnsxs7ENQw+h565GD/ydJhPWREYRUWZ4zUJ+9a8d/PUqXUDulJB2xd44ifI05v NOT7G5ypYPGZg== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 014D718007F for ; Mon, 2 Sep 2024 13:00:41 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DMARC_MISSING,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from mail-yw1-f169.google.com (mail-yw1-f169.google.com [209.85.128.169]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Mon, 2 Sep 2024 13:00:40 +0000 (UTC) Received: by mail-yw1-f169.google.com with SMTP id 00721157ae682-6b8f13f28fbso34376027b3.1 for ; Mon, 02 Sep 2024 05:58:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=newclarity-net.20230601.gappssmtp.com; s=20230601; t=1725281923; x=1725886723; darn=lists.php.net; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=rAxtgqtnmliugDz+lhWfCcVl+HTmvPJP/zQwZRhKflI=; b=0iF75nTir706G+PGOZLBkoimNtlJch7PN364GgUqu8N3HZCfNzHHk3Ih7xsZ6iM7wn S/t3TdI+5nn6Lj3sbKZB9soN1smMtcWTdqF45BlucHnOKc7ewGqY4KkhIesYFWoxLRPD HYuir/YHL+BBgw4gdj1TXsstIa5K97pX8h/GAjK40ELOc6uPguyS9zNCYQbSM2hLP/kC MQLRvGeycLG8m/sXFOvbLLD8drl0GgTnWt59xN9Gwg2xML/v/AFU4hVdLEo7zU684v6h VxutURayVGEROony5bbr3QZl6CSHRWgjvKHaauBYJc+E55AknmLEkT6iCp3QRAEznqgl YLuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725281923; x=1725886723; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rAxtgqtnmliugDz+lhWfCcVl+HTmvPJP/zQwZRhKflI=; b=eD8FKEOYY3eRuItbQUEofYiffLaCmHV76NmLQkslXEu7gWYexeSMIRi/LHK/wBLzBm BKv2VZSI8MbsujdPDMm5/gt0lBI4A8jD/psJCFtQemMbMoRRb/zBXFXQKg8Iy8P6OKKd P+pE8Gar7EU5mi/VjYw7EW1+4Imt4N/oFNv31THsBpzTddEl8y/elHC8tNGs1iunMWFD EgHt8yf1K02fm8LpUNWXUBoiF+SHGW+1IyxN8M6r/K1RDPuQ7r61gdE0UeSKLu+x5f+w 2LVVgDV/L9vM1cVAtrr6j3sYz+CrjpdhuC5t4x0qzaQoAUMQ/GA2fZGuVVDlrk3yHg/x 1Evw== X-Forwarded-Encrypted: i=1; AJvYcCX237NsXLnwVjQs4ipKkORrKA4OmjzPS1ShZ3ezPG3AIgroGNx2C0O3W27RfiZxLjMPKpNN/+CWtws=@lists.php.net X-Gm-Message-State: AOJu0YysixV4sorGylq9WT15uRMLgsxxgZ3DsG0ZaMnzndfNwB184n/l tAC/wvF1iGT5O+RXK9AaZThbc4Gf4S9zXD0op351R3du9EXtDy/QaqQhjkV/uWU= X-Google-Smtp-Source: AGHT+IECXJphs+Q0XCN2aXVuNDguXc010tfSROCP+ZZmg1V0ycJJUALOci0FtUj4SGROQ/tEwJmQOQ== X-Received: by 2002:a05:690c:660e:b0:6bd:8b0a:98b2 with SMTP id 00721157ae682-6d40d88f562mr112693587b3.5.1725281922978; Mon, 02 Sep 2024 05:58:42 -0700 (PDT) Received: from smtpclient.apple (c-98-252-216-111.hsd1.ga.comcast.net. [98.252.216.111]) by smtp.gmail.com with ESMTPSA id 00721157ae682-6da333920b7sm916207b3.97.2024.09.02.05.58.41 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 02 Sep 2024 05:58:41 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.10\)) Subject: Re: [PHP-DEV] PHP 8.3.11 Released In-Reply-To: Date: Mon, 2 Sep 2024 08:58:40 -0400 Cc: Derick Rethans , PHP internals , Jakub Zelenka Content-Transfer-Encoding: quoted-printable Message-ID: <0A6AB07F-848E-4A3C-AE18-E0384D9A7C2E@newclarity.net> References: <9b35954d-ae70-4c74-ab85-2ecacfd594fb@gmx.de> <594b4499-7919-496d-a039-1c1afa06b8a1@gmx.de> <2E5F4DF6-CCE0-43BB-9F1B-5E82FFB89EBB@php.net> <261c47a3-f3d7-4328-9cb9-1b9a44e0fb5b@gmx.de> <621B5876-919D-4C97-B0B3-0E5A658F8EA7@newclarity.net> To: "Christoph M. Becker" X-Mailer: Apple Mail (2.3696.120.41.1.10) From: mike@newclarity.net (Mike Schinkel) > On Sep 1, 2024, at 6:12 PM, Christoph M. Becker = wrote: >=20 > On 01.09.2024 at 09:16, Mike Schinkel wrote: >=20 >> One of the benefits for users when software authors strictly follow = SemVer is that automated tooling can decide if an automatic upgrade = should be safe. Depending on out-of-band information to convey BC = breakage can result in those who use automatic upgrades to see = unexpected failures en masse since automated tooling won't look at = bespoke, non-standard labels when deciding. >>=20 >> If enough software authors choose to be less strict about SemVer it = could have the fallout that many people decide it is just too risky to = use automated tooling. Once bitten, twice shy. >>=20 >> One approach I have seen on other projects take is they retract the = versions with BC breakage and then release an update reversing the = breakage. >=20 > What does "retract" mean in this context? I mean, we can delete the > tag, remove the download from php.net =E2=80=93 but the version has = already been > released, and might be used in the wild. Retraction is something I know from Go, but after your question I = learned that it may be a concept Go introduced as go's binary has = tooling to detect and warn against reversions built-in. =20 If you are unfamiliar with Go, it has location of downloadable source as = a first class concept in the package name, hence = `example.com/my/package` can be downloaded with `go get = example.com/my/package`. If I had published then retracted a version = 1.5.0 and you were to `go get example.com/my/package@1.5.0` then Go = would warn you that the package is retracted. Still, you do not need any tooling to effectively revert for all intents = and purposes: 1. Revert the code. 2. Calculate a new tag by incrementing the to-be-reverted tag by 0.0.1 3. Commit the changes with a commit message saying the commit reverts = the prior commit named by the new tag. 4. Tag the changes with the new tag and a message saying it reverts the = prior patch tag. 5. Edit the messages of the reverted tag and reverted commit by = prefixing them "REVERTED:" and "REVERTED IN x.x.x:", respectively. Here are some links covering reversion in Go if you want to dive deeper = into their approach: - https://www.jvt.me/posts/2024/01/15/retract-go-release/ - https://play-with-go.dev/retract-module-versions_go119_en/ > We already have the "problem" that we tag on Tuesdays, but release on > Thursdays, but you find builds from Wednesdays in Linux distros. Retracting is never meant to erase history, and we cannot guard against = all possible use. Retracting is meant to (hopefully greatly) minimize = the use and any fallout that might otherwise occur. =20 Further, retracting "swims with the current rather than against it" (my = metaphor) meaning that automated tooling would choose to deploy the = fixed version over the broken one and would also upgrade from the broken = one to the fixed one as soon as the tooling was run again. In the case that a Linux distro captures the reverted release into a = periodic release of their distro, then whoever discovers this could = submit a bug fix for them to issue their own bug fig for their released = version to update to the +0.0.1 tag. Not perfect, but perfect is usually the enemy of the good. Hope this helps. -Mike=