# The web sentinel

## Existing and prospective packages

The so called tasks pages probably give the most interesting overview about what a Blend is actually doing for newcomers as well as a nice quality assurance tool for developers. If you want to see examples for tasks pages just have a look at the list of all Blends using this technique and follow the links to the tasks pages once you selected one specific Blend.

If a Debian Pure Blend should be presented one of the first questions is, what packages are available. The next question might be which packages are on the todo list for inclusion in Debian to make Debian even more attractive for people the Blend is targeting at. Both questions can be answered if you point people to the dynamically created tasks page. The page is rebuild daily to stay up to date according to recent developments of the Blend. The build process works as follows:

- Read dependency information of the `tasks` files.

- Verify whether there is really a package with this name and print the description of this package.

- If there is no such package in Debian try to parse the `tasks` file whether there is some information given and mark the result as prospective package for further inclusion.

The rationale behind this is to provide as much as possible information about packages that might be interesting for the target user of the Blend. Moreover the page can provide useful information for developers about things that might be a useful help for the project to work down the todo list and build Debian packages for software that is not yet included in Debian.

## Tasks files controlling web sentinel content

The content of the tasks files that are used to build the metapackage content of a Blend is also used to determine the content of the web sentinel pages. Thus you can influence the tasks pages by simply editing the tasks files inside the VCS of the sources of the Blends metapackages. The canonical location of these tasks files inside the sources is (with the exception of Debian Edu that is locatet in Debian Edu Git repositories) the Blends Git at

          https://salsa.debian.org/blends-team/BLEND.git

Here you can add or remove additional Dependencies to existing packages or you can add additional information about so called prospective packages. The syntax how to do this is explained below.

To get the todo list built it is necessary to add some additional information to the task files which are the main database of information for the Blend. The information is following the RFC822 syntax as all Debian control files do and is kept quite simple:

Depends / Recommends / Suggests

- Even if there is no Debian package available for the moment the names of prospective packages are given as if they would exists. The rationale behind is that once such a package might exist the source of the metapackage does not have to be changed and will work out of the box after rebuilding.

Ignore

- The Ignore key should be the favourite way to use for specifying prospective packages in case the packages should be evaluated once it appears in the Debian package pool. If "Depends", "Recommends" or "Suggests" are used for not yet existing packages they will be turned into the list of Suggests of the metapackage and thus might be possible to become installed on a users machine if the user decides to install all suggested packages. If some evaluation should be done first the "Ignore" tag is your friend.

Homepage

- This is the URL to the software that should be packaged.

WNPP

- In case there might be a WNPP bug filed for this software the bug number is given here. This helps to keep track of the ongoing effort to package the software.

Responsible

- In case some developer claimed to care for the software (perhaps by issuing the WNPP bug report) the e-mail address of this developer is given here to enable an easy way to contact this person.

License

- Debian cares always about the license. This information about prospective packages should be easily available.

Vcs-Git

- If there is some Debian packaging stuff available this can be addressed in this field. Unofficial packages which have this field set are rendered in a separate section with links to the packaging Git.

  The usage for this field is the same as it is described in paragraph 6.2.5 of Debian developers reference

Vcs-Browser

- If there is some Debian packaging stuff available this can be addressed in this field. Unofficial packages which have this field set are rendered in a separate section above unofficial packages outside the official Debian mirrors. If you have set `Vcs-Git` there is no need to set `Vcs-Browser` explicitly because it is obtained automatically from the other fields. But you might override this automatically generated URL if needed.

  The usage for this field is the same as it is described in paragraph 6.2.5 of Debian developers reference

Pkg-URL

- In some cases there are unofficial packages for some software which are prepared by a third party. It helps our users if they could install such a package and thus the URL to it might be a helpful hint. This is also true for developers because they might have a look at this packaging before they start from scratch. Often packages are available at mentors.debian.net and prepared by people who do not yet have an official Debian maintainer status and thus are not able to upload packages to the Debian mirror. The packages at mentors are waiting for sponsoring of an official Debian maintainer and if such a package shows up in the Blend tasks list it might speed up the inclusion into official Debian distribution.

Pkg-Description

- This tag should give reasonable information about the software as it normally is done in `debian/control` files. It can be either a copy of the description of the WNPP bug or could be used to file a WNPP bug and thus helps to simplify the packaging work.

Remark

- In some cases it makes perfectly sense to add a remark on behalf of the Blends team to a package which is visible on the tasks page. This can be done using the Remark field. It can be used in the same syntax as a Description field in Debian control files.

Registration

