USCAN-TEMPLATES(5)
π USCAN-TEMPLATES(5) β the manual page, bestie edition β¨
okay so this is uscan-templates(5), and it's literally just the tea on which templates uscan(1) has available for you. no cap, it's short and it slaps.
πΈ NAME πΈ
uscan-templates β the available templates for uscan(1). that's it. that's the whole vibe. π
π USING TEMPLATES π
Templates are the glow-up for your debian/watch file. instead of writing a whole scavenger hunt in there, you just say which template you want and drop in the specific args. it's giving simplicity. it's giving main character energy.
Example:
Version: 5
Template: GitHub
Dist: https://github.com/guimard/llng-docker
Or, if you'd rather split it up:
Version: 5
Template: GitHub
Owner: guimard
Project: llng-docker
and you can still pile other parameters on top like normal, it's not a one-or-the-other situation bestie:
Version: 5
Template: GitHub
Owner: guimard
Project: llng-docker
Version-Mangle: auto
β¨ AVAILABLE TEMPLATES β¨
here's the full roster, the whole friend group:
"Bioconductor""CRAN""GitHub""GitLab""Metacpan""Npmregistry""Pypi"
𧬠Bioconductor π§¬
This template fetches a Bioconductor R package's source from bioconductor.org, the main mirror. very demure, very mindful, very main-mirror. π
Specific parameters
Packageβ name of the package.
Example
Version: 5
Template: Bioconductor
Package: IRanges
π CRAN π
This template fetches a CRAN (Complete R Archive Network) package's source from cran.r-project.org, the main mirror. yes, the main mirror again. we love consistency. π«Ά
Specific parameters
Packageβ name of the package.
Example
Version: 5
Template: CRAN
Package: vegan
π GitHub π
This template uses the GitHub API to find archives to download. slay, API girlies. π
Specific parameters
Distβ URL to the project.Owner<owner> β (ignored if"Dist"is used).Project<project> β (ignored if"Dist"is used).Release-Only<yes> β when set, search only in"/releases"instead of"/tags".Version-Typeβ (default:ANY_VERSION): by default, templates use theANY_VERSIONmacro to find valid version. You can override this here using a valid macro name (ANY_VERSIONorSTABLE_VERSIONorSEMANTIC_VERSION).Custom-Versionβ (capturing version regexp): Use a custom version regexp. Syntax is the same used for versions inMatching-Pattern. Example:
Custom-Version: v(0\.7\.\d+)
This parameter takes precedence over Version-Type and can use its valid macro names, like in
Custom-Version: version_@ANY_VERSION@
Example
Using the Dist parameter:
Version: 5
Template: GitHub
Dist: https://github.com/guimard/llng-docker
Using the Owner and Project parameters:
Version: 5
Template: GitHub
Owner: guimard
Project: llng-docker
π¦ GitLab π¦
This template uses Mode: gitlab to download package. periodt.
Specific parameters
Distβ URL to the project.Release-Only<yes> β when set, search only in"/releases"instead of"/tags".Version-Typeβ (default:ANY_VERSION): by default, templates use theANY_VERSIONmacro to find valid version. You can override this here using a valid macro name (ANY_VERSIONorSTABLE_VERSIONorSEMANTIC_VERSION).Custom-Versionβ (capturing version regexp): Use a custom version regexp. Syntax is the same used for versions inMatching-Pattern. Example:
Custom-Version: v(0\.7\.\d+)
This parameter takes precedence over Version-Type and can use its valid macro names, like in
Custom-Version: version_@ANY_VERSION@
Example
Version: 5
Template: GitLab
Dist: https://salsa.debian.org/debian/devscripts
πͺ Metacpan πͺ
This template uses MetaCPAN::Client(3pm) to download package. perl besties rise up π§
Specific parameters
Distβ distribution name (with"::"or"-").Version-Typeβ (default:ANY_VERSION): by default, templates use theANY_VERSIONmacro to find valid version. You can override this here using a valid macro name (ANY_VERSIONorSTABLE_VERSIONorSEMANTIC_VERSION).Maturityβ (default:released): kind of CPAN releases to consider. Developer releases (versions containing a_, archives with a-TRIALsuffix, ...) are skipped by default. Set it todeveloperto look only at them, or toanyto look at all releases. Seedebian-watch(5).
Example
Version: 5
Template: Metacpan
Dist: MetaCPAN-Client
π¦ Npmregistry π¦
no extra intro here, straight to business. iconic honestly.
Specific parameters
Distβ distribution name.Version-Typeβ (default:ANY_VERSION): by default, templates use theANY_VERSIONmacro to find valid version. You can override this here using a valid macro name (ANY_VERSIONorSTABLE_VERSIONorSEMANTIC_VERSION).
Example
Version: 5
Template: Npmregistry
Dist: @lemonldapng/handler
π Pypi π
This template uses pypi.debian.net to download the tarball. delulu? no. it's just efficient π
Specific parameters
Distβ name of the project.Version-Typeβ (default:ANY_VERSION): by default, templates use theANY_VERSIONmacro to find valid version. You can override this here using a valid macro name (ANY_VERSIONorSTABLE_VERSIONorSEMANTIC_VERSION).
Example
Version: 5
Template: Pypi
Dist: bitbox02
π οΈ Adding templates π οΈ
so you wanna be the template? obsessed. if you want to add a template in uscan, the documentation lives here:
$ perldoc /usr/share/perl5/Devscripts/Uscan/Templates.pod
Then build a merge-request into the devscripts project <https://salsa.debian.org/debian/devscripts>. go off, contribute, we're rooting for you π«Άβ¨
π Authors π
- Xavier Guimard <yadd@debian.org>
that's the whole page, bestie β courtesy of Debian Utilities, dated 2026-09-21, filed under USCAN-TEMPLATES(5). go write a watch file that eats π
πβ
π¦ where this page comes from
- ubuntu stonking: devscripts 2.26.11ubuntu1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms