[
https://issues.apache.org/jira/browse/THRIFT-5940?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dmytro Shteflyuk updated THRIFT-5940:
-------------------------------------
Description:
h3. Problem
The Ruby SCA workflow currently runs RuboCop without regenerating Ruby output
first, so CI does not reliably lint freshly generated {{gen-rb}}} files.
As a result, changes in the Ruby generator can introduce RuboCop violations
without the RuboCop job in {{.github/workflows/sca.yml}} catching them.
h3. Reproduction
# Rebuild {{compiler/cpp}}
# Regenerate Ruby output for {{test/rb}}, {{tutorial/rb}}, and {{lib/rb}}
# Run RuboCop with the repository configuration
After regeneration, RuboCop inspected more files and reported offenses in
generated Ruby output.
h3. Actual Result
Generated Ruby code can violate the current RuboCop rules, and the existing SCA
workflow does not always catch that because it does not first regenerate the
Ruby artifacts that should be linted.
Observed generator issues included:
* extra blank lines around top-level generated blocks
* {{message=nil}} instead of {{message = nil}}
* trailing whitespace in generated service inheritance lines
* enum constant rendering with incorrect indentation
* blank RDoc lines emitted as {{# }} instead of {{#}}
h3. Expected Result
Generated Ruby code should be RuboCop-compliant as emitted by the generator
itself, and the SCA workflow should lint freshly generated Ruby output rather
than stale checked-in artifacts alone.
was:
h3. Problem
The Ruby SCA workflow currently runs RuboCop without regenerating Ruby output
first, so CI does not reliably lint freshly generated {code}gen-rb{code} files.
As a result, changes in the Ruby generator can introduce RuboCop violations
without the RuboCop job in {code}.github/workflows/sca.yml{code} catching them.
h3. Reproduction
# Rebuild {code}compiler/cpp{code}
# Regenerate Ruby output for {code}test/rb{code}, {code}tutorial/rb{code}, and
{code}lib/rb{code}
# Run RuboCop with the repository configuration
After regeneration, RuboCop inspected more files and reported offenses in
generated Ruby output.
h3. Actual Result
Generated Ruby code can violate the current RuboCop rules, and the existing SCA
workflow does not always catch that because it does not first regenerate the
Ruby artifacts that should be linted.
Observed generator issues included:
* extra blank lines around top-level generated blocks
* {code}message=nil{code} instead of {code}message = nil{code}
* trailing whitespace in generated service inheritance lines
* enum constant rendering with incorrect indentation
* blank RDoc lines emitted as {code}# {code} instead of {code}#{code}
h3. Expected Result
Generated Ruby code should be RuboCop-compliant as emitted by the generator
itself, and the SCA workflow should lint freshly generated Ruby output rather
than stale checked-in artifacts alone.
> Ruby generator should emit RuboCop-compliant code and SCA should lint
> generated Ruby
> ------------------------------------------------------------------------------------
>
> Key: THRIFT-5940
> URL: https://issues.apache.org/jira/browse/THRIFT-5940
> Project: Thrift
> Issue Type: New Feature
> Components: Ruby - Compiler
> Reporter: Dmytro Shteflyuk
> Assignee: Dmytro Shteflyuk
> Priority: Major
>
> h3. Problem
> The Ruby SCA workflow currently runs RuboCop without regenerating Ruby output
> first, so CI does not reliably lint freshly generated {{gen-rb}}} files.
> As a result, changes in the Ruby generator can introduce RuboCop violations
> without the RuboCop job in {{.github/workflows/sca.yml}} catching them.
> h3. Reproduction
> # Rebuild {{compiler/cpp}}
> # Regenerate Ruby output for {{test/rb}}, {{tutorial/rb}}, and {{lib/rb}}
> # Run RuboCop with the repository configuration
> After regeneration, RuboCop inspected more files and reported offenses in
> generated Ruby output.
> h3. Actual Result
> Generated Ruby code can violate the current RuboCop rules, and the existing
> SCA workflow does not always catch that because it does not first regenerate
> the Ruby artifacts that should be linted.
> Observed generator issues included:
> * extra blank lines around top-level generated blocks
> * {{message=nil}} instead of {{message = nil}}
> * trailing whitespace in generated service inheritance lines
> * enum constant rendering with incorrect indentation
> * blank RDoc lines emitted as {{# }} instead of {{#}}
> h3. Expected Result
> Generated Ruby code should be RuboCop-compliant as emitted by the generator
> itself, and the SCA workflow should lint freshly generated Ruby output rather
> than stale checked-in artifacts alone.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)