Skip to content

Conversation

@ormsbee
Copy link
Contributor

@ormsbee ormsbee commented Jun 18, 2025

Attempt to reimplement #307 with the ideas from #317

@bradenmacdonald
Copy link
Contributor

@ormsbee How are you feeling about this PR?

@ormsbee
Copy link
Contributor Author

ormsbee commented Jul 29, 2025

I'd like to pick this back up this week, probably on Thurs or Friday, and get it to a mergeable state early next week.

@bradenmacdonald
Copy link
Contributor

@ormsbee Friendly ping on this since it's blocking our PR openedx/frontend-app-authoring#2186 . Let us know if we can help in any way.

Create the PublishSideEffect model as the publishing analog for
the DraftSideEffect model, and create these side effects for
parent containers when one of the children is published. This
allows us to efficiently query when any subtree of content was
affected by a publish.
@ormsbee ormsbee force-pushed the publish-side-effects-2-state-summary branch from e8cf989 to 3bbe4f7 Compare August 20, 2025 05:08
@ormsbee
Copy link
Contributor Author

ormsbee commented Aug 25, 2025

I've been hacking at this and I've decided to close this in favor of a new PR with a simpler approach. In particular, I realized that the original approach I had here of separating Draft and Publishing dependencies would deprive us of historical information that would be necessary if we ever wanted to do "rollback to this version" functionality. Instead, I've created a new branch that makes a single PublishableEntityVersionDependency model that is a through model for a M:M relationship, such that PublishableEntityVersion.dependencies returns a queryset of PublishableEntity.

This does increase our storage use because it captures dependency information at every version of a container. But I think that's acceptable, as it's smaller than the rest of the container version metadata. It also folds the implementations of the published and draft state calculation to be closer to each other.

I've already converted the dependency calculation and side-effect generation code. I still need to redo state calculation and "publish dependencies" functionality, and then I'll open the new PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Explicitly model publishing dependencies

2 participants