README.source for the adduser Debian package
============================================

adduser is a normal 3.0 (native) package that is maintained on salsa.  It has
a decades long history. The Repository on salsa (see debian/control) can be
cloned and worked with like it is common in Debian.


The Team
--------
adduser really should be team maintained, but it isn't. If you want to
participate, first thing would be to subscribe to the package's mail messages
through tracker.debian.org. Since the maintainer address is set to the
tracker, that way you'll get all messages relevant to adduser, including bug
reports and upload/migration status. If you want to reach the maintainer and
otherwise interested parties, write to adduser@packages.debian.org.


Branches and commit suggestions
-------------------------------
Nobody should directly commit to debian/latest (with the exception of
preparing an upload). All work should be done through personal branches. It is
best practise to file a merge request after finishing work on a personal
branch and let somebody else approve and/or merge to debian/latest for a
four-eyes-workflow. In normality, only the person who did the last upload
should merge to any debian/* branch without their agreement. If that person
does not react in a few days (or it is very urgent), any other person in
Uploaders may step in.


Branch names
------------
debian/latest: the latest Debian packaging. This branch should always be
   in a state to build without failure. Can be uploaded to experimental
   and/or unstable
debian/releasename: security, stable updates. branched off debian/latest
   when needed from the appropriate debian/<number> tag.
debian/unstable: only exists when unstable work was neeed while
   debian/latest holds an experimental branch. branched off
   debian/latest from the latest debian/<number> tag that got
   uploaded to unstable
user/name: user-specific branch to work in. Feel free to use that namespace
   even if you're not formally on the team. Clean up after yourself. Branches
   stale more than a year are subject to deletion

debian/* branches are protected, no force push here.


translations
------------
adduser has both its program texts and its manual pages translated. In a
native package, as the package maintainer we have to take care of both of
these translations. The generate_pot.sh script regenerates the po files for
the program translations. To update manpage po files, use po4a --keep 0
--rm-translations po4a.cfg. Regenerating the pot files will destroy the
headers in the pot file, so be sure to re-add them manually.


autopkgtest
-----------
The package has two distinct rather extensive test suites: One that can be
considered "upstream", in "testsuite", and an autopkgtest test suite in
debian/tests. All bug fixes and features should be accompanied by appropriate
test cases. In case of a bug fix, a test case should be written first and
committed separatly, so that the test can be cherry-picked and proven to fail
without the fix.

Autopkgtest needs a full perl to run, adduser is specified to run without full
perl. This cannot be automatically tested. A script
debian/tests/no-autopkgtest is included that runs the test suite without full
perl installed. This breaks the testbed and should thus be done in a container
or a scratch system, and it needs to be manually executed.
