, 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.