Skip to content

more flexibility in keeping "sloppy" parts of existing license header #1611

@planetf1

Description

@planetf1

If you are submitting a bug, please include the following:

  • summary of problem
  • gradle or maven version
  • spotless version
  • operating system and version
  • copy-paste your full Spotless configuration block(s), and a link to a public git repo that reproduces the problem if possible
  • copy-paste the full content of any console errors emitted by gradlew spotless[Apply/Check] --stacktrace

If you're just submitting a feature request or question, no need for the above.

  • Spotless 6.16.0
  • Gradle 8.0.1
  • MacOS Ventura

    spotless {
        java {
            licenseHeader 'SPDX-License-Identifier: Apache-2.0'
            ignoreErrorForStep('LicenseHeaderStep')
        }
    }
  1. Regex

Our large codebase has some variations in copyright specifically in terms of spaces between comment chars & the license text

So our checkstyle config (not merged, just trying to find a good tool to add this check since we migrated from maven) becomes

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
        "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
        "https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">
    <module name="TreeWalker">


        <module name="Regexp">
            <property name="format" value="/\*[ ]{1,}SPDX-License-Identifier: Apache-2\.0"/>
        </module>

        <module name="Regexp">
            <property name="format" value="/\*[ ]{1,}Copyright Contributors to the( ODPi)? Egeria project"/>
        </module>
    </module>
</module>

That seems good enough, so I'm wondering if I can use spotless instead, as it offers more functionality which we may use in future

Obviously we have have a preferred spacing (for auto fix) but want to tolerate additional spaces

I tried without the comments, but then all files fail the check

Interestingly I also wanted to only report warnings, and note that though multiple errors on a project will now be reported, in a multi module build, the build will terminate as that project build fails (unless --continue is used).

Finally, in the example above I'd need two license header steps, but this seems to not be allowed?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions