Moving PMR to SCM backend
Best practices for svn/git CellML repository
Terms:
Repository – the root of everything
Project – the first level directory of the repository. It can be considered synonymous with workspace (for now anyway). Perhaps even a unit of work.
Model – Could be anything that exists within a project. Could be components themselves.
Best Practices: (?)
Repository can have a number of projects, they will be stored as subdirectories of the root of repository
Projects subdirectories should have standard directory types (trunk, branch, tag)
Projects will have models
Models must belong to a project
Models within a project is synonymous with source files within a software project
Models within a project can import (reference) any other file within the same project with relative paths.
Models requiring external components must import them with absolute path including revision number/identifier
To make a "release" of a project, the Models (or other files) to be released will be "tagged", or copy to a tag subdirectory of the project (or elsewhere?). All relative internal references should be consistent. All other references within the same repository but external to the project should have existed already.
A packaged release may require all dependencies be bundled together into a single file, with references updated to reflect that.
References external to the repository will need some more thought, as they cannot be guaranteed to exist.
No need for naming convention for projects. Let users choose sensible names (numbers and names of people who wrote the paper alone don't mean much)
However, publishing the model to the website may require some sort of naming format.
The website will list packages and the location each packages were derived from (which revision from which repository).