Mirror Creation Progress Steps · Entire
Enhancements to Mirror Creation Experience
We will adjust the mirror creation experience slightly. Here’s how it looks:
17:24:00 $ ENTIRE_DEBUG=1 entire repo mirror create https://github.com/entirehq/entiredb aws-ap-southeast-2.entire.io
✓ Cloning entirehq/entiredb into aws-ap-southeast-2.entire.io
Mirror already exists (01KWBMKFNK201QN18BXW3MSHS4)
entire://aws-ap-southeast-2.entire.io/gh/entirehq/entiredb
Clone it:
git clone entire://aws-ap-southeast-2.entire.io/gh/entirehq/entiredb
What I aim for is to clearly separate the phases of CreateMirror — specifically, the placement phase (which should finish in less than 15 seconds) and the cloning phase (which involves polling for the mirror's status to confirm it's "ready").
Proposed Feedback
The first spinner should indicate "Placing mirror .. into ..", which will then change to a checkmark, followed by "Cloning ..." as before. Alternatively, if the mirror is already 'ready', we should directly show the clone instructions without polling.
Recent Updates
- The two-phase progress now differentiates between placement and cloning in the command:
- Added
onCreatedcallback tocreateAndAwaitMirrorfor postCreateMirrorsuccess acknowledgment. - The workflow shows
✓ Placing mirror owner/repo into cluster, followed by a separateCloning ...status during readiness polling. - Mirrors that are already ready will directly jump to clone instructions, bypassing the cloning spinner.
- Added
Flow Examples
- Fresh Creation:
✓ Placing...→Cloning...(spinning) →✓→ clone instructions - Already Ready:
✓ Placing...→ clone instructions (no cloning spinner) - Failed Creation: placement line removed, and errors are surfaced as before.
Considerations
- The wizard command (
repo mirror createwith no arguments) still works as intended; its multi-line progress is less impacted by the placement and clone separation. - Commands with
--no-waitor empty upstreams will skip the cloning spinner entirely.
Linting is clean, and all mirror tests have passed. Not committed yet as per the standard workflow.
Additional Tweaks
- Change the message from "Mirror already exists" to "Mirror exists".
- Introduce an additional newline before the "Mirror ..." message for clarity.
✓ Placing mirror entireio/cli into aws-ap-southeast-2.entire.io
✓ Cloning entireio/cli into aws-ap-southeast-2.entire.io
Mirror exists (01KWEE1WHJ5CRZFM497WNKJPCK)
entire://aws-ap-southeast-2.entire.io/gh/entireio/cli
Clone it:
git clone entire://aws-ap-southeast-2.entire.io/gh/entireio/cli
Next Steps
- Commit and push changes.
Commit Reference
- https://github.com/entireio/cli/pull/1587
- Committed, lint clean; pushed
elegant-marinating-widget. - Created PR against
entireio/climain repository.
Summary of Changes
- Split the mirror creation progress into distinct steps for placement and cloning.
- New messages to enhance user experience while working with mirrors.