Skip to content

Releases: octue/octue-sdk-python

Handle errors in responding service and raise in asking service

28 Jun 11:44
0685971
Compare
Choose a tag to compare

Contents

Enhancements

  • Log purely service-caused exceptions in Google Cloud Run without raising them, always returning a 204 response unless there is an error in Google Cloud Run itself
  • Forward service-caused exceptions back to local asker and raise them there, separating the local traceback from the remote traceback

Refactoring

  • Use built-in datetime POSIX time methods instead of custom-written functions

Testing

  • Test Cloud Run answer_question function locally (it's already tested remotely in the deployment tests but this doesn't show up in the test coverage)

Fix: Remove disparity between Datafile instantiation methods

23 Jun 18:50
6407818
Compare
Choose a tag to compare

Contents

Refactoring/fixes

  • Combine Datafile.__init__ with Datafile.from_cloud for simpler and more robust interface
  • Carry out functionality of former Datafile.from_cloud method in Datafile.__init__ if the path parameter is a cloud path

Reversions

  • Remove ability to override cloud metadata on locally instantiated Datafile during instantiation

Use conventional-commits repo for CI checks

21 Jun 12:31
9cdf9d4
Compare
Choose a tag to compare

Contents

Operations

  • Use conventional-commits repo for CI checks

Ensure tests always receive test result modifier on Windows

18 Jun 19:20
868d815
Compare
Choose a tag to compare

Contents

Testing

  • Ensure tests always receive test result modifier on Windows

Fix: Ensure Service.wait_for_answer timeout value is respected

15 Jun 20:22
1e4c5e6
Compare
Choose a tag to compare

Contents

Enhancements

  • Add more configuration options to Subscription
  • Make serving services' subscriptions never expire

Fixes

  • Ensure Service.wait_for_answer timeout parameter is respected
  • Delete answer topic and subscription after service wait timeout

Operations

  • Use LAST_RELEASE mode when compiling release notes

Dependencies

  • Use google-cloud-pubsub>=2.5.0

Fix: Add missing python-dateutil dependency

14 Jun 16:24
54a53ad
Compare
Choose a tag to compare

Contents

Dependencies

  • Add missing python-dateutil dependency

Tweak semantic version incrementing rules

14 Jun 16:07
93c8bd2
Compare
Choose a tag to compare

Contents

Operations

  • Make non-feature/breaking changes require a patch version increase
  • Disable major version increments while package is in beta

Enable continuous deployment with semantic versions

14 Jun 15:26
0de5df2
Compare
Choose a tag to compare

Contents

Operations

  • Run release workflow on merge of any branch into main
  • Add Conventional Commits pre-commit hook
  • Replace check-version-consistency job with check-semantic-version job, which checks that the version in setup.py is the same as the semantic version expected by git-mkver given the Conventional Commits since the last tag
  • Add the update-pull-request workflow that auto-generates part of the PR description on each commit
  • Run publish test job on all branches and make it dependent on check-semantic-version job passing
  • Rename tests job to run-tests

Release/0.1.19

02 Jun 21:37
67b8939
Compare
Choose a tag to compare

Contents

New Features

  • Make Datafiles and Datasets labelable
  • Use new version of tags in all Taggables
  • Replace string tags in a TagSet with key-value pairs in a TagDict
  • Add new Taggable mixin for providing the new tags interface
  • Add FilterDict, allowing filtering of key-value pairs by their values
  • Allow nested attribute/dictionary filtering in the filter containers FilterSet, FilterList and FilterDict
  • Allow any number of filters to be specified when filtering in filter containers
  • Allow ignoring of filterables missing the filtered-for attribute in a filter container instead of raising an error
  • Add filter container one method?
  • Allow ordering by nested attributes in all FilterContainers
  • Allow gs:// paths to be used in Datafile, Dataset, and Manifest
  • Allow gs:// paths to be used in storage client
  • Add datetime filters
  • Add in-range filters to str, datetime, and Number filters

Breaking changes

  • Use new format for manifests' datasets in twine.json files
  • Convert old Taggable mixin to Labelable mixin
  • Convert old Tag class to Label class
  • Convert TagSet to LabelSet
  • Use key-value pairs for filter names and values when filtering Filterables
  • Stop logging in Serialisable
  • Always exclude logger field in Serialisable
  • Simplify tag name pattern to ^[a-z0-9][a-z0-9_]*(?<!_)$
  • Simplify label pattern to ^[a-z0-9][a-z0-9-]*(?<!-)$
  • Store tags as key-value pairs in GCS custom metadata
  • Unbase TagDict and LabelSet from filter containers
  • JSON-encode cloud storage custom metadata again
  • Store tags in tags field of cloud metadata again
  • Close #165: prefix GCS custom metadata fields with "octue__"

Minor improvements

  • Remove filters field from manifest strand in twines
  • Allow tags to be added via kwargs in Taggable.add_tags
  • Remove unused _FILTERSET_ATTRIBUTE class variables
  • Base Label on str
  • Support non-English characters in case-insensitive filtering
  • Add octue-sdk-python version to datafile metadata
  • Base filter containers on new FilterContainer abstract class
  • Move filter and order methods into FilterContainer
  • Use OctueJSONDecoder in Serialisable and GoogleCloudStorageClient
  • Add de/serialisation of datetime objects to de/encoders
  • Clarify name of some GoogleCloudStorageClient methods
  • Add set and UserString encoding to OctueJSONEncoder
  • Use OctueJSONDecoder
  • Add set and datetime decoding to OctueJSONDecoder
  • Remove unnecessary methods from LabelSet
  • Rename add_labels method and add add method to LabelSet
  • Automatically generate complementary (not) filters from other filters
  • Remove a line of duplicated code in Datafile

Fixes

  • Handle timestamps from cloud with/without timezone information
  • Fix OctueJSONDecoder
  • Make it harder to add invalid labels to LabelSet

Dependencies

  • Use new version of twined that distinguishes tags from labels

Testing

  • Use latest GCS emulator
  • Only run deployment test if RUN_DEPLOYMENT_TESTS envvar is True

Quality Checklist

  • New features are fully tested (No matter how much Coverage Karma you have)
  • [v0.2 onward] New features are included in the documentation

Release/0.1.18

12 May 14:44
d095788
Compare
Choose a tag to compare

Contents

New features

  • Allow decimal points in tags

Minor improvements

  • Close #162: make timestamp an optional parameter for Datafile

Quality Checklist

  • New features are fully tested (No matter how much Coverage Karma you have)