Thank you for your interest in contributing to astro-integration-pocketbase! This guide will help you get started with contributing to the project.
- Node.js (see
.nvmrcfor the required version) - npm
- Git
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/your-username/astro-integration-pocketbase.git cd astro-integration-pocketbase - Install dependencies:
npm install
Before making any changes, familiarize yourself with our code quality requirements:
- Formatting: Run
npm run formatto format code with oxfmt - Linting: Run
npm run lint:fixto lint code with oxlint (and type-check at the same time) - Type Checking: Run
npm run typecheckto check TypeScript types
These checks are enforced by pre-commit hooks and must pass before any commit.
-
Create a new branch for your feature or fix:
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix -
Make your changes following our code conventions:
- Use strict TypeScript configuration
- Define types in the
types/directory - Use relative imports and descriptive function names
- Keep functions small and focused
- Place utility functions in appropriate
utils/files
-
Ensure your code passes all quality checks:
npm run format npm run lint:fix npm run typecheck
We use Conventional Commits for commit messages. The format is:
<type>(scope): <description>
[optional body]
[optional footer(s)]
Types:
feat: New featurefix: Bug fixdocs: Documentation changesrefactor: Code refactoringtest: Adding or updating testsbuild: Maintenance tasks
Scopes:
toolbar: Core toolbar/browser functionalityrefresh: Core refresh logicmiddleware: Middleware logic- Or custom scopes as appropriate
Examples:
feat(toolbar): add support for file attachments
fix(refresh): handle missing updated field correctly
docs(README): update installation instructions
refactor(middleware): extract entry parsing logic
While contributing, ensure your changes don't break existing functionality.
This project does not use tests (yet), but you can use a local Astro project using astro-loader-pocketbase to test your changes.
- Ensure all code quality checks pass
- Rebase your branch on the latest next / master branch
- Test your changes thoroughly
-
Push your branch to your fork:
git push origin feature/your-feature-name
-
Create a pull request on GitHub using our PR template (target the
nextbranch if available) -
In your PR description:
- Clearly describe what your changes do and why
- Reference any related issues
- Include any breaking changes or migration notes
- Add screenshots or examples if applicable
Your PR should follow this structure:
## Changes
- Clear bullet points describing what changed
## Issues
- Closes #123 (if applicable)
## Dependencies
- Depends on: #456 (if applicable)- All PRs require review before merging (maybe also including a review from Copilot)
- Please address feedback promptly and push additional commits as needed
- Once approved, a maintainer will merge your PR into the
nextbranch and create a pre-release for beta testing - We may squash commits to keep the git history clean
- Search existing issues to avoid duplicates
- Check if the issue exists in the latest version (older versions may have bugs that are fixed already)
- Gather relevant information about your environment
Use our issue templates for:
- Feature Requests: Propose new functionality
- Bug Reports: Report problems or unexpected behavior
Provide as much detail as possible to help us understand and reproduce the issue.
Please be respectful and constructive in all interactions. We want to maintain a welcoming environment for all contributors.
While it's okay to use AI tools like Copilot (we provide instructions for agents in .github/copilot-instructions.md), please ensure that the code you submit adheres to our quality standards and conventions. Especially since this project does not use tests yet, it's important to ensure your changes are well-tested in a local Astro project before submitting a PR.
If you have questions about contributing, feel free to:
- Open an issue for discussion
- Look at existing issues and PRs for examples
- Review the codebase to understand patterns and conventions
Thank you for contributing to astro-integration-pocketbase!