Contributing
First off, thank you for considering contributing to YAMLResume! It's people like you that make open source great. We welcome any type of contribution, not only code. You can help with:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Improving documentation
Here are some shortcuts for some specific jobs:
CLI
Building and Testing CLI
Docker
Docker Customization
Test
Testing and Quality Assurance
New Language
Add support for a new language in YAMLResume.
Getting Started
Prerequisites
- Node.js (version >= 20, check
.nvmrc
orpackage.json
engines field) - pnpm (version >= 10, check
package.json
packageManager field) - Git
Setup
-
Fork the repository: Click the "Fork" button on the YAMLResume GitHub page. This creates your own copy of the project.
-
Clone your fork:
git clone https://github.com/<your-username>/yamlresume.git cd yamlresume
-
Install dependencies:
pnpm install
This command installs all necessary dependencies for the entire workspace.
Development Workflow
Building Packages
-
Build all packages once:
pnpm build
-
Build all packages and watch for changes:
pnpm build:watch
-
Build for production (including type definitions, minification):
pnpm build:prod
Running Tests
-
Run tests for all packages:
pnpm test
-
Run tests in watch mode:
pnpm test:watch
-
Run tests with coverage report:
pnpm test:cov
Check Test for more details and use cases.
Code Formatting and Linting
We use Biome for code formatting and linting. Ensure your code adheres to the project's style guides before committing.
-
Check and automatically fix issues:
pnpm check
-
Run checks without applying fixes (useful for CI):
pnpm check:ci
We also use addlicense to ensure source files have the correct license header. You need to install it in order to run the following commands.
-
Add missing license headers:
pnpm license:add
-
Check for missing license headers:
pnpm license:check
Submitting Contributions
Reporting Issues
If you find a bug or have a feature request, please open an issue on GitHub. Provide as much detail as possible, including:
- A clear and descriptive title.
- Steps to reproduce the bug (if applicable).
- Expected behavior and actual behavior.
- Screenshots or code snippets (if helpful).
- Your environment details (OS, Node version, pnpm version).
Pull Requests (PRs)
We love pull requests! Here's a quick guide:
-
Create a branch: Start from the
main
branch and create a descriptive branch name (e.g.,fix/login-bug
,feat/new-template-option
).git checkout main git pull origin main git checkout -b your-branch-name
-
Make your changes: Write your code or documentation improvements.
-
Test your changes: Ensure all tests pass:
pnpm test
-
Check code quality: Ensure formatting and linting checks pass:
pnpm check
-
Commit your changes: We use Conventional Commits for commit messages, enforced by
commitlint
. This helps automate changelogs and versioning. A typical commit message looks likefeat: add new command
orfix: resolve issue with parsing
. You can usepnpm commitlint
to help format your message if needed, or use tools like git cz if you have it installed.git add . git commit -m "feat: your descriptive commit message"
-
Push your branch:
git push origin your-branch-name
-
Open a Pull Request: Go to the YAMLResume repository on GitHub and click the "New pull request" button. Compare your branch with the
main
branch. -
Describe your PR: Provide a clear description of the changes you've made. Link any relevant issues (e.g., "Closes #123").
-
Review: A maintainer will review your PR. Address any feedback or requested changes.
-
Merge: Once approved, your PR will be merged. Thank you for your contribution!
License
By contributing to YAMLResume, you agree that your contributions will be licensed under its MIT License.
Last updated on