{"id":79478,"date":"2026-04-23T20:33:52","date_gmt":"2026-04-23T20:33:52","guid":{"rendered":"https:\/\/owncloud.com\/?p=79478"},"modified":"2026-04-23T21:10:52","modified_gmt":"2026-04-23T21:10:52","slug":"we-killed-our-own-cla-heres-why-thats-a-good-thing","status":"publish","type":"post","link":"https:\/\/owncloud.com\/de\/blogs\/we-killed-our-own-cla-heres-why-thats-a-good-thing\/","title":{"rendered":"We killed our own CLA. Here\u2019s why that\u2019s a good thing."},"content":{"rendered":"<p>The old ownCloud Contributor License Agreement was aggressive.<br \/>\nRead the text:<br \/>\n\u201cYou hereby transfer to ownCloud your entire right, title, and interest (including all your rights under copyright) in the changes and enhancements to the Contribution.\u201d<br \/>\nFull copyright assignment. You write the code, ownCloud GmbH owns it.<\/p>\n<p>The CLA existed for a business reason: dual-licensing. AGPL for community, proprietary for enterprise. That model had its time, but is no longer necessary for where the project is going. The power asymmetry the CLA created made contributors uncomfortable, and they were right to be.<\/p>\n<p>As of May 5th, 2026, the CLA will be retired. We\u2019re replacing it with the Developer Certificate of Origin (DCO):<\/p>\n<ul>\n<li>Per-commit attestation of origin.<\/li>\n<li>You add a Signed-off-by line.<\/li>\n<li>You keep your copyright.<\/li>\n<\/ul>\n<p>The DCO was invented by the Linux kernel project in 2004. It\u2019s the standard for Apache 2.0 projects, which <a href=\"https:\/\/owncloud.com\/infinite-scale\/\">ownCloud Infinite Scale (oCIS)<\/a>, our Go-based successor to the PHP server (ownCloud Classic), is.<br \/>\nTo read more about it: <a href=\"https:\/\/github.com\/apps\/dco\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/apps\/dco<\/a><\/p>\n<p>Previously signed CLAs?<br \/>\nStill valid. No action needed. New contributions just need DCO sign-off.<br \/>\nCorporate contributor?<br \/>\nThe DCO\u2019s per-commit nature makes legal approval easier than a blanket CLA.<br \/>\nWere you holding back because the CLA felt extractive?<br \/>\nThat barrier is gone.<\/p>\n<p>One important and interesting nuance: the old CLA is what makes our planned legally possible. Because ownCloud GmbH owns the copyright on CLA-covered contributions, we can change licenses where we hold 100% copyright.<br \/>\nIt is interesting that the thing that we are retiring is the what gave us the ability to do so in the first place.<br \/>\nWith the DCO, future contributors retain their . We\u2019re making a one-way door decision.<br \/>\nDeliberately.<\/p>\n<p>DCO enforcement rolls out repo by repo, starting with oCIS. The new Open Source Program Office (OSPO) decides the timing.<br \/>\nThe power asymmetry is gone, and if you&#8217;ve been searching for a project to use and contribute to, this is the invitation\/time and this is the project.<\/p>\n<p>Tomorrow: PHP 8.3 for Classic<\/p>\n<div class=\"et_pb_module et_pb_post_content et_pb_post_content_0_tb_body\">\n<p><em>This is part 3 of this blog post series. <\/em><br \/>\n<em>See the earlier posts:<\/em><\/p>\n<ol>\n<li><em><a href=\"https:\/\/owncloud.com\/blogs\/a-re-introduction-to-the-owncloud-community\/\">A (re)-introduction to the ownCloud community<\/a>.<\/em><\/li>\n<li><em><a href=\"https:\/\/owncloud.com\/blogs\/what-happens-when-you-fork-twice-get-acquired-and-keep-shipping-anyway\/\">What happens when you fork twice, get acquired, and keep shipping anyway<\/a><\/em><\/li>\n<\/ol>\n<\/div>\n<div class=\"et_pb_module et_pb_code et_pb_code_2_tb_body\"><\/div>\n<div class=\"et_pb_module et_pb_code et_pb_code_3_tb_body\">\n<div class=\"et_pb_code_inner\">\n<div class=\"social-sharing social-sharing--footer\"><\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;re retiring the ownCloud CLA and adopting the Developer Certificate of Origin. Here&#8217;s the reasoning and why contributors should take notice.<\/p>\n","protected":false},"author":56,"featured_media":79486,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[43,333,344],"tags":[],"class_list":["post-79478","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-community","category-opensource"],"acf":[],"_links":{"self":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts\/79478","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/users\/56"}],"replies":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/comments?post=79478"}],"version-history":[{"count":6,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts\/79478\/revisions"}],"predecessor-version":[{"id":79488,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts\/79478\/revisions\/79488"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/media\/79486"}],"wp:attachment":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/media?parent=79478"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/categories?post=79478"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/tags?post=79478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}