Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync changes from published unit #1634

Open
sdaitzman opened this issue Jan 28, 2025 · 3 comments
Open

Sync changes from published unit #1634

sdaitzman opened this issue Jan 28, 2025 · 3 comments

Comments

@sdaitzman
Copy link

sdaitzman commented Jan 28, 2025

Spec

  • Published unit changes cause units in course to receive the sync icon, just like components

In Scope

  • Sync changes to unit in library that have been published to local instance in course

Not in scope

  • Bulk sync (should be integrated with that story)
@sdaitzman
Copy link
Author

sdaitzman commented Jan 31, 2025

Sync operations that can be composed to write spec for this to result in intended behavior (via @kdmccormick at libraries delivery team sync):

  1. Parent level fields (e.g. unit settings)
  2. Child fields (e.g. component name and content)
  3. Add missing children (e.g. new components in unit in library, or deleted local component that still exists in unit in library)
  4. Remove stale children (e.g. local component that was added from same parent in library, but no longer exists there, or local component added locally)
    • (Not all extraneous ones; imported from other library or manually added intended override content should likely not be removed)
  5. Reset order of synced children (e.g. component order within unit)

Some operations like Remove extraneous children will require specific logic to support intended behavior depending on stale/different-library links. We'll need to plan ahead to ensure this logic and expected behavior can be extended for sections/subsections eventually.

@sdaitzman
Copy link
Author

Overrides to test against:

  • Add children to parent in course from same library as parent
  • Sync individual children in course, then sync parent

@jmakowski1123
Copy link

Minimal implementation

  • Teak will not support local edits made to library units that are reused in a course. This will be an enhancement added for Ulma
  • Library units in courses should be un-editable (grayed out?)
  • When changes to the unit are made in the library and published, units in a course can be updated using the same syncing workflow as components
  • Possibly out of scope for Teak - side-by-side comparison of changes if this is too complex

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In grooming
Development

No branches or pull requests

2 participants