Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package git-town for openSUSE:Factory 
checked in at 2026-03-27 16:50:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/git-town (Old)
 and      /work/SRC/openSUSE:Factory/.git-town.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "git-town"

Fri Mar 27 16:50:53 2026 rev:14 rq:1343114 version:22.7.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/git-town/git-town.changes        2026-03-23 
17:16:40.717935263 +0100
+++ /work/SRC/openSUSE:Factory/.git-town.new.8177/git-town.changes      
2026-03-27 16:53:34.621669687 +0100
@@ -1,0 +2,10 @@
+Fri Mar 27 06:14:22 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 22.7.1:
+  * Bug Fixes
+    - Breadcrumbs now display the proposal title for the current
+      branch when available (#6107).
+    - Fixed commit message formatting in the glab connector
+      (#6105).
+
+-------------------------------------------------------------------

Old:
----
  git-town-22.7.0.obscpio

New:
----
  git-town-22.7.1.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ git-town.spec ++++++
--- /var/tmp/diff_new_pack.r81LHa/_old  2026-03-27 16:53:35.389701838 +0100
+++ /var/tmp/diff_new_pack.r81LHa/_new  2026-03-27 16:53:35.389701838 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           git-town
-Version:        22.7.0
+Version:        22.7.1
 Release:        0
 Summary:        Git branches made easy
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.r81LHa/_old  2026-03-27 16:53:35.437703848 +0100
+++ /var/tmp/diff_new_pack.r81LHa/_new  2026-03-27 16:53:35.441704015 +0100
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/git-town/git-town.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">refs/tags/v22.7.0</param>
+    <param name="revision">refs/tags/v22.7.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.r81LHa/_old  2026-03-27 16:53:35.465705020 +0100
+++ /var/tmp/diff_new_pack.r81LHa/_new  2026-03-27 16:53:35.469705187 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/git-town/git-town.git</param>
-              <param 
name="changesrevision">976d42a1a62d0b109bfe137810c920a06b151a52</param></service></servicedata>
+              <param 
name="changesrevision">cb188e13b4c90f64640e28e551deca899590faa7</param></service></servicedata>
 (No newline at EOF)
 

++++++ git-town-22.7.0.obscpio -> git-town-22.7.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/CHANGELOG.md 
new/git-town-22.7.1/CHANGELOG.md
--- old/git-town-22.7.0/CHANGELOG.md    2026-03-21 15:37:06.000000000 +0100
+++ new/git-town-22.7.1/CHANGELOG.md    2026-03-27 02:47:58.000000000 +0100
@@ -1,5 +1,16 @@
 # Git Town Changelog
 
+## 22.7.1 (20226-03-26)
+
+#### Bug Fixes
+
+- Breadcrumbs now display the proposal title for the current branch when 
available ([#6107](https://github.com/git-town/git-town/pull/6107)).
+- Fixed commit message formatting in the `glab` connector 
([#6105](https://github.com/git-town/git-town/pull/6105)).
+
+#### Contributors
+
+Shoutout to @alexgeek, @kevgo, @yaadata for contributing code, feedback, and 
ideas to 4 shipped pull requests!
+
 ## 22.7.0 (2026-03-21)
 
 #### New Features
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/Makefile new/git-town-22.7.1/Makefile
--- old/git-town-22.7.0/Makefile        2026-03-21 15:37:06.000000000 +0100
+++ new/git-town-22.7.1/Makefile        2026-03-27 02:47:58.000000000 +0100
@@ -2,11 +2,34 @@
 
 # internal data and state
 .DEFAULT_GOAL := help
-RELEASE_VERSION := "22.7.0"
+RELEASE_VERSION := "22.7.1"
 GO_TEST_ARGS = LANG=C GOGC=off BROWSER=
 
-contest: tools/rta@${RTA_VERSION}  # run the Contest server
-       @tools/rta contest
+RTA          = tools/rta@$(RTA_VERSION)
+ACTIONLINT   = $(RTA) actionlint
+CONC         = $(RTA) conc
+CONTEST      = $(RTA) contest
+CUCUMBERSORT = $(RTA) cucumber-sort
+DEADCODE     = $(RTA) deadcode
+DEPTH        = $(RTA) depth
+DPRINT       = $(RTA) dprint
+EXHAUSTRUCT  = $(RTA) exhaustruct
+GHERKINLINT  = $(RTA) node node_modules/.bin/gherkin-lint
+GHOKIN       = $(RTA) ghokin
+GOFUMPT      = $(RTA) gofumpt
+GOLANGCILINT = $(RTA) golangci-lint
+NPM          = $(RTA) npm
+NPX          = $(RTA) npx
+NODE         = $(RTA) node
+SCC          = $(RTA) scc
+SHELLCHECK   = $(RTA) --optional shellcheck
+SHFMT        = $(RTA) shfmt
+STATICCHECK  = $(RTA) --from-source staticcheck
+TAPLO        = $(RTA) taplo
+TEXTRUNNER   = $(NODE) node_modules/.bin/text-runner
+
+contest: ${RTA}  # run the Contest server
+       @$(CONTEST)
 
 cuke: install  # runs all end-to-end tests with nice output
        @env $(GO_TEST_ARGS) messyoutput=0 go test -v
@@ -47,31 +70,31 @@
 cukewin: install  # runs all end-to-end tests on Windows
        go test . -v -count=1
 
-dependencies: tools/rta@${RTA_VERSION}  # prints the dependencies between the 
internal Go packages
-       @tools/rta depth . | grep git-town
+dependencies: ${RTA}  # prints the dependencies between the internal Go 
packages
+       @$(DEPTH) . | grep git-town
 
-doc: install node_modules  # tests the documentation
-       @tools/rta node node_modules/.bin/text-runner --offline
+doc: install node_modules ${RTA}  # tests the documentation
+       @$(TEXTRUNNER) --offline
 
-fix: tools/rta@${RTA_VERSION}  # runs all linters and auto-fixes
+fix: ${RTA}  # runs all linters and auto-fixes
        make --no-print-directory fix-optioncompare-in-tests
        go run tools/format_unittests/format_unittests.go
        go run tools/format_self/format_self.go
        make --no-print-directory keep-sorted
        make --no-print-directory generate-json-schema
-       tools/rta gofumpt -l -w .
-       tools/rta dprint fmt
-       tools/rta dprint fmt --config dprint-changelog.json
-       tools/rta shfmt -f . | grep -v node_modules | grep -v '^vendor/' | 
xargs tools/rta shfmt --write
+       $(GOFUMPT) -l -w .
+       $(DPRINT) fmt
+       $(DPRINT) fmt --config dprint-changelog.json
+       $(SHFMT) -f . | grep -v node_modules | grep -v '^vendor/' | xargs 
$(SHFMT) --write
        make --no-print-directory ghokin
        tools/generate_opcodes_all.sh
-       tools/rta cucumber-sort format
+       $(CUCUMBERSORT) format
 
 generate-json-schema:  # exports the JSON-Schema for the configuration file
        (cd tools/generate_json_schema && go build) && 
./tools/generate_json_schema/generate_json_schema > docs/git-town.schema.json
 
-ghokin: tools/rta@${RTA_VERSION}  # formats the Cucumber tests
-       @tools/rta ghokin fmt replace features/
+ghokin: ${RTA}  # formats the Cucumber tests
+       @$(GHOKIN) fmt replace features/
 
 help:  # prints all available targets
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
@@ -79,8 +102,8 @@
 install:  # builds for the current platform
        @go install -ldflags="-s -w"
 
-lint: node_modules tools/rta@${RTA_VERSION}  # lints the main codebase 
concurrently
-       @tools/rta conc --show=names \
+lint: node_modules ${RTA}  # lints the main codebase concurrently
+       @$(CONC) --show=names \
                "make --no-print-directory lint-smoke" \
                "make --no-print-directory alphavet" \
                "make --no-print-directory deadcode" \
@@ -96,18 +119,18 @@
                "make --no-print-directory lint-use-equal" \
                "git diff --check" \
                "cd tools/lint_steps && go build && ./lint_steps" \
-               "tools/rta actionlint" \
-               "tools/rta --from-source staticcheck ./..." \
+               "$(ACTIONLINT) " \
+               "$(STATICCHECK) ./..." \
                "tools/ensure_no_files_with_dashes.sh" \
-               "tools/rta shfmt -f . | grep -v 'node_modules' | grep -v 
'^vendor/' | xargs tools/rta --optional shellcheck" \
-               "tools/rta golangci-lint cache clean && tools/rta golangci-lint 
run" \
-               "tools/rta node node_modules/.bin/gherkin-lint" \
-               "tools/rta cucumber-sort check" \
+               "$(SHFMT) -f . | grep -v 'node_modules' | grep -v '^vendor/' | 
xargs $(SHELLCHECK)" \
+               "$(GOLANGCILINT) cache clean && $(GOLANGCILINT) run" \
+               "$(GHERKINLINT)" \
+               "$(CUCUMBERSORT) check" \
                "make --no-print-directory lint-configfile"
 
-lint-all: lint tools/rta@${RTA_VERSION}  # runs all linters
+lint-all: lint ${RTA}  # runs all linters
        (cd website && make test)
-# tools/rta govulncheck ./...   TODO: enable when Go 1.24.11 is available 
widely
+# $(RTA) govulncheck ./...   TODO: enable when Go 1.24.11 is available widely
        @echo lint tools/format_self
        @(cd tools/format_self && make test)
        @echo lint tools/format_unittests
@@ -139,15 +162,15 @@
        @echo lint tools/use_equal
        @(cd tools/use_equal && make test)
 
-alphavet:
-       @tools/rta --available alphavet && go vet "-vettool=$(shell tools/rta 
--which alphavet)" $(shell go list ./... | grep -v internal/cmd)
+alphavet: ${RTA}
+       @$(RTA) --available alphavet && go vet "-vettool=$(shell $(RTA) --which 
alphavet)" $(shell go list ./... | grep -v internal/cmd)
 
 fix-optioncompare-in-tests:
        @(cd tools/optioncompare_in_tests && go build) && 
./tools/optioncompare_in_tests/optioncompare_in_tests 
github.com/git-town/git-town/v22/...
 
-keep-sorted: tools/rta@${RTA_VERSION}
-       tools/rta --install ripgrep
-       tools/rta keep-sorted $(shell tools/rta ripgrep -l 'keep-sorted end' ./ 
--glob '!Makefile')
+keep-sorted: ${RTA}
+       @$(RTA) --install ripgrep
+       @$(RTA) keep-sorted $(shell $(RTA) ripgrep -l 'keep-sorted end' ./ 
--glob '!Makefile')
 
 lint-cached-connectors:
        @(cd tools/lint_cached_connectors && go build) && 
./tools/lint_cached_connectors/lint_cached_connectors
@@ -155,8 +178,8 @@
 lint-collector-addf:
        @(cd tools/collector_addf && go build) && 
./tools/collector_addf/collector_addf
 
-lint-configfile: tools/rta@${RTA_VERSION}
-       @tools/rta taplo check git-town.toml
+lint-configfile: ${RTA}
+       @$(TAPLO) check
 
 lint-iterate-map:
        @(cd tools/iterate_map && go build) && ./tools/iterate_map/iterate_map
@@ -173,9 +196,9 @@
 lint-optioncompare:
        @(cd tools/optioncompare && go build) && 
./tools/optioncompare/optioncompare github.com/git-town/git-town/v22/...
 
-lint-smoke: tools/rta@${RTA_VERSION}  # runs only the essential linters
-       @tools/rta exhaustruct -test=false "-i=github.com/git-town/git-town.*" 
github.com/git-town/git-town/...
-# @tools/rta ireturn 
--reject="github.com/git-town/git-town/v22/pkg/prelude.Option" 
github.com/git-town/git-town/...
+lint-smoke: ${RTA}  # runs only the essential linters
+       @$(EXHAUSTRUCT) -test=false "-i=github.com/git-town/git-town.*" 
github.com/git-town/git-town/...
+# @$(RTA) ireturn 
--reject="github.com/git-town/git-town/v22/pkg/prelude.Option" 
github.com/git-town/git-town/...
 
 lint-structs-sorted:
        @(cd tools/structs_sorted && go build) && 
./tools/structs_sorted/structs_sorted
@@ -186,27 +209,27 @@
 lint-use-equal:
        @(cd tools/use_equal && go build) && ./tools/use_equal/use_equal
 
-stats: tools/rta@${RTA_VERSION}  # shows code statistics
+stats: ${RTA}  # shows code statistics
        @find . -type f \
                | grep -v './node_modules' \
                | grep -v '\./vendor/' \
                | grep -v '\./.git/' \
                | grep -v './website/book' \
-               | xargs tools/rta scc
+               | xargs $(SCC)
 
 stats-release:  # displays statistics about the changes since the last release
        @(cd tools/stats_release && go build && ./stats_release 
v${RELEASE_VERSION})
 
 .PHONY: test
-test: install node_modules tools/rta@${RTA_VERSION}  # runs all the tests
-       @tools/rta conc --show=names \
+test: install node_modules ${RTA}  # runs all the tests
+       @$(CONC) --show=names \
                "make --no-print-directory cuke" \
                "make --no-print-directory doc" \
                "make --no-print-directory lint" \
                "make --no-print-directory unit"
 
-test-go: tools/rta@${RTA_VERSION}  # smoke tests while working on the Go code
-       @tools/rta conc --show=names \
+test-go: ${RTA}  # smoke tests while working on the Go code
+       @$(CONC) --show=names \
                "make --no-print-directory lint" \
                "make --no-print-directory unit"
 
@@ -235,36 +258,36 @@
        env GOGC=off go test -count=1 -shuffle=on -timeout=60s $(UNIT_TEST_DIRS)
        make --no-print-directory unit-text-runner
 
-unit-text-runner: tools/rta@${RTA_VERSION} node_modules
-       @tools/rta npm run unit
+unit-text-runner: ${RTA} node_modules
+       @$(NODE) --test text-runner/**/*.test.ts
 
 unit-race: install  # runs all the unit tests with race detector
        env GOGC=off go test -count=1 -timeout 60s -race $(UNIT_TEST_DIRS)
        cd website && make --no-print-directory unit
 
-update: tools/rta@${RTA_VERSION}  # updates all dependencies
+update: ${RTA}  # updates all dependencies
        go get -u ./...
        (cd tools/optioncompare && go get -u ./...)
        go mod tidy
        go work vendor
        rm -rf node_modules package-lock.json
-       tools/rta npx -y npm-check-updates -u
-       tools/rta npm install
-       tools/rta --update
-       tools/rta dprint config update
-       tools/rta dprint config update --config dprint-changelog.json
+       $(NPX) -y npm-check-updates -u
+       $(NPM) install
+       $(RTA) --update
+       $(DPRINT) config update
+       $(DPRINT) config update --config dprint-changelog.json
 
 # --- HELPER TARGETS 
--------------------------------------------------------------------------------------------------------------------------------
 
-deadcode: tools/rta@${RTA_VERSION}
-       @tools/rta --install deadcode
-       @tools/rta conc --error-on-output --show=failed \
-               "tools/rta deadcode 
github.com/git-town/git-town/tools/format_self" \
-               "tools/rta deadcode 
github.com/git-town/git-town/tools/format_unittests" \
-               "tools/rta deadcode 
github.com/git-town/git-town/tools/stats_release" \
-               "tools/rta deadcode 
github.com/git-town/git-town/tools/structs_sorted" \
-               "tools/rta deadcode 
github.com/git-town/git-town/tools/lint_steps" \
-               "tools/rta deadcode -test github.com/git-town/git-town/v22 \
+deadcode: ${RTA}
+       @$(RTA) --install deadcode
+       @$(CONC) --error-on-output --show=failed \
+               "$(DEADCODE) github.com/git-town/git-town/tools/format_self" \
+               "$(DEADCODE) 
github.com/git-town/git-town/tools/format_unittests" \
+               "$(DEADCODE) github.com/git-town/git-town/tools/stats_release" \
+               "$(DEADCODE) github.com/git-town/git-town/tools/structs_sorted" 
\
+               "$(DEADCODE) github.com/git-town/git-town/tools/lint_steps" \
+               "$(DEADCODE) -test github.com/git-town/git-town/v22 \
                        | grep -v BranchExists \
                        | grep -v 'Create$$' \
                        | grep -v CreateFile \
@@ -289,12 +312,10 @@
 
 tools/rta@${RTA_VERSION}:
        @rm -f tools/rta*
-       @(cd tools && curl 
https://raw.githubusercontent.com/kevgo/run-that-app/main/download.sh | sh -s 
${RTA_VERSION})
-       @mv tools/rta tools/rta@${RTA_VERSION}
-       @ln -s rta@${RTA_VERSION} tools/rta
+       @(cd tools && curl 
https://raw.githubusercontent.com/kevgo/run-that-app/main/download.sh | sh -s 
-- --version ${RTA_VERSION} --name rta@${RTA_VERSION})
 
-node_modules: package-lock.json tools/rta@${RTA_VERSION}
+node_modules: package-lock.json ${RTA}
        @echo "Installing Node based tools"
-       tools/rta npm ci
+       $(NPM) ci
        @touch package-lock.json  # update timestamp so that Make doesn't 
re-install it on every command
        @touch node_modules  # update timestamp so that Make doesn't re-install 
it on every command
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/contest.json 
new/git-town-22.7.1/contest.json
--- old/git-town-22.7.0/contest.json    2026-03-21 15:37:06.000000000 +0100
+++ new/git-town-22.7.1/contest.json    2026-03-27 02:47:58.000000000 +0100
@@ -33,13 +33,13 @@
     {
       "type": "test-file",
       "files": "**/*.test.ts",
-      "run": "tools/rta node --test {{file}}"
+      "run": "tools/[email protected] node --test {{file}}"
     },
 
     {
       "type": "test-file-line",
       "files": "**/*.test.ts",
-      "run": "tools/rta node --test-only {{file}}"
+      "run": "tools/[email protected] node --test-only {{file}}"
     },
 
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/docs/RELEASE.md 
new/git-town-22.7.1/docs/RELEASE.md
--- old/git-town-22.7.0/docs/RELEASE.md 2026-03-21 15:37:06.000000000 +0100
+++ new/git-town-22.7.1/docs/RELEASE.md 2026-03-27 02:47:58.000000000 +0100
@@ -12,7 +12,7 @@
     the README file
   - verify that the website content reflects all the changes made
   - search-and-replace the old version with the new version
-    - triple-digits: `22.7.0`
+    - triple-digits: `22.7.1`
     - double-digits: `22.7`
     - its best to do this manually so that you don't change unrelated version
       numbers in CHANGELOG.md, lockfiles, and data files
@@ -21,7 +21,7 @@
     - update `github.com/git-town/git-town/v22` (without trailing slash)
   - update the changelog with links to the website
 - ship the branch
-- `git sync --all && git checkout main && git tag v22.7.0 && git push --tags`
+- `git sync --all && git checkout main && git tag v22.7.1 && git push --tags`
 - wait for CI to finish the release:
   https://github.com/git-town/git-town/actions
 - edit the new unpublished release:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/features/delete/breadcrumb/stacks.feature 
new/git-town-22.7.1/features/delete/breadcrumb/stacks.feature
--- old/git-town-22.7.0/features/delete/breadcrumb/stacks.feature       
2026-03-21 15:37:06.000000000 +0100
+++ new/git-town-22.7.1/features/delete/breadcrumb/stacks.feature       
2026-03-27 02:47:58.000000000 +0100
@@ -73,7 +73,7 @@
 
         -------------------------
         - main
-          - **alpha** :point_left:
+          - **alpha proposal** :point_left:
             - https://example.com/pr/3
             - https://example.com/pr/4
               - https://example.com/pr/5
@@ -105,7 +105,7 @@
         -------------------------
         - main
           - https://example.com/pr/1
-            - **gamma1** :point_left:
+            - **gamma1 proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
@@ -123,7 +123,7 @@
         -------------------------
         - main
           - https://example.com/pr/1
-            - **gamma2** :point_left:
+            - **gamma2 proposal** :point_left:
               - https://example.com/pr/5
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
@@ -143,7 +143,7 @@
         - main
           - https://example.com/pr/1
             - https://example.com/pr/4
-              - **delta** :point_left:
+              - **delta proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
@@ -172,9 +172,11 @@
       |        | Update body for #5 ... ok                                     
  |
       |        | Finding all proposals for gamma1 ... beta                     
  |
       |        | Finding proposal from gamma1 into alpha ... none              
  |
+      |        | Update body for #3 ... ok                                     
  |
       |        | Finding all proposals for gamma2 ... beta                     
  |
       |        | Finding proposal from gamma2 into alpha ... none              
  |
       |        | Finding proposal from delta into gamma2 ... #5 (delta 
proposal) |
+      |        | Update body for #4 ... ok                                     
  |
     And the initial branches and lineage exist now
     And the initial commits exist now
     And the proposals are now
@@ -190,7 +192,7 @@
 
         -------------------------
         - main
-          - **alpha** :point_left:
+          - **alpha proposal** :point_left:
             - gamma2
               - https://example.com/pr/5
 
@@ -259,7 +261,7 @@
         - main
           - https://example.com/pr/1
             - gamma2
-              - **delta** :point_left:
+              - **delta proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/features/detach/breadcrumb/stacks.feature 
new/git-town-22.7.1/features/detach/breadcrumb/stacks.feature
--- old/git-town-22.7.0/features/detach/breadcrumb/stacks.feature       
2026-03-21 15:37:06.000000000 +0100
+++ new/git-town-22.7.1/features/detach/breadcrumb/stacks.feature       
2026-03-27 02:47:58.000000000 +0100
@@ -87,7 +87,7 @@
 
         -------------------------
         - main
-          - **alpha** :point_left:
+          - **alpha proposal** :point_left:
             - https://example.com/pr/3
             - https://example.com/pr/4
               - https://example.com/pr/5
@@ -119,7 +119,7 @@
         -------------------------
         - main
           - https://example.com/pr/1
-            - **gamma1** :point_left:
+            - **gamma1 proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
@@ -137,7 +137,7 @@
         -------------------------
         - main
           - https://example.com/pr/1
-            - **gamma2** :point_left:
+            - **gamma2 proposal** :point_left:
               - https://example.com/pr/5
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
@@ -157,7 +157,7 @@
         - main
           - https://example.com/pr/1
             - https://example.com/pr/4
-              - **delta** :point_left:
+              - **delta proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
@@ -185,9 +185,11 @@
       |        | Update body for #5 ... ok                                     
  |
       |        | Finding all proposals for gamma1 ... beta                     
  |
       |        | Finding proposal from gamma1 into alpha ... none              
  |
+      |        | Update body for #3 ... ok                                     
  |
       |        | Finding all proposals for gamma2 ... beta                     
  |
       |        | Finding proposal from gamma2 into alpha ... none              
  |
       |        | Finding proposal from delta into gamma2 ... #5 (delta 
proposal) |
+      |        | Update body for #4 ... ok                                     
  |
     And the initial branches and lineage exist now
     And the initial commits exist now
     And the proposals are now
@@ -203,7 +205,7 @@
 
         -------------------------
         - main
-          - **alpha** :point_left:
+          - **alpha proposal** :point_left:
             - gamma2
               - https://example.com/pr/5
 
@@ -272,7 +274,7 @@
         - main
           - https://example.com/pr/1
             - gamma2
-              - **delta** :point_left:
+              - **delta proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/features/merge/breadcrumb/stacks.feature 
new/git-town-22.7.1/features/merge/breadcrumb/stacks.feature
--- old/git-town-22.7.0/features/merge/breadcrumb/stacks.feature        
2026-03-21 15:37:06.000000000 +0100
+++ new/git-town-22.7.1/features/merge/breadcrumb/stacks.feature        
2026-03-27 02:47:58.000000000 +0100
@@ -74,7 +74,7 @@
 
         -------------------------
         - main
-          - **alpha** :point_left:
+          - **alpha proposal** :point_left:
             - https://example.com/pr/3
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
@@ -93,7 +93,7 @@
         -------------------------
         - main
           - https://example.com/pr/1
-            - **gamma** :point_left:
+            - **gamma proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
@@ -118,6 +118,7 @@
       |        | Finding all proposals for gamma ... beta                      
|
       |        | Finding proposal from alpha into main ... #1 (alpha proposal) 
|
       |        | Finding proposal from gamma into alpha ... none               
|
+      |        | Update body for #3 ... ok                                     
|
     And the initial branches and lineage exist now
     And the initial commits exist now
     And the proposals are now
@@ -133,7 +134,7 @@
 
         -------------------------
         - main
-          - **alpha** :point_left:
+          - **alpha proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/features/propose/breadcrumb/stack_set_to_stacks.feature 
new/git-town-22.7.1/features/propose/breadcrumb/stack_set_to_stacks.feature
--- old/git-town-22.7.0/features/propose/breadcrumb/stack_set_to_stacks.feature 
2026-03-21 15:37:06.000000000 +0100
+++ new/git-town-22.7.1/features/propose/breadcrumb/stack_set_to_stacks.feature 
2026-03-27 02:47:58.000000000 +0100
@@ -78,7 +78,7 @@
 
         -------------------------
         - main
-          - **branch-1** :point_left:
+          - **branch-1 proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/features/rename/breadcrumb/stacks.feature 
new/git-town-22.7.1/features/rename/breadcrumb/stacks.feature
--- old/git-town-22.7.0/features/rename/breadcrumb/stacks.feature       
2026-03-21 15:37:06.000000000 +0100
+++ new/git-town-22.7.1/features/rename/breadcrumb/stacks.feature       
2026-03-27 02:47:58.000000000 +0100
@@ -78,7 +78,7 @@
 
         -------------------------
         - main
-          - **alpha** :point_left:
+          - **alpha proposal** :point_left:
             - new
               - https://example.com/pr/3
 
@@ -99,7 +99,7 @@
         - main
           - https://example.com/pr/1
             - new
-              - **gamma** :point_left:
+              - **gamma proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
@@ -126,6 +126,7 @@
       |        | Finding proposal from alpha into main ... #1 (alpha proposal) 
|
       |        | Finding proposal from new into alpha ... none                 
|
       |        | Finding proposal from gamma into new ... none                 
|
+      |        | Update body for #3 ... ok                                     
|
       |        | Finding all proposals for new ... none                        
|
     And the initial branches and lineage exist now
     And the initial commits exist now
@@ -142,7 +143,7 @@
 
         -------------------------
         - main
-          - **alpha** :point_left:
+          - **alpha proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/features/set_parent/breadcrumb/stacks.feature 
new/git-town-22.7.1/features/set_parent/breadcrumb/stacks.feature
--- old/git-town-22.7.0/features/set_parent/breadcrumb/stacks.feature   
2026-03-21 15:37:06.000000000 +0100
+++ new/git-town-22.7.1/features/set_parent/breadcrumb/stacks.feature   
2026-03-27 02:47:58.000000000 +0100
@@ -65,7 +65,7 @@
         -------------------------
         - main
           - https://example.com/pr/3
-            - **child** :point_left:
+            - **child proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
@@ -93,7 +93,7 @@
 
         -------------------------
         - main
-          - **new-parent** :point_left:
+          - **new-parent proposal** :point_left:
             - https://example.com/pr/1
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
@@ -111,7 +111,9 @@
       |        | Finding all proposals for child ... old-parent                
          |
       |        | Finding proposal from new-parent into main ... #3 (new-parent 
proposal) |
       |        | Finding proposal from child into new-parent ... none          
          |
+      |        | Update body for #1 ... ok                                     
          |
       |        | Finding all proposals for new-parent ... main                 
          |
+      |        | Finding proposal from child into new-parent ... none          
          |
       |        | Update body for #3 ... ok                                     
          |
       |        | Finding all proposals for old-parent ... main                 
          |
     And the initial branches and lineage exist now
@@ -158,7 +160,7 @@
 
         -------------------------
         - main
-          - **new-parent** :point_left:
+          - **new-parent proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/features/ship/squash_merge/current_branch/breadcrumb/branches.feature
 
new/git-town-22.7.1/features/ship/squash_merge/current_branch/breadcrumb/branches.feature
--- 
old/git-town-22.7.0/features/ship/squash_merge/current_branch/breadcrumb/branches.feature
   2026-03-21 15:37:06.000000000 +0100
+++ 
new/git-town-22.7.1/features/ship/squash_merge/current_branch/breadcrumb/branches.feature
   2026-03-27 02:47:58.000000000 +0100
@@ -64,7 +64,7 @@
 
         -------------------------
         - main
-          - **child** :point_left:
+          - **child proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
@@ -83,6 +83,7 @@
       |        | git checkout parent                                    |
       |        | Finding all proposals for child ... parent             |
       |        | Finding proposal from child into main ... none         |
+      |        | Update body for #2 ... ok                              |
       |        | Finding all proposals for parent ... none              |
     And the initial branches and lineage exist now
     And these commits exist now
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/features/swap/breadcrumb/stacks.feature 
new/git-town-22.7.1/features/swap/breadcrumb/stacks.feature
--- old/git-town-22.7.0/features/swap/breadcrumb/stacks.feature 2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/features/swap/breadcrumb/stacks.feature 2026-03-27 
02:47:58.000000000 +0100
@@ -80,7 +80,7 @@
         -------------------------
         - main
           - https://example.com/pr/2
-            - **branch-1** :point_left:
+            - **branch-1 proposal** :point_left:
               - https://example.com/pr/3
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
@@ -98,7 +98,7 @@
 
         -------------------------
         - main
-          - **branch-2** :point_left:
+          - **branch-2 proposal** :point_left:
             - https://example.com/pr/1
               - https://example.com/pr/3
 
@@ -119,7 +119,7 @@
         - main
           - https://example.com/pr/2
             - https://example.com/pr/1
-              - **branch-3** :point_left:
+              - **branch-3 proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/features/sync/all_branches/merge_sync_strategy/breadcrumb/stacks.feature
 
new/git-town-22.7.1/features/sync/all_branches/merge_sync_strategy/breadcrumb/stacks.feature
--- 
old/git-town-22.7.0/features/sync/all_branches/merge_sync_strategy/breadcrumb/stacks.feature
        2026-03-21 15:37:06.000000000 +0100
+++ 
new/git-town-22.7.1/features/sync/all_branches/merge_sync_strategy/breadcrumb/stacks.feature
        2026-03-27 02:47:58.000000000 +0100
@@ -66,7 +66,7 @@
 
         -------------------------
         - main
-          - **alpha** :point_left:
+          - **alpha proposal** :point_left:
             - https://example.com/pr/2
               - https://example.com/pr/3
 
@@ -86,7 +86,7 @@
         -------------------------
         - main
           - https://example.com/pr/1
-            - **beta** :point_left:
+            - **beta proposal** :point_left:
               - https://example.com/pr/3
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
@@ -106,7 +106,7 @@
         - main
           - https://example.com/pr/1
             - https://example.com/pr/2
-              - **gamma** :point_left:
+              - **gamma proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/features/sync/current_branch/feature_branch/breadcrumb/stacks.feature
 
new/git-town-22.7.1/features/sync/current_branch/feature_branch/breadcrumb/stacks.feature
--- 
old/git-town-22.7.0/features/sync/current_branch/feature_branch/breadcrumb/stacks.feature
   2026-03-21 15:37:06.000000000 +0100
+++ 
new/git-town-22.7.1/features/sync/current_branch/feature_branch/breadcrumb/stacks.feature
   2026-03-27 02:47:58.000000000 +0100
@@ -57,7 +57,7 @@
 
         -------------------------
         - main
-          - **branch-1** :point_left:
+          - **branch-1 proposal** :point_left:
             - https://example.com/pr/2
               - https://example.com/pr/3
 
@@ -77,7 +77,7 @@
         -------------------------
         - main
           - https://example.com/pr/1
-            - **branch-2** :point_left:
+            - **branch-2 proposal** :point_left:
               - https://example.com/pr/3
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
@@ -97,7 +97,7 @@
         - main
           - https://example.com/pr/1
             - https://example.com/pr/2
-              - **branch-3** :point_left:
+              - **branch-3 proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
@@ -139,7 +139,7 @@
 
         -------------------------
         - main
-          - **branch-1** :point_left:
+          - **branch-1 proposal** :point_left:
             - https://example.com/pr/2
               - https://example.com/pr/3
 
@@ -159,7 +159,7 @@
         -------------------------
         - main
           - https://example.com/pr/1
-            - **branch-2** :point_left:
+            - **branch-2 proposal** :point_left:
               - https://example.com/pr/3
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
@@ -179,7 +179,7 @@
         - main
           - https://example.com/pr/1
             - https://example.com/pr/2
-              - **branch-3** :point_left:
+              - **branch-3 proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/features/sync/stack/rebase_sync_strategy/breadcrumb/observed_parent.feature
 
new/git-town-22.7.1/features/sync/stack/rebase_sync_strategy/breadcrumb/observed_parent.feature
--- 
old/git-town-22.7.0/features/sync/stack/rebase_sync_strategy/breadcrumb/observed_parent.feature
     2026-03-21 15:37:06.000000000 +0100
+++ 
new/git-town-22.7.1/features/sync/stack/rebase_sync_strategy/breadcrumb/observed_parent.feature
     2026-03-27 02:47:58.000000000 +0100
@@ -50,7 +50,7 @@
         -------------------------
         - main
           - https://example.com/pr/1
-            - **child** :point_left:
+            - **child proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/features/sync/stack/rebase_sync_strategy/breadcrumb/stacks.feature
 
new/git-town-22.7.1/features/sync/stack/rebase_sync_strategy/breadcrumb/stacks.feature
--- 
old/git-town-22.7.0/features/sync/stack/rebase_sync_strategy/breadcrumb/stacks.feature
      2026-03-21 15:37:06.000000000 +0100
+++ 
new/git-town-22.7.1/features/sync/stack/rebase_sync_strategy/breadcrumb/stacks.feature
      2026-03-27 02:47:58.000000000 +0100
@@ -54,7 +54,7 @@
 
         -------------------------
         - main
-          - **parent** :point_left:
+          - **parent proposal** :point_left:
             - https://example.com/pr/2
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
@@ -73,7 +73,7 @@
         -------------------------
         - main
           - https://example.com/pr/1
-            - **child** :point_left:
+            - **child proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
@@ -117,7 +117,7 @@
 
         -------------------------
         - main
-          - **parent** :point_left:
+          - **parent proposal** :point_left:
             - https://example.com/pr/2
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
@@ -136,7 +136,7 @@
         -------------------------
         - main
           - https://example.com/pr/1
-            - **child** :point_left:
+            - **child proposal** :point_left:
 
         <sup>[Stack](https://www.git-town.com/how-to/proposal-breadcrumb.html) 
generated by [Git Town](https://github.com/git-town/git-town)</sup>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/features/version/version.feature 
new/git-town-22.7.1/features/version/version.feature
--- old/git-town-22.7.0/features/version/version.feature        2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/features/version/version.feature        2026-03-27 
02:47:58.000000000 +0100
@@ -6,5 +6,5 @@
     When I run "git-town --version"
     Then Git Town prints:
       """
-      Git Town 22.7.0
+      Git Town 22.7.1
       """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/internal/config/version.go 
new/git-town-22.7.1/internal/config/version.go
--- old/git-town-22.7.0/internal/config/version.go      2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/internal/config/version.go      2026-03-27 
02:47:58.000000000 +0100
@@ -1,4 +1,4 @@
 package config
 
 // GitTownVersion provides the current Git Town version.
-const GitTownVersion = "22.7.0"
+const GitTownVersion = "22.7.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/internal/forge/glab/connector.go 
new/git-town-22.7.1/internal/forge/glab/connector.go
--- old/git-town-22.7.0/internal/forge/glab/connector.go        2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/internal/forge/glab/connector.go        2026-03-27 
02:47:58.000000000 +0100
@@ -130,7 +130,7 @@
 var _ forgedomain.ProposalMerger = glabConnector // type check
 
 func (self Connector) SquashMergeProposal(number forgedomain.ProposalNumber, 
message gitdomain.CommitMessage) error {
-       return self.Frontend.Run("glab", "mr", "merge", "--squash", 
"--body="+message.String(), number.String())
+       return self.Frontend.Run("glab", "mr", "merge", "--squash", 
"--squash-message="+message.String(), number.String())
 }
 
 // ============================================================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/internal/proposallineage/render_test.go 
new/git-town-22.7.1/internal/proposallineage/render_test.go
--- old/git-town-22.7.0/internal/proposallineage/render_test.go 2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/internal/proposallineage/render_test.go 2026-03-27 
02:47:58.000000000 +0100
@@ -40,7 +40,8 @@
        tf.count++
        return Some(forgedomain.Proposal{
                Data: forgedomain.ProposalData{
-                       URL: "https://www.github.com/git-town/git-town/pull/"; + 
strconv.Itoa(tf.count),
+                       Title: gitdomain.ProposalTitle(source.String() + " 
proposal title"),
+                       URL:   "https://www.github.com/git-town/git-town/pull/"; 
+ strconv.Itoa(tf.count),
                },
        }), nil
 }
@@ -83,7 +84,7 @@
 
 -------------------------
 - main
-  - **feature-a** :point_left:
+  - **feature-a proposal title** :point_left:
     - https://www.github.com/git-town/git-town/pull/2
     - https://www.github.com/git-town/git-town/pull/3
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/internal/proposallineage/render_tree.go 
new/git-town-22.7.1/internal/proposallineage/render_tree.go
--- old/git-town-22.7.0/internal/proposallineage/render_tree.go 2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/internal/proposallineage/render_tree.go 2026-03-27 
02:47:58.000000000 +0100
@@ -32,12 +32,16 @@
                isCurrentBranch := node.Branch == currentBranch && !foundCurrent
                proposal, hasProposal := node.Proposal.Get()
                switch {
-               case isCurrentBranch:
+               case isCurrentBranch && hasProposal:
                        builder.WriteString("**")
-                       builder.WriteString(node.Branch.String())
+                       builder.WriteString(proposal.Data.Data().Title.String())
                        builder.WriteString("**")
                case hasProposal:
                        builder.WriteString(proposal.Data.Data().URL)
+               case isCurrentBranch:
+                       builder.WriteString("**")
+                       builder.WriteString(node.Branch.String())
+                       builder.WriteString("**")
                default:
                        builder.WriteString(node.Branch.String())
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/internal/proposallineage/render_tree_test.go 
new/git-town-22.7.1/internal/proposallineage/render_tree_test.go
--- old/git-town-22.7.0/internal/proposallineage/render_tree_test.go    
2026-03-21 15:37:06.000000000 +0100
+++ new/git-town-22.7.1/internal/proposallineage/render_tree_test.go    
2026-03-27 02:47:58.000000000 +0100
@@ -84,7 +84,8 @@
                                        },
                                        Proposal: Some(forgedomain.Proposal{
                                                Data: forgedomain.ProposalData{
-                                                       URL: 
"https://www.github.com/git-town/pull/1";,
+                                                       Title: "Feature 1 
proposal",
+                                                       URL:   
"https://www.github.com/git-town/pull/1";,
                                                },
                                        }),
                                },
@@ -94,7 +95,7 @@
                want := `
 -------------------------
 - main
-  - **feature-1** :point_left:
+  - **Feature 1 proposal** :point_left:
     - https://www.github.com/git-town/pull/1A
     - https://www.github.com/git-town/pull/1B
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/package.json 
new/git-town-22.7.1/package.json
--- old/git-town-22.7.0/package.json    2026-03-21 15:37:06.000000000 +0100
+++ new/git-town-22.7.1/package.json    2026-03-27 02:47:58.000000000 +0100
@@ -4,8 +4,5 @@
     "gherkin-lint": "4.2.4",
     "text-runner": "7.4.0",
     "textrun-make": "0.6.0"
-  },
-  "scripts": {
-    "unit": "tools/rta node --test text-runner/**/*.test.ts"
   }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/tools/collector_addf/Makefile 
new/git-town-22.7.1/tools/collector_addf/Makefile
--- old/git-town-22.7.0/tools/collector_addf/Makefile   2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/tools/collector_addf/Makefile   2026-03-27 
02:47:58.000000000 +0100
@@ -1,19 +1,23 @@
 .DEFAULT_GOAL := help
 
-fix:  # runs all linters and auto-fixes
-       ../rta gofumpt -l -w .
+RTA_VERSION = 0.30.0  # run-that-app version to use
+
+RTA = ../rta@$(RTA_VERSION)
+
+fix: ${RTA} # runs all linters and auto-fixes
+       $(RTA) gofumpt -l -w .
        go run ../format_self/format_self.go
 
 help:  # prints all available targets
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
-lint:  # runs all linters
-       ../rta golangci-lint run
-       ../rta deadcode github.com/git-town/git-town/tools/collector_addf
-       @../rta --available alphavet && go vet "-vettool=$(shell ../rta --which 
alphavet)" $(shell go list ./...)
+lint: $(RTA) # runs all linters
+       $(RTA) golangci-lint run
+       $(RTA) deadcode github.com/git-town/git-town/tools/collector_addf
+       @$(RTA) --available alphavet && go vet "-vettool=$(shell $(RTA) --which 
alphavet)" $(shell go list ./...)
        (cd ../structs_sorted && go build) && ../structs_sorted/structs_sorted
        ../ensure_no_files_with_dashes.sh
-       ../rta golangci-lint cache clean
-       ../rta golangci-lint run
+       $(RTA) golangci-lint cache clean
+       $(RTA) golangci-lint run
 
 test: lint  # runs all tests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/tools/format_self/Makefile 
new/git-town-22.7.1/tools/format_self/Makefile
--- old/git-town-22.7.0/tools/format_self/Makefile      2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/tools/format_self/Makefile      2026-03-27 
02:47:58.000000000 +0100
@@ -1,7 +1,10 @@
 .DEFAULT_GOAL := help
 
+RTA_VERSION = 0.30.0  # run-that-app version to use
+RTA = ../rta@$(RTA_VERSION)
+
 fix:  # runs all linters and auto-fixes
-       ../rta gofumpt -l -w .
+       $(RTA) gofumpt -l -w .
        go run ../format_unittests/format_unittests.go
        go run ../format_self/format_self.go
 
@@ -9,13 +12,13 @@
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
 lint:  # runs all linters
-       ../rta golangci-lint run
-       ../rta deadcode github.com/git-town/git-town/tools/structs_sorted
-       @../rta --available alphavet && go vet "-vettool=$(shell ../rta --which 
alphavet)" $(shell go list ./...)
+       $(RTA) golangci-lint run
+       $(RTA) deadcode github.com/git-town/git-town/tools/structs_sorted
+       @$(RTA) --available alphavet && go vet "-vettool=$(shell $(RTA) --which 
alphavet)" $(shell go list ./...)
        (cd ../structs_sorted && go build) && ../structs_sorted/structs_sorted
        ../ensure_no_files_with_dashes.sh
-       ../rta golangci-lint cache clean
-       ../rta golangci-lint run
+       $(RTA) golangci-lint cache clean
+       $(RTA) golangci-lint run
 
 test: unit lint  # runs all tests
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/tools/format_unittests/Makefile 
new/git-town-22.7.1/tools/format_unittests/Makefile
--- old/git-town-22.7.0/tools/format_unittests/Makefile 2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/tools/format_unittests/Makefile 2026-03-27 
02:47:58.000000000 +0100
@@ -1,7 +1,10 @@
 .DEFAULT_GOAL := help
 
+RTA_VERSION = 0.30.0  # run-that-app version to use
+RTA = ../rta@$(RTA_VERSION)
+
 fix:  # runs all linters and auto-fixes
-       ../rta gofumpt -l -w .
+       $(RTA) gofumpt -l -w .
        go run ../format_unittests/format_unittests.go
        go run ../format_self/format_self.go
 
@@ -9,13 +12,13 @@
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
 lint:  # runs all linters
-       ../rta golangci-lint run
-       ../rta deadcode github.com/git-town/git-town/tools/structs_sorted
-       @../rta --available alphavet && go vet "-vettool=$(shell ../rta --which 
alphavet)" $(shell go list ./...)
+       $(RTA) golangci-lint run
+       $(RTA) deadcode github.com/git-town/git-town/tools/structs_sorted
+       @$(RTA) --available alphavet && go vet "-vettool=$(shell $(RTA) --which 
alphavet)" $(shell go list ./...)
        (cd ../structs_sorted && go build) && ../structs_sorted/structs_sorted
        ../ensure_no_files_with_dashes.sh
-       ../rta golangci-lint cache clean
-       ../rta golangci-lint run
+       $(RTA) golangci-lint cache clean
+       $(RTA) golangci-lint run
 
 test: unit lint  # runs all tests
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/tools/generate_json_schema/Makefile 
new/git-town-22.7.1/tools/generate_json_schema/Makefile
--- old/git-town-22.7.0/tools/generate_json_schema/Makefile     2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/tools/generate_json_schema/Makefile     2026-03-27 
02:47:58.000000000 +0100
@@ -1,20 +1,23 @@
 .DEFAULT_GOAL := help
 
+RTA_VERSION = 0.30.0  # run-that-app version to use
+RTA = ../rta@$(RTA_VERSION)
+
 fix:  # runs all linters and auto-fixes
-       ../rta gofumpt -l -w .
+       $(RTA) gofumpt -l -w .
        go run ../format_unittests/format_unittests.go
 
 help:  # prints all available targets
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
 lint:  # runs all linters
-       ../rta golangci-lint run
-       ../rta deadcode 
github.com/git-town/git-town/v22/tools/generate_json_schema
-       @../rta --available alphavet && go vet "-vettool=$(shell ../rta --which 
alphavet)" $(shell go list ./...)
+       $(RTA) golangci-lint run
+       $(RTA) deadcode 
github.com/git-town/git-town/v22/tools/generate_json_schema
+       @$(RTA) --available alphavet && go vet "-vettool=$(shell $(RTA) --which 
alphavet)" $(shell go list ./...)
        (cd ../structs_sorted && go build) && ../structs_sorted/structs_sorted
        ../ensure_no_files_with_dashes.sh
-       ../rta golangci-lint cache clean
-       ../rta golangci-lint run
+       $(RTA) golangci-lint cache clean
+       $(RTA) golangci-lint run
 
 test: unit lint  # runs all tests
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/tools/iterate_map/Makefile 
new/git-town-22.7.1/tools/iterate_map/Makefile
--- old/git-town-22.7.0/tools/iterate_map/Makefile      2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/tools/iterate_map/Makefile      2026-03-27 
02:47:58.000000000 +0100
@@ -1,19 +1,22 @@
 .DEFAULT_GOAL := help
 
+RTA_VERSION = 0.30.0  # run-that-app version to use
+RTA = ../rta@$(RTA_VERSION)
+
 fix:  # runs all linters and auto-fixes
-       ../rta gofumpt -l -w .
+       $(RTA) gofumpt -l -w .
        go run ../format_self/format_self.go
 
 help:  # prints all available targets
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
 lint:  # runs all linters
-       ../rta golangci-lint run
-       ../rta deadcode github.com/git-town/git-town/tools/structs_sorted
-       @../rta --available alphavet && go vet "-vettool=$(shell ../rta --which 
alphavet)" $(shell go list ./...)
+       $(RTA) golangci-lint run
+       $(RTA) deadcode github.com/git-town/git-town/tools/structs_sorted
+       @$(RTA) --available alphavet && go vet "-vettool=$(shell $(RTA) --which 
alphavet)" $(shell go list ./...)
        (cd ../structs_sorted && go build) && ../structs_sorted/structs_sorted
        ../ensure_no_files_with_dashes.sh
-       ../rta golangci-lint cache clean
-       ../rta golangci-lint run
+       $(RTA) golangci-lint cache clean
+       $(RTA) golangci-lint run
 
 test: lint  # runs all tests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/tools/lint_cached_connectors/Makefile 
new/git-town-22.7.1/tools/lint_cached_connectors/Makefile
--- old/git-town-22.7.0/tools/lint_cached_connectors/Makefile   2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/tools/lint_cached_connectors/Makefile   2026-03-27 
02:47:58.000000000 +0100
@@ -1,16 +1,19 @@
 .DEFAULT_GOAL := help
 
+RTA_VERSION = 0.30.0  # run-that-app version to use
+RTA = ../rta@$(RTA_VERSION)
+
 fix:  # runs all linters and auto-fixes
-       ../rta gofumpt -l -w .
+       $(RTA) gofumpt -l -w .
        go run ../format_self/format_self.go
 
 help:  # prints all available targets
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
 lint:  # runs all linters
-       ../rta golangci-lint cache clean
-       ../rta golangci-lint run
-       ../rta deadcode 
github.com/git-town/git-town/tools/lint_cached_connectors
+       $(RTA) golangci-lint cache clean
+       $(RTA) golangci-lint run
+       $(RTA) deadcode 
github.com/git-town/git-town/tools/lint_cached_connectors
 
 test: lint unit fix  # runs all tests
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/tools/lint_steps/Makefile 
new/git-town-22.7.1/tools/lint_steps/Makefile
--- old/git-town-22.7.0/tools/lint_steps/Makefile       2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/tools/lint_steps/Makefile       2026-03-27 
02:47:58.000000000 +0100
@@ -1,7 +1,10 @@
 .DEFAULT_GOAL := help
 
+RTA_VERSION = 0.30.0  # run-that-app version to use
+RTA = ../rta@$(RTA_VERSION)
+
 fix:  # runs all linters and auto-fixes
-       ../rta gofumpt -l -w .
+       $(RTA) gofumpt -l -w .
        go run ../format_unittests/format_unittests.go
        go run ../format_self/format_self.go
 
@@ -9,13 +12,13 @@
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
 lint:  # runs all linters
-       ../rta golangci-lint run
-       ../rta deadcode github.com/git-town/git-town/tools/structs_sorted
-       @../rta --available alphavet && go vet "-vettool=$(shell ../rta --which 
alphavet)" $(shell go list ./...)
+       $(RTA) golangci-lint run
+       $(RTA) deadcode github.com/git-town/git-town/tools/structs_sorted
+       @$(RTA) --available alphavet && go vet "-vettool=$(shell $(RTA) --which 
alphavet)" $(shell go list ./...)
        (cd ../structs_sorted && go build) && ../structs_sorted/structs_sorted
        ../ensure_no_files_with_dashes.sh
-       ../rta golangci-lint cache clean
-       ../rta golangci-lint run
+       $(RTA) golangci-lint cache clean
+       $(RTA) golangci-lint run
 
 test: unit lint  # runs all tests
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/tools/messages_sorted/Makefile 
new/git-town-22.7.1/tools/messages_sorted/Makefile
--- old/git-town-22.7.0/tools/messages_sorted/Makefile  2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/tools/messages_sorted/Makefile  2026-03-27 
02:47:58.000000000 +0100
@@ -1,7 +1,10 @@
 .DEFAULT_GOAL := help
 
+RTA_VERSION = 0.30.0  # run-that-app version to use
+RTA = ../rta@$(RTA_VERSION)
+
 fix:  # runs all linters and auto-fixes
-       ../rta gofumpt -l -w .
+       $(RTA) gofumpt -l -w .
        go run ../format_unittests/format_unittests.go
        go run ../format_self/format_self.go
 
@@ -9,13 +12,13 @@
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
 lint:  # runs all linters
-       ../rta golangci-lint run
-       ../rta deadcode github.com/git-town/git-town/tools/structs_sorted
-       @../rta --available alphavet && go vet "-vettool=$(shell ../rta --which 
alphavet)" $(shell go list ./...)
+       $(RTA) golangci-lint run
+       $(RTA) deadcode github.com/git-town/git-town/tools/structs_sorted
+       @$(RTA) --available alphavet && go vet "-vettool=$(shell $(RTA) --which 
alphavet)" $(shell go list ./...)
        (cd ../structs_sorted && go build) && ../structs_sorted/structs_sorted
        ../ensure_no_files_with_dashes.sh
-       ../rta golangci-lint cache clean
-       ../rta golangci-lint run
+       $(RTA) golangci-lint cache clean
+       $(RTA) golangci-lint run
 
 test: unit lint  # runs all tests
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/tools/messy_output/Makefile 
new/git-town-22.7.1/tools/messy_output/Makefile
--- old/git-town-22.7.0/tools/messy_output/Makefile     2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/tools/messy_output/Makefile     2026-03-27 
02:47:58.000000000 +0100
@@ -1,7 +1,10 @@
 .DEFAULT_GOAL := help
 
+RTA_VERSION = 0.30.0  # run-that-app version to use
+RTA = ../rta@$(RTA_VERSION)
+
 fix:  # runs all linters and auto-fixes
-       ../rta gofumpt -l -w .
+       $(RTA) gofumpt -l -w .
        go run ../format_unittests/format_unittests.go
        go run ../format_self/format_self.go
 
@@ -9,13 +12,13 @@
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
 lint:  # runs all linters
-       ../rta golangci-lint run
-       ../rta deadcode github.com/git-town/git-town/tools/structs_sorted
-       @../rta --available alphavet && go vet "-vettool=$(shell ../rta --which 
alphavet)" $(shell go list ./...)
+       $(RTA) golangci-lint run
+       $(RTA) deadcode github.com/git-town/git-town/tools/structs_sorted
+       @$(RTA) --available alphavet && go vet "-vettool=$(shell $(RTA) --which 
alphavet)" $(shell go list ./...)
        (cd ../structs_sorted && go build) && ../structs_sorted/structs_sorted
        ../ensure_no_files_with_dashes.sh
-       ../rta golangci-lint cache clean
-       ../rta golangci-lint run
+       $(RTA) golangci-lint cache clean
+       $(RTA) golangci-lint run
 
 test: unit lint  # runs all tests
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/tools/optioncompare/Makefile 
new/git-town-22.7.1/tools/optioncompare/Makefile
--- old/git-town-22.7.0/tools/optioncompare/Makefile    2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/tools/optioncompare/Makefile    2026-03-27 
02:47:58.000000000 +0100
@@ -1,7 +1,10 @@
 .DEFAULT_GOAL := help
 
+RTA_VERSION = 0.30.0  # run-that-app version to use
+RTA = ../rta@$(RTA_VERSION)
+
 fix:  # runs all linters and auto-fixes
-       ../rta gofumpt -l -w .
+       $(RTA) gofumpt -l -w .
        go run ../format_unittests/format_unittests.go
        go run ../format_self/format_self.go
 
@@ -9,13 +12,13 @@
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
 lint:  # runs all linters
-       ../rta golangci-lint run
-       ../rta deadcode github.com/git-town/git-town/tools/structs_sorted
-       @../rta --available alphavet && go vet "-vettool=$(shell ../rta --which 
alphavet)" $(shell go list ./...)
+       $(RTA) golangci-lint run
+       $(RTA) deadcode github.com/git-town/git-town/tools/structs_sorted
+       @$(RTA) --available alphavet && go vet "-vettool=$(shell $(RTA) --which 
alphavet)" $(shell go list ./...)
        (cd ../structs_sorted && go build) && ../structs_sorted/structs_sorted
        ../ensure_no_files_with_dashes.sh
-       ../rta golangci-lint cache clean
-       ../rta golangci-lint run
+       $(RTA) golangci-lint cache clean
+       $(RTA) golangci-lint run
 
 test: unit lint  # runs all tests
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/tools/optioncompare_in_tests/Makefile 
new/git-town-22.7.1/tools/optioncompare_in_tests/Makefile
--- old/git-town-22.7.0/tools/optioncompare_in_tests/Makefile   2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/tools/optioncompare_in_tests/Makefile   2026-03-27 
02:47:58.000000000 +0100
@@ -1,7 +1,10 @@
 .DEFAULT_GOAL := help
 
+RTA_VERSION = 0.30.0  # run-that-app version to use
+RTA = ../rta@$(RTA_VERSION)
+
 fix:  # runs all linters and auto-fixes
-       ../rta gofumpt -l -w .
+       $(RTA) gofumpt -l -w .
        go run ../format_unittests/format_unittests.go
        go run ../format_self/format_self.go
 
@@ -9,13 +12,13 @@
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
 lint:  # runs all linters
-       ../rta golangci-lint run
-       ../rta deadcode github.com/git-town/git-town/tools/structs_sorted
-       @../rta --available alphavet && go vet "-vettool=$(shell ../rta --which 
alphavet)" $(shell go list ./...)
+       $(RTA) golangci-lint run
+       $(RTA) deadcode github.com/git-town/git-town/tools/structs_sorted
+       @$(RTA) --available alphavet && go vet "-vettool=$(shell $(RTA) --which 
alphavet)" $(shell go list ./...)
        (cd ../structs_sorted && go build) && ../structs_sorted/structs_sorted
        ../ensure_no_files_with_dashes.sh
-       ../rta golangci-lint cache clean
-       ../rta golangci-lint run
+       $(RTA) golangci-lint cache clean
+       $(RTA) golangci-lint run
 
 test: unit lint  # runs all tests
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-22.7.0/tools/print_config_exhaustive/Makefile 
new/git-town-22.7.1/tools/print_config_exhaustive/Makefile
--- old/git-town-22.7.0/tools/print_config_exhaustive/Makefile  2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/tools/print_config_exhaustive/Makefile  2026-03-27 
02:47:58.000000000 +0100
@@ -1,7 +1,10 @@
 .DEFAULT_GOAL := help
 
+RTA_VERSION = 0.30.0  # run-that-app version to use
+RTA = ../rta@$(RTA_VERSION)
+
 fix:  # runs all linters and auto-fixes
-       ../rta gofumpt -l -w .
+       $(RTA) gofumpt -l -w .
        go run ../format_unittests/format_unittests.go
        go run ../format_self/format_self.go
 
@@ -9,13 +12,13 @@
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
 lint:  # runs all linters
-       ../rta golangci-lint run
-       ../rta deadcode github.com/git-town/git-town/tools/structs_sorted
-       @../rta --available alphavet && go vet "-vettool=$(shell ../rta --which 
alphavet)" $(shell go list ./...)
+       $(RTA) golangci-lint run
+       $(RTA) deadcode github.com/git-town/git-town/tools/structs_sorted
+       @$(RTA) --available alphavet && go vet "-vettool=$(shell $(RTA) --which 
alphavet)" $(shell go list ./...)
        (cd ../structs_sorted && go build) && ../structs_sorted/structs_sorted
        ../ensure_no_files_with_dashes.sh
-       ../rta golangci-lint cache clean
-       ../rta golangci-lint run
+       $(RTA) golangci-lint cache clean
+       $(RTA) golangci-lint run
 
 test: unit lint  # runs all tests
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/tools/stats_release/Makefile 
new/git-town-22.7.1/tools/stats_release/Makefile
--- old/git-town-22.7.0/tools/stats_release/Makefile    2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/tools/stats_release/Makefile    2026-03-27 
02:47:58.000000000 +0100
@@ -1,7 +1,10 @@
 .DEFAULT_GOAL := help
 
+RTA_VERSION = 0.30.0  # run-that-app version to use
+RTA = ../rta@$(RTA_VERSION)
+
 fix:  # runs all linters and auto-fixes
-       ../rta gofumpt -l -w .
+       $(RTA) gofumpt -l -w .
        go run ../format_unittests/format_unittests.go
        go run ../format_self/format_self.go
 
@@ -9,13 +12,13 @@
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
 lint:  # runs all linters
-       ../rta golangci-lint run
-       ../rta deadcode github.com/git-town/git-town/tools/structs_sorted
-       @../rta --available alphavet && go vet "-vettool=$(shell ../rta --which 
alphavet)" $(shell go list ./...)
+       $(RTA) golangci-lint run
+       $(RTA) deadcode github.com/git-town/git-town/tools/structs_sorted
+       @$(RTA) --available alphavet && go vet "-vettool=$(shell $(RTA) --which 
alphavet)" $(shell go list ./...)
        (cd ../structs_sorted && go build) && ../structs_sorted/structs_sorted
        ../ensure_no_files_with_dashes.sh
-       ../rta golangci-lint cache clean
-       ../rta golangci-lint run
+       $(RTA) golangci-lint cache clean
+       $(RTA) golangci-lint run
 
 test: unit lint  # runs all tests
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/tools/structs_sorted/Makefile 
new/git-town-22.7.1/tools/structs_sorted/Makefile
--- old/git-town-22.7.0/tools/structs_sorted/Makefile   2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/tools/structs_sorted/Makefile   2026-03-27 
02:47:58.000000000 +0100
@@ -1,7 +1,10 @@
 .DEFAULT_GOAL := help
 
+RTA_VERSION = 0.30.0  # run-that-app version to use
+RTA = ../rta@$(RTA_VERSION)
+
 fix:  # runs all linters and auto-fixes
-       ../rta gofumpt -l -w .
+       $(RTA) gofumpt -l -w .
        go run ../format_unittests/format_unittests.go
        go run ../format_self/format_self.go
 
@@ -9,13 +12,13 @@
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
 lint:  # runs all linters
-       ../rta golangci-lint run
-       ../rta deadcode github.com/git-town/git-town/tools/structs_sorted
-       @../rta --available alphavet && go vet "-vettool=$(shell ../rta --which 
alphavet)" $(shell go list ./...)
+       $(RTA) golangci-lint run
+       $(RTA) deadcode github.com/git-town/git-town/tools/structs_sorted
+       @$(RTA) --available alphavet && go vet "-vettool=$(shell $(RTA) --which 
alphavet)" $(shell go list ./...)
        (cd ../structs_sorted && go build) && ../structs_sorted/structs_sorted
        ../ensure_no_files_with_dashes.sh
-       ../rta golangci-lint cache clean
-       ../rta golangci-lint run
+       $(RTA) golangci-lint cache clean
+       $(RTA) golangci-lint run
 
 test: unit lint  # runs all tests
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/tools/tests_sorted/Makefile 
new/git-town-22.7.1/tools/tests_sorted/Makefile
--- old/git-town-22.7.0/tools/tests_sorted/Makefile     2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/tools/tests_sorted/Makefile     2026-03-27 
02:47:58.000000000 +0100
@@ -1,7 +1,10 @@
 .DEFAULT_GOAL := help
 
+RTA_VERSION = 0.30.0  # run-that-app version to use
+RTA = ../rta@$(RTA_VERSION)
+
 fix:  # runs all linters and auto-fixes
-       ../rta gofumpt -l -w .
+       $(RTA) gofumpt -l -w .
        go run ../format_unittests/format_unittests.go
        go run ../format_self/format_self.go
 
@@ -9,13 +12,13 @@
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
 lint:  # runs all linters
-       ../rta golangci-lint run
-       ../rta deadcode github.com/git-town/git-town/tools/structs_sorted
-       @../rta --available alphavet && go vet "-vettool=$(shell ../rta --which 
alphavet)" $(shell go list ./...)
+       $(RTA) golangci-lint run
+       $(RTA) deadcode github.com/git-town/git-town/tools/structs_sorted
+       @$(RTA) --available alphavet && go vet "-vettool=$(shell $(RTA) --which 
alphavet)" $(shell go list ./...)
        (cd ../structs_sorted && go build) && ../structs_sorted/structs_sorted
        ../ensure_no_files_with_dashes.sh
-       ../rta golangci-lint cache clean
-       ../rta golangci-lint run
+       $(RTA) golangci-lint cache clean
+       $(RTA) golangci-lint run
 
 test: unit lint  # runs all tests
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/tools/use_equal/Makefile 
new/git-town-22.7.1/tools/use_equal/Makefile
--- old/git-town-22.7.0/tools/use_equal/Makefile        2026-03-21 
15:37:06.000000000 +0100
+++ new/git-town-22.7.1/tools/use_equal/Makefile        2026-03-27 
02:47:58.000000000 +0100
@@ -1,7 +1,10 @@
 .DEFAULT_GOAL := help
 
+RTA_VERSION = 0.30.0  # run-that-app version to use
+RTA = ../rta@$(RTA_VERSION)
+
 fix:  # runs all linters and auto-fixes
-       ../rta gofumpt -l -w .
+       $(RTA) gofumpt -l -w .
        go run ../format_unittests/format_unittests.go
        go run ../format_self/format_self.go
 
@@ -9,13 +12,13 @@
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
 lint:  # runs all linters
-       ../rta golangci-lint run
-       ../rta deadcode github.com/git-town/git-town/tools/structs_sorted
-       @../rta --available alphavet && go vet "-vettool=$(shell ../rta --which 
alphavet)" $(shell go list ./...)
+       $(RTA) golangci-lint run
+       $(RTA) deadcode github.com/git-town/git-town/tools/structs_sorted
+       @$(RTA) --available alphavet && go vet "-vettool=$(shell $(RTA) --which 
alphavet)" $(shell go list ./...)
        (cd ../structs_sorted && go build) && ../structs_sorted/structs_sorted
        ../ensure_no_files_with_dashes.sh
-       ../rta golangci-lint cache clean
-       ../rta golangci-lint run
+       $(RTA) golangci-lint cache clean
+       $(RTA) golangci-lint run
 
 test: unit lint  # runs all tests
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/website/Makefile 
new/git-town-22.7.1/website/Makefile
--- old/git-town-22.7.0/website/Makefile        2026-03-21 15:37:06.000000000 
+0100
+++ new/git-town-22.7.1/website/Makefile        2026-03-27 02:47:58.000000000 
+0100
@@ -1,30 +1,31 @@
-RTA_VERSION = 0.28.0  # run-that-app version to use
+RTA_VERSION = 0.30.0  # run-that-app version to use
 
 .DEFAULT_GOAL := help
 
-build: ../tools/rta@${RTA_VERSION}  # transpiles the website to HTML
-       ../tools/rta --include=mdbook-linkcheck mdbook build
+RTA     = ../tools/rta@$(RTA_VERSION)
+MDBOOK  = $(RTA) mdbook
 
-clean: ../tools/rta@${RTA_VERSION}  # removes all build artifacts
-       ../tools/rta mdbook clean
+build: ${RTA}  # transpiles the website to HTML
+       $(RTA) --include=mdbook-linkcheck mdbook build
+
+clean: ${RTA}  # removes all build artifacts
+       $(MDBOOK) clean
        rm -rf bin
 
 help:  # prints available targets
        @grep -h -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS 
= ":.*?# "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
 
-serve: ../tools/rta@${RTA_VERSION}  # runs a local development server of the 
website
-       PATH=$(MDBOOK_LINKCHECK_PATH):$$PATH ../tools/rta mdbook serve --open 
-n 127.0.0.1
+serve: ${RTA}  # runs a local development server of the website
+       PATH=$(MDBOOK_LINKCHECK_PATH):$$PATH $(MDBOOK) serve --open -n 127.0.0.1
 
 test: build unit  # tests the website
        cd .. && make --no-print-directory docs
 
-unit: ../tools/rta@${RTA_VERSION}  # runs the unit tests
-       cd ../tools && ./rta node --test
+unit: ${RTA}  # runs the unit tests
+       cd ../tools && ./rta@${RTA_VERSION} node --test
 
 # --- HELPER TARGETS 
--------------------------------------------------------------------------------------------------------------------------------
 
 ../tools/rta@${RTA_VERSION}:
        @rm -f ../tools/rta*
-       @(cd ../tools && curl 
https://raw.githubusercontent.com/kevgo/run-that-app/main/download.sh | sh -s 
${RTA_VERSION})
-       @mv ../tools/rta ../tools/rta@${RTA_VERSION}
-       @ln -s rta@${RTA_VERSION} ../tools/rta
+       @(cd ../tools && curl 
https://raw.githubusercontent.com/kevgo/run-that-app/main/download.sh | sh -s 
-- --version ${RTA_VERSION} --name rta@${RTA_VERSION})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-22.7.0/website/src/install.sh 
new/git-town-22.7.1/website/src/install.sh
--- old/git-town-22.7.0/website/src/install.sh  2026-03-21 15:37:06.000000000 
+0100
+++ new/git-town-22.7.1/website/src/install.sh  2026-03-27 02:47:58.000000000 
+0100
@@ -3,7 +3,7 @@
 
 # This script installs the Git Town executable in the user's HOME directory.
 
-VERSION=22.7.0             # the version of Git Town to install
+VERSION=22.7.1             # the version of Git Town to install
 DEST=$HOME/.local/bin      # the folder into which to install the Git Town 
executable
 TMP_DIR=.git-town-download # temporary folder to use
 

++++++ git-town.obsinfo ++++++
--- /var/tmp/diff_new_pack.r81LHa/_old  2026-03-27 16:53:38.465830609 +0100
+++ /var/tmp/diff_new_pack.r81LHa/_new  2026-03-27 16:53:38.469830777 +0100
@@ -1,5 +1,5 @@
 name: git-town
-version: 22.7.0
-mtime: 1774103826
-commit: 976d42a1a62d0b109bfe137810c920a06b151a52
+version: 22.7.1
+mtime: 1774576078
+commit: cb188e13b4c90f64640e28e551deca899590faa7
 

Reply via email to