[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Git][ftp-team/dak][deploy] 2 commits: fix(auto_decruft): ensure `architecture_ids` is a tuple



Title: GitLab

Ansgar pushed to branch deploy at Debian FTP Team / dak

Commits:

  • 4486916c
    by Ansgar at 2026-01-04T16:44:38+01:00
    fix(auto_decruft): ensure `architecture_ids` is a tuple
    
    SQLAlchemy will generate a statement like
    
    ```sql
    WHERE a.id IN ARRAY[28,27]
    ```
    
    in `remove_groups` when `architecture_ids` is a list. That is not
    valid SQL.
    
    Use a tuple instead to fix this.
    
    This fixes a regression introduced in
    8e1e7fcd587404a1b36769ed5e6fc80068cc5ab8
    
  • 601133d8
    by Ansgar at 2026-01-04T16:45:30+01:00
    Merge branch 'master' into deploy
    

1 changed file:

Changes:

  • dak/auto_decruft.py
    ... ... @@ -84,7 +84,7 @@ class Group(TypedDict):
    84 84
         name: str
    
    85 85
         packages: tuple[str, ...]
    
    86 86
         architectures: list[str]
    
    87
    -    architecture_ids: list[int]
    
    87
    +    architecture_ids: tuple[int, ...]
    
    88 88
         message: str
    
    89 89
         removal_request: dict[str, list[str]]
    
    90 90
     
    
    ... ... @@ -99,7 +99,7 @@ def compute_sourceless_groups(suite_id: int, session: "Session") -> Iterable[Gro
    99 99
         message = "[auto-cruft] no longer built from source, no reverse dependencies"
    
    100 100
         arch = get_architecture("all", session=session)
    
    101 101
         assert arch is not None
    
    102
    -    arch_all_id_list = [arch.arch_id]
    
    102
    +    arch_all_id_tuple = tuple([arch.arch_id])
    
    103 103
         arch_all_list = ["all"]
    
    104 104
         for row in rows:
    
    105 105
             package = row[0]
    
    ... ... @@ -107,7 +107,7 @@ def compute_sourceless_groups(suite_id: int, session: "Session") -> Iterable[Gro
    107 107
                 "name": "sourceless:%s" % package,
    
    108 108
                 "packages": tuple([package]),
    
    109 109
                 "architectures": arch_all_list,
    
    110
    -            "architecture_ids": arch_all_id_list,
    
    110
    +            "architecture_ids": arch_all_id_tuple,
    
    111 111
                 "message": message,
    
    112 112
                 "removal_request": {
    
    113 113
                     package: arch_all_list,
    
    ... ... @@ -140,7 +140,7 @@ def compute_nbs_groups(
    140 140
                 "name": "NBS:%s" % source,
    
    141 141
                 "packages": tuple(sorted(pkg_list)),
    
    142 142
                 "architectures": sorted(arch_list),
    
    143
    -            "architecture_ids": [arch2ids[arch] for arch in arch_list],
    
    143
    +            "architecture_ids": tuple(arch2ids[arch] for arch in arch_list),
    
    144 144
                 "message": message,
    
    145 145
                 "removal_request": removal_request,
    
    146 146
             }
    
    ... ... @@ -201,7 +201,9 @@ def merge_group(groupA: Group, groupB: Group) -> Group:
    201 201
         """
    
    202 202
         pkg_list = sorted(dedup(groupA["packages"], groupB["packages"]))
    
    203 203
         arch_list = sorted(dedup(groupA["architectures"], groupB["architectures"]))
    
    204
    -    arch_list_id = [*dedup(groupA["architecture_ids"], groupB["architecture_ids"])]
    
    204
    +    arch_list_id = tuple(
    
    205
    +        [*dedup(groupA["architecture_ids"], groupB["architecture_ids"])]
    
    206
    +    )
    
    205 207
         removalA = groupA["removal_request"]
    
    206 208
         removalB = groupB["removal_request"]
    
    207 209
         new_removal = {}
    


  • Reply to: