Push: Read and update the progress from the sync endpoint - #1389
Conversation
sejas
left a comment
There was a problem hiding this comment.
I tested it with the backend API PR and it worked great. Here is a short video displaying the progress in number.
applying-changes-progress.mp4
Let's not merge this PR until the backend PR is merged.
| | 'finished' | ||
| | 'failed' | ||
| | 'initial_backup_started' | ||
| | 'archive_import_started' |
There was a problem hiding this comment.
Yes, I added archive_import_finished to handle it here, but as @wojtekn asks here, we can keep the progress under 100 % during that status and the finished one. What do you think?
|
Is it okay that we display '100%' and 'Applying changes...' for a while? |
For the Pull process, we added one step |
Co-authored-by: Antonio Sejas <antonio.sejas@automattic.com>
…ibility Co-authored-by: Fredrik Rombach Ekelund <fredrik@f26d.dev>
Co-authored-by: Fredrik Rombach Ekelund <fredrik@f26d.dev>
There was a problem hiding this comment.
@epeicher , great work!! 🙌
Thanks for iterating on this, I tested it with the endpoint and it works great.
I would like to divide the Applying changes… step by adding two more messages?
- I would like to add a state saying
Keeping your site safe…wheninitial_backup_started. - Let's add a final message when
archive_import_finishedsaying something like:Last touches…and return progress of 99.
The last state will fix the problem mentioned by Wojtek where the bar is kept in 100% for a few seconds.
push-with-progress.mp4
|
Thanks @sejas for all your suggestions! I think I've applied most of them, and this is ready for another review. I like that we are leaving the code in a much better position. And I also love the additional steps that will provide more feedback to the user. |
|
@epeicher , should we update the base of this PR to point to trunk? |
There was a problem hiding this comment.
The new messages set better expectations for the user. Thanks for adding them!
Would be possible to add the messages inside the pushStatesProgressInfo object?
I was thinking maybe instead of having different variables like archiveInitialValue, we could use the object pushStatesProgressInfo.archiving.progress + STEP*X, pushStatesProgressInfo.importing.progress
Around the minute 1:30 , I see the progress goes backwards a bit.
studio-push-progress-more-messages.mp4
Sure, I thought about that but discarded initially because I didn't wanted to affect other areas and I interepreted them as substeps of the pushStatesProgressInfo object. But I totally see the reasoning of using that object as the source of truth of the states and avoiding the substeps approach. I will work on that.
I will iterate over this, maybe I will ping you to check before committing any changes.
I see it in the video, thanks for that. I will have a look at it. |
|
Sure! happy to pair or give early feedback. |
|
@sejas a quick question on naming 😅 , what do you think about naming the two new steps:
They will be added to Happy to update them to other suggestions |
|
They look great! I think applying changes is better than importing 👍. |
You read my mind! While changing the code I was just about to ask you about it 😄 . I think the approach of centralizing all the states in |
|
@sejas, I have applied your suggestions about the additional steps and the progress changes in aa2a0b3. I think is better than using the constants, we can apply the same approach to the I plan to add some tests that check at least that the ProgressBar appears when in progress, what do you think? Regarding the progress moving backwards, I have not been able to reproduce the exact issue, but one hypothesis could be that the backend reports a decreasing percentage, in that case, the progress would represent that. If you are able to reproduce that consistently, could you please check the Additionally, we can add a guard here that ensures that the progress only progresses forward but I would only add that if we confirm that the backend reports incorrect percentages. |
sejas
left a comment
There was a problem hiding this comment.
I tested it by pushing a Pressable site and the progress bar works great! No more doubts that the push is progressing and not stuck at all. Great work!
studio-push-progress-kiss-chef.mp4
| } else if ( response.success && response.status === 'archive_import_started' ) { | ||
| status = pushStatesProgressInfo.applyingChanges; | ||
| } else if ( response.success && response.status === 'archive_import_finished' ) { | ||
| status = pushStatesProgressInfo.finishing; |
|
For comparison, here is how the progress bar was before: push-progress-before.mp4 |
Co-authored-by: Antonio Sejas <antonio.sejas@automattic.com>
* Calls the GET /sync/import using the importId to obtain the progress * Use the progress from the /sync/import endpoint to update the progress in the importing state * Splits the progress of the importing state between backup and import
commit d31733b Author: katinthehatsite <katerynakodonenko@gmail.com> Date: Tue May 27 09:12:55 2025 +0200 Studio: Delete old proof-of-concept WP-CLI implementation (#1426) * Remove old scripts * Remove old cli.ts * Cleanup tests * Clean up terminal opening and feature flag * Cleanup assistant code * Clean shortcuts code * Cleanup feature flags * Cleanup feature flags * Cleanup shortcuts sessions * Removed unused feature flag for assistant * Assistant code block test fix * Adjust preload * Cleanup index file and tests * Refactor terminal usage * Add back the lock * Remove unintended change * Remove unnecesary type for warp * Use bundled Ids * Cleanup event parameter --------- Co-authored-by: Kateryna Kodonenko <kateryna@automattic.com> commit 4fac446 Author: Volodymyr Makukha <nei.css@gmail.com> Date: Mon May 26 20:19:35 2025 +0100 Update Ukrainian translations - May 26 (#1439) commit c7536ef Author: Antonio Sejas <antonio.sejas@automattic.com> Date: Mon May 26 18:34:28 2025 +0100 Load LTR and RTL stylesheets conditionally (#1429) * Add a new component * Load @wordpress/components css conditionally based on RTL and LTR. * Load index.css a.k.a main_window.css after loading the WordPress stylesheet commit c80b70e Author: Bero <berislav.grgicak@gmail.com> Date: Mon May 26 19:20:42 2025 +0200 Update Playground packages to 1.0.38 and remove the Symlink manager (#1425) * Update Playground packages to 1.0.38 * Remove SymlinkManager * Activate Playground's followSymlinks feature * Remove @php-wasm/universal patch commit 5bfe676 Author: Wojtek Naruniec <wojtek.naruniec@automattic.com> Date: Mon May 26 15:40:18 2025 +0200 Sanitize regex in Win editor path (#1411) * Sanitize regex * Import only escapeRegExp function commit 2cd3e44 Author: Ivan Ottinger <ivan.ottinger@automattic.com> Date: Mon May 26 13:18:02 2025 +0200 Bump version from 1.5.2-beta4 to 1.5.2 (#1436) commit f16865e Author: Ivan Ottinger <ivan.ottinger@automattic.com> Date: Mon May 26 12:38:24 2025 +0200 Add release notes for 1.5.2 (#1434) * Add release notes for 1.5.2 * Reorder release notes * Update release notes order and formatting * Added latest UI fix to the release notes * Consolidate Studio CLI fixes into a single bullet point commit f6e48d5 Author: Ivan Ottinger <ivan.ottinger@automattic.com> Date: Mon May 26 12:21:30 2025 +0200 Add translations for 1.5.2 (#1433) * Add translations for 1.5.2 * Add latest Polish and Spanish translations * Update spanish translations --------- Co-authored-by: Antonio Sejas <antonio@sejas.es> commit ae1d163 Author: Antonio Sejas <antonio.sejas@automattic.com> Date: Mon May 26 10:58:22 2025 +0100 Share same styles between preview and sync tabs (#1435) commit d6a7905 Author: Roberto Aranda <roberto.aranda@automattic.com> Date: Fri May 23 15:23:14 2025 +0200 Return original URL param when it cannot be parsed (#1420) * Return the passed URL parameter when it cannot be parsed instead of an empty string commit 91d04be Author: Antonio Sejas <antonio.sejas@automattic.com> Date: Fri May 23 14:22:34 2025 +0100 Update localized docs links for Studio Sync and Studio CLI (#1431) * Add translation link to new Spanish studio docs CLI * Add hash to Studio sync supported sites commit 6213094 Author: katinthehatsite <katerynakodonenko@gmail.com> Date: Fri May 23 14:27:53 2025 +0200 Add patch to fix the accessibility with modals (#1423) Co-authored-by: Kateryna Kodonenko <kateryna@automattic.com> commit b2724c0 Author: Rahul Gavande <rahul.gavande@automattic.com> Date: Fri May 23 14:45:11 2025 +0530 Use uri scheme to open Warp terminal app (#1428) commit 43c831b Author: Fredrik Rombach Ekelund <fredrik@f26d.dev> Date: Wed May 21 16:10:40 2025 +0200 CLI: Set UTF8 encoding for output on Windows (#1424) commit b1c0eeb Author: Volodymyr Makukha <nei.css@gmail.com> Date: Wed May 21 10:34:47 2025 +0100 Fix hiding plugins spinner (#1419) commit 48988ed Author: Fredrik Rombach Ekelund <fredrik@f26d.dev> Date: Wed May 21 10:31:33 2025 +0200 Add migration to rename launch uniques stat (#1415) * Add migration to rename launch uniques stat * Fix CLI zod schema commit f363144 Author: Ivan Ottinger <ivan.ottinger@automattic.com> Date: Tue May 20 18:24:00 2025 +0200 Bump version to 1.5.2-beta4 (#1421) commit 9768e67 Author: Ivan Ottinger <ivan.ottinger@automattic.com> Date: Tue May 20 15:29:33 2025 +0200 Pressable Sync: Fix remaining Sync modal issues (#1416) * Use absolute path for `WordPressLogoCircle` import * Use separate `isDisabled` to makde WP logo gray * Remove trailing space in site selector helper text * Decrease font size of sync sites modal learn more link commit 9fab398 Author: Ian G. Maia <iangmaia@users.noreply.github.com> Date: Tue May 20 13:15:23 2025 +0200 [Tooling] Update code to DRY the Windows build PS1 (#1408) * Update code to DRY the Windows build PS1 * Update case of `Exit` command * Use `windows` instead of just `win` to prefix windows-related scripts * Add $LastExitCode check after `npm run make` commit e5d4006 Author: Ivan Ottinger <ivan.ottinger@automattic.com> Date: Tue May 20 12:01:21 2025 +0200 Improve version comparison logic to handle prerelease transitions correctly (#1403) commit f0a282b Author: Rahul Gavande <rahul.gavande@automattic.com> Date: Tue May 20 15:15:25 2025 +0530 HTTPS: Convert domain name Unicode characters to ASCII characters (#1400) * Convert domain name unicode chars to ASCII * Do not use punnycode domain name for paths * Remove unncessary punnycode domain name commit 6cdc351 Author: Roberto Aranda <roberto.aranda@automattic.com> Date: Tue May 20 11:35:52 2025 +0200 Sync: Update notification to include Hostname (#1412) * Push: Update notification to include Hostname * Pull: Update notification to include hostname * Add hints for translators commit 69419a6 Author: Gergely Csécsey <gergely.csecsey@automattic.com> Date: Tue May 20 10:30:57 2025 +0100 Increase HTTP request timeout to 60 seconds (#1407) * Increase HTTP request timeout to 60 seconds * Increase curl timeout to 60 seconds * update comments commit 6bcbbff Author: Antonio Sejas <antonio.sejas@automattic.com> Date: Tue May 20 09:36:18 2025 +0100 Update connect site text button when connecting another site (#1413) * Adapt the "Connect Site" button when connecting multiple sites on Sync. commit 60a9cab Author: Antonio Sejas <antonio.sejas@automattic.com> Date: Tue May 20 09:10:37 2025 +0100 Avoid orphan in sync title (#1414) commit 3b103cc Author: Antonio Sejas <antonio.sejas@automattic.com> Date: Mon May 19 10:39:12 2025 +0100 Release 1.5.2-beta3 (#1410) commit a109671 Author: Ivan Ottinger <ivan.ottinger@automattic.com> Date: Mon May 19 09:45:17 2025 +0200 Sync: Update sync tab text and remove WordPress logo from title (#1405) * Update sync tab text and remove WordPress logo from title * Fix related test * Use comma * Update copy of the bullet points * Replace `WP.com` with `WordPress.com`. Co-authored-by: Antonio Sejas <antonio.sejas@automattic.com> * Replace WP.com with WordPress.com Co-authored-by: Antonio Sejas <antonio.sejas@automattic.com> * Delete unused WordPress short logo component --------- Co-authored-by: Antonio Sejas <antonio.sejas@automattic.com> commit 716bc7a Author: Ivan Ottinger <ivan.ottinger@automattic.com> Date: Fri May 16 16:15:16 2025 +0200 Sync: Update Sync modal content (#1406) * Update WordPress logo component `viewBox` * Update Sync modal heading * Update text below Sync search field * Update Sync modal site logos * Replace hardcoded arrows with `ArrowIcon` component in sync sites modal links * Localize sync modal Read more link using `getLocalizedLink` utility commit 11b4302 Author: Roberto Aranda <roberto.aranda@automattic.com> Date: Fri May 16 15:14:40 2025 +0200 Push: Read and update the progress from the sync endpoint (#1389) * Calls the GET /sync/import using the importId to obtain the progress * Use the progress from the /sync/import endpoint to update the progress in the importing state * Splits the progress of the importing state between backup and import commit 7423bdf Author: katinthehatsite <katerynakodonenko@gmail.com> Date: Fri May 16 11:40:18 2025 +0200 Studio: Fix no directory or file error on Windows (#1391) * Fix no directory or file error on Windows * Cleanup directories --------- Co-authored-by: Kateryna Kodonenko <kateryna@automattic.com> commit 1661ac4 Author: Antonio Sejas <antonio.sejas@automattic.com> Date: Fri May 16 10:04:32 2025 +0100 Force display of what's new for minor version (#1404) * Force what's new display for minor version * Skip test that compares the patch version


Related issues
Proposed Changes
/sync/importusing theimportIdto obtain the progress/sync/importendpoint to update the progress in theimportingstateimportingstate betweenbackupandimportbackupstep will take 10 steps (from 100) in the progress bar, from 60 to 70, and it will be increased by thebackup_progressreturned by the endpoint.importstep will take 30 steps in the progress bar, from 70 to 100, and it will be increased by theimport_progressreturned by the endpoint.This is a video with the numeric progress added for debugging purposes:
CleanShot.2025-05-15.at.16.44.57.mp4
Testing Instructions
npm startApplying changes…after some secondsRegression testing
Pre-merge Checklist