, 1 min read
Contributing to Hugo Static
Original post is here eklausmeier.goip.de/blog/2017/06-19-contributing-to-hugo-static.
The discussion forum for Hugo contains a description: Hugo development - how to contribute code. Also see Contributing to Hugo.
1. Preparation
First set GOPATH
as
export GOPATH=$HOME/tmp/H
then
cd $GOPATH
Fetch source with go get
time go get -u -v github.com/spf13/hugo
takes around 1-2 minutes as it has to download almost 200MB.
Now change to the Hugo source code and compile
cd src/github.com/spf13/hugo/
time make hugo
Compilation from scratch takes roughly 1-2 minutes. Recompiling a single file usually takes less than 10 seconds.
In the same directory, run test-cases with
time make check
which takes less than a minute.
All timings are on an AMD FX(tm)-8120 Eight-Core Processor clocked with 3.1 GHz running Linux 4.11.3, and using Go 1.8.3.
2. Fork in Github, git branch and pull-request
Fork https://github.com/spf13/hugo
by pressing the "Fork" icon:
Move original Git repository out of your way, clone the new fork, add or modify files as required, add, and commit them:
cd $GOPATH/src/github.com/spf13/
mv hugo hugo.original
time git clone git@github.com:eklausme/hugo.git
cd hugo
git branch YOURNAME
git checkout YOURNAME
go fmt
git add YOURFILE
git commit
A git clone
of hugo
alone takes less than 10 seconds. Watch out to run go fmt
before git add
.
Contributors are asked to provide single commits. In case you have multiple, then squash them into one, i.e., git rebase -i
and git push -f
.
Finally press the pull-request button in Github:
Be prepared to wait weeks or even months before your pull-request will be accepted or even rejected, so patience is required. In our case the proposed pull-request was ignored/rejected. So I consider the Hugo developers to be rather unwelcoming.