🎉 Thank you for your interest in contributing to SOEM-Nodejs!
- Fork the repository
- Clone your fork locally
- Install dependencies:
npm install - Build the project:
npm run build - Run tests:
npm test
- Node.js >= 18
- CMake >= 3.18
- C++ Compiler (GCC/Clang/MSVC)
- Platform-specific libraries:
- Windows: WinPcap or Npcap
- Linux: libpcap-dev
# Clone your fork
git clone https://github.com/MXASoundNDEv/SOEM-Nodejs.git
cd SOEM-Nodejs
# Install dependencies
npm install
# Build the project
npm run build
# Run tests
npm test
# Check code quality
npm run lint:check
npm run production-check- Use TypeScript for new code
- Follow ESLint configuration
- Use Prettier for formatting
- Add JSDoc comments for public APIs
- Write unit tests for new features
- Ensure 100% test coverage for critical paths
- Test on multiple platforms when possible
- Mock external dependencies appropriately
Use Conventional Commits:
type(scope): description
feat(interface): add automatic interface detection
fix(build): resolve Windows .node file generation
docs(readme): update installation instructions
test(unit): add tests for SDO operations
- Create a feature branch from
main - Make your changes with clear commits
- Update tests and documentation
- Ensure CI passes
- Request review
# Basic tests
npm test
# All tests (including integration)
npm run test:all
# With coverage
npm run test:ci
# Watch mode
npm run test:watch- Unit Tests: Test individual functions/classes
- Integration Tests: Test complete workflows
- Platform Tests: Test cross-platform compatibility
- Automated checks must pass (CI/CD)
- Code review by maintainers
- Testing on multiple platforms
- Documentation review
- Merge when approved
Use the Bug Report Template with:
- Clear description
- Reproduction steps
- Environment details
- Error messages
- Code samples
Use the Feature Request Template with:
- Problem description
- Proposed solution
- Use cases
- Implementation ideas
- API docs in TypeScript definitions
- Examples in
/examplesdirectory - README for usage instructions
- CHANGELOG for release notes
Report security vulnerabilities privately to the maintainers.
By contributing, you agree that your contributions will be licensed under the same GPL-2.0-or-later license.
- Open a Discussion
- Check existing Issues
- Read the Documentation
Thank you for contributing! 🎉