|
| 1 | +--- |
| 2 | +title: "Packit now supports multiple release streams" |
| 3 | +date: 2026-04-08T08:00:00+00:00 |
| 4 | +authors: nforro |
| 5 | +tags: |
| 6 | + - Upstream Release Monitoring |
| 7 | + - pull-from-upstream |
| 8 | + - downstream |
| 9 | + - configuration |
| 10 | +--- |
| 11 | + |
| 12 | +There are upstream projects that have multiple release streams and, for example, regularly release |
| 13 | +patch versions for every active minor version. With |
| 14 | +[`pull-from-upstream`](/docs/configuration/downstream/pull_from_upstream) you have been able |
| 15 | +to follow only the highest stream, but that now changes. By switching |
| 16 | +[`Monitoring status`](https://the-new-hotness.readthedocs.io/en/stable/user-guide.html#notifications-settings-legacy) |
| 17 | +of your package from `Monitoring` to `Monitoring all`, you enable triggering |
| 18 | +[`pull-from-upstream`](/docs/configuration/downstream/pull_from_upstream) |
| 19 | +for every released version, not only the highest. This means you can use options such as |
| 20 | +[`version_update_mask`](/docs/configuration/#version_update_mask), |
| 21 | +[`upstream_tag_include`](/docs/configuration/#upstream_tag_include) or |
| 22 | +[`upstream_tag_exclude`](/docs/configuration/#upstream_tag_exclude) (those require |
| 23 | +[`upstream_project_url`](/docs/configuration/#upstream_project_url) to be set) |
| 24 | +to filter a specific release stream you want to follow, or have multiple |
| 25 | +[`pull-from-upstream`](/docs/configuration/downstream/pull_from_upstream) jobs, |
| 26 | +each matching different releases and targeting different dist-git branches. |
| 27 | + |
| 28 | +<!--truncate--> |
| 29 | + |
| 30 | +:::tip |
| 31 | + |
| 32 | +Instead of changing `Monitoring status` in the dist-git web UI, you can have a |
| 33 | +[`monitoring.toml`](https://the-new-hotness.readthedocs.io/en/stable/user-guide.html#notifications-settings) |
| 34 | +file in the `rawhide` branch in dist-git and set `all_versions = true` to trigger |
| 35 | +[`pull-from-upstream`](/docs/configuration/downstream/pull_from_upstream) for all released versions. |
| 36 | + |
| 37 | +::: |
| 38 | + |
| 39 | +## Configuration example |
| 40 | + |
| 41 | +For an upstream project releasing 1.7.z and 1.6.z streams, you could configure the jobs like this: |
| 42 | + |
| 43 | +``` |
| 44 | +jobs: |
| 45 | +
|
| 46 | +- job: pull_from_upstream |
| 47 | + trigger: release |
| 48 | + upstream_tag_exclude: ^v1\.6\.\d+$ |
| 49 | + dist_git_branches: |
| 50 | + - fedora-rawhide |
| 51 | +
|
| 52 | +- job: pull_from_upstream |
| 53 | + trigger: release |
| 54 | + upstream_tag_include: ^v1\.6\.\d+$ |
| 55 | + dist_git_branches: |
| 56 | + - fedora-branched |
| 57 | +``` |
| 58 | + |
| 59 | +With this configuration security backports to the 1.6 upstream branch would result in Packit opening dist-git PRs |
| 60 | +against branched Fedoras while for any other release Packit would open dist-git PRs in Rawhide. |
| 61 | + |
| 62 | +:::tip |
| 63 | + |
| 64 | +We have introduced a new configuration option |
| 65 | +[`version_update_specifiers`](/docs/configuration/#version_update_specifiers). |
| 66 | +It borrows syntax of |
| 67 | +[PEP440 version specifiers](https://peps.python.org/pep-0440/#version-specifiers) |
| 68 | +and gives you more flexibility when filtering release streams. For example: |
| 69 | + |
| 70 | +``` |
| 71 | +jobs: |
| 72 | +
|
| 73 | +- job: pull_from_upstream |
| 74 | + trigger: release |
| 75 | + # 3.y.z or higher versions go to Rawhide |
| 76 | + version_update_specifiers: >=3.0 |
| 77 | + dist_git_branches: |
| 78 | + - fedora-rawhide |
| 79 | +
|
| 80 | +- job: pull_from_upstream |
| 81 | + trigger: release |
| 82 | + # versions 2.y.z go to stable Fedoras, excluding a known broken version |
| 83 | + version_update_specifiers: ~=2.0, !2.5.4 |
| 84 | + dist_git_branches: |
| 85 | + - fedora-branched |
| 86 | +``` |
| 87 | + |
| 88 | +::: |
0 commit comments