Hi Claude, thanks for the thorough explanations ....
Am 11.05.24 um 09:45 schrieb Claude Warren:
We need to support RAT-7 but to do so I think will require some data design
changes. Currently we have License family and License as separate
entities. At one time I thought these should be the same, but I think now
that it is a reasonable segregation. License files can exclude families
but this is too big a segregation. for example to support the ASF licenses
we should:
- Have a single file that defines all the ASF licenses under the family
"AL" (Though I would like to change this to ASF)
- Each license version would be listed as a separate license in the "AL"
family.
- Licenses have Unique IDs. make the license ID for the AL licenses
"ASF<version>, (e.g. ASF1.0, ASF1.1, and ASF2.0)
+1I hesitated concerning the ASF-change, but https://spdx.org/licenses/Apache-2.0.html does not mention the "AL" is being bound to the license itself. Thus it is only a change in RAT, which I'm fine with personally.
<snip>
create a licenses section in the configuration.
--licenses : a list of files to be read as license files.
--licenses-approved : a list of license IDs to approve.
--licenses-approved-file : A file containing license IDs to approve.
--licenses-no-default : An enumeration of DEF (do not load license
definitions), APPROVAL (do not load default license approvals)
We should also change
- --list-families to --licenses-list-families
- --list-licenses to --licenses-list
The above will group all the license commands into one section of the help
output.
The Default will be the list of ASF approved licenses.
Other CLI changes
create an "input" section that defines what files will be processed
- change --exclude to --input-exclude (exclusion to be defined by
.github exclude pattern)
- change --exclude-file to --input-exclude-file
- add --input-exclude-no-default : to disable default exclusion.
- add --input-exclude-scm : an enumeration of known SCM exclusion files
formats based on the SCM (e.g. github, svn) that would apply exclusions
found by those files in the input.
I'm not sure if we really want to open that field now that git seems to used by most of our consumers/other ASF projects - personally I'd be fine with the current gitIgnoreParser, thus I'd only have a CLI option to disable the scm-ignore parser at all.
- add --input-file : specify a file to read rather than the input file.
- remove --scan-hidden-directories as that would be the default if
--input-exclude-no-default were specified and no other filters were added.
Add exclusion files to the same repository that has the license definitions
and enable community support
create an "edit" section to describe how any edits on the files will take
place
- change --copyright to --edit-copyright to add a copyright message
- change --addLicense to --edit-license <file> : the optional <file>
specifies the text to insert with ${copyright} in the text replaced with
the --edit-copyright value or empty if --edit-copyright is not specified.
- change --force to --edit-overwrite : to better describe what it does.
create an "output" section to describe how the output will be handled.
- change --out to --output-file
- change --xml to --output-xml
- change --stylesheet to --output-stylesheet
- change --standard to --output-standard
- change --archive to --output-archive
expand the help section to provide more detailed help and to provide links
to specific documentation.
- add --help-input
- add --help-licenses
- add --help-output
- add --help-edit
- add -? for help
Deprecate ALL single letter options. Deprecate all other long options.
Add a warning that a deprecated command is being used.
Add the ability to use the minimum characters necessary to differentiate
the commands (e.g. --help-i for --help-input, or --input-f for
--input-file). This is/was supported by the commons-cli library and should
be a simple switch to activate.
+1 Thanks for the logical grouping of options for the CLI module.Seems we need to find a solution to get these options into the site report via https://issues.apache.org/jira/projects/RAT/issues/RAT-374
Thanks, Phil
OpenPGP_signature.asc
Description: OpenPGP digital signature
