Merge pull request #1333 from kurtmckee/use-pre-commit
[git-cola.git] / garden.yaml
blobf63a7a9f6080aa0817c45afc2da52d08454ae8e5
1 # Use "cargo install garden-tools" to install garden https://gitlab.com/garden-rs/garden
3 # Usage:
5 #   # Development Workflows
6 #   garden develop              # Runs "pip install --editable ."
7 #   garden requirements         # Install runtime requirements
8 #   garden requirements/opt     # Install optional runtime requirements
9 #   garden requirements/dev     # Install developer requirements
10 #   garden test                 # Run the test suite
11 #   garden fmt                  # Format code using "brunette"
12 #   garden doc                  # Generate documentation: html + manual pages
13 #   garden html                 # Generate documentation: html only
14 #   garden man                  # Generate documentation: manual pages only
15 #   garden pot                  # Regenerate git-cola.pot with new translations
16 #   garden po                   # Update .po files with new translations from git-cola.pot
18 #   # Installation
19 #   garden install              # Install git-cola to the installation ${prefix}
20 #   garden install docs         # Install documentation
22 #   # Variables can be overridden using "-D name=value", eg:
23 #   garden -D DESTDIR=/tmp/stage -D prefix=/usr/local install
24 #   garden -D prefix=$PWD/dist install docs
26 #   # Related Projects
27 #   garden grow pages           # Clone the Git Cola homepage
28 #   garden grow fedora          # Clone the Fedora packaging
29 #   garden grow deb             # Clone the Debian packaging
30 ---
31 garden:
32   root: "${GARDEN_CONFIG_DIR}"
34 trees:
35   git-cola:
36     path: "${GARDEN_CONFIG_DIR}"
37     url: "git@gitlab.com:git-cola/git-cola.git"
38     commands:
39       develop: ${PIP} install --editable .
40       doc: garden -vv cmd docs html man
41       check: |
42         garden -vv test
43         garden -vv doc
44         garden -vv pylint
45       fmt: |
46         ${BRUNETTE} --version
47         ${GIT} ls-files -- '*.py' |
48         ${GREP} -v ^qtpy |
49         ${XARGS} ${BRUNETTE} --config=setup.cfg "$@"
50       html: garden -vv html docs
51       install: |
52         if test -n "${DESTDIR}"
53         then
54             pip_root="--root=${DESTDIR}"
55             export DESTDIR="${DESTDIR}"
56         fi
57         ${PIP} install --disable-pip-version-check $pip_root --prefix=${prefix} "$@" .
58       i18n: |
59         garden -vv pot
60         garden -vv po
61       po: |
62         for po in cola/i18n/*.po
63         do
64             ${MSGMERGE} \
65                 --no-wrap \
66                 --no-fuzzy-matching \
67                 --sort-output \
68                 --output-file $$po.new \
69                 $$po \
70                 cola/i18n/git-cola.pot
71             mv $$po.new $$po
72         done
73       pot: |
74         ${XGETTEXT} \
75             --language=Python \
76             --keyword=N_ \
77             --no-wrap \
78             --omit-header \
79             --sort-output \
80             --output-dir cola/i18n \
81             --output git-cola.pot \
82             cola/*.py \
83             cola/*/*.py
84       man: garden -vv man docs
85       pylint: |
86         ${PYLINT} --version
87         ${PYLINT} --rcfile=.pylintrc ${PYLINT_OPTIONS} "$@" cola test
88       requirements: ${PIP} install --requirement requirements/requirements.txt
89       requirements/maint: ${PIP} install --requirement requirements/requirements-maint.txt
90       requirements/opt: ${PIP} install --requirement requirements/requirements-optional.txt
91       requirements/dev: ${PIP} install --requirement requirements/requirements-dev.txt
92       test: ${PYTEST} ${PYTEST_OPTIONS} "$@" cola test
93     remotes:
94       BaumiCoder: "https://github.com/BaumiCoder/git-cola.git"
95       DasaniT: "https://github.com/DasaniT/git-cola.git"
96       Mailaender: "https://github.com/Mailaender/git-cola.git"
97       Mithil467: "https://github.com/Mithil467/git-cola.git"
98       NielBuys: "https://github.com/NielBuys/git-cola.git"
99       WNguyen14: "https://github.com/WNguyen14/git-cola.git"
100       abid1998: "https://github.com/abid1998/git-cola.git"
101       achernet: "https://github.com/achernet/git-cola.git"
102       axel-h: "https://github.com/axel-h/git-cola.git"
103       bearsh: "https://github.com/bearsh/git-cola.git"
104       bensmrs: "https://github.com/bensmrs/git-cola.git"
105       bobvanderlinden: "https://github.com/bobvanderlinden/git-cola.git"
106       brccabral: "https://github.com/brccabral/git-cola.git"
107       davvid: "git@github.com:davvid/git-cola.git"
108       dschwoerer: "https://github.com/dschwoerer/git-cola.git"
109       florisla: "https://github.com/florisla/git-cola.git"
110       fu7mu4: "https://github.com/fu7mu4/git-cola.git"
111       gdebure: "https://github.com/gdebure/git-cola.git"
112       github: "git@github.com:git-cola/git-cola.git"
113       guoyunhe: "https://github.com/guoyunhe/git-cola.git"
114       gyuris: "https://github.com/gyuris/git-cola.git"
115       haffmans: "https://github.com/haffmans/git-cola.git"
116       harmathy: "https://github.com/harmathy/git-cola.git"
117       hsoft: "https://github.com/hsoft/git-cola.git"
118       jamie-pate: "https://github.com/jamie-pate/git-cola.git"
119       kenyuy: "https://github.com/kenyuy/git-cola.git"
120       kisaragi-hiu: "https://github.com/kisaragi-hiu/git-cola.git"
121       kneirinck: "https://github.com/kneirinck/git-cola.git"
122       kurtmckee: "https://github.com/kurtmckee/git-cola.git"
123       laerreal: "https://github.com/laerreal/git-cola.git"
124       lah7: "https://github.com/lah7/git-cola.git"
125       living180: "https://github.com/living180/git-cola.git"
126       ljhcage: "https://github.com/ljhcage/git-cola.git"
127       malpas: "https://github.com/malpas/git-cola.git"
128       melkecelioglu: "https://github.com/melkecelioglu/git-cola.git"
129       milestone12: "https://github.com/milestone12/git-cola.git"
130       mmargoliono: "https://github.com/mmargoliono/git-cola"
131       mp-chet: "https://github.com/mp-chet/git-cola.git"
132       nakanoi: "https://github.com/nakanoi/git-cola.git"
133       nandalopes: "https://github.com/nandalopes/git-cola.git"
134       pilarmolinalopez: "https://github.com/pilarmolinalopez/git-cola.git"
135       quintusfelix: "https://github.com/quintusfelix/git-cola.git"
136       rafaelreuber: "https://github.com/rafaelreuber/git-cola.git"
137       scop: "https://github.com/scop/git-cola.git"
138       sergei-dyshel: "https://github.com/sergei-dyshel/git-cola.git"
139       skunkwerks: "https://github.com/skunkwerks/git-cola.git"
140       takluyver: "https://github.com/takluyver/git-cola.git"
141       thk123: "https://github.com/thk123/git-cola.git"
142       timgates42: "https://github.com/timgates42/git-cola.git"
143       vdragon: "https://github.com/Vdragon/git-cola.git"
144       victorhck: "https://github.com/victorhck/git-cola.git"
145       virtualstaticvoid: "https://github.com/virtualstaticvoid/git-cola.git"
146       wm4: "https://github.com/wm4/git-cola.git"
147       wojnilowicz: "https://github.com/wojnilowicz/git-cola.git"
148       yaellevy: "https://github.com/yaellevy/git-cola.git"
149   deb:
150     description: Debian packaging for Git Cola
151     url: "git@gitlab.com:git-cola/git-cola-debian.git"
152     remotes:
153       davvid: "git@github.com:davvid/git-cola-debian.git"
154   docs:
155     commands:
156       clean: rm -fr _build
157       doctest: ${SPHINXBUILD} -b doctest ${SPHINX_OPTIONS} _build/doctest
158       html: ${SPHINXBUILD} -b html ${SPHINX_OPTIONS} _build/html
159       man: ${SPHINXBUILD} -b man ${SPHINX_OPTIONS} _build/man
160       linkcheck: ${SPHINXBUILD} -b linkcheck ${SPHINX_OPTIONS} _build/linkcheck
161       install: |
162         ${MKDIR_P} ${DESTDIR}${docdir}
163         ${INSTALL} -m 644 *.html ${DESTDIR}${docdir}
164         ${INSTALL} -m 644 *.rst ${DESTDIR}${docdir}
165         # HTML documentation
166         ${MKDIR_P} ${DESTDIR}${htmldir}
167         ${RSYNC} ${RSYNC_OPTIONS} _build/html/ ${DESTDIR}${htmldir}/
168         # Manual pages
169         ${MKDIR_P} ${DESTDIR}${mandir}
170         ${INSTALL} -m 644 _build/man/git-cola.1 ${DESTDIR}${mandir}
171         ${INSTALL} -m 644 _build/man/git-dag.1 ${DESTDIR}${mandir}
172   fedora:
173     description: Fedora packaging for Git Cola
174     url: "https://src.fedoraproject.org/rpms/git-cola.git"
175     remotes:
176       git-cola: "git@gitlab.com:git-cola/git-cola-fedora.git"
177       davvid: "git@github.com:davvid/git-cola-fedora.git"
178   pages:
179     description: "Git Cola's homepage"
180     url: "git@gitlab.com:git-cola/git-cola.gitlab.io.git"
181     remotes:
182       github: "git@github.com:git-cola/git-cola.github.io.git"
183       ls-jad-elkik: "git://github.com/ls-jad-elkik/git-cola.github.io.git"
184       lz-coder: "https://github.com/lz-coder/git-cola.github.io.git"
185     links:
186       - "https://git-cola.gitlab.io"
187       - "https://git-cola.github.io"
189 # Variables can be overridden externally using "garden -D name=value ...".
190 variables:
191   # Traditional DESTDIR + prefix variables
192   DESTDIR: ""
193   prefix: ${GARDEN_CONFIG_DIR}/dist
194   docdir: ${prefix}/share/doc/git-cola
195   htmldir: ${docdir}/html
196   mandir: ${prefix}/share/man/man1
197   # External commands and options
198   BRUNETTE: brunette
199   GIT: git
200   GREP: grep
201   INSTALL: install
202   MKDIR_P: mkdir -p
203   MSGMERGE: msgmerge
204   PIP: pip
205   PYLINT: ${PYTHON} -B -m pylint
206   PYLINT_OPTIONS: $ ${PYLINT} --score=no --help >/dev/null 2>&1 && printf '%s' --score=no
207   PYTEST: ${PYTHON} -B -m pytest
208   PYTEST_OPTIONS: $ test "$(uname -s)" != "Linux" && printf '%s' --ignore=cola/inotify.py
209   PYTHON: python3
210   RSYNC: rsync
211   RSYNC_OPTIONS: "-r --delete --exclude=.buildinfo"
212   SPHINXBUILD: sphinx-build
213   SPHINX_OPTIONS: "-d _build/doctrees -a ."
214   XARGS: xargs
215   XGETTEXT: xgettext