Details
-
Task
-
Resolution: Unresolved
-
P2: Important
-
None
-
None
-
None
Description
A mechanism for delay-staging changes is needed in order to spread out CI load. The tool should be a website-based interface.
Considerations:
- Change Ids can exist on more than one branch. The tool should ask the user to confirm which branch is needed if the changeId is ambiguous.
- Other forms of change identifiers should be accepted, such as Change Number, which is always unique.
- Staging may need to take into account relation chains. If changes are staged in the wrong order, they may not apply cleanly (since staging is performed by cherry-picking onto a temporary staging branch) and the stage command will be rejected.
- The simplest workaround for this would be to repeatedly iterate through all changes to be staged and retry failed items until everything applies cleanly, but fail if no more changes will stage at all. Basically brute-force staging.
- More complex, but the preferred method, would be to review the relation chains of all changes to be staged and calculate the ideal staging order. If done correctly, all changes should stage cleanly on the first try.
- The tool should store all state data in a database so that if the tool is interrupted or crashes, all scheduled stages will be preserved.
- The tool should be able to display the queue status by date/time, and allow for editing or removal of a queued stage. (A decision to stage might be reversed, and we can't have the bot performing unwanted operations)
Preferred language is NodeJS backend, React frontend. React allows for easier user interaction with dynamic pages that don't require refreshing.
Attachments
Issue Links
- mentioned in
-
Page Loading...