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