Thank you for your interest in contributing to CUBRID Labs! We welcome contributions from the community in the form of bug reports, feature requests, code contributions, documentation, and more.
-
Bugs: Open an issue in the relevant repository with:
- Clear description of the problem
- Steps to reproduce
- Expected vs. actual behavior
- Environment details (Python/Node.js/Go version, OS, dependency versions)
-
Feature Requests: Open a discussion or issue describing:
- The problem you're solving
- Proposed solution
- Alternative approaches considered
- Fork the repository and create a feature branch from
main - Develop your changes with clear, focused commits
- Test your changes (see repository-specific docs)
- Document your changes with comments and docstrings
- Submit a pull request with:
- Clear title and description
- Reference to related issues
- Explanation of changes and rationale
Use GitHub Discussions for:
- Questions about usage
- Design proposals
- Architecture discussions
- Community ideas
Each repository provides detailed setup instructions:
- Python projects: See
DEVELOPMENT.md(usually includesmake install,make test,make lint) - TypeScript projects: See
README.md(usually includesnpm install,npm test,npm run lint) - Go projects: See
README.md(usually includesgo test,go fmt)
Typically, all projects include:
- Automated linting and formatting
- Pre-commit hooks (where applicable)
- CI/CD validation on pull requests
We follow language-specific conventions:
- Formatter: Ruff (target: 100-character line length)
- Style: PEP 8 with type hints (PEP 561)
- Tool:
make format(orruff format+ruff check --fix)
- Formatter: ESLint + Prettier
- Style: ES6+, strict typing, null coalescing
- Tool:
npm run lint/npm run format
- Formatter: gofmt
- Style: idiomatic Go, interfaces over concrete types
- Tool:
gofmt -wormake fmt
Follow this format for all commits:
<type>: <description>
<optional body>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
Co-authored-by: Your Name <your.email@example.com>
Types:
feat: New featurefix: Bug fixdocs: Documentation changeschore: Build, CI, dependency updates, or non-functional changesci: CI/CD workflow changesstyle: Code style (formatting, linting)test: Test additions or improvementsrefactor: Code refactoring without feature changes
Examples:
feat: add CUBRID type mapping for CLOB and BLOB
Implements full support for CUBRID collection types (SET, MULTISET, SEQUENCE).
Adds comprehensive test coverage and documentation.
fix: handle NULL values in ON DUPLICATE KEY UPDATE
Resolves issue where NULL values in conflict resolution caused type errors.
- Ensure all tests pass locally
- Ensure code coverage meets repository threshold (typically 95%+)
- Ensure linting and formatting pass
- Request review from maintainers
- Address feedback and push updates
- Rebase and merge once approved
All contributions are licensed under the MIT License. By contributing, you agree to license your work under these terms.
Please review our Code of Conduct before contributing. We are committed to providing a respectful and inclusive community for all participants.
Questions?
- 💬 Post in GitHub Discussions
- 📧 Contact maintainers via the issue tracker
Thank you for contributing to CUBRID Labs!