Skip to content

Releases: lsst-sqre/ook

0.20.0

07 Aug 21:07
17c37b0
Compare
Choose a tag to compare

Backwards-incompatible changes

  • This version adds a new address_country_code column to the affiliation table. This requires an Alembic migration, c03d146610d8 to 8e529b9177a0.

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 by authordb.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

Full Changelog: 0.19.0...0.20.0

0.19.0

05 Aug 14:47
b924796
Compare
Choose a tag to compare

Backwards-incompatible changes

  • A database migration is required to add a new search_vector column to the author table. This column enables full-text search capabilities and is populated with computed values from the given_name and surname fields. Requires Alembic migration from 1ad667eab84e to c03d146610d8.

New features

  • The /authors endpoint now supports a search 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.

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

29 Jul 18:19
653a6d9
Compare
Choose a tag to compare

Backwards-incompatible changes

  • This release requires a database migration to add new tables for the resources API: 113ced7d2d29 to 1ad667eab84e.

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 and GET /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

15 Jul 20:11
8fd165b
Compare
Choose a tag to compare

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 the author database table.

  • Requires database migration, 113ced7d2d29.

What's Changed

Full Changelog: 0.16.0...0.17.0

0.16.0

11 Jul 16:54
ddd9cf0
Compare
Choose a tag to compare

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

Full Changelog: 0.15.0...0.16.0

0.15.0

07 Jul 21:12
4384b1d
Compare
Choose a tag to compare

Backwards-incompatible changes

  • The author resources in the REST API have the following changes:

    • The surname field is now family_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 affiliation address, 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's authordb.yaml file as of 2025-07-05.

What's Changed

Full Changelog: 0.14.0...0.15.0

0.14.0

23 Jun 20:52
fa037f4
Compare
Choose a tag to compare

Backwards-incompatible changes

  • Changed the GET /authors/id/{id} endpoint to now be GET /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 (and ook ingest-lsst-texmf command) provides an option to delete author records that are no longer present in authordb.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, and update-deps sessions in favor of Makefile targets to reduce subtle issues about how nox depends on uv in the nox context.

What's Changed

Full Changelog: 0.13.1...0.14.0

0.13.1

30 Apr 19:13
301752b
Compare
Choose a tag to compare

Bug fixes

  • The database session is now committed after running ook ingest-lsst-texmf.

What's Changed

Full Changelog: 0.13.0...0.13.1

0.13.0

30 Apr 17:56
2840315
Compare
Choose a tag to compare

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 and etc/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.
  • A new ingest endpoint, POST /ook/ingest/lsst-texmf triggers a refresh of author and glossary data from the lsst/lsst-texmf repository. This service can also be run from the CLI with the ook 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 and dependency-groups table. In addition to deleting the old requirements/ 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

Full Changelog: 0.12.0...0.13.0

0.12.0

16 Apr 17:23
36889f3
Compare
Choose a tag to compare

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, and first links. Use these URLs to advance to the next page. The X-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

Full Changelog: 0.11.0...0.12.0