Deliverables of the HTML Working Group
Build instructions:
python scripts/publish.py [html|2dcontext]
output is placed in output/[html|2dcontext]
Checking out the HTML spec
-
the HTML spec is on GitHub https://github.com/w3c/html
-
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
-
you need to have python installed
-
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
$ 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
- the WHATWG spec is developed in SVN at the WHATWG
- there is a git clone of it on GitHub https://github.com/w3c/html/tree/feature/whatwg
- we cherry-pick commits from the WHATWG spec into the html spec
Checkout the WHATWG spec:
$ git checkout 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
[make sure your .gitconfig defaults push to upstream]
$ git checkout master
$ git branch feature/blah
$ git checkout feature/blah
$ git push --set-upstream origin feature/blah
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