[LOW-304] Update development environment
I wanted to use MCCS to check something I had done for LOW-280, but alas! I had a series of problems resurrecting my MCCS development environment. It took me several hours to get things working, and I thought it was worth checking this in.
- The devcontainer was rebuilding pytango from scratch in a virtual machine, when there was already a working version in the base environment. I updated the devcontainer to use the existing pytango. Now it launches in 15 seconds instead of 30 minutes! Woo! Part of this involved adopting a simpler two-line
Dockerfile. I think maybe thedevelop.Dockerfilecan be ditched, but I didn't want to break anything so left it in situ for now. - Since we're using the base environment rather than a poetry-built virtual environment, we can dump
PYTHON_RUNNER = poetry runfrom the Makefile. I also cleaned out some build and publish target overrides that look like a great idea, but actually they will only cause your published package to lack required metadata and be quarantined on the CAR. Far better to use the standard targets. - Then I found I could neither
make python-lintnormake python-test. In both cases there were errors that looked like dependency issues, so I updated all the package dependencies. This gotmake python-lintworking, but notmake python-test. - Eventually I figured out
make python-test-- details at https://skao.slack.com/archives/CJK6VKQ0G/p1659350629226349 - The
python-testCI pipeline step was taking forever to run. It too was installing pytango into a virtual environment instead of using the existing pytango in the container. I fixed this.
Bonus: The testing/src/tests/unit/tile/test_tile_component_manager.py::TestTileComponentManager::test_eventual_consistency_of_on_command test failed in the CI pipeline several times. I got bored with retrying so instead I tried to fix it. I think it is fixed now. It passed 1000 times out of 1000 (nearly an hour of soak testing!) on my local machine, and also passed first time in the CI pipeline.

Edited by Drew Devereux