Open
Description
The plan as I understand it:
- Each document has one repository elsewhere in this organization.
- Each document has an associated stage/status. It is captured in Metanorma metadata (I assume).
- Each document is built on GHA. Upon successful build completion, the deliverables (including XML, vanilla Metanorma HTML, etc.) of the document are committed into a single intermediate repository (this repository!) containing all CC documents.
- A website is built from the intermediate repository that has HTML for all documents and all stages for each document, and an index allowing to navigate between documents and stages.
Requirements and associated notes:
-
This repository must preserve document artifacts for all stages. That is, not 1 entry per document, but one entry per document-stage combination.
Example publication process
- New document A is created and has stage DRAFT. After build, the intermediate repository has A-DRAFT.
- Document A is edited. After build, the intermediate repository has A-DRAFT overwritten with the edited version.
- Document A is edited and the stage was changed to REVIEW. After build, the intermediate repository still has A-DRAFT as before, and it is not overwritten. However, the intermediate repository now also has A-REVIEW.
-
There is additional metadata desirable about things like when the stage was transitioned.
-
This may or should be captured in Metanorma metadata (I assume).
- Checking with @ronaldtse — is it captured in Metanorma metadata? Or, does Metanorma support this information (in case we want to add it there automatically during build)?
-
This may be captured by treating the document dataset as a registry, where every document is an item.
Registry implementation details
- Register item class would define document identifier and its stage as item data, which combined would obtain a path to document stage artifact within repository/built site.
- Whenever a document is updated, the item must be clarified to reflect the new stage. This would ensure that there is revision history for each document. This can be done automatically.
- Other metadata such as document title, etc., can be part of the register, but note that it would cause duplication. All of this data is already contained in Metanorma metadata. Instead of this duplication, I believe it is better if build tools retrieve document metadata for a stage from Metanorma data.
Downsides to using 19135-1 registry for this purpose:
- The goal is not to manage document stages by hand. Rather, the opposite: the goal is to automate this away. Proposal procedure is not used. However, the register model presupposes the manual process of proposal review. For it to be a proper register a lot of data would have to be filled in by a script for no actual use, including: updating registry item YAML, adding a directory for the proposal, creating proposal YAML, and creating clarified item YAML.
- The timeline information about when document changed stages may be obtained from Git repository.
- In fact, Anafero/Firelight versioned builds integrate with Git: if given the necessary CLI flag it could, for example, build a version of the document for each tag. The links to document versions, as well as their last change timestamps, would be exposed in Firelight GUI, allowing the user to navigate. (Future features may include diffing/comparison document versions.)
- The information can be obtained from Git repository and made part of Metanorma metadata, which website generation flow (whether Firelight-based or initially not) can use in the index page HTML.
-
Metadata
Assignees
Labels
No labels
Activity