Skip to content
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

Move PyChaste Bindings into Chaste Trunk #46

Open
kwabenantim opened this issue Oct 12, 2023 · 2 comments
Open

Move PyChaste Bindings into Chaste Trunk #46

kwabenantim opened this issue Oct 12, 2023 · 2 comments
Assignees
Labels
enhancement New feature or request long term Non-urgent issue that needs solving eventually

Comments

@kwabenantim
Copy link
Member

kwabenantim commented Oct 12, 2023

Summary
It might be a good idea to consider moving the Python bindings into the main Chaste trunk as the bindings are tightly coupled to upstream Chaste source.

Advantages:

  • Easier to keep bindings in synch with develop branch and release versions.
  • Bindings tests can be added to the CI on PRs to check if bindings break when other parts of Chaste are updated.
  • Simpler to maintain a single documentation website.

Disadvantages:

  • All developers will need to learn some python and pybind11 as well to test changes to bindings?
@kwabenantim kwabenantim added the enhancement New feature or request label Oct 12, 2023
@kwabenantim kwabenantim added this to the BBR milestone 3.1 milestone Oct 12, 2023
@kwabenantim kwabenantim added the long term Non-urgent issue that needs solving eventually label Oct 12, 2023
@mirams mirams added the question Further information is requested label Oct 12, 2023
@kwabenantim kwabenantim changed the title Move PyChaste Bindings into Chaste Trunk Move PyChaste Bindings into Chaste Trunk? Oct 12, 2023
@kwabenantim kwabenantim changed the title Move PyChaste Bindings into Chaste Trunk? Move PyChaste Bindings into Chaste Trunk Nov 7, 2023
@kwabenantim
Copy link
Member Author

kwabenantim commented May 28, 2024

Discussion @ Sheffield Hackathon

Coverage Testing

Add tests to check if there are new classes in cell_based without wrappers

Test against comprehensive list of supported use cases (100% coverage shouldn't be required initially for wrappers).

Configuring

Pybind11
Do not add Pybind11 code into trunk

Preferences in order:

  1. Use scikit-build (link) to get pybind11
  2. Use cmake fetchcontent
  3. Do a pip install into the chaste_codegen Python env (rename env?)

Pull latest pybind11 stable version to keep up to date with latest Python and C++ version support.

cppwg
Do a pip install into the chaste_codegen Pyhton env

Conda packaging

Add Chaste developers to anaconda pychaste channel

Use GitHub actions for building conda packages

Build for Linux/MacOS amd64 and arm64 (Linux arm64 on self-hosted)

Docker

Merge into Chaste docker

Developer Documentation

  • Generating wrappers automatically
  • Explanation of contents of configuration file
  • Code inside wrappers
  • Additional code e.g. for custom PyChaste visualisation
  • Fixing common problems

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request long term Non-urgent issue that needs solving eventually
Projects
None yet
Development

No branches or pull requests

3 participants