How to Contribute

From Music Notation Community Group

MNX and its associated resources are the major focus of the CG at the moment. This page provides a starting point for members who would like to contribute to the specification.

The MNX Repository

The MNX specification and its associated resources is maintained in a GitHub repository located at this URL: https://github.com/w3c/mnx/

At any given time, you can view the current working draft of the specification on the web here: https://w3c.github.io/mnx/specification/

All proposals and discussions relating to MNX take place in the various issues associated with this repository, not on email.

Resources on how to use the git version control system and GitHub may be found throughout the Web, but one useful source is GitHub's own series of guides. Here are two pertinent links:

Making a Contribution

Contributions follow the process outlined on the Review Process page. An issue must always be opened before proposing or making any change.

All changes to the spec should be committed to a private branch, either in a forked copy of the repository or on a branch in the main repository named "NNN-issue-description" where NNN is the issue number and issue-description is a short description of the issue. A pull request is then created to merge this branch to the main repo's "master" branch. When you open the pull request, associate it with an open issue by putting "Fixes #NNN" in the description of the pull request, where NNN is the issue number. The specification as it would be changed by any pull request can be viewed ahead of time with the "Preview" link on the pull request page.

Pull requests are automatically checked to make sure that they do not conflict with other changes on the master branch, and to ensure that there are no Bikeshed errors. The results of these checks are usually available a few minutes after adding any commit to the branch for the pull request.

When the pull request is approved, one of the chairs will merge it to the master branch.

Bikeshed

The MNX specification is written in a special W3C language called "Bikeshed" that combines features of HTML and Markdown. The Bikeshed markup system maintains the table of contents and index, and makes it very easy to define sections, terms, elements, attributes and style properties.

If you work on the specification, you will need to learn how to use Bikeshed. It lives in its own GitHub repository here: https://github.com/tabatkins/bikeshed