chore: add MIT LICENSE and CONTRIBUTING.md, set SPDX license in pyproject
Bookmark is fully open source (donated to Books in Hand nonprofit, no BSL tiering). Adds an MIT LICENSE file, a CONTRIBUTING.md scoped to an early-stage volunteer project, and a PEP 639 license field in pyproject.toml. Repo description and topics were also updated via the Forgejo API for discoverability.
This commit is contained in:
parent
27c066de1c
commit
df63ffa846
3 changed files with 85 additions and 0 deletions
63
CONTRIBUTING.md
Normal file
63
CONTRIBUTING.md
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
# Contributing to Bookmark
|
||||
|
||||
Bookmark is an early-stage, fully open-source tool built for Books in Hand,
|
||||
a nonprofit that keeps books out of landfills. It's still scaffolding —
|
||||
there's no working end-to-end app yet, so the best contributions right now
|
||||
are small, focused, and coordinated first.
|
||||
|
||||
## Before You Start
|
||||
|
||||
This project is young enough that priorities can shift quickly. Please open
|
||||
an issue (or comment on an existing one) describing what you'd like to work
|
||||
on before submitting a large pull request — it avoids duplicated effort and
|
||||
makes sure the change fits the current phase of the build.
|
||||
|
||||
See `CLAUDE.md` (also readable as `AGENTS.md`) in the repo root for full
|
||||
architecture and design context, including what's in scope for the current
|
||||
phase and what's intentionally deferred.
|
||||
|
||||
## Ground Rules
|
||||
|
||||
- **Deterministic where it matters.** Size-bucketing (small/medium/large)
|
||||
feeds the nonprofit's tax and 501(c)(3) reporting. It must stay
|
||||
geometry/visibility-based — never OCR, ML, or LLM-derived. Don't change
|
||||
this without understanding why.
|
||||
- **No cloud dependencies in the current phase.** Keep the intake pipeline
|
||||
fully local.
|
||||
- **Say what the mechanism actually is.** Use precise terms — "LLM",
|
||||
"vision-LLM (VLM)", "OCR", "barcode decode" — rather than the generic
|
||||
word "AI" in code, comments, docs, or UI copy.
|
||||
- **Human review before publish.** Any future LLM/VLM-assisted output
|
||||
(e.g. cover text extraction) is a draft for a human to approve, never
|
||||
auto-published.
|
||||
|
||||
## Development Workflow
|
||||
|
||||
```bash
|
||||
python -m venv .venv
|
||||
.venv/bin/pip install -e ".[dev]"
|
||||
.venv/bin/pytest -v
|
||||
```
|
||||
|
||||
This project follows test-driven development — new modules should ship
|
||||
with tests under `tests/` that don't require real camera hardware
|
||||
(synthetic frames, mocked `cv2.VideoCapture`, `TestClient` for the API).
|
||||
|
||||
## Commit Style
|
||||
|
||||
Conventional-commit-style subjects: `feat:`, `fix:`, `docs:`, `chore:`,
|
||||
`test:`, `refactor:`. Keep commits small and focused — one logical change
|
||||
per commit.
|
||||
|
||||
## Submitting Changes
|
||||
|
||||
1. Fork the repo and create a branch for your change.
|
||||
2. Make sure `pytest -v` passes.
|
||||
3. Open a pull request describing what changed and why.
|
||||
4. Be patient — this is a volunteer-maintained nonprofit project, so review
|
||||
may take a few days.
|
||||
|
||||
## Questions
|
||||
|
||||
Open an issue — it's the best way to reach the maintainers and keeps
|
||||
context visible for future contributors.
|
||||
21
LICENSE
Normal file
21
LICENSE
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2026 Books in Hand
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
|
@ -3,6 +3,7 @@ name = "bookmark"
|
|||
version = "0.1.0"
|
||||
description = "Book intake and checkout inventory system for Books in Hand"
|
||||
requires-python = ">=3.11"
|
||||
license = "MIT"
|
||||
dependencies = [
|
||||
"fastapi>=0.110",
|
||||
"uvicorn[standard]>=0.29",
|
||||
|
|
|
|||
Loading…
Reference in a new issue