[llvm-dev] [RFC] Move py-mlir-release to new top-level repo in the LLVM org

Tom Stellard via llvm-dev llvm-dev at lists.llvm.org
Thu Jan 7 14:39:55 PST 2021


On 1/7/21 10:55 AM, Stella Laurenzo via llvm-dev wrote:
> Hi folks, I would like to propose that we create a new top-level repo in 
> the LLVM organization for organizing the Python MLIR Releases (both 
> daily and official numbered releases, whenever we are ready for such a 
> thing) and corresponding pushes to package repositories, etc.
> 

For those of use that are unfamiliar, can you explain what the "Python 
MLIR Releases" are?

> I have prototyped such a release process in a personal repo: 
> https://github.com/stellaraccident/mlir-py-release
> 
> Additional development on that release process is currently blocked on 
> more work on the shared library organization in LLVM (discussed here 
> https://lists.llvm.org/pipermail/llvm-dev/2021-January/147567.html and 
> being worked on independently) but it is useful as is and a reasonable 
> starting point for further work.
> 
> I would propose that we just fork my current repo into a new one in the 
> LLVM organization and then take the necessary steps to get 
> credentials/permissions/secrets set up in the new context.
> 
> Some answers to questions that may come up:
> 
>   * *Why should this be a repo separate from llvm-project? *These kind
>     of automation repos tend to have a lot of "garbage" commits that I
>     think is best if they do not pollute the main repo (and also don't
>     face contention on automatic jobs bumping things, etc). They also
>     tend to require special permissions and secrets that we will want to
>     more tightly control. They also make use of other GitHub features
>     that it seems like we would like not polluting the main development
>     flow ("Releases" tab, Actions, etc). Also, this is the kind of thing
>     that tends to get revised en-masse periodically, and again, it would
>     be good to not pollute the monorepo.

There really aren't many files in this repo, do you anticipate it 
growing significantly?

>   * *Why not land this in llvm-zorg? *llvm-zorg claims to be for "LLVM
>     Testing Infrastructure" and seems well scoped to that statement.
>     What I am managing above is periodic, automated release tooling
>     based on open-source CI systems (currently GitHub Actions), which
>     are fairly standardized across the Python releasing community, easy
>     to set up, etc.

llvm-zorg also handles generating the websites.  My personal opinion is 
that it would be OK to try to do this in llvm-zorg, but you're probably 
better off asking Galina about that.  I guess the downside of using 
llvm-zorg is you don't get the releases tab.

Why did you choose to write the checkout_repo.py script in python rather 
than using the GitHub checkout action, or writing your own custom action?

>   * *What ultimately will the code in this repo do?*
>       o Have periodic GitHub actions to select new LLVM revisions and
>         schedule daily/snapshot releases.

Do you have any idea of much of the GitHub actions resources this would 
use?  e.g. how many hours per week per Operating System?

>       o Have manual actions for triggering official, numbered releases.
>       o Facilities for building Python wheels for PyPi and house any
>         additional metadata/automation needed for anaconda.
>       o Builds releases for all supported operating systems (currently
>         Linux/CentOS7/manylinux2014, MacOS, and Windows) and supported
>         Python versions (currently 3.6, 3.7, 3.8, 3.9).
>       o Publish release artifacts on the Releases tab for daily/snapshot
>         releases.
>       o Provide a stable reference point for downstream projects that
>         extend MLIR-Python and need to produce version-matched artifacts
>         of their own.
>   * *Could this graduate to be more than "MLIR" python?* Maybe. I chose
>     the name because that is what I am focused on and didn't want to
>     grab too much land. But there is nothing stopping this from becoming
>     automation for general LLVM monorepo+incubator Python releasing.

I think it would be great to generalize this.  I would also like to 
automate parts the main LLVM release, and there seems to be some overlap 
with what you are doing.

-Tom

>   * *What if we don't do this?*
>       o *Option A:* We keep running this in a private repo with the
>         disclaimer that is currently at the top: "Note that this is a
>         prototype of a real MLIR release process being run by a member
>         of the community. These are not official releases of the LLVM
>         Foundation in any way, and they are likely only going to be
>         useful to people actually working on LLVM/MLIR until we get
>         things productionized." We would miss opportunities for
>         convergence with other projects and would cause things to fragment.
>       o *Option B: *We only publish Python bindings in official LLVM
>         release packages, and only for the Python version they are built
>         with. We don't release Python binaries through normal package
>         management channels.


> 
> Opinions?
> - Stella
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> 



More information about the llvm-dev mailing list