Hi Arnold,

Good questions/feedback, thank you. I want to leverage your insight here to improve the release process. I'll go into detail for posterity. I imagine given your tenure on the project some of this will be review.

Here's specifically what I've asked folks to do while voting on a rc (release candidate):

1. verify rc checksums and signatures
2. build Fineract from rc src artifact
3. run Fineract from the compiled rc bin artifact

This is detailed in our docs <https://fineract.apache.org/docs/1.13.0/#_artifact_verification>. It stems from ASF release approval policy <https://www.apache.org/legal/release-policy.html#release-approval>:

   /Before casting +1 binding votes, individuals are REQUIRED to
   download all signed source code packages onto their own hardware,
   verify that they meet all requirements of ASF policy on releases as
   described below, validate all cryptographic signatures, compile as
   provided, and test the result on their own platform./

We started formalizing all this about 7 months ago -- for 1.10.1rc <https://lists.apache.org/thread/cs5t0ho39ktg2jxr74dqd7fg9nyfcz3k> because I had the exact same question you did: What does /test/ mean in this context?

First can we agree that verifying rc checksums and signatures and building rc src artifact are all straightforward requirements?

If so, then we're back to the ambiguous: /test/. I read /test/ as: *Make sure the binary rc artifact works*, for you, as you understand it should. To be painfully explicit: Anticipate someone else will download and run the binary once/if it is promoted to a release and do yourself what they'll do, taking into account known issues. Not: Repeat what we do in CI. We're not expecting voters do any functional testing against the rc.

Hence, the new-ish "Tested: YES/NO/PARTIAL" section in rc vote emails. *It's my interpretation of what the ASF says its projects must do*. And I agree with James: "Tested" is not the right word here. "Verified" would be better. I'll change that.

But I want to change more.

*Overall I think our release process is inefficient and robust*. Especially when we all vote. It's one thing for a release manager to go through the steps and it's not hard once you get the hang of it, but I don't love the parts of the rc vote beyond everyone just sending their +1/-1. *I'm confident we can make it more efficient and just as robust*, still meeting ASF policy with less of, e.g., the manual rc verification we now do and just a more sensible release process overall. Maybe with some simple automation, but maybe not just that.

I want to have a meeting to gather ideas to streamline releases, because y'all know things I don't and policy affects us all.

I'm not looking forward to onboarding the next release manager. I don't want them to have to just repeat what I've done. I'd rather hand them something wonderfully improved and say "hey look how easy we made your job! just click RELEASE and you're good" or something like that. Heck, maybe we won't need a release manager at all if we judo this creatively. Plenty of projects ship robust releases far more often than we do.

Thoughts? Wanna meet up?

-Adam

On 10/20/25 12:16, Arnold Galovics wrote:
+1 from me too, but when people say "tested", do we know what kind of testing is supposed to happen? I feel like we just have this feeling of the package being tested, but in reality it cannot be considered actual functional verification (if that's what's supposed to happen).

In my mind, functional testing is part of the pipeline and every commit making into the develop branch has to pass all the tests, it's a quality gate. Therefore by logic, whatever commit we pick for releasing is passing the quality gates hence no need for manual testing. What am I missing?

( original "[FINERACT] [VOTE] 🗳 1.13.0 for release" thread <https://lists.apache.org/thread/bm9cynvrvvb1mvp7pc05v1zy5zo4h0hs> )

( original "release process improvement" thread <https://lists.apache.org/thread/f99mhvxg9l3wz17thmwonvgn6vyz05vq> )

Reply via email to