Skip to content

Modernise the build system#237

Merged
Joseph-Edwards merged 19 commits into
libsemigroups:v1from
Joseph-Edwards:update-build-system
May 13, 2025
Merged

Modernise the build system#237
Joseph-Edwards merged 19 commits into
libsemigroups:v1from
Joseph-Edwards:update-build-system

Conversation

@Joseph-Edwards

Copy link
Copy Markdown
Collaborator

This PR modernises the build system, and makes the package adhere some Python good practices. Specifically, this PR does the following:

  • Move as much project metadata out of setup.py into pyproject.toml as possible (see the Python Packaging Guide and PEP 518).
  • Move some of the tools used for building libsemigroups_pybind11 into their own module to prevent circular includes.
  • Refactor the code code that finds include directories and library directories.
  • Use setuptools-scm to use git information to define the version of the module (see setuptools-scm).
  • Consolidate and update the various environment.yml and requirements.txt files.
  • Move libsemigroups_pybind11/ into src/ (see src layout vs flat layout).
  • Update the list of authors and contributors.

@Joseph-Edwards

Copy link
Copy Markdown
Collaborator Author

@james-d-mitchell, this feels like a good point to specify authors and maintainers in the pyproject.toml. Presently, I've just moved them over from the old setup.py list, but we should probably update that. Are you happy for me to leave this decision to you?

Comment thread requirements.txt Outdated
@james-d-mitchell

Copy link
Copy Markdown
Member

I have some questions, which we can discuss next week, but this looks really good

@Joseph-Edwards

Copy link
Copy Markdown
Collaborator Author

This has now been rebased on top of the latest v1 changes. Other than updating the list of authors, which could be deferred to a different PR, I think this is good to go.

@james-d-mitchell james-d-mitchell left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good and happy to merge apart from the one (possible?) issue in the make-lint script.

Comment thread Makefile
Comment thread etc/make-lint.sh
Comment thread etc/make-lint.sh Outdated
Comment thread src/libsemigroups_pybind11/detail/cxx_wrapper.py
@Joseph-Edwards Joseph-Edwards merged commit a2e9383 into libsemigroups:v1 May 13, 2025
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants