-
Notifications
You must be signed in to change notification settings - Fork 4
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
Conversation
cb242ae
to
22d9117
Compare
Enable reuse of the HOOMD-blue cache when the component tests fail.
Ensure that the cache uploads.
See also: glotzerlab/hoomd-blue#1668 |
2156459
to
f825df1
Compare
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 |
There was a problem hiding this 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.
The
hoomd-component-template
repository will provide the minimal code needed for developers to extend HOOMD-blue with components, including: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.