Welcome! I'm glad you're interested in contributing to the Starwind project. Before you start, please read the following guidelines.
This repository is a monorepo.
- We use pnpm and
workspacesfor development. - We use Turborepo as our build system.
- Tsup to bundle packages.
- Changeset to manage versioning.
- Node.js 22.12.0 or newer is required.
- pnpm 11.8.0 is the repository package manager.
You can fork this repo by clicking the fork button in the top right corner of this page.
git clone https://github.com/starwind-ui/starwind-ui.gitcd starwind-uipnpm installgit checkout -b my-new-branchYou can use the pnpm --filter=[WORKSPACE] command to start the development process for a workspace. There are also a number of helper scripts in the root folder of the repository that you can use to run the development process for the different workspaces.
- Run the
cliworkspace
pnpm cli:dev- Run the
demoworkspace
pnpm demo:devTo run the CLI locally, you can follow the workflow below:
- Build and globally link the local Runtime, Astro adapter, React adapter, and CLI packages.
pnpm l- Verify the linked CLI from another terminal.
starwind --help- Unlink the local packages when you finish testing.
pnpm ulBefore you create a Pull Request, please check whether your commits comply with the commit conventions used in this repository.
When you create a commit we kindly ask you to follow the convention
category(scope or module): message in your commit message while using one of
the following categories:
-
feat / feature: all changes that introduce completely new code or new features -
fix: changes that fix a bug (ideally you will additionally reference an issue if present) -
refactor: any code related change that is not a fix nor a feature -
build: all changes regarding the build of the software, changes to dependencies or the addition of new dependencies -
test: all changes regarding tests (adding new tests or changing existing ones) -
ci: all changes regarding the configuration of continuous integration (i.e. github actions, ci system) -
chore: all changes to the repository that do not fit into any of the above categoriese.g.
feat(components): add new prop to the avatar component
If you are interested in the detailed specification you can visit https://www.conventionalcommits.org/ or check out the Angular Commit Message Guidelines.
-
Fork of the starwind-ui repository and clone your fork
-
Create a new branch out of the
mainbranch. We follow the convention[type/scope]. For examplefix/dropdown-hookordocs/menu-typo.typecan be eitherdocs,fix,feat,build, or any other conventional commit type.scopeis just a short id that describes the scope of work. -
Make and commit your changes following the commit convention. Before opening a pull request, run
pnpm check,pnpm test:all, andpnpm build. Runpnpm verifyfor the complete local CI-equivalent gate. -
Please note that you might have to run
git fetch origin main:master(where origin will be your fork on GitHub). -
After making your changes, add a changeset by running
pnpm changeset. This will open an interactive prompt where you can add a changeset.