Skip to content

Releases: octue/django-twined

Extend `octue` version range to avoid locking to old version

10 Jul 14:13
6e55372
Compare
Choose a tag to compare

Contents (#52)

Dependencies

  • Extend octue version range to avoid forcing all apps using django-twined to use the outdated 0.39.0 version

Add service registry endpoints

05 Jul 16:39
86cb902
Compare
Choose a tag to compare

Contents (#50)

New features

  • Add endpoint for getting/registering service revisions

Operations

  • Use octue/check-semantic-version action
  • Use latest pull request description action
  • Use latest Codecov action
  • Fix default argument in workflow

Dependencies

  • Add icecream to dev dependencies

Testing

  • Make test package structure mirror package structure
  • Test that only one revision of a service can be the default

Style

  • Fix pre-commit checks
  • Improve import spacing

Downgrade ConsistencyError to a logger warning

21 Jun 17:09
a426e55
Compare
Choose a tag to compare

Contents (#44)

The purpose of this PR is to avoid a consistency error whenever you create a Datafile, which pathologically occurs in some cases.

Fixes

  • Downgrade ConsistencyError to a logger warning

Widen django-gcp version range

13 Jun 08:07
e1d1dda
Compare
Choose a tag to compare

Contents (#43)

Operations

  • Relax branch name constraint

Dependencies

  • Widen django-gcp version range

Widen django-gcp dependencies

05 May 16:55
016a28c
Compare
Choose a tag to compare

Contents (#41)

Operations

  • Update precommit to latest standards
  • Update pre-commit to reuse sphinx devdependencies
  • Fix devcontainer.json to latest schema

Dependencies

  • Widen django-gcp range and remove unused sphinx-charts

Add exception event kind signal handler

13 Oct 13:54
c2aa85e
Compare
Choose a tag to compare

Summary

Contents (#30)

Fixes

  • Add exception event kind signal handler

Allow override of ask() to set service_revision

12 Oct 15:37
d6bcb62
Compare
Choose a tag to compare

Summary

Contents (#29)

IMPORTANT: There is 1 breaking change.

New features

  • 💥 BREAKING CHANGE: Allow easier override of ask() to set service_revision

Operations

  • Update pr description generator

Testing

  • Use extra return parameter in test

Upgrade instructions

💥 Allow easier override of ask() to set service_revision

Question.ask() now returns 3 values, not 2, so invocations and overrides of Question.ask() should account for being returned also a service_revision value

Event based service interaction

12 Oct 13:50
ab1cb32
Compare
Choose a tag to compare

Summary

Addresses #10 by setting event handlers up to listen to service responses, as well as introducing a range of improvements such as using django-gcp for storage in the example, and improving the 'duplicate' feature to allow full control of duplicated fields via the Question subclass.

Contents

From (#13), (#28) and (#26)

IMPORTANT: There are 2 breaking changes.

New features

  • Add quick dataset instantiation from queryset
  • 💥 BREAKING CHANGE: Update octue terminology and re-engineer as event stream handler
  • Improve admin for ServiceRevision editability
  • 💥 BREAKING CHANGE: Add to_datafile method
  • Add signals from ServiceUsageEvents
  • Replace duplication feature for more control

Enhancements

  • Optimise performance of admin by prefetching related models
  • Use name-based service IDs in ServiceRevision
  • Make service revisions compatible with named topics
  • Use django-gcp message decoder for answers
  • Allow quick override of question ask method in admin form
  • Add is_default field to allow switch of default service revisions
  • Add helper to get the default service revision

Fixes

  • Prevent psf/black#2964 from occurring
  • Update to latest usages of octue library
  • Update Runner usage
  • Allow older versions of django to use the default app config
  • Only decode messages on events endpoint if kind matches
  • Call label getter correctly
  • Use a partial topic field as service ID
  • Typo in signal name
  • Ensure all signals are exported
  • Make change form render during cloning
  • Allow uuid objects as well as str uuids
  • Correct logic in show_save_and_ask
  • Prevent edit of the events
  • Make question deletion cascade correctly

Operations

  • Update to new checkout action
  • Make barebone tests run with the integration test project
  • Apply updated black version
  • Make esbonio lint rst docs
  • Prevent prettier from mangling html template files
  • Make devcontainer pytest play nice with django
  • Update to latest conventional commit checker
  • Update to latest dev stack
  • Make the devcontainer work with pytest
  • Add security policy
  • Update octue past manifest serialisation patch
  • Enhance log on signal sending
  • Add a save_as option instead of using modelclone
  • Update test matrix and make ci names consistent with django-gcp
  • Remove python 3.11 as its still in rc on GHA
  • Update publisher stack
  • Completely remove postgres from tox matrix

Dependencies

  • Add dependencies for release
  • Use octue=^0.27.0
  • Update octue and django-gcp dependencies
  • Update to latest django-gcp
  • Update octue and django-gcp to ensure files arguments work
  • Update django-gcp past error in static files collection
  • Resolve psycopg2 to binary version

Testing

  • Implement test and example apps
  • Remove sqlite tests due to incompatibility per #24
  • Add factory_boy for text fixtures
  • Skip an integration test for which we have no infrastructure

Reversions

  • Revert "OPS: Add a save_as option instead of using modelclone"

Chores

  • Update setting for restructuredText source location
  • Disable pylint warnings for migrations files
  • Make test application usable
  • Tidy up docstring typos
  • Improve logger rendering
  • Move factory-boy to dev dependencies
  • Remove deprecation warning from django 40

Other

  • General update of docs and add settings for events use
  • Update license section
  • Fix typo
  • Add qualifying instrucitons to param description
  • Bump protobuf from 3.20.0 to 3.20.2
  • Merge pull request #25 from octue/dependabot/pip/protobuf-3.20.2

Upgrade instructions

💥 Update octue terminology and re-engineer as event stream handler

The RegisteredService model is removed in favour of new ServiceRevision based octue terminology (this supports the move to octue named services).

  • Users should first update django settings according to the docs and remove any existing TWINED_SERVICES entry (contents is now stored in the database, not hard coded).
  • Users should remove any use of the register_services management command in release scripts
  • Post-migration, users should check the ServiceRevisions table and update the service namespaces if required (a data migration is done, but the namespace of the newly-created service revisions uses the default namespace is assumed, since legacy RegisteredServices did not contain one).
  • Users should update any direct usage of the removed RegisteredService model to use ServiceRevision instead.
  • Storage is now managed by django-gcp. Whilst this should work OK with django-storages, we strongly encourage the use of django-gcp to also manage static and media stores, to prevent the requirement of two overlapping packages.
💥 Add to_datafile method

The property is now a shortcut to the method which by default will NOT sync metadata from the store. This reduces the likelihood of pathologically slow behaviour occurring. To force update from the store, use the method directly.

Update dependencies

11 Mar 16:22
8805387
Compare
Choose a tag to compare

Summary

Contents (#9)

Operations

  • Bump version

Dependencies

  • Update octue and others

Refactoring

  • Removed unused test classes
  • Add docstrigns

Hotfix: Backward python compatibility

13 Feb 13:43
1c376bd
Compare
Choose a tag to compare

Summary

Library is already fully tested on python 3.8; this hotfix prevents poetry from barfing if installing on python 3.8 (because it checks the version range in pyproject.toml).

Contents (#7)

Operations

  • Update version

Dependencies

  • Make installable on older python