# 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! | ✅ | ✅ |