Contributor setup
This page is for contributors working from a local source checkout.
Python versions
IvoryOS supports Python >=3.7. For new development, use Python >=3.10 when possible because the optional optimizer packages and modern typing syntax are easier to work with there.
Some lab deployments still need older or 32-bit Python environments for vendor drivers. Keep compatibility in mind when changing dependencies or syntax in package code.
Create an environment
From the repository root:
python -m venv .venv
Activate it, then install IvoryOS in editable mode with development and documentation dependencies:
python -m pip install --upgrade pip
python -m pip install -e ".[dev,doc]"
Install optional feature groups only when you need them:
python -m pip install -e ".[optimizers]"
python -m pip install -e ".[db]"
python -m pip install -e ".[llm]"
The individual optimizer extras are also available:
python -m pip install -e ".[optimizer-ax]"
python -m pip install -e ".[optimizer-baybe]"
python -m pip install -e ".[optimizer-nimo]"
Run the example platform
The abstract SDL example is useful for manual smoke testing:
python community/examples/abstract_sdl_example/abstract_sdl.py
Then open:
http://localhost:8000
The default local login is:
admin / admin
Local data
IvoryOS writes local runtime data to ivoryos_data/ in the current working directory. The most important generated paths are:
ivoryos_data/ivoryos.db: local SQLite database.ivoryos_data/scripts/: saved workflow JSON and generated workflow Python scripts.ivoryos_data/results/: workflow result CSV files.ivoryos_data/config_csv/: run configuration CSV files.ivoryos_data/pseudo_deck/: generated interface schema files.ivoryos_data/logs/andivoryos_data/default.log: runtime logs.
These files are runtime output, not source. Do not commit newly generated local run data.
Useful environment variables
Variable |
Purpose |
|---|---|
|
Changes the app prefix from the default |
|
Sets the server port when |
|
Flask secret key. |
|
Enables design-agent features when an LLM server/model is configured. |
|
Database URI, preferred over |
|
Fallback database URI. |
PostgreSQL support requires the db extra.