Skip to content

← Build an app

Describe your app for the App Centre

The LabConstrictor App Centre lists apps built with LabConstrictor, with a page for each one. The App Centre reads a small file from your repository, labconstrictor-app.yaml, so you describe your app once and keep it up to date yourself. Version numbers and download links always come from your latest GitHub release.

How you get the file

The repository initialiser asks for a one-sentence summary, the kind of app and the software it also works in, and adds the file to the initialisation pull request. Read it in the pull request and edit it if you like. If you skip that section, or your repository was created before it existed, copy the example below to the root of your repository.

What it contains

# yaml-language-server: $schema=https://cellmigrationlab.github.io/LabConstrictor-Site/schema/labconstrictor-app.schema.json
schema: 1
name: My App
summary: One sentence that says what it does, for the app card.
description: |-
  A few paragraphs of plain text.

  Separate paragraphs with a blank line.
kind: analysis            # analysis, segmentation, simulation, game, training or utility
hosts: [notebook, napari] # where its tools can also run: notebook, napari, fiji, qupath
status: Available         # optional: Experimental, Available or Deprecated
inputs:                   # optional short lists (1 to 6 items of 5 to 200 characters each)
  - TIFF images, one channel per file
outputs:
  - Label masks and a CSV table
limitations:
  - Not tested on 3D data
distribution:             # at least one way to get the app: installer, colab or pip
  installer: true         # the installers LabConstrictor builds for each release
  platforms: [windows-x86_64, macos-arm64, linux-x86_64]  # optional, needs installer: build and offer only these installers
  colab:
    - label: Notebook
      url: https://colab.research.google.com/github/you/my-app/blob/main/notebooks/App/App.ipynb
  pip: my-app             # the name on PyPI
icon: app/logo/logo.png   # optional: a square PNG in your repository

platforms also decides which installers your releases build (template 0.1.24 or later): leave a system out when your app cannot run there, for example macos-x86_64 (Intel Macs) for an app that needs TensorFlow 2.17 or later. The release then builds no installer for it and the download page has no button for it. Without platforms, every installer is built: Windows, Linux, and Macs with Apple silicon or Intel (windows-x86_64, linux-x86_64, macos-arm64, macos-x86_64). windows-arm64 and linux-arm64 are accepted, but no installer is built for them.

The first line makes editors with YAML support (for example VS Code) check the file as you type. inputs, outputs and limitations are short summaries for the app page (a list of one to six sentences, not README copy). More optional fields exist (authors, DOI, license, screenshots, a quick start); the full list is in the schema. Everything is plain text: no HTML or Markdown.

The automatic check

The Check App Centre manifest workflow runs when you change the file and when you publish a release:

  • If the file is missing, it shows a warning and passes.
  • If the file is invalid, it fails and says what to fix. This never stops your installers from being built.
  • It rejects fields it does not know (this catches typos, so the schema is not loosened); the template keeps its copy of the schema in step with the App Centre, see Keep your app up to date.
  • It also checks that the icon and screenshots you name exist in the repository.

Get listed

Having the file does not list your app by itself. To list it, submit your repository to the App Centre.


Edit this page on GitHub