Skip to content

WIP: Meson build#22468

Closed
stefanv wants to merge 2 commits intonumpy:mainfrom
stefanv:meson-build
Closed

WIP: Meson build#22468
stefanv wants to merge 2 commits intonumpy:mainfrom
stefanv:meson-build

Conversation

@stefanv
Copy link
Copy Markdown
Contributor

@stefanv stefanv commented Oct 21, 2022

/cc @mattip

@stefanv
Copy link
Copy Markdown
Contributor Author

stefanv commented Nov 4, 2022

We're instead going to be working on a centralized branch, so closing this in preference for https://github.com/numpy/numpy/tree/meson

@stefanv stefanv closed this Nov 4, 2022
@rgommers
Copy link
Copy Markdown
Member

rgommers commented Nov 4, 2022

Thanks for getting the ball rolling here with a PR Stefan! As we just chatted about, let's come up with an integration strategy. For everyone, to set some expectations, this is probably going to be a 3-6 month long project, with a bunch of moving parts. So it's too much for a single PR. Hence a long-lived feature branch named meson in the main repo seems like a good idea. That allows everyone to follow along and contribute, while avoiding churn in main.

In addition to the diff in this PR, I have a start here on all the configure checks for npymath (a little outdated after the recent cleanups): https://github.com/rgommers/numpy/tree/meson.

Here is a proposal for how to (a) work on build system changes, and (b) track, prioritize and divide up the work:

  • We use a meson branch in this repo
  • CI:
    • we ensure regular CI does not run on meson, by removing regular CI jobs from the meson branch in order to not trigger a lot of unnecessary CI runs
    • we start with one new Linux CI job in the meson branch, and deal with other platforms and configs once things have started working on Linux
  • Branch rules:
    • for simple changes where the author is fairly sure that the changes are correct, pushing directly to the meson branch is fine,
    • for more complex changes, let's work via PRs to ensure that we get at least cursory review early on
    • since it's a branch in the main repo, merging main into meson is preferred over rebases. @stefanv, @mattip and @rgommers will align in case the meson branch needs rebasing or other history rewriting, to ensure that we don't lose anyone's work.
    • we should avoid making code changes other than build/CI/docs in the meson branch; if we need fixes in NumPy itself, we should open separate PRs for those, get them merged quickly, and then merge main into meson
  • Once we are ready to merge initial Meson support into main, we will make a careful PR with granular commits and co-authorship for folks who contributed to the code in that commit.
  • For tracking the work, we will have:
    • One tracking issue (I can create it after the project board is done)
    • A project board with status per topic and assigned dev; @mattip made a start of that in Move build to Meson (view) and I'll add to that soon.
    • Documentation on how to test/use the build will live in the meson branch itself.
    • Writing a NEP may be useful at some point, but I'd like to postpone that.

@rgommers rgommers added the Meson Items related to the introduction of Meson as the new build system for NumPy label Nov 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

25 - WIP Meson Items related to the introduction of Meson as the new build system for NumPy

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants