Skip to content

Expose revision_number on ModelRevision GQL/REST node #11528

@jopemachine

Description

@jopemachine

Problem

The deployment_revisions table has a per-deployment sequential revision_number column (models/deployment_revision/row.py), but it is not surfaced anywhere on the read path:

  • ModelRevisionData (manager/data/deployment/types.py) does not carry revision_number, so DeploymentRevisionRow.to_data() never propagates it.
  • RevisionNode DTO (common/dto/manager/v2/deployment/response.py) has no revision_number field.
  • ModelRevision GQL type (api/gql/deployment/types/revision.py) likewise omits the field, even though ModelRevisionFilter / ModelRevisionOrderField already accept revision_number as a sort/filter key.

Consequence: clients can sort or filter revisions by revision_number, but the returned objects do not include the number itself, so they cannot display "Revision #N" or order revisions client-side without a separate lookup.

Proposal

Plumb revision_number through the existing read stack:

  1. Add revision_number: int to ModelRevisionData.
  2. Populate it in DeploymentRevisionRow.to_data() and any direct ModelRevisionData() construction sites.
  3. Add revision_number: int to RevisionNode DTO with a description noting it is a per-deployment sequential number.
  4. Add revision_number: int to ModelRevision GQL type using gql_added_field(NEXT_RELEASE_VERSION).

Acceptance Criteria

  • Querying ModelRevision via GraphQL returns revision_number for each revision.
  • REST v2 deployment revision responses include revision_number in their JSON body.
  • pants lint, check, and test pass on changed files; existing revision tests still pass.

JIRA Issue: BA-5982

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions