From 339f169349a2d9813877afb736632185a8b4b150 Mon Sep 17 00:00:00 2001 From: Shivang Sharma Date: Tue, 12 May 2026 15:35:01 +0530 Subject: [PATCH 1/4] docs: add CONTRIBUTING.md with contribution guidelines, branching strategy, and coding standards --- CONTRIBUTING.md | 400 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 400 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..e56e967 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,400 @@ +# Contributing to Actor Framework + +We welcome both code and non-code contributions β€” everything from bug reports and testing to documentation improvements and feature development. + +--- + +## Table of Contents + +- [Ways to Contribute](#-ways-to-contribute) +- [Getting Started](#-getting-started) +- [Reporting Bugs](#-reporting-bugs) +- [Suggesting Features](#-suggesting-features) +- [Joining Discussions](#-joining-discussions) +- [Testing](#-testing) +- [Contributing Code](#-contributing-code) + - [Contributor License Agreement (CLA)](#contributor-license-agreement-cla) + - [Development Setup](#development-setup) + - [Branching Strategy](#branching-strategy) + - [Standard Feature Workflow](#standard-feature-workflow) + - [Pull Request Guidelines](#pull-request-guidelines) +- [Coding Standards](#-coding-standards) + - [General LabVIEW (G Code) Guidelines](#general-labview-g-code-guidelines) + - [Making Changes to G Code](#making-changes-to-g-code) + - [Module Boundaries](#module-boundaries) + - [VI Analyzer Tests](#vi-analyzer-tests) + - [Mass Compilation](#mass-compilation) +- [CI/CD Pipeline](#-cicd-pipeline) +- [Review Process](#-review-process) +- [Repository Structure](#-repository-structure) +- [Governance](#-governance) +- [Communication Channels](#-communication-channels) + +--- + +## 🀝 Ways to Contribute + +You don't need to write code to make a meaningful contribution. Here are all the ways you can participate: + +| Contribution | Description | +|---|---| +| **Report a bug** | Found something broken? Open a bug report issue | +| **Suggest a feature** | Have an idea? Submit a feature request or start a discussion | +| **Join discussions** | Share your expertise in GitHub Discussions or on Discord | +| **Test changes** | Install pre-release packages and validate fixes in your environment | +| **Improve documentation** | Fix typos, clarify instructions, add examples, or improve the Wiki | +| **Write code** | Fix bugs, implement features, improve performance, or submit tweaks | + +--- + +## πŸš€ Getting Started + +1. **Explore the repo** β€” Browse the [README](https://github.com/ni/actor-framework#readme) to understand the project +2. **Check open issues** β€” Look at [Issues](https://github.com/ni/actor-framework/issues) for things to work on, especially those labeled [`Workflow: Open to Contribution`](https://github.com/ni/actor-framework/issues?q=is%3Aissue+state%3Aopen+label%3A%22Workflow%3A+Open+to+contribution%22) +3. **Join the conversation** β€” Introduce yourself on [Discord](https://discord.gg/q4d3ggrFVA) or [GitHub Discussions](https://github.com/ni/actor-framework/discussions) + +### Prerequisites + +- **LabVIEW** 2020 SP1 or later (32-bit or 64-bit) +- **VIPM** (VI Package Manager) for installing and building `.vip` packages +- A **GitHub account** + +--- + +## πŸ› Reporting Bugs + +If you find a bug, please [open a bug report](https://github.com/ni/actor-framework/issues/new?template=bug_report.yml): + +- Use a clear, descriptive title +- Describe the steps to reproduce the issue +- Include the LabVIEW version, OS, and Actor Framework version you're using +- Attach screenshots or code snippets if applicable +- Describe what you expected to happen vs. what actually happened + +--- + +## πŸ’‘ Suggesting Features + +Have an idea for an improvement? + +1. **Check existing issues and discussions** first β€” your idea may already be proposed +2. [Open a feature request](https://github.com/ni/actor-framework/issues/new?template=feature_request.yml) or start a [GitHub Discussion](https://github.com/ni/actor-framework/discussions) +3. Describe the problem your feature would solve, your proposed solution, and any alternatives you've considered + +The Steering Committee reviews feature proposals and labels approved ones as `Workflow: Open to Contribution`. + +--- + +## πŸ’¬ Joining Discussions + +GitHub Discussions is the place for design proposals, Q&A, and community conversation: + +- Share use cases and real-world experience +- Provide feedback on proposed changes +- Ask questions about the framework +- Help other community members + +Visit the [Discussions tab](https://github.com/ni/actor-framework/discussions) to get started. + +--- + +## πŸ§ͺ Testing + +Testing is one of the most valuable contributions you can make: + +- **Test pre-release packages** β€” Install `.vip` builds from [Releases](https://github.com/ni/actor-framework/releases) and validate in your projects +- **Test open PRs** β€” Build and install packages from contributor forks to verify fixes +- **Submit test reports** β€” Use the [manual test report template](https://github.com/ni/actor-framework/issues/new?template=manual-test-report.yml) to document your findings +- **Report regressions** β€” If something that used to work is now broken, let us know + +See the [Test Actor Framework 2.0](https://github.com/ni/actor-framework/discussions/100) discussion for current testing priorities. + +--- + +## πŸ’» Contributing Code + +### Contributor License Agreement (CLA) + +You must sign NI's Contributor License Agreement **once per GitHub account** before your code can be merged. A bot will prompt you on your first pull request; if not, NI staff will reach out directly. The CLA is required for code contributions intended to ship with LabVIEW β€” it is not needed for issues, discussions, or testing. + +### Development Setup + +1. **Fork** the [actor-framework](https://github.com/ni/actor-framework) repository to your GitHub account +2. **Clone** your fork locally +3. Install LabVIEW 2020 SP1+ and VIPM +4. If you need a self-hosted runner for CI, follow the steps in [docs/self-hosted-runner.md](https://github.com/ni/actor-framework/blob/develop/docs/self-hosted-runner.md) *(guide in progress)* + +### Branching Strategy + +The repository uses a three-tier branching model aligned with the LabVIEW release cycle: + +``` + Your Fork Upstream (ni/actor-framework) + ──────── ──────────────────────────── + + your-branch ──► PR ──► develop (accepts contributions year-round) + β”‚ + β”‚ March & September + β”‚ (~ 3 months before LabVIEW release) + β–Ό + main (release-ready, final artifacts built here) + β”‚ + β–Ό + LabVIEW Release +``` + +| Branch | Purpose | Who Merges | +|---|---|---| +| **`main`** | Release branch β€” final VIPM artifacts and distribution packages are built from here. Only updated twice a year. | Repo Owners / NI | +| **`develop`** | Integration branch β€” accepts community contributions year-round. This is where your PRs should target. | Repo Owners | +| **Your fork branch** | Your working branch β€” create feature/bugfix branches on your fork and submit PRs to `develop`. | You | + +#### Release Integration Schedule + +Changes from `develop` are promoted to `main` **twice a year**, approximately three months before each LabVIEW release: + +| Integration Window | LabVIEW Release | What Happens | +|---|---|---| +| **March** | Q3 release (June/July) | Feature freeze on `develop`; approved changes merged to `main`; final artifacts built and validated | +| **September** | Q1 release (next year) | Feature freeze on `develop`; approved changes merged to `main`; final artifacts built and validated | + +> **What this means for contributors:** You can submit PRs to `develop` at any time. Your changes will be reviewed, merged into `develop`, and then included in the next integration window when `develop` is promoted to `main`. + +### Standard Feature Workflow + +1. **Find or create an issue** + - Check for issues labeled [`Workflow: Open to Contribution`](https://github.com/ni/actor-framework/issues?q=is%3Aissue+state%3Aopen+label%3A%22Workflow%3A+Open+to+contribution%22) + - Or discuss your idea on [Discord](https://discord.gg/q4d3ggrFVA) / [GitHub Discussions](https://github.com/ni/actor-framework/discussions) first + +2. **Get assigned** + - Comment on the issue to let repo owners know you'd like to work on it + - A repo owner will assign you and NI creates a feature branch in the upstream repo + +3. **Develop** + - Implement your changes on the `develop` branch of your fork + - Follow the [coding standards](#coding-standards) below + +4. **Build** + - Build a VI Package using the [PowerShell build tool](https://github.com/ni/actor-framework/tree/develop/Tooling) + - CI will also build a `.vip` and post it as a pre-release on your fork's Releases page + - Note: the package from your fork will show your fork owner's name instead of "NI" + +5. **Test** + - Install the pre-release package in LabVIEW and verify your changes + - Run existing unit tests to check for regressions + - Document your test results + +6. **Submit a Pull Request** + - Open a PR targeting the **feature branch** in the upstream repo (not `main` or `develop` directly) + - Fill out the PR template completely (see [PR Guidelines](#pull-request-guidelines)) + - Sign the CLA if prompted + +7. **Review & iterate** + - Repo owners and the Steering Committee review, test, and may request changes + - Address feedback and push updates to your branch + +8. **Merge & release** + - After approval, your PR is merged into `develop` + - During the next integration window (March or September), approved changes in `develop` are promoted to `main` + - Final artifacts are built from `main` and ship in the corresponding LabVIEW release + +### Pull Request Guidelines + +Every PR must include: + +- **Linked GitHub Issue** β€” reference the issue number +- **Summary of changes** β€” what was added, modified, or fixed +- **Reason for change** β€” the problem or need being addressed +- **Testing evidence** β€” manual and/or automated test results +- **Visual aids** β€” screenshots or diagrams if applicable + +Use the appropriate PR template: + +| Template | Use When | +|---|---| +| `bug_fix.md` | Fixing a bug | +| `feature_request.md` | Adding a new feature | +| `documentation.md` | Documentation-only changes | +| `infrastructure_change.md` | CI, build, or tooling changes | +| `empty_pull_request.md` | Anything that doesn't fit the above | + +**PR Checklist** (from the template): +- [ ] Changes are based on the appropriate NI-repo feature branch +- [ ] PR targets the correct feature branch +- [ ] Built a VI Package using the PowerShell build tool +- [ ] Installed and tested the VI Package locally +- [ ] NI has your CLA on file + +--- + +## πŸ“ Coding Standards + +### General LabVIEW (G Code) Guidelines + +- Follow **NI LabVIEW style guidelines** and Actor Framework design patterns +- Keep block diagrams **clean and readable** β€” use proper wire routing, avoid overlapping wires, and maintain left-to-right data flow +- Use **descriptive VI and class names** β€” names should clearly communicate purpose (e.g., `Send Message.vi`, `Handle Reply.vi`) +- Add **inline documentation** β€” use free labels and VI descriptions to explain non-obvious logic +- Keep VIs **small and focused** β€” each VI should do one thing well +- Use **type definitions** for clusters and enums that may change β€” this ensures updates propagate automatically +- Avoid **global variables and shared state** β€” prefer message-based decoupling between actors +- Ensure **deterministic actor lifecycle behavior** β€” actors must start up and shut down predictably +- Enforce **explicit message interfaces** β€” avoid circular actor dependencies +- Use **LabVIEW 2020 SP1** as the minimum save version to ensure backward compatibility + +### Making Changes to G Code + +Since LabVIEW code is graphical (G code), the workflow differs from text-based languages: + +1. **Open the project** β€” Load the relevant `.lvproj` file in LabVIEW: + - `Core/Actor Framework Core.lvproj` β€” for core framework changes + - `Tooling/CI CD.lvproj` β€” for build and test tooling changes + +2. **Locate the VI** β€” Navigate the project tree to find the VI you need to modify. The core framework lives under: + - `Core/ActorFramework/` β€” main Actor Framework library + - `Core/AFDebug/` β€” debug and trace utilities + - `Core/Testing/` β€” test support VIs + - `Core/Menus/` β€” LabVIEW menu integrations + - `Core/Install Support/` β€” install-time utilities + +3. **Edit the block diagram** β€” Make your changes following the style guidelines above + +4. **Save for the correct LabVIEW version** β€” Always save VIs in a format compatible with LabVIEW 2020 SP1+ + +5. **Test locally** β€” Build and install the package using the PowerShell build tool in `Tooling/deployment/` before submitting a PR + +> **Important:** LabVIEW files are binary, so standard text-based diffs don't work. Use clear PR descriptions and screenshots/visual aids to help reviewers understand your changes. + +### Module Boundaries + +Keep a clear separation between modules: + +| Module | Location | Purpose | +|---|---|---| +| **Core** | `Core/ActorFramework/` | Core Actor Framework library β€” actors, messages, enqueuer | +| **Debug** | `Core/AFDebug/` | DETT tracing and debug utilities | +| **Testing** | `Core/Testing/` | Test support VIs (Launch Actor, Init Actor Queues, etc.) | +| **Menus** | `Core/Menus/` | LabVIEW palette and menu integration | +| **Tooling** | `Tooling/` | Build scripts, unit test runners, deployment utilities | +| **Providers** | `Providers/` | Extension providers | +| **Documentation** | `Documentation/` & `docs/` | Guides and documentation | + +> ⚠️ Do not introduce cross-module dependencies without approval from the Steering Committee. + +### VI Analyzer Tests + +The CI pipeline runs **VI Analyzer (VIA)** tests on every PR to enforce code quality standards. The configuration is defined in `.github/via_config/Actor_Framework.viancfg`. + +**How VI Analyzer runs in CI:** + +- VI Analyzer runs in a **Docker container** with LabVIEW (Linux) via the `ni/open-source/via-lv-docker@actions` GitHub Action +- It analyzes **only the files changed in your PR** by comparing against the base branch (`develop`) +- On manual dispatch, it can analyze the full codebase using the `.viancfg` configuration +- Results are uploaded as an **artifact** (`vi-analyzer-report.htm`) you can download and review + +**What VI Analyzer checks (typical rules):** + +- Block diagram cleanliness and style compliance +- Proper error handling (unwired error clusters, missing error cases) +- Unused code (dead code, unreachable frames) +- Naming conventions for controls, indicators, and VIs +- Performance issues (unnecessary coercions, inefficient patterns) +- Documentation completeness (VI descriptions, connector pane usage) + +**Running VI Analyzer locally before submitting a PR:** + +1. Open LabVIEW and go to **Tools β†’ VI Analyzer β†’ Analyze VIs...** +2. Load the configuration file: `.github/via_config/Actor_Framework.viancfg` +3. Select the VIs you've modified +4. Run the analysis and fix any reported issues +5. Re-run until your VIs pass cleanly + +> **Tip:** Running VI Analyzer locally before pushing saves CI time and avoids review delays. Fix all warnings and errors before submitting your PR. + +### Mass Compilation + +The CI pipeline also performs a **mass compilation** step to verify that all Actor Framework VIs compile successfully in a clean LabVIEW environment: + +- A distribution artifact is built and overlaid into a LabVIEW Docker container +- `vi.lib/ActorFramework` is mass compiled using LabVIEW CLI +- Any compilation errors will fail the pipeline + +This ensures your changes don't break the build for other users. + +--- + +## βš™οΈ CI/CD Pipeline + +The repository uses GitHub Actions for continuous integration: + +| Workflow | Purpose | +|---|---| +| `ci.yml` | Runs on PRs β€” validates builds and tests | +| `build-vi-package.yml` | Builds the VIPM package | +| `run-unit-tests.yml` | Executes unit tests | +| `run-via-tests.yml` | Runs VI Analyzer tests | +| `release.yml` | Creates tagged releases | +| `create-distribution-artifact.yml` | Generates distribution artifacts for LabVIEW integration | + +> Your PR must pass **all CI checks** before it can be reviewed and merged. + +--- + +## πŸ“‹ Review Process + +Pull Requests are reviewed by repo owners and the Steering Committee: + +- **Initial review** within 5–10 business days +- **Follow-up reviews** within 3–5 business days after revisions +- Once approved, PRs are merged promptly and queued for the next release cycle + +If you're unable to complete all checklist items, submit your PR as a **draft** β€” repo owners will help you get it ready. + +--- + +## πŸ“‚ Repository Structure + +``` +actor-framework/ +β”œβ”€β”€ .github/ # CI workflows, issue & PR templates +β”‚ β”œβ”€β”€ ISSUE_TEMPLATE/ # Bug report, feature request, manual test report +β”‚ β”œβ”€β”€ PULL_REQUEST_TEMPLATE/ # PR templates by type +β”‚ β”œβ”€β”€ via_config/ # VI Analyzer configuration +β”‚ └── workflows/ # GitHub Actions CI/CD pipelines +β”œβ”€β”€ Builds/ # VIPM package build configuration +β”œβ”€β”€ Core/ # Core Actor Framework libraries +β”œβ”€β”€ Documentation/ # Framework documentation +β”œβ”€β”€ Providers/ # Extension providers +β”œβ”€β”€ Tooling/ # Developer tooling and build utilities (PowerShell) +β”œβ”€β”€ docs/ # Additional guides (e.g., self-hosted runner setup) +β”œβ”€β”€ pipeline/ # Release pipeline scripts +β”œβ”€β”€ reports/ # Community metrics and reports +β”œβ”€β”€ LICENSE.txt # MIT License +└── README.md # Project overview and getting started +``` + +--- + +## πŸ›οΈ Governance + +Actor Framework is maintained under an open-governance model: + +- **Technical Steering Committee (SteerCo)** β€” NI staff and community architects who oversee the roadmap, review architectural changes, and approve feature directions +- **Repo Owners** β€” Handle code review, CI validation, merge approvals, and release tagging +- **NI** retains final decision authority for major direction and architecture changes + +--- + +## πŸ“‘ Communication Channels + +| Channel | Purpose | +|---|---| +| [GitHub Issues](https://github.com/ni/actor-framework/issues) | Bug reports and feature requests | +| [GitHub Discussions](https://github.com/ni/actor-framework/discussions) | Design proposals, Q&A, community conversation | +| [Discord](https://discord.gg/q4d3ggrFVA) | Real-time community collaboration | + +--- + +## License + +Actor Framework is licensed under the [MIT License](https://github.com/ni/actor-framework/blob/develop/LICENSE.txt). By contributing, you agree to license your work under these terms so NI and the LabVIEW community can incorporate it into future LabVIEW distributions. From 15b4cebd6f5e23d0626b84ef5315abfc5ffd9c11 Mon Sep 17 00:00:00 2001 From: Shivang Sharma Date: Tue, 12 May 2026 15:41:20 +0530 Subject: [PATCH 2/4] docs: simplify README Contributing section, point to CONTRIBUTING.md --- README.md | 44 ++++++-------------------------------------- 1 file changed, 6 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 1be45c0..a6b951f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Discord](https://img.shields.io/discord/1319915996789739540?label=chat&logo=discord&style=flat)](https://discord.gg/q4d3ggrFVA) +ο»Ώ[![Discord](https://img.shields.io/discord/1319915996789739540?label=chat&logo=discord&style=flat)](https://discord.gg/q4d3ggrFVA) ![CodingΒ hours](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/ni/actor-framework/metrics/badge.json) # 🧩 Actor Framework @@ -45,43 +45,11 @@ Actor Framework (AF) is NI’s reference implementation of the Actor Model in La ## Contributing -We welcome both code and non-code contributions – everything from bug fixes and performance tweaks to documentation, testing, and discussion. - -### Contributor License Agreement (CLA) - -External contributors must sign NI’s CLA once per GitHub account. A bot will prompt you on your first pull request; if not, NI staff will reach out directly. - -### Standard Feature Workflow - -1. **Check or Create an Issue**\ - β€’ Discuss ideas on [Discord](https://discord.gg/q4d3ggrFVA) or [open a GitHub Discussion](https://github.com/ni/actor-framework/discussions).\ - β€’ Once approved, the Steering Committee applies the label **[`Workflow: Open to contribution`](issues?q=is%3Aopen+label%3A%22Workflow%3A+Open+to+contribution%22)**. -2. **Assignment**\ - β€’ Comment on any issue labeled [Workflow: Open to Contribution](https://github.com/ni/actor-framework/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22Workflow%3A%20Open%20to%20contribution%22).\ - β€’ A maintainer assigns you and NI creates the feature branch. -3. **First-Time Setup**\ - β€’ Follow the steps in [`docs/self-hosted-runner.md`](docs/self-hosted-runner.md) *(in progress)* to register a self-hosted runner if you need one.\ - β€’ Fork the repository to your GitHub account. -4. **Feature Development**\ - β€’ Clone (or sync) your fork.\ - β€’ Implement changes and push to **`develop`** in your fork. -5. **Build**\ - β€’ CI builds a `.vip` and posts it as a **pre-release** on *your fork’s* Releases page. -6. **Test**\ - β€’ Install the pre-release package and verify the issue is resolved.\ - β€’ *Note: the company name of your package will show the fork’s owner instead of β€œNI”.* -7. **Pull Request**\ - β€’ Open a PR targeting the feature branch in the upstream repo.\ - β€’ Sign the CLA if the contribution is intended to ship with LabVIEW.\ - β€’ The Steering Committee and maintainers review, test, and iterate. -8. **Merge & Release**\ - β€’ After approval, the PR is eventually merged into **`main`**.\ - β€’ The functionality appears in the next LabVIEW release, and the GitHub release stream provides interim bug-fix and feature drops. - -### Other Ways to Help - -- **[Test Actor Framework 2.0](https://github.com/ni/actor-framework/discussions/100)** -- **Improve Docs** – README, [`CONTRIBUTING.md`](CONTRIBUTING.md), Wiki. +We welcome both code and non-code contributions β€” bug fixes, performance tweaks, documentation, testing, and discussion. You can contribute by reporting bugs, suggesting features, joining discussions, testing pre-release packages, or submitting code changes. + +All code contributors must sign NI's **Contributor License Agreement (CLA)** once per GitHub account β€” a bot will prompt you on your first pull request. + +πŸ‘‰ **See [`CONTRIBUTING.md`](CONTRIBUTING.md) for the full contribution guide**, including branching strategy, coding standards, VI Analyzer requirements, and the step-by-step PR workflow. --- From a7dee5760edd81c09a4d4bd1a9f3a78b610ec113 Mon Sep 17 00:00:00 2001 From: Shivang Sharma Date: Tue, 12 May 2026 15:44:33 +0530 Subject: [PATCH 3/4] docs: add Ways to Help section to README Contributing --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a6b951f..de0ee69 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,16 @@ Actor Framework (AF) is NI’s reference implementation of the Actor Model in La ## Contributing -We welcome both code and non-code contributions β€” bug fixes, performance tweaks, documentation, testing, and discussion. You can contribute by reporting bugs, suggesting features, joining discussions, testing pre-release packages, or submitting code changes. +We welcome both code and non-code contributions β€” bug fixes, performance tweaks, documentation, testing, and discussion. + +### Ways to Help + +- **Report a bug** β€” Found something broken? [Open an issue](https://github.com/ni/actor-framework/issues/new?template=bug_report.yml) +- **Suggest a feature** β€” Have an idea? [Submit a feature request](https://github.com/ni/actor-framework/issues/new?template=feature_request.yml) or start a [Discussion](https://github.com/ni/actor-framework/discussions) +- **Join discussions** β€” Share your expertise in [GitHub Discussions](https://github.com/ni/actor-framework/discussions) or on [Discord](https://discord.gg/q4d3ggrFVA) +- **Test changes** β€” Install pre-release packages and [report your findings](https://github.com/ni/actor-framework/discussions/100) +- **Improve documentation** β€” Fix typos, clarify instructions, or update the Wiki +- **Write code** β€” Fix bugs, implement features, or improve performance All code contributors must sign NI's **Contributor License Agreement (CLA)** once per GitHub account β€” a bot will prompt you on your first pull request. From 7c60387027a00e36bed7b55826faebe46954b907 Mon Sep 17 00:00:00 2001 From: Shivang Sharma Date: Tue, 12 May 2026 15:55:51 +0530 Subject: [PATCH 4/4] docs: remove draft PR promise from review process --- CONTRIBUTING.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e56e967..89b35df 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -348,8 +348,6 @@ Pull Requests are reviewed by repo owners and the Steering Committee: - **Follow-up reviews** within 3–5 business days after revisions - Once approved, PRs are merged promptly and queued for the next release cycle -If you're unable to complete all checklist items, submit your PR as a **draft** β€” repo owners will help you get it ready. - --- ## πŸ“‚ Repository Structure