Skip to content
nodet edited this page Feb 1, 2022 · 11 revisions

Welcome to the dowml wiki!

Setting up your development environment

$ git clone git@github.com:IBMDecisionOptimization/dowml.git
$ cd dowml
$ python -m venv dowml
$ source dowml/bin/activate
$ pip install -r requirements.txt

You should then create an environment variable that holds your WML credentials: the various makefile targets assume that such a variable exists. For example, my ~/.bash_profile has something like this:

export DOWML_CREDENTIALS="{'apikey': '[redacted]', 'url': 'https://eu-de.ml.cloud.ibm.com', 'space_id': '4645be25-e08e-4a34-a475-ff3cd0dc9635'}"

Another way to specify the credentials is to use the $DOWML_CREDENTIALS_FILE environment variable and give it a value that's a path to a credentials file. This may be easier to setup on-the-fly to another file, rather than storing the file content in a $DOWML_CREDENTIALS variable.

Testing the code

$ source dowml/bin/activate
$ cd tests
$ make quick basic slow fulltests

To test the Interactive manually, one can run:

$ source dowml/bin/activate
$ PYTHONPATH=src python src/dowml/interactive.py

But it is simpler to build locally and install the package:

$ source dowml/bin/activate
$ make build install
$ dowml

Release process

  • Update the version number in src/dowml/__init__.py
  • Update CHANGES.txt to give the name of this new release at the top of the changes
  • Update README.md to reflect the changes in both dowml -h and the session example
  • Push all of that to master
  • Wait for the CI-build workflow to run
  • In the root of the repo, make upload-on-test or make upload-on-real. This will fetch the last checked build from the CI-build workflow, upload it on (test) PyPi, and tag the repo with the version number suffixed by either -test or -release.
  • In tests/test-pypi, run make rebuild_venv test_pypi_test_build or make rebuild_venv test_pypi_build to do a sanity check on the version that was just uploaded. These commands expect that no Python virtual environment is active. The make rebuild-env will destroy the test-pypi-venv in tests/test-pypi to make sure that test_pypi_build starts from an empty env.
Clone this wiki locally