Releases: octue/octue-sdk-python
Releases · octue/octue-sdk-python
Use conventional-commits repo for CI checks
Contents
Operations
- Use
conventional-commitsrepo 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_answertimeoutparameter is respected - Delete answer topic and subscription after service wait timeout
Operations
- Use
LAST_RELEASEmode when compiling release notes
Dependencies
-
Use google-cloud-pubsub>=2.5.0
Fix: Add missing python-dateutil dependency
Contents
Dependencies
- Add missing
python-dateutildependency
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
releaseworkflow on merge of any branch intomain - Add Conventional Commits
pre-commithook - Replace
check-version-consistencyjob withcheck-semantic-versionjob, which checks that the version insetup.pyis the same as the semantic version expected bygit-mkvergiven the Conventional Commits since the last tag - Add the
update-pull-requestworkflow that auto-generates part of the PR description on each commit - Run
publishtest job on all branches and make it dependent oncheck-semantic-versionjob passing - Rename
testsjob torun-tests
Release/0.1.19
Contents
New Features
- Make
Datafiles andDatasets labelable - Use new version of tags in all
Taggables - Replace string tags in a
TagSetwith key-value pairs in aTagDict - Add new
Taggablemixin 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,FilterListandFilterDict - 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
onemethod? - Allow ordering by nested attributes in all
FilterContainers - Allow
gs://paths to be used inDatafile,Dataset, andManifest - Allow
gs://paths to be used in storage client - Add
datetimefilters - Add in-range filters to
str,datetime, andNumberfilters
Breaking changes
- Use new format for manifests' datasets in
twine.jsonfiles - Convert old
Taggablemixin toLabelablemixin - Convert old
Tagclass toLabelclass - Convert
TagSettoLabelSet - Use key-value pairs for filter names and values when filtering
Filterables - Stop logging in
Serialisable - Always exclude
loggerfield 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
TagDictandLabelSetfrom filter containers - JSON-encode cloud storage custom metadata again
- Store tags in
tagsfield of cloud metadata again - Close #165: prefix GCS custom metadata fields with "octue__"
Minor improvements
- Remove
filtersfield from manifest strand in twines - Allow tags to be added via
kwargsinTaggable.add_tags - Remove unused
_FILTERSET_ATTRIBUTEclass variables - Base
Labelonstr - Support non-English characters in case-insensitive filtering
- Add
octue-sdk-pythonversion to datafile metadata - Base filter containers on new
FilterContainerabstract class - Move
filterandordermethods intoFilterContainer - Use
OctueJSONDecoderinSerialisableandGoogleCloudStorageClient - Add de/serialisation of
datetimeobjects to de/encoders - Clarify name of some
GoogleCloudStorageClientmethods - Add
setandUserStringencoding toOctueJSONEncoder - Use
OctueJSONDecoder - Add
setanddatetimedecoding toOctueJSONDecoder - Remove unnecessary methods from
LabelSet - Rename
add_labelsmethod and addaddmethod 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
twinedthat distinguishes tags from labels
Testing
- Use latest GCS emulator
- Only run deployment test if
RUN_DEPLOYMENT_TESTSenvvar 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)
Release/0.1.17
Contents
New Features
- Allow
Datafileto be used as a context manager for changes to local datafiles - Allow
Datafile.from_cloudto be used as a context manager for changes to cloud datafiles - Allow
Datafileto remember where in the cloud it came from - Add the following methods to
Datafile:get_cloud_metadataupdate_cloud_metadataclear_from_file_cache_get_cloud_location_store_cloud_location_check_for_attribute_conflict
- Avoid re-uploading
Datafilefile or metadata if they haven't changed - Raise error if implicit cloud location is missing from
Datafile - Add
GoogleCloudStorageClient.update_metadatamethod - Allow option to not update cloud metadata in
Datafilecloud methods - Allow tags to contain capitals and forward slashes (but not start or end in a forward slash)
- Allow
datetimeand posix timestamps forDatafile.timestamp - Add
Datafile.posix_timestampproperty
Breaking changes
- Close #148: remove
hash_valuefromDatafileGCS metadata - When hashing
Datafiles, only hash represented file (i.e. stop hashing metadata) - When hashing
Datasets andManifests, only hash the files contained (i.e. stop hashing metadata) - Make hash of
Hashableinstance with_ATTRIBUTES_TO_HASH=Nonethe empty string hash value"AAAAAA=="
Minor improvements
- Simplify output of
GoogleCloudStorageClient.get_metadata - Make
Hashableinstances re-calculate theirhash_valueevery time unless animmutable_hash_valueis explicitly provided (e.g. for cloud datafiles where you don't have the file locally to hash) - Add private
Identifiable._set_idmethod - Close #147: pull metadata gathering for
Datafileinto method - Get
datetimeobjects directly from GCS blob instead of parsing string serialisations - Add
timeutils module - Add hash preparation function to
Hashablefordatetimeinstances - Use the empty string hash value for
Datafileif GCScrc32cmetadata isn't present - Stop serialising hash value of
Manifest,Dataset, andDatafile
Fixes
- Close #146: Stop serialising GCS metadata as JSON. This avoids strings in the metadata appearing in two sets of quotation marks on Google Cloud Storage. This is a breaking change for any files already persisted with JSON-encoded metadata.
- Remove ability to set custom hash value via
kwargswhen usingDatafile.from_cloud
Testing
- Factor out cloud datafile creation in datafile tests
Quality Checklist
- New features are fully tested (No matter how much Coverage Karma you have)
Release/0.1.16
Contents
Breaking changes
- Rename
Service.__init__parameteridtoservice_idto avoid built-in name clash - Move
deploymentpackage intocloudpackage
Dependencies
- Use newest version of
twinedto support python>=3.6
Minor improvements
- Remove duplicate code and unnecessary comments from
Runner - Raise error if
SERVICE_IDenvvar is missing from deployment environment - Disallow non-None empty values as
ServiceIDs - Add base class for service backends; update docstrings
Fixes
- Use
OctueJSONEncoderin JSON serialisation insideService.answerto ensurenumpyarrays are serialised
Testing
- Add tests for
TopicandSubscription - Add extra test for
Service - Shorten runtime of
cli.starttest