@@ -63,6 +63,7 @@ Table of Contents
6363* `API (experimental) <#api-experimental >`__
6464* `Analysis Exclusions <#analysis-exclusions >`__
6565* `Parsable Output <#parsable-output >`__
66+ * `GitHub Output <#github-output >`__
6667* `Contributing <#contributing >`__
6768
6869Usage
@@ -147,9 +148,10 @@ bytearray, ``with`` statement, asynchronous ``with`` statement, multiple context
147148unpacking assignment, generalized unpacking, ellipsis literal (``... ``) out of slices, dictionary
148149union (``{..} | {..} ``), dictionary union merge (``a = {..}; a |= {..} ``), builtin generic type
149150annotations (``list[str] ``), function decorators, class decorators, relaxed decorators,
150- ``metaclass `` class keyword, pattern matching with ``match ``, union types written as ``X | Y ``, and
151- type alias statements (``type X = SomeType ``). It tries to detect and ignore user-defined functions,
152- classes, arguments, and variables with names that clash with library-defined symbols.
151+ ``metaclass `` class keyword, pattern matching with ``match ``, union types written as ``X | Y ``, type
152+ alias statements (``type X = SomeType ``), and type alias statements with lambdas/comprehensions in
153+ class scopes. It tries to detect and ignore user-defined functions, classes, arguments, and
154+ variables with names that clash with library-defined symbols.
153155
154156Caveats
155157=======
@@ -209,18 +211,18 @@ Examples
209211
210212 % ./vermin.py vermin
211213 Minimum required versions: 3.0
212- Incompatible versions: 2
214+ Incompatible versions: 2.x
213215
214216 % ./vermin.py -t=3.3 vermin
215217 Minimum required versions: 3.0
216- Incompatible versions: 2
218+ Incompatible versions: 2.x
217219 Target versions not met: 3.3
218220 % echo $?
219221 1
220222
221223 % ./vermin.py --versions vermin
222224 Minimum required versions: 3.0
223- Incompatible versions: 2
225+ Incompatible versions: 2.x
224226 Version range: 2.0, 2.6, 2.7, 3.0
225227
226228 % ./vermin.py -v examples
@@ -233,7 +235,7 @@ Examples
233235 !2, 3.4 /path/to/examples/abc.py
234236 /path/to/examples/unknown.py
235237 Minimum required versions: 3.4
236- Incompatible versions: 2
238+ Incompatible versions: 2.x
237239
238240 % ./vermin.py -vv /path/to/examples/abc.py
239241 Detecting python files..
@@ -243,7 +245,7 @@ Examples
243245 'abc.ABC' requires !2, 3.4
244246
245247 Minimum required versions: 3.4
246- Incompatible versions: 2
248+ Incompatible versions: 2.x
247249
248250 % ./vermin.py -vvv /path/to/examples/abc.py
249251 Detecting python files..
@@ -253,7 +255,7 @@ Examples
253255 L2: 'abc.ABC' requires !2, 3.4
254256
255257 Minimum required versions: 3.4
256- Incompatible versions: 2
258+ Incompatible versions: 2.x
257259
258260 % ./vermin.py -f parsable /path/to/examples/abc.py
259261 /path/to/examples/abc.py:1:7:2.6:3.0:'abc' module
@@ -432,6 +434,19 @@ That means that the final result is ``!2`` and ``3.4``, which is shown by the la
432434
433435 :::!2:3.4:
434436
437+ GitHub Output
438+ =============
439+
440+ The GitHub output format has the same output as `parsable <#parsable-output >`__, but the lines are
441+ formatted as GitHub Actions annotations. This let's you see minimum version violations as annotated
442+ errors directly from a GitHub pipeline.
443+
444+ For annotations to appear in a pull request:
445+
446+ - Vermin must be called from a GitHub Actions workflow triggered by a PR
447+ - Vermin must be called with current working directory as the root of the repository
448+ - Only violations found in files changed in the PR will show up
449+
435450Contributing
436451============
437452
0 commit comments