summaryrefslogtreecommitdiffstats
path: root/extras/scripts/crcchecker.py
AgeCommit message (Collapse)AuthorFilesLines
2024-04-02misc: in crcchecker.py, don't check for uncommitted changes in CIDave Wallace1-7/+9
Type: fix Change-Id: I63260a953e54518b3084b62fccdb4af81315b229 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2022-05-10tests: replace pycodestyle with blackKlement Sekera1-94/+113
Drop pycodestyle for code style checking in favor of black. Black is much faster, stable PEP8 compliant code style checker offering also automatic formatting. It aims to be very stable and produce smallest diffs. It's used by many small and big projects. Running checkstyle with black takes a few seconds with a terse output. Thus, test-checkstyle-diff is no longer necessary. Expand scope of checkstyle to all python files in the repo, replacing test-checkstyle with checkstyle-python. Also, fixstyle-python is now available for automatic style formatting. Note: python virtualenv has been consolidated in test/Makefile, test/requirements*.txt which will eventually be moved to a central location. This is required to simply the automated generation of docker executor images in the CI. Type: improvement Change-Id: I022a326603485f58585e879ac0f697fceefbc9c8 Signed-off-by: Klement Sekera <klement.sekera@gmail.com> Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2021-03-15misc: finish removing deprecated cop APIDave Barach1-4/+7
Fix bug in crcchecker. It must be possible to remove a non-production .api file Type: improvement Signed-off-by: Dave Barach <dave@barachs.net> Change-Id: I00b953e58017cc53051e6f4d8a70403dce8219a0
2021-03-05api: crchcecker ignore version < 1.0.0 and outside of src directoryOle Troan1-70/+151
- For check patchset ignore files outside of src directory - For check patchset ignore files that have version < 1.0.0 - fix Pylint warnings - Modify vppapigen_crc to include version in JSON output Type: fix Signed-off-by: Ole Troan <ot@cisco.com> Change-Id: I171cf6397e129e2438b2a494c5656236a7810f7b
2020-12-15api: crchcecker ignore version < 1.0.0 and outside of src directoryOle Tr�an1-148/+70
This reverts commit 510aaa8911843206f7b9ff48b41e3c7b8c4a99fe. Reason for revert: failed in case of no api file in changeset. Change-Id: I2c6f01b25a35128df870418eef0008766bb590df Type: fix Signed-off-by: Ole Troan <ot@cisco.com>
2020-12-15api: crchcecker ignore version < 1.0.0 and outside of src directoryOle Troan1-70/+148
- For check patchset ignore files outside of src directory - For check patchset ignore files that have version < 1.0.0 - fix Pylint warnings - Modify vppapigen_crc to include version in JSON output Type: fix Signed-off-by: Ole Troan <ot@cisco.com> Change-Id: I93f7bebeeaeedc19b2b1e5e135ea1035517d7f76 Signed-off-by: Ole Troan <ot@cisco.com>
2020-09-23vppapigen: crcchecker: harmonize the in_progress markingAndrew Yourtchenko1-6/+14
The format for deprecation is "option deprecated" now, so harmonize the in-progress marking to logically be "option in_progress" At the same time recognize the legacy/erroneous types of marking, print the warning. Change-Id: If418dfadd69ffb112550164d63d13420e51cefd7 Type: fix Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2020-09-16vppapigen: crcchecker: report in-progress messagesAndrew Yourtchenko1-0/+6
in-progress messages do not give any API stability guarantees, by design, to allow easy iteration. Provide an easy way to know which messages are in-progress. If as a user you see "in-progress" message that you want to use in production, please contact the feature owner and discuss the path to removing the "in-progress" status before that. Change-Id: I27729995e26a70af373e642b871dbb5cc5526959 Type: improvement Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2020-09-16vppapigen: crcchecker: report deprecated messagesAndrew Yourtchenko1-5/+15
Report if the messages were marked as deprecated, but not yet deleted. Useful for building the release notes and comparing between the releases. Also, put the dict_compare() call into the report(), since latter always consumes the output of the former. Change-Id: Iceab3e94ff66da931a4669b612026bd162dd5d1a Type: improvement Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2020-05-09vppapigen: api crc checkerOle Troan1-0/+203
crcchecker is a tool for enforcement of the binary API. 1. Production APIs should never change. 2. An API can be deprecated across three release cycles. Release 1: API is marked as deprecated. option deprecated="vyy.mm"; option replaced_by="new_api_2"; Release 2: both old and new APIs are supported Release 3: the deprecated API is deleted. 3. APIs that are experimental / not released are not checked. An API message can be individually marked as in progress, by: option status="in_progress"; In the API definition. The definition of a "production API" is if the major version in the API file is > 0. extras/scripts/crcchecker.py --check-patchset # returns -1 if backwards incompatible extras/scripts/crcchecker.py --dump-manifest extras/scripts/crcchecker.py --git-revision v20.01 <files> extras/scripts/crcchecker.py -- diff <oldfile> <newfile> This patch integrates the tool in "make checkstyle-api". A future patch is required to integrate the tool in the verify job. I.e. this patch does not enable enforcement through Jenkins. Change-Id: I5f13c0976d8a12a58131b3e270f2dc9c00dc7d8c Type: feature Signed-off-by: Ole Troan <ot@cisco.com>