GiellaLT provides an infrastructure for rule-based language technology aimed at minority and indigenous languages, and streamlines building anything from keyboards to speech technology. Read more about Why. See also How to get started and our Privacy document.
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:
.rej
file it contains the changes you need to merge by hand.orig
files you can diff them to see what the fuzz was aboutfind . -name '*.rej' -delete , -name '*.orig' -delete
;-)--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.