From eba6e8d7521239f46cb212810a20e7d47faa908c Mon Sep 17 00:00:00 2001 From: bryanthaboi Date: Mon, 20 Jul 2026 09:20:56 -0400 Subject: [PATCH] CI Update --- .github/ISSUE_TEMPLATE/bug_report.yml | 101 +++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 1 + .github/ISSUE_TEMPLATE/feature_request.yml | 88 ++++++++++++++++++ .github/workflows/release.yml | 41 +++++++++ README.md | 15 +++ 5 files changed, 246 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..9b9b4650 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,101 @@ +name: Bug report +description: Something in the game is broken, wrong, or not behaving like the original. +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + A screenshot is worth more than any description. If you can grab one, grab one. + If you genuinely can't, that's fine, but then the details below need to be thorough + enough that someone can find the bug without ever seeing your screen. + + - type: input + id: summary + attributes: + label: One line summary + description: What's broken, in a sentence. + placeholder: Warp at the south end of the Route 5-8 underground path drops you in the wrong spot + validations: + required: true + + - type: dropdown + id: os + attributes: + label: Which build are you running + options: + - macOS + - Windows + - Both + validations: + required: true + + - type: input + id: version + attributes: + label: Version + description: The release you downloaded. It's in the release title, like 0.1.4. + placeholder: 0.1.4 + validations: + required: true + + - type: input + id: location + attributes: + label: Where in the game + description: > + Be specific. Route, town, building, floor, menu, battle. If it's a map + transition, say which side you came in from. + placeholder: Underground path between Route 5 and Route 8, south entrance + validations: + required: true + + - type: textarea + id: screenshot + attributes: + label: Screenshot, or a detailed description if you couldn't take one + description: > + Drag the image straight into this box. If you couldn't get a screenshot, + write "no screenshot" and then describe exactly what was on screen: where + the player sprite was, what the tiles around it looked like, any text on + screen, whether anything was frozen or flickering. The more concrete, the better. + placeholder: | + Drop the image here. + + Or, with no screenshot: + Screen faded out like a normal warp, then faded back in with the player + standing on the grass tile north of the Route 6 gate house instead of + inside the tunnel. Player was facing down. No text box. Music kept playing + the underground path track instead of switching to the Route 6 track. + validations: + required: true + + - type: textarea + id: steps + attributes: + label: How to make it happen + description: Numbered steps, starting from a point someone else can get to. + placeholder: | + 1. Start a new game, get to Cerulean + 2. Go south to Route 5, enter the underground path building + 3. Walk to the south end of the tunnel + 4. Step onto the stairs + validations: + required: true + + - type: textarea + id: expected + attributes: + label: What should have happened + placeholder: Should have come out inside the Route 8 side entrance building, facing up. + validations: + required: true + + - type: textarea + id: extra + attributes: + label: Anything else + description: > + Does it happen every time or only sometimes. Did it start after a specific + release. Anything you were doing right before it. Leave blank if nothing comes to mind. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..3ba13e0c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000..afe49e98 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,88 @@ +name: Feature request +description: Ask for something new, or a change to how something already works. +labels: ["enhancement"] +body: + - type: markdown + attributes: + value: | + "Can we add X" on its own is hard to act on. Say what you want, why you want it, + and how you picture it working. A request with real detail is one someone can + actually build without guessing at what you meant. + + - type: input + id: summary + attributes: + label: One line summary + description: What you want, in a sentence. + placeholder: Add a run toggle so you can move at bike speed without the bike + validations: + required: true + + - type: textarea + id: what + attributes: + label: What do you want + description: > + Describe it properly. What is it, where does it live in the game, what does the + player see or do. If it changes something that already exists, say what it does today + and what it should do instead. + placeholder: | + A hold-to-run button, the way later Pokemon games do it. Hold B while moving on + foot and the player moves at bike speed. Release and you go back to walking. + Doesn't work indoors where the bike doesn't work, doesn't work in battles or menus. + validations: + required: true + + - type: textarea + id: why + attributes: + label: Why is this worth doing + description: > + What's annoying or missing right now. What does this fix. If it's just because you + think it would be fun, say that, it's a real answer. + placeholder: | + Backtracking across routes you've already cleared is slow, and the bike is a menu + dive away and doesn't work in a lot of places. Running would cut a lot of dead time + without making the game easier. + validations: + required: true + + - type: textarea + id: how + attributes: + label: How should it work + description: > + The specifics. Which button, which menu, what happens in the edge cases. If you don't + know, say what you'd expect as a player and leave the rest open. + placeholder: | + - Hold B on the overworld to run + - Same speed as the bike + - Disabled anywhere the bike is disabled + - Sprite should probably need a running animation, not sure what that takes + - No effect on encounter rates + validations: + required: true + + - type: dropdown + id: scope + attributes: + label: Does this change how the original game plays + description: > + Some requests are quality of life, some change the actual game. Both are fine, + it just helps to know which one you're asking for. + options: + - Quality of life, original game is untouched + - Changes how the game plays + - Not sure + validations: + required: true + + - type: textarea + id: extra + attributes: + label: Anything else + description: > + Reference screenshots, how another game does it, related issues. Leave blank + if nothing comes to mind. + validations: + required: false diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 25919cbc..c6489640 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,6 +14,12 @@ name: Release on: push: branches: [main] + # CI/workflow and docs-only changes don't ship anything to users, so they + # don't earn a release. A push touching these *and* real source still + # releases; only pushes confined entirely to these paths are skipped. + paths-ignore: + - '.github/**' + - '**.md' workflow_dispatch: inputs: version: @@ -23,6 +29,8 @@ on: permissions: contents: write + issues: read + pull-requests: read concurrency: group: release @@ -206,7 +214,40 @@ jobs: v="${{ steps.ver.outputs.version }}" tag="${{ steps.ver.outputs.tag }}" + # Issues this release closes, per GitHub's own "closing issues" links + # (works for squash, rebase, and merge commits alike). Scans every + # commit since the previous tag so a skipped release run doesn't drop + # issues on the floor. + prev_tag="$(git tag -l 'v*' --sort=-v:refname | grep -v "^${tag}$" | head -1 || true)" + range="${prev_tag:+${prev_tag}..}$GITHUB_SHA" + + closed="" + for pr in $(git log --pretty=%H "$range" \ + | xargs -I{} gh api "repos/$GITHUB_REPOSITORY/commits/{}/pulls" \ + --jq '.[].number' 2>/dev/null \ + | sort -un || true); do + closed+="$(gh api graphql \ + -f owner="${GITHUB_REPOSITORY%/*}" \ + -f name="${GITHUB_REPOSITORY#*/}" \ + -F pr="$pr" \ + -f query=' + query($owner:String!, $name:String!, $pr:Int!) { + repository(owner:$owner, name:$name) { + pullRequest(number:$pr) { + closingIssuesReferences(first:50) { nodes { number title } } + } + } + }' \ + --jq '.data.repository.pullRequest.closingIssuesReferences.nodes[] + | "- #\(.number) \(.title)"' 2>/dev/null || true)"$'\n' + done + closed="$(printf '%s' "$closed" | grep . | sort -t'#' -k2 -n || true)" + notes="Download the correct version for your computer below." + if [ -n "$closed" ]; then + notes+=$'\n\n## Issues closed\n\n'"$closed" + fi + printf 'Release notes:\n%s\n' "$notes" gh release create "$tag" \ --target "$GITHUB_SHA" \ diff --git a/README.md b/README.md index 126d5fb0..d54389e1 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,21 @@ reference — lives on the Shipped example mods, one per kind of author, live in [`mods/`](mods/). +## Bugs and Ideas + +Found a bug? A warp dropping you somewhere it shouldn't, a battle doing math +that looks wrong, text in the wrong box, anything that does not match the +original game. +[Open a bug report](https://github.com/bryanthaboi/pokemon-gen1-recomp-project/issues/new?template=bug_report.yml). +Attach a screenshot if you can. It saves a lot of back and forth, and if you +can't get one, the form asks you to describe what you saw instead. + +Thought of a feature that could be good, or a way to improve one that already +exists? +[Open a feature request](https://github.com/bryanthaboi/pokemon-gen1-recomp-project/issues/new?template=feature_request.yml). +Say what you want, why it is worth doing, and how you picture it working. A +request with real detail is one that can actually get built. + ## More - [Link play](https://github.com/bryanthaboi/pokemon-gen1-recomp-project/wiki/Guide-Link-Play)