Thank you for your interest in contributing! We follow a structured workflow to ensure high quality and consistency.
-
Clone the repository:
git clone https://github.com/w1ne/stringtune.git cd stringtune -
Install dependencies:
npm install
This will also install Git hooks via Husky.
We follow Gitflow:
master: Production-ready code. Protected branch.develop: Integration branch for features.feature/*: Create a new branch for each feature (e.g.,feature/new-post).
-
Create a feature branch from
develop:git checkout develop git checkout -b feature/my-cool-feature
-
Make your changes.
-
Run linting locally:
npm run lint
We use Conventional Commits. Your commit message must follow this format:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Types:
feat: A new featurefix: A bug fixdocs: Documentation only changesstyle: Changes that do not affect the meaning of the code (white-space, formatting, etc)refactor: A code change that neither fixes a bug nor adds a featureperf: A code change that improves performancetest: Adding missing tests or correcting existing testschore: Changes to the build process or auxiliary tools and libraries such as documentation generation
Example:
git commit -m "feat: setup git hooks"The commit-msg hook will verify your message format.
We use automated checks to ensure quality:
- Lint-staged: Checks files you are about to commit.
- Markdownlint: Checks for markdown style issues.
- Lighthouse CI: Checks for Performance, Accessibility, Best Practices, and SEO (in CI).
- pa11y-ci: Dedicated accessibility checks (in CI).
- Merge feature branches into
develop. - Release candidates are created from
developand merged intomaster.