diff --git a/.github/ISSUE_TEMPLATE/v6_rc_feedback.yml b/.github/ISSUE_TEMPLATE/v6_rc_feedback.yml index 4b0f1ee88..eb28e222f 100644 --- a/.github/ISSUE_TEMPLATE/v6_rc_feedback.yml +++ b/.github/ISSUE_TEMPLATE/v6_rc_feedback.yml @@ -8,7 +8,7 @@ body: Use this form for actionable Pulse v6 pre-release feedback. For general impressions or smaller notes, use the pinned v6 pre-release feedback hub. - Include exact version details and sanitized evidence where available. Do not repeat an action just to fill in this form if it could cause data loss, an outage, duplicate changes, or excessive notifications; describe the original sequence instead. + Give the version on the affected running instance, or the version or release asset attempted if installation never completed. For a running container (Docker, Compose, or Kubernetes), include the Pulse image tag or digest; non-container installs do not need an image reference. Include sanitized evidence where available. Do not repeat an action just to fill in this form if it could cause data loss, an outage, duplicate changes, or excessive notifications; describe the original sequence instead. Do not post secrets, tokens, private keys, or unsanitized config files. @@ -38,9 +38,9 @@ body: - type: input id: image_ref attributes: - label: Image tag or binary reference - description: Exact image tag, digest, or release asset name if you know it. - placeholder: rcourtman/pulse:v6.0.0-rc.N or pulse-linux-amd64 + label: Running Pulse container image tag or digest + description: For a running Docker, Compose, or Kubernetes container, give its exact Pulse image tag or digest. Leave blank for LXC, bare metal, and failed installs that never started; put an attempted release asset in Pulse version instead. + placeholder: rcourtman/pulse:v6.0.0-rc.N or rcourtman/pulse@sha256:... - type: dropdown id: install_path @@ -145,15 +145,14 @@ body: id: evidence attributes: label: Logs, screenshots, or diagnostics - description: Paste relevant logs, link screenshots, or mention sanitized diagnostics export details if available. - render: shell + description: Attach screenshots or paste relevant redacted logs. For connection or data failures, include sanitized diagnostics if Pulse is running and it is safe to collect them. Do not include credentials. - type: checkboxes id: confirmations attributes: label: Confirmations options: - - label: I gave the running version, or for an install that never started, the attempted version or "unknown". + - label: I gave the running Pulse version, or for an install that never started, the attempted version or "unknown"; for a running container I also gave its Pulse image tag or digest. required: true - label: I searched existing issues and the pinned v6 pre-release feedback hub first. required: true diff --git a/.github/scripts/issue-version-triage.test.cjs b/.github/scripts/issue-version-triage.test.cjs index 9e348c76e..f7d87f78a 100644 --- a/.github/scripts/issue-version-triage.test.cjs +++ b/.github/scripts/issue-version-triage.test.cjs @@ -286,6 +286,19 @@ test("bug and pre-release forms accept unsafe one-off failures without a second } }); +test("pre-release evidence keeps screenshots visible and asks only running containers for image identity", () => { + const form = fs.readFileSync( + path.resolve(__dirname, "../ISSUE_TEMPLATE/v6_rc_feedback.yml"), + "utf8" + ); + assert.match(form, /id: image_ref[\s\S]*?For a running Docker, Compose, or Kubernetes container/); + assert.match(form, /id: image_ref[\s\S]*?Leave blank for LXC, bare metal, and failed installs/); + assert.match(form, /for a running container I also gave its Pulse image tag or digest/); + const evidenceField = form.split(" id: evidence\n")[1].split(" - type: checkboxes\n")[0]; + assert.match(evidenceField, /Attach screenshots or paste relevant redacted logs/); + assert.doesNotMatch(evidenceField, /render:/); +}); + test("older-version reports cannot trigger event or scheduled retest posting", async () => { const issue = { number: 1200, diff --git a/scripts/release_control/release_promotion_policy_test.py b/scripts/release_control/release_promotion_policy_test.py index 935af0352..141ee1107 100644 --- a/scripts/release_control/release_promotion_policy_test.py +++ b/scripts/release_control/release_promotion_policy_test.py @@ -1615,7 +1615,7 @@ class ReleasePromotionPolicyTest(unittest.TestCase): def test_prerelease_feedback_template_uses_generic_current_rc_wording(self) -> None: template = read(".github/ISSUE_TEMPLATE/v6_rc_feedback.yml") self.assertIn("placeholder: v6.0.0-rc.N", template) - self.assertIn("placeholder: rcourtman/pulse:v6.0.0-rc.N or pulse-linux-amd64", template) + self.assertIn("placeholder: rcourtman/pulse:v6.0.0-rc.N or rcourtman/pulse@sha256:...", template) self.assertIn("I upgraded to the current v6 RC build", template) self.assertNotIn("v6.0.0-rc.1", template)