= Information for Developers = {{{#!wiki caution '''Alioth no longer used''' The repositories on [[Alioth]] have migrated to [[Salsa]]. Alioth accounts are no longer used. Refer to the [[https://debian-gis-team.pages.debian.net/policy/|Debian GIS Policy]] for the team documentation. }}} == Alioth accounts == You need to create an Alioth account in order to access [[DebianGis/Repository]] and SVN. If you are already a Debian Developer, you already have one with your usual username, else you can create a new one [[https://alioth.debian.org/account/register.php|here]] which will look like ''user''-guest. Alioth is a [[http://www.gforge.org|Gforge]] based distributed development environment, which collects and gives uniform access to a complete set of commonly used tools for free software projects. After registering, you can contact one of the Project Manager of the [[https://alioth.debian.org/projects/pkg-grass/|Alioth Grass Project]] to have your account added to the '''pkg-grass''' group and have useful information and hints to access the repository. When you adopt a (possibly new) package you should communicate your intention to the pkg-grass-general list and add information in DebianGis/PackageList. Due to historical reasons the DebianGis project uses the pkg-grass repository and tools on Alioth, but it is not limited to grass-related software. The SVN repository is hosted on '''svn.debian.org''' whose accounts are kept in sync with Alioth ones on regular basis. So you will be able to access the repository by svn+ssh for checkouts and commits. If you are not familiar with SVN please read the [[http://svnbook.red-bean.com/en/1.0/index.html|SVN book]]. Minimally, you can checkout the grass repository by using a command like: {{{ svn checkout svn+ssh://your_username@svn.debian.org/svn/pkg-grass/packages/grass/trunk }}} and many commands are CVS-like. Please remember to use ''svn export'' in order to create a clean environment for the package (without the {{{.svn}}} stuff) before the final building for uploading a package. If you had doubts about convention (branches and tags) used in the repository, please ask on a mailing list. Some packages are maintained by means of {{{svn-buildpackage}}} and {{{svn-inject}}}, some others not. Note that git has been recently adopted as an alternative and distributed VCS for DebianGis, so a package repository could also be hosted as a bare repo at {{{ git clone ssh://your_username@git.debian.org/git/pkg-grass/.git }}} More and general information about git use for Debian package are available [[http://wiki.debian.org/Alioth/Git|here]] == Adding your package to the DebianGis Status monitor == It is a good idea to add your source package to the [[http://pkg-grass.alioth.debian.org/debiangis-status.html|daily report]] about the status of DebianGis. To do that you need to checkout the [[http://svn.debian.org/wsvn/pkg-grass/scripts/?rev=0&sc=0|scripts directory from project SVN repository]] and modify the '''dgis-packages.inc''' file to add the source file name to the list of monitored packages. Please, respect the perl syntax doing that, else you could break things. == Maintainership == If you would share your work with the group or co-maintain a package, ask for SVN committment rights to the list. It is a good practice adding yourself among Uploaders in the {{{debian/control}}} file and setting the Maintainer: field to {{{'Debian GIS Project '}}}. Also, it is better if you submit a few patches for DebianGis packages bugs before asking for committment access, if you are not a Debian Developer. From time to time, when uploading a new version of a package, check the list of Uploaders and remove people who did not do any commits since one year ore more, on the basis of the changelog contents. Please, avoid to upload a new package just to modify the Uploaders list, but try to keep the list as up-to-date as possible. A grain of salt should be used in updating the Uploaders list in case of slowly evolving products. If you are looking for tasks that need to be completed, you can consult DebianGis/ToDo for packages which need updating, or the [[http://pkg-grass.alioth.debian.org/debiangis-status.html|DebianGis status monitor page]] for not-yet-packaged stuff. It is a good idea to annotate the work-in-progress in the DebianGis/ToDo page to avoid duplicate efforts. == Backporting == [[http://backports.org/dokuwiki/doku.php?id=contribute|backports.org guidelines]] General suggestions and constraints for [[http://www.backports.org|backports.org]] policy apply in our case. First of all, you have to backport only packages from testing, not sid ones. Avoid (build-)dependencies from packages (or versions) not present in stable (or in backports.org as second - less optimal - choice). It is specifically useful using pbuilder to build-up packages. In order to do that use pinning in the pbuilder environment to install other debian-gis backports as well as other specific required backports.org packages. For instance, one could add to pbuilder {{{/etc/apt/preferences}}} some entries like: {{{ Package: gdal-bin Pin: release a=squeeze-backports Pin-Priority: 999 Package: libgdal-doc Pin: release a=squeeze-backports Pin-Priority: 999 Package: python-gdal Pin: release a=squeeze-backports Pin-Priority: 999 Package: libgdal1-1.6.0 Pin: release a=squeeze-backports Pin-Priority: 999 Package: libgdal1-dev Pin: release a=squeeze-backports Pin-Priority: 999 Package: ogdi-dfsg Pin: release a=squeeze-backports Pin-Priority: 999 Package: grass Pin: release a=squeeze-backports Pin-Priority: 999 Package: grass-dev Pin: release a=squeeze-backports Pin-Priority: 999 Package: libgdal-grass Pin: release a=squeeze-backports Pin-Priority: 999 Package: proj Pin: release a=squeeze-backports Pin-Priority: 999 }}} in order to select debian-gis basic backports to build other packages consistently. This is specifically useful with developer packages such as libraries. To do that you need to add a preferences file at the shell prompt as follows {{{ pbuilder --login --save-after-login ... cat >/etc/apt/preferences <