WIP
This commit is contained in:
36
CONTRIBUTING.md
Normal file
36
CONTRIBUTING.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Contributing
|
||||
|
||||
Thanks for working on ClipBored. The project is optimized for a small binary, low idle power, local-only behavior, and native macOS ergonomics. Changes should protect those constraints.
|
||||
|
||||
## Local Setup
|
||||
|
||||
```bash
|
||||
swift test
|
||||
./scripts/build-macos-app.sh
|
||||
open build/ClipBored.app
|
||||
```
|
||||
|
||||
Run the full local check before opening a pull request:
|
||||
|
||||
```bash
|
||||
./scripts/check.sh
|
||||
```
|
||||
|
||||
## Engineering Guidelines
|
||||
|
||||
- Prefer AppKit, Foundation, Carbon, SQLite, and system frameworks over third-party dependencies.
|
||||
- Keep the release app small. If a dependency or framework is needed, document the feature value and size impact.
|
||||
- Preserve local-only behavior. Do not add networking, telemetry, analytics, crash uploaders, or remote sync without an explicit design discussion.
|
||||
- Avoid storing new classes of sensitive data. If capture behavior expands, add tests and update `docs/SECURITY.md`.
|
||||
- Keep idle work bounded. Polling, timers, file scans, and cache purges should have clear caps or backoff behavior.
|
||||
- Add tests for persistence, pruning, sensitive filtering, shortcut parsing, pasteboard behavior, and search/sort changes.
|
||||
- Keep UI native and compact. This is a utility, not a marketing surface.
|
||||
|
||||
## Pull Request Checklist
|
||||
|
||||
- `swift test -q` passes.
|
||||
- `./scripts/build-macos-app.sh` passes.
|
||||
- The release executable remains under the size gate printed by the build script.
|
||||
- Security or privacy behavior is unchanged or documented.
|
||||
- User-facing behavior is covered by tests or a manual verification note.
|
||||
- Documentation is updated when commands, settings, storage, or permissions change.
|
||||
Reference in New Issue
Block a user