Legal Licenses est un utilitaire permettant de générer un seul fichier texte contenant toutes les informations importantes sur les dépendances d'un projet. Dans certaines organisations, l'utilisation de logiciels Open Source (OSS) est strictement contrôlée et auditée et nécessite que chaque bibliothèque OSS soit simplement documentée.
Cet utilitaire générera un fichier licenses.md
à la racine de votre projet contenant une liste de toutes les dépendances, la version actuellement installée, le commit sha, sa description, sa page d'accueil, la liste des licences et le texte complet de la licence s'il est présent dans le fichier licenses.md. code source de dépendance directement. Il reçoit ces informations du fichier composer.lock
, vous devez donc avoir exécuté une composer update
ou composer install
au moins une fois pour pouvoir utiliser cet utilitaire.
Si vous avez besoin d'un utilitaire comme celui-ci pour votre lieu de travail, il y a de fortes chances que vous en ayez besoin pour plus d'un seul projet. Par conséquent, la manière la plus simple et recommandée d’installer cet utilitaire consiste à utiliser un package de composition global :
composer global require comcast/php-legal-licenses
Si vous avez installé php-legal-licenses globalement via composer, vous devriez pouvoir exécuter le script dans n'importe lequel de vos projets. Notez que vous devez avoir exécuté composer update
ou composer install
au moins une fois pour créer un fichier composer.lock
.
$ cd /path/to/my/project
$ which php-legal-licenses
> ~/.composer/vendor/bin/php-legal-licenses
$ php-legal-licenses generate
> Generating Licenses file...
> Done!
Vous pouvez également masquer la version des dépendances avec l'option --hide-version
:
$ php-legal-licenses generate --hide-version
Vous pouvez générer un fichier csv avec l'option --csv
:
$ php-legal-licenses generate --csv
Ou utilisez les deux options :
$ php-legal-licenses generate --hide-version --csv
Voici un extrait du fichier de licences qui serait généré pour cet utilitaire lui-même :
# Project Licenses
This file was generated by the Legal Licenses utility. It contains the name, version and commit sha, description, homepage, and license information for every dependency in this project.
## Dependencies
### psr/log (Version 1.0.2 | 4ebe3a8)
Common interface for logging libraries
Homepage: https://github.com/php-fig/log
Licenses Used: MIT
Copyright (c) 2012 PHP Framework Interoperability Group
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
### symfony/console (Version v3.3.6 | b087823)
Symfony Console Component
Homepage: https://symfony.com
Licenses Used: MIT
...