R. S. Doiel, rsdoiel@caltech.edu
Caltech Library, Digital Library Development
2025-01-13
CMTools provides a means of generating and maintain various software artifacts based on the contents of your CodeMeta file.
Example: about Markdown page, CITATION.cff, version files
In the old days ….
The generated artifacts can be maintained with the same command that generated them.
The artifact are easy to keep up to date.
Go through each artifact and edit it
One command for each supported language:
cmt codemeta.json CITATION.cff about.md version.py
cmt codemeta.json CITATION.cff about.md version.go
cmt codemeta.json CITATION.cff about.md version.js
cmt codemeta.json CITATION.cff about.md version.js
One command versus hand editing!
cmt
currently manage?cmt
and Deno taskscmt
can manage cmt
Deno tasksCodeMeta file could be used to generate
CodeMeta .otherRequiredSoftware
attribute could be used
to check if your dev environment is setup correctly.
Many times it’s easy to forget to update your CodeMeta file until you’re trying to import it into the data repository. A better approach is to have the codemeta file actually be part of your build and release process. That way version information is consistent and specific. It can also be easily reflected in the documentation of your project’s website. Having/maintaining a project website becomes trivial for each new release.
The overhead of manually editing files or maintaining complex scripts to editor those files is problematic.
Just generating the files and refreshing the generated files is easier and simpler.
CMTools highly experimental. Build from source.
For macOS and Linux
curl -L https://caltechlibrary.github.io/CMTools/installer.sh | sh
For Windows (using Powershell)
Software lives longer than expected, long lived software requires maintenance
Thank you!