Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Below is an overview of the MEP process. Each section below is a step that should be followed in order.

Step 1: Open an issue in myst-enhancement-proposals

This should describe the enhancement you’d like to make. The goal of the issue is to help others understand your idea and get informal alignment around it, and to decide if it is well-suited for the MEP process. MEPs should ideally have at least two, and ideally 3-4 co-authors from different organizations.

Step 2: Make a proposal via a PR to myst-enhancement-proposals

Use a markdown template to structure your proposal. The tag should initially be set to Draft. Here’s a proposed template:

---
label: <MEP000# - Add when this MEP becomes Active>
date: <yyyy/mm/dd - date MEP is active>
authors:
  - <github handle> # Add to `contributors.yml`
tags:
  - <Draft | Active | Accepted | Not Accepted>
data:
  discussion: <URL of canonical location for discussion>
---
# <title here>

## Context

<!-- provide context needed to understand this proposal. Describe the problem with MyST's current syntax or behavior. -->

## Proposal

<!-- describe your proposed change to syntax in concrete terms. Include a layperson's description of this change if relevant. -->

## Examples

<!-- provide examples of what this change would look like in the real world (e.g., raw MyST and rendered output). -->

## UX implications & migration

<!-- describe how this would improve the UX or functionality of MyST markdown. Describe any deprecations or syntax migration steps that would be needed. -->

## Questions or objections

<!-- as conversation takes place, list anything that is needed to be resolved and provide links to the conversation where this happened. -->

## References

<!-- reference other examples you're using for inspiration or to help others learn and understand the proposal. -->

Step 3: Discuss and iterate

Invite discussion from others in the community. Incorporate new ideas as individuals (particularly core team members) raise objections or make suggestions.

Step 4: Activate decision making

Once the proposal has stabilized and the author wishes to move forward, do the following:

Step 5: Update myst-spec

When a MEP has been accepted, open a Pull Request to apply the necessary changes to https://github.com/jupyter-book/myst-spec. Merging this PR implements the MEP, and makes it a formal part of the spec. Parsers may now implement this change as well. This MEP process is now finished.

Appendix: When should I open a MEP?

The goal of Enhancement Proposals are to align the team on major strategic decisions about MyST Markdown, and to formally record a decision. Consider whether the importance or complexity of the topic is worth the extra overhead of the MEP process. Ultimately, the most important thing is that we follow principles of open and inclusive discussion, iteration and collaborative writing, and making decisions explicit.

As a guide, below are examples of topics that warrant a MEP:

Appendix: When to ask for changes

When blocking any change or objecting to a proposal, provide a rationale for what must be changed and why you believe it is critically important. Do not disapprove because of differences in opinion. Only disapprove if you have a major strategic concern. See Strategies for integrating objections for what we are aiming for.