Jump to content

Content translation/Machine Translation/Apertium/Packaging

From mediawiki.org

Wikimedia apt repository contains Apertium packages, which are used in Apertium service for ContentTranslation.

Repository

[edit]
  • Gerrit: operations/debs/contenttranslation/PROJECTNAME

New package

[edit]

0. If packaging a new package, request to SRE team to create project under operations/debs/contenttranslation/PROJECTNAME.

1. Clone project:

git clone ssh://USERNAME@gerrit.wikimedia.org:29418/operations/debs/contenttranslation/PROJECTNAME.git

2. Import upstream source:

gbp import-orig --pristine-tar PATH/TO/UPSTREAM.orig.TARBALL

3. Once imported (and answering question by gbp import-orig), check if branches are OK.

git branch -a

4. Add git remote:

git remote add gerrit ssh://USERNAME@gerrit.wikimedia.org:29418/operations/debs/contenttranslation/PROJECTNAME.git

5. Push upstream and pristine-tar branches to Gerrit.

git push gerrit upstream

git push gerrit pristine-tar

6. Add debian/ folder you prepared.

git co -b Debian

cp -r /PATH/TO/debian .

We're not going into debian/ documentation right now!

7. Add debian/ to git repository.

git add debian/

8. Commit:

git commit --all

9. Now, push master branch except last commit (ie debian/ folder!)

git push gerrit HEAD~1:refs/heads/master

10. Push tags.

git push --tags

11. And, send debian/ for review to Gerrit.

git review

Jenkins CI for packages

[edit]

Once package repository is created, add entries in integration/config.git repository. Edit zuul/layout.yaml and add entries at appropriate line.

Puppet change

[edit]

To make sure package is available in production, edit modules/profile/manifests/apertium.pp and ask for review.

Troubleshooting

[edit]

1. Can't push upstream/pristine-tar or tags to Gerrit.

A. Make sure you've necessary permission for it in Gerrit.

2. Jenkins fails to build package.

A.

  1. Check if upstream and pristine-tar branches and tags are pushed.
  2. Check debian/changelog version scheme matches upstream tag.
  3. Check for any broken dependencies.