Description
<!--- Describe your changes in detail -->
There are several large changes in release v0.10.0. These may require user action, as described below.
ocs-web
ocs-web has been [removed from this repository](https://github.com/simonsobs/ocs/pull/280). It has been replaced by an improved Vue.js version kept in [simonsobs/ocs-web](https://github.com/simonsobs/ocs-web).
Current users of ocs-web should upgrade to the new Vue.js based version. Setup instructions, including how to run with the provided Docker image, are located in the [ocs-web repo's README file](https://github.com/simonsobs/ocs-web/blob/main/README.md).
OCS Plugins
v0.10.0 [adds](https://github.com/simonsobs/ocs/pull/284) the [OCS Plugin system](https://ocs.readthedocs.io/en/develop/developer/writing-plugins.html). This has moved all core OCS Agents to be within the ocs package. (They were previously in a separate `agents/` directory.) This allows core Agent installation via pip from PyPI.
During this change all core ocs Agent Docker images have been merged into a single image. All core Agents can now be run from the [simonsobs/ocs image](https://hub.docker.com/r/simonsobs/ocs). Configuration of the image can now largely be done by setting environment variables. For example, to run a fake data Agent a docker-compose service would look like:
fake-data1:
image: simonsobs/ocs:v0.10.0
hostname: ocs-docker
environment:
- INSTANCE_ID=fake-data1
volumes:
- ${OCS_CONFIG_DIR}:/config:ro
Please see each Agent's respective reference page for updated configuration file information.
Separate Agent images will not be built moving forward, so in order to update you must switch to using the new `simonsobs/ocs:v0.10.0` image.
Task Abort
Task aborting has been a long planned feature of ocs. It is now [implemented](https://github.com/simonsobs/ocs/pull/253). Agent developers can now add the ability to abort tasks. You can read about how to do so in the [newly re-written](https://github.com/simonsobs/ocs/pull/279) [Agent Writing Guide](https://ocs.readthedocs.io/en/develop/developer/writing_an_agent/index.html). More specifically see "[Aborting a Task](https://ocs.readthedocs.io/en/develop/developer/writing_an_agent/task.html#aborting-a-task)".
OCS now tries to run the Process stop command in the same threading context as the Process itself (the same is true for Task aborts.) Existing Agents with their process start/stop commands in differing contexts can still be run, but OCS will print a warning. Agent developers are encouraged to put their start/stops in the same context. See the Agent guide above for details.
What's Changed
New Features
* Create OCS Plugin system by BrianJKoopman in https://github.com/simonsobs/ocs/pull/284
* Task abort and other stop fix-ups by mhasself in https://github.com/simonsobs/ocs/pull/253
Documentation Updates
* docs: Address quickstart guide issues by BrianJKoopman in https://github.com/simonsobs/ocs/pull/276
* Rewrite Agent developer guide by BrianJKoopman in https://github.com/simonsobs/ocs/pull/279
* Fix broken link to agent docs template by BrianJKoopman in https://github.com/simonsobs/ocs/pull/283
* docs: Fix path to ocs_plugin_standard.py in agent guide by BrianJKoopman in https://github.com/simonsobs/ocs/pull/286
Bug Fixes
* Fix flaky registry test by BrianJKoopman in https://github.com/simonsobs/ocs/pull/278
Misc.
* Remove OCS web by mhasself in https://github.com/simonsobs/ocs/pull/280
**Full Changelog**: https://github.com/simonsobs/ocs/compare/v0.9.3...v0.10.0