Repository navigation
Conversation
Set the version in pom.xml, in CITATION.cff (with the release date) and in the built-in service info. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011FSoqMpmDCfbACLj3uy6xV
Curated release notes in docs/releases/1.3.0.md; the upgrade notes "To 1.3.0" (from "To the next release", with the TES 1.1 changes that clients may notice); "Since 1.3.0" for the service client settings; the cosign example with 1.3.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011FSoqMpmDCfbACLj3uy6xV
Reviewer's GuideConfigurationBump the project and built-in service-info versions to 1.3.0 and update the container verification example for the release.
DocumentationAdd the curated 1.3.0 release notes and document upgrade impacts, new options, and their deployment requirements.
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011FSoqMpmDCfbACLj3uy6xV
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## dev #155 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 51 51
Lines 2262 2262
Branches 254 254
=========================================
Hits 2262 2262 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Hey - I've found 4 issues
Prompt for AI Agents
Please address the comments from this code review:
## Individual Comments
### Comment 1
<location path="docs/upgrading.md" line_range="27-28" />
<code_context>
+ cancel request wait until the pods have ended; clients that know only the
+ states of TES 1.0 must accept the new ones.
+- **`backend_parameters`.** They are no longer stored or returned, also for
+ tasks created by earlier versions; with the view `FULL`, a task lists the
+ keys it ignored in `logs[0].system_logs`. Tasks that also set
+ `backend_parameters_strict: true` are refused with `400 Bad Request`, as
+ TESK supports no backend parameters.
</code_context>
<issue_to_address>
**Legacy ignored keys are unavailable**
When a caller views a task created before 1.3.0 that stored `backend_parameters`, for tasks created before 1.3.0, no ignored-key annotation exists, so the API cannot list historical backend-parameter keys in `system_logs`; callers relying on the note see no keys and cannot recover them from the API.
Clarify that the ignored keys appear in `system_logs` only for tasks created after the upgrade.
</issue_to_address>
### Comment 2
<location path="docs/upgrading.md" line_range="7" />
<code_context>
-From 1.2.0, clients may notice changed answers:
+From 1.2.0, deployments need no changes: the new options are off by
+default. TESK API 1.3.0 accepts the task fields and list filters of TES 1.1,
+and clients may notice changed answers:
- **Wildcards without `path_prefix`.** An output whose `path` has wildcards
</code_context>
<issue_to_address>
**True ignore-error tasks are refused**
When clients upgrade with tasks that set `executors[].ignore_error` to `true`, clients submitting `executors[].ignore_error: true` encounter an unexpected `400 Bad Request` after upgrading because the upgrade notes say TES 1.1 task fields are accepted but omit this restriction.
Add the `ignore_error: true` rejection to the 1.3.0 upgrade notes.
</issue_to_address>
### Comment 3
<location path="docs/releases/1.3.0.md" line_range="11" />
<code_context>
+- Tasks report `CANCELING` while the pods of a cancelled task still run, and `PREEMPTED` when Kubernetes disrupted all failed executors (#144, #151)
+- `backend_parameters` are no longer stored or returned; ignored keys are logged and listed in `system_logs`, and service info lists `tesResources_backend_parameters` (`[]`) (#145, #147)
+- Outputs with wildcards but no `path_prefix` are refused with `400 Bad Request`, unless they go to `file:` URLs, as TES 1.1 requires (#148, #152)
+- Experimental: private executor images, with registry credentials in the executor fields `docker_registry`, `docker_login` and `docker_pass`, passed to Kubernetes as image-pull Secrets owned by the taskmaster's job and never returned (#55, #141)
+
+## Fixes
</code_context>
<issue_to_address>
**Registry address falsely implied hidden**
When a client relies on the release note to determine which private-image fields are returned, readers may conclude that none of the listed executor fields are returned, but `docker_registry` is stored with the task and returned by the API. This gives clients incorrect guidance about what information is exposed.
Clarify that only `docker_login` and `docker_pass` are not returned; `docker_registry` is returned.
</issue_to_address>
### Comment 4
<location path="docs/releases/1.3.0.md" line_range="10" />
<code_context>
+- `GET /tasks` filters by `state`, `tag_key` and `tag_value` (#143, #149)
+- Tasks report `CANCELING` while the pods of a cancelled task still run, and `PREEMPTED` when Kubernetes disrupted all failed executors (#144, #151)
+- `backend_parameters` are no longer stored or returned; ignored keys are logged and listed in `system_logs`, and service info lists `tesResources_backend_parameters` (`[]`) (#145, #147)
+- Outputs with wildcards but no `path_prefix` are refused with `400 Bad Request`, unless they go to `file:` URLs, as TES 1.1 requires (#148, #152)
+- Experimental: private executor images, with registry credentials in the executor fields `docker_registry`, `docker_login` and `docker_pass`, passed to Kubernetes as image-pull Secrets owned by the taskmaster's job and never returned (#55, #141)
+
</code_context>
<issue_to_address>
**Working file outputs appear rejected**
When a wildcard output omits `path_prefix` and its URL has no scheme, the release note says the request is refused, but TESK treats the schemeless URL as `file:` and accepts it, so clients are told to change requests that already work.
Clarify that schemeless URLs use `file:` behavior and are accepted without `path_prefix`.
Also at `docs/releases/1.3.0.md:11`.
</issue_to_address>Sourcery assessment
Approval pending. 4 findings to address first.
Blocking findings: docs/upgrading.md:28, docs/upgrading.md:7, docs/releases/1.3.0.md:11, docs/releases/1.3.0.md:10
Name the TES 1.1 fields that are refused (ignore_error: true, strict backend parameters), say that only tasks created by 1.3.0 list ignored keys, that wildcard outputs to URLs without a scheme need no path_prefix, and that docker_registry is returned. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011FSoqMpmDCfbACLj3uy6xV
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011FSoqMpmDCfbACLj3uy6xV
Linked issuesChecked at commit e2f6d79 #156 build: prepare the 1.3.0 release · 4 of 4 met
|
Brings in #161, #174, #175, #176, #178, #181, #183 and #184. The conflict in docs/upgrading.md is resolved by merging both lists under "To 1.3.0": the upgrade order for filer labels and Java 21 come first, and the TES 1.1 fields item no longer says that ignore_error: true is refused. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Lists the changes merged into dev since the notes were written: Java 21 (#161), ignore_error (#174), the resource server (#175), output file logs (#176), the Kubernetes client (#178), Dependabot labels (#181), the executor job selector (#183) and full test coverage (#184). Adds a Breaking changes section, as in the 1.2.0 notes, and sets date-released to the planned tag date, 2026-11-16. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
Release prep for tesk-api 1.3.0: TES 1.1 fields (including
ignore_error), filters, states and output file logs; tokens of allow-listed service clients; experimental private executor images; Java 21 and the resource server of Spring Security. The FI TESK needs #154 (service client tokens) so that a TES gateway can call it with its client-credentials token; the TESK chart (elixir-cloud-aai/TESK#299) then needs this version.pom.xml,CITATION.cff(version: "1.3.0",date-released: "2026-11-16", the planned tag date) and the built-inservice-info.yaml(version: 1.3.0).docs/releases/1.3.0.md: curated release notes in the organisation's format (the release workflow appends GitHub's generated notes under## Commitsand the**Full Changelog**line). Since the first version of this PR,devwas merged in (merge commit, no rebase) and the notes cover build: move to Java 21 #161 (Java 21), feat: support executors[].ignore_error #174 (ignore_error), refactor: use Spring Security's resource server #175 (resource server), feat: report output file logs #176 (output file logs), build: update the Kubernetes client #178 (Kubernetes client 28, SnakeYAML 2), ci: let Dependabot label all its pull requests #181 (Dependabot labels), fix: select only executor jobs for a single task #183 (executor job selector) and test: reach 100% test coverage #184 (100% coverage). The notes now have a## Breaking changessection, as the 1.2.0 notes did: Java 21 (JAVA_OPTS), the upgrade order for filer labels, tokens only from the header, wildcards withoutpath_prefix, the default page size and the new states.docs/upgrading.md: "To 1.3.0" merges the items of this PR and those added ondev. The upgrade order for filer labels (TESK API first, then the taskmaster of tesk-core 0.12.0 that labels filer jobs;Recreateif one deployment brings both) and Java 21 come first; the TES 1.1 fields item no longer says thatignore_error: trueis refused; two small items of test: reach 100% test coverage #184 are added (anullgroups claim gives no authorities instead of one namednull; a task that can't be serialized fails with500).docs/configuration.md: "Since 1.3.0" forTESK_API_AUTHORISATION_SERVICE_CLIENTS_*;docs/deployment.md: cosign example with1.3.0.The default taskmaster and filer images of TESK API stay at tesk-core
0.11.0: 0.12.0 isn't released yet, and a default that labels filer jobs would contradict the upgrade order during a rolling update. The TESK chart sets its own images.Light lane: only version strings, the date and docs text (plus a merge of
dev, whose code was reviewed in its own PRs), no logic, so no reviewer subagents; diff reviewed by hand.Closes #156
Verification
publish.py check docs/releases/1.3.0.md(thepublish-releaseaction at the commit31f22fcthatrelease.ymlpins): passes.mkdocs build --strict: passes; the anchor#to-130is unchanged.service-info.yaml,pom.xmlandCITATION.cffsay 1.3.0.dev(releases/generate-notes, v1.2.0...dev): all 18 PRs, each listed in the curated notes.devhead45e3a7fhas no open critical or high alerts (44 medium, 10 low).Open questions
access_token) are ignored (refactor: use Spring Security's resource server #175), JVM options that Java 21 removed stop the JVM (build: move to Java 21 #161), wildcard outputs withoutpath_prefixare refused (feat: refuse wildcards without path_prefix #152),GET /taskspages by 256 (feat: default page_size to 256 as TES specifies #158), new states (feat: report the CANCELING and PREEMPTED states #151), and the upgrade order for filer labels (fix: select only executor jobs for a single task #183). 1.2.0 shipped comparable changes as a minor release with aBreaking changessection, so this PR keeps 1.3.0 and lists them the same way; the version is uniqueg's call. Choosing 2.0.0 means changingpom.xml,CITATION.cff,service-info.yaml, the notes' file name and the#to-130anchors here first.v1.3.0milestone in this repo (only the closedv1.2.0), so test: reach 100% test coverage #179, fix: select only executor jobs for a single task #182 and the other issues weren't added to one; create it if the release should have one.🤖 Generated with Claude Code