Contributing
Thank you for your interest in contributing to Flexium! This guide will help you get started.
Getting Started
Prerequisites
- Node.js 18.0 or higher
- npm 9.0 or higher
- Git
Setting Up the Development Environment
- Fork the repository on GitHub
- Clone your fork locally:
bash
git clone https://github.com/your-username/flexium.js.git
cd flexium.js- Install dependencies:
bash
npm install- Build the packages:
bash
npm run build- Run tests to make sure everything works:
bash
npm testDevelopment Workflow
Running in Development Mode
bash
npm run devThis starts the development server with hot module replacement.
Running Tests
bash
# Run all tests
npm test
# Run unit tests only
npm run test:unit
# Run end-to-end tests
npm run test:e2eBuilding
bash
npm run buildContribution Guidelines
Reporting Bugs
When reporting bugs, please include:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected vs actual behavior
- Your environment (OS, Node.js version, browser)
- Any relevant code snippets or error messages
Feature Requests
We welcome feature requests! Please:
- Check if the feature has already been requested
- Provide a clear use case
- Explain why this feature would benefit others
Pull Requests
- Create a new branch from
main:
bash
git checkout -b feature/your-feature-name- Make your changes following our code style
- Add tests for new functionality
- Ensure all tests pass
- Commit with a descriptive message:
bash
git commit -m "feat: add new feature description"- Push and create a pull request
Commit Message Format
We follow Conventional Commits:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringtest:- Adding or updating testschore:- Maintenance tasks
Code Style
- Use TypeScript for all new code
- Follow existing code patterns
- Use meaningful variable and function names
- Add JSDoc comments for public APIs
- Keep functions small and focused
License
By contributing, you agree that your contributions will be licensed under the MIT License.
Questions?
Feel free to open an issue or reach out to the maintainers if you have any questions!