Skip to main content

Prerequisites

  • Python 3.10 or newer
  • uv
  • Git

Clone and install

1

Clone the repository

git clone https://github.com/whoisjayd/notewise
cd notewise
2

Install all dependencies

uv sync --dev
Creates a .venv in the project directory and installs all runtime and development dependencies.
3

Install pre-commit hooks

uv run pre-commit install
Hooks run on every git commit and enforce ruff format and a single-line commit message check.
4

Verify the setup

uv run notewise version
uv run pytest tests/unit -q

Make targets

TargetAction
make testRun full test suite in parallel
make test-unitUnit tests with coverage
make test-integrationIntegration tests
make fixAuto-fix formatting and lint
make qualityformat-check + lint + type-check + security + deps
make ciFull CI pipeline (quality + tests)
make cleanRemove all build/cache/test artifacts
make buildBuild wheel and sdist

Quality tools

uv run ruff format --check src/notewise tests   # check
uv run ruff format src/notewise tests            # auto-fix

Running specific tests

# Specific file
uv run pytest tests/unit/cli/test_display.py -v

# Specific test class
uv run pytest tests/unit/pipeline/test_core.py::TestCorePipeline -v

# With HTML coverage report
uv run python -m pytest tests/unit \
  --cov=src/notewise \
  --cov-report=html
open htmlcov/index.html

Environment variables for development

No real API key is needed to run unit tests — all external calls are mocked. For integration or manual testing:
export GEMINI_API_KEY=your_key_here
uv run notewise process "URL"
Or create ~/.notewise/config.env via uv run notewise setup.

Adding a dependency

uv add some-package          # runtime dependency
uv add --dev some-package    # dev-only dependency
Always commit the updated uv.lock.

Building the package

make build
# Produces:
# dist/notewise-X.Y.Z-py3-none-any.whl
# dist/notewise-X.Y.Z.tar.gz