Contributing#
To add more functionality to symphony_ui, symphony_lib, or any component, first set up a dev environment.
Then, packages can be updated and deployed.
If your change could be useful to other users, please consider making a pull request.
Development Installation#
1. Install JavaScript package managers.
Install Node and Yarn globally on your machine.
2. Create a Python environment.
With conda, using symphony as the environment name:
conda create -n symphony python=3.11
conda activate symphony
Or, instead using venv:
virtualenv --python /usr/local/opt/python/bin/python3 venv
source venv/bin/activate
3. Install Python dependencies.
Install Python dependences by running:
pip install -r requirements.txt
4. Install Symphony packages.
First, install the symphony_ui Python package.
scripts/dev-install.sh
Optionally, install all the widgets:
scripts/dev-install-widgets.sh
5. Build and watch for changes.
For the main symphony_ui package:
yarn dev
For symphony_lib:
cd symphony_lib
yarn watch
Optionally, for the widgets:
scripts/dev-watch-widgets.sh
Deployment Note#
As all packages depend on symphony_lib, whenever symphony_lib is updated, all packages need to follow.
To do that, you need to manually bump all _version.py files for all widgets and for the main Symphony package.
Then, you can use:
scrips/dev-watch-widgets.sh