7.6 KiB
7.6 KiB
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-appturns 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 validatecatches 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-appinteractive CLI for quickly adding new apps - Added
make validateto 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 settingsscripts/validate-json.py- Validation scriptscripts/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! | ✅ | ✅ |