Using GitHub for W3C specifications (original) (raw)

A Recipe for writing W3C Standards on GitHub

Disclaimer

This Project Review is audio recorded

Goals

What is this NOT about?

XKCD 1597: illustration of Git

xkcd.com

W3C on GitHub

Why GitHub?

GitHub and the W3C Process

The use of GitHub doesn’t change the W3C Recommendation track:

Flowchart: Process for producing a W3C Recommendation First Public Working Draft - Exclusion Opportunity First WD WG Decision Director's approval Working Draft WD Publish a New Working Draft WG Decision: review needed, or No change for 6 months Advance to Candidate Recommendation Director's approval Candidate recommendation - Patent Policy Exclusion Opportunity CR Publish a revised CR Working Group Decision, Directors approval for substantive changes Advance to Proposed Recommendation Director's approval Return to Working Draft WG or Director decision e.g. for further review Proposed Recommendation - Advisory Committee Review PR Advance to Recommendation Advisory Committee Review Director's Decision Return to Working Draft AC Review, Director Decision e.g. for minor changes Return to Working Draft Advisory Committee review and Director's Decision, e.g. for further work and review W3C Recommendation REC Proposed change to a Recommendation Changes to text? No text changes: Edited Recommendation No Director'sapproval Yes Substantive changes? No substantive changes: Proposed Edited Recommendation No Director'sapproval Yes New Features? No new features - return to Candidate Recommendation No Director'sapproval Yes

Illustration courtersy of Charles McCathieNeville

One can use branches and labels for specification versioning.

GitHub and the W3C Patent Policy

GitHub and W3C mailing lists

GitHub: got questions?

How to GitHub

We’re building recipes and tools.

Depending on your editor(s), Group, your specification, and community, different settings/approach may be appropriate.

Feel free to adapt the recipe to your need.

Set up your GitHub account

Set up your GitHub repository

The repository manager will create a repository for you, as follows:

If you are already have commit history, see next slide

Using gh-pages?

Get your team contact to create the repository as follows:

One or several repositories?

Migrating from cvs or mercurial

Issue principles

  1. Issues are no different from mailing list comments
  2. Anyone should be welcome to raise an issue in your repository, so don’t be shy and advertize your repository and issues list in your document
  3. Anyone should be welcome to propose a resolution to address an issue, but your group is responsible to ensure that it gets resolved one way or another

Mastering issues

Learn to master your issues:

Closing issues

Horizontal issues?

Some issues are pertinent to other Groups. Should we use labels to help their wide review?

Pull Requests

  1. Pull requests are no different from mailing list contributions
  2. Avoid the “_editor bottleneck_”: Anyone is welcome to send a pull request to your repository so encourage especially all group participants to do so
  3. Master your pull requests like you master your issues (label, mentions, reference, individual support)
  4. Enable peer reviews so editors ought to use pull requests, like everyone else
  5. Don’t require a pull request to fix a simple typo and allow direct commits for those
  6. A substantive pull request should reference an issue, to facilitate managing issue tracking

Merging pull requests

XCKD 1296: As a Project Drags on, My Git commit messages get less and less informative

xkcd.com

Your GitHub team

Using Git branches

Automatic Publication workflow

Pull requests allow for edits to be reviewed before being merged, so:

Your editor’s draft is really a Working Draft now

Automatic Publication workflow

When to publish?

  1. On every single commit/merge in the editor’s draft
    • harder to track changes for outsiders
    • travis can be used for this automation
  2. On every significant commit/merge (recommended by the W3C Process)
    • harder to know when/remember to trigger the publication?
  3. On demand (dedicated separate branch?)
    • High risk for having an outdated /TR document

Make your Group decision to publish as you see fit but, please, don’t let 6 months elapse!

W3C Process

Additional tooling

Going forward

Improve the recipe: Share your tools, tips, and tricks

Extra slides

Things that might be useful as well

Git commands