Contributing to Omniscript
September 4, 2025 · View on GitHub
Thank you for considering contributing to Omniscript! We welcome contributions from the community.
Getting Started
- Fork the repository
- Clone your fork:
git clone https://github.com/your-username/Omniscript.git - Install dependencies:
npm install - Build the project:
npm run build - Run tests:
npm test
Development Workflow
Setting Up Your Development Environment
# Clone the repository
git clone https://github.com/RyAnPr1Me/Omniscript.git
cd Omniscript
# Install dependencies
npm install
# Build the project
npm run build
# Link the CLI globally for testing
npm link
# Run tests
npm test
Making Changes
- Create a new branch for your feature:
git checkout -b feature/your-feature-name - Make your changes
- Add tests for new functionality
- Ensure all tests pass:
npm test - Lint your code:
npm run lint - Format your code:
npm run format - Commit your changes with a descriptive message
- Push to your fork and create a pull request
Code Style
We use ESLint and Prettier for code formatting. Please ensure your code follows these standards:
- Run
npm run lintto check for linting issues - Run
npm run formatto automatically format your code - Follow TypeScript best practices
- Add JSDoc comments for public APIs
Testing
- Write tests for new features and bug fixes
- Ensure all existing tests continue to pass
- We aim for high test coverage
- Tests are located in the
tests/directory
Running Tests
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm test -- --coverage
Project Structure
omniscript/
├── src/ # Source code
├── tests/ # Test files
├── docs/ # Documentation
├── examples/ # Example code
├── demos/ # Demo applications
├── benchmarks/ # Performance benchmarks
└── dist/ # Built output (generated)
Documentation
- Update documentation for any API changes
- Add examples for new features
- Documentation is written in Markdown
- API documentation is generated automatically
Pull Request Process
- Ensure your PR has a clear description of what it does
- Include tests for new functionality
- Update documentation as needed
- Ensure CI passes
- Request review from maintainers
Reporting Issues
When reporting issues, please include:
- Omniscript version
- Operating system and version
- Node.js version
- Clear reproduction steps
- Expected vs actual behavior
- Any relevant error messages
Feature Requests
We welcome feature requests! Please:
- Check if the feature already exists or is planned
- Describe the use case
- Provide examples of how it would be used
- Consider implementation approaches
Code of Conduct
Please be respectful and professional in all interactions. We aim to create a welcoming environment for all contributors.
License
By contributing to Omniscript, you agree that your contributions will be licensed under the MIT License.