Deliverables of the HTML Working Group
Pull request Compare This branch is 135 commits ahead of sneakyness:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
2dcontext/images
boilerplate
fonts
images
scripts
.gitignore
Makefile
README.md
cldr.inc
complete.html
entities-legacy.inc
entities-unicode.inc
entities.inc
index
source
unmergedFromWHATWG

README.md

html

Deliverables of the HTML Working Group


Build instructions:

python scripts/publish.py [html|2dcontext]

output is placed in output/[html|2dcontext]

Spec Editing Cheatsheet

Checking out the HTML spec

  1. the HTML spec is on GitHub https://github.com/w3c/html

  2. there are multiple branches - get master to build the spec

Pull the code from GitHub:

$ git clone git@github.com:w3c/html.git
$ cd html
$ git checkout -b whatwg origin/feature/whatwg
Check what branches you now have:
$ git branch

To continue editing at a later stage:

$ git checkout master
$ git pull --rebase
Then check out each branch and:
$ git rebase master

To commit and push code to GitHub:

$ git commit -a
$ git push

Configuring git

Installing the necessary software

  1. you need to have python installed

  2. install anolislib: https://github.com/sideshowbarker/html5forAuthors/tree/master/anolis/anolislib

Get anolislib from Mike’s github repo:

$ git clone git://github.com/sideshowbarker/html5forAuthors.git
$ mkdir ~/opt
$ easy_install -d ~/opt html5lib
$ easy_install -d ~/opt lxml

Build the HTML spec

$ cd html
$ git checkout master
$ export PYTHONPATH=~/opt:~/Sites/html5/html5forAuthors/anolis/
$ python scripts/publish.py html

Resulting page is in output/html/single-page.html Or the multipage version at output/html/spec.html

Cherry pick commits from the WHATWG spec

  1. the WHATWG spec is developed in SVN at the WHATWG
  2. there is a git clone of it on GitHub https://github.com/w3c/html/tree/feature/whatwg
  3. we cherry-pick commits from the WHATWG spec into the html spec

Checkout the WHATWG spec:

$ git checkout feature/whatwg

Find out commit differences to html branch:

$ git cherry master

Find a commit that you want to apply, get it’s SHA:

$ git log

Show the SHA commit e.g.:

$git show 56446c4536af1ec5b39bde03b402d0772625fd92

Checkout the html spec:

$ git checkout master

Cherry pick the commit selected from before:

$ git cherry-pick -x 56446c4536af1ec5b39bde03b402d0772625fd92

If you want to edit the commit:

$ git cherry-pick -x -e 56446c4536af1ec5b39bde03b402d0772625fd92

Show changes to GitHub:

$ git diff origin

If you want to abort a cherry-pick:

$ git cherry-pick --abort

If you need a merge strategy:

$ git cherry-pick --strategy=ours -x 56446c4536af1ec5b39bde03b402d0772625fd92

Only pick parts of the commit (no-commit, then add selectively):

$ git cherry-pick -n -x 56446c4536af1ec5b39bde03b402d0772625fd92
$ git add -i
   r = revert a file
   p = go through by hunk and re-patch
   (when “>>” hit ENTER to start)
   q = bye
To just commit the staged parts:
$ git commit
To reset the unselected hunks:
$ git checkout complete.html index source

Create a new feature branch:

[make sure your .gitconfig defaults push to upstream]

$ git checkout master
$ git checkout -b feature/blah
$ git push --set-upstream origin feature/blah

Merging a feature branch:

You should not use the GitHub pull request merge feature, but instead rebase locally and push (to avoid a messy merge and get a linear history):

$ git checkout feature/blah
$ git rebase master

Test everything still works, then push to GitHub:

$ git push -f

Then merge on master:

$ git checkout master
$ git merge feature/blah
$ git push

If you want to delete the branch, too, remove it both on local and GitHub (the issue with the pull request will continue to exist):

$ git branch -d feature/blah
$ git push origin :feature/blah