Install NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
bashnvm install 24
nvm use 24
npm iInstall Node 24
npm i-
Fork and clone the repository.
-
Create a new feature branch.
git checkout -b feat/your-feature
-
Make your changes and commit them.
git commit -m 'feat: add some feature' -
Push to the branch.
git push origin feat/your-feature
-
Open a Pull Request.
Follow Conventional Commits:
<type>[optional scope]: <description>
Types:
feat— end-user visible new functionality or behavior change, including performance improvementsfix— end-user visible bug fixesrefactor— restructuring code without changing behaviorchore— dependency updates, config changes, i18n strings, other maintenanceci— GitHub Actions workflows and Fastlanetest— adding or updating testsdocs— documentation only
Scopes (optional): use chrome or firefox when the change is platform-specific.
Examples:
feat: add student query servicefix(chrome): resolve storage permission issuedocs: update README.md
Use kebab-case: feat/add-student-query-service, fix/storage-permission-issue
The project follows a year.month.patch versioning scheme (e.g., 26.3.4).
- Source of Truth: The version is managed in
package.json. Files likewxt.config.tsand GitHub Actions automatically read the version frompackage.json. - Automated Bumping: Use the Update Version GitHub Action to update the version:
- Go to the Actions tab in GitHub.
- Select the Update Version workflow.
- Click Run workflow.
- You can optionally specify a version number, or leave it empty to automatically increment the patch number (or reset to 1 if the month has changed).
- The action will create a Pull Request with the version update. Merge it to apply the changes to
main.
- Unmerged PRs: Do not update the version number in regular feature or fix PRs. Version bumping should be done separately (via the GitHub Action) only when preparing for a release.
If you must update the version manually:
npm version <new-version> --no-git-tag-versionThis will update both package.json and package-lock.json.