-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Templates to Create (see comments for language-specific details)
- Template for R packages
- Template for Python packages
- Template for C++ packages
Things to Include in General (not exhaustive)
- README.md
- Code of Conduct
- Best Practices (some general like Semantic Versioning, some language-specific like package naming conventions for that langauge)
.gitignore- Consistent file structures (e.g.,
docs/,build/,src/, etc.) - GitHub Actions for building a website and running tests
- Github Action workflow (likely to trigger on creation of a new release, but maybe manually) to publish package to PyPI/CRAN/etc.
- The trigger for manually running a workflow is
on: workflow_dispatch
- The trigger for manually running a workflow is
On using Existing Templates/Templating Tools
There exist many templates and templating tools. These can be used directly or taken as inspiration. If we want to use one directly, instead of forking it, create a new project under EpiForeSITE so contributions are tracked properly and so we aren't constantly asked to merge with the original repo. See Detaching a fork.
One tool of particular note is Cookiecutter, which is primarily used for Python projects but also supports C projects. It takes a fill-in-the-blank approach to project creation, asking the user to fill in information like "Project Title" and so on. We could create our own cookiecutter (see comments below for examples) to help the researcher/developer set up their template.
Insight Net Support
These templates will likely be useful beyond just EpiForeSITE. As such, it may be worthwhile to get input from other developers in the Insight Net.