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

⏬ Add mechanism for downgrading MyST AST #1734

Draft
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

agoose77
Copy link
Contributor

@agoose77 agoose77 commented Jan 8, 2025

As outlined in #1724, as the MyST user-base grows, we are increasingly likely to find ourselves in a situation whereby we feel reluctant to make breaking changes to our AST due to the impact upon the wider ecosystem of published knowledge.

We already know of one breaking change (e.g. #1671), and it is not unlikely that there will be more in coming releases.

This PR introduces a mechanism for legacy mystmd applications to handle newer AST through a downgrade process. We would also need to use the same approach for myst-theme. Ideally, these will use the same downgrade bundles (with different build targets if needs be).

Closes #1724

Copy link

changeset-bot bot commented Jan 8, 2025

⚠️ No Changeset found

Latest commit: 35af04e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

})
) {
try {
const response = await fetch(`http://localhost:9000/${downgradeCachePath}`);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are your thoughts on just treating this as a normal npm package that we install in the _build directory and check for updates (in the same way we do for mystmd now)?

Then there would be a version check against npm for that package, an npm install (already doing that for the themes).

That would mean we don't have to host these, we have versions, publishing, deprecations, etc. AND other tools can use this in a normal way - it is just a package.

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.

Define a policy for XRef version incompatibility
2 participants