From 2b50304dc2c8368c865fab4be84c2ad7614de3f0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 18 Apr 2025 13:14:50 +0200 Subject: [PATCH 01/19] add LABELS.md Signed-off-by: Patrik Oldsberg --- LABELS.md | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 LABELS.md diff --git a/LABELS.md b/LABELS.md new file mode 100644 index 0000000000..c688320355 --- /dev/null +++ b/LABELS.md @@ -0,0 +1,111 @@ +# GitHub Labels in Backstage + +This document explains the GitHub labels used in the Backstage main repository. Labels help categorize and track issues and pull requests, but are also used as a communication tool in order to help maintainers respond to issues and pull requests faster. + +## Issue Type Labels - `type:*` + +These labels help you understand what type of work is needed. + +- `type:bug` - Something doesn't work as expected and needs fixing. +- `type:docs` - Documentation is missing or needs updating. +- `type:suggestion` - An proposal for a new feature or change. +- `type:maintenance` - Routine maintenance tasks, version bumps, cleanup, deprecations, etc. + +## Priority Labels - `priority:*` + +These labels all signal that the issue has been accepted for implementation, and further indicate its priority and whether the owners of the area will address it: + +- `priority:critical` - The owners of the area will address this as soon as possible. +- `priority:roadmap` - The owners of the area have this on their roadmap and will address it when possible, some contributions may be welcome. +- `priority:contrib-welcome` - The owners of the area are unlikely to address this in the short term, but contributions are welcome. +- `priority:contrib-needed` - This will not be addressed by the owners of the area, but contributions are welcome. + +## Need Labels - `needs:*` + +These labels indicate what is needed to move an issue forward before it can be accepted for implementation: + +- `needs:bep` - The issue is an advanced addition that needs a [Backstage Enhancement Proposal](./beps/README.md). +- `needs:direction` - The issue needs direction from the owners of the area. +- `needs:more-info` - The issue needs more information from the author. +- `needs:motivation` - It is not clear why this change is needed. The author should provide motivation for the change, for instance by giving examples of concrete use cases or scenarios. +- `needs:repro` - The issue cannot be reproduced by the owners of the area. The author should provide more information to help them reproduce the issue, if possible with a minimal reproduction repository. +- `needs:triage` - The issue needs initial review. +- `needs:unblock` - The issue is blocked by another issue or upstream dependency. + +## Area Labels - `area:*` + +These labels indicate which part of Backstage an issue or pull request relates to. As a contributor, these help you find issues in areas you're interested in or have expertise in. + +- `area:auth` - Authentication and 3rd party authorization. +- `area:catalog` - The Catalog plugin and the Software Catalog model and integrations. +- `area:core` - The core Backstage framework. +- `area:design-system` - The Canon design system and library. +- `area:permission` - The Permissions system and permission integrations from other plugins. +- `area:scaffolder` - The Scaffolder plugin that powers Software Templates. +- `area:search` - The Search plugin and search integrations for other plugins. +- `area:techdocs` - The TechDocs plugin. + +## Integration Labels - `integration:*` + +These labels help you find issues related to specific external integrations: + +- `integration:aws` - [Amazon Web Services](https://aws.amazon.com/) +- `integration:azure` - [Microsoft Azure](https://azure.microsoft.com/) and [Azure DevOps](https://dev.azure.com/) +- `integration:bitbucket-cloud` - [Bitbucket Cloud](https://bitbucket.org/) +- `integration:bitbucket-server` - Bitbucket Server (Stash) +- `integration:gcp` - [Google Cloud Platform](https://cloud.google.com/) +- `integration:gerrit` - [Gerrit](https://www.gerritcodereview.com/) +- `integration:gitea` - [Gitea](https://gitea.com/) +- `integration:github` - [GitHub](https://github.com/) +- `integration:gitlab` - [GitLab](https://gitlab.com/) + +## Domain Labels + +These labels indicate that an issue is related to specific domains of expertise. + +- `domain:a11y` - Web domain issues specifically related to accessibility. +- `domain:design` - Visual design and user experience. +- `domain:docs` - Documentation for adopters, users, and developers. +- `domain:backend` - Backend development in Node.js. +- `domain:tooling` - Tooling and automation in Node.js and GitHub Actions. +- `domain:web` - Frontend development using TypeScript and React. + +## General Labels + +- `after vacations` - To be handled once the owners return from vacation. +- `do not merge` - The pull request should not be merged. +- `fix before release` - Should be handled before the next release. +- `good first issue` - Good for new contributors. +- `stale` - The issue or pull request has not seen any activity for a while and will be closed if no further activity is seen. + +## Common Issue Filters + +This is a collection of common issue filters that can help you find issues that you are looking for or that match your interests and skills. + +### New Contributors + +These issues are ideal for new contributors to get started and don't require much familiarity with Backstage. + +- [Backend](https://github.com/backstage/backstage/issues?q=is%3Aopen%20is%3Aissue%20label%3A%22good%20first%20issue%22%20label%3A%22domain%3Abackend%22%20) +- [Documentation](https://github.com/backstage/backstage/issues?q=is%3Aopen%20is%3Aissue%20label%3A%22good%20first%20issue%22%20label%3A%22domain%3Adocs%22%20) +- [Tooling](https://github.com/backstage/backstage/issues?q=is%3Aopen%20is%3Aissue%20label%3A%22good%20first%20issue%22%20label%3A%22domain%3Atooling%22%20) +- [Web](https://github.com/backstage/backstage/issues?q=is%3Aopen%20is%3Aissue%20label%3A%22good%20first%20issue%22%20label%3A%22domain%3Aweb%22%20) + +### Experienced Contributors + +These issues generally require some familiarity with Backstage and the codebase, and are either open for or require contributions from the community. + +- [Backend]() +- [Documentation]() +- [Tooling]() +- [Web]() + +### Maintainer Lists + +These are useful lists for maintainers. + +- [After vacations](https://github.com/backstage/backstage/issues?q=is%3Aopen%20is%3Aissue%20label%3A%22after%20vacations%22) +- [Critical priority](https://github.com/backstage/backstage/issues?q=is%3Aopen%20is%3Aissue%20label%3A%22priority%3Acritical%22) +- [Fix before release](https://github.com/backstage/backstage/issues?q=is%3Aopen%20is%3Aissue%20label%3A%22fix%20before%20release%22) +- [Needs direction](https://github.com/backstage/backstage/issues?q=is%3Aopen%20is%3Aissue%20label%3A%22needs%3Adirection%22) +- [Needs triage](https://github.com/backstage/backstage/issues?q=is%3Aopen%20is%3Aissue%20label%3A%22needs%3Atriage%22) From 8c79a739a1b07b10d9b6c890fc5aa6ff77f783fb Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 19 Apr 2025 13:01:20 +0200 Subject: [PATCH 02/19] .github/ISSUE_TEMPLATE: remove ux_component template Signed-off-by: Patrik Oldsberg --- .github/ISSUE_TEMPLATE/ux_component.yaml | 53 ------------------------ 1 file changed, 53 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/ux_component.yaml diff --git a/.github/ISSUE_TEMPLATE/ux_component.yaml b/.github/ISSUE_TEMPLATE/ux_component.yaml deleted file mode 100644 index c528356eb3..0000000000 --- a/.github/ISSUE_TEMPLATE/ux_component.yaml +++ /dev/null @@ -1,53 +0,0 @@ -name: ๐Ÿฆ„ UX Component -description: 'For designers to request UX components to be added to the Backstage Storybook' -title: '๐Ÿฆ„ UX Component: ' -labels: [design] -body: - - type: markdown - attributes: - value: | - We value your time and efforts to submit this RFC form. ๐Ÿ™ - - type: textarea - id: ux-general - validations: - required: true - attributes: - label: '๐Ÿ”– General' - description: 'Write a nice note to the community requesting the creation of a new component.' - placeholder: 'Include an image of your component. Bonus points for a GIF!' - - type: textarea - id: usage - validations: - required: true - attributes: - label: '๐Ÿ’ป Usage' - description: "Tell us what's the point of this component/pattern is." - placeholder: 'How does it help? How should it work? Any rules?' - - type: textarea - id: specs - validations: - required: true - attributes: - label: '๐Ÿ“ Specs' - description: 'Include images that detail the redlines for your component.' - placeholder: "Once we get our Figma workspace set up, we'll be posting the Figma files rather than doing specs by hand." - - type: textarea - id: future - attributes: - label: '๐Ÿ”ฎ Future' - description: 'List out any upcoming, exciting functionality for this component.' - placeholder: 'The component will have ...' - - type: checkboxes - id: no-duplicate-issues - attributes: - label: '๐Ÿ‘€ Have you spent some time to check if this UX Component request has been raised before?' - options: - - label: "I checked and didn't find similar issue" - required: true - - type: checkboxes - id: read-code-of-conduct - attributes: - label: '๐Ÿข Have you read the Code of Conduct?' - options: - - label: 'I have read the [Code of Conduct](https://github.com/backstage/backstage/blob/master/CODE_OF_CONDUCT.md)' - required: true From ef797aa0bb527137f8d836b7572fc687b8bf214e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Thu, 17 Apr 2025 12:15:53 +0200 Subject: [PATCH 03/19] .github/ISSUE_TEMPLATE: update bug template Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/ISSUE_TEMPLATE/bug.yaml | 170 +++++++++++++++++++++++--------- 1 file changed, 121 insertions(+), 49 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml index 57595621e4..3f869c0c19 100644 --- a/.github/ISSUE_TEMPLATE/bug.yaml +++ b/.github/ISSUE_TEMPLATE/bug.yaml @@ -1,76 +1,144 @@ -name: '๐Ÿ› Bug Report' -description: 'Submit a bug report to help us improve' -title: '๐Ÿ› Bug Report: <title>' +name: '๐Ÿชฒ Bug Report' +description: 'Report a bug that you have encountered' labels: - - bug + - type:bug + - status:needs-triage body: - type: markdown attributes: - value: We value your time and effort to submit this bug report. ๐Ÿ™ + value: | + Please fill in each section completely, and [search in GitHub](https://github.com/backstage/backstage/search?type=Issues) + before reporting a new bug in order to avoid duplicates. Thank you! + - type: checkboxes + id: issue-labels + attributes: + label: '๐Ÿ“œ Issue Labels' + options: + - label: 'Please familiarize yourself with the issue labels used in this project: [LABELS.md](https://github.com/backstage/backstage/blob/master/LABELS.md)' + required: true + - type: textarea + id: search-terms + attributes: + label: '๐Ÿ”Ž Search Terms' + render: plain + description: | + What search terms did you use when trying to find an existing bug report? + placeholder: | + List of keywords you searched for before creating this issue. Write them down here so that others can find this bug more easily and help provide feedback. + + e.g. "catalog github rate limited", "http root service configurer", "scaffolder template include", "entity card title" + validations: + required: true + - type: markdown + attributes: + value: '<br/>' # empty space + - type: markdown + attributes: + value: | + ## Defining the bug + + Defining the bug accurately will help ensure that it is identified and fixed correctly. + - type: dropdown + id: project-area + attributes: + label: '๐Ÿ—ƒ๏ธ Project Area' + description: What area of the project do you think this bug is related to? This will help find an owner for the issue faster. + options: + - Unknown + - Auditor + - Catalog + - CLI Tooling + - Core Framework + - Design System + - Documentation + - Events System + - Home + - Kubernetes Plugin + - Microsite + - Notifications + - OpenAPI Tooling + - Permission Framework + - Software Templates + - Search + - TechDocs + validations: + required: true + - type: dropdown + id: integration + attributes: + label: '๐Ÿ”— External Integration' + description: Is this issue related to an integration with any particular external system? + options: + - N/A + - AWS + - Azure + - Azure DevOps + - Bitbucket Cloud + - Bitbucket Server + - GCP + - Gerrit + - GitHub + - GitLab + - Gitea + - LDAP + validations: + required: true - type: textarea id: description validations: required: true attributes: - label: '๐Ÿ“œ Description' - description: 'A clear and concise description of what the bug is.' - placeholder: 'It bugs out when ...' + label: '๐Ÿ“ Description & Context' + placeholder: | + Describe the observed behavior that you deem to be incorrect, as well as any additional context that might be useful in understanding the bug. + + e.g. "When i navigate to the catalog index page it loads without a hitch. May be related to https://xkcd.com/1172" - type: textarea id: expected-behavior validations: required: true attributes: - label: '๐Ÿ‘ Expected behavior' - description: 'What did you think should happen?' - placeholder: 'It should ...' - - type: textarea - id: actual-behavior - validations: - required: true + label: '๐Ÿ‘ Expected Behavior' + placeholder: | + Describe the behavior or result that you expected instead of the observed one. + + e.g. "I expect the catalog index page to overheat my CPU" + - type: markdown attributes: - label: '๐Ÿ‘Ž Actual Behavior with Screenshots' - description: 'What did actually happen? Add screenshots, if applicable.' - placeholder: 'It actually ...' + value: '<br/>' # empty space + - type: markdown + attributes: + value: | + ## Reproducing the bug + + Being able to easily reproduce the bug will significantly increase the likelihood that it can be identified and fixed. Please provide a repository where the bug can be reproduced, unless this is a critical bug that needs immediate attention. + + If you are unable to provide a reproduction repo, please explain the reproduction steps in as much detail as possible, and include the output of `yarn backstage-cli info` if relevant. + + If inadequate or no reproduction steps are provided, the bug report is likely to be labelled as needing reproduction steps before it can be progressed further. + - type: input + id: reproduction-repo + attributes: + label: '๐Ÿ“ฆ Reproduction Repo' + description: A link to a GitHub repository where the issue can be reproduced + placeholder: https://github.com/ghost/my-repro-repo + validations: + required: false - type: textarea id: steps-to-reproduce - validations: - required: true attributes: - label: '๐Ÿ‘Ÿ Reproduction steps' + label: '๐Ÿฅพ Reproduction steps' description: 'How do you trigger this bug? Please walk us through it step by step.' - placeholder: - "Provide a link to a live example, or an unambiguous set of steps to reproduce this bug. Include code or configuration to reproduce, if relevant.\n - 1. Go to '...'\n - 2. Click on '....'\n + placeholder: | + 1. Go to '...' + 2. Click on '....' 3. Scroll down to '....'" - - type: textarea - id: context validations: required: false - attributes: - label: '๐Ÿ“ƒ Provide the context for the Bug.' - description: 'How has this issue affected you? What are you trying to accomplish?' - placeholder: 'Providing context (e.g. links to configuration settings, stack trace or log data) helps us come up with a solution that is most useful in the real world.' - - type: textarea - id: environment - validations: - required: false - attributes: - label: '๐Ÿ–ฅ๏ธ Your Environment' - description: 'Provide Browser Information - Provide Output of `yarn backstage-cli info`' - placeholder: 'Include as many relevant details about the environment you experienced the bug in.' - - type: checkboxes - id: no-duplicate-issues - attributes: - label: '๐Ÿ‘€ Have you spent some time to check if this bug has been raised before?' - options: - - label: "I checked and didn't find similar issue" - required: true - type: checkboxes id: read-code-of-conduct attributes: - label: '๐Ÿข Have you read the Code of Conduct?' + label: 'Have you read the Code of Conduct?' options: - label: 'I have read the [Code of Conduct](https://github.com/backstage/backstage/blob/master/CODE_OF_CONDUCT.md)' required: true @@ -79,6 +147,10 @@ body: label: Are you willing to submit PR? description: This is absolutely not required, but we are happy to guide you in the contribution process. options: - - Yes I am willing to submit a PR! + - Undecided + - Yes, and I have enough information to get started + - Yes, but I would like some more guidance - No, but I'm happy to collaborate on a PR with someone else - No, I don't have time to work on this right now + validations: + required: true From 5c7789c16814b127d0db47b4992fc3461f49516e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Sat, 19 Apr 2025 13:01:03 +0200 Subject: [PATCH 04/19] .github/ISSUE_TEMPLATE: merge rfc.yaml and feature.yaml into suggestion.yaml Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/ISSUE_TEMPLATE/feature.yaml | 54 ------------- .github/ISSUE_TEMPLATE/rfc.yaml | 51 ------------ .github/ISSUE_TEMPLATE/suggestion.yaml | 108 +++++++++++++++++++++++++ 3 files changed, 108 insertions(+), 105 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/feature.yaml delete mode 100644 .github/ISSUE_TEMPLATE/rfc.yaml create mode 100644 .github/ISSUE_TEMPLATE/suggestion.yaml diff --git a/.github/ISSUE_TEMPLATE/feature.yaml b/.github/ISSUE_TEMPLATE/feature.yaml deleted file mode 100644 index b2d5a6be81..0000000000 --- a/.github/ISSUE_TEMPLATE/feature.yaml +++ /dev/null @@ -1,54 +0,0 @@ -name: ๐Ÿš€ Feature -description: 'Submit a proposal for a new feature' -title: '๐Ÿš€ Feature: <title>' -labels: [enhancement] -body: - - type: markdown - attributes: - value: | - We value your time and efforts to submit this Feature request form. ๐Ÿ™ - - type: textarea - id: feature-description - validations: - required: true - attributes: - label: '๐Ÿ”– Feature description' - description: 'A clear and concise description of what the feature is.' - placeholder: 'You should add ...' - - type: textarea - id: context - validations: - required: true - attributes: - label: '๐ŸŽค Context' - description: 'Please explain why this feature should be implemented and how it would be used. Add examples, if applicable.' - placeholder: 'In my use-case, ...' - - type: textarea - id: implementation - attributes: - label: 'โœŒ๏ธ Possible Implementation' - description: 'A clear and concise description of what you want to happen.' - placeholder: 'Not obligatory, but ideas as to the implementation of the addition or change' - - type: checkboxes - id: no-duplicate-issues - attributes: - label: '๐Ÿ‘€ Have you spent some time to check if this feature request has been raised before?' - options: - - label: "I checked and didn't find similar issue" - required: true - - type: checkboxes - id: read-code-of-conduct - attributes: - label: '๐Ÿข Have you read the Code of Conduct?' - options: - - label: 'I have read the [Code of Conduct](https://github.com/backstage/backstage/blob/master/CODE_OF_CONDUCT.md)' - required: true - - type: dropdown - id: willing-to-submit-pr - attributes: - label: Are you willing to submit PR? - description: This is absolutely not required, but we are happy to guide you in the contribution process. - options: - - Yes I am willing to submit a PR! - - No, but I'm happy to collaborate on a PR with someone else - - No, I don't have time to work on this right now diff --git a/.github/ISSUE_TEMPLATE/rfc.yaml b/.github/ISSUE_TEMPLATE/rfc.yaml deleted file mode 100644 index 8e73992dc8..0000000000 --- a/.github/ISSUE_TEMPLATE/rfc.yaml +++ /dev/null @@ -1,51 +0,0 @@ -name: ๐Ÿ’ฌ RFC -description: 'Request For Comments (RFC) from the community' -title: '๐Ÿ’ฌ RFC: <title>' -labels: [rfc] -body: - - type: markdown - attributes: - value: | - We value your time and efforts to submit this RFC form. ๐Ÿ™ - - type: textarea - id: rfc-need - validations: - required: true - attributes: - label: '๐Ÿ”– Need' - description: 'Let us know why are you proposing this change' - placeholder: 'The problem weโ€™re trying to address and the benefits/impact we expect to get from this are ...' - - type: textarea - id: proposal - validations: - required: true - attributes: - label: '๐ŸŽ‰ Proposal' - description: 'Describe the proposal in as much detail as needed for reviewers to give concrete feedback.' - placeholder: 'Take special care in this section to describe any implications on data privacy or security.' - - type: textarea - id: alternatives - attributes: - label: 'ใ€ฝ๏ธ Alternatives' - description: 'What alternatives to the proposed solution were considered?' - placeholder: 'What criteria/data was used to discard these?' - - type: textarea - id: risk - attributes: - label: 'โŒ Risks' - description: 'What other things happening could conflict or compete (for example for resources) with the proposal?' - placeholder: 'What risk are there and how do we plan to handle them?' - - type: checkboxes - id: no-duplicate-issues - attributes: - label: '๐Ÿ‘€ Have you spent some time to check if this RFC has been raised before?' - options: - - label: "I checked and didn't find similar issue" - required: true - - type: checkboxes - id: read-code-of-conduct - attributes: - label: '๐Ÿข Have you read the Code of Conduct?' - options: - - label: 'I have read the [Code of Conduct](https://github.com/backstage/backstage/blob/master/CODE_OF_CONDUCT.md)' - required: true diff --git a/.github/ISSUE_TEMPLATE/suggestion.yaml b/.github/ISSUE_TEMPLATE/suggestion.yaml new file mode 100644 index 0000000000..6bd5ea5549 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/suggestion.yaml @@ -0,0 +1,108 @@ +name: '๐Ÿ’ก Change Suggestion' +description: 'Suggest an idea for a new feature or change to Backstage' +labels: + - type:suggestion + - status:needs-triage +body: + - type: markdown + attributes: + value: | + This template helps you propose new features, enhancements, or other ideas for Backstage. You can keep your proposal lightweight, but please provide enough detail for reviewers to understand and respond effectively. + + For complex additions, consider creating a [Backstage Enhancement Proposal](https://github.com/backstage/backstage/blob/master/beps/README.md) (BEP) instead, as this process streamlines discussions and iteration. Don't worry - you can always convert this issue to a BEP later. + - type: checkboxes + id: issue-labels + attributes: + label: '๐Ÿ“œ Issue Labels' + options: + - label: 'Please familiarize yourself with the issue labels used in this project: [LABELS.md](https://github.com/backstage/backstage/blob/master/LABELS.md)' + required: true + - type: textarea + id: search-terms + attributes: + label: '๐Ÿ”Ž Search Terms' + render: plain + description: | + What search terms did you use when trying to find an existing feature proposal? + placeholder: | + List of keywords you searched for before creating this issue. Write them down here so that others can find this bug more easily and help provide feedback. + + e.g. "catalog github rate limited", "http root service configurer", "scaffolder template include", "entity card title" + validations: + required: true + - type: dropdown + id: project-area + attributes: + label: '๐Ÿ—ƒ๏ธ Project Area' + description: What area of the project would this feature be related to? This will help find an owner for the issue faster. + options: + - Unknown + - Auditor + - Catalog + - CLI Tooling + - Core Framework + - Design System + - Documentation + - Events System + - Home + - Kubernetes Plugin + - Microsite + - Notifications + - OpenAPI Tooling + - Permission Framework + - Software Templates + - Search + - TechDocs + validations: + required: true + - type: textarea + id: need + validations: + required: true + attributes: + label: '๐Ÿ”– Need' + description: What is the rationale for this change, and who will benefit from it? + placeholder: | + Explain why this change is important and who will benefit from it. Provide context for the change, such as highlighting relevant past work in this area. + - type: textarea + id: proposal + validations: + required: true + attributes: + label: '๐Ÿ“ Proposal' + description: Describe the change that you are suggesting. + placeholder: | + Provide sufficient detail for reviewers to give concrete feedback. + + Including a proposed implementation is optional, but if you do, consider adding design details such as TypeScript examples, database schema, or sequence diagrams. + + If the change requires particular care when being rolled out, it can be helpful to for example include a plan for a phased release. + - type: textarea + id: alternatives + attributes: + label: '๐Ÿ”„ Alternatives' + description: Did you consider any other approaches? + placeholder: | + Did you consider any other approaches, and if so, why did you rule them out? + + These do not need to be as detailed as the main proposal, but should include enough information to understand the idea and why it wasn't suitable. + - type: checkboxes + id: read-code-of-conduct + attributes: + label: 'Have you read the Code of Conduct?' + options: + - label: 'I have read the [Code of Conduct](https://github.com/backstage/backstage/blob/master/CODE_OF_CONDUCT.md)' + required: true + - type: dropdown + id: willing-to-submit-pr + attributes: + label: Are you willing to submit PR? + description: This is absolutely not required, but we are happy to guide you in the contribution process. + options: + - Undecided + - Yes, and I have enough information to get started + - Yes, but I would like some more guidance + - No, but I'm happy to collaborate on a PR with someone else + - No, I don't have time to work on this right now + validations: + required: true From ed6ae655bd4b26d387f9da30fbca18b34ba6b7ca Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Sat, 19 Apr 2025 14:15:45 +0200 Subject: [PATCH 05/19] .github/ISSUE_TEMPLATE: add other.yaml Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/ISSUE_TEMPLATE/other.yaml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/other.yaml diff --git a/.github/ISSUE_TEMPLATE/other.yaml b/.github/ISSUE_TEMPLATE/other.yaml new file mode 100644 index 0000000000..774c8db9db --- /dev/null +++ b/.github/ISSUE_TEMPLATE/other.yaml @@ -0,0 +1,22 @@ +name: 'โ“ Other' +description: 'Something not captured by any other template' +body: + - type: markdown + attributes: + value: | + This template can be used to create issues that don't fit any of the other templates. Valid examples include meta issues or other task tracking issues to help coordinate work, or informative issues that are kept around to appear in searches. + + Do not use this template to submit support or help requests, they will be closed. Please use other forums such as our [Community Discord](https://discord.gg/backstage-687207715902193673) instead. + - type: checkboxes + id: acknowledgement + attributes: + label: '๐Ÿ“ Acknowledgement' + options: + - label: I acknowledge that issues using this template may be closed without further explanation. + required: true + - type: textarea + id: contents + attributes: + label: Content + validations: + required: true From 5791e1dc2e8cd82e0a3a12e877a4ca1211c00e5e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Sat, 19 Apr 2025 15:29:26 +0200 Subject: [PATCH 06/19] .github/ISSUE_TEMPLATE: add maintenance.yaml Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/ISSUE_TEMPLATE/maintenance.yaml | 95 +++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/maintenance.yaml diff --git a/.github/ISSUE_TEMPLATE/maintenance.yaml b/.github/ISSUE_TEMPLATE/maintenance.yaml new file mode 100644 index 0000000000..3fbd0b6dc9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/maintenance.yaml @@ -0,0 +1,95 @@ +name: '๐Ÿšง Maintenance Task' +description: 'Track a maintenance task' +labels: + - type:maintenance + - status:needs-triage +body: + - type: markdown + attributes: + value: | + This template lets you highlight maintenance tasks that need special consideration, such as tricky version bumps or migrations. + - type: checkboxes + id: issue-labels + attributes: + label: '๐Ÿ“œ Issue Labels' + options: + - label: 'Please familiarize yourself with the issue labels used in this project: [LABELS.md](https://github.com/backstage/backstage/blob/master/LABELS.md)' + required: true + - type: textarea + id: search-terms + attributes: + label: '๐Ÿ”Ž Search Terms' + render: plain + description: | + What search terms did you use when trying to find an existing feature proposal? + placeholder: | + List of keywords you searched for before creating this issue. Write them down here so that others can find this bug more easily and help provide feedback. + + e.g. "catalog github rate limited", "http root service configurer", "scaffolder template include", "entity card title" + validations: + required: true + - type: dropdown + id: project-area + attributes: + label: '๐Ÿ—ƒ๏ธ Project Area' + description: What area of the project would this feature be related to? This will help find an owner for the issue faster. + options: + - Unknown + - Auditor + - Catalog + - CLI Tooling + - Core Framework + - Design System + - Documentation + - Events System + - Home + - Kubernetes Plugin + - Microsite + - Notifications + - OpenAPI Tooling + - Permission Framework + - Software Templates + - Search + - TechDocs + validations: + required: true + - type: textarea + id: task + validations: + required: true + attributes: + label: '๐Ÿ› ๏ธ Task' + description: Describe the task that requires attention + placeholder: | + Explain what needs to be accomplished as well as any context for the change such as dependencies. + - type: textarea + id: proposal + validations: + required: true + attributes: + label: '๐Ÿ“Š Priority & Impact' + description: Explain the urgency and impact of this task + placeholder: | + Explain what level of prioritization this task should receive. Are there any particular benefits provided in newer versions in case of a version bump, or any security vulnerabilities that can be removed? + + Also list any important dates or deadlines, which as current versions reaching end of life, or release dates for stable releases. + - type: checkboxes + id: read-code-of-conduct + attributes: + label: 'Have you read the Code of Conduct?' + options: + - label: 'I have read the [Code of Conduct](https://github.com/backstage/backstage/blob/master/CODE_OF_CONDUCT.md)' + required: true + - type: dropdown + id: willing-to-submit-pr + attributes: + label: Are you willing to submit PR? + description: This is absolutely not required, but we are happy to guide you in the contribution process. + options: + - Undecided + - Yes, and I have enough information to get started + - Yes, but I would like some more guidance + - No, but I'm happy to collaborate on a PR with someone else + - No, I don't have time to work on this right now + validations: + required: true From 8b639217876161f4e09e952efb542db305cb1c0b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Sat, 19 Apr 2025 15:51:25 +0200 Subject: [PATCH 07/19] .github/ISSUE_TEMPLATE: add documentation.yaml Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/ISSUE_TEMPLATE/documentation.yaml | 92 +++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/documentation.yaml diff --git a/.github/ISSUE_TEMPLATE/documentation.yaml b/.github/ISSUE_TEMPLATE/documentation.yaml new file mode 100644 index 0000000000..9747d4f7df --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation.yaml @@ -0,0 +1,92 @@ +name: '๐Ÿ“– Documentation Issue' +description: 'Report an issue in the Backstage documentation' +labels: + - type:documentation + - status:needs-triage +body: + - type: markdown + attributes: + value: | + This template is used to report issues in the Backstage documentation. + + The documentation at [backstage.io](https://backstage.io) is only updated when a new release is made. Before reporting an issue here, please check that the issue also exists in the ["next"](https://backstage.io/docs/next/overview/what-is-backstage) version of the documentation, which you can switch to in the top-right dropdown menu. + - type: checkboxes + id: issue-labels + attributes: + label: '๐Ÿ“œ Issue Labels' + options: + - label: 'Please familiarize yourself with the issue labels used in this project: [LABELS.md](https://github.com/backstage/backstage/blob/master/LABELS.md)' + required: true + - type: dropdown + id: project-area + attributes: + label: '๐Ÿ—ƒ๏ธ Project Area' + description: What area of the project do you think this bug is related to? This will help find an owner for the issue faster. + options: + - Unknown + - Auditor + - Catalog + - CLI Tooling + - Core Framework + - Design System + - Documentation + - Events System + - Home + - Kubernetes Plugin + - Microsite + - Notifications + - OpenAPI Tooling + - Permission Framework + - Software Templates + - Search + - TechDocs + validations: + required: true + - type: dropdown + id: integration + attributes: + label: '๐Ÿ”— External Integration' + description: Is this issue related to an integration with any particular external system? + options: + - N/A + - AWS + - Azure + - Azure DevOps + - Bitbucket Cloud + - Bitbucket Server + - GCP + - Gerrit + - GitHub + - GitLab + - Gitea + - LDAP + validations: + required: true + - type: textarea + id: description + validations: + required: true + attributes: + label: '๐Ÿ“ Description' + description: Describe the problem you have found in the docs. + placeholder: | + Please provide links to the specific pages and sections that need to be corrected and describe the problem you have found. + - type: checkboxes + id: read-code-of-conduct + attributes: + label: 'Have you read the Code of Conduct?' + options: + - label: 'I have read the [Code of Conduct](https://github.com/backstage/backstage/blob/master/CODE_OF_CONDUCT.md)' + required: true + - type: dropdown + attributes: + label: Are you willing to submit PR? + description: This is absolutely not required, but we are happy to guide you in the contribution process. + options: + - Undecided + - Yes, and I have enough information to get started + - Yes, but I would like some more guidance + - No, but I'm happy to collaborate on a PR with someone else + - No, I don't have time to work on this right now + validations: + required: true From 4276a6411610cdc03e956d9a3d9784b2aeeb1b2b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Sat, 19 Apr 2025 18:05:32 +0200 Subject: [PATCH 08/19] .github/ISSUE_TEMPLATE: added sync script for common fields Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/ISSUE_TEMPLATE/.common.yaml | 71 +++++++++++++++++++++++++++++ .github/ISSUE_TEMPLATE/sync.js | 54 ++++++++++++++++++++++ package.json | 4 +- yarn.lock | 1 + 4 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 .github/ISSUE_TEMPLATE/.common.yaml create mode 100755 .github/ISSUE_TEMPLATE/sync.js diff --git a/.github/ISSUE_TEMPLATE/.common.yaml b/.github/ISSUE_TEMPLATE/.common.yaml new file mode 100644 index 0000000000..28b34d2982 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/.common.yaml @@ -0,0 +1,71 @@ +# This file contains common fields for all issue templates +# Each field is identified by its ID, and are synced with the `sync.js` script +# +# WARNING: After updating this file, run `yarn sync-issue-templates` +# + +- id: issue-labels + type: checkboxes + attributes: + label: '๐Ÿ“œ Issue Labels' + options: + - label: 'Please familiarize yourself with the issue labels used in this project: [LABELS.md](https://github.com/backstage/backstage/blob/master/LABELS.md)' + required: true +- id: search-terms + type: textarea + attributes: + label: '๐Ÿ”Ž Search Terms' + render: plain + description: | + What search terms did you use when trying to find an existing feature proposal? + placeholder: | + List of keywords you searched for before creating this issue. Write them down here so that others can find this bug more easily and help provide feedback. + + e.g. "catalog github rate limited", "http root service configurer", "scaffolder template include", "entity card title" + validations: + required: true +- id: project-area + type: dropdown + attributes: + label: '๐Ÿ—ƒ๏ธ Project Area' + description: What area of the project would this feature be related to? This will help find an owner for the issue faster. + options: + - Unknown + - Auditor + - Catalog + - CLI Tooling + - Core Framework + - Design System + - Documentation + - Events System + - Home + - Kubernetes Plugin + - Microsite + - Notifications + - OpenAPI Tooling + - Permission Framework + - Software Templates + - Search + - TechDocs + validations: + required: true +- id: read-code-of-conduct + type: checkboxes + attributes: + label: 'Have you read the Code of Conduct?' + options: + - label: 'I have read the [Code of Conduct](https://github.com/backstage/backstage/blob/master/CODE_OF_CONDUCT.md)' + required: true +- id: willing-to-submit-pr + type: dropdown + attributes: + label: Are you willing to submit PR? + description: This is absolutely not required, but we are happy to guide you in the contribution process. + options: + - Undecided + - Yes, and I have enough information to get started + - Yes, but I would like some more guidance + - No, but I'm happy to collaborate on a PR with someone else + - No, I don't have time to work on this right now + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/sync.js b/.github/ISSUE_TEMPLATE/sync.js new file mode 100755 index 0000000000..ec025ccd29 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/sync.js @@ -0,0 +1,54 @@ +#!/usr/bin/env node + +const fs = require('node:fs'); +const path = require('node:path'); +const yaml = require('yaml'); + +const TEMPLATES_DIR = path.join(__dirname); +const COMMON_FILE = path.join(TEMPLATES_DIR, '.common.yaml'); + +// Read the common fields from .common.yaml +const commonDoc = yaml.parseDocument(fs.readFileSync(COMMON_FILE, 'utf8')); +const commonFields = new Map( + commonDoc.contents.items.map(field => { + field.commentBefore = ' This field is managed by .common.yaml'; + return [field.get('id'), field]; + }), +); + +// Get all YAML files in the templates directory except .common.yaml +const templateFiles = fs + .readdirSync(TEMPLATES_DIR) + .filter(file => file.endsWith('.yaml') && file !== '.common.yaml'); + +// Process each template file +for (const templateFile of templateFiles) { + const templatePath = path.join(TEMPLATES_DIR, templateFile); + const templateDoc = yaml.parseDocument(fs.readFileSync(templatePath, 'utf8')); + + if (templateDoc.get('body')) { + const body = templateDoc.get('body'); + for (let i = 0; i < body.items.length; i++) { + const field = body.items[i]; + + const commonField = commonFields.get(field.get('id')); + if (commonField) { + body.items[i] = commonField; + } + } + + // Write the updated template back to file with matching style + fs.writeFileSync( + templatePath, + templateDoc.toString({ + indent: 2, + lineWidth: 0, + minContentWidth: 0, + singleQuote: true, + }), + ); + console.log(`Updated ${templateFile}`); + } +} + +console.log('Sync complete!'); diff --git a/package.json b/package.json index f42bafb4ab..308b7aca38 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "start:microsite": "cd microsite/ && yarn start", "start:next": "yarn start example-app-next example-backend", "storybook": "yarn ./storybook run storybook", + "sync-issue-templates": "node ./.github/ISSUE_TEMPLATE/sync.js", "techdocs-cli": "node scripts/techdocs-cli.js", "techdocs-cli:dev": "cross-env TECHDOCS_CLI_DEV_MODE=true node scripts/techdocs-cli.js", "test": "NODE_OPTIONS='--no-node-snapshot --experimental-vm-modules' backstage-cli repo test", @@ -112,7 +113,8 @@ "@backstage/errors": "workspace:^", "@manypkg/get-packages": "^1.1.3", "@types/global-agent": "^2.1.3", - "@useoptic/optic": "^1.0.0" + "@useoptic/optic": "^1.0.0", + "yaml": "^2.7.0" }, "devDependencies": { "@backstage/cli": "workspace:*", diff --git a/yarn.lock b/yarn.lock index 20037a1652..48842c2753 100644 --- a/yarn.lock +++ b/yarn.lock @@ -42682,6 +42682,7 @@ __metadata: sort-package-json: "npm:^2.8.0" typedoc: "npm:^0.27.6" typescript: "npm:~5.6.0" + yaml: "npm:^2.7.0" languageName: unknown linkType: soft From b6236097693a748036f70703967a66ac3a3bb7eb Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Sat, 19 Apr 2025 18:07:57 +0200 Subject: [PATCH 09/19] .github/ISSUE_TEMPLATE: initial common fields sync Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/ISSUE_TEMPLATE/bug.yaml | 24 +++++++++++++--------- .github/ISSUE_TEMPLATE/documentation.yaml | 17 ++++++++------- .github/ISSUE_TEMPLATE/maintenance.yaml | 25 ++++++++++++++--------- .github/ISSUE_TEMPLATE/suggestion.yaml | 25 ++++++++++++++--------- 4 files changed, 54 insertions(+), 37 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml index 3f869c0c19..25b68d7246 100644 --- a/.github/ISSUE_TEMPLATE/bug.yaml +++ b/.github/ISSUE_TEMPLATE/bug.yaml @@ -9,20 +9,22 @@ body: value: | Please fill in each section completely, and [search in GitHub](https://github.com/backstage/backstage/search?type=Issues) before reporting a new bug in order to avoid duplicates. Thank you! - - type: checkboxes - id: issue-labels + # This field is managed by .common.yaml + - id: issue-labels + type: checkboxes attributes: label: '๐Ÿ“œ Issue Labels' options: - label: 'Please familiarize yourself with the issue labels used in this project: [LABELS.md](https://github.com/backstage/backstage/blob/master/LABELS.md)' required: true - - type: textarea - id: search-terms + # This field is managed by .common.yaml + - id: search-terms + type: textarea attributes: label: '๐Ÿ”Ž Search Terms' render: plain description: | - What search terms did you use when trying to find an existing bug report? + What search terms did you use when trying to find an existing feature proposal? placeholder: | List of keywords you searched for before creating this issue. Write them down here so that others can find this bug more easily and help provide feedback. @@ -38,11 +40,12 @@ body: ## Defining the bug Defining the bug accurately will help ensure that it is identified and fixed correctly. - - type: dropdown - id: project-area + # This field is managed by .common.yaml + - id: project-area + type: dropdown attributes: label: '๐Ÿ—ƒ๏ธ Project Area' - description: What area of the project do you think this bug is related to? This will help find an owner for the issue faster. + description: What area of the project would this feature be related to? This will help find an owner for the issue faster. options: - Unknown - Auditor @@ -135,8 +138,9 @@ body: 3. Scroll down to '....'" validations: required: false - - type: checkboxes - id: read-code-of-conduct + # This field is managed by .common.yaml + - id: read-code-of-conduct + type: checkboxes attributes: label: 'Have you read the Code of Conduct?' options: diff --git a/.github/ISSUE_TEMPLATE/documentation.yaml b/.github/ISSUE_TEMPLATE/documentation.yaml index 9747d4f7df..4b126f09c4 100644 --- a/.github/ISSUE_TEMPLATE/documentation.yaml +++ b/.github/ISSUE_TEMPLATE/documentation.yaml @@ -10,18 +10,20 @@ body: This template is used to report issues in the Backstage documentation. The documentation at [backstage.io](https://backstage.io) is only updated when a new release is made. Before reporting an issue here, please check that the issue also exists in the ["next"](https://backstage.io/docs/next/overview/what-is-backstage) version of the documentation, which you can switch to in the top-right dropdown menu. - - type: checkboxes - id: issue-labels + # This field is managed by .common.yaml + - id: issue-labels + type: checkboxes attributes: label: '๐Ÿ“œ Issue Labels' options: - label: 'Please familiarize yourself with the issue labels used in this project: [LABELS.md](https://github.com/backstage/backstage/blob/master/LABELS.md)' required: true - - type: dropdown - id: project-area + # This field is managed by .common.yaml + - id: project-area + type: dropdown attributes: label: '๐Ÿ—ƒ๏ธ Project Area' - description: What area of the project do you think this bug is related to? This will help find an owner for the issue faster. + description: What area of the project would this feature be related to? This will help find an owner for the issue faster. options: - Unknown - Auditor @@ -71,8 +73,9 @@ body: description: Describe the problem you have found in the docs. placeholder: | Please provide links to the specific pages and sections that need to be corrected and describe the problem you have found. - - type: checkboxes - id: read-code-of-conduct + # This field is managed by .common.yaml + - id: read-code-of-conduct + type: checkboxes attributes: label: 'Have you read the Code of Conduct?' options: diff --git a/.github/ISSUE_TEMPLATE/maintenance.yaml b/.github/ISSUE_TEMPLATE/maintenance.yaml index 3fbd0b6dc9..8f5cd4b7cd 100644 --- a/.github/ISSUE_TEMPLATE/maintenance.yaml +++ b/.github/ISSUE_TEMPLATE/maintenance.yaml @@ -8,15 +8,17 @@ body: attributes: value: | This template lets you highlight maintenance tasks that need special consideration, such as tricky version bumps or migrations. - - type: checkboxes - id: issue-labels + # This field is managed by .common.yaml + - id: issue-labels + type: checkboxes attributes: label: '๐Ÿ“œ Issue Labels' options: - label: 'Please familiarize yourself with the issue labels used in this project: [LABELS.md](https://github.com/backstage/backstage/blob/master/LABELS.md)' required: true - - type: textarea - id: search-terms + # This field is managed by .common.yaml + - id: search-terms + type: textarea attributes: label: '๐Ÿ”Ž Search Terms' render: plain @@ -28,8 +30,9 @@ body: e.g. "catalog github rate limited", "http root service configurer", "scaffolder template include", "entity card title" validations: required: true - - type: dropdown - id: project-area + # This field is managed by .common.yaml + - id: project-area + type: dropdown attributes: label: '๐Ÿ—ƒ๏ธ Project Area' description: What area of the project would this feature be related to? This will help find an owner for the issue faster. @@ -73,15 +76,17 @@ body: Explain what level of prioritization this task should receive. Are there any particular benefits provided in newer versions in case of a version bump, or any security vulnerabilities that can be removed? Also list any important dates or deadlines, which as current versions reaching end of life, or release dates for stable releases. - - type: checkboxes - id: read-code-of-conduct + # This field is managed by .common.yaml + - id: read-code-of-conduct + type: checkboxes attributes: label: 'Have you read the Code of Conduct?' options: - label: 'I have read the [Code of Conduct](https://github.com/backstage/backstage/blob/master/CODE_OF_CONDUCT.md)' required: true - - type: dropdown - id: willing-to-submit-pr + # This field is managed by .common.yaml + - id: willing-to-submit-pr + type: dropdown attributes: label: Are you willing to submit PR? description: This is absolutely not required, but we are happy to guide you in the contribution process. diff --git a/.github/ISSUE_TEMPLATE/suggestion.yaml b/.github/ISSUE_TEMPLATE/suggestion.yaml index 6bd5ea5549..0676320542 100644 --- a/.github/ISSUE_TEMPLATE/suggestion.yaml +++ b/.github/ISSUE_TEMPLATE/suggestion.yaml @@ -10,15 +10,17 @@ body: This template helps you propose new features, enhancements, or other ideas for Backstage. You can keep your proposal lightweight, but please provide enough detail for reviewers to understand and respond effectively. For complex additions, consider creating a [Backstage Enhancement Proposal](https://github.com/backstage/backstage/blob/master/beps/README.md) (BEP) instead, as this process streamlines discussions and iteration. Don't worry - you can always convert this issue to a BEP later. - - type: checkboxes - id: issue-labels + # This field is managed by .common.yaml + - id: issue-labels + type: checkboxes attributes: label: '๐Ÿ“œ Issue Labels' options: - label: 'Please familiarize yourself with the issue labels used in this project: [LABELS.md](https://github.com/backstage/backstage/blob/master/LABELS.md)' required: true - - type: textarea - id: search-terms + # This field is managed by .common.yaml + - id: search-terms + type: textarea attributes: label: '๐Ÿ”Ž Search Terms' render: plain @@ -30,8 +32,9 @@ body: e.g. "catalog github rate limited", "http root service configurer", "scaffolder template include", "entity card title" validations: required: true - - type: dropdown - id: project-area + # This field is managed by .common.yaml + - id: project-area + type: dropdown attributes: label: '๐Ÿ—ƒ๏ธ Project Area' description: What area of the project would this feature be related to? This will help find an owner for the issue faster. @@ -86,15 +89,17 @@ body: Did you consider any other approaches, and if so, why did you rule them out? These do not need to be as detailed as the main proposal, but should include enough information to understand the idea and why it wasn't suitable. - - type: checkboxes - id: read-code-of-conduct + # This field is managed by .common.yaml + - id: read-code-of-conduct + type: checkboxes attributes: label: 'Have you read the Code of Conduct?' options: - label: 'I have read the [Code of Conduct](https://github.com/backstage/backstage/blob/master/CODE_OF_CONDUCT.md)' required: true - - type: dropdown - id: willing-to-submit-pr + # This field is managed by .common.yaml + - id: willing-to-submit-pr + type: dropdown attributes: label: Are you willing to submit PR? description: This is absolutely not required, but we are happy to guide you in the contribution process. From 4afa2d10ff46ffd28a35f8faa14f767bf1151ec4 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Sat, 19 Apr 2025 18:10:05 +0200 Subject: [PATCH 10/19] .github/ISSUE_TEMPLATE: update common fields to be more generic Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/ISSUE_TEMPLATE/.common.yaml | 6 +++--- .github/ISSUE_TEMPLATE/bug.yaml | 6 +++--- .github/ISSUE_TEMPLATE/documentation.yaml | 2 +- .github/ISSUE_TEMPLATE/maintenance.yaml | 6 +++--- .github/ISSUE_TEMPLATE/suggestion.yaml | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/.common.yaml b/.github/ISSUE_TEMPLATE/.common.yaml index 28b34d2982..0ea27e65ea 100644 --- a/.github/ISSUE_TEMPLATE/.common.yaml +++ b/.github/ISSUE_TEMPLATE/.common.yaml @@ -17,9 +17,9 @@ label: '๐Ÿ”Ž Search Terms' render: plain description: | - What search terms did you use when trying to find an existing feature proposal? + What search terms did you use when trying to find similar issues? placeholder: | - List of keywords you searched for before creating this issue. Write them down here so that others can find this bug more easily and help provide feedback. + List of keywords you searched for before creating this issue. Write them down here so that others can find this issue more easily and help provide feedback. e.g. "catalog github rate limited", "http root service configurer", "scaffolder template include", "entity card title" validations: @@ -28,7 +28,7 @@ type: dropdown attributes: label: '๐Ÿ—ƒ๏ธ Project Area' - description: What area of the project would this feature be related to? This will help find an owner for the issue faster. + description: What project area is this issue closest related to? This will help find an owner for the issue faster. options: - Unknown - Auditor diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml index 25b68d7246..8e3550b7be 100644 --- a/.github/ISSUE_TEMPLATE/bug.yaml +++ b/.github/ISSUE_TEMPLATE/bug.yaml @@ -24,9 +24,9 @@ body: label: '๐Ÿ”Ž Search Terms' render: plain description: | - What search terms did you use when trying to find an existing feature proposal? + What search terms did you use when trying to find similar issues? placeholder: | - List of keywords you searched for before creating this issue. Write them down here so that others can find this bug more easily and help provide feedback. + List of keywords you searched for before creating this issue. Write them down here so that others can find this issue more easily and help provide feedback. e.g. "catalog github rate limited", "http root service configurer", "scaffolder template include", "entity card title" validations: @@ -45,7 +45,7 @@ body: type: dropdown attributes: label: '๐Ÿ—ƒ๏ธ Project Area' - description: What area of the project would this feature be related to? This will help find an owner for the issue faster. + description: What project area is this issue closest related to? This will help find an owner for the issue faster. options: - Unknown - Auditor diff --git a/.github/ISSUE_TEMPLATE/documentation.yaml b/.github/ISSUE_TEMPLATE/documentation.yaml index 4b126f09c4..5ea44cb130 100644 --- a/.github/ISSUE_TEMPLATE/documentation.yaml +++ b/.github/ISSUE_TEMPLATE/documentation.yaml @@ -23,7 +23,7 @@ body: type: dropdown attributes: label: '๐Ÿ—ƒ๏ธ Project Area' - description: What area of the project would this feature be related to? This will help find an owner for the issue faster. + description: What project area is this issue closest related to? This will help find an owner for the issue faster. options: - Unknown - Auditor diff --git a/.github/ISSUE_TEMPLATE/maintenance.yaml b/.github/ISSUE_TEMPLATE/maintenance.yaml index 8f5cd4b7cd..8b8ed8f19b 100644 --- a/.github/ISSUE_TEMPLATE/maintenance.yaml +++ b/.github/ISSUE_TEMPLATE/maintenance.yaml @@ -23,9 +23,9 @@ body: label: '๐Ÿ”Ž Search Terms' render: plain description: | - What search terms did you use when trying to find an existing feature proposal? + What search terms did you use when trying to find similar issues? placeholder: | - List of keywords you searched for before creating this issue. Write them down here so that others can find this bug more easily and help provide feedback. + List of keywords you searched for before creating this issue. Write them down here so that others can find this issue more easily and help provide feedback. e.g. "catalog github rate limited", "http root service configurer", "scaffolder template include", "entity card title" validations: @@ -35,7 +35,7 @@ body: type: dropdown attributes: label: '๐Ÿ—ƒ๏ธ Project Area' - description: What area of the project would this feature be related to? This will help find an owner for the issue faster. + description: What project area is this issue closest related to? This will help find an owner for the issue faster. options: - Unknown - Auditor diff --git a/.github/ISSUE_TEMPLATE/suggestion.yaml b/.github/ISSUE_TEMPLATE/suggestion.yaml index 0676320542..425898d407 100644 --- a/.github/ISSUE_TEMPLATE/suggestion.yaml +++ b/.github/ISSUE_TEMPLATE/suggestion.yaml @@ -25,9 +25,9 @@ body: label: '๐Ÿ”Ž Search Terms' render: plain description: | - What search terms did you use when trying to find an existing feature proposal? + What search terms did you use when trying to find similar issues? placeholder: | - List of keywords you searched for before creating this issue. Write them down here so that others can find this bug more easily and help provide feedback. + List of keywords you searched for before creating this issue. Write them down here so that others can find this issue more easily and help provide feedback. e.g. "catalog github rate limited", "http root service configurer", "scaffolder template include", "entity card title" validations: @@ -37,7 +37,7 @@ body: type: dropdown attributes: label: '๐Ÿ—ƒ๏ธ Project Area' - description: What area of the project would this feature be related to? This will help find an owner for the issue faster. + description: What project area is this issue closest related to? This will help find an owner for the issue faster. options: - Unknown - Auditor From 4014ea02a6a7f1a5bf559111f5a0f573bd377db8 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Sat, 19 Apr 2025 21:33:47 +0200 Subject: [PATCH 11/19] LABELS.md,.github/ISSUE_TEMPLATE: update labels and add integration field to common Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/ISSUE_TEMPLATE/.common.yaml | 24 +++++++++++++++++++++-- .github/ISSUE_TEMPLATE/bug.yaml | 9 +++++---- .github/ISSUE_TEMPLATE/documentation.yaml | 10 ++++++---- .github/ISSUE_TEMPLATE/maintenance.yaml | 4 ++-- .github/ISSUE_TEMPLATE/suggestion.yaml | 4 ++-- LABELS.md | 7 +++++++ 6 files changed, 44 insertions(+), 14 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/.common.yaml b/.github/ISSUE_TEMPLATE/.common.yaml index 0ea27e65ea..55515d7fd2 100644 --- a/.github/ISSUE_TEMPLATE/.common.yaml +++ b/.github/ISSUE_TEMPLATE/.common.yaml @@ -32,6 +32,7 @@ options: - Unknown - Auditor + - Auth - Catalog - CLI Tooling - Core Framework @@ -40,15 +41,34 @@ - Events System - Home - Kubernetes Plugin - - Microsite - Notifications - OpenAPI Tooling - Permission Framework - - Software Templates - Search + - Software Templates - TechDocs validations: required: true +- type: dropdown + id: integration + attributes: + label: '๐Ÿ”— External Integration' + description: Is this issue related to an integration with any particular external system? + options: + - N/A + - AWS + - Azure + - Azure DevOps + - Bitbucket Cloud + - Bitbucket Server + - GCP + - Gerrit + - Gitea + - GitHub + - GitLab + - Other + validations: + required: true - id: read-code-of-conduct type: checkboxes attributes: diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml index 8e3550b7be..d0b1db78af 100644 --- a/.github/ISSUE_TEMPLATE/bug.yaml +++ b/.github/ISSUE_TEMPLATE/bug.yaml @@ -49,6 +49,7 @@ body: options: - Unknown - Auditor + - Auth - Catalog - CLI Tooling - Core Framework @@ -57,15 +58,15 @@ body: - Events System - Home - Kubernetes Plugin - - Microsite - Notifications - OpenAPI Tooling - Permission Framework - - Software Templates - Search + - Software Templates - TechDocs validations: required: true + # This field is managed by .common.yaml - type: dropdown id: integration attributes: @@ -80,10 +81,10 @@ body: - Bitbucket Server - GCP - Gerrit + - Gitea - GitHub - GitLab - - Gitea - - LDAP + - Other validations: required: true - type: textarea diff --git a/.github/ISSUE_TEMPLATE/documentation.yaml b/.github/ISSUE_TEMPLATE/documentation.yaml index 5ea44cb130..b6711ab2d8 100644 --- a/.github/ISSUE_TEMPLATE/documentation.yaml +++ b/.github/ISSUE_TEMPLATE/documentation.yaml @@ -1,6 +1,7 @@ name: '๐Ÿ“– Documentation Issue' description: 'Report an issue in the Backstage documentation' labels: + - domain:docs - type:documentation - status:needs-triage body: @@ -27,6 +28,7 @@ body: options: - Unknown - Auditor + - Auth - Catalog - CLI Tooling - Core Framework @@ -35,15 +37,15 @@ body: - Events System - Home - Kubernetes Plugin - - Microsite - Notifications - OpenAPI Tooling - Permission Framework - - Software Templates - Search + - Software Templates - TechDocs validations: required: true + # This field is managed by .common.yaml - type: dropdown id: integration attributes: @@ -58,10 +60,10 @@ body: - Bitbucket Server - GCP - Gerrit + - Gitea - GitHub - GitLab - - Gitea - - LDAP + - Other validations: required: true - type: textarea diff --git a/.github/ISSUE_TEMPLATE/maintenance.yaml b/.github/ISSUE_TEMPLATE/maintenance.yaml index 8b8ed8f19b..34d58fcee0 100644 --- a/.github/ISSUE_TEMPLATE/maintenance.yaml +++ b/.github/ISSUE_TEMPLATE/maintenance.yaml @@ -39,6 +39,7 @@ body: options: - Unknown - Auditor + - Auth - Catalog - CLI Tooling - Core Framework @@ -47,12 +48,11 @@ body: - Events System - Home - Kubernetes Plugin - - Microsite - Notifications - OpenAPI Tooling - Permission Framework - - Software Templates - Search + - Software Templates - TechDocs validations: required: true diff --git a/.github/ISSUE_TEMPLATE/suggestion.yaml b/.github/ISSUE_TEMPLATE/suggestion.yaml index 425898d407..48f3a7fd89 100644 --- a/.github/ISSUE_TEMPLATE/suggestion.yaml +++ b/.github/ISSUE_TEMPLATE/suggestion.yaml @@ -41,6 +41,7 @@ body: options: - Unknown - Auditor + - Auth - Catalog - CLI Tooling - Core Framework @@ -49,12 +50,11 @@ body: - Events System - Home - Kubernetes Plugin - - Microsite - Notifications - OpenAPI Tooling - Permission Framework - - Software Templates - Search + - Software Templates - TechDocs validations: required: true diff --git a/LABELS.md b/LABELS.md index c688320355..60fb102e87 100644 --- a/LABELS.md +++ b/LABELS.md @@ -36,10 +36,17 @@ These labels indicate what is needed to move an issue forward before it can be a These labels indicate which part of Backstage an issue or pull request relates to. As a contributor, these help you find issues in areas you're interested in or have expertise in. +- `area:auditor` - Auditor service and it's use in plugins. - `area:auth` - Authentication and 3rd party authorization. - `area:catalog` - The Catalog plugin and the Software Catalog model and integrations. - `area:core` - The core Backstage framework. - `area:design-system` - The Canon design system and library. +- `area:documentation` - Documentation for adopters, users, and developers. +- `area:events` - The Events system and integrations for other plugins. +- `area:home` - The Home plugin and the main page of the Backstage site. +- `area:kubernetes` - The Kubernetes plugin and integrations for other plugins. +- `area:notifications` - The Notifications plugin and integrations for other plugins. +- `area:openapi-tooling` - The OpenAPI tooling it's use in plugins. - `area:permission` - The Permissions system and permission integrations from other plugins. - `area:scaffolder` - The Scaffolder plugin that powers Software Templates. - `area:search` - The Search plugin and search integrations for other plugins. From 6e17c3fd115fa6f99f4761d7923010b72a28856b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Sat, 19 Apr 2025 21:42:04 +0200 Subject: [PATCH 12/19] .github/ISSUE_TEMPLATE: update .common to wrap in body Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/ISSUE_TEMPLATE/.common.yaml | 169 ++++++++++++++-------------- .github/ISSUE_TEMPLATE/sync.js | 2 +- 2 files changed, 86 insertions(+), 85 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/.common.yaml b/.github/ISSUE_TEMPLATE/.common.yaml index 55515d7fd2..c7b79912b1 100644 --- a/.github/ISSUE_TEMPLATE/.common.yaml +++ b/.github/ISSUE_TEMPLATE/.common.yaml @@ -4,88 +4,89 @@ # WARNING: After updating this file, run `yarn sync-issue-templates` # -- id: issue-labels - type: checkboxes - attributes: - label: '๐Ÿ“œ Issue Labels' - options: - - label: 'Please familiarize yourself with the issue labels used in this project: [LABELS.md](https://github.com/backstage/backstage/blob/master/LABELS.md)' - required: true -- id: search-terms - type: textarea - attributes: - label: '๐Ÿ”Ž Search Terms' - render: plain - description: | - What search terms did you use when trying to find similar issues? - placeholder: | - List of keywords you searched for before creating this issue. Write them down here so that others can find this issue more easily and help provide feedback. +body: + - id: issue-labels + type: checkboxes + attributes: + label: '๐Ÿ“œ Issue Labels' + options: + - label: 'Please familiarize yourself with the issue labels used in this project: [LABELS.md](https://github.com/backstage/backstage/blob/master/LABELS.md)' + required: true + - id: search-terms + type: textarea + attributes: + label: '๐Ÿ”Ž Search Terms' + render: plain + description: | + What search terms did you use when trying to find similar issues? + placeholder: | + List of keywords you searched for before creating this issue. Write them down here so that others can find this issue more easily and help provide feedback. - e.g. "catalog github rate limited", "http root service configurer", "scaffolder template include", "entity card title" - validations: - required: true -- id: project-area - type: dropdown - attributes: - label: '๐Ÿ—ƒ๏ธ Project Area' - description: What project area is this issue closest related to? This will help find an owner for the issue faster. - options: - - Unknown - - Auditor - - Auth - - Catalog - - CLI Tooling - - Core Framework - - Design System - - Documentation - - Events System - - Home - - Kubernetes Plugin - - Notifications - - OpenAPI Tooling - - Permission Framework - - Search - - Software Templates - - TechDocs - validations: - required: true -- type: dropdown - id: integration - attributes: - label: '๐Ÿ”— External Integration' - description: Is this issue related to an integration with any particular external system? - options: - - N/A - - AWS - - Azure - - Azure DevOps - - Bitbucket Cloud - - Bitbucket Server - - GCP - - Gerrit - - Gitea - - GitHub - - GitLab - - Other - validations: - required: true -- id: read-code-of-conduct - type: checkboxes - attributes: - label: 'Have you read the Code of Conduct?' - options: - - label: 'I have read the [Code of Conduct](https://github.com/backstage/backstage/blob/master/CODE_OF_CONDUCT.md)' - required: true -- id: willing-to-submit-pr - type: dropdown - attributes: - label: Are you willing to submit PR? - description: This is absolutely not required, but we are happy to guide you in the contribution process. - options: - - Undecided - - Yes, and I have enough information to get started - - Yes, but I would like some more guidance - - No, but I'm happy to collaborate on a PR with someone else - - No, I don't have time to work on this right now - validations: - required: true + e.g. "catalog github rate limited", "http root service configurer", "scaffolder template include", "entity card title" + validations: + required: true + - id: project-area + type: dropdown + attributes: + label: '๐Ÿ—ƒ๏ธ Project Area' + description: What project area is this issue closest related to? This will help find an owner for the issue faster. + options: + - Unknown + - Auditor + - Auth + - Catalog + - CLI Tooling + - Core Framework + - Design System + - Documentation + - Events System + - Home + - Kubernetes Plugin + - Notifications + - OpenAPI Tooling + - Permission Framework + - Search + - Software Templates + - TechDocs + validations: + required: true + - type: dropdown + id: integration + attributes: + label: '๐Ÿ”— External Integration' + description: Is this issue related to an integration with any particular external system? + options: + - N/A + - AWS + - Azure + - Azure DevOps + - Bitbucket Cloud + - Bitbucket Server + - GCP + - Gerrit + - Gitea + - GitHub + - GitLab + - Other + validations: + required: true + - id: read-code-of-conduct + type: checkboxes + attributes: + label: 'Have you read the Code of Conduct?' + options: + - label: 'I have read the [Code of Conduct](https://github.com/backstage/backstage/blob/master/CODE_OF_CONDUCT.md)' + required: true + - id: willing-to-submit-pr + type: dropdown + attributes: + label: Are you willing to submit PR? + description: This is absolutely not required, but we are happy to guide you in the contribution process. + options: + - Undecided + - Yes, and I have enough information to get started + - Yes, but I would like some more guidance + - No, but I'm happy to collaborate on a PR with someone else + - No, I don't have time to work on this right now + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/sync.js b/.github/ISSUE_TEMPLATE/sync.js index ec025ccd29..b9252c3407 100755 --- a/.github/ISSUE_TEMPLATE/sync.js +++ b/.github/ISSUE_TEMPLATE/sync.js @@ -10,7 +10,7 @@ const COMMON_FILE = path.join(TEMPLATES_DIR, '.common.yaml'); // Read the common fields from .common.yaml const commonDoc = yaml.parseDocument(fs.readFileSync(COMMON_FILE, 'utf8')); const commonFields = new Map( - commonDoc.contents.items.map(field => { + commonDoc.get('body').items.map(field => { field.commentBefore = ' This field is managed by .common.yaml'; return [field.get('id'), field]; }), From e688551d55ac6477ced109067ab9db7184b5a26c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Sun, 20 Apr 2025 01:12:34 +0200 Subject: [PATCH 13/19] .github: add advanced issue labeler Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/advanced-issue-labeler.yml | 56 ++++++++++++++++++++++++++++++ .github/workflows/issue.yaml | 16 +++++++++ 2 files changed, 72 insertions(+) create mode 100644 .github/advanced-issue-labeler.yml diff --git a/.github/advanced-issue-labeler.yml b/.github/advanced-issue-labeler.yml new file mode 100644 index 0000000000..965e468581 --- /dev/null +++ b/.github/advanced-issue-labeler.yml @@ -0,0 +1,56 @@ +policy: + - section: + - id: ['project-area'] + block-list: [] + label: + - name: 'area:auditor' + keys: ['Auditor'] + - name: 'area:auth' + keys: ['Auth'] + - name: 'area:catalog' + keys: ['Catalog'] + - name: 'area:core' + keys: ['Core Framework', 'CLI Tooling'] + - name: 'area:design-system' + keys: ['Design System'] + - name: 'area:documentation' + keys: ['Documentation'] + - name: 'area:events' + keys: ['Events System'] + - name: 'area:home' + keys: ['Home'] + - name: 'area:kubernetes' + keys: ['Kubernetes Plugin'] + - name: 'area:notifications' + keys: ['Notifications'] + - name: 'area:openapi-tooling' + keys: ['OpenAPI Tooling'] + - name: 'area:permission' + keys: ['Permission Framework'] + - name: 'area:search' + keys: ['Search'] + - name: 'area:scaffolder' + keys: ['Software Templates'] + - name: 'area:techdocs' + keys: ['TechDocs'] + - id: ['integration'] + block-list: [] + label: + - name: 'integration:aws' + keys: ['AWS'] + - name: 'integration:azure' + keys: ['Azure', 'Azure DevOps'] + - name: 'integration:bitbucket-cloud' + keys: ['Bitbucket Cloud'] + - name: 'integration:bitbucket-server' + keys: ['Bitbucket Server'] + - name: 'integration:gcp' + keys: ['GCP'] + - name: 'integration:gerrit' + keys: ['Gerrit'] + - name: 'integration:gitea' + keys: ['Gitea'] + - name: 'integration:github' + keys: ['GitHub'] + - name: 'integration:gitlab' + keys: ['GitLab'] diff --git a/.github/workflows/issue.yaml b/.github/workflows/issue.yaml index 8e30170aca..b0a04ff998 100644 --- a/.github/workflows/issue.yaml +++ b/.github/workflows/issue.yaml @@ -20,6 +20,10 @@ jobs: with: egress-policy: audit + - uses: actions/checkout@v4 + with: + sparse-checkout: .github + - name: Add issue labels uses: github/issue-labeler@c1b0f9f52a63158c4adc09425e858e87b32e9685 # v3.4 with: @@ -29,3 +33,15 @@ jobs: enable-versioned-regex: 0 not-before: 2024-04-19T15:03:51Z repo-token: '${{ secrets.GITHUB_TOKEN }}' + + # These two steps add labels based on user input in the issue form + - name: Parse issue form + uses: stefanbuck/github-issue-parser@v3 + id: issue-parser + with: + template-path: .github/ISSUE_TEMPLATE/.common.yaml + - name: Add advanced issue labels + uses: redhat-plumbers-in-action/advanced-issue-labeler@v2 + with: + issue-form: ${{ steps.issue-parser.outputs.jsonString }} + token: ${{ secrets.GITHUB_TOKEN }} From 63212f01625778bd8a07fa9c0eb35bdb309fbb76 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Sun, 20 Apr 2025 01:23:49 +0200 Subject: [PATCH 14/19] .github/ISSUE_TEMPLATE: refine language in all templates Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/ISSUE_TEMPLATE/.common.yaml | 4 ++-- .github/ISSUE_TEMPLATE/bug.yaml | 12 ++++++------ .github/ISSUE_TEMPLATE/documentation.yaml | 8 ++++---- .github/ISSUE_TEMPLATE/maintenance.yaml | 12 ++++++------ .github/ISSUE_TEMPLATE/other.yaml | 4 ++-- .github/ISSUE_TEMPLATE/suggestion.yaml | 8 ++++---- 6 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/.common.yaml b/.github/ISSUE_TEMPLATE/.common.yaml index c7b79912b1..57ea212010 100644 --- a/.github/ISSUE_TEMPLATE/.common.yaml +++ b/.github/ISSUE_TEMPLATE/.common.yaml @@ -29,7 +29,7 @@ body: type: dropdown attributes: label: '๐Ÿ—ƒ๏ธ Project Area' - description: What project area is this issue closest related to? This will help find an owner for the issue faster. + description: Which project area is this issue most closely related to? This will help find an owner for the issue faster. options: - Unknown - Auditor @@ -80,7 +80,7 @@ body: - id: willing-to-submit-pr type: dropdown attributes: - label: Are you willing to submit PR? + label: Are you willing to submit a PR? description: This is absolutely not required, but we are happy to guide you in the contribution process. options: - Undecided diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml index d0b1db78af..a247971187 100644 --- a/.github/ISSUE_TEMPLATE/bug.yaml +++ b/.github/ISSUE_TEMPLATE/bug.yaml @@ -8,7 +8,7 @@ body: attributes: value: | Please fill in each section completely, and [search in GitHub](https://github.com/backstage/backstage/search?type=Issues) - before reporting a new bug in order to avoid duplicates. Thank you! + before reporting a new bug to avoid duplicates. Thank you! # This field is managed by .common.yaml - id: issue-labels type: checkboxes @@ -45,7 +45,7 @@ body: type: dropdown attributes: label: '๐Ÿ—ƒ๏ธ Project Area' - description: What project area is this issue closest related to? This will help find an owner for the issue faster. + description: Which project area is this issue most closely related to? This will help find an owner for the issue faster. options: - Unknown - Auditor @@ -94,9 +94,9 @@ body: attributes: label: '๐Ÿ“ Description & Context' placeholder: | - Describe the observed behavior that you deem to be incorrect, as well as any additional context that might be useful in understanding the bug. + Describe the observed behavior that you believe to be incorrect, as well as any additional context that might be useful in understanding the bug. - e.g. "When i navigate to the catalog index page it loads without a hitch. May be related to https://xkcd.com/1172" + e.g. "When I navigate to the catalog index page, it loads without any issues. This might be related to https://xkcd.com/1172" - type: textarea id: expected-behavior validations: @@ -117,9 +117,9 @@ body: Being able to easily reproduce the bug will significantly increase the likelihood that it can be identified and fixed. Please provide a repository where the bug can be reproduced, unless this is a critical bug that needs immediate attention. - If you are unable to provide a reproduction repo, please explain the reproduction steps in as much detail as possible, and include the output of `yarn backstage-cli info` if relevant. + If you are unable to provide a reproduction repository, please explain the reproduction steps in as much detail as possible, and include the output of `yarn backstage-cli info` if relevant. - If inadequate or no reproduction steps are provided, the bug report is likely to be labelled as needing reproduction steps before it can be progressed further. + If inadequate or no reproduction steps are provided, the bug report is likely to be labeled as needing reproduction steps before it can be progressed further. - type: input id: reproduction-repo attributes: diff --git a/.github/ISSUE_TEMPLATE/documentation.yaml b/.github/ISSUE_TEMPLATE/documentation.yaml index b6711ab2d8..00f6bfd67a 100644 --- a/.github/ISSUE_TEMPLATE/documentation.yaml +++ b/.github/ISSUE_TEMPLATE/documentation.yaml @@ -10,7 +10,7 @@ body: value: | This template is used to report issues in the Backstage documentation. - The documentation at [backstage.io](https://backstage.io) is only updated when a new release is made. Before reporting an issue here, please check that the issue also exists in the ["next"](https://backstage.io/docs/next/overview/what-is-backstage) version of the documentation, which you can switch to in the top-right dropdown menu. + The documentation at [backstage.io](https://backstage.io) is only updated when a new release is made. Before reporting an issue here, please verify that the issue also exists in the ["next"](https://backstage.io/docs/next/overview/what-is-backstage) version of the documentation, which you can access using the top-right dropdown menu. # This field is managed by .common.yaml - id: issue-labels type: checkboxes @@ -24,7 +24,7 @@ body: type: dropdown attributes: label: '๐Ÿ—ƒ๏ธ Project Area' - description: What project area is this issue closest related to? This will help find an owner for the issue faster. + description: Which project area is this issue most closely related to? This will help find an owner for the issue faster. options: - Unknown - Auditor @@ -72,9 +72,9 @@ body: required: true attributes: label: '๐Ÿ“ Description' - description: Describe the problem you have found in the docs. + description: Describe the problem you have found in the documentation. placeholder: | - Please provide links to the specific pages and sections that need to be corrected and describe the problem you have found. + Please provide links to the specific pages and sections that need to be corrected, and describe the problem you have found. # This field is managed by .common.yaml - id: read-code-of-conduct type: checkboxes diff --git a/.github/ISSUE_TEMPLATE/maintenance.yaml b/.github/ISSUE_TEMPLATE/maintenance.yaml index 34d58fcee0..6113dcb7ec 100644 --- a/.github/ISSUE_TEMPLATE/maintenance.yaml +++ b/.github/ISSUE_TEMPLATE/maintenance.yaml @@ -7,7 +7,7 @@ body: - type: markdown attributes: value: | - This template lets you highlight maintenance tasks that need special consideration, such as tricky version bumps or migrations. + This template helps you track maintenance tasks that require special consideration, such as complex version updates or migrations. # This field is managed by .common.yaml - id: issue-labels type: checkboxes @@ -35,7 +35,7 @@ body: type: dropdown attributes: label: '๐Ÿ—ƒ๏ธ Project Area' - description: What project area is this issue closest related to? This will help find an owner for the issue faster. + description: Which project area is this issue most closely related to? This will help find an owner for the issue faster. options: - Unknown - Auditor @@ -64,7 +64,7 @@ body: label: '๐Ÿ› ๏ธ Task' description: Describe the task that requires attention placeholder: | - Explain what needs to be accomplished as well as any context for the change such as dependencies. + Explain what needs to be accomplished, including any relevant context such as dependencies or related components. - type: textarea id: proposal validations: @@ -73,9 +73,9 @@ body: label: '๐Ÿ“Š Priority & Impact' description: Explain the urgency and impact of this task placeholder: | - Explain what level of prioritization this task should receive. Are there any particular benefits provided in newer versions in case of a version bump, or any security vulnerabilities that can be removed? + Explain what level of prioritization this task should receive. Are there any particular benefits provided in newer versions in case of a version update, or any security vulnerabilities that can be addressed? - Also list any important dates or deadlines, which as current versions reaching end of life, or release dates for stable releases. + Also list any important dates or deadlines, such as current versions reaching end of life, or release dates for stable releases. # This field is managed by .common.yaml - id: read-code-of-conduct type: checkboxes @@ -88,7 +88,7 @@ body: - id: willing-to-submit-pr type: dropdown attributes: - label: Are you willing to submit PR? + label: Are you willing to submit a PR? description: This is absolutely not required, but we are happy to guide you in the contribution process. options: - Undecided diff --git a/.github/ISSUE_TEMPLATE/other.yaml b/.github/ISSUE_TEMPLATE/other.yaml index 774c8db9db..4ad802b341 100644 --- a/.github/ISSUE_TEMPLATE/other.yaml +++ b/.github/ISSUE_TEMPLATE/other.yaml @@ -4,9 +4,9 @@ body: - type: markdown attributes: value: | - This template can be used to create issues that don't fit any of the other templates. Valid examples include meta issues or other task tracking issues to help coordinate work, or informative issues that are kept around to appear in searches. + This template can be used to create issues that don't fit any of the other templates. Valid examples include meta issues or other task tracking issues to help coordinate work, or informative issues that are kept for search purposes. - Do not use this template to submit support or help requests, they will be closed. Please use other forums such as our [Community Discord](https://discord.gg/backstage-687207715902193673) instead. + Do not use this template to submit support or help requests, as they will be closed. Please use other forums such as our [Community Discord](https://discord.gg/backstage-687207715902193673) instead. - type: checkboxes id: acknowledgement attributes: diff --git a/.github/ISSUE_TEMPLATE/suggestion.yaml b/.github/ISSUE_TEMPLATE/suggestion.yaml index 48f3a7fd89..886fb01822 100644 --- a/.github/ISSUE_TEMPLATE/suggestion.yaml +++ b/.github/ISSUE_TEMPLATE/suggestion.yaml @@ -37,7 +37,7 @@ body: type: dropdown attributes: label: '๐Ÿ—ƒ๏ธ Project Area' - description: What project area is this issue closest related to? This will help find an owner for the issue faster. + description: Which project area is this issue most closely related to? This will help find an owner for the issue faster. options: - Unknown - Auditor @@ -66,7 +66,7 @@ body: label: '๐Ÿ”– Need' description: What is the rationale for this change, and who will benefit from it? placeholder: | - Explain why this change is important and who will benefit from it. Provide context for the change, such as highlighting relevant past work in this area. + Explain why this change is important and who will benefit from it. Provide context for the change, such as highlighting relevant past work in this area or specific use cases. - type: textarea id: proposal validations: @@ -79,7 +79,7 @@ body: Including a proposed implementation is optional, but if you do, consider adding design details such as TypeScript examples, database schema, or sequence diagrams. - If the change requires particular care when being rolled out, it can be helpful to for example include a plan for a phased release. + If the change requires particular care when being rolled out, it can be helpful to include a plan for a phased release. - type: textarea id: alternatives attributes: @@ -101,7 +101,7 @@ body: - id: willing-to-submit-pr type: dropdown attributes: - label: Are you willing to submit PR? + label: Are you willing to submit a PR? description: This is absolutely not required, but we are happy to guide you in the contribution process. options: - Undecided From 3f550fe9e84a8b6d21056f268f427d64fad0acca Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Thu, 24 Apr 2025 12:05:01 +0200 Subject: [PATCH 15/19] .github/ISSUE_TEMPLATE: explicit ordering of templates Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/ISSUE_TEMPLATE/{bug.yaml => 01_bug.yaml} | 0 .../ISSUE_TEMPLATE/{documentation.yaml => 02_documentation.yaml} | 0 .github/ISSUE_TEMPLATE/{suggestion.yaml => 03_suggestion.yaml} | 0 .github/ISSUE_TEMPLATE/{maintenance.yaml => 04_maintenance.yaml} | 0 .github/ISSUE_TEMPLATE/{other.yaml => 05_other.yaml} | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename .github/ISSUE_TEMPLATE/{bug.yaml => 01_bug.yaml} (100%) rename .github/ISSUE_TEMPLATE/{documentation.yaml => 02_documentation.yaml} (100%) rename .github/ISSUE_TEMPLATE/{suggestion.yaml => 03_suggestion.yaml} (100%) rename .github/ISSUE_TEMPLATE/{maintenance.yaml => 04_maintenance.yaml} (100%) rename .github/ISSUE_TEMPLATE/{other.yaml => 05_other.yaml} (100%) diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/01_bug.yaml similarity index 100% rename from .github/ISSUE_TEMPLATE/bug.yaml rename to .github/ISSUE_TEMPLATE/01_bug.yaml diff --git a/.github/ISSUE_TEMPLATE/documentation.yaml b/.github/ISSUE_TEMPLATE/02_documentation.yaml similarity index 100% rename from .github/ISSUE_TEMPLATE/documentation.yaml rename to .github/ISSUE_TEMPLATE/02_documentation.yaml diff --git a/.github/ISSUE_TEMPLATE/suggestion.yaml b/.github/ISSUE_TEMPLATE/03_suggestion.yaml similarity index 100% rename from .github/ISSUE_TEMPLATE/suggestion.yaml rename to .github/ISSUE_TEMPLATE/03_suggestion.yaml diff --git a/.github/ISSUE_TEMPLATE/maintenance.yaml b/.github/ISSUE_TEMPLATE/04_maintenance.yaml similarity index 100% rename from .github/ISSUE_TEMPLATE/maintenance.yaml rename to .github/ISSUE_TEMPLATE/04_maintenance.yaml diff --git a/.github/ISSUE_TEMPLATE/other.yaml b/.github/ISSUE_TEMPLATE/05_other.yaml similarity index 100% rename from .github/ISSUE_TEMPLATE/other.yaml rename to .github/ISSUE_TEMPLATE/05_other.yaml From 218db4625bbe2cc9cd8e97c971b847618aa1cf09 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Thu, 24 Apr 2025 12:05:41 +0200 Subject: [PATCH 16/19] .github/ISSUE_TEMPLATE: update template titles Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/ISSUE_TEMPLATE/01_bug.yaml | 2 +- .github/ISSUE_TEMPLATE/02_documentation.yaml | 2 +- .github/ISSUE_TEMPLATE/03_suggestion.yaml | 2 +- .github/ISSUE_TEMPLATE/04_maintenance.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/01_bug.yaml b/.github/ISSUE_TEMPLATE/01_bug.yaml index a247971187..e0d563afc3 100644 --- a/.github/ISSUE_TEMPLATE/01_bug.yaml +++ b/.github/ISSUE_TEMPLATE/01_bug.yaml @@ -1,4 +1,4 @@ -name: '๐Ÿชฒ Bug Report' +name: '๐Ÿชฒ Report a bug' description: 'Report a bug that you have encountered' labels: - type:bug diff --git a/.github/ISSUE_TEMPLATE/02_documentation.yaml b/.github/ISSUE_TEMPLATE/02_documentation.yaml index 00f6bfd67a..ad530522eb 100644 --- a/.github/ISSUE_TEMPLATE/02_documentation.yaml +++ b/.github/ISSUE_TEMPLATE/02_documentation.yaml @@ -1,4 +1,4 @@ -name: '๐Ÿ“– Documentation Issue' +name: '๐Ÿ“– Report an issue in the documentation' description: 'Report an issue in the Backstage documentation' labels: - domain:docs diff --git a/.github/ISSUE_TEMPLATE/03_suggestion.yaml b/.github/ISSUE_TEMPLATE/03_suggestion.yaml index 886fb01822..3178ae9fd0 100644 --- a/.github/ISSUE_TEMPLATE/03_suggestion.yaml +++ b/.github/ISSUE_TEMPLATE/03_suggestion.yaml @@ -1,4 +1,4 @@ -name: '๐Ÿ’ก Change Suggestion' +name: '๐Ÿ’ก Suggest a change' description: 'Suggest an idea for a new feature or change to Backstage' labels: - type:suggestion diff --git a/.github/ISSUE_TEMPLATE/04_maintenance.yaml b/.github/ISSUE_TEMPLATE/04_maintenance.yaml index 6113dcb7ec..742db7ee0f 100644 --- a/.github/ISSUE_TEMPLATE/04_maintenance.yaml +++ b/.github/ISSUE_TEMPLATE/04_maintenance.yaml @@ -1,4 +1,4 @@ -name: '๐Ÿšง Maintenance Task' +name: '๐Ÿšง Track a maintenance task' description: 'Track a maintenance task' labels: - type:maintenance From c508bdf79a33333b55788ca92472dddf55535f49 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Thu, 24 Apr 2025 12:06:36 +0200 Subject: [PATCH 17/19] .github/issue-labeler.yml: remove BEP auto label Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/issue-labeler.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/issue-labeler.yml b/.github/issue-labeler.yml index c6c6ef115f..69eb2fddd9 100644 --- a/.github/issue-labeler.yml +++ b/.github/issue-labeler.yml @@ -10,5 +10,3 @@ area:scaffolder: - '/scaffolder/i' area:permission: - '/permission/i' -bep: - - '/\bbep\b/i' From e499a749445fab11210f3f5d3951808cd8fec0bc Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Thu, 24 Apr 2025 12:15:24 +0200 Subject: [PATCH 18/19] LABELS,.github/workflows: update stale labels, add "no stale" Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/workflows/automate_stale.yml | 4 ++-- LABELS.md | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/automate_stale.yml b/.github/workflows/automate_stale.yml index c34c1312b1..fbb6ca4365 100644 --- a/.github/workflows/automate_stale.yml +++ b/.github/workflows/automate_stale.yml @@ -28,7 +28,7 @@ jobs: for your contributions. days-before-issue-stale: 60 days-before-issue-close: 7 - exempt-issue-labels: plugin,after-vacations,will-fix,bep + exempt-issue-labels: after vacations,no stale stale-issue-label: stale stale-pr-message: > This PR has been automatically marked as stale because it has not had @@ -37,6 +37,6 @@ jobs: and we'll re-open the PR so that you can continue the contribution! days-before-pr-stale: 14 days-before-pr-close: 7 - exempt-pr-labels: after-vacations,will-fix + exempt-pr-labels: after vacations,no stale stale-pr-label: stale operations-per-run: 100 diff --git a/LABELS.md b/LABELS.md index 60fb102e87..724d9b1c7f 100644 --- a/LABELS.md +++ b/LABELS.md @@ -84,6 +84,7 @@ These labels indicate that an issue is related to specific domains of expertise. - `fix before release` - Should be handled before the next release. - `good first issue` - Good for new contributors. - `stale` - The issue or pull request has not seen any activity for a while and will be closed if no further activity is seen. +- `no stale` - The issue or pull request should not be closed due to inactivity. ## Common Issue Filters From d868732710f37afba382f31a8a43c856da077882 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg <poldsberg@gmail.com> Date: Thu, 24 Apr 2025 14:36:05 +0200 Subject: [PATCH 19/19] .github/workflows/issue: add comment explaining the checkout Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> --- .github/workflows/issue.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/issue.yaml b/.github/workflows/issue.yaml index b0a04ff998..46ff8a6011 100644 --- a/.github/workflows/issue.yaml +++ b/.github/workflows/issue.yaml @@ -20,6 +20,8 @@ jobs: with: egress-policy: audit + # We need to checkout the `.github/ISSUE_TEMPLATE` for the advanced labeler action to be able to read the templates + # While at it we might as well checkout all of `.github` so that the labeling actions don't need to fetch their configs - uses: actions/checkout@v4 with: sparse-checkout: .github