From 93591a87a331a3df46763a16cf91b837d80730cd Mon Sep 17 00:00:00 2001 From: Sergio Benitez Date: Wed, 6 Dec 2023 16:47:10 -0800 Subject: [PATCH] Upgrade to GitHub issue forms. --- .github/ISSUE_TEMPLATE/bug-report.md | 28 ----- .github/ISSUE_TEMPLATE/bug-report.yml | 133 +++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 17 ++- .github/ISSUE_TEMPLATE/doc-problem.yml | 56 +++++++++ .github/ISSUE_TEMPLATE/feature-request.md | 31 ----- .github/ISSUE_TEMPLATE/feature-request.yml | 73 +++++++++++ .github/ISSUE_TEMPLATE/suggestion.md | 26 ---- .github/ISSUE_TEMPLATE/suggestion.yml | 57 +++++++++ 8 files changed, 332 insertions(+), 89 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug-report.md create mode 100644 .github/ISSUE_TEMPLATE/bug-report.yml create mode 100644 .github/ISSUE_TEMPLATE/doc-problem.yml delete mode 100644 .github/ISSUE_TEMPLATE/feature-request.md create mode 100644 .github/ISSUE_TEMPLATE/feature-request.yml delete mode 100644 .github/ISSUE_TEMPLATE/suggestion.md create mode 100644 .github/ISSUE_TEMPLATE/suggestion.yml diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md deleted file mode 100644 index 35055bb1..00000000 --- a/.github/ISSUE_TEMPLATE/bug-report.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -name: Bug Report -about: Report behavior that deviates from specification or expectation -title: '' -labels: triage -assignees: '' ---- - -**Description** - -A clear and concise description of what the bug is. This should include links to documentation that is contradicted or an explanation of why the present functionality doesn't match your expectation. - -**To Reproduce** - -How to reproduce the bug. A fully working code example (`main.rs` + `Cargo.toml`) is preferred. - -**Expected Behavior** - -A clear and concise description of what you expected to happen. - -**Environment:** - - - OS Distribution and Kernel: [e.g. Arch Linux 4.16.13, macOS 11.2.1] - - Rocket Version: [e.g. 0.4.12, master@abf996b] - -**Additional Context** - -Add any other context about the problem here, for example, how you uncovered the bug or if you have ideas about what/where Rocket is going wrong. diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml new file mode 100644 index 00000000..f3e91bb9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -0,0 +1,133 @@ +name: Bug Report +description: Report a functionality issue that deviates from the documentation. +labels: ["triage"] +body: + - type: markdown + attributes: + value: > + **Thanks for taking the time to fill out this bug report!** Your report + helps make Rocket better. + + + Please only report issues related to _functionality_ that deviates from + published specification or reasonable expectation. Do not report issues + with documentation, infrastructure, or anything unrelated to functional + correctness here. + - type: input + attributes: + label: Rocket Version + description: > + Enter the exact version of Rocket (x.y.z) or git shorthash (8d9dfce) you're using. + + + Please ensure you're using the latest release before reporting a bug. + placeholder: "ex: 0.5.0" + validations: + required: true + - type: input + attributes: + label: Operating System + description: Which operating system and version are you running? + placeholder: "examples: macOS 13.6.2, Arch Linux 4.16.13" + validations: + required: true + - type: input + attributes: + label: Rust Toolchain Version + description: Which version of `rustc` are you using? (`rustc --version`) + placeholder: "ex: rustc 1.74.0 (79e9716c9 2023-11-13)" + validations: + required: true + - type: textarea + attributes: + label: What happened? + description: Provide a brief overview of what went wrong. + validations: + required: true + - type: textarea + attributes: + label: Test Case + description: > + Provide a Rocket application that elicits the bug. Ideally the program + contains a `#[test]` case using Rocket's + [`local`](https://api.rocket.rs/v0.5/rocket/local/index.html) testing + module. + placeholder: > + #[macro_use] extern crate rocket; + + + #[launch] + + fn rocket() -> _ { + rocket::build() + } + + + #[test] + + fn failing_test() { + use rocket::local::blocking::Client; + + let client = Client::tracked(rocket()).unwrap(); + let response = client.get("/").dispatch(); + assert!(response.status().class().is_success()); + } + render: rust + validations: + required: true + - type: textarea + attributes: + label: Log Output + description: > + Please provide the complete log output captured with + `ROCKET_LOG_LEVEL=debug` when the test case is run. + placeholder: > + ❯ ROCKET_LOG_LEVEL=debug cargo test + + running 1 test + + test failing_test ... FAILED + + failures: + + + ---- failing_test stdout ---- + + -- configuration trace information -- + >> "address" parameter source: rocket::Config::default() + >> "port" parameter source: rocket::Config::default() + >> "workers" parameter source: rocket::Config::default() + >> "max_blocking" parameter source: rocket::Config::default() + >> "keep_alive" parameter source: rocket::Config::default() + >> "ident" parameter source: rocket::Config::default() + >> "ip_header" parameter source: rocket::Config::default() + >> "limits" parameter source: rocket::Config::default() + >> "temp_dir" parameter source: rocket::Config::default() + >> "log_level" parameter source: `ROCKET_` environment variable(s) + >> "shutdown" parameter source: rocket::Config::default() + >> "cli_colors" parameter source: rocket::Config::default() + 🔧 Configured for debug. + >> address: 127.0.0.1 + >> port: 8000 + [...] + render: shell + validations: + required: true + - type: textarea + attributes: + label: Additional Context + description: > + Feel free to provide any additional context for your bug report. + - type: checkboxes + attributes: + label: System Checks + description: "Please confirm all of the following:" + options: + - label: My bug report relates to functionality. + required: true + - label: I have tested against the latest Rocket release or a recent git commit. + required: true + - label: I have tested against the latest stable `rustc` toolchain. + required: true + - label: I was unable to find this issue previously reported. + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 506d5a1d..b6cbda93 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1,14 @@ -blank_issues_enabled: true +blank_issues_enabled: false contact_links: - - name: Question - url: https://github.com/SergioBenitez/Rocket/discussions - about: Please ask questions or raise indefinite concerns on Discussions + - name: FAQ + url: https://rocket.rs/guide/faq/ + about: Please see our FAQ for answers to common questions. + - name: Questions + url: https://github.com/rwf2/Rocket/discussions/new?category=questions + about: For other questions or help, please use GitHub discussions. + - name: Feedback + url: https://github.com/rwf2/Rocket/discussions/new/choose + about: For general chat or feedback, please use GitHub discussions. + - name: Chat + url: https://chat.mozilla.org/#/room/#rocket:mozilla.org + about: Chat with us live on rocket:mozilla.org on Matrix. diff --git a/.github/ISSUE_TEMPLATE/doc-problem.yml b/.github/ISSUE_TEMPLATE/doc-problem.yml new file mode 100644 index 00000000..7270f03d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/doc-problem.yml @@ -0,0 +1,56 @@ +name: Documentation Problem +description: Report an issue with or suggest documentation. +labels: ["docs"] +body: + - type: markdown + attributes: + value: > + **Thanks for taking the time to report a documentation issue!** + + + Documentation problems include everything from typos to missing or + incorrect technical details in any of the following: + - [Rocket's Website](https://rocket.rs/) + - [The Rocket Programming Guide](https://rocket.rs/guide/) + - [API Docs](https://api.rocket.rs) + - [Content on GitHub](https://github.com/rwf2/Rocket) + + If we've written it, we want to know how it can be improved. + - type: dropdown + validations: + required: true + attributes: + label: What kind of documentation problem are you reporting? + multiple: true + options: + - Typo (PRs welcome!) + - Unclear Docs + - Undocumented Feature + - Broken Links + - Rendering Issue + - Grammar Issue + - Technical Problem + - Other + - type: input + validations: + required: true + attributes: + label: Where is the issue found? + description: Please provide a direct link to the documentation. + placeholder: "ex: https://rocket.rs/v0.5/guide/requests/#multiple-segments" + - type: textarea + validations: + required: true + attributes: + label: What's wrong? + description: > + Please describe what's wrong with the documentation. + - type: checkboxes + attributes: + label: System Checks + description: "Please confirm all of the following:" + options: + - label: I confirmed that the issue still exists on `master` on GitHub. + required: true + - label: I was unable to find a previous report of this problem. + required: true diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md deleted file mode 100644 index 72401bf4..00000000 --- a/.github/ISSUE_TEMPLATE/feature-request.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -name: Feature Request -about: Propose a change that introduces new functionality -title: '' -labels: request -assignees: '' ---- - -**Is your feature request motivated by a concrete problem? Please describe.** - -A clear and concise description of what the problem is. Examples: - -- "I frequently want to do X, but Rocket makes it hard. It would be nice if Rocket..." -- "I want to do X but Rocket makes it impossible because..." -- "Feature Z exists, but it has these drawbacks. What if..." - -**Why this feature can't or shouldn't live outside of Rocket** - -Rocket is designed to have a small but pluggable core. Feature requests that can be implemented outside of Rocket are typically declined. Make a case for why this feature can't or shouldn't be implemented outside of Rocket. - -**Ideal Solution** - -If you have an idea for a solution, propose it with a clear and concise description. - -**Alternatives Considered** - -A clear and concise description of any alternative solutions or features you've considered. - -**Additional Context** - -Add any other context here, for example, descriptions of elegant solutions in other software. diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml new file mode 100644 index 00000000..62e8556b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -0,0 +1,73 @@ +name: Feature Request +description: Propose a change that introduces new functionality. +labels: ["request"] +body: + - type: markdown + attributes: + value: > + **Thanks for taking the time to request a feature!** Your request helps + make Rocket better. + + + Please note that Rocket is designed to have a small but pluggable core. + Feature requests that can be implemented outside of Rocket _are + typically declined._ In your request, please make a strong case for why + this feature can't or shouldn't be implemented outside of Rocket. + - type: textarea + attributes: + label: What's missing? + description: > + Provide a brief overview of the functionality that's missing in Rocket + today, which problem(s) that functionality would solve for you, and what + the functionality would enable you to do. + placeholder: > + example: I frequently want to do X, but Rocket makes it hard. It would + be nice if Rocket... + + example: I want to do X but Rocket makes it impossible because... + + example: Feature Z exists, but it has these N drawbacks: [..]. What if... + validations: + required: true + - type: textarea + attributes: + label: Ideal Solution + description: > + If you already have an idea of how this feature can be implemented, + please describe it here. Hypothetical code examples are particularly + useful. + - type: textarea + attributes: + label: Why can't this be implemented outside of Rocket? + description: > + Please make a strong case for why this feature can't or shouldn't be + implemented outside of Rocket. We are likely to decline feature requests + that can exist outside of Rocket without compromise. + validations: + required: true + - type: textarea + attributes: + label: Are there workarounds usable today? + description: > + If the functionality being requested can be achieved today, please detail + how here. + - type: textarea + attributes: + label: Alternative Solutions + description: > + If you have other ideas about how this feature can be implemented, let + us know. + - type: textarea + attributes: + label: Additional Context + description: > + Feel free to provide any additional context for your request. + - type: checkboxes + attributes: + label: System Checks + description: "Please confirm all of the following:" + options: + - label: I do not believe that this feature can or should be implemented outside of Rocket. + required: true + - label: I was unable to find a previous request for this feature. + required: true diff --git a/.github/ISSUE_TEMPLATE/suggestion.md b/.github/ISSUE_TEMPLATE/suggestion.md deleted file mode 100644 index 8a07c2ae..00000000 --- a/.github/ISSUE_TEMPLATE/suggestion.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: Suggestion -about: Suggest a change or improvement to existing functionality -title: '' -labels: suggestion -assignees: '' ---- - -**Existing Functionality** - -A clear and concise description of existing functionality and why it is insufficient. Examples: - -- "I frequently want to do X, but Rocket makes it hard. It would be nice if..." -- "Feature Z exists, but it has these drawbacks. What if..." - -**Suggested Changes** - -If you have a concrete idea for an improvement, propose it with a clear and concise description. - -**Alternatives Considered** - -A clear and concise description of any alternative solutions using existing features or new features you've considered. - -**Additional Context** - -Add any other context here, for example, descriptions of elegant solutions in other software. diff --git a/.github/ISSUE_TEMPLATE/suggestion.yml b/.github/ISSUE_TEMPLATE/suggestion.yml new file mode 100644 index 00000000..42e48f47 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/suggestion.yml @@ -0,0 +1,57 @@ +name: Suggestion +description: Suggest a change or improvement to existing functionality. +labels: ["suggestion"] +body: + - type: markdown + attributes: + value: > + **Thanks for taking the time to make a suggestion!** + - type: input + validations: + required: true + attributes: + label: API Docs to Existing Functionality + description: Please provide a direct link to the API docs for the + functionality you'd like to change. + placeholder: "ex: https://api.rocket.rs/v0.5/rocket/trait.Sentinel.html" + - type: textarea + validations: + required: true + attributes: + label: Problems with Existing Functionality + description: Please let us know what you think is wrong with the existing functionality. + placeholder: > + example: Sentinels don't allow me to access `Foo`, but I'd like to because... + + example: Feature Z exists, but it has these drawbacks. What if... + - type: textarea + validations: + required: true + attributes: + label: Suggested Changes + description: > + How do you propose the existing functionality be changed? Code examples + are particular useful. + - type: textarea + validations: + required: true + attributes: + label: Alternatives Considered + description: > + Instead of making a change to Rocket, please describe alternative + solutions using existing features or new features you've considered. + - type: textarea + attributes: + label: Additional Context + description: Feel free to provide any additional context for your suggestion. + - type: checkboxes + attributes: + label: System Checks + description: "Please confirm all of the following:" + options: + - label: > + I do not believe that this suggestion can or should be implemented + outside of Rocket. + required: true + - label: I was unable to find a previous suggestion for this change. + required: true