Contributing¶
Thank you for your interest in contributing to OSGEO-Inject!
Getting Started¶
Prerequisites¶
- Nix (for development environment)
- Git
Setup¶
- Clone the repository:
- Enter the development environment:
- Install npm dependencies:
- Install pre-commit hooks:
Development Workflow¶
Running the Test Server¶
Visit http://localhost:8080/test/demo.html
Building Assets¶
Linting¶
Documentation¶
Code Style¶
JavaScript¶
- Use
"use strict";in all files - Prefer
constoverlet, never usevar - Use template literals for string interpolation
- Add JSDoc comments for public functions
CSS¶
- Follow BEM naming convention
- Use CSS custom properties for theming
- Keep selectors shallow (max 3 levels)
Commits¶
Follow conventional commits:
Pull Request Process¶
- Fork the repository
- Create a feature branch:
git checkout -b feat/my-feature - Make your changes
- Run tests and linting
- Commit with clear messages
- Push and open a PR
PR Checklist¶
- Code follows style guidelines
- All tests pass
- Documentation updated
- REUSE compliance checked
- No secrets in code
Testing¶
Manual Testing¶
- Start test server
- Open demo page
- Test all positions and themes
- Test on mobile viewport
- Test with screen reader
Automated Testing¶
Release Process¶
- Update version in
package.json - Update CHANGELOG.md
- Create git tag:
git tag v0.1.0 - Push:
git push --tags - GitHub Action creates release
Getting Help¶
- Open an issue for bugs
- Start a discussion for questions
- Join OSGeo community channels
Made with 💗 by Kartoza