Skip to content

Tighten issue and PR templates - #249

Merged
mishamyte merged 1 commit into
devfrom
chore/template-improvements
Jul 26, 2026
Merged

Tighten issue and PR templates#249
mishamyte merged 1 commit into
devfrom
chore/template-improvements

Conversation

@mishamyte

Copy link
Copy Markdown
Collaborator

Follow-up to the workflow review. All four requested changes, plus the license gap.

Bug report

  • Reproduction is now required. It was optional, and a report without repro steps is rarely actionable.

  • New required "App version" field, for the app's own fap_version from application.fam. The firmware version alone does not say which build of an app broke.

  • Split the old catch-all in two. A Logs box with render: Text so pasted output arrives intact, and a plain Anything else? box that still takes file attachments.

    On render: GitHub's spec says a rendered textarea "will not expand for file attachments or Markdown editing". Applying it to every textarea would have left nowhere on the form to attach a photo of the Flipper screen, which for a device app tracker is usually the most useful evidence. Scoping it to the logs field only - the same split Unleashed uses - keeps the mangling fix without that cost.

New app

  • License is now a required dropdown, with No license file / unclear as an explicit option. The pack ships under GPLv3, so license compatibility decides whether a request can be accepted at all, and the form never asked. The intro text now says so up front.

Pull request template

  • Added No AI assistance to the disclosure section. With only the two AI options, a hand-written PR left all boxes blank - indistinguishable from ignoring the section.
  • Added checklist items for bumping fap_version and adding a CHANGELOG.md entry. That is the convention for app changes, but it was written down nowhere a contributor would encounter it. Worth knowing only 22 of 321 apps currently have a CHANGELOG.md, so the template is the main lever for spreading it.

Verification

All templates parsed and schema-checked: valid element types, no duplicate ids, required only on elements that support it, dropdown has options. Every label referenced (type/bug, type/new-app, type/enhancement) exists in the repo, so nothing is silently dropped.

Two things I left alone since they were not in scope - say the word and I will add them: Firmware version is still optional free text (Unleashed uses a required dropdown kept current by a release workflow), and What does it do? on the new-app form is still optional.

🤖 Generated with Claude Code

Bug report:
- Require reproduction steps. A bug report without them is rarely
  actionable, and the field was optional.
- Add a required "App version" field for the app's own fap_version. The
  firmware version alone does not identify which build of an app broke.
- Split the old catch-all in two: a "Logs" box rendered as a code block
  so pasted output survives, and a plain "Anything else?" box that still
  accepts file attachments. render disables attachments, so putting it on
  the catch-all would have left nowhere to attach a photo of the screen.

New app:
- Require the app's license up front, with "No license file / unclear" as
  an explicit option. The pack ships under GPLv3, so license compatibility
  decides whether a request can be accepted at all, and until now the form
  never asked.

Pull request:
- Add "No AI assistance" to the disclosure section. With only the two
  AI options, a hand-written PR left everything blank, which was
  indistinguishable from skipping the section.
- Add checklist items for bumping fap_version and adding a CHANGELOG.md
  entry, which is the convention for app changes but was written down
  nowhere a contributor would see it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@mishamyte
mishamyte merged commit 3b870ca into dev Jul 26, 2026
2 checks passed
@mishamyte
mishamyte deleted the chore/template-improvements branch July 26, 2026 10:28
mishamyte added a commit to DarkFlippers/unleashed-firmware that referenced this pull request Jul 28, 2026
…rdening

PR template: port the "No AI assistance" option and the "tick exactly one" note
from all-the-plugins (xMasterX/all-the-plugins#249) so the two repos agree, and
add a check that fails the PR unless exactly one of the three boxes is ticked.
The check needs no token and checks out nothing (`permissions: {}`), so plain
`pull_request` is safe for forks; `edited` is in the trigger list so fixing the
description re-runs it.

pr-build.yml: #1052 bound github.head_ref/ref_name to env, but the branch name
still reached a `run:` block through steps.vars.outputs.ref/.dist, which the
"Assemble PR report" step interpolated. A branch named `x$(id)` still executed
there. Bind those outputs to env as well, and reduce SAFE_REF to
[A-Za-z0-9._-] instead of only replacing '/', so the outputs are inert for
every consumer. Artifact names are unchanged for ordinary branch names.

Pin the two third-party actions to commits: dessant/lock-threads runs with
issues+pull-requests write, and a mutable tag can be repointed at any time.
mishamyte added a commit to DarkFlippers/unleashed-firmware that referenced this pull request Jul 28, 2026
…rdening (#1054)

PR template: port the "No AI assistance" option and the "tick exactly one" note
from all-the-plugins (xMasterX/all-the-plugins#249) so the two repos agree, and
add a check that fails the PR unless exactly one of the three boxes is ticked.
The check needs no token and checks out nothing (`permissions: {}`), so plain
`pull_request` is safe for forks; `edited` is in the trigger list so fixing the
description re-runs it.

pr-build.yml: #1052 bound github.head_ref/ref_name to env, but the branch name
still reached a `run:` block through steps.vars.outputs.ref/.dist, which the
"Assemble PR report" step interpolated. A branch named `x$(id)` still executed
there. Bind those outputs to env as well, and reduce SAFE_REF to
[A-Za-z0-9._-] instead of only replacing '/', so the outputs are inert for
every consumer. Artifact names are unchanged for ordinary branch names.

Pin the two third-party actions to commits: dessant/lock-threads runs with
issues+pull-requests write, and a mutable tag can be repointed at any time.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant