LogoLogo
HomeLibraryDonateHelpAbout
  • Repository Manager
  • Credits
  • Application Manifests
    • Introduction to manifests
    • Example manifest
    • Essential Information
      • Category
      • Peripherals
      • Flags
      • Platforms
    • Source
      • Format
      • URL
        • Location
      • GitHub Release
        • Repository
        • File
        • Additional Files
      • SourceForge Release
      • itch.io
      • MediaFire
        • Location
    • Treatments
      • Contents
      • Meta
      • Web
      • Archive
  • Pattern Matching
  • Supported Archive Formats
  • Information for app developers
    • FAQ
  • API
    • Introduction
    • Retrieving Information
    • Retrieving Contents
    • Guidelines
  • Server
    • Introduction
    • Repository Index
    • SourceDownloader
Powered by GitBook
LogoLogo

Documentation

  • API v2
  • WSC
  • CLI

Social

  • Twitter
  • Discord
  • GitHub
On this page

Was this helpful?

  1. Application Manifests

Treatments

How should the server prepare this app for distribution?

PreviousLocationNextContents

Last updated 1 year ago

Was this helpful?

This is very important information, that must be read before creating a manifest.

Treatments are handled in the order they are written in the manifest.

Treatments should only be used when required. e.g. for fixing a broken meta.xml, moving files to the right location, removing gamecube only files, removing duplicate files, obtaining application files, and removing unnecessary bloat.

Treatments are Repository Manager's solution for the differences in how different developers choose to distribute their apps. They are intended to ensure a consistent experience between all Open Shop Channel apps.

What exactly is that consistent experience? First, is the structure. All apps on the Open Shop Channel are distributed exactly like so:

root/
├─ apps/
│  ├─ slug/ (Slug of the application, as specified in the manifest)
│  │  ├─ meta.xml (Required)
│  │  ├─ icon.png (Required)
│  │  ├─ boot.dol/boot.elf (Required)
│  │  ├─ <...more application files...>

When writing a manifest for an app obtained from a certain place, we must ensure that it ends up in this structure, with all of the required files. Treatments are the way we do that.

Here is an example treatment, which is used for preparing NewoZero for distribution:

{
    ...
    "treatments": [
        ...
        {
            "treatment": "contents.move", "arguments": ["newozero/", "apps/newozero/"]
        },
        ...
    ],
    ...
}

Currently, in this early stage in development, these are the available treatment groups:

Contents
Meta
Web
Archive
Treating Apps...