Releases: octue/octue-sdk-python
Releases · octue/octue-sdk-python
Handle errors in responding service and raise in asking service
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
Contents
Refactoring/fixes
- Combine
Datafile.__init__
withDatafile.from_cloud
for simpler and more robust interface - Carry out functionality of former
Datafile.from_cloud
method inDatafile.__init__
if thepath
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
Contents
Operations
- Use
conventional-commits
repo for CI checks
Ensure tests always receive test result modifier on Windows
Contents
Testing
- Ensure tests always receive test result modifier on Windows
Fix: Ensure Service.wait_for_answer timeout value is respected
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
Contents
Dependencies
- Add missing
python-dateutil
dependency
Tweak semantic version incrementing rules
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
Contents
Operations
- Run
release
workflow on merge of any branch intomain
- Add Conventional Commits
pre-commit
hook - Replace
check-version-consistency
job withcheck-semantic-version
job, which checks that the version insetup.py
is the same as the semantic version expected bygit-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 oncheck-semantic-version
job passing - Rename
tests
job torun-tests
Release/0.1.19
Contents
New Features
- Make
Datafile
s andDataset
s labelable - Use new version of tags in all
Taggable
s - Replace string tags in a
TagSet
with key-value pairs in aTagDict
- 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
andFilterDict
- 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
FilterContainer
s - Allow
gs://
paths to be used inDatafile
,Dataset
, andManifest
- Allow
gs://
paths to be used in storage client - Add
datetime
filters - Add in-range filters to
str
,datetime
, andNumber
filters
Breaking changes
- Use new format for manifests' datasets in
twine.json
files - Convert old
Taggable
mixin toLabelable
mixin - Convert old
Tag
class toLabel
class - Convert
TagSet
toLabelSet
- Use key-value pairs for filter names and values when filtering
Filterable
s - Stop logging in
Serialisable
- Always exclude
logger
field inSerialisable
- 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
andLabelSet
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
inTaggable.add_tags
- Remove unused
_FILTERSET_ATTRIBUTE
class variables - Base
Label
onstr
- 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
andorder
methods intoFilterContainer
- Use
OctueJSONDecoder
inSerialisable
andGoogleCloudStorageClient
- Add de/serialisation of
datetime
objects to de/encoders - Clarify name of some
GoogleCloudStorageClient
methods - Add
set
andUserString
encoding toOctueJSONEncoder
- Use
OctueJSONDecoder
- Add
set
anddatetime
decoding toOctueJSONDecoder
- Remove unnecessary methods from
LabelSet
- Rename
add_labels
method and addadd
method toLabelSet
- 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 isTrue
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
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)