Skip to content

Releases: lsst-sqre/ook

0.10.0

14 Aug 20:50
1930f04
Compare
Choose a tag to compare

New features

  • Ook now uses faststream for managing its Kafka consumer and producer. This is also how the Squarebot ecosystem operates. With this change, Ook no longer uses the Confluent Schema Registry. Schemas are instead developed as Pydantic models.

Other changes

  • Use uv for installing and compiling dependencies in noxfile.py.
  • Update GitHub Actions workflows to use the lsst-sqre/run-nox GitHub Action.
  • Adopt ruff-shared.toml for shared Ruff configuration (from https://github.com/lsst/templates)
  • Update Docker base to Python 3.12.5-slim-bookworm.
  • Switch to testcontainers for running Kafka during test sessions. The Kafka brokers is automatically started by the nox sessions.

What's Changed

Full Changelog: 0.9.1...0.10.0

0.9.1

29 Jan 20:23
a542c17
Compare
Choose a tag to compare

Bug fixes

  • If a technote doesn't have the og:article:modified_time then Ook falls back to using the current time of ingest. This fallback is to meet the schema for the www.lsst.io website, and ideally documents should always set modification time metadata.

What's Changed

  • [neophile] Update dependencies by @neophile-square in #151
  • [neophile] Update dependencies by @neophile-square in #153
  • [neophile] Update dependencies by @neophile-square in #154
  • [neophile] Update dependencies by @neophile-square in #155
  • DM-42705: Fall back to using current date for update_time by @jonathansick in #159

Full Changelog: 0.9.0...0.9.1

0.9.0

26 Sep 21:02
b6157e3
Compare
Choose a tag to compare

New features

  • Added support for ingesting Technotes (as generated with the technote.lsst.io framework). These technotes are generated with Sphinx, but embed metadata in common formats like Highwire Press and OpenGraph. This new technote format replaces the original technote format, although the original technotes are still supported by Ook.

What's Changed

  • [neophile] Update dependencies by @neophile-square in #148
  • DM-40847: Enable ingest technotes (technote.lsst.io - type documents) by @jonathansick in #150

New Contributors

  • @neophile-square made their first contribution in #148

Full Changelog: 0.8.0...0.9.0

0.8.0

06 Sep 19:08
207eb92
Compare
Choose a tag to compare

New features

  • Add a new ook ingest-updated command to queue ingest tasks for all LTD projects that have updated within a specified time period. This command is intended to be run as a Kubernetes cron job. Once push-based queueing from LTD is available on the roundtable-prod Kubernetes cluster this command can be deprecated.

What's Changed

Full Changelog: 0.7.1...0.8.0

0.7.1

05 Sep 17:36
b813002
Compare
Choose a tag to compare

Bug fixes

  • Improved and logging and exception reporting around the ook audit command.
  • Fixed the base_url attribute's JSON alias for the Algolia DocumentRecord model. Was baseURL and is now restored to baseUrl.
  • Fix typo in creating records for Lander content types (source_update_time and source_update_timestamp fields).

What's Changed

  • Bump python from 3.11.4-slim-bullseye to 3.11.5-slim-bullseye by @dependabot in #143
  • DM-40605: Improve Algolia audit job's reliability by @jonathansick in #144

Full Changelog: 0.7.0...0.7.1

0.7.0

31 Aug 20:45
a820dd7
Compare
Choose a tag to compare

New features

  • The new ook audit command (and associated AlgoliaAuditService) audits the contents of the Algolia index to determine if all documents registered in the LSST the Docs API are represented in the Algolia index. This command can be run as ook audit --reingest to automatically queue reingestion jobs for any missing documents.

Bug fixes

  • Fixed the CLI entrypoint from squarebot to ook.

Other changes

  • The Factory is refactored. A ProcessContext now holds singleton clients for the duration of the process, and is used for both the API handlers and for worker processes, including CLI instantiations of Ook as Kubernetes jobs. This new architecture moves configuration of Kubernetes and registration of Kafka Avro schemas out of the main module and into the factory instantiation.
  • The Algolia search client is now mocked for testing. This allows the new factory to always create a search client for the process context. It also means that Algolia client credentials are always required; the test configuration uses substitute keys for the mock.

What's Changed

Full Changelog: 0.6.0...0.7.0

0.6.0

20 Jul 18:15
a48046c
Compare
Choose a tag to compare

Backwards-incompatible changes

  • The app is rewritten as a FastAPI/Safir app, replacing its heritage as an aiohttp/Safir app. The app is also now deployed with Helm via Phalanx Because of this, Ook should be considered as an entirely new app, with no backwards compatibility with the previous version.
  • Ook no longer receives GitHub webhooks; the intent is to get GitHub webhook events from Squarebot (through Kafka) in the future.
  • Ook no longer receives Kafka messages from LTD Events since that app isn't avabile in the new Roundtable deployment. A new ingest trigger is being developed in the interim. Until then, ingests can be manually triggered by the POST /ook/ingest/ltd endpoint.

New features

  • Ook is now a FastAPI/Safir app.
  • Ook uses Pydantic models for its Kafka message schemas.
  • Ook is now built around a service/domain/handler architecture, bringing it in line with SQuaRE's modern apps. The Kafka consumer is considered a handler.
  • Add ook upload-doc-stub CLI command to manually add a single record to Algolia to stub a document into the www.lsst.io search index. This is useful for cases where a document can't be normally indexed by Ook.

Other changes

  • The change log is maintained with scriv
  • Tests are now orchestrated through nox.

What's Changed

Full Changelog: 0.5.0...0.6.0

0.5.0

01 Dec 21:34
f223f39
Compare
Choose a tag to compare
  • When detecting a Sphinx technote, first try to ping the main branch before trying master
  • When ingesting a sphinx technote, default to main if the tracking branch is not given.
  • Updated dependencies
  • The docker image is now based on Python 3.9.8

0.4.0

13 Sep 19:08
08baf96
Compare
Choose a tag to compare

In this release, documents are ingested with a new sourceCreationTimestamp. This timestamp corresponds to the time when a document was initially created. A new workflow, get_github_creation_date can be used to infer this creation date on the basis of the first GitHub commit on the default branch that was not made by SQuaRE Bot (or any email/name corresponding to a bot) during the initial template instantiation.

Related to this, Ook is now configured as a GitHub App: https://github.com/apps/ook-rubin-observatory