Update and restructure License Compliance documentation as License Finder is replaced
### Problem to solve LicenseFinder is being replaced as part of https://gitlab.com/groups/gitlab-org/-/epics/8072, and the [License Compliance docs](https://docs.gitlab.com/ee/user/compliance/license_compliance/) need to be adjusted. ### Further details The following sections are updated: - Introduction - `To detect the licenses in use, License Compliance uses the License Finder scan tool [..]` - `For the job to activate, License Finder needs to find a compatible package definition in the project directory. [..]` - `If the license compliance report doesn’t have anything to compare to, no information is displayed in the merge request area. That is the case when you add the license_scanning job [..]` - `The results are saved as a License Compliance report artifact that you can later download and analyze.` - Supported languages and package managers - Enable License Compliance - All sub-sections up to `Migration from license_management to license_scanning`. - Running License Compliance in an offline environment - Troubleshooting The following sections remain unchanged: - Chunks of the introduction - License expressions - License list - Policies - Enabling License Approvals within a project - Warnings License Scanning now relies on Dependency Scanning, at least until we implement the [SBOM generators](https://gitlab.com/groups/gitlab-org/-/epics/8206). We can thus refer to the following doc sections of [Dependency Scanning docs](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/): - [Requirements](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#requirements) - [Supported languages and package managers](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#supported-languages-and-package-managers) - [Configuration](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#configuration) - [Running dependency scanning in an offline environment](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#running-dependency-scanning-in-an-offline-environment) - [Warnings](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#warnings) - [Troubleshootings](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#troubleshooting) (The other sections of Dependency Scanning docs are specific to detecting and reporting vulnerabilities.) ### Proposal 1. Split out the docs on the **current**/"old" method of License Scanning to its own page. - Rewrite the `License Compliance` page to cover **only** that topics. That is, the page would describe the what, why, and how, of License Compliance. It would link to but **NOT** explain License Scanning. 1. Create a new page (or pages) to document the "new" method. - Explain that Dependency Scanning (DS) is a prerequisite. That way, we don't have to link to the specific DS sections. We only need to document anything that's specific to the "new" method. - Explain when the "new" method is active. 1. Update docs when the "new" method becomes the default. - State that the "new" method is now the default, and the "old" method is deprecated. - Remove the doc section that explains when the "new" method is active. - Document how to enable to the "old" method. 1. Update docs when "old" method is no longer supported. - Remove the doc page that covers the "old" method. See https://gitlab.com/gitlab-org/gitlab/-/issues/384936#note_1232271457 When the "new" method is introduced, it's active when these two conditions are met: - The Dependency Scanning CI template is included. There are jobs that upload Cyclone SBOMs. - The License Scanning CI template is NOT included. There are no jobs uploading License Scanning artifacts. See migration plan in https://gitlab.com/gitlab-org/gitlab/-/issues/383521#note_1231233552 Definitions - The "new" method is the License Scanning SBOM Scanner. It uses the Cyclone SBOMs uploaded by the Dependency Scanning jobs, and thus requires the Dependency Scanning CI template. - The "old" method is the License Scanning Artifact Scanner. It uses the License Scanning artifacts uploaded by the `license_scanning` job (which runs [`license-finder`](https://gitlab.com/gitlab-org/security-products/analyzers/license-finder/)), and thus requires the License Scanning CI template. ### Who can address the issue Anyone ### Other links/references <!-- E.g. related GitLab issues/MRs -->
epic