Release 10.0 - 230904.10.0

This release includes changes to how Skylark handles timezones, updates to the built-in Skylark schema and the usual array of bug fixes and improvements.

Features

Timezone Rework 🗓️

We've reworked the Skylark availability timezone support to make it easier to handle daylight saving time and generally make it easier and more user friendly to manage.

Previously Skylark used a UTC offset to inputting timezones. This was very simple and convenient, however made it impossible to have different offsets in the start and end time.

The rework uses IANA timezone groups to automatically work out the offset for you.

The input for an availability may look like this:

mutation {
  createAvailability(availability: {
    external_id: "my-availability",
    start: "2023-09-04T12:00:00Z",
    end: "2023-12-01T12:00:00Z",
    timezone: "Europe/London"
  }) {
    uid
    start
    end
    timezone
  }
}

We'll normalise the offset in the datetime string (In the case of that example we entered Z for UTC) to the timezone you entered, then store that as UTC. The UTC values and the timezone group name you entered can then be returned to you to shift to the timezone.

We realise that timezones are a developer's worst nightmare, so we hope this change relieves some of the pressure of managing offsets, and helps developers sleep a little easier.

LiveAsset 📺

We've changed the Skylark built in object type SkylarkLiveStream to SkylarkLiveAsset, and added LiveStream to the entertainment data model.

We feel this change reflects what the original SkylarkLiveStream type was originally intended for, which is basically a live version of an asset. And the new LiveStream object in the entertainment data model gives you the flexibility to add/remove fields to match your data.

Fixes

  • Fixes an issue where the _meta object would return null in search results
  • Fixes an issue it was impossible to set a field to null once it had been populated