Publishing Apps

Learn how to package and publish your robot applications to the Garage registry

Quick Start

Publishing your robot application is a straightforward process. You can either use the web interface or the CLI tool.

Web Interface

Upload and publish directly from your browser

Publish Now

CLI Tool

Use the command line for automated publishing

garage publish

Requirements

Package Structure

Your app must include a garage.yaml configuration file

Documentation

Include a README.md with clear usage instructions

Archive Format

Package as a .tar.gz file containing all necessary files

garage.yaml Configuration

Every app must include a garage.yaml file with the following structure:

name: my-robot-app
version: 1.0.0
description: "A sample robot navigation application"
author: "Your Name"
tags:
  - navigation
  - autonomous
  - ros2

# ROS2 configuration
ros:
  distro: humble
  packages:
    - my_robot_nav
    - my_robot_msgs

# Docker configuration (optional)
docker:
  base_image: "ros:humble"
  ports:
    - "8080:8080"
  
# Dependencies
dependencies:
  system:
    - libopenapps-dev
  python:
    - numpy
    - scipy

# Entry points
launch:
  main: "ros2 launch my_robot_nav navigation.launch.py"
  gui: "ros2 run my_robot_nav gui_node"

Publishing Process

1. Prepare Your App

• Create your garage.yaml configuration file

• Write comprehensive README documentation

• Test your application thoroughly

• Package everything into a .tar.gz archive

2. Choose Publishing Method

Web Interface
  1. 1. Visit the publish page
  2. 2. Fill in app details (name, version, description)
  3. 3. Add relevant tags
  4. 4. Upload your .tar.gz package
  5. 5. Click "Publish App"
CLI Tool
# Login to your account
garage login

# Publish from current directory
garage publish

# Or specify a package
garage publish my-app.tar.gz

3. Verification & Review

• Your app will be automatically validated

• Basic security and structure checks are performed

• If successful, your app appears in the registry immediately

• Users can discover, download, and review your app

Best Practices

Documentation

• Write clear, comprehensive README files

• Include usage examples and screenshots

• Document all dependencies and requirements

• Provide troubleshooting guidance

Versioning

• Use semantic versioning (major.minor.patch)

• Increment major version for breaking changes

• Increment minor version for new features

• Increment patch version for bug fixes

Quality

• Test your app on different systems

• Handle edge cases and errors gracefully

• Follow ROS2 best practices

• Keep dependencies minimal and well-documented

Community

• Choose descriptive, relevant tags

• Respond to user feedback and issues

• Keep your apps updated and maintained

• Engage with the community

Ready to Publish?

Start sharing your robot applications with the community today.