From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on starla X-Spam-Level: X-Spam-Status: No, score=0.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_BL_SPAMCOP_NET,SPF_HELO_PASS, SPF_PASS autolearn=no autolearn_force=no version=3.4.6 Received: from nue.mailmanlists.eu (nue.mailmanlists.eu [94.130.110.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id C46CF1F44D for ; Tue, 16 Apr 2024 15:39:33 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=pass (1024-bit key; secure) header.d=ml.ruby-lang.org header.i=@ml.ruby-lang.org header.a=rsa-sha256 header.s=mail header.b=VJqWhaOf; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=ruby-lang.org header.i=@ruby-lang.org header.a=rsa-sha256 header.s=s1 header.b=RE7K6dR+; dkim-atps=neutral Received: from nue.mailmanlists.eu (localhost [127.0.0.1]) by nue.mailmanlists.eu (Postfix) with ESMTP id BF41084313; Tue, 16 Apr 2024 15:39:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ml.ruby-lang.org; s=mail; t=1713281962; bh=TFneviSQQmQ7/+ACd1W7gtRxQ5cX12DDyU5azT3ksNA=; h=Date:References:To:Reply-To:Subject:List-Id:List-Archive: List-Help:List-Owner:List-Post:List-Subscribe:List-Unsubscribe: From:Cc:From; b=VJqWhaOfoRAhUUbtGja2F5OH+ATvbYL1CwwDK0M3EP8LU0f1KR6UsguUADtCMT2Oy BtxifSCV0TRshfCJVF1xVZAYi04RnpcTnfGXWog51gKVtl/iKZQH3dx3w32RrBwueD /a9dqxDcRfSDdXkTbG1SCBOpmW9OEWUaahwuyEDk= Received: from s.wrqvwxzv.outbound-mail.sendgrid.net (s.wrqvwxzv.outbound-mail.sendgrid.net [149.72.154.232]) by nue.mailmanlists.eu (Postfix) with ESMTPS id 4474584253 for ; Tue, 16 Apr 2024 15:39:18 +0000 (UTC) Authentication-Results: nue.mailmanlists.eu; dkim=pass (2048-bit key; unprotected) header.d=ruby-lang.org header.i=@ruby-lang.org header.a=rsa-sha256 header.s=s1 header.b=RE7K6dR+; dkim-atps=neutral DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ruby-lang.org; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to:cc:content-type:from:subject:to; s=s1; bh=KakYae/r7YahW/KBRb22S0mct15mAos/TKVT7Bis4ow=; b=RE7K6dR+iuDuPMKQmmX7jn15D5+VWjs+S7XyUoWbTDSpaJlJg/j1Ru7nPtue5HQBp3E+ aNDA/wCkwIhLNnkr0FBGckTqraqzHNYD5W5iiGcEKXLtk15hp7r3I5N4yj27NqP5UUaDjC fbX+Nf5UzDzs/jrIiYkk6/zxciFlRER8ICsKyIIsw4gHe7Xpiof2j//gIf/twcOrwYC+A3 aMTrRWu31Na2wDDBwYFB1TjUihS9rK7CgimxMIn6mQoKIg+BSvoOB2N2EqJYJ+mrkwCKHe lbSSEb1MeSHCjsLNpacPXSApjbOIt1p6MTnS/mcrA2vZAZ+wUlRXKLp3hPexgT+w== Received: by recvd-6b888cd74b-79p6x with SMTP id recvd-6b888cd74b-79p6x-1-661E9BA3-1F 2024-04-16 15:39:15.991802317 +0000 UTC m=+322769.035285515 Received: from herokuapp.com (unknown) by geopod-ismtpd-11 (SG) with ESMTP id 5-3M3KS1Qe2tRoeedb-fAA for ; Tue, 16 Apr 2024 15:39:15.962 +0000 (UTC) Date: Tue, 16 Apr 2024 15:39:16 +0000 (UTC) Message-ID: References: Mime-Version: 1.0 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Misc X-Redmine-Issue-Id: 20432 X-Redmine-Issue-Author: ufuk X-Redmine-Issue-Priority: Normal X-Redmine-Sender: ufuk X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-Redmine-MailingListIntegration-Message-Ids: 94130 X-SG-EID: =?us-ascii?Q?u001=2EtoxlPY7goenxC35PPmhKmmkfp2fFFKlYTeeCgonqobL7gJhDUe=2FDmBFH=2F?= =?us-ascii?Q?IR+L6I4qzFHsfnxMNAFUsS2aA1fS43BdwF921KP?= =?us-ascii?Q?DGZSBh1Yk7hHTa8D7VijtyYO7G4n2yYljS100F4?= =?us-ascii?Q?7ftSwZz2h45RzkYUCkGsL1Daaf4m40BHt4Vg3q8?= =?us-ascii?Q?HI61UAirtZTRvkV4Af3=2FU8i=2FH6N8V84GmUqkwnJ?= =?us-ascii?Q?fdRpAlDp1v9lVs8TOMaYo7Qoi4GehGI2b2Km6eU?= =?us-ascii?Q?vxb0NF1tVGiXhz5IGymKVzh+nQ=3D=3D?= To: ruby-core@ml.ruby-lang.org X-Entity-ID: u001.I8uzylDtAfgbeCOeLBYDww== Message-ID-Hash: FWIELVBFQ45IIBJOR67PYL3YCUVQ2JRK X-Message-ID-Hash: FWIELVBFQ45IIBJOR67PYL3YCUVQ2JRK X-MailFrom: bounces+313651-b711-ruby-core=ml.ruby-lang.org@em5188.ruby-lang.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.3 Precedence: list Reply-To: Ruby developers Subject: [ruby-core:117535] [Ruby master Misc#20432] Proposal for workflow changes related to teeny releases List-Id: Ruby developers Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: "ufuk (Ufuk Kayserilioglu) via ruby-core" Cc: "ufuk (Ufuk Kayserilioglu)" Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Issue #20432 has been reported by ufuk (Ufuk Kayserilioglu). ---------------------------------------- Misc #20432: Proposal for workflow changes related to teeny releases https://bugs.ruby-lang.org/issues/20432 * Author: ufuk (Ufuk Kayserilioglu) * Status: Open ---------------------------------------- ## Aim - The cadence of CRuby stable releases is very important for how the project is perceived. Users of CRuby want to get more frequent releases with bug and security fixes, so that they feel confident that their projects and businesses continue running smoothly and safely. - More frequent releases make the community see that the CRuby project is active and thriving. It also allows people to keep upgrading to the latest versions of Ruby with newer features and better security. - The current cadence of teeny releases are causing concerns in the community, and there have been multiple examples of late releases in [3.0 series](https://www.reddit.com/r/ruby/comments/r14z39/ruby_303_released/), [3.1 and 3.2 series](https://www.reddit.com/r/ruby/comments/18n54es/why_have_they_not_updated_the_uri_gem/) and now [3.3 series](https://bugs.ruby-lang.org/issues/20085). This is creating confusion and doubt in our community and making the community to [ask for a change in bug fix release process](https://bugs.ruby-lang.org/issues/20422). - We all agree that release management is difficult and branch maintainers have a hard job. If we can be making their jobs a little bit easier, they will have more time and opportunities to make more frequent releases. - This proposal aims to improve some of the workflows around stable branch release management so that branch maintainers have the opportunity to make more frequent bug fix and security releases, thus, addressing some of the concerns from the community. ## Proposal(s) 1. A lot of the time of a release manager seems to be spent doing backports to the corresponding stable branch. The current workflow asks bug reports to populate the fields for which stable versions need the fix backported to, and release managers are responsible for keeping up with this list and creating backport commits on stable branches. This process is fragile, since the release managers are usually the people with the least amount of context on the particulars of a bug-fix and have to apply the same changes to a different branch and resolve any potential conflicts. This is a task best done by people who already have the most amount of context on the change: the original bugfix author. As a result, my suggestion is to make it mandatory for any change that needs to be backported to have backport PRs opened (or corresponding backport patches attached to the Redmine tickets) by the author for the relevant stable branches. That way the authors of changes will be responsible for making sure that the tests pass and the changes apply cleanly on older branches, allowing branch maintainers to come in and merge the PRs, freeing up their time and focus. Since backport PRs will be opened by authors of changes, but only merged by branch maintainers, this will still allow maintainers to control what goes into stable branches. 2. It also seems like branch maintainers are trying to synchronize releases across different Ruby versions, which is causing delays in getting teeny releases out of the door. In my opinion, each stable branch should be responsible for its own teeny releases and there should be no need to synchronize the cadence between different Ruby versions. This will mean less time waiting for other branch maintainers who might be busy with other life priorities, unblocking branch maintainers to be able to do teeny releases whenever it is convenient. 3. Finally, it is my observation that branch maintainers usually make teeny releases whenever there is a security incident that needs to be addressed. A security fix is most definitely a good reason to make a teeny release, but a teeny release should not wait for a security concern to be addressed. There are many other important bug fixes constantly being backported (or needing backports) such as fixes for crashes, fixes for memory retention/leaks or fixes for other behaviour regressions. It is important for end-users to have those addressed as timely as possible, so I would suggest that branch maintainers aim to make about 6-7 teeny releases every year (some of which will be security releases) in order to deliver value to end-users continuously. ## Conclusions Continuous integration and continuous delivery are one of the greatest changes that have happened in the software engineering sector in the recent decades. They allow us to shorten the time of delivery of new features to end-users and reduce the amount of work-in-progress that is waiting for come into the work, thus reducing waste. By adopting some of the workflow changes that I have suggested above, and maybe other changes that I might have missed, the CRuby core team has an opportunity to make a positive impact on all the users of the Ruby language and to increase the quality perception of the project as a result. For that reason, I hope my proposals are considered and implemented by the Core team. Thanks for your consideration. -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/