Files
Obtainium-Emulation-Pack/RELEASE.md

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-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., exludeFromExportexcludeFromExport)
  • 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!