GiellaLT provides an infrastructure for rule-based language technology aimed at minority and indigenous languages, and streamlines building anything from keyboards to speech technology.
This is a multistep process. Do as follows:
giellalt
directory: cd $GUTHOME/giellalt
gut clone -o giellalt -r '^lang-'
gut pull -o giellalt -r ^template-lang-und
rev_id
in .gut/template.toml
gut template apply -o giellalt -r ^lang- -t template-lang-und
gut status -v -o giellalt -r ^lang-
is useful here); when everything is ok, then go to next step--optional
to make gut
also consider files in the [optiona]
section in .gut/template.toml
when doing mergesrsync -av template-lang-und/path/to/newdir lang-zxx/path/to/
, pay attention to /
--abort
option, like this: gut template apply --abort -o giellalt -r ^lang- -t template-lang-und
gut commit -o giellalt -r ^lang- -m "[Template merge] Some commit message"
gut template apply --continue -o giellalt -r ^lang- -t template-lang-und
--skip-ci
if you want to skip CI when pushing all changes to GitHub (requires CI to react to the string [skip ci]
in the commit message, this is working for all lang-*
and keyboard-*
repos in the GiellaLT GitHub organisation)gut push -o giellalt -r template-lang-und
gut pull -o giellalt -r ^lang-
gut push -o giellalt -r ^lang-
.gut/delta.toml
file), and commits it.
This is necessary for the templating system to know which template
commit to calculate a delta from, for each language.It makes sense to run the stuff through -r ^lang-zxx
first for testing.
NB! Please note that the repos need to be clean when running this command. Unclean/dirty repos will not be processed. Dirty repos are repos with untracked files, uncommitted changes etc.
NB2! If you are adding new files in the ignored
section in .gut/template.toml
, you need to copy them manually - these files are not automatically added to all repositories. This can be considered a bug, but it is easily worked around by a command like the followoing:
for i in lang-*; do cp -f \
template-lang-und/tools/tts/pipespec.xml.in \
$i/tools/tts/; done
From time to time gut template apply
hangs on one or a few repositories. The exact cause of this is not yet known, but here is how to continue, and fix the situation:
gut template apply
on the remaining repos by using the --regex
option to target repos that do not hang
lang-fao
hangs, use a regex like -r '^lang-[g-z]
to target all repos after lang-fro
-r '^lang-f[i-z]
to target all repos with ISO codes starting on f
that comes after fao
.gut/delta.toml
with the new git hash and revision number, see one of the non-troubling repos for the correct valuesgut template apply --abort -o giellalt -r ^lang- -t template-lang-und
at the end to zero out whatever is hanging around from the non-successfull template merge(s)After this the troubling repositories should work as normal again.