diff --git a/technical-docs/designs/documents/changesInCommands.png b/technical-docs/designs/documents/changesInCommands.png new file mode 100644 index 000000000..ca2b80298 Binary files /dev/null and b/technical-docs/designs/documents/changesInCommands.png differ diff --git a/technical-docs/designs/documents/changesInCommandsOverReleases.md b/technical-docs/designs/documents/changesInCommandsOverReleases.md new file mode 100644 index 000000000..ab8e4f1c2 --- /dev/null +++ b/technical-docs/designs/documents/changesInCommandsOverReleases.md @@ -0,0 +1,80 @@ +# Software Design Document + +Reference: Operational Document for command changes over releases
Authors: +Andre Briggs, Dennis Seah + +| Revision | Date | Author | Remarks | +| -------: | ------------ | ----------- | ---------------------------------- | +| 0.1 | Apr-05, 2020 | Dennis Seah | Initial Draft | +| 1.0 | Apr-07, 2020 | Dennis Seah | Bump revision up 1.0 after review. | + +## 1. Overview + +We have a set of document for each command at +https://catalystcode.github.io/spk/commands. Our users/customers can use this as +a reference for all commands supported in each release. They also need to know +the changes in between releases so that they adapt to these changes (if needed) +accordingly. They can eye-ball for the changes by comparing the document between +releases; and it is tedious. In this document, we discuss how to generate +document to show changes between releases. + +## 2. Out of Scope + +This design shall only target making user experience better by providing +information on changes in commands between releases based on the artifacts that +we generated for each releases. that's all the `data*.json` files in +https://github.com/CatalystCode/spk/tree/master/docs/commands + +## 3. Design Details + +### 3.1 Data set + +We have a `txt` file that contains all the release numbers and master branch. +https://github.com/CatalystCode/spk/blob/master/docs/commands/releases.txt. We +know the releases to compare by sorting them in descending order. e.g. + +``` +master +0.6.0 +0.5.8 +0.5.7 +0.5.6 +0.5.5 +``` + +That's comparing `master` with `0.6.0` release, `0.6.0` release with `0.5.8` +release, etc. + +### 3.2 Comparing releases + +We compare two json files for + +1. new commands - commands that are in the current and not in previous release. +1. dropped commands - commands that are in the previous and not in current + release. +1. changes in commands + 1. new options - options that are added in current release + 1. dropped options - options that are removed in current release + 1. changed options - options that are changed in current release. for this + design, we only consider change in option alias e.g. `-O --output` to + `-o --output`. + +### 3.3 Sample Screenshot + +

+ +

+ +## 4. Dependencies + +None + +## 5. Risks & Mitigation + +None + +## 6. Documentation + +None + +\- end -