Files
linkpulse/CHANGELOG.md

4.3 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.3.0]

Added

  • A release checklist to the CHANGELOG.md file, as a reminder for procedure.
  • An action workflow for invoking pytest, with coverage report generation in CI/CD
  • backend: Login & Logout routes
  • backend: Rate Limiting via custom RateLimiter dependency
  • backend: User model, Session model with migration script
  • backend: Session model constraints for token length, expiry & last_used timestamps
  • backend: SessionDependency for easy session validation, enforcement & handling per route
  • backend: provided LOG_JSON_FORMAT and LOG_LEVEL environment variable defaults in run.sh development script
  • backend: Simple /health & /api/migrations endpoint tests
  • backend: utc_now helper function
  • backend: pwdlib[argon2], pytest (pytest-cov, pytest-xdist), limits, httpx, email-validator pacakges
  • frontend: Re-initialized with vite template, setup @tanstack/router & shadcn components.
  • frontend: Added Login & Register page, added basic authentication check with redirect
  • frontend: Added Zustand state management, basic login & session API functions with true-myth types.
  • frontend: Added zustand, true-myth, @tanstack/router, clsx, tailwind-merge packages

Changed

  • Set black formatter line length to 120 characters
  • backend: migration squashing threshold to 15
  • backend: moved top level app routes to router.misc

Removed

  • frontend: Most old packages from initial vite template
  • backend: IPAddress Model (definition + DB state via migration) & all related code

[0.2.2] - 2024-11-01

Added

  • Added the orjson serializer for faster JSON serialization
    • Used in structlog's JSONRenderer for production logging
    • Used in fastapi's Response for faster response serialization
  • Improved documentation in multiple files
    • __main__.py
    • logging.py
    • models.py
    • utilities.py
    • migrate.py
    • responses.py
  • A get_db utility function to retrieve a reference to the database (with type hinting)
  • Minor DATABASE_URL check in models.py to prevent cryptic connection issues

Changed

  • Migration script now uses structlog instead of print
    • Migration script output is tuned to structlog as well.
  • Migration names must be at least 9 characters long
  • Unspecified IPv6 addresses are returned without hiding in utilities.hide_ip
  • Applied get_db utility function in all applicable areas.

Fixed

  • Raised level for apscheduler.scheduler logger to WARNING to prevent excessive logging
  • IPv4 interface bind in production, preventing Railway's Private Networking from functioning
  • Reloader mode enabled in production

[0.2.1] - 2024-11-01

Changed

  • Mildly reformatted README.md
  • A development mode check for the app.state.ip_pool's initialization (caused application failure in production only)

Fixed

  • Improper formatting of blockquote Alerts in README.md

[0.2.0] - 2024-11-01

Added

  • This CHANGELOG.md file
  • Structured logging with structlog
    • Readable ConsoleRenderer for local development
    • JSONRenderer for production logging
  • Request-Id Middleware with asgi-correlation-id
  • Expanded README.md with more comprehensive instructions for installation & usage
    • Repository-wide improved documentation details, comments
  • CodeSpell exceptions in VSCode workspace settings

Changed

  • Switched from hypercorn to uvicorn for ASGI runtime
  • Switched to direct module 'serve' command in backend/run.sh & backend/railway.json
  • Relocated .tool-versions to project root
  • Massively overhauled run.sh scripts, mostly for backend service
  • Improved environment variable access in logging setup
  • Root logger now adheres to the same format as the rest of the application
  • Hide IP list when error occurs on client
  • run.sh passes through all arguments, e.g. bpython REPL via ./run.sh repl
  • Use UTC timezone for timestamps, localize human readable strings, fixing 4 hour offset issue
  • is_development available globally from utilities module

Removed

  • Deprecated startup and shutdown events
  • Development-only randomized IP address pool for testing