Hi Robert,

Thanks for this work !

As you said, it's pretty hard to do all by magic, but any "tool" that
can help is welcome.

I would also remind any contributor that it's important to update
LICENSE when a contributor copies code from another project. So I hope
we would not need this gradle tasks too often :)

Regards
JB

On Wed, Jan 29, 2025 at 12:06 PM Robert Stupp <[email protected]> wrote:
>
> Hi,
>
> recently there are discussions related to the 0.9.0rcX releases about
> properly mentioning code/files from other projects.
>
> Although there is no technical solution to automatically identify such
> code/files (unless you have a big machinery just for that topic...), I
> think we can at least help ourselves here a little bit.
>
> The idea is to have a "magic word" added to files that have been taken
> from other projects. That "magic word" can then be used to check whether
> the file is mentioned in `LICENSE`.
>
> Proposal is to have that check the mention of those files during the
> regular build (Gradle `check` task).
>
> The only convention is to use the same "magic word" in those files. It
> doesn't matter where that appears in the file - it just has to appear.
>
> In other words: when you copy a file (from a source with a compatible
> license!) add that "magic word" CODE_COPIED_TO_POLARIS somewhere.
>
> The necessary build code is up in this PR
> https://github.com/apache/polaris/pull/904
>
> A POC with the "magic word" added to files (based on ) is available in
> this branch: https://github.com/snazy/polaris/tree/copied-add-magic - a
> `./gradlew check --continue` (or just the necessary tasks `./gradlew
> checkForCopiedCode checkCopiedCodeMentionsExist --continue`) fails as
> expected as the LICENSE does not include the marked files (see example
> snippet below). A "reverse check" (mentioned files don't exist) is also
> there.
>
> There's also a rudimentary content-type detection to exclude known
> binary files (e.g. image/png) from being scanned for the "magic word".
>
> Robert
>
>
>
>
>  > Task :checkCopiedCodeMentionsExist FAILED
> The following 2 files mentioned in LICENSE do not exist, fix the LICENSE
> file.
>
> * foo/bar/baz
> * left/over/mention/of/a/file
>
>  > Task :checkForCopiedCode FAILED
> The following 29 files have the CODE_COPIED_TO_POLARIS marker but are
> not mentioned in LICENSE, add those in an appropriate section.
>
> * server-templates/api.mustache
> * server-templates/apiService.mustache
> * server-templates/apiServiceImpl.mustache
> * server-templates/bodyParams.mustache
> * server-templates/formParams.mustache
> * server-templates/headerParams.mustache
> * server-templates/pojo.mustache
> * server-templates/queryParams.mustache
> * site/layouts/community/list.html
> * site/layouts/docs/baseof.html
> * site/layouts/home/baseof.html
> * site/layouts/home/list.html
> * site/layouts/partials/community_links.html
> * site/layouts/partials/favicons.html
> * site/layouts/partials/head.html
> * site/layouts/partials/navbar.html
> * site/layouts/partials/sidebar-releases-tree.html
> * site/layouts/partials/sidebar-releases.html
> * site/layouts/partials/trimZeroPrefix.html
> * site/layouts/shortcodes/redoc-polaris.html
> * spec/rest-catalog-open-api.yaml
>
>
>
> --
> Robert Stupp
> @snazy
>

Reply via email to