To create and publish a dependency or installer, 2 stages of testing are required:

Even if a dependency/installer seems easy to package and you feel confident doing it without testing, please don’t. Tests are essential to ensure a safe and functional environment for the user.

Making it work

Surely the most obvious phase: before packaging a dependency/installer you need to make sure that it is possible to install.

Basic concepts and requirements

Each dependency must be tested with the official Bottles Caffe runner to ensure compatibility as this is provided from the very first launch of Bottles.

Use a clean new bottle using the Custom environment to avoid other dependencies/installers to interfere with your tests.

If the dependency is offered by a Service Pack or otherwise a large installer that installs multiple resources, try to extract the contents and place the necessary files manually. This is a delicate operation, we advise you to read on WineDB if there are specific instructions.

Try to make it work

Here are some tips to start testing dependency:

When everything is working, you can making the dependency manifest. Refer to the dependency or installer structure for more information.

Testing via local manifest

The second stage of testing is to test the dependency/installer using your manifest.

Clone the local repository

First, you need to make a local repository. You can create this in your own but we recommend that you clone the git repository to ensure the structure and have access to other dependencies/installers in case yours requires them:

for dependencies

git clone https://github.com/bottlesdevs/dependencies.git

for installers

git clone https://github.com/bottlesdevs/programs.git

Place manifests

Place your manifest in the right folder:

for dependencies

for installers

and update the index.yml file with your dependency/installer:

package_name: # the file name of the manifest, should be the same of Name in the manifest
  Description: My awesome package # the one-line-snall-description
  Category: Essentials # the category (should respect the category path where it is placed)

Launch bottles

To use the local repository, you need to launch Bottles using the appropriate environment variable.

for dependencies

LOCAL_DEPENDENCIES pointing to your local repository:

LOCAL_DEPENDENCIES=/path/to/dependencies/ flatpak run com.usebottles.bottles

for installers

LOCAL_INSTALLERS pointing to your local repository:

LOCAL_INSTALLERS=/path/to/programs/ flatpak run com.usebottles.bottles

Then, try to install the dependency/installer in a new bottle using the appropriate section.

If that doesn’t work, check the terminal where you launched Bottles from and search for errors. If they are not present it means that there is some problem in the steps of your manifesto and you will have to check the instructions for any missing or errors (including typing).