J'ai vu de nombreux projets ne mentionnant la licence que dans le fichier README ou dans un fichier LICENSE ou COPYING.
Votre logiciel est automatiquement couvert par le droit d'auteur, comme convenu dans le droit international. (Sauf si vous travaillez pour le gouvernement des États-Unis ou une autre organisation pour laquelle le droit d'auteur ne s'applique pas.)
Si quelqu'un utilise votre logiciel, il doit s'assurer de respecter l'accord de licence ou les restrictions d'utilisation équitable de ce qu'il peut faire.
Supposons que cette personne souhaite utiliser l'un des fichiers de votre distribution de code, ce qui nécessite bien sûr une copie et, par conséquent, la loi sur le droit d'auteur s'applique. Par défaut, ils n'ont PAS le droit d'utiliser votre logiciel conformément au droit d'auteur. Ce n'est que lorsqu'ils connaissent et respectent les restrictions de licence qu'ils sont autorisés à l'utiliser.
Donc, s’ils utilisent un fichier sans licence de logiciel, ils enfreignent la loi sur le droit d’auteur. Toutes les licences mentionnant quelque chose comme "L'avis de copyright ci-dessus et cet avis de permission doivent être inclus dans toutes les copies ou parties substantielles du logiciel", ils sont obligés de placer cette licence quelque part.
Cela peut être dans le fichier lui-même, ou lorsque j'ai utilisé le code en tant que bibliothèque, j'ai placé les parties pertinentes dans son propre répertoire et ajouté un "README" ou "LICENSE" dans ce sous-répertoire.
En bref, vous n'avez pas besoin de mettre la licence dans chaque fichier. Je pense que c'est exagéré. Il n'y a pas de protection juridique supplémentaire à cet égard. Cela aide un utilisateur en aval un peu, mais pas beaucoup.
Je pense que la tradition de beaucoup de métadonnées basées sur des commentaires (licence, date de création de chaque fonction, changelog, etc.) est une très vieille tradition qui existe parce qu’elle est facile à faire et qui est plus un talisman qu’utile.
Par exemple, le modèle Eclipse par défaut ajoute ce que je considère comme des métadonnées inutiles avant chaque fonction, ce qui est beaucoup mieux capturé par le contrôle de version. Mais cette pratique est courante dans de nombreux magasins.