-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Description
We should create a page on the site that includes a catalog of research software that is used in plasma and fusion energy sciences.
Motivation
It is presently very difficult to find research software for plasma and fusion energy sciences. It would be really helpful to have a single site that people can go to in order to find out what software exists, how to access documentation for it, whether it's open source, and so on.
Implementation details
Here are my initial thoughts regarding the implementation, though we should continue to discuss this below. We should also create sub-issues as needed since we will probably need to do multiple pull requests to implement this.
- Project data should be stored in a standard format like YAML or TOML. Ideally, I'd like to find an appropriate metadata standard that we could use.
- The table should be dynamically generated from the data files.
- We should include software regardless of whether it is open source or not (or more specifically, whether it is available under an OSI-approved license).
- The site would probably need a taxonomy to describe the software. There could be high-level tags like simulation, data analysis, & visualization; with more fine-grained tags like particle-in-cell and gyrokinetic to provide more detail.
- There should be an easy way to list projects that have a certain tag. For example, a visitor might want to show or search for only projects that are open source.
- The site would need clear instructions on how someone could go about adding a project via a pull request.
Note
We'd eventually want to apply a validation tool to make sure that each entry meets the schema and includes all required fields (probably along the lines of name, description, url). This shouldn't be in the first pull request, but doing this sooner rather than later will ultimately make our lives easier.
An example implementation from the heliopythoniverse
We could get some inspiration from the Python in Heliophysics Community (PyHC) website, which has a page that includes a table of projects in the heliopythoniverse.
There are different fields informational fields such as:
- Name
- Description
- Code (link to Git{Hub,Lab} repo)
- Docs
- Project site
- Contact
It also has columns where projects do a self-evaluation and assess their status (good, partially met, requires improvement) around:
- Community
- Documentation
- Testing
- Software Maturity
- License
Information about the projects is stored in projects.yml
, projects_core.yml
, and projects_unevaluated.yml
.
The fields from the PyHC website are similar to what we need, but there are some differences. The PyHC projects are all based on Python, so there isn't as much of a need to list the language(s) of the project or provide a direct link to installation instructions (since nearly all can be installed with a command like pip install package-name
).
There has also been work done in the heliopythoniverse about creating a taxonomy, though I don't have a link handy at the moment.