Releases: lsst-sqre/ook
0.20.0
Backwards-incompatible changes
- This version adds a new
address_country_code
column to theaffiliation
table. This requires an Alembic migration,c03d146610d8
to8e529b9177a0
.
New features
-
Ook now stores the two-letter ISO 3166-1 country code for an affiliation in the
affiliation
table, in addition to storing the country as provided byauthordb.yaml
. When a country code is available, it is used for determining the affiliation's country name, with a fallback to the country name column when absent. This should add reliability to affiliation address data. -
The new CLI command,
ook migrate-country-codes
migrates existing country names to the country codes column. -
Added formatted address field to affiliation responses. Affiliation addresses now include a
formatted
field that
contains properly formatted address strings using international standards.- Uses the google-i18n-address library to respect country-specific conventions for address layout
- Includes graceful fallback formatting for invalid or incomplete address data
- Maintains full backwards compatibility with existing API consumers
What's Changed
- DM-52065: Store country codes for affiliation addresses by @jonathansick in #196
- DM-52065: Generate formatted addresses for affiliations by @jonathansick in #197
Full Changelog: 0.19.0...0.20.0
0.19.0
Backwards-incompatible changes
- A database migration is required to add a new
search_vector
column to theauthor
table. This column enables full-text search capabilities and is populated with computed values from thegiven_name
andsurname
fields. Requires Alembic migration from1ad667eab84e
toc03d146610d8
.
New features
-
The
/authors
endpoint now supports asearch
query parameter that allows for flexible and typo-tolerant searching of authors by name. The search system automatically detects and handles various name formats:- "Last, First"
- "Last, Initial"
- "First Last"
- Family name only
- Given name only
- Compound family names
- Names with suffixes
- Partial names, initials, and typos
Other changes
-
Improved codebase compatibility with coding agents like Claude:
- Streamlined the logging output from
nox
tests to reduce noise. - Added Claude context file (
CLAUDE.md
) with project instructions.
- Streamlined the logging output from
What's Changed
- DM-52018: Remove environment_url from configuration by @rra in #195
- DM-52027: Implement searching for authors by name by @jonathansick in #194
Full Changelog: 0.18.0...0.19.0
0.18.0
Backwards-incompatible changes
- This release requires a database migration to add new tables for the resources API:
113ced7d2d29
to1ad667eab84e
.
New features
-
Ook now has a bibliographic resource API for storing metadata records about Rubin Observatory documentation (technical notes, documents, user guides), software code bases, and other resources:
-
Core data model designed to be compatible with DataCite concepts for straightforward integration with DataCite DOI registration.
-
Polymorphic resource model allows different types of resources (documents, software, datasets) to be stored efficiently. This release demonstrates this model with a
Document
resource type. -
Support for relationships between records and external references (such as papers with DOIs). Relationships are annotated with DataCite relationship types to enable features such as reference tracking and tracing documents that supersede other documents.
-
Integration with the existing author API for both author lists and tracking other types of contributors.
-
Resources are available through
GET /resources
andGET /resources/{id}
endpoints. These endpoints should be considered experimental and subject to change in future releases.
This bibliographic API will enable features such as sophisticated documentation search APIs and user interfaces, automation for DOI registration, and more. Future releases will integrate Ook's existing documentation ingest processes with the bibliographic database and develop API endpoints for querying and managing bibliographic resources.
-
What's Changed
- DM-51479: Create a preliminary design document for the bibliographic API by @jonathansick in #187
- DM-51522: Initial implementation of bibliography API by @jonathansick in #189
Full Changelog: 0.17.0...0.18.0
0.17.0
Backwards-incompatible changes
-
Dropped the
collaboration
table from the database schema and removed related code from the application. Originally in Ook we wanted to treat human authors separate from organizational authors in order to make building out a staff directory easier. However, working against the grain of authordb.yaml (the canonical source for Rubin author data) has proven to be difficult. Now collaborations/collective authors will appear in the/authors/
endpoints and in theauthor
database table. -
Requires database migration,
113ced7d2d29
.
What's Changed
- DM-51816: Stop distinguishing collaborations from authors by @jonathansick in #193
Full Changelog: 0.16.0...0.17.0
0.16.0
New features
-
Handle the parsing exception when a LaTeX (Lander) document's articleBody metadata is still LaTeX-formatted rather than the excepted Markdown conversion. The metadata parser still creates a content chunk for Algolia consisting of the title and description/abstract.
-
Handle parsing Technote (Sphinx) technotes where the abstract directive is missing. The metadata parser now returns a default message indicating that the abstract is not available.
Other changes
- Adopt nox-uv for installing dependencies in
noxfile.py
.
What's Changed
- DM-51726: Adopt nox-uv by @jonathansick in #191
- DM-51777: Improve LaTeX articleBody parsing by @jonathansick in #192
Full Changelog: 0.15.0...0.16.0
0.15.0
Backwards-incompatible changes
-
The author resources in the REST API have the following changes:
-
The
surname
field is nowfamily_name
to better match common usage. -
The affiliation metadata is no longer a simple string, but instead a structured object with address components.
-
-
A database migration is required (Alembic migration
176f421b2597
).
New features
- In addition to the backwards-incompatible changes related to the author
family_name
field and affiliationaddress
, the authors API now includes the ROR ID for affiliations and the department name for an affiliation, where appropriate. Ook now reflects the structure of lsst/lsst-texmf'sauthordb.yaml
file as of 2025-07-05.
What's Changed
- DM-51726: Update to handle new authordb.yaml format by @jonathansick in #190
Full Changelog: 0.14.0...0.15.0
0.14.0
Backwards-incompatible changes
-
Changed the
GET /authors/id/{id}
endpoint to now beGET /authors/{id}
to align with the other endpoints in the API. -
Changed SQL table names to be singular instead of plural. This change requires a database migration (Alembic migration
fb5ed49d63d5
).
New features
- The
POST /ingest/lsst-texmf
endpoint (andook ingest-lsst-texmf
command) provides an option to delete author records that are no longer present inauthordb.yaml
. This is not the default behavior.
Bug fixes
-
Collaborations are now filtered out from the
/authors
endpoint. We may add a new collaborations endpoint in the future. -
Terms in
glossarydefs.csv
are deduplicated before being added to the database. This prevents duplicate terms in the CSV, a common typo, from preventing the ingestion of the glossary definitions.
Other changes
- Dropped the
nox init
,init-venv
, andupdate-deps
sessions in favor of Makefile targets to reduce subtle issues about hownox
depends onuv
in thenox
context.
What's Changed
- Fix dependency update by @jonathansick in #184
- DM-51484: Update authors API and SQL table name conventions by @jonathansick in #188
Full Changelog: 0.13.1...0.14.0
0.13.1
Bug fixes
- The database session is now committed after running
ook ingest-lsst-texmf
.
What's Changed
- DM-50331: Commit the DB session in ingest-lsst-texmf CLI by @jonathansick in #183
Full Changelog: 0.13.0...0.13.1
0.13.0
New features
-
Added a new Author API to interact with author metadata records from Rubin Observatory's author database, which is canonically maintained as the
etc/authordb.yaml
file in lsst/lsst-texmf.-
Use the new endpoint
GET /ook/authors
to paginate over all author records. Author records include affiliations. -
Use
GET /ook/authors/id/{internal_id}
to retrieve the record for a single author based on their author ID.
-
-
Added a Glossary API to interact with the Rubin Observatory glossary, which is canonically maintained in the
etc/glossarydefs.csv
andetc/glossarydefs_es.csv
files in lsst/lsst-texmf.- The
GET /ook/glossary/search?q={term}
endpoint allows searching for glossary terms. The search is case-insensitive and typo-tolerant.
- The
-
A new ingest endpoint,
POST /ook/ingest/lsst-texmf
triggers a refresh of author and glossary data from thelsst/lsst-texmf
repository. This service can also be run from the CLI with theook ingest-lsst-texmf
command (useful for testing or cron jobs).
Bug fixes
- Fixed the AsyncAPI documentation generation (available at
/ook/asyncapi
).
Other changes
-
Migrated dependency management to UV lockfiles, with dependencies defined in pyproject.toml's
dependencies
array anddependency-groups
table. In addition to deleting the oldrequirements/
files, this change also affects the Dockerfile, GitHub Actions, and Nox setup (noxfile.py
). -
Adopt Python 3.13.
-
Fixed the process for creating Alembic migrations, ensuring that the previous database schema is mounted correctly.
-
The FastStream lifecycle is no longer explicitly managed.
What's Changed
- DM-50331: Adopt uv lockfile by @jonathansick in #179
- DM-50331: Add authors API backed by data from lsst-texmf by @jonathansick in #180
- DM-50331: Create 0.13.0 release by @jonathansick in #182
Full Changelog: 0.12.0...0.13.0
0.12.0
New features
-
The Links API collection endpoints now use pagination for improved performance and usability. Ook uses keyset pagination, so look for a Links header with
next
,prev
, andfirst
links. Use these URLs to advance to the next page. TheX-Total-Count
header indicates the total number of items in the collection. Pagination applies to the following endpoints:GET /ook/links/domains/sdm/schemas
GET /ook/links/domains/sdm/schemas/:schema/tables
GET /ook/links/domains/sdm/schemas/:schema/tables/:table/columns
What's Changed
- DM-50016: Employ pagination in the Ook Links API by @jonathansick in #177
Full Changelog: 0.11.0...0.12.0