⚠️ Spring Framework переходит на DCO: что это означает для сообщества?Отвечает эксперт сообщества Spring АйО –
Михаил Поливаха.
–––Друзья, с нового года Spring Framework перешел с политики контрибьюшенов CLA (Contributor License Agreement) на DCO (Developer Certificate of Origin).
Что это значит для Вас всех?Несмотря на то, что напрямую эта новость касается тех людей, кто хотел когда-либо контрибьютить в Spring Framework, либо уже этим занимается - знать,
что такое DCO, должны все. Это коснется Всех. Огромное количество Software проектов использют модель DCO (например, ядро ОС Linux).
Меня, как контрибьютора в Spring Data, это коснулось напрямую.
Что такое CLA (Contributor License Agreement)?Видите ли, когда вы пишите любой код (не в рамках обязательств, например, по трудовому договору),
права на этот код принадлежат только Вам. Вы написали какой-то код и решили законтрибьютить в Spring — молодцы, хвалю Вас!
Только вот есть проблема - код этот принадлежит Вам, и если его вносить в кодовую базу Spring Framework, то Вы, потенциально, в суде, можете претендовать на то, что Spring Framework по праву Ваша разработка - вот так! И подобные кейсы в Open Source были, читайте ниже.
CLA это такой документ, который Вы раньше подписали бы, говорящий о том, что Вы передаете свой патч согласно Open Source лицензии проекта, например:
1. MIT
2. Apache License
3. GPL и другиеИными словами, с помощью CLA Spring Framework и другие проекты ранее прикрывали свое мягкое место. И это работало.
Но есть один нюанс...Что такое DCO (Developer Certificate of Origin)?Но тут есть проблема. Вы, конечно, готовы передать свой код в Spring Framework. Но представьте себе, что Вы создали свой коммит, при этом копировали решение из какого-то приватного API, который является проприетарным,
т.е. который является чьей-то интеллектуальной собственностью, и который не разрешается публиковать в public.И получается дилемма: вы как бы чью-то собственность без разрешения владельца (например, Вашего работодателя), выложили в публичный доступ. Если любой проект примет такое изменение (при этом это изменение не подписано с DCO), то Ваш работодатель имеет право претендовать на интеллектульную собственность этого Open Source проекта.
Из-за такой дилеммы когда-то был огромный
судебный процесс по Linux, и с тех пор этой ситуации жутко боятся.
Таким образом, DCO представляет собой маленький атрибут в сообщении
каждого коммита, например вот такой (в моем случае):
Author: mipo256 <email@gmail.com>
Date: EEE MMM dd HH:mm:ss yyyy Z
Added Sequence generation support
Signed-off-by: mipo256 <mail@gmail.com>
Подписывая каждый комит с DCO - вы говорите, что Вы не просто соглашаетесь с лицензией проекта, вы также: - утверждаете, что тот, кто написан после тега Signed-off-by имеет полное право сабмитить этот патч.
- утверждаете, что готовы передать код в рамках лицензии проекта (о чем писали ранее)
По итогу
Вы подтверждаете, что имеете право его вносить. Если потом возникнут вопросы, то обращаться будут уже не к проекту, а к Вам.ВыводSpring Framework и другие проекты в Open Source переходят на DCO. Если Вы все делаете и делали честно — вы просто добавляете фрагмент с подписью в сообщение каждого коммита и все.