# v7.0.0 ## Why v7? This release represents a significant shift in how the project is maintained. Previously, adding a new app meant manually editing `applications.json`, copying boilerplate Obtainium settings, and hoping you didn't introduce a typo that would silently break things. With v7, the tooling does the heavy lifting: - **`make add-app`** turns a 5-minute manual process into a 30-second interactive prompt. Paste a URL, pick a category, done. No more copy-pasting JSON blocks or remembering which meta fields control which behavior. - **`make validate`** catches mistakes before they ship. Typos in meta keys, missing required fields, duplicate app IDs—all caught at build time instead of discovered by users. - **Refactored codebase** means less duplicated logic across scripts, making future changes easier and less error-prone. The jump from v6 to v7 reflects that this isn't just a patch—it's a foundation for faster, more reliable releases going forward. ## Summary - Refactored Python scripts to reduce duplication and improve maintainability - Added `make add-app` interactive CLI for quickly adding new apps - Added `make validate` to catch schema errors and typos before release - Rewrote developer documentation with step-by-step guides - Added PICO-8 Android to the app list ## New Features ### `make add-app` - Interactive CLI Quickly add new apps without manually editing JSON: - Auto-detects source type (GitHub, GitLab, Codeberg) from URL - Auto-fills author and app name from GitHub URLs - Arrow-key navigation for category and variant selection - Variant options: Both, Standard only, Dual-screen only, README only ### `make validate` - JSON Validation Catches common mistakes before they hit production: - Schema validation (required fields, correct types) - Typo detection in meta keys (e.g., `exludeFromExport` → `excludeFromExport`) - Duplicate app ID detection per variant ## Code Changes ### New Files - `scripts/utils.py` - Shared functions (`should_include_app`, `get_display_name`, `get_application_url`) - `scripts/constants.py` - Centralized paths and Obtainium settings - `scripts/validate-json.py` - Validation script - `scripts/add-app.py` - Interactive CLI tool ### Refactored - All Python scripts now have type hints - All scripts have `if __name__ == "__main__"` guards (importable as modules) - Removed duplicated logic across scripts ### Documentation - Complete rewrite of `pages/development.md` - Added project structure diagram - Added meta field and categories reference tables - Added pre-commit checklist ## New App | Application Name | Add to Obtainium | Included in export json? | Included in DS json? | | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------ | -------------------- | | Pico8 Android | Add to Obtainium! | ✅ | ✅ |