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

Initial template #1

Merged
merged 26 commits into from
Dec 12, 2023
Merged

Initial template #1

merged 26 commits into from
Dec 12, 2023

Conversation

joaander
Copy link
Member

The hoomd-component-template repository will provide the minimal code needed for developers to extend HOOMD-blue with components, including:

  • CMake code to install the component.
  • An empty C++ module.
  • A nearly empty Python module.
  • An example unit test.
  • Pre-commit configuration.
  • GitHub Actions configuration.
  • Documentation

I have structured the code so that developers can fork this repository and create a working HOOMD-blue module with all their effort focused on the specific Python and C++ extension code. I expect to provide future updates to the GitHub Actions configuration, CMake code, and pre-commit configuration. Component developers will be able to merge those changes from this repository. To the extent possible, I will avoid changes to the template Python module, C++ module, and unit test code - as forked repositories will likely overwrite these.

I considered adding Sphinx documentation, but decided against it. I would expect many components to be adequately documented in a README, and some developers may see writing Sphinx documentation as an unnecessary burden. I expect to develop officially supported components in the future, and will provide an example of how to add Sphinx documentation in those.

TODO messages throughout the code identify where developers need to make changes after forking.

@joaander joaander marked this pull request as ready for review November 30, 2023 17:35
@joaander
Copy link
Member Author

joaander commented Dec 5, 2023

See also: glotzerlab/hoomd-blue#1668

@joaander
Copy link
Member Author

joaander commented Dec 8, 2023

In the interests of minimizing the maintenance burden for components, I added a GitHub action that automatically creates releases on tags with an auto-generated change log (https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes).

To maintain many components, I imagine using a script to loop over them that automatically merges changes from upstream, bumps the version number, and creates a pull request. Each pull request needs to be manually reviewed, merged, and 1) a tag created if it passes or 2) modifications made to support the latest HOOMD-blue version before merging. Once the tag is created, the release, changelog, conda-forge (if created), readthedocs (if created) are all updated automatically.

edit: I verified that release.yaml operates correctly with both tags and pull requests in a test repository.

Copy link
Member

@b-butler b-butler left a comment

Choose a reason for hiding this comment

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

Code looks clean. A lot of attention to detail was paid.

@joaander joaander merged commit b4788a6 into trunk Dec 12, 2023
6 checks passed
@joaander joaander deleted the initial-setup branch December 12, 2023 13:59
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