Skip to content

Modernise the build system #237

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 19 commits into from
May 13, 2025

Conversation

Joseph-Edwards
Copy link
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
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?

@james-d-mitchell
Copy link
Member

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

@Joseph-Edwards
Copy link
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.

Copy link
Member

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

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.

@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