aboutcode-org / aboutcode-org/scancode-toolkit

RFC: Improve tabular output formats

Open
#3,043 7 comments 0 reactions 0 assignees View on GitHub
GUI and outputs must have Priority: high RFC
Dominant language
Python
Stars
2.6k
Forks
791
Avg merge
1d 12h
Merged PRs (30d)
5

Description

The current CSV output is a mess, albeit a convenient mess. We need something and quick. I suggest these short term and long term actions

## For now in v31:

- [x] #3047
The deprecation message should have a link to this PR.

## In v32:

- [ ] Create a new `--csv-file` option that would only list file level details in this way:
- file info columns, license expression, copyright, holder, urls, emails, "for_package".
- no line number columns, no package data
- exactly one row per file
- multiple values are joined with a line in a single cell
- long values that exceed offices tools limits are truncated
- [ ] Create a new `--csv-package` option that would only list package details:
- one row per package instance
- [ ] Create a new `--csv-dependency` option that would only list dependency details:
- one row per dependency instance
- [ ] Create a new `--csv-license` option that would only list file level license scan information, used for debugging and **hidden** from the CLI help:
- one row for each license match with diagnostic details for each match (rule, scores, etc)

- [ ] Drop the hidden `--csv` option in v32
- [ ] Add new XLSX option that creates a proper spreadsheet with multiples tabs
- files
- packages
- dependencies
- summary
- and possibly: file "package_data", file "license_detections"
where these essentially mirror the new csv-* options

For reference, we have these related issues:

- [ ] #2839 is the key issue and would drop CSV for XLSX
- [ ] #1551 shows that serialization in a row is always an issue
- [ ] #2249
- [ ] #1822
- [ ] #1398
- [ ] #829
- [ ] #830
- [ ] #2936 where @yahym uses a pivot table
- [ ] #1330 shows we have documentation issues
- [ ] #1654 ... combining JSONs to create a CSV is not easy

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.