Plain is headed towards 1.0! Subscribe for development updates →

plain-api changelog

0.21.0 (2025-11-21)

What's changed

  • Updated documentation to use ForeignKeyField instead of ForeignKey to match the plain-models rename (8010204)

Upgrade instructions

  • If you followed the README examples using models.ForeignKey, update your code to use models.ForeignKeyField instead

0.20.1 (2025-11-17)

What's changed

  • Removed ClassVar from query type annotation for improved type checker compatibility (1c624ff)

Upgrade instructions

  • No changes required

0.20.0 (2025-11-14)

What's changed

  • The related_name parameter has been removed from ForeignKey fields. Reverse relationships are now accessed using explicit reverse descriptor fields (a4b6309)

Upgrade instructions

  • Update code that accesses reverse relationships to use the new pattern. For example, if you had api_key.users.first(), change it to User.query.filter(api_key=api_key).first()

0.19.0 (2025-11-13)

What's changed

  • Added query type annotation using ClassVar for improved type checking support (c3b00a6)

Upgrade instructions

  • No changes required

0.18.0 (2025-11-13)

What's changed

  • Added type stubs and improved type annotations for model fields using plain.models.types import pattern (c8f40fc)

Upgrade instructions

  • No changes required

0.17.0 (2025-11-12)

What's changed

  • Fixed type checker warnings in OpenAPI decorator implementation (f4dbcef)

Upgrade instructions

  • No changes required

0.16.3 (2025-11-03)

What's changed

  • CLI command docstrings updated to match coding style guidelines (fdb9e80)
  • Internal model configuration updated to use _meta descriptor pattern (c75441e)

Upgrade instructions

  • No changes required

0.16.2 (2025-10-31)

What's changed

  • Added explicit BSD-3-Clause license metadata to package configuration (8477355)

Upgrade instructions

  • No changes required

0.16.1 (2025-10-20)

What's changed

  • Internal packaging configuration updated (1b43a3a)

Upgrade instructions

  • No changes required

0.16.0 (2025-10-07)

What's changed

  • Model configuration changed from class Meta to model_options = models.Options() descriptor (17a378d)

Upgrade instructions

  • No changes required

0.15.2 (2025-10-06)

What's changed

  • Added type annotations throughout the package for improved IDE and type checker support (41f6429)

Upgrade instructions

  • No changes required

0.15.1 (2025-10-02)

What's changed

  • Updates docs references to request.user

Upgrade instructions

  • No changes required

0.15.0 (2025-09-25)

What's changed

  • Removed deprecated field types: NullBooleanField from OpenAPI schema generation (345295d)

Upgrade instructions

  • If you were using NullBooleanField in your API forms, replace it with BooleanField with required=False and/or allow_null=True as appropriate

0.14.0 (2025-09-12)

What's changed

  • Model and related manager objects renamed from objects to query (037a239)
  • Minimum Python version updated to 3.13 (d86e307)

Upgrade instructions

  • No changes required

0.13.0 (2025-08-19)

What's changed

  • API views no longer use CsrfExemptViewMixin (2a50a91)
  • Improved README documentation with better examples and installation instructions (4ebecd1)

Upgrade instructions

  • No changes required

0.12.0 (2025-07-22)

What's changed

  • The APIKey model now uses PrimaryKeyField() instead of BigAutoField for the primary key (4b8fa6a)

Upgrade instructions

  • No changes required

0.11.0 (2025-07-18)

What's changed

  • Migrations have been restarted with all fields consolidated into the initial migration (484f1b6e93)

Upgrade instructions

  • Run plain migrate --prune plainapi to remove old migration records and apply the consolidated migration

0.10.1 (2025-06-24)

What's changed

  • Added an initial CHANGELOG for plain-api (documentation only, no functional changes) (82710c3)

Upgrade instructions

  • No changes required