From e2a04b626802fa1bc7269407ac79ea399d84c655 Mon Sep 17 00:00:00 2001 From: Alan Pinkert Date: Wed, 30 Oct 2024 00:25:31 +0000 Subject: [PATCH] added codespaces instructions --- python/README.md | 22 ++++++++++++++++++---- python/docs/codespaces.png | Bin 0 -> 37030 bytes 2 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 python/docs/codespaces.png diff --git a/python/README.md b/python/README.md index 13a4997d..74891217 100644 --- a/python/README.md +++ b/python/README.md @@ -7,9 +7,23 @@ For an outline of the logic behind the rules engine and a glossary of common ter Simple steps for development setup: 1. Clone the git repository. -3. Navigate to any directory and create a [virtual environment](https://docs.python.org/3/library/venv.html#creating-virtual-environments) and activate it -4. The following commands can be run from inside the rules-engine folder while the virtual environment is active -2. `pip install -e .` builds the [python egg](https://stackoverflow.com/questions/2051192/what-is-a-python-egg) for the rules engine and then installs the rules engine -3. `pip install -r requirements-dev.txt` which installs the required libraries +2. Navigate to any directory and create a [virtual environment](https://docs.python.org/3/library/venv.html#creating-virtual-environments) and activate it +3. The following commands can be run from inside the rules-engine folder while the virtual environment is active +4. `pip install -e .` builds the [python egg](https://stackoverflow.com/questions/2051192/what-is-a-python-egg) for the rules engine and then installs the rules engine +5. `pip install -r requirements-dev.txt` which installs the required libraries Then, you should be able to run `pytest`, also from any directory, and see tests run successfully. + +## Codespaces +The default codespace does not have the version of Python pre-installed that is used to develop the rules engine. You _can_ use it and update it to install the correct Python vsion, but this takes time. + +Instead, you can spin up a codespace with the correct version like so: + +1. navigate to the green "code" dropdown +2. select the "codespaces" tab +3. select the "..." menu +4. select "new with options" +5. on the options screen, under "Dev container configuration", select "Rules engine" +6. click "Create codespace" + +![codespaces screenshot](docs/codespaces.png) \ No newline at end of file diff --git a/python/docs/codespaces.png b/python/docs/codespaces.png new file mode 100644 index 0000000000000000000000000000000000000000..65809933f8ac6f97280485be5834a5f6f9b10c61 GIT binary patch literal 37030 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