- Sometimes, specifically in the case of scientific software, the project authors ask for registration of their software to get numbers of users of their software. These numbers enable them to ask for further funding of their project. To support this intend of authors the tasks pages can feature a link to this registration page if the link is given in the tasks file in the Registration field.

### Configuring Web Sentinel pages per Blend

To set some typical values for the web sentinel per Blend each Blend has to provide a configuration file. These files are formatted in RFC822 files and maintained in Git. The following values can be set:

Blend

- Id of the Blend (for instance debian-edu, debian-med, etc.)

ProjectName

- Name the Blend in correct spelling. Please note that English spelling is without a dash and it is "Debian Edu" (not Debian-Edu) and Debian Med (not Debian-Med)

ProjectUrl

- URL to technical information about the Blend

Homepage

- URL to the user oriented homepage of the Blend

LogoUrl

- URL to a logo image of the Blend

ProjectList

- E-Mail address of a mailing list where developers and users of the Blend are communicating

PkgList

- E-Mail address of a mailing list where developers of the Blend are discussing technical details of packaging

OutputDir

- Directory where to put the rendered HTML pages. The Blends pages are hosted on blends.debian.org and usually stored at `/srv/blends.debian.org/www/<ProjectName>`

DataDir

- Directory where the rendering code stores temporary data like Git clones of tasks files etc. This is usually set to `/srv/blends.debian.org/data/<ProjectName>`

VcsDir

- URL of tasks files in Blends VCS

CSS

- In case a CSS file different from the default Blend CSS is wanted for a specific Blend a (relative) path to this file can be specified.

### Debian Description Translation Project

The Debian Description Translation Project (see documentation ) provides users of non-english languages with information about Debian packages. The sense of supporting especially the translations of descriptions which are in the focus of a Blend is to make the Blend even more usable for our target users. Moreover people interested in the special field of the Blend are most probably able to provide good translations if it comes to texts that are specific to their field of knowledge. Thus there is a web page automatically created that parses the tasks packages for package names and verifies the translation status of the package descriptions.

Finally the DDTP descriptions are used to create internationalised pages of existing packages which might help users with insufficient skills in English to easily find their software of interest. If the browser locale is properly set the user will get translated descriptions of existing packages - provided that the DDTP translations for all these packages are existing.

### Features of the web sentinel tasks pages

For so called prospective packages - packages which are not yet in Debian as discussed above - only the information given explicitly in the tasks file can be provided. For official packages the Debian infrastructure provides a lot of metadata, that is collected in the Ultimate Debian Database (UDD). The script which is creating the web sentinel pages collects all this data from UDD and tries to provide the most comprehensive overview over a set of packages for a given task of a Blend. The following list gives an overview over the metadata of packages belonging to the tasks of a Blend.

Short and long Description

- If there is a DDTP translation the descriptions are translated.

Homepage

- The Homepage field is taken from the `debian/control` file. If this information is missing for some package on the tasks page it might be a sign that the package is not properly maintained and deserves a wishlist bug report to add this information (at least for non-native Debian packages.

Maintainer / last Uploader

- Both are provides as mailto-links. If the latest Uploader is different from the Maintainer this information is given as well. This is specifically interesting for group maintained packages - actually a tendency in Blends to maintain packages as Blends team - where the maintainer is the Blends team and the Uploader is the name of the actual developer who uploaded the package.

Popularity contest

- The popularity contest database contains different values. The tasks page is presenting the most relevant of them: the number of people who really use this package regularly and the number of people who upgraded this package recently

Versions and architectures

- A button can be used to uncover the versions of this package in the Debian package pool as well as the architectures for which this version exists. The button is coloures in yellow if there is a new upstream version available which enables the Blends packaging team to easily detect work items to do.

## Bugs overview

The goal of a Blend is to support their user as best as possible. So a feature to have a quick overview about all packages in our focus might be helpful. This is solved by the bugs overview page. To create this page the `tasks` files are parsed for the listed dependencies. Then the Debian Bug Tracking System is consulted about known bugs of these packages. All bugs are listed and marked with different colours according to their severity. So the developers can easily check this page in case they plan to fix some bugs that are relevant for the Blend.

If you want to see examples for those bugs pages just have a look at the list of all Blends using this technique and follow the links to the bugs pages once you selected one specific Blend.

## Versions in stable / testing / unstable / new / VCS upstream

The Debian GIS team has named this overview "Thermometer" - just find the Debian GIS thermometer as example view here.

## Quality assurance report

The Debian Quality Assurance group does a decent job in watching the status o f Debian packages. If a package features a valid `debian/watch` the tool `uscan` is able to verify the upstream source location for newer versions. The QA report page reports issues about the packages that are relevant for a Blend.