neos-ui icon indicating copy to clipboard operation
neos-ui copied to clipboard

FEATURE: Offer rebase option when publish/discard fails due to conflict

Open grebaldi opened this issue 1 year ago • 0 comments

If a user logs in and finds their workspace in OUTDATED or OUTDATED_CONFLICT state, they cannot publish any changes, before they have rebased their workspace.

image

It is possible however, that a user's workspace transitions into OUTDATED or OUTDATED_CONFLICT state in the background without the UI noticing that transition. The user is then able to use all options from the Publish Dropdown. If they attempt to publish their changes, they will receive an exception: Screenshot_2024-03-25_14-16-37 Publish Error

If such a case occurs, the UI should offer an option to rebase the workspace immediately and then re-attempt the publishing operation.

Here's what an integrated workflow could look like: Untitled-2024-03-26-1434 Integrated Rebase Workflow (https://excalidraw.com/#room=fe18ec088dcbdc396eed,KxgT9UbEp0yXJVtS3vjV5Q)

Open Questions

  • [ ] Coming from the Publish Dropdown, users are acting in the scope of either the current site or the current document. The "rebase" operation however is global to the current content repository. How do we communicate that?

Acceptance Criteria

  • [ ] When users click "Publish", "Publish All", "Discard" or "Discard All" while their workspace is in OUTDATED or OUTDATED_CONFLICT state, they are presented with a dialog that allows them to rebase their workspace immediately
  • [ ] When users click on "Synchronize now" in said dialog, the rebase workflow as established in https://github.com/neos/neos-ui/issues/3744 starts
  • [ ] Once the rebase workflow is finished successfully, the initial "Publish", "Publish All", "Discard" or "Discard All" operation is automatically re-attempted
  • [ ] There is an E2E test for at least one of the above scenarios
  • [ ] The UI refreshes ContentCanvas and DocumentTree after rebase

grebaldi avatar Mar 26 '24 13:03 grebaldi