Skip to content

Releases: lsst-sqre/ook

0.11.0

04 Apr 21:11
ef0adaf
Compare
Choose a tag to compare

New features

  • New Links API, available at /ook/links, that provides documentation links to Observatory and survey entities across different domains. This Links API is described in SQR-086. Initially the Links API supports links to documentation about the Science Domain Model (SDM) schemas, tables, and columns.
  • A new endpoint, /ook/ingest/sdm-schemas triggers an ingest of links for schema, table, and column entities in the https://github.com/lsst/sdm_schemas repository to targets in https://sdm-schemas.lsst.io. This endpoint is being developed towards the creation of a links API service, see SQR-086.

Other changes

  • Adopt Faststream 0.5, dropping an earlier pin on Faststream 0.4.
  • Adopt UV in the Docker build.
  • Ook now uses a Postgres database to maintain datasets. Initially Postgres tables are used to store the SDM schemas as well as links for the Links API. The Postgres database is managed by Alembic, and the database schema is maintained with SQLAlchemy. The OOK_DATABASE_URL and OOK_DATABASE_PASSWORD environment variables configure the connection to this database.
  • The nox run session can now run with roundtable-dev credentials from 1Password for testing the application locally. See square.env for details.

What's Changed

  • Bump python from 3.12.5-slim-bookworm to 3.12.6-slim-bookworm by @dependabot in #164
  • Bump actions/setup-python from 4 to 5 by @dependabot in #162
  • DM-49120: Update Ook project infrastructure by @jonathansick in #173
  • DM-49422: Demonstrating creating documentation links for SDM Schemas by @jonathansick in #175
  • DM-49491: Implement /links APIs for getting links to schema documentation by @jonathansick in #176

Full Changelog: 0.10.0...0.11.0

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