Rajesh Vakkalagadda created SPARK-59752:
-------------------------------------------
Summary: dev/scalastyle drops GitHub annotations for scalastyle
checkers that report a column (e.g. nonascii)
Key: SPARK-59752
URL: https://issues.apache.org/jira/browse/SPARK-59752
Project: Spark
Issue Type: Bug
Components: Project Infra
Affects Versions: 4.4.0
Reporter: Rajesh Vakkalagadda
dev/scalastyle emits inline GitHub Actions `::error` annotations for scalastyle
violations by
matching two output shapes from `build/sbt scalastyle test:scalastyle`:
(a) error file=<path> message=<text> line=<n> [column=<n>]
(b) [error] <path>:<line>: <message>
Format (b)'s regex requires whitespace immediately after `:<line>:`:
^\[error\][[:space:]]+(/[^:[:space:]]+):([0-9]+):[[:space:]]+(.+)$
The surrounding comment explains this is deliberate: the absence of a
`:<col>:` is what
distinguishes an sbt-logger-reported scalastyle violation from a regular
Scala compiler error of
shape `[error] <path>:<line>:<col>: <msg>`. That assumption doesn't hold for
every checker,
though -- the `nonascii` checker's sbt-logger output includes a column:
[error] .../StringExpressionsSuite.scala:1065:17: nonascii.message
This line matches neither regex: format (a) doesn't match the `[error]
<path>:...` shape at all,
and format (b) fails because `17:` follows the line number instead of
whitespace. So no
annotation is emitted for it. The violation still fails the build correctly
(it's counted in
$ERRORS and printed to the raw job log), but it doesn't get the inline "Files
changed" annotation
this script's own comment says it exists to provide -- for this checker, a
contributor is back to
downloading the full job log to find the violation, the exact problem this
code was written to
avoid.
Reproduce: any scalastyle failure from a checker that reports a column
through the sbt-logger
path (nonascii is one; there may be others) run through dev/scalastyle's
GITHUB_ACTIONS
annotation block.
Fix direction: extend format (b)'s regex (or add a third branch) to also match
`[error] <path>:<line>:<col>: <message>` and pass the line (and optionally
the column) through to
emit_annotation, without misclassifying it as a Scala compiler error.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]