Jacob and Jarek, thanks very much for the pointers! I'll read through and
see what else we might need help with.

On Fri, Mar 7, 2025 at 12:12 AM Jarek Potiuk <ja...@potiuk.com> wrote:

> Yep. Very much what Jacob wrote.
>
> If you need any concrete help and examples - I simply think looking at
> examples is one of the best ways to learn.
>
> You might simply look at our https://downloads.apache.org/airflow/ . Also
>
> https://airflow.apache.org/docs/apache-airflow/stable/installation/installing-from-sources.html#released-packages
> is the description of what kind of artifacts we publish there. Also - if it
> might help - here is a description on how we build and release airflow:
> https://github.com/apache/airflow/blob/main/dev/README_RELEASE_AIRFLOW.md
> ,
> and 90 providers of ours
>
> https://github.com/apache/airflow/blob/main/dev/README_RELEASE_PROVIDER_PACKAGES.md
> .
>
> As Jacob wrote - how you map your build and release process into what's
> really "required" by the ASF is up to you, whatever automation, tooling is
> convenient for your team.  And ASF requirements are basically about "source
> packages" https://www.apache.org/legal/release-policy.html#publication ,
> having them signed, verified and voted by at least 3 PMC members every time
> your release, there is a good deal (and see the recent discussions at
> members) about - by default - at least 72 HR voting process for those. This
> is the minimum that is required.
>
> I think we have a strong group of people here - including the tooling team
> proficient in Python and packaging that - if you have concrete questions
> and suggestions - will be able to share their experience and help you to
> work out the right ways - but ultimately it's up to you to decide what's
> best for you.
>
> From last years of working with Python, I would strongly recommend
> investing a bit into having a "truly modern" way of packaging. Many past
> ways describing how to do packaging and build your Python project, had been
> almost turned on its head over the last few years, adn "traditional" ways
> of doing things are now replaced by modern standards and tooling and they
> provide excellent developer's experience. There are many modern tools like
> `uv` (this is my personal recommendation), `poetry` , "hatch", "meson" (the
> latter especially popular for projects that need a lot of c extensions) are
> building on top of packaging standards
> https://peps.python.org/topic/packaging/ that Python Packaging team worked
> on for the last 5 or so years. And with `pyproject.toml`, describing your
> project metadata and build process as "build backend" (of your choice) and
> making your pyproject.toml following the standards and being usable by a
> variety of "build frontends" is the way to go. Once you follow those
> standards - attracting new contributors (who can choose the frontend of
> their choice) while having a standardized build process with backend of
> "maintainer choice" is the way to go - especially if you start your python
> project from scratch.
>
> And once you have that - and follow the standards - there are a variety of
> integrations (GitHub actions, Jenkins custom builds) and frontend/build
> tools that you can very easily plugin into your build process and automate
> release preparation and publishing.
>
> J.
>
> On Fri, Mar 7, 2025 at 1:27 AM Jacob Wujciak <assignu...@apache.org>
> wrote:
>
> > Hey Andrew,
> >
> > What exactly are you looking for? Guidance on how to build, release and
> > publish a python package with wheels?
> >
> > Currently the release policy only knows convenience binaries and the only
> > requirement is to build them from the tarball. They don't need to be
> voted
> > on.
> >
> > So the minimalist python release would be just a tar ball with building
> > and publishing of the wheels after the release. Some projects like
> Airflow
> > and Arrow for example goe a step further and make (some) binaries part of
> > the release voluntarily, signing them in the same way the tar ball is
> > signed.
> >
> > The actual build and the difficulty thereof depends on your package, if
> > it's pure python it's easy, if you native code I'd recommend
> > https://cibuildwheel.pypa.io/en/stable/ but you likely have things like
> > that setup for ci.
> >
> > That should cover everything a little bit :D
> >
> > Best Jacob
> >
> >
> > On 2025/03/06 23:03:32 Andrew Musselman wrote:
> > > Hi Builds, we're cutting a release of Mahout based on python instead of
> > > Scala; can someone point me to docs? I see this section on infra for GH
> > > actions (https://infra.apache.org/build-supported-services.html#gha)
> > but am
> > > still missing steps and things to do, like what artifacts need to be
> put
> > in
> > > the release, where does it need to go for voting and checksum
> > verification,
> > > what signing needs to happen, etc.
> > >
> > > Thanks in advance!
> > >
> > > Best
> > > Andrew
> > >
> >
>

Reply via email to