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

[WIP]: Update contributing #1096

Closed
wants to merge 12 commits into from
69 changes: 69 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,76 @@ The PR templates include checklists for both the submitter and the reviewer, whi

## Submitting PRs continued

Marked is in an odd place right now. We're still a zero-major release, which, according to [semver](https://semver.org) means:

> Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered stable.

However, marked has also been around for several years and is still one of the most popular Markdown parsers we're aware of. Therefore, we can't ethically just change everything out from under our users before making things right.

### Release 0.x.x (no known issues)
Copy link
Member

Choose a reason for hiding this comment

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

I'm not sure that CONTRIBUTING is the place to talk about releases.
That could be in a wiki roadmap...see TS Roadmap

Additionally, the description of the milestone should actually live on the milestones


1. **JavaScript:** ES5 - unless or until a suitable transpiling option is discovered.
2. **Browsers we need to support:**
- IE8 (ca. 2009)
3. **Node versions we need to support:**
- 0.10
4. Fix compliance issues against supported specifications.
5. Possibly fix defects reported against user-requested features.

### Release 1.0 (promises covered, changes to come)

1. **JavaScript:** Same as 0.x.x.
2. **Browsers we need to support:** Same as 0.x.x.
3. **Node versions we need to support:** Same as 0.x.x.
4. Flag features for deprecation to alert users of what breaking changes to expect in 2.0.
5. Begin moving toward 2.0 architecture where possible.

### Release 2.0 (remove deprecated features and modernized)

1. **JavaScript:** ES6
2. **Browsers we need to support:**
- IE11 (possibly, depends on how many people still use it by then),
- Microsoft Edge, and the
- latest versions of Safari, Chrome, and Firefox.
3. **Node versions we need to support:**
- ??
4. Respond to contributors while maintaining tight reins on scope of marked. (Marked is maintained by volunteers, the more it does, the more code we have to maintain.)

## The marked architecture

### Release 0.x.x+

Entry point:

1. `marked()`:

Variables:

1. `var block`: Regex grammar for block-level HTML elements.
2. `var inline`: Regex grammar for inline-level HTML elements.
3. `var baseUrls`: ...
4. `var originIndependentUrl`: ...

Functions:

1. `escape()`: ...
2. `unescape()`: ...
3. `edit()`: ...
4. `resolveUrl()`: ...
5. `noop()`: ...
6. `merge():` ...

Objects:

1. `Lexer`: ...
2. `InlineLexer`: ...
3. `Renderer`: ...
4. `TextRenderer`: ...
5. `Parser`: ...

### Release 2.0+

Still under discussion.

## Scripts

Expand Down