Change log¶
0.10.0 (2024-08-14)¶
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 innoxfile.py
.Update GitHub Actions workflows to use the lsst-sqre/run-nox GitHub Action.
Adopt
ruff-shared.toml
for shared Ruff configuration (from 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.
0.9.1 (2024-01-29)¶
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.
0.9.0 (2023-09-26)¶
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.
0.8.0 (2023-09-06)¶
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.
0.7.1 (2023-09-05)¶
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. WasbaseURL
and is now restored tobaseUrl
.Fix typo in creating records for Lander content types (
source_update_time
andsource_update_timestamp
fields).
0.7.0 (2023-08-31)¶
New features¶
The new
ook audit
command (and associatedAlgoliaAuditService
) 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 asook audit --reingest
to automatically queue reingestion jobs for any missing documents.
Bug fixes¶
Fixed the CLI entrypoint from
squarebot
toook
.
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.
0.6.0 (2023-07-20)¶
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.
0.5.0 (2021-12-01)¶
New features¶
Compatibility with “main” as the default branch when sorting and detecting
technote
metadata.yaml files.
0.4.0 (2021-09-13)¶
New features¶
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 bySQuaRE Bot
(or any email/name corresponding to a bot) during the initial template instantiation.Ook is now configured as a GitHub App.
0.3.1 (2021-03-02)¶
Bug fixes¶
Added hardening to the Kubernetes deployment manifests
0.3.0 (2020-07-17)¶
New features¶
Improved ingest reliability:
For Lander (PDF) content, added a heuristic that rejects TeX that Pandoc might let through.
Handle AASTeX technotes that don’t have full Lander site. Specifically, AASTeX technotes don’t include the handle in the TeX source, so instead we use the document’s URL.
If a Lander site doesn’t have an abstract, we fall back to using the first content chunk.
Support Lander docs without content
Support Sphinx technotes that include content before the first subsection header.
Improved logging during ingests, including logging of records when an insertion into the Algolia index fails.
0.2.0 (2020-07-02)¶
New features¶
Support for sorting documents:
The
number
record field is now numeric, supporting sortable document handles.The new
sourceUpdateTimestamp
is the integer Unix timestamp corresponding to when the document was updated. This timestamp supports sorting documents by their update recency.
After ingest, old records for a URL are deleted. This expiration is done by searching for records for a given
baseUrl
that have asurrogateKey
value other than that of the current ingest.In development environments,
make test
now runs Ook through its tox configuration.Refreshed all pinned dependencies
0.1.0 (2020-06-18)¶
New features¶
First release of Ook!
This release includes support for classifying and ingesting both Lander-based PDF documents with JSON-LD metadata and Sphinx/ReStructuredText-based HTML technotes.
This release also includes a full Kustomize-based Kubernetes deployment manifest.