Commit Graph

17 Commits

Author SHA1 Message Date
John Mulligan 36f65ce31d contrib: fix and simplify condition for reporting only stable apis
When generating the human-readable api-status.md document from the
JSON, the logic used to determine if a package had no Preview/Deprecated
APIs was incorrect. This change fixes and simplifies that condition.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2023-01-12 05:44:24 +00:00
John Mulligan 2d1d51b762 contrib: convert some print calls info info/warning message calls
Adds a info and a warning function that currently just wraps print.
In the future these classified print statements could be customized
for output specific to the message type.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2023-01-10 16:46:02 +00:00
John Mulligan dd95ce1437 contrib: add a specific warning to display new and unexpected stable api
Previously, apiage.py just print out a problem count when it found
an unexpected stable api in the new apis file. Now the output displays
something like this:
```
found new unexpected stable apis: API.LeakyBucket
error: 1 problems detected
```

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2023-01-10 16:46:02 +00:00
John Mulligan 76ca06826b contrib: format apiage.py with black python formatter
Ran: `black -l78 contrib/apiage.py`.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2023-01-10 16:46:02 +00:00
John Mulligan 77ad70fd0c apiage: add hooks to help automatically file an issue
Signed-off-by: John Mulligan <jmulligan@redhat.com>
2022-12-01 07:10:05 +00:00
Anoop C S 1fe5774292 apiage: Remove empty tables from API status markdown
There are instances in API status json with empty list for preview or
deprecated APIs. Due to a missing empty check we had corresponding
tables created without any content.

While adding the empty check also modify the condition which adds an
entry indicating absence of any preview/deprecated APIs to consider
empty lists.

Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2022-10-18 12:10:31 +00:00
John Mulligan 4f5281df0f contrib: fix moving all/multiple apis from preview to stable
I hadn't tested apiage well enough to see that the existing code didn't
correctly handle the case when all or many apis were becoming stable all
together. Things worked fine for a single function call, but not with
many. This fix tries to only update the JSON when needed while correctly
handling the case of multiple changes in one pkg at once.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2022-10-17 17:39:24 +00:00
John Mulligan 1b33c5fd2e contrib: fix a bug in apiage.py
Probably caused by last minute changes to the pr that added the feature,
it just needed the same initialization as the other section.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2022-10-17 17:39:24 +00:00
John Mulligan 5a7d149d50 contrib: add a api promote mode to apiage
Promote an API from preview to stable, after the build tags are removed
from the Go source code. This mode can be used to help move apis that
are now stable out of preview state in our api-status.json file.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2022-09-12 14:26:35 +00:00
John Mulligan c29eb9d7b1 contrib: only read implemments json file when needed
Signed-off-by: John Mulligan <jmulligan@redhat.com>
2022-08-30 15:41:01 +00:00
John Mulligan e5f0dbcfea contrib: teach apiage how to find and report on apis to update
Find preview apis that should become stable. Find deprecated apis that
should be removed. Have a mode to convert between the low level json
report and some markdown that could be pasted into an issue.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2022-08-30 15:41:01 +00:00
Anoop C S a79b4614d6 contrib/apiage: Do not leave empty sections for packages in markdown
For those packages without any preview/deprecated APIs we used to
include a header despite any content under it. We could instead
mention the state in a meaningful sentence.

Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2022-08-12 08:02:33 +00:00
John Mulligan d6bf51115d contrib: add new fix-versions mode to apiage.py
Fixes: #718

This change adds a new "fix-versions" mode to apiage.py, as well as the
ability to set placeholder version values when adding a new API. The
fix-versions mode replaces placeholder versions with real version
numbers. When fixing versions, the --fix-filter-pkg & --fix-filter-func
options can be used to narrow down what APIs will be fixed in case not
all version placeholder should be fixed to the same values.

Note that the placeholders being with a '$' character and look a bit
like a shell variable. However, the text is simply a reminder - only the
'$' prefix is significant. This indicates that the field is a
placeholder.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2022-08-08 10:35:43 +00:00
Sven Anderson 4ef3865bb3 implements: analyze all but internal packages
Signed-off-by: Sven Anderson <sven@redhat.com>
2022-04-12 17:53:06 +00:00
John Mulligan 689ee58bf8 contrib: have apiage fail if no source data is available
It is kind of pointless to let the tool run if no source data is
present, so treat empty/missing source as an error.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2021-11-09 02:02:08 +00:00
John Mulligan 0d5ae4da1f contrib: add support for using the most recent tag for basing updates
Signed-off-by: John Mulligan <jmulligan@redhat.com>
2021-11-09 02:02:08 +00:00
John Mulligan 5d41b671df contrib: add apiage.py - a script to help track the "aging" of apis
This tool can be run as part of our CI as a mechanism to check that
(some) of the policy requirements are being met. It can also be run by
humans as part of the process to update the tracked API information.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2021-09-30 13:27:01 +00:00