Thank you for your interest in contributing to Opsen! This document provides guidelines and information for contributors.
- Getting Started
- Development Setup
- Code Style
- Commit Guidelines
- Pull Request Process
- Reporting Issues
Before you begin contributing, please ensure you have:
- Node.js >= 22.0.0
- pnpm >= 10.12.1 (required package manager)
- Git
-
Fork and clone the repository
git clone https://github.com/your-username/opsen.git cd opsen -
Install dependencies
pnpm install
-
Set up Git hooks
pnpm prepare
-
Build all packages
pnpm build
This project uses several tools to maintain code quality:
- Run linting:
pnpm lint - Auto-fix issues:
pnpm lint:fix
- Check formatting:
pnpm format:check - Format code:
pnpm format
- Type check all packages:
pnpm ts:check
The project uses Husky and lint-staged to automatically:
- Run ESLint on staged JavaScript/TypeScript/JSON/Markdown files
- Format all staged files with Prettier
- Type check all packages
This project follows Conventional Commits specification.
feat: A new featurefix: A bug fixdocs: Documentation only changesstyle: Changes that do not affect the meaning of the coderefactor: A code change that neither fixes a bug nor adds a featureperf: A code change that improves performancetest: Adding missing tests or correcting existing testschore: Changes to the build process or auxiliary tools
feat: add volume mount support to Docker deployer
fix: resolve processFullName ternary logic in K8s deployer
docs: update README with installation instructions
refactor: extract health check mapping to shared utility
To ensure proper commit format, use:
pnpm commit-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Follow the code style guidelines
- Add tests if applicable
- Update documentation as needed
-
Verify your changes
pnpm lint pnpm format:check pnpm ts:check pnpm test pnpm build -
Commit your changes
pnpm commit
-
Push to your fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Provide a clear description of the changes
- Reference any related issues
- Ensure all CI checks pass
This project uses Changesets for version management. If your PR changes any published package, add a changeset:
pnpm changesetFollow the prompts to select affected packages and describe the change. The changeset file will be committed with your PR.
When reporting issues, please include:
- Description: Clear and concise description of the problem
- Steps to reproduce: Detailed steps to reproduce the issue
- Expected behavior: What you expected to happen
- Actual behavior: What actually happened
- Environment: OS, Node.js version, pnpm version
- Additional context: Any other relevant information
By contributing to this project, you agree that your contributions will be licensed under the MIT License.