Also thanks for being responsive Elijah! One thing I've learned in ASF projects is that we do not optimise for "time-to-market". This is something that makes us very different from many commercial projects out there, and I personally think is a reason for Open-source success in general. Whether we release today or tomorrow or in a week, does not ultimately matter. In 3 months, we will not even remember if the software was released in November or already in December, It will not matter. But it will matter a lot if we do it as much as possible "right" today, so that next time we will do it even "better". My personal approach is "leave the world a bit better every single day, one day at a time". I think this is something we follow closely here in the ASF and in Airflow.
To be perfectly honest - every single time we make our release (like **every** , **single**, **f...g**, **time**) we find something in our release process, scripts, docs that needs to be improved.... And we do. You will find one or two PRs to improve things every time we make a release - you can see examples from just during the last few days, done by three different people from the Airflow community: [1], [2]. [3] This is despite our release processes running pretty regularly every two weeks over many years. But also this has another side - don't strive for 100% perfectionism and have everything **right**. Do as much as you can to make it better every time, but know where you call "quits" and (for example) create an issue to improve things next time and relentlessly actually resolve the issue next time. Done is better than perfect. So I think the most important virtue of a release manager is to decide when to call "quits" - and it does not matter how many signals you have from different people that it's not "ready" - it's ultimately the release manager's decision to release. [1] https://github.com/apache/airflow/pull/58818 [2]. https://github.com/apache/airflow/pull/58794 [3] https://github.com/apache/airflow/pull/58793 J. On Sat, Nov 29, 2025 at 11:21 PM Elijah ben Izzy < [email protected]> wrote: > @Jarek, awesome, thank you! > > Summary -- this result has failed, we're calling it. I will be sending out > a new set of files shortly to vote on! > > Thanks for the patience everyone. > > -Elijah > > On Sat, Nov 29, 2025 at 8:28 AM Jarek Potiuk <[email protected]> wrote: > > > This is fine. > > > > The "incubating" in the name is more on the source release (archives) > than > > binary artifacts. The problem with PyPI artifacts is that the name > > determines the PyPI package and that would be hell of a hassle to release > > with a different package name while incubating. > > > > With Airflow we have not done it for sure > > https://pypi.org/project/apache-airflow/1.9.0/#files -> that was one of > > the > > releases we've done (I mean the team back then - I was not around yet) - > > and we did not have "incubating" in the name. > > > > And I think it's clearly specified here > > https://incubator.apache.org/guides/distribution.html#pypi -> where the > > only. requirement (which I was going to check with the upcoming release > ;)) > > is that the DESCRIPTION of the project should contain (Incubating) - the > > name of the package is still supposed to be "apache-PROJECT". > > > > J, > > > > > > On Sat, Nov 29, 2025 at 2:35 AM Elijah ben Izzy < > > [email protected]> wrote: > > > > > @Jarek -- one question. Currently the files for the wheel don't start > > with > > > "incubating" as they match the package name `apache-burr`. Given that > > we're > > > not voting on this I think that's OK, but wanted to check in case I'm > > > missing anything here, I.E. there's a more strict requirement on all > > files. > > > > > > On Fri, Nov 28, 2025 at 5:15 PM Elijah ben Izzy < > > > [email protected]> wrote: > > > > > > > Sure -- folks feel free to keep posting feedback -- we identified > > another > > > > (surprising) issue as well. I'm setting up the build so I can do a > > > tomorrow > > > > morning proposal. > > > > > > > > On Fri, Nov 28, 2025 at 1:57 PM Stefan Krawczyk < > > > [email protected]> > > > > wrote: > > > > > > > >> let's wait for more feedback in case there are other issues to > > address? > > > >> > > > >> On Fri, Nov 28, 2025 at 12:47 PM Elijah ben Izzy < > > > >> [email protected]> wrote: > > > >> > > > >> > Ok let’s call this vote failed I’m going to do a second RC version > > > >> shortly > > > >> > after updating headings and specifying license files — hopefully > > ready > > > >> > tonight or tomorrow morning. > > > >> > > > > >> > Thanks for checking, > > > >> > - Elijah > > > >> > > > > >> > On Fri, Nov 28, 2025 at 11:16 AM Jarek Potiuk <[email protected]> > > > wrote: > > > >> > > > > >> > > I was going to take a look tomorrow (sorry for delays ... > > travels). > > > >> > > > > > >> > > Yep. You need to specify the licence files in pyproject.toml: > > > >> > > > > > >> > > license-files = ['LICENSE', 'NOTICE', 'DISCLAIMER'] > > > >> > > > > > >> > > On Fri, Nov 28, 2025 at 8:06 PM Stefan Krawczyk < > > > >> > [email protected] > > > >> > > > > > > >> > > wrote: > > > >> > > > > > >> > > > Update: in the convenience package the LICENSE is there (in > the > > > >> > metadata > > > >> > > > portion), but the DISCLAIMER and NOTICE are not. Is that > okay? I > > > >> assume > > > >> > > > not? @Jarek do you have any ideas why flit would exclude > these? > > > >> > > > > > > >> > > > On Fri, Nov 28, 2025 at 10:33 AM Stefan Krawczyk < > > > >> > > > [email protected]> > > > >> > > > wrote: > > > >> > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > [ ] +1 Release this package as Apache Burr 0.41.0-incubating > > > >> > > > > [ ] +0 No opinion > > > >> > > > > *[X] -1 Do not release this package because... * > > > >> > > > > > > > >> > > > > *Missing headers in source (excluding files that we cannot > > put a > > > >> > header > > > >> > > > > in):* > > > >> > > > > > > > >> > > > > grep -rL "Licensed to the Apache Software Foundation" . > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > > > > --exclude-dir={.git,.idea,node_modules,__pycache__,venv,target,build,py.typed} > > > >> > > > > 1. > > > >> burr/tracking/server/s3/deployment/terraform/.terraform.lock.hcl > > > >> > > > > 2. The examples in source don't have headers: > > > >> > > > > > > > >> > > > > ./examples/deep-researcher/requirements.txt > > > >> > > > > > > > >> > > > > ./examples/deep-researcher/notebook.ipynb > > > >> > > > > > > > >> > > > > ./examples/streaming-fastapi/notebook.ipynb > > > >> > > > > > > > >> > > > > ./examples/multi-modal-chatbot/requirements.txt > > > >> > > > > > > > >> > > > > ./examples/multi-modal-chatbot/notebook.ipynb > > > >> > > > > > > > >> > > > > ./examples/multi-modal-chatbot/burr_demo.ipynb > > > >> > > > > > > > >> > > > > ./examples/email-assistant/requirements.txt > > > >> > > > > > > > >> > > > > ./examples/email-assistant/notebook.ipynb > > > >> > > > > 3. .files in source > > > >> > > > > > > > >> > > > > ./.pre-commit-config.yaml > > > >> > > > > ./.style.yapf > > > >> > > > > > > > >> > > > > ./setup.cfg > > > >> > > > > 4. Telemetry Files > > > >> > > > > > > > >> > > > > ./telemetry/ui/.prettierignore > > > >> > > > > > > > >> > > > > ./telemetry/ui/public/robots.txt > > > >> > > > > > > > >> > > > > ./telemetry/ui/.eslintignore > > > >> > > > > > > > >> > > > > *Convenience package issues:* > > > >> > > > > *1. *missing NOTICE & LICENSE > > > >> > > > > 2. missing examples required for UI demos to function > > > >> > > > (ModuleNotFoundError: > > > >> > > > > No module named 'burr.examples') > > > >> > > > > > > > >> > > > > Checklist for reference: > > > >> > > > > [x] Download links are valid. > > > >> > > > > [x] Checksums and signatures. > > > >> > > > > [x] LICENSE/NOTICE files exist in source > > > >> > > > > [-] LICENSE/NOTICE files exist in convenience whl <---- > this > > is > > > >> > > missing > > > >> > > > > [x] No unexpected binary files in source > > > >> > > > > [x] No unexpected binary files in convenience whl > > > >> > > > > [-] All source files have ASF headers in source > > > >> > > > > [x] Can compile from source > > > >> > > > > [x] build script recreates convenience package that was > > uploaded > > > >> (see > > > >> > > > note > > > >> > > > > below on SHAs being different) > > > >> > > > > > > > >> > > > > What I did to validate the source: > > > >> > > > > > > > >> > > > > 1. Downloaded release and checked keys > > > >> > > > > 2. Created python virtual environment and did *`pip > install > > > -e > > > >> > > > > ".[start]" (need to update instructions)* > > > >> > > > > 3. Ran `burr` to start the UI and checked the demo data > > > >> > > > > 4. Because I have an OPENAI_API_KEY I was able to run the > > > email > > > >> > > > > assistant example from the UI and validate the UI works. > > > >> > > > > 5. Otherwise I went to the examples/hello-world-counter > > > >> > > > > < > > > >> > > > > > > >> > > > > > >> > > > > >> > > > > > > https://github.com/apache/burr/blob/main/examples/hello-world-counter/application.py > > > >> > > > > > > > >> > > > > to verify that vanilla Burr runs > > > >> > > > > 6. I compared the convenience whls created -- the file > > > contents > > > >> > are > > > >> > > > > identical (I pip installed *wheeldiff* and manually did > > > >> *diff)*, > > > >> > but > > > >> > > > > due to timestamps, the SHAs are different --* something > to > > > >> note in > > > >> > > the > > > >> > > > > notes* > > > >> > > > > 7. I created a new environment for the convenience > package > > > and > > > >> > > > > installed that via pip install "NAME.whl[start]" and then > > > found > > > >> > the > > > >> > > > server > > > >> > > > > did not start. > > > >> > > > > > > > >> > > > > > > > >> > > > > Cheers, > > > >> > > > > > > > >> > > > > Stefan > > > >> > > > > > > > >> > > > > On Tue, Nov 25, 2025 at 11:07 PM Elijah ben Izzy < > > > >> > > > > [email protected]> wrote: > > > >> > > > > > > > >> > > > >> Hi all! > > > >> > > > >> > > > >> > > > >> This is a call for a vote on releasing Apache Burr > > > >> 0.41.0-incubating > > > >> > > > >> Release Candidate 1. > > > >> > > > >> > > > >> > > > >> This release includes the following changes (see CHANGELOG > > for > > > >> > > details). > > > >> > > > >> See all commits since prior release: > > > >> > > > >> - > https://github.com/apache/burr/compare/burr-0.40.2...main > > > >> > > > >> > > > >> > > > >> Key changes include: > > > >> > > > >> - pool-based async PG persister > > > >> > > > >> - multiple UI updates > > > >> > > > >> - Apache compatible licenses/build processes > > > >> > > > >> - bug fixes, typing, etc... > > > >> > > > >> > > > >> > > > >> The artifacts for this release candidate can be found at: > > > >> > > > >> > > > >> > > > >> > > > >> > > > > > > >> > > > > > >> > > > > >> > > > > > > https://dist.apache.org/repos/dist/dev/incubator/burr/0.41.0-incubating-RC1 > > > >> > > > >> > > > >> > > > >> The Git tag to be voted upon is: v0.41.0 > > > >> > > > >> > > > >> > > > >> The release hash is > a95c7c3f1425db382b367b0d4f888704ea2939f9 > > > >> > > > >> > > > >> > > > >> Release artifacts are signed with the following key: > > > >> > > > >> BB8B72B34AB9A664A109AA17A76CF4C80E4E5355 > > > >> > > > >> The KEYS file is available at: > > > >> > > > >> https://downloads.apache.org/incubator/burr/KEYS > > > >> > > > >> > > > >> > > > >> Please download, verify, and test the release candidate. > For > > > >> testing > > > >> > > use > > > >> > > > >> your best judgement. The following may suffice: > > > >> > > > >> > > > >> > > > >> 1. Build/run the UI following the instructions in > > > >> scripts/README.md > > > >> > > > >> 2. Run the tests in tests/ > > > >> > > > >> 3. Import into a jupyter notebook and play around > > > >> > > > >> > > > >> > > > >> The vote will run for a minimum of 72 hours. > > > >> > > > >> > > > >> > > > >> > > > >> > > > >> On behalf of the Apache Burr PPMC, > > > >> > > > >> > > > >> > > > >> Elijah ben Izzy ([email protected]) > > > >> > > > >> > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > > > > > > > >
