Versions and upgrades¶
PGPCbot uses Semantic Versioning: MAJOR.MINOR.PATCH.
What counts as the public API¶
every name exported by
pgpcbot(and bypgpcbot.crypto,pgpcbot.filters,pgpcbot.webhook), with its documented parameters and behaviour;the
pgpcbotcommand and its options;the environment variables listed in Configuration;
the SQLite database format of
SQLiteStorage(a new version opens the old file).
Not public: names that start with _, the exact text of error and log messages (use the
exception types and code, not the message text), and the raw contents of models.
Before 1.0¶
While the version is 0.x:
a minor release (
0.2.0) may change the public API. Changes are listed in the changelog with what to do;a patch release (
0.1.1) only fixes bugs and never breaks working code.
Pin the minor version: PGPCbot>=0.1,<0.2.
From 1.0¶
patch: bug fixes only;
minor: new features; nothing that worked breaks. Deprecated things keep working and warn (
DeprecationWarning) for at least one minor release;major: may remove deprecated things and change behaviour, with an upgrade guide.
Following the server¶
The library follows the Bot API version in the server’s OpenAPI document (1.0.0 today).
New fields from the server don’t break old versions of the library: they stay in
raw, and unknown enum values become pseudo-members.New operations of the API come in a minor release.
Limits are read from
GET /meat start-up, so changed numbers on the server need no upgrade.
Supported Python versions¶
A Python version is supported until its end of life. Dropping one comes in a minor release and is announced in the changelog. Today: 3.11 to 3.14.
Security fixes¶
Security fixes go to the latest minor release. See Security.