-
Notifications
You must be signed in to change notification settings - Fork 170
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
PROPOSAL: Bootstrap governance and simplified MyST EP process #843
Conversation
Thanks @choldgraf this looks great, I'll have a proper look shortly 🙏 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks so much for getting this started @choldgraf! I'll hold off on approving for right now, pending some discussion about whether or not it makes sense to mention the CoC in this document. My other comments are minor.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great, and I think it is a good balance of pragmatism, the ability to evolve the process over time, and the rigour that we need now in some areas.
I do like that the MEP process is both light yet potentially quite rigorous, and is treated differently than the team process, which likely over the coming year may change substantially as the project evolves and has more of a community focus.
I am all for the current Steering Council and this reflects the reality of the grant funded project of today. I also trust that the PIs will evolve that processes effectively over time.
I have left a few minor comments and suggestions (eps
name, increasing time in one part, a clarification, and a suggestion that we hold off on giving IDs until things are accepted). All of these are minor, and shouldn't hold up agreement without me (I am pretty busy this next week!).
Thanks for everyone's efforts on this, and looking forward to getting some version of this more formalized. :)
docs/governance-strategy.md
Outdated
|
||
## Three sources of truth | ||
|
||
### `executablebooks/team-compass`: Team Policy |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I quite like this evolution, as it also gives us a chance to assess initial documentation that was created for a small team, and if those policies/processes are appropriate as the project evolves into a community effort.
Another point to consider/document is the license of the MEPs, in @chrisjsewell's draft (I think based on PEPs?) I quite liked:
I am not sure if that needs to be in each MEP, or is included in the license of the repository, but I think it is important to document/include in some respect. (CC-BY-4.0 could also be used potentially, and I am not sure if it would have too many differences/downsides in this context). |
So the team-compass sounds great, I'll leave that to you guys On the extension-proposal side, my main questions are:
What does it mean that the decision is made, and how does it relate to actual implementations? Most syntaxes are tied to reference implementations, e.g.:
Should there be a defined reference implementation for myst-spec, and should it be mystjs? Here this makes me think of the web spec and https://caniuse.com, in that perhaps its ok that implementers don't implement all syntax (particularly all directives/roles), but then there is a way for them to provide a concise "manifest" of what they do support. Perhaps this thought is a bit too technical for here: Additionally, let's say we are targetting output formats HTML, PDF and Word. |
Hey all thanks for comments - some quick responses here:
I'm happy with whatever license people think makes sense. My feeling is that we should use the most permissive license possible, with attribution. Let's decide this at the implementation stage?
How about for now we avoid formally categorizing each MEP, and leave that to the MEP authors to explain what the next steps would be in the "implications / migration" section of their document? If we feel that we are losing something important by not formally having multiple categories, we can add them in the future. My goal in this document is "the simplest possible system that might possibly function". How about we add a section like this to the documentation:
I think it means "the team has decided that the proposed change is a good idea, a pull request to the
Good question - I don't feel qualified to answer and feel like the Core Team should decide on what is the right "source of truth" for the specification. If people on the Core Team can quickly align on the right path forward, let's just go with that. If not, then let's start off by saying that
I'm not sure - but I think we should prefer under-designing rather than over-designing this process for now. Let's leave this question to a future iteration on the process once we have some experience and learn more where it is deficient? |
Yeh this is obviously the point I'm getting at, particularly from the view-point of myst-parser (or indeed stakeholders for any implementation):
I feel this situation could arise very quickly, and I'm very keen to have clarity here from the team from the outset |
Why not use something similar to your proposal above:
I'd hope the Core Team could raise and resolve most concerns about implementation feasibility at the design level before the MEP proposal is accepted. But if we miss something that is only uncovered later at implementation, the person could:
|
My thoughts are to under-specify this to start with, and either define it in the spec documents (supported by x-parsers) or specified in each parsers documentation (which might be easier). Right now myst-spec is very AST heavy, and not overly complete at specifying the actual markup syntax (there are examples, but not overly complete/comprehensive). I hope that will change/improve over the coming months, and I think this will put it on much more equal footing for myst-parser. As we have also developed out mystjs, the spec being defined at parse-stage only is also missing some obvious pieces that are necessary as transformations come into play (and could be optional type suggestions for the actual spec).
To @chrisjsewell your point, I think that folks on the core team can likely identify that there is uncertainty pretty early on, and that might put the MEP on hold while we gather more info/try an implementation/think through it etc. I do think this process has the most value when coupled to direct improvements in various parsers and end-user impacts. I am partial to the under-specify the process now, and improve the process if necessary when we come across those situations.
@choldgraf, +1 from me on adding more concrete examples to the process, I think this grounds things and sets some expectations!
Regarding these documents, I think it may be difficult to (1) define the scope of these -- leading to ambiguity on "when is it done" and "can it be merged?" and (2) we may want to remove/edit/revise/add design guidelines and vision over time, and having more agility/flexibility than the MEP process is advantageous. In my opinion those documents and ideas are important to contribute to and define now, and I think the best place is to refine them in the team-compass at this stage. I don't think that space is necessarily the home forever, and perhaps after we have the first few MEPs under our belts, as well as a draft in team compass, we will be more confident that some of these design guidelines can be increasingly formalized and we incorporate them in a MEP. |
This looks great - I'm also in favor of a relatively light process around MEPs for now. Especially thinking about the current state of |
Yep thanks @choldgraf @rowanc1, indeed I don't want to hold up the initial process merge here, it was principally to get a feel for how "blocking" should a lack of a particular implementation should be. |
I believe that I've addressed the comments above, and have also left a few comments and empty areas in-line with the markdown to show where we need to fill in information in future iterations. I split the document into three pages to make it easier to parse, but the content hasn't meaningfully changed beyond the suggestions people gave. I request approval from @jstac and @gregcaporaso, and once given I'll start creating a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have one suggested modification, but approve whether that change is made or not as we can also get it in during the next stage of governance formalization.
# Governance of Executable Books | ||
|
||
```{note} | ||
_All contributors_ to the Executable Books Project (including but not limited to individuals contributing code, providing technical support, teaching workshops, and engaging in discussions about changes to EBP policy or the MyST Specification) adhere to the [Code of Conduct](policy:coc). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
adhere to
-> are expected to adhere to
or implicitly agree to abide by
I think that's an important distinction as the former is a description of idealized behavior of the community, while the latter sets out our expectations for community members. (And apologies if I'm requesting a change to text I originally drafted! I'm reading on this subject now.)
OK I updated the text w/ the minor comments that remained. I see 2 approvals from the @executablebooks/steering-council (I just created that group by the way) so will merge in! |
Thanks @choldgraf for leading this effort, and thanks everyone for the input! |
This is a proposal for a bootstrap governance model for the executablebooks organization, as well as a simplified MyST Enhancement Proposals model. Its goal is to give us the basic building blocks of explicit governance and decision making while being as simple as possible, in the hopes that we increase the likelihood that we can follow these processes.
It defines two different sources of truth.
team-compass
. We make changes to this repository via issues and PRs.myst-spec/
. We approve changes to this spec via a process carried out inmyst-eps
. This takes strong inspiration from the MyST EPs proposal that @chrisjsewell put together in this HackMD and slims it down / restructures considerably in the hopes that it is more realistic for our (relatively) small team to follow.In addition, it defines two decision-making groups:
My goal for this PR is just to get us on the same page, and to give us the basic building blocks we can use to start defining formal policy, strategy, etc.
My plan is to:
team-compass/
repositorymyst-spec
andmyst-eps
to encode this process in those repositories as well.