I have to agree with the conflict. The base rules are that -1 blocks code
change and -1 can not block a release. -1 has to be backed with a technical
justification.
Then it comes down to fighting about the definition of technical
justification. For example placing code to location X or Y, both have the
same justification for a -1.

Kafka has overwritten the rules. The maturity model page states every
Apache project has to use the Apache voting rules. Are they not Apache? :)
Apache Community Development - A Maturity Model for Apache Projects
<https://community.apache.org/apache-way/apache-project-maturity-model.html>

I feel that the proposal for proposal->voting wiki page could find
consensus so I will open that next week.
This will not only be for the current community. It will be useful for any
new comers.

FYI:
I have been suggested ( off list ) it might make sense to just escalate
this to find a resolution.
Several other sources also stated it is just us who are participating in
this :)

Toni

On Thu, Jan 30, 2025 at 2:29 PM Francisco Javier Tirado Sarti <
ftira...@redhat.com> wrote:

> Hi Toni,
> Regardless of what we consider a procedural issue (I agree with you that
> removing Springboot is not a procedural issue), I think there is a clear
> contradiction between what the document said and what the mentor told.
> -1 in code review is clearly a veto Also note that -1 for code review
> should only be used when there is a real issue with the change. So, as
> clearly stated, you should use -1 only for veto changes that cause an
> issue.
> For example, in my opinion.
> Good usage of -1 in code modifications, "this does not to be removed
> because can be fixed this way" or "this changes cause a performance issue
> and the real problem is that close is not getting invoked" or "we have a
> lot of users that rely on this functionality, so removing it will cause a
> lot of noise in the community" (in this later case, evidence of
> usage/interest should be attached or at least commitment to maintain/evolve
> that functionality)
> Bad usage of -1 in code modifications, "the word oracle  appears in a
> comment" or  "I have a bad feeling about this" or "there is a lot of users"
> (but those users are never identified)
>
>
> On Thu, Jan 30, 2025 at 12:25 PM Toni Rikkola <trikk...@redhat.com> wrote:
>
> > Code modification has lower priority in voting than removing Optaplanner,
> > since removing Optaplanner affects external API, brand, web sites, the
> Git
> > repository structure and removing a big part of the community ( the users
> > ).
> >
> > Code modification is every PR that has been created. So with -1 I can
> block
> > every PR that is not delivering a feature I want?
> >
> > Things to keep in mind. Our *mentor from Apache* already stated -1 only
> > blocks releases.
> > Re: [DISCUSSION] Getting things done-Apache Mail Archives
> > <https://lists.apache.org/thread/1vrtdv4jy3db8wj86bgd3w6ofd0w5zb8>
> >
> > Our own "rule of books" aka wiki points to KAFKA rules about this.
> > Our wiki: Communication within Apache - Apache KIE - Apache Software
> > Foundation
> > <
> >
> https://cwiki.apache.org/confluence/display/KIE/Communication+within+Apache
> > >
> > Kafka Bylaws: Bylaws - Apache Kafka - Apache Software Foundation
> > <
> https://cwiki.apache.org/confluence/display/KAFKA/Bylaws#Bylaws-Approvals
> > >
> >
> > Apache is pretty clear about how to solve practices that cause harm to
> open
> > source projects by denial. Not having documentation is something I think
> we
> > all can agree is causing harm to us.
> > AW: [DISCUSS] PMC Structure and Leadership for KIE-Apache Mail Archives
> > <https://lists.apache.org/thread/joy9ofdg287x27tzhf0rwgjgkks09t6j>
> > Right now I only see one proposal coming that can actually deliver
> anything
> > for documentation. There is nobody else to work on it. The community
> > absolutely needs it.
> >
> > I am also seeing the method I am writing here as the only solution to
> this.
> > I do appreciate the comments and additions by everyone and my mind on
> what
> > should be done has changed by them. I urge anyone to step up and give any
> > input. Let's keep discussing for some time, but at one point I will start
> > writing our own wiki page for this and hopefully we can agree on things.
> I
> > will make a proposal so everyone can comment and help. Then I will make a
> > vote.
> >
> > If we do not come to an agreement on our own, meaning there is a single
> -1
> > in the vote I will make (since that is a hard no based on some of the
> > community members ATM). Then there is no other option than escalate to
> > Apache and they will restructure everything in the way THEY want, not us,
> > to make everything flow. I really hope things do not come to that since
> it
> > will be our hardest failure as a community. We should build ourselves up.
> >
> > Now I am offering, not claiming ownership of the proposal. If anyone else
> > wants to work on that I am happy to help or just watch and comment.
> >
> > Toni
> >
> > On Thu, Jan 30, 2025 at 11:28 AM Gabriele Cardosi <
> > gabriele.card...@gmail.com> wrote:
> >
> > > HI Tony,
> > > following the Apache document [1] about voting, there are three types
> of
> > > votes, each of which have different implications.
> > > So, I have the impression that, without the proper context, discussing
> > just
> > > "-1" makes things harder to understand.
> > >
> > > From my POV, "Optaplanner" removal is mostly a general strategic
> > discussion
> > > topic, and I would put it under "procedural issues"
> > >
> > > If, on the other side, there is a proposal with an actual
> implementation
> > of
> > > some modification (i.e. some PR, code modification, etc) then it will
> > fall
> > > under "code modifications"
> > >
> > > Please correct me if my interpretation is wrong, especially with regard
> > to
> > > "procedural issues" meaning.
> > >
> > > Cheers :)
> > >
> > > [1] https://www.apache.org/foundation/voting.html
> > >
> > >
> > >
> > > Il giorno gio 30 gen 2025 alle ore 09:31 Toni Rikkola <
> > trikk...@redhat.com
> > > >
> > > ha scritto:
> > >
> > > > I will add another concerning case about the -1 vote. We do need to
> get
> > > the
> > > > functionality validated, but if it blocks a proposal, then we have to
> > > > understand what it means.
> > > >
> > > > SpringBoot was a good example and as Francisco said maybe there is
> one
> > > > person who wants to keep it and work on it. That is fine.
> > > >
> > > > However the -1, as the link provides states, there just needs to
> have a
> > > > justification brought up with no requirement for action.
> > > >
> > > > One big problem for us will be the Optaplanner codes. At the moment
> > there
> > > > is nobody working on that. It is a big part of KIE, with its own
> > website,
> > > > documentation and branding.
> > > > Small bug in it. For sure we will find someone to fix it. What about
> a
> > > > security issue that takes a week to fix?
> > > > We have a vote to ask if Optaplanner can be removed. It gets a -1, a
> > huge
> > > > part of the brand and the Optaplanner user community is left standing
> > > > on nothing. A valid reason.
> > > > We have a vote to ask if we can make a release. There is a security
> > issue
> > > > in our codes, it gets a -1. We can not release it because of a
> security
> > > > issue. A valid reason.
> > > > The community has painted itself in a corner.
> > > >
> > > > That is why we need to figure this out. We can leave things out like
> > the
> > > > documentation and things keep rolling, but what if we need to get
> > > something
> > > > out.
> > > > I say for these bits there needs to be a proof of contribution to the
> > > area
> > > > that is affected on to justify the -1.
> > > >
> > > > Toni
> > > >
> > > > On Wed, Jan 29, 2025 at 5:01 PM Toni Rikkola <trikk...@redhat.com>
> > > wrote:
> > > >
> > > > > Good comments from everyone.
> > > > > One thing I forgot to mention is. I am not looking for getting
> things
> > > > done
> > > > > as fast as possible by any means. I am hoping we find a forward
> > driving
> > > > > process to reach a decision that is backed up by the community as
> > > > > efficiently as possible.
> > > > >
> > > > > Few replies to each one of you.
> > > > >
> > > > > Enrique
> > > > >
> > > > >> In some cases like code changes. -1 is a veto. We cannot redefine
> > the
> > > > >> process. (That is what I understand from there)
> > > > >
> > > > >
> > > > > This is a problematic one. Our mentor mentioned in the "getting
> > things
> > > > > done" that this only applies to releases.
> > > > > The problem is opposite to making a proposal and delegating. It
> > blocks
> > > > > work without any intention to contribute to a solution.
> > > > > It sounds like we need to check this from people higher to us in
> the
> > > > > Apache foundation.
> > > > >
> > > > > Gabriele
> > > > >
> > > > >> And that's the root of the friction that we currently have, since
> > > > probably
> > > > >> not everyone has the same knowledge, understanding, or even time
> to
> > > > think
> > > > >> in a long term perspective.
> > > > >
> > > > >
> > > > > Also time and time is money. If a task does not profit the company
> > you
> > > > > work for and it takes over a week. Getting justification to work on
> > > that
> > > > > during company time is difficult. Same thing was happening in the
> > past.
> > > > It
> > > > > was not about the lack of skill to fix things, but the lack of
> > > > time=money.
> > > > > Work is limited by time, skill, money and motivation.
> > > > >
> > > > > Francisco
> > > > >
> > > > >> For example, in the documentation
> > > > >> discussion, to find a compromise it is as easy as not storing the
> > docs
> > > > in
> > > > >> tools repo and store them in a dedicated one. The resource problem
> > you
> > > > >> describe is absurd from a logical point of view, if the proposal
> > > exists,
> > > > >> it
> > > > >> is because there are resources to write the docs, which is the
> bulk
> > of
> > > > the
> > > > >> work.
> > > > >
> > > > >
> > > > > It is fine to ask for changes on the proposal. This is why it can
> be
> > > > > edited. Problem is the contributor can have limitations and that is
> > why
> > > > the
> > > > > change is not approved. If the one proposing is doing the work on
> his
> > > own
> > > > > time, it can be motivation. If that person is getting paid, it
> comes
> > > down
> > > > > to if the company they are funded by wants to pay for it as it is.
> > For
> > > > this
> > > > > reason I really hope we find a way to work for a common goal with
> > > > > compromises. As a community we can not force anyone, everything we
> > get
> > > > is a
> > > > > donation from some source.
> > > > >
> > > > > Toni
> > > > >
> > > > > On Wed, Jan 29, 2025 at 4:13 PM Francisco Javier Tirado Sarti <
> > > > > ftira...@redhat.com> wrote:
> > > > >
> > > > >> Hi Toni ,
> > > > >>
> > > > >> Just one annotation.
> > > > >>
> > > > >> "If you absolutely disagree, make a countering proposal. But know
> > that
> > > > you
> > > > >> have to find the resources for implementing it, better to try and
> > > > >> compromise with the original."
> > > > >>
> > > > >> As mentioned by Enrique, it depends on the problem statement. Also
> > you
> > > > >> might agree with the what to do, but not with the how.
> > > > >> So, I would differentiate between
> > > > >> - "I agree that we need to do something, but I would do it in a
> > > > different
> > > > >> way" In that case, the one that needs to find a compromise is the
> > > > proposal
> > > > >> author (not the other way around). For example, in the
> documentation
> > > > >> discussion, to find a compromise it is as easy as not storing the
> > docs
> > > > in
> > > > >> tools repo and store them in a dedicated one. The resource problem
> > you
> > > > >> describe is absurd from a logical point of view, if the proposal
> > > exists,
> > > > >> it
> > > > >> is because there are resources to write the docs, which is the
> bulk
> > of
> > > > the
> > > > >> work.
> > > > >> - "I think we do not need to do anything" In that case, it is
> > > impossible
> > > > >> to
> > > > >> find a compromise and probably we should vote as soon as possible.
> > And
> > > > the
> > > > >> vote should be: does the problem statement  really describe a
> > problem
> > > we
> > > > >> need to fix?.  Enrique mentioned the Sprinboot thing as an
> > > illustrative
> > > > >> example. I agree, but, who knows, maybe there is a majority that
> > wants
> > > > to
> > > > >> remove SpringBoot support, then, why not? Which kind of majority
> do
> > we
> > > > >> need
> > > > >> in those cases? In my opinion, a proposal for removing a
> > functionality
> > > > (I
> > > > >> remark the word functionality)  needs unanimity. If there is just
> > one
> > > > >> committer that wants to keep it, lets keep it. (Probably that
> > comitter
> > > > >> will
> > > > >> take charge of supporting that functionality himself) There might
> be
> > > > other
> > > > >> cases that heavily affect everyone's development work, for example
> > the
> > > > >> mono
> > > > >> repo thing, that might require unanimity also. I'm not so sure
> > > unanimity
> > > > >> should be required for stuff such as "Task refactoring", "Status
> on
> > > data
> > > > >> index", "Adding more queries to data-index", "Do some prototyping
> on
> > > > >> drools" (some of them, pretty curiously, were quickly rejected and
> > > then
> > > > >> nobody mention that the person blocking them was jeopardizing the
> > > > >> community
> > > > >> progress). Things that basically add new functionality which some
> > > > comitter
> > > > >> is willing to work with and is not going to affect others
> > productivity
> > > > or
> > > > >> the long term viability of the project.
> > > > >>
> > > > >>
> > > > >>
> > > > >>
> > > > >> On Wed, Jan 29, 2025 at 12:58 PM Gabriele Cardosi <
> > > > >> gabriele.card...@gmail.com> wrote:
> > > > >>
> > > > >> > Hi Tony,
> > > > >> > thanks for starting this, anyway there is a bit that maybe needs
> > > > >> > clarification, and interestingly Enrique raised the same points
> > > while
> > > > I
> > > > >> was
> > > > >> > writing this one.
> > > > >> > I reply almost exactly what he wrote, but in a different way.
> > > > >> > First, I'm also referring to Apache Voting Process here ->
> > > > >> > https://www.apache.org/foundation/voting.html
> > > > >> > that clearly defines three kinds of votes:
> > > > >> >
> > > > >> >    - procedural
> > > > >> >    - code modifications
> > > > >> >    - package
> > > > >> >
> > > > >> > And since decisions are made on top of votes that are expressed
> > > inside
> > > > >> mail
> > > > >> > threads, we need to clarify exactly how each kind of thread
> > > > (Discussion
> > > > >> vs
> > > > >> > Proposal) maps to the kind of vote.
> > > > >> > Then, it should be clear that code modifications are just the
> last
> > > > part,
> > > > >> > i.e. the implementation of a general idea/approach, that should
> be
> > > > first
> > > > >> > and foremost discussed previously.
> > > > >> > I invite anyone to read in first person what the
> > > > >> > https://www.apache.org/foundation/voting.html document states,
> to
> > > > have
> > > > >> a
> > > > >> > first-hand opinion of how the Apache Foundation means to be a
> > > > >> "democratic"
> > > > >> > approach to open-source.
> > > > >> > And this sentence seems interesting in that regard ->
> > > > >> >
> > > > >> > The community should spell out in its guidelines the tacit
> > > > implications
> > > > >> of
> > > > >> > > voting. However, *in no case* may someone's vote be considered
> > > > >> invalid if
> > > > >> > > it does not appear to meet the implied commitment: a vote is a
> > > > formal
> > > > >> > > expression of opinion, *not* of commitment.
> > > > >> > >
> > > > >> >
> > > > >> > WIth that in mind, I think that, as a general rule, any
> *proposal*
> > > > (i.e.
> > > > >> > actual code modification) that has a global impact should
> follow,
> > > i.e
> > > > >> > should be preceded by, a thorough *discussion*.
> > > > >> > And, as the document seems to imply (IIUC) if the overall idea
> is
> > > > >> rejected,
> > > > >> > then there is no obligation to commit to any other alternative.
> > > > >> > And the clear reason for that, IMO, is that we should avoid the
> > risk
> > > > >> that
> > > > >> > the code will be modified on a "per-availability" basis.
> > > > >> >
> > > > >> > Behind the scenes of those threads, it seems that someone
> believes
> > > > that
> > > > >> > making a lot of things, fast, means producing a lot of results
> in
> > > the
> > > > >> long
> > > > >> > term.
> > > > >> > Alas, while this could be true for a RnD setup, driven mostly by
> > > > >> innovation
> > > > >> > and alternative approaches, for enterprise-level code this is
> not
> > > so.
> > > > >> > What really matters, in day-by-day usage, is the time-to-release
> > of
> > > > new
> > > > >> > features or bug fixes: this real productivity.
> > > > >> > Any change that slows down it, directly or indirectly, it is a
> > > > problem,
> > > > >> not
> > > > >> > a solution.
> > > > >> > Funny enough, most of us are, and have been, extremely busy to
> fix
> > > or
> > > > >> > workaround problems that have been created by some previous,
> > > > >> unfortunate,
> > > > >> > choices, which have always been justified by some "immediate
> need"
> > > > >> that, at
> > > > >> > the end of the day, some time were not even really needed.
> > > > >> > Instead of providing real value, a lot of our work is burned by
> > > trying
> > > > >> to
> > > > >> > cope with the previous mistakes, which, for some reason, seems
> to
> > be
> > > > >> > undebatable as sculpted in the stone.
> > > > >> > And that's the root of the friction that we currently have,
> since
> > > > >> probably
> > > > >> > not everyone has the same knowledge, understanding, or even time
> > to
> > > > >> think
> > > > >> > in a long term perspective.
> > > > >> >
> > > > >> > Cheers :)
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >> > Il giorno mer 29 gen 2025 alle ore 12:10 Toni Rikkola <
> > > > >> trikk...@redhat.com
> > > > >> > >
> > > > >> > ha scritto:
> > > > >> >
> > > > >> > > Hello,
> > > > >> > >
> > > > >> > > We are still maturing as a community and the process on how to
> > > > decide
> > > > >> > > important things for the entire community needs to be cleared
> > up.
> > > > >> After
> > > > >> > my
> > > > >> > > previous email about getting things done several good ideas
> came
> > > up,
> > > > >> it
> > > > >> > > raised some good comments and questions both off and on list.
> To
> > > > clear
> > > > >> > > things up we need to be sure that we are on the same page to
> > bring
> > > > >> trust
> > > > >> > > into the community and remove doubt.
> > > > >> > >
> > > > >> > > There is also some overloading on the terms. While you can for
> > > > example
> > > > >> > > propose in any context. A proposal for the community, that can
> > be
> > > > >> acted
> > > > >> > on,
> > > > >> > > is an email thread with the [PROPOSAL] in the title.
> > > > >> > >
> > > > >> > > I took the process from other Apache communities. This is
> > > influenced
> > > > >> by
> > > > >> > how
> > > > >> > > I see things and I am not the boss here. We can customise it
> to
> > > our
> > > > >> > needs.
> > > > >> > > If I got something wrong I hope our mentor can correct us.
> > > > >> > >
> > > > >> > > *Each item is driven by an email thread in this list.*
> > > > >> > >
> > > > >> > > *[DISCUSSION]*
> > > > >> > >
> > > > >> > > Free speech, no commitment, any idea is welcomed.
> > > > >> > > Important to know is that no decisions can be made.
> > > > >> > >
> > > > >> > > *[PROPOSAL]*
> > > > >> > >
> > > > >> > > Mutable. Who starts the proposal leads it. Make a wiki page
> for
> > > the
> > > > >> > > proposal and link it in the start. People commenting can
> request
> > > > >> changes,
> > > > >> > > if approved the proposal wiki is edited to maintain the
> latest.
> > > > >> > > The person who started the proposal thread has to know how to
> > get
> > > > >> > resources
> > > > >> > > and what the limits of those resources are. For example
> > deadlines,
> > > > >> > > motivation, skill or time issues. Same as any task in any
> > company.
> > > > >> > Proposal
> > > > >> > > creators should not agree on anything they can not deliver.
> > > > >> > >
> > > > >> > > Porcelli made a pretty good template to use when making a
> > > proposal.
> > > > >> > > - Problem Statement: Clearly define the issue being addressed.
> > > > >> > > - Action Plan: Outline the steps to address the issue.
> > > > >> > > - Commitment: Specify who will take ownership of the action
> plan
> > > > and a
> > > > >> > > rough timeline for execution.
> > > > >> > >
> > > > >> > > If you absolutely disagree, make a countering proposal. But
> know
> > > > that
> > > > >> you
> > > > >> > > have to find the resources for implementing it, better to try
> > and
> > > > >> > > compromise with the original.
> > > > >> > > You can offer help.
> > > > >> > > No final decisions can be made, but +-1 can be used to signal
> > > voting
> > > > >> > > intentions. +-1 at this stage is not binding, you can vote
> > > > >> differently.
> > > > >> > >
> > > > >> > > *[VOTE]*
> > > > >> > >
> > > > >> > > Immutable. If there was a proposal, take a timed snapshot of
> it
> > > and
> > > > >> add
> > > > >> > it
> > > > >> > > into the thread.
> > > > >> > > Voting is done here, decisions are made here. If votes pass
> the
> > > > thread
> > > > >> > is a
> > > > >> > > signed contract that everyone agrees. -1 votes do not cancel
> the
> > > > vote
> > > > >> > > unless it is a vote for a release. When PR is done if it does
> > not
> > > > >> follow
> > > > >> > > this contract it can be challenged. Vote does not have to
> have a
> > > > >> proposal
> > > > >> > > in advance, but it can help to get the best result. No changes
> > can
> > > > be
> > > > >> > done
> > > > >> > > during a vote. You should not need to scroll down 10 emails to
> > see
> > > > >> what
> > > > >> > was
> > > > >> > > agreed on.
> > > > >> > >
> > > > >> > > *Things that can happen.*
> > > > >> > >
> > > > >> > > Example is the upcoming documentation proposal/vote,
> discussion
> > > was
> > > > >> > already
> > > > >> > > done. Vote does not pass. A countering proposal would pass
> > votes,
> > > > but
> > > > >> > there
> > > > >> > > is nobody to work on it. We end up with no documentation. The
> > > > >> community
> > > > >> > did
> > > > >> > > not agree on creating them with the resources at hand.
> > > > >> > >
> > > > >> > > A discussion item like the monorepo keeps coming back in
> > > > discussions.
> > > > >> > These
> > > > >> > > cycles reduce productivity. We make a vote if we want one or
> > not.
> > > No
> > > > >> > reason
> > > > >> > > to bring it up unless you feel like a revote changes the
> result.
> > > > >> > >
> > > > >> > > Jason mentioned that in the past this location was suggested
> as
> > > the
> > > > >> wiki
> > > > >> > > location.
> > > > >> > > https://cwiki.apache.org/confluence/display/KIE
> > > > >> > >
> > > > >> > > Hoping to move us forward.
> > > > >> > > Toni
> > > > >> > >
> > > > >> >
> > > > >>
> > > > >
> > > >
> > >
> >
>

Reply via email to