Contributing to Calendar Canvas
First off, thank you for considering contributing to Calendar Canvas! It's people like you that make Calendar Canvas such a great tool.
Code of Conduct
By participating in this project, you are expected to uphold our Code of Conduct. Please report unacceptable behavior to ap0661236@gmail.com.
Protected Branches
This repository has three protected branches:
main
: Production codedocs
: Documentation website sourcegh-pages
: Built documentation (auto-deployed)
⚠️ Important: Never push directly to these branches. All contributions must come through Pull Requests.
How Can I Contribute?
Reporting Bugs
Before creating bug reports, please check existing issues as you might find that the issue has already been reported. When creating a bug report, please include as much detail as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples to demonstrate the steps
- Describe the behavior you observed after following the steps
- Explain which behavior you expected to see instead and why
- Include screenshots if possible
Suggesting Enhancements
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion:
- Use a clear and descriptive title
- Provide a detailed description of the proposed feature
- Explain why this enhancement would be useful
- List some examples of how it would be used
Pull Requests
Getting Started
-
Fork the repository
-
Create your feature branch from
main
for code changes ordocs
for documentation:# For code changes
git checkout main
git checkout -b feature/your-feature-name
# For documentation changes
git checkout docs
git checkout -b docs/your-doc-change -
Make your changes
-
Commit your changes using a descriptive commit message that follows our commit message conventions
-
Push to your fork
-
Create a Pull Request
Branch Naming Convention
- Features:
feature/your-feature-name
- Bug fixes:
fix/issue-description
- Documentation:
docs/what-you-changed
- Performance improvements:
perf/what-you-optimized
Development Process
-
Install dependencies:
npm install
-
Create your feature branch:
git checkout -b feature/amazing-feature
-
Make your changes
-
Run tests:
npm run test
-
Build the library:
npm run build
Commit Message Guidelines
We follow conventional commits specification:
FEAT:
New featureFIX:
Bug fixDOCS:
Documentation only changesSTYLE:
Changes that don't affect the meaning of the codeREFACTOR:
Code change that neither fixes a bug nor adds a featurePERF:
Code change that improves performanceTEST:
Adding missing testsCHORE:
Changes to the build process or auxiliary tools
Example:
FEAT: add week view navigation
Pull Request Process
- Update the README.md with details of changes if needed
- Update the documentation with details of any new features
- The PR must pass all CI/CD checks
- At least one maintainer must review and approve your PR
- Squash commits before merging
Style Guide
- Use TypeScript
- Follow existing code style
- Write meaningful variable and function names
- Add JSDoc comments for public APIs
- Include unit tests for new features
Documentation
If you're adding a new feature:
- Add JSDoc comments
- Update the TypeScript types
- Add an example in the documentation
- Update relevant guides
Questions?
Don't hesitate to ask questions about:
- How to implement a feature
- Best practices
- Design decisions
- Anything else related to the project
Create a discussion on GitHub or reach out to ap0661236@gmail.com.
License
By contributing, you agree that your contributions will be licensed under the MIT License.