Hi, > Also, I know we have high release costs for new versions, but is that also > true for backporting fixes? Unlike new releases, if we were creating a > bugfix release, we are presumably starting from a much more stable point, > right?
Right. Additionally, I've improved/added shell scripts for some post release tasks (updating MSYS2/Homebrew/vcpkg packages) in the 10.0.0 release. Release costs will be reduced in future releases. Thanks, -- kou In <CAH6BBm2__JZ+dxvagRT0K1t=ttv-sbxo93p3md70zz1wxh0...@mail.gmail.com> "Re: [DISCUSS] Maintenance policy" on Wed, 19 Oct 2022 10:47:51 -0700, Will Jones <will.jones...@gmail.com> wrote: > One particular type of defect we might want to consider backporting to > supported versions are ones that silently produce incorrect data. Unlike > ones that cause a crash, it's not easy for a user to know they are affected. > > Here are a few examples: > > * ARROW-17453: [Go][C++][Parquet] Inconsistent Data with Repetition Levels > [1] (fixed in 10.0.0) > * ARROW-17995: [C++] Fix json decimals not being rescaled based on the > explicit schema [2] (fixed in 10.0.0) > * ARROW-14523: [C++] Fix potential data loss in S3 multipart upload [3] > (fixed in 7.0.0) > > Also, I know we have high release costs for new versions, but is that also > true for backporting fixes? Unlike new releases, if we were creating a > bugfix release, we are presumably starting from a much more stable point, > right? > > Thanks, > > Will Jones > > [1] https://issues.apache.org/jira/browse/ARROW-17453 > [2] https://issues.apache.org/jira/browse/ARROW-17995 > [3] https://issues.apache.org/jira/browse/ARROW-14523 > > On Wed, Oct 19, 2022 at 9:32 AM Todd Farmer <t...@voltrondata.com.invalid> > wrote: > >> Hi, >> >> I've been thinking a lot about maintenance and lifecycle policies and >> defect classification recently - I'm very grateful this is being raised. I >> believe establishing such policies will prove instrumental to enable >> adoption of Arrow for a number of use cases that prioritize stability over >> innovation. >> >> On Wed, Oct 19, 2022 at 5:42 AM Antoine Pitrou <anto...@python.org> wrote: >> >> > >> > Hi Kou, >> > >> > Le 19/10/2022 à 06:29, Sutou Kouhei a écrit : >> > > >> > > My proposal: We maintain the last major release: >> > > * We maintain 9.Y.Z when the latest major release is 9.0.0 >> > > * We may release 9.Y.Z when we find a problem such as a >> > > security vulnerability in 9.Y.Z >> > > * We drop support for 9.Y.Z when we release 10.0.0 >> > >> > That sounds ok to me, but is there a more precise criterion than "we >> > find a problem"? >> > >> > In the past, we have from time to time done maintenance releases based >> > on annoying bugs/regressions. But not always. >> > >> >> I very much agree, and actually think there are multiple questions to >> answer here: >> >> 1. Which class of defects should be allowed to be merged into a maintenance >> branch? >> 2. Which class of defects must be fixed in a supported maintenance branch? >> 3. Which class of defects should trigger a maintenance release once a fix >> is made to the branch? >> 4. Which versions should be targeted in backporting a defect fix? How long >> will a release receive maintenance support? >> 5. Which class of defects can be batched into a future maintenance release, >> and which need immediate release? >> 6. What delivery artifacts are needed for maintenance releases? Can some >> things be source-only? >> >> Today, any fix may be a candidate for backporting to a maintenance branch >> if there's support for doing so in a vote. I believe it might be useful to >> more formally triage defects in part to establish policy answering these >> questions. For example: >> >> * How severe is the defect? Does it produce wrong results? Cause crashes? >> Or is it an annoying spelling error in a log message? >> * How widespread is the impact? Is everybody who uses Arrow going to be >> affected by this? Or is it only triggered by some very obscure use case? >> * How accessible is any workaround? >> * How much risk is involved in a fix? >> >> Having a common framework to classify those elements above would enable >> policy that clearly defines which defects can (or should, eventually) get >> what attention. >> >> If there is interest in the community, I'll continue a draft proposal I'm >> working on to formalize triage to capture these aspects. Any such triage >> process would be entirely optional for work done against master/main, but >> could be required for assessing potential backports as needed. >> >> I'll also note that I recognize Arrow may not currently see a need to >> answer all the questions about maintenance/lifecycle policy today, or may >> not have the resources needed to deliver what may be desired. It takes a >> lot of work to generate a release today. I think it's completely >> appropriate to commit only to what can be delivered today, with an eye >> towards incremental improvement. For example, an entirely acceptable policy >> might be: >> >> * Only the most recently-released minor version is eligible for defect >> fixes. >> * Security vulnerabilities with CVSS 3.0 score >= 7.0 (High) should trigger >> a maintenance release. >> * Fixes for defects of any nature may be backported if it reaches >> established thresholds (TBD) for severity, widespread impact, workaround >> accessibility and risk. Such fixes will be incorporated into the release >> maintenance release, made available via source, but no release will be >> produced unless triggered by a subsequent security vulnerability fix. >> >> >> > > I think that we can maintain multiple major releases with >> > > not high release cost by implementing the followings: >> > > * Green nightly CI >> > > * Nightly CI for all maintained branches (maint-X.Y.Z) >> > > * We need to reduce the time taken to CI >> > > * ... >> > >> > I'm afraid "green nightly CI" is more of an ideal than a reality given >> > the breadth and complexity of our fleet of CI jobs. We still seem to >> > have stability problems in some areas (perhaps Acero?) but there are >> > also regularly regressions due to changes in third-party packages. >> > >> >> Would this still be true if executed against a maintenance release branch? >> I understand why this would drift for main/master, but if a version branch >> is green when first released, and only accepts limited, qualified >> backported fixes, it should be much easier to "keep" green, I'd think. >> >> Thanks, >> >> Todd >>