On Mon, Mar 30, 2026 at 01:05:34AM +0200, Agustin Martin wrote:
> On Thu, Sep 18, 2025 at 11:58:56AM +0800, Chow Loong Jin wrote:
> > Package: devscripts
> > Version: 2.25.19ubuntu2
> > Severity: normal
> > When using the following debian/watch file:
> > 
> > --- debian/watch --
> > Version: 5
> > 
> > Template: Github
> > Owner: prusa3d
> > Project: prusaslicer
> > Release-Only: yes
> > ---
> ...
> > This is wrong, because according to
> > https://docs.github.com/en/rest/git/refs?apiVersion=2022-11-28, this
> > actually means it's trying to search for git refs matching
> > `refs/release/*`, which don't exist.
> > 
> > Instead, the URL to search should be
> > https://api.github.com/repos/prusa3d/prusaslicer/releases, which
> > actually lists the releases for the project, along with tarball links.
> 
> Hi all,
> 
> Seems that attached patch helps with the 'Release-Only' problem in rdma-core
> and nextcloud-desktop, using pure template watch files.
> 
> It however does not help with slic3r-prusa because of the "version_" prefix.
> 
> Hope this helps,
> 

> From 01b696b3ac4376eb1e13e0d279d9cb5b008c6739 Mon Sep 17 00:00:00 2001
> From: Agustin Martin Domingo <[email protected]>
> Date: Sat, 28 Mar 2026 17:48:00 +0100
> Subject: [PATCH] Github.pm: Use proper url with Release-Only: yes'.
> 
> ---
>  lib/Devscripts/Uscan/Templates/Github.pm | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/Devscripts/Uscan/Templates/Github.pm 
> b/lib/Devscripts/Uscan/Templates/Github.pm
> index e5b9d80c..30f1c07c 100644
> --- a/lib/Devscripts/Uscan/Templates/Github.pm
> +++ b/lib/Devscripts/Uscan/Templates/Github.pm
> @@ -16,10 +16,12 @@ sub transform {
>          $dist = "https://api.github.com/repos/$owner/$project";;
>      }
>  
> -    $watchSource->{source} ||= "$dist/git/matching-refs/"
> -      . ($watchSource->{releaseonly} ? 'release/' : 'tags/');
> +    $watchSource->{source} ||= "$dist/"
> +      . ($watchSource->{releaseonly} ? 'releases' : 
> 'git/matching-refs/tags/');
>      $watchSource->{matchingpattern}
> -      ||= 
> 'https://api.github.com/repos/[^/]+/[^/]+/git/refs/tags/(?>[^/]+(?<=(?:\D|alpha|beta|rc))\-)?'
> +      ||= 'https://api.github.com/repos/[^/]+/[^/]+/'
> +      . ($watchSource->{releaseonly} ? 'tarball/' : 'git/refs/tags/')
> +      . '(?>[^/]+(?<=(?:\D|alpha|beta|rc))\-)?'
>        . $watchSource->{versiontype}
>        . '(?:(?=")|$)';
>      $watchSource->{downloadurlmangle}

Hello,

I think downloadurlmangle should not be set when release-only is true.
It might be better to separate the logic for releaseonly into completely
different if-else branches instead of using a ternary.

Additionally, it would be nice to have a new setting to select only
asset tarballs instead of snapshot tarballs. For example, in hyprland,
with the following watch file, we would like to use [1] instead of [2],
because the latter lacks hardcoded version info (see [3] for a diff) and
leads to bugs like [4].

---
Template: Github
Project: hyprland
Owner: hyprwm
Repack: yes
Repacksuffix: +ds
Dversion-Mangle: auto
---

[1] 
https://github.com/hyprwm/Hyprland/releases/download/v0.54.2/source-v0.54.2.tar.gz
[2] https://api.github.com/repos/hyprwm/Hyprland/tarball/v0.54.2
[3] 
https://salsa.debian.org/hyprland-team/hyprland/-/compare/upstream%2F0.54.2+ds1..upstream%2F0.54.2+ds?from_project_id=106116#line_0abc253f1_A2
[4] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1131628

-- 
Kind regards,
Loong Jin

Attachment: signature.asc
Description: PGP signature

Reply via email to