Contribute¶
OpenSVC projects are tracked with the git source tracker. The documentation is also managed as a git tracked project. A GitWeb interface is available at https://git.opensvc.com.
Install git¶
apt-get install git
git config --global user.name "First Last Name"
git config --global user.email "first.lastname@domain.com"
Clone the appropriate git repository¶
git clone https://git.opensvc.com/docs.opensvc.com/.git
git clone https://git.opensvc.com/opensvc/.git
git clone https://git.opensvc.com/openha/.git
git clone https://git.opensvc.com/dds/.git
Send patches¶
Configured local MTA, without git send-email¶
Send patch with:
git format-patch --to opensvc-devel@lists.opensvc.com -o /tmp origin | \
while read f ;
do cat $f|sendmail -t ;
done
Configured local MTA, with git send-email¶
Install git-send-email:
sudo apt-get install git-email
Send patches with:
git send-email --to="opensvc-devel@lists.opensvc.com" origin
With msmtp, with git send-email¶
Install git-send-email, and msmtp if you have to use Gmail SMTP (no local MTA configured):
sudo apt-get install git-email
sudo apt-get install msmtp
Set up msmtp:
cat - <<EOF >$HOME/.msmtprc
defaults
tls on
tls_trust_file /usr/share/ncat/ca-bundle.crt
logfile ~/.msmtp.log
# My email service
account gmail
host smtp.gmail.com
port 587
from some.user.name@gmail.com
auth on
user some.user.name@gmail.com
password my-secret
# Set a default account
account default : gmail
EOF
chmod 600 $HOME/.msmtprc
Set up git-send-email to use msmtp:
git config --global sendemail.smtpserver /usr/bin/msmtp
Send patches with:
git send-email --to opensvc-devel@lists.opensvc.com origin
With msmtp, without git send-email¶
Install msmtp if you have to use Gmail SMTP (no local MTA configured):
sudo apt-get install msmtp
Set up msmtp:
cat - <<EOF >$HOME/.msmtprc
defaults
tls on
tls_trust_file /usr/share/ncat/ca-bundle.crt
logfile ~/.msmtp.log
# My email service
account gmail
host smtp.gmail.com
port 587
from some.user.name@gmail.com
auth on
user some.user.name@gmail.com
password my-secret
# Set a default account
account default : gmail
EOF
chmod 600 $HOME/.msmtprc
Send patches with:
git format-patch --to opensvc-devel@lists.opensvc.com -o /tmp origin | \
while read f ;
do cat $f | msmtp -t ;
done
Contribute translations¶
Install the sphinx documentation generator.
For example, on a debian-based system:
sudo apt-get install python-sphinx
Clone the documentation project:
git clone https://git.opensvc.com/docs.opensvc.com/.git
Step into the cloned project directory:
cd docs.opensvc.com
If starting a new translation, you have to add the new language support to the Makefile. Here are for example the definitions for the french translation you can clone:
html_fr:
$(SPHINXBUILD) -b html -Dlanguage=fr $(ALLSPHINXOPTS) $(BUILDDIR)/html/fr
po_fr:
@for pot in `echo $(POT_D)/*.pot` ; do \
base_pot=`basename $$pot` ; \
po=$(TRANS_D)/fr/`echo $$base_pot | sed "s/t$$//"` ; \
echo "merge new strings in $$po" ; \
touch $$po ; \
msgmerge -s -U $$po $$pot ; \
done
mo_fr:
@for po in `echo $(TRANS_D)/fr/*.po` ; do \
base_po=`basename $$po` ; \
mo=$(TRANS_D)/fr/LC_MESSAGES/`echo $$base_po | sed "s/po$$/mo/"` ; \
echo "gen hash in $$mo" ; \
msgfmt -c -v -o $$mo $$po ; \
done
Then plug your new targets in the generic targets:
po: po_fr <your po target>
mo: mo_fr <your mo target>
osvc: html html_fr <your translation target>
Create or refresh the translation files:
make pot po_<your language code>
This last command refreshed the .pot (strings index) and created the .po (translation) files.
You can now add your translation in the .po files in source/translated/<your language code>/
. Here is an example of translated content:
# 21aa40c7358948d9a69b6813104fd253
# 27fda7e570224a56b6e2631b1c302fd7
#: ../../contribute.rst:57 ../../contribute.rst:91
msgid "Set up :command:`msmtp`::"
msgstr "Configuration de :command:`msmtp` ::"
Don't forget to create the directory source/translated/<your language code>/LC_MESSAGES/
.
Finally, create the .mo (binary translation) and html files with:
make mo_<your language code> html_<your language code>
Note you can see what string miss translating in the output of the mo target. For example:
gen hash in source/translated/fr/LC_MESSAGES/agent.install.mo
82 translated messages, 2 fuzzy translations, 8 untranslated messages.
Verify your translation pointing a web browser to your local directory. When satisfied, git add
and git commit
your touched files (don't track the .mo and html files), and submit your commits using the procedures described in the previous chapters.