diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..9021e69 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,23 @@ +--- +name: Bug Report +about: Report a bug +labels: bug +--- + +**Description** +A clear description of the bug. + +**Steps to Reproduce** +1. Run `...` +2. ... + +**Expected Behavior** +What you expected to happen. + +**Actual Behavior** +What actually happened. Include any error output. + +**Environment** +- OS: +- Go version: +- rsync version: diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..ec3c93b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,14 @@ +--- +name: Feature Request +about: Suggest a new feature or improvement +labels: enhancement +--- + +**Description** +A clear description of the feature or improvement. + +**Use Case** +Why is this needed? What problem does it solve? + +**Proposed Solution** +How you think it could work (optional). diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..1cd77f2 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,5 @@ +**Description** +What does this PR do? + +**Related Issue** +Fixes # diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 6b7f570..46fe8bc 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -14,7 +14,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup NodeJS uses: actions/setup-node@v6 @@ -22,7 +22,7 @@ jobs: node-version: 24.x - name: Set up Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version: '1.25' diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..5c4ba03 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,37 @@ +# Contributing + +Thanks for your interest in contributing to backup-rsync! + +## Getting Started + +1. Fork the repo and clone it +2. Install Go 1.25+ and `rsync` +3. Run `make build` to verify the setup + +## Development Workflow + +```sh +make format # Format code +make lint # Run linter +make test # Run unit tests +make test-integration # Run integration tests (requires rsync) +make check-coverage # Verify coverage threshold (98%) +``` + +## Submitting Changes + +1. Create a branch from `main` +2. Make your changes — keep commits focused +3. Ensure `make lint` and `make test` pass +4. Open a pull request against `main` + +## Guidelines + +- Follow idiomatic Go conventions +- Add tests for new functionality +- Use dependency injection over global state +- Keep the CI green — all checks must pass before merge + +## License + +By contributing, you agree that your contributions will be licensed under the [GPL-3.0 License](LICENSE).