├── .github ├── DISCUSSION_TEMPLATE │ └── proposals-for-qwik.yml ├── ISSUE_TEMPLATE │ ├── RFC.yml │ └── config.yml └── workflows │ └── auto-label-new-issues.yml └── README.md /.github/DISCUSSION_TEMPLATE/proposals-for-qwik.yml: -------------------------------------------------------------------------------- 1 | labels: ["Proposals For Qwik"] 2 | body: 3 | - type: markdown 4 | attributes: 5 | value: | 6 | The more details you can add the better the chances this proposal will get accepted. 7 | 8 | - type: input 9 | id: has-id 10 | attributes: 11 | label: What is it about? 12 | description: In one sentence, what's the summary of the proposal (ignore if it's the same as the title) 13 | 14 | - type: textarea 15 | id: motivation 16 | attributes: 17 | label: What's the motivation for this proposal? 18 | description: please describe the problems / goals 19 | value: | 20 | #### Problems you are trying to solve: 21 | * 22 | * 23 | 24 | #### Goals you are trying to achieve: 25 | * 26 | * 27 | 28 | #### Any other context or information you want to share: 29 | 30 | 31 | 32 | 33 | --- 34 | 35 | - type: textarea 36 | id: proposed-solution 37 | attributes: 38 | label: Proposed Solution / Feature 39 | description: Please describe the solution you have in mind. Include code examples if relevant. 40 | value: | 41 | #### What do you propose? 42 | 43 | 44 | 45 | #### Code examples 46 | 47 | ``` 48 | 49 | ``` 50 | 51 | 52 | --- 53 | 54 | - type: textarea 55 | id: reference 56 | attributes: 57 | label: Links / References 58 | description: Please include reference links if there are any 59 | 60 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/RFC.yml: -------------------------------------------------------------------------------- 1 | name: STAGE 2 - RFC Issue (Core Team Only) 2 | description: An official RFC (Request for Comments) issue about a new feature or change to Qwik. 3 | title: 'RFC: ' 4 | body: 5 | - type: input 6 | id: champion 7 | attributes: 8 | label: Champion 9 | description: Please @mention the person from the core team who'll champion this RFC. 10 | - type: textarea 11 | id: motivation 12 | attributes: 13 | label: What's the motivation for this proposal? 14 | description: please describe the problems / goals 15 | value: | 16 | #### Problems you are trying to solve: 17 | * 18 | * 19 | 20 | #### Goals you are trying to achieve: 21 | * 22 | * 23 | 24 | #### Any other context or information you want to share: 25 | 26 | 27 | 28 | 29 | --- 30 | 31 | - type: textarea 32 | id: proposed-solution 33 | attributes: 34 | label: Proposed Solution / Feature 35 | description: Please describe the solution you have in mind. Include code examples if relevant. 36 | value: | 37 | #### What do you propose? 38 | 39 | 40 | 41 | #### Code examples 42 | 43 | ``` 44 | 45 | ``` 46 | 47 | 48 | --- 49 | 50 | - type: textarea 51 | id: reference 52 | attributes: 53 | label: PRs/ Links / References 54 | description: Please include any relveant PRs or reference links -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: "STAGE 1 - Proposal (anyone can submit)" 4 | url: https://github.com/QwikDev/qwik-evolution/discussions/new?category=proposals 5 | about: "Create a new proposal for a feature or a change in Qwik" -------------------------------------------------------------------------------- /.github/workflows/auto-label-new-issues.yml: -------------------------------------------------------------------------------- 1 | name: Auto Label New Issues 2 | 3 | on: 4 | issues: 5 | types: 6 | - opened 7 | 8 | jobs: 9 | add-label: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - name: Label the new issue 14 | uses: actions-ecosystem/action-add-labels@v1 15 | with: 16 | github_token: ${{ secrets.GITHUB_TOKEN }} 17 | labels: | 18 | [STAGE-2] incomplete implementation 19 | [STAGE-2] not fully covered by tests yet 20 | [STAGE-2] unresolved discussions left 21 | [STAGE-3] docs changes not added yet 22 | [STAGE-3] missing 2 reviews for RFC PRs 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Qwik Evolution 2 | 3 | This is the place for new proposals and ideas for the Qwik framework. 4 | 5 | [You can check out the RFCs progress here](https://github.com/orgs/QwikDev/projects/4?query=sort%3Aupdated-desc+is%3Aopen) 6 | 7 | ## Introduction 8 | 9 | This following outlines the process for proposing, discussing, and implementing new features and substantial changes to the Qwik framework. The goal is to ensure that new features align with Qwik's core values and community needs while maintaining a transparent and collaborative approach. 10 | 11 | A lot of changes like bug fixes and docs updates can be handled by a normal pull request and do not require this process. 12 | 13 | But some changes have a wider effect and require design and discussion to make sure their impact will be positive for the wider Qwik community and will stay true to Qwik's philosophy. 14 | 15 | In the Qwik Evolution process, timelines can vary—from days or weeks on urgent matters to much longer for non-urgent but high-value improvements. 16 | 17 | ## Qwik RFC Process 18 | 19 | 20 | ### STAGE 1 - Proposal 21 | 22 | A proposal is any change suggestion or feature idea for Qwik 23 | 24 | 🧑 **Who can create it?** 25 | 26 | Anyone from the Qwik community can create a new proposal. 27 | 28 | ✨ **How to create one?** 29 | 30 | Create a [proposal discussion using the suggested template](https://github.com/QwikDev/qwik-evolution/discussions/new?category=proposals) 31 | 32 | 📃 **Checklist for becoming a "RFC Issue":** 33 | 34 | - [x] Detailed and well articulated Proposal 35 | - [x] Accepted via a Core leadership team vote 36 | - [x] Has at least one champion from the core team 37 | 38 | . 39 | 40 | ### STAGE 2 - RFC Issue 41 | 42 | An RFC issue is a Github issue that's based on the original proposal discussion. 43 | This means the implementation exploration can be started and all related PRs should be linked in that issue. 44 | An RFC is led by champions from the Core team but the original proposal submitter could join as a community champion to provide help / insight / feedback during the exploration process. 45 | 46 | 🧑 **Who can create it?** 47 | 48 | Core team member 49 | 50 | 📃 **Checklist for advancing to the review stage:** 51 | - [x] Full implementation of the proposal 52 | - [X] All the changes are covered by tests 53 | - [x] No unresolved critical discussions left on the issue 54 | 55 | . 56 | 57 | ### STAGE 3 - RFC Implementation Review 58 | 59 | The RFC related Pull requests should be reviewed and fully tested before 60 | 61 | 🧑 **Who can create it?** 62 | 63 | Any contributor can help with the implementation of the RFC, with coordination with the core team 64 | 65 | 📃 **Checklist for approving the implementation:** 66 | - [x] At least 2 reviewers from the core team 67 | - [x] The necessary documentation for the feature / change is added 68 | 69 | 70 | . 71 | 72 | ### STAGE 4 - Developer preview 73 | 74 | The PR is merged and is released under either a feature flag or a special alpha version. 75 | 76 | 📃 **Checklist for releasing it as stable** 77 | - [x] A period of at least 30 days of testing with community partners to gather feedback and fix bugs 78 | 79 | . 80 | 81 | ### STAGE 5 - Stable feature 82 | 83 | RFC Issue is closed and moved to `Released as Stable (STAGE 5)`. 84 | 85 | Oh happy days! 😊🎉 86 | 87 | . 88 | 89 | #### Credit 90 | 91 | This process was inspired by: [TC39](https://github.com/tc39/proposals), [Astro](https://github.com/withastro/roadmap), [Ember](https://github.com/emberjs/rfcs). 92 | --------------------------------------------------------------------------------