Nova DSO Tracker v5.0.0 #77
mrantonSG
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
This is a major release featuring a complete architecture refactor and a comprehensive design system overhaul. Because of the scale of these changes, your feedback is especially valuable — if you encounter any issues, please report them so they can be addressed quickly.
Architecture Refactor
The codebase has been reorganized from a monolithic structure into a modular package:
nova/models.py— All SQLAlchemy models (DbUser, AstroObject, Location, Project, JournalSession, Component, Rig, etc.) are now in a dedicated module.nova/config.py— Constants, paths, and shared cache dictionaries are centralized here.nova/helpers.py— Shared utilities including database access, YAML I/O, and settings loading.nova/workers/— Background daemon threads (weather, heatmap, updates) are now isolated in their own package.nova/blueprints/— Blueprint stubs are in place for future route organization.The entry point
nova.pyis now just 14 lines — it imports the app from thenova/package. This refactor improves maintainability and makes future contributions easier.Design System & Dark Mode Overhaul
A new CSS design token system (
static/css/tokens.css) provides consistent styling across the entire application:Dark mode has been completely overhauled with consistent theming across:
Frontend Asset Modularization
JavaScript and CSS have been extracted from inline templates into dedicated files:
static/js/— Modular JS files (dashboard.js, graph_view.js, config_form.js, modal-manager.js, etc.)static/css/— CSS files organized by feature (base.css, tokens.css, dashboard.css, etc.)This improves browser caching, makes debugging easier, and keeps templates cleaner.
Memory Management: Bounded Caches
A new
BoundedCacheclass prevents unbounded memory growth during long uptimes:Bug Fixes
For Developers
If you're running Nova from source:
nova.pyis now a thin entry pointBoundedCacheinstances (drop-in dict replacement)nova/__init__.pyfor now (migration in progress)Upgrade Notes
instance/app.dbwill work as-is.envfiles remain compatibleAs mentioned, this was a substantial refactor. If you notice anything that doesn't work as expected, please open an issue on GitHub or reach out directly. Your feedback helps ensure a stable experience for everyone.
Thanks for using Nova DSO Tracker!
This discussion was created from the release Nova DSO Tracker v5.0.0.
All reactions