Octue

Latest version: v0.61.0

Safety actively analyzes 688823 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 40

0.52.0

Not secure
<!--- SKIP AUTOGENERATED NOTES --->
Contents ([625](https://github.com/octue/octue-sdk-python/pull/625))

**IMPORTANT:** There is 1 breaking change.

Enhancements
- Allow setting of maximum number of workers for parallel questions in `Child.ask_multiple`
- Pull up to 50 messages from answer subscriptions at once instead of 1
- Allow skipping of any missing message after a 10s delay in `OrderedMessageHandler`
- Suppress name/namespace override warning if the value is the same in the environment and service configuration file
- Speed up event validation by caching service communication JSON schema
- 💥 **BREAKING CHANGE:** Extract SRUID for child logs context from subscription in message handler

Fixes
- Exit early from message pulling if heartbeat check fails
- Make `Manifest.update_dataset_paths` method thread-safe

Refactoring
- Factor out multiple checks of package version in message handler

Testing
- Improve message handling tests by not mocking `_pull_and_enqueue_available_messages` method and removing `MockMessagePuller`

---
Upgrade instructions
<details>
<summary>💥 <b>Extract SRUID for child logs from subscription in message handler</b></summary>

This removes the `service_name` argument from `Service.wait_for_answer`. If you were using this argument, simply remove it; logs from children shown in a parent will now have the full and correct SRUID automatically.
</details>

<!--- END AUTOGENERATED NOTES --->

0.51.0

Not secure
Summary
This pull request removes the use of answer topics by publishing answer messages to the service revision (formerly known as question) topic and filtering subscriptions to only receive a) questions or b) response messages to a specific question. This speeds up the question asking process, reduces cloud infrastructure requirements and the permissions surface, and allows us to avoid topic number limits.

Also added is validation of all messages and their attributes against a new [publicly available schema](https://strands.octue.com/octue/service-communication). This ensures services are communicating as they should and opens up the possibility of writing services in other languages and creating emulators.

As this, by itself, constitutes an inter-service communication breaking change, we've taken the opportunity to reduce the complexity of the codebase by removing backwards compatibility patches for service communication (i.e. we've grouped multiple breaking changes together into one).

<!--- SKIP AUTOGENERATED NOTES --->
Contents ([603](https://github.com/octue/octue-sdk-python/pull/603))

**IMPORTANT:** There are 7 breaking changes.

New features
- Validate messages and their attributes against new service communication schema (see [614](https://github.com/octue/octue-sdk-python/pull/614) for changelog - it was merged into this branch)
- Allow diagnostics (formerly known as crash diagnostics) to always be switched on for a service

Enhancements
- 💥 **BREAKING CHANGE:** Publish responses to questions to the service revision (question) topic instead of creating a separate answer topic
- 💥 **BREAKING CHANGE:** Store message number in message attributes instead of in message data
- 💥 **BREAKING CHANGE:** Remove question UUID from log record message body
- 💥 **BREAKING CHANGE:** Remove inter-service communication backwards compatibility code
- 💥 **BREAKING CHANGE:** Make input and output values and manifest optional
- 💥 **BREAKING CHANGE:** Replace boolean `allow_save_diagnostics_data_on_crash` argument with string/enum `save_diagnostics` argument in `Service.ask` and related methods
- Add ability to filter subscriptions
- Add question UUID attribute to all messages
- Send more possible errors to parent in `Service.answer`
- Add `kind` field to question messages
- Add `sender_type` attribute to all messages
- Add ability to instantiate `Runner` from service/app configurations

Fixes
- Stop double-JSON-encoding output manifests

Dependencies
- Update `octue` version in template apps' dependencies

Refactoring
- 💥 **BREAKING CHANGE:** Rename crash diagnostics to diagnostics
- Group message attributes in `Service._send_message` and `MockMessage` under explicit `attributes` argument
- Make `OrderedMessageHandler._waiting_messages` attribute public
- Rename various message attributes

Testing
- Store mock pub/sub messages against subscriptions instead of topics
- Add missing `type` field to emulated Pub/Sub questions

Operations
- Fix `add-issues-to-octue-board` workflow
- Stop automatically building docker images for registry in `release` workflow
- Add ReadTheDocs config file to fix documentation building

---
Upgrade instructions
💥 Update all Octue services in your network to use this version of `octue` so they're still able to communicate. Postpone upgrading until you can upgrade all services simultaneously.

💥 Replace `allow_save_diagnostics_data_on_crash` with `save_diagnostics` set to one of these values: "SAVE_DIAGNOSTICS_OFF", "SAVE_DIAGNOSTICS_ON_CRASH", or "SAVE_DIAGNOSTICS_ON"

💥 Crash diagnostics rename:
- Use the `octue get-diagnostics` CLI command instead of the `octue get-crash-diagnostics` command
- Rename `crash_diagnostics_cloud_path` in your service configurations to `diagnostics_cloud_path`
<!--- END AUTOGENERATED NOTES --->

0.50.1

Not secure
<!--- SKIP AUTOGENERATED NOTES --->
Contents ([621](https://github.com/octue/octue-sdk-python/pull/621))

Fixes
- Make `Manifest.use_signed_urls_for_datasets` idempotent
- Ensure directories exist before downloading datafile from URL
- Ensure child emulators can accept input manifests

<!--- END AUTOGENERATED NOTES --->

0.50.0

Not secure
<!--- SKIP AUTOGENERATED NOTES --->
Contents ([608](https://github.com/octue/octue-sdk-python/pull/608))

**IMPORTANT:** There is 1 breaking change.

Enhancements
- Add ability to automatically retry failed questions in `Child.ask_multiple`
- Add Cloud Run dockerfile with `python3.11` base

Operations
- Use trusted publisher to publish to PyPi

Refactoring
- 💥 **BREAKING CHANGE:** Remove deprecated code

Testing
- Remove unnecessary service IDs from `TestChild` tests

---
Upgrade instructions
<details>
<summary>💥 <b>Remove deprecated code</b></summary>

- Use `datafile.local_path` instead of `datafile.path`
- Use `octue.utils.processes.run_logged_subprocess` instead of `octue.utils.threads.run_logged_subprocess`
</details>

<!--- END AUTOGENERATED NOTES --->

0.49.2

Not secure
<!--- SKIP AUTOGENERATED NOTES --->
Contents ([604](https://github.com/octue/octue-sdk-python/pull/604))

Enhancements
- Raise error when asking a question to an unregistered service revision (when using service registries only)

Fixes
- Ensure questions can be asked to unregistered service revisions when not using a service registry

Operations
- Fix workflows name typo

<!--- END AUTOGENERATED NOTES --->

0.49.1

Not secure
<!--- SKIP AUTOGENERATED NOTES --->
Contents ([607](https://github.com/octue/octue-sdk-python/pull/607))

Enhancements
- Add ability to catch errors for failed questions and keep answers for successful questions when using `Child.ask_multiple`
<!--- END AUTOGENERATED NOTES --->

Page 4 of 40

Links

Releases

Has known vulnerabilities

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.