|
| 1 | +# Software Design Document |
| 2 | + |
| 3 | +Reference: Operational Document for command changes over releases<br> Authors: |
| 4 | +Andre Briggs, Dennis Seah |
| 5 | + |
| 6 | +| Revision | Date | Author | Remarks | |
| 7 | +| -------: | ------------ | ----------- | ---------------------------------- | |
| 8 | +| 0.1 | Apr-05, 2020 | Dennis Seah | Initial Draft | |
| 9 | +| 1.0 | Apr-07, 2020 | Dennis Seah | Bump revision up 1.0 after review. | |
| 10 | + |
| 11 | +## 1. Overview |
| 12 | + |
| 13 | +We have a set of document for each command at |
| 14 | +https://catalystcode.github.io/spk/commands. Our users/customers can use this as |
| 15 | +a reference for all commands supported in each release. They also need to know |
| 16 | +the changes in between releases so that they adapt to these changes (if needed) |
| 17 | +accordingly. They can eye-ball for the changes by comparing the document between |
| 18 | +releases; and it is tedious. In this document, we discuss how to generate |
| 19 | +document to show changes between releases. |
| 20 | + |
| 21 | +## 2. Out of Scope |
| 22 | + |
| 23 | +This design shall only target making user experience better by providing |
| 24 | +information on changes in commands between releases based on the artifacts that |
| 25 | +we generated for each releases. that's all the `data*.json` files in |
| 26 | +https://github.com/CatalystCode/spk/tree/master/docs/commands |
| 27 | + |
| 28 | +## 3. Design Details |
| 29 | + |
| 30 | +### 3.1 Data set |
| 31 | + |
| 32 | +We have a `txt` file that contains all the release numbers and master branch. |
| 33 | +https://github.com/CatalystCode/spk/blob/master/docs/commands/releases.txt. We |
| 34 | +know the releases to compare by sorting them in descending order. e.g. |
| 35 | + |
| 36 | +``` |
| 37 | +master |
| 38 | +0.6.0 |
| 39 | +0.5.8 |
| 40 | +0.5.7 |
| 41 | +0.5.6 |
| 42 | +0.5.5 |
| 43 | +``` |
| 44 | + |
| 45 | +That's comparing `master` with `0.6.0` release, `0.6.0` release with `0.5.8` |
| 46 | +release, etc. |
| 47 | + |
| 48 | +### 3.2 Comparing releases |
| 49 | + |
| 50 | +We compare two json files for |
| 51 | + |
| 52 | +1. new commands - commands that are in the current and not in previous release. |
| 53 | +1. dropped commands - commands that are in the previous and not in current |
| 54 | + release. |
| 55 | +1. changes in commands |
| 56 | + 1. new options - options that are added in current release |
| 57 | + 1. dropped options - options that are removed in current release |
| 58 | + 1. changed options - options that are changed in current release. for this |
| 59 | + design, we only consider change in option alias e.g. `-O --output` to |
| 60 | + `-o --output`. |
| 61 | + |
| 62 | +### 3.3 Sample Screenshot |
| 63 | + |
| 64 | +<p style="text-align:center"> |
| 65 | +<img src="changesInCommands.png" width="600px"> |
| 66 | +</p> |
| 67 | + |
| 68 | +## 4. Dependencies |
| 69 | + |
| 70 | +None |
| 71 | + |
| 72 | +## 5. Risks & Mitigation |
| 73 | + |
| 74 | +None |
| 75 | + |
| 76 | +## 6. Documentation |
| 77 | + |
| 78 | +None |
| 79 | + |
| 80 | +\- end - |
0 commit comments