Я видел много проектов, в которых упоминается только лицензия в файле README или в файле LICENSE или COPYING.
Ваше программное обеспечение автоматически защищено авторским правом в соответствии с международным законодательством. (Если вы не работаете в правительстве США или какой-либо другой организации, авторские права на которую не распространяются.)
Если кто-то использует ваше программное обеспечение, он должен соблюдать лицензионное соглашение или соблюдать ограничения в отношении добросовестного использования в отношении своих действий.
Предположим, что этот человек хочет использовать один из файлов в вашем дистрибутиве кода, который, конечно, требует копирования, и, следовательно, применяется закон об авторском праве. По умолчанию они НЕ имеют права использовать ваше программное обеспечение в соответствии с законом об авторских правах. Только когда они знают и соблюдают лицензионные ограничения, им разрешается его использовать.
Поэтому, если они используют файл без лицензии на программное обеспечение, они нарушают закон об авторских правах. Поскольку во всех лицензиях указано что-то вроде «Вышеуказанное уведомление об авторских правах и это уведомление о разрешении должны быть включены во все копии или существенные части Программного обеспечения», они обязаны где-то разместить эту лицензию.
Это может быть в самом файле, или когда я использовал код в качестве библиотеки, я поместил соответствующие части в его собственный каталог и добавил «README» или «LICENSE» в этот подкаталог.
Короче говоря, вам не нужно помещать лицензию в каждый файл. Я думаю, что это излишне. При этом нет никакой дополнительной правовой защиты. Это немного помогает нижестоящему пользователю, но не сильно.
Я думаю, что традиция большого количества основанных на комментариях метаданных (лицензия, дата создания каждой функции, журнал изменений и т. Д.) - это очень старые традиции, которые существуют потому, что их легко сделать, и которые являются скорее талисманом, чем полезными.
Например, шаблон Eclipse по умолчанию добавляет то, что я считаю бесполезными метаданными, перед каждой функцией, которая, я думаю, намного лучше фиксируется контролем версий. Но такая практика распространена во многих магазинах.