Contributing
Thanks for your interest in contributing to @jobuntux/psgc! We welcome bug reports, feature requests, and pull requests. This guide will help you get started.
Getting Started
Fork the repository on GitHub.
Clone your fork locally:
bashgit clone https://github.com/<your-username>/psgc.git cd psgcInstall dependencies:
bashnpm install # or yarn install # or pnpm installBuild the project:
bashnpm run buildRun tests to confirm everything works:
bashnpm test
Development Workflow
Branch off from "dev" for new features or fixes.
Use clear commit messages. We follow Conventional Commits, for example:
plaintextfeat: add new barangay lookup fix: correct region ordering for NCR chore: update dependenciesBefore submitting a pull request: Run
npm run lintandnpm testEnsure the docs build withnpm run docs:build
Reporting Issues
To report an issue, please use the GitHub Issues tab and provide as much detail as possible, including clear steps to reproduce, the PSGC dataset version you’re using, and the expected versus actual behavior. If the issue relates to dataset quirks (for example, submunicipalities such as Binondo), include references or links to the official PSA source for context.
- Found a bug? Open a Bug Report
- Have an idea? Request a Feature
- Docs unclear? Suggest a Docs Update
Submitting Changes
- Push your branch to your fork.
- Open a Pull Request against the "dev" branch.
- Describe your changes clearly (what, why, how).
- The maintainers will review, request changes if needed, and merge.
Code Style
- TypeScript is used throughout.
- Use ESLint + Prettier (already configured).
- Avoid mutating internal state. Prefer returning new arrays or objects.
Docs
Documentation is powered by VitePress. To run locally:
npm run docs:devWhen contributing:
- Add guides/examples in
/docs/guide/or/docs/examples/ - Dev-related notes (like this page) go in
/docs/dev/
Release Process
- dev branch is for feature development
- main branch is for stable release
- Publishing to npm is automated via GitHub Actions when a version tag is pushed