Back to Documentation

Contributing

Learn how to contribute to OmniSet - add modules, fix bugs, or improve documentation.

Ways to Contribute

There are many ways to help improve OmniSet:

  • Add new modules - Support for more software
  • Report bugs - Found something broken? Let us know
  • Fix bugs - Submit pull requests
  • Improve documentation - Fix typos or add examples
  • Test on your distro - Help ensure compatibility
  • Spread the word - Star the repo, tell others

Project Structure

The OmniSet repository is organized as:

omniset/
├── bin/omniset          # CLI executable
├── lib/                 # Core libraries
├── modules/             # Module definitions
│   └── <category>/<module>/
│       ├── manifest.yaml
│       └── install.sh
├── web/                 # Web selector interface
└── README.md

Development Setup

To work on OmniSet locally:

bash
# Fork the repository on GitHub, then:
git clone https://github.com/YOUR-USERNAME/Install.git
cd Install

# Create a feature branch
git checkout -b feature/your-feature-name

# Test your changes
./bin/omniset doctor

Adding a New Module

To add support for a new application:

  1. Create a directory: modules/<category>/<module-name>/
  2. Create manifest.yaml with installation methods
  3. Create install.sh with the installation script
  4. Test on multiple distributions if possible
  5. Submit a pull request

Module Manifest Format

Each module has a manifest.yaml defining how to install it:

yaml
name: example-app
description: Short description
category: development

methods:
  - type: apt
    priority: 1
    package: example-app
  
  - type: snap
    priority: 2
    package: example-app

post_install:
  - echo "Installation complete"

Guidelines

When contributing code:

  • Prefer apt/deb packages - Snap/Flatpak only as fallback
  • Test on a clean VM - Don't test on your main system
  • Follow existing style - Match the code around you
  • Keep commits focused - One feature/fix per commit
  • Update documentation - If you add features, document them

Reporting Issues

When reporting a bug, include:

  1. Your Linux distribution and version
  2. The exact error message
  3. Output from ./bin/omniset doctor
  4. Steps to reproduce the problem
  5. What you expected to happen

Open issues at: github.com/omnisetorg/Install/issues

Was this helpful?

Help us improve the documentation

Suggest an edit