docs: rewrite readme, rfcs, and contributing (#555)

* docs: rewrite README, RFCs, and CONTRIBUTING
* docs: fix Linux storage labels in RFC-006 (Opera/Vivaldi swapped)
This commit is contained in:
Roger
2026-04-06 00:16:47 +08:00
committed by GitHub
parent 2ee7d0ac79
commit d8032ac824
15 changed files with 1412 additions and 2133 deletions
+51 -8
View File
@@ -1,30 +1,73 @@
# Contributing to HackBrowserData
We appreciate your interest in contributing to the HackBrowserData! This document provides some basic guidelines for contributors.
We appreciate your interest in contributing to HackBrowserData! This document provides guidelines for contributors.
## Getting Started
- Always base your work from the `dev` branch, which is the development branch with the latest code.
- Always base your work from the `main` branch.
- Before creating a Pull Request (PR), make sure there is a corresponding issue for your contribution. If there isn't one already, please create one.
- Include the problem description in the issue.
## Go Version Constraint
This project **must build with Go 1.20** to maintain Windows 7 support. This is enforced by CI.
- Do **not** use features from Go 1.21+ (e.g., `log/slog`, `slices`, `maps`, `cmp` packages)
- Do **not** bump the `go` directive in `go.mod` beyond `go 1.20`
- `modernc.org/sqlite` is pinned at v1.31.1 (v1.32+ requires Go 1.21)
## Development Commands
```bash
# Build
go build ./cmd/hack-browser-data/
# Test
go test ./...
# Lint (requires golangci-lint v2)
golangci-lint run
# Format
gofumpt -l -w .
goimports -w -local github.com/moond4rk/hackbrowserdata .
# Spelling check
typos
```
## Pull Requests
When creating a PR, please follow these guidelines:
- Link your PR to the corresponding issue.
- Provide context in the PR description to help reviewers understand the changes. The more information you provide, the faster the review process will be.
- Include an example of running the tool with the changed code, if applicable. Provide 'before' and 'after' examples if possible.
- Provide context in the PR description to help reviewers understand the changes.
- Include 'before' and 'after' examples if applicable.
- Include steps for functional testing or replication.
- If you're adding a new feature, make sure to include unit tests.
### Commit Message Convention
Use [Conventional Commits](https://www.conventionalcommits.org/) format:
```
feat: add support for new browser
fix: resolve cookie decryption on Windows
chore: update dependencies
docs: improve RFC documentation
refactor: simplify profile discovery logic
test: add extraction tests for Firefox
```
## Code Style
Please adhere to the existing coding style for consistency.
- **Platform code**: use build tags (`_darwin.go`, `_windows.go`, `_linux.go`)
- **Error handling**: use `fmt.Errorf("context: %w", err)` for wrapping; do not ignore errors unless it is deliberate best-effort cleanup (e.g. `Close`/`Remove`)
- **Naming**: follow Go conventions
- **Tests**: use `t.TempDir()` for filesystem tests
- **Architecture**: see `rfcs/` for design documents
## Questions
If you have any questions or need further guidance, please feel free to ask in the issue or PR, or [reach out to the maintainers](mailto:i@moond4rk.com). We will reply to you as soon as possible.
If you have any questions or need further guidance, please feel free to ask in the issue or PR, or [reach out to the maintainers](mailto:me@moond4rk.com). We will reply to you as soon as possible.
Thank you for your contribution!