Contributing
Thank you for considering contributing to the Leighton Cloud Blocks project! We welcome contributions from the community to help improve this project. Here are some guidelines to help you get started:
Code of Conduct
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
Getting Started
- Install Node.js (v22.15.1 recommended)
- Clone the repository
- Install dependencies:
pnpm install - Run tests:
pnpm test
Local Development
To test changes to this package locally in another project:
-
Build the package:
pnpm run build -
Create a symbolic link:
pnpm link -
In your test project:
pnpm link @leighton-digital/cloud-blocks -
To remove the link:
pnpm unlink @leighton-digital/cloud-blocks
Note: Ensure your test project has the same version of Node.js and compatible dependencies.
How to Contribute
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Code Style
- Follow TypeScript best practices
- Use Biome for linting and formatting
- Use UK English spelling in documentation and comments
- Write clear commit messages
- Add tests for new features
- Update documentation
Spelling and Language Standards
This project uses CSpell to enforce consistent spelling and language standards:
- UK English: All documentation, comments, and text content should use UK English spellings (e.g., "colour", "behaviour", "organisation")
- Pre-commit checks: CSpell runs automatically before commits to catch spelling errors
- Custom dictionary: Technical terms, AWS services, and project-specific vocabulary are included in the custom dictionary
Running spelling checks manually:
# Check all files
pnpm spell:check
# Check specific files
pnpm spell:check-files path/to/file.ts
Adding new technical terms:
If CSpell flags legitimate technical terms or project-specific vocabulary, add them to the words array in cspell.json.
Testing Guidelines
We use Jest for testing. Please ensure:
- All existing tests pass
- New features have appropriate tests
Pull Request Process
- Ensure all tests pass:
pnpm test - Update the documentation if needed
- Add a clear description of your changes
- Reference any related issues
- Wait for review
- Be prepared to make requested changes
Questions?
If you have any questions about contributing, feel free to open an issue or contact the maintainers.