forked from tractorcow/cow
-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Labels
Description
Problem
A key part of the release process is peer review of the release plan. This requires the peer reviewer to work through the plan module-by-module, confirming that the plan accurately reflects whether a new version is needed, and what type of release it should be (minor vs. patch).
The UI we have for visualising the plan is fairly readable for the purpose of creating the plan, but leaves a lot to be desired when reviewing it:
- The easiest way to accurately get this visualisation into an external document/wiki is to screenshot it, which makes the plan completely non-interactive.
- Even copy/pasting the text content, or spinning up a copy of the plan, doesn't provide any useful URLs for doubling checking the diffs, making this a manual operation. There are some external, hand-rolled scripts floating around to try and reduce this toil, but they're very adhoc / buggy and ideally this should be a core capability of Cow (or at least a robust, supported tool).
- CWP releases are based on
cwp-recipe-kitchen-sink, which results in giant plans that begin to exhaust the readability of the tree view. Ideally we would be able to collapse parts of the tree, or filter it.
Potential solutions
The functionality we want to expose to the reviewer is:
- The same tree view that is rendered in the CLI, without spinning up a release in Cow
- GitHub links to repos, version comparisons, releases, etc. for each dependency
- (Stretch-goal) Checklist functionality so the reviewer can easily keep track of their progress
- (Stretch-goal) Ability to collapse / filter the tree to isolate individual dependencies for review
- (Stretch-goal) Make it easy to share the plan
A few different approaches have been put forward:
- Option 1: Have Cow generate a static HTML / Markdown document alongside
.cow.pat.jsonwith a snapshot of the interactive tree - Option 2: Create a standalone web app that reads the contents of a
.cow.pat.jsonfile and outputs the interactive tree- This could either be a centrally hosted app that handles file uploads, or a local-first app that reads the file directly from disk and can be statically published when required
- Option 3: A native app using a cross-platform framework like Qt
Actions
- Decide which Option to pursue
- Implement PoC to get feedback and trial in next release
- Ship final product with documentation in Cow repository / Silverstripe release guides
Reactions are currently unavailable