Thanks for your interest in contributing! This document will help you get started.
- Set up the repository
git clone https://github.com/antiwork/flexile.git- Set up your development environment
For detailed instructions on setting up your local development environment, please refer to our README.
- Create your feature branch
git checkout -b feature/your-feature- Start the development environment
bin/dev- Run the test suite
# For Rails tests
cd apps/rails
bundle exec rspec spec
# For JavaScript/TypeScript tests
pnpm test- Don't use "should" in test descriptions
- Write descriptive test names that explain the behavior being tested
- Group related tests together
- Keep tests independent and isolated
- For API endpoints, test response status, format, and content
- Use factories for test data instead of creating objects directly
- For end-to-end tests, use Playwright in the
e2e/directory
- Update documentation if you're changing behavior
- Add or update tests for your changes
- Make sure all tests pass
- Request a review from maintainers
- After reviews begin, avoid force-pushing to your branch
- Force-pushing rewrites history and makes review threads hard to follow
- Don't worry about messy commits - we squash everything when merging to main
- The PR will be merged once you have the sign-off of at least one other developer
- Follow the existing code patterns
- Use clear, descriptive variable names
A great bug report includes:
- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
We use the Conventional Commits specification.
A commit message should be structured as follows:
type(scope): title
descriptionWhere type can be:
feat: new feature or enhancementfix: bug fixesdocs: documentation-only changestest: test-only changesrefactor: code improvements without behaviour changeschore: maintenance/anything else
Example:
feat(cli): Add mobile testing support
- Check existing discussions/issues/PRs before creating new ones
- Start a discussion for questions or ideas
- Open an issue for bugs or problems
By contributing, you agree that your contributions will be licensed under the Flexile Community License.