BTW. It will also be possible for anyone in the community to cherry-pick changes from main and make a PR (which also a committer will have to approve and merge). This is really no different that we have already done with cherry-picked commits to "v1-10-stable" and "v-2-3-stable" branches by non-committers. Random example here: https://github.com/apache/airflow/pull/14090
We do not give any privileges to the organisations. Quite the opposite - we make them responsible for preparing the PRs to be reviewed by committers. J. On Mon, Jun 20, 2022 at 9:07 PM Jarek Potiuk <ja...@potiuk.com> wrote: > > I think we should continue to be strictly vendor-neutral. No > organization should be able to gain special privileges or control a > project’s direction. > > This is strictly vendor-neutral - Kamil - we are going to release the same > changes that we are releasing already in main providers, just selectively > cherry-picked (and then reviewed and merged by committer to the branch in > airflow repo) - why do you think it is non-vendor neutral? > > On Mon, Jun 20, 2022 at 9:04 PM Jarek Potiuk <ja...@potiuk.com> wrote: > >> > We can keep these branches in forks managed by stakeholders teams, but >> I am afraid of the benefit that it will be then copied by us to our >> repository and then released by us. If the release was prepared by an >> external team, I think we should make it clear that it was prepared by >> another team, including by publishing on the Pypi account of the team that >> dealt with it. >> >> > Yes this is exactly what I proposed. >> >> Correction. I misread it. >> >> We are going to merge - only the cherry-picked changes that have been >> reviewed and merged by the committer. Same way as today. Just the process >> of cherry-picks is going to be done by the stakeholders, selecting the >> things to cherry-pick (all the changes to cherry-pick should be already >> merged in main). What we are going to do is to release subset of the >> changes we already approved (and released - because we are going to release >> those changes in the latest provider). So there will be no "new" changes in >> those forks - those will be just cherry-picked changes reviewed by the >> committer. There is no reason to mark it as "other" code - it will be the >> same changes that are going to be released anyway (just a subset of those). >> >> J. >> >> On Mon, Jun 20, 2022 at 9:00 PM Jarek Potiuk <ja...@potiuk.com> wrote: >> >>> > Cherry-picking to branch v2-2* or 1.10.* can only be done by the >>> committers, because only they have write permission to the apache/airflow >>> repository. As far as I know, Github does not allow us to grant write-only >>> permissions to the selected branch. >>> >>> Kamil - you misunderstood it. The branch will be in the FORK of those >>> users's choice - not in airflow repo. committer will merge that branch in >>> the same way we do as today - but with fast-forwarding rather than >>> squashing. >>> >>> > We can keep these branches in forks managed by stakeholders teams, but >>> I am afraid of the benefit that it will be then copied by us to our >>> repository and then released by us. If the release was prepared by an >>> external team, I think we should make it clear that it was prepared by >>> another team, including by publishing on the Pypi account of the team that >>> dealt with it. >>> >>> Yes this is exactly what I proposed. >>> >>> > I think that everything Apache PMC releases should be prepared and >>> created fully within the apache / airflow repositories. If stakeholders >>> team do not have such a possibility, we should figure out that these teams >>> become part of the community, and therefore work together with the entire >>> community, not in isolation. Only then will we be able to act in accordance >>> with the Apache Way <https://www.apache.org/theapacheway/>, in >>> particular each individual person will be able to contribute to the >>> community as an individual, and not as a company or stakeholders team >>> (Community of Peers) and no person will get special privileges just on the >>> basis of their employment status (Earned Authority) >>> >>> Very true. And exactly follows my proposal :) >>> >>> J. >>> >>> >>> On Mon, Jun 20, 2022 at 8:16 PM Kaxil Naik <kaxiln...@gmail.com> wrote: >>> >>>> +1 -- We have discussed this during the Airflow Summit in-person with >>>> Ash, Rafal (and his team), Jarek and I about this for a long time, and I >>>> think this is a good step forward. >>>> >>>> Regards, >>>> Kaxil >>>> >>>> On Mon, 20 Jun 2022 at 17:26, Kamil Breguła <dzaku...@gmail.com> wrote: >>>> >>>>> I think we should continue to be strictly vendor-neutral. No >>>>> organization should be able to gain special privileges or control a >>>>> project’s direction. >>>>> >>>>> pon., 20 cze 2022 o 18:14 Kamil Breguła <dzaku...@gmail.com> >>>>> napisał(a): >>>>> >>>>>> Cherry-picking to branch v2-2* or 1.10.* can only be done by the >>>>>> committers, because only they have write permission to the apache/airflow >>>>>> repository. As far as I know, Github does not allow us to grant >>>>>> write-only >>>>>> permissions to the selected branch. >>>>>> >>>>>> We can keep these branches in forks managed by stakeholders teams, >>>>>> but I am afraid of the benefit that it will be then copied by us to our >>>>>> repository and then released by us. If the release was prepared by an >>>>>> external team, I think we should make it clear that it was prepared by >>>>>> another team, including by publishing on the Pypi account of the team >>>>>> that >>>>>> dealt with it. >>>>>> >>>>>> I think that everything Apache PMC releases should be prepared and >>>>>> created fully within the apache / airflow repositories. If stakeholders >>>>>> team do not have such a possibility, we should figure out that these >>>>>> teams >>>>>> become part of the community, and therefore work together with the entire >>>>>> community, not in isolation. Only then will we be able to act in >>>>>> accordance >>>>>> with the Apache Way <https://www.apache.org/theapacheway/>, in >>>>>> particular each individual person will be able to contribute to the >>>>>> community as an individual, and not as a company or stakeholders team >>>>>> (Community of Peers) and no person will get special privileges just on >>>>>> the >>>>>> basis of their employment status (Earned Authority) >>>>>> >>>>>> >>>>>> >>>>>> pon., 20 cze 2022 o 15:54 Jarek Potiuk <ja...@potiuk.com> napisał(a): >>>>>> >>>>>>> > Will the people who maintain the providers' packages have the >>>>>>> commiter >>>>>>> >>>>>>> Nope - similarly as we do in v2-2* or what we did in 1.10.* >>>>>>> cherry-picking can be done in separate branches (and in this case in >>>>>>> forks). >>>>>>> Then the branch can be fast-forwarded by the committer in the >>>>>>> "airflow" repo. No problem with that. >>>>>>> >>>>>>> J. >>>>>>> >>>>>>> On Mon, Jun 20, 2022 at 2:53 PM Kamil Breguła <dzaku...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Will the people who maintain the providers' packages have the >>>>>>>> commiter >>>>>>>> status? I guess it is necessary for people to have write access to >>>>>>>> the >>>>>>>> repository and therefore to be able to make cherry-pick changes to >>>>>>>> the >>>>>>>> branch. >>>>>>>> >>>>>>>> pon., 20 cze 2022 o 09:13 Elad Kalif <elad...@apache.org> >>>>>>>> napisał(a): >>>>>>>> > >>>>>>>> > +1 >>>>>>>> > From my side the proposal handles all concerns I raised in >>>>>>>> previous threads. >>>>>>>> > I think mixed-governance is a step in the right direction. >>>>>>>> > >>>>>>>> > On Wed, Jun 15, 2022 at 1:12 AM Jarek Potiuk <ja...@potiuk.com> >>>>>>>> wrote: >>>>>>>> >> >>>>>>>> >> Hello everyone, >>>>>>>> >> >>>>>>>> >> This is a follow-up after a few discussions started about >>>>>>>> providers that were put on hold around the summit. I held a number of >>>>>>>> discussions during theSummit and after, and as result I think I have a >>>>>>>> proposal that can move forward some of the "stalled" decisions we need >>>>>>>> to >>>>>>>> make. >>>>>>>> >> >>>>>>>> >> TL;DR; >>>>>>>> >> >>>>>>>> >> My proposal is a "mixed-governance" model where "stakeholders" >>>>>>>> are more responsible for cherry-picking and testing their providers >>>>>>>> (including system testing) while Airflow PMC members will continue to >>>>>>>> be >>>>>>>> responsible for releasing them. >>>>>>>> >> >>>>>>>> >> Why do we need that? >>>>>>>> >> >>>>>>>> >> Google, Amazon and possibly others teams who are interested in >>>>>>>> maintaining more backwards compatible versions of their providers will >>>>>>>> commit to make PRs of the cherry-picks for older release branches of >>>>>>>> their >>>>>>>> providers. Those providers we release in parallel with the latest >>>>>>>> versions >>>>>>>> during the normal provider cycle. We can deprecate changes more >>>>>>>> aggressively in the "latest" release if we do that. >>>>>>>> >> >>>>>>>> >> Those cherry-picked PRs will be driven, tested and performed by >>>>>>>> the stakeholder teams (Google/Amazon, Databricks, others) and will only >>>>>>>> contain cherry-picks, while we - as PMC - will release them following >>>>>>>> the >>>>>>>> ASF rules (this is very important for the ASF to follow strict release >>>>>>>> policies regarding who and how performs releases). >>>>>>>> >> >>>>>>>> >> This also allows us to introduce similar rules for new >>>>>>>> provider's acceptance for new providers for "main releases". It also >>>>>>>> allows >>>>>>>> running the "system tests" for the provider under control of the >>>>>>>> stakeholder (after applying AIP-47 changes). >>>>>>>> >> >>>>>>>> >> Example 1: Google team can cherry-pick changes to a >>>>>>>> google-provider-6 branch and then we release a google 6.8.1 or 6.9.0 >>>>>>>> provider with some of the bug-fixes and features (together with - say >>>>>>>> latest 8.1.0). >>>>>>>> >> >>>>>>>> >> Example 2: DataLake provider from Databricks - can get accepted >>>>>>>> if Databricks commits to maintaining it. We will release the provider >>>>>>>> as >>>>>>>> long as Databricks maintains it. >>>>>>>> >> >>>>>>>> >> Longer context: >>>>>>>> >> >>>>>>>> >> I have - in my mind so far - a longer roadmap for providers that >>>>>>>> will lead them to be separated from the core and I want to write an AIP >>>>>>>> about that soon. This AIP will detail all the steps needed - I will >>>>>>>> work >>>>>>>> with multiple interested parties on it and it will take some time to >>>>>>>> agree >>>>>>>> and complete. But I want to start with something tangible that will >>>>>>>> solve >>>>>>>> quite a few problems that were raised recently and something that >>>>>>>> seems to >>>>>>>> be possible to be solved in the current provider release cycle (till >>>>>>>> the >>>>>>>> end of June) and test some of the governance approach. >>>>>>>> >> >>>>>>>> >> This proposal simply builds on our semver approach - we do not >>>>>>>> change it, we just start releasing some providers (those that have some >>>>>>>> backing from stakeholders) in more than one version - including >>>>>>>> "latest" >>>>>>>> and earlier, more backwards-compatible branches. Not all providers - >>>>>>>> just >>>>>>>> some. Not all branches - just those that the stakeholders will commit >>>>>>>> to >>>>>>>> maintain. >>>>>>>> >> >>>>>>>> >> We need such a commitment from stakeholders, because we - as >>>>>>>> the Airflow community and maintainers, want to only actively maintain >>>>>>>> the >>>>>>>> latest releases, where it is in the interest of the stakeholders to >>>>>>>> cherry-pick and test also earlier, more backwards compatible releases >>>>>>>> of >>>>>>>> their choice. >>>>>>>> >> >>>>>>>> >> What problems this proposal solves: >>>>>>>> >> >>>>>>>> >> * Problem 1: DEPRECATION REMOVAL >>>>>>>> >> >>>>>>>> >> we can remove deprecations faster in "main" versions of the >>>>>>>> providers - no need to introduce a deprecation policy - the >>>>>>>> stakeholders >>>>>>>> for the providers will take care about cherry-picking and maintaining >>>>>>>> more >>>>>>>> "backwards-compatible" versions. We are free to remove deprecations in >>>>>>>> major releases (in a cherry-pickable way of course). >>>>>>>> >> >>>>>>>> >> * Problem 2: PROVIDERS DIVERGENCE >>>>>>>> >> >>>>>>>> >> We avoid the problem (already happened with the composer >>>>>>>> release) that the stakeholders in a given provider had to release >>>>>>>> their own >>>>>>>> version which was not available in their community - with some >>>>>>>> cherry-picks. We want to avoid "diverging" there - by releasing the >>>>>>>> cherry-picked providers by the community, we also give other users an >>>>>>>> opportunity to follow "slower" deprecation policies for as long as it >>>>>>>> is >>>>>>>> maintained. >>>>>>>> >> >>>>>>>> >> * Problem 3: PROVIDERS GOVERNANCE MODEL >>>>>>>> >> >>>>>>>> >> We are going to test a governance model that we might apply when >>>>>>>> we split providers. We are talking about it for quite some time - but >>>>>>>> this >>>>>>>> is what helps us to test the model where stakeholders provide more >>>>>>>> "maintenance" while the community still takes care about releases. We >>>>>>>> (as >>>>>>>> community) can commit to releasing such a version of a provider as >>>>>>>> long as >>>>>>>> the stakeholder will actively maintain it. We can stop at any moment >>>>>>>> if we >>>>>>>> do not have support from the stakeholder. If it works - we can keep it >>>>>>>> as a >>>>>>>> long-term solution. In the future we can think of other scenarios >>>>>>>> (passing >>>>>>>> ownership of a provider to stakeholders who want it - providing we >>>>>>>> want it >>>>>>>> too) but we can decide about it when we learn from the mixed-governance >>>>>>>> model and see if it works. >>>>>>>> >> >>>>>>>> >> * Problem 4: ACCEPTING NEW PROVIDERS >>>>>>>> >> >>>>>>>> >> If this is an acceptable approach - we can also apply a very >>>>>>>> similar governance model to adding new providers and that should >>>>>>>> unblock >>>>>>>> some of the PRs that are waiting for our decision. Knowing that we are >>>>>>>> going to split and that we can expect "commitment" from a stakeholder, >>>>>>>> we >>>>>>>> should be able to accept new providers. This might be possible assuming >>>>>>>> that the stakeholder will make a similar commitment - but for new >>>>>>>> providers, that commitment might also have to cover reviewing and >>>>>>>> testing >>>>>>>> new changes. We might also decide as a community to stop releasing new >>>>>>>> providers there if such support is missing. This way we can set the >>>>>>>> expectations we have as a community for new providers - we will release >>>>>>>> them as long as the stakeholder will actively make sure it is >>>>>>>> maintained. >>>>>>>> >> >>>>>>>> >> * Problem 5. SPLITTING PROVIDERS FROM CORE >>>>>>>> >> >>>>>>>> >> We all know we want to split providers from core. By introducing >>>>>>>> mixed-governance we can test if it will work for the providers before >>>>>>>> we >>>>>>>> split them. It will take some time (and detailed AIP) to split, but in >>>>>>>> the >>>>>>>> meantime we can see if we will be able to apply the mixed-governance >>>>>>>> after >>>>>>>> the split. We will see if we can agree when it comes to expectations >>>>>>>> and >>>>>>>> find solutions before we actually split. >>>>>>>> >> >>>>>>>> >> J. >>>>>>>> >>>>>>>