Skip to content

Require Developer Certificate of Origin (DCO) #18350

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed

Conversation

bukka
Copy link
Member

@bukka bukka commented Apr 18, 2025

This adds requirement to confirm that the contributor has rights to contribute to the project.

@bwoebi
Copy link
Member

bwoebi commented Apr 18, 2025

Why would we start enforcing this now? Is there any point in this, doing this on a 30 year old project?

@bukka bukka force-pushed the dco branch 3 times, most recently from 329f614 to a2a48d6 Compare April 18, 2025 15:51
Signed-off-by: Jakub Zelenka <bukka@php.net>
@bukka
Copy link
Member Author

bukka commented Apr 18, 2025

@bwoebi This is meant just for the future commits and it should protect the project in cases where the contributed code is from unknown source to make sure that the project won't be liable for those contributions if the author does not have rights to contribute it. This should be probably the primary risk especially in the cases where the code is contributed under pseudonym and the code origin is not known - it doesn't mean that we do not trust such author - it's purely just a protection for the project.

@bukka
Copy link
Member Author

bukka commented Apr 18, 2025

I will post it to internals about it.

@kocoten1992
Copy link

project won't be liable, code is contributed under pseudonym and the code origin is not known, protection for the project.

For those who confused (like myself), this is probably sanction between countries..

@smalyshev
Copy link
Contributor

I'm not sure I understand how this helps. If somebody contributes the code they don't own, we still have a problem, and a "signed-off" line is not going to absolve us. Moreover, since it's added automatically, it has absolutely no information about the content of a particular commit, or represents an informed consent of the committed with whatever we ask them to agree - it only means the committer, at some time in the past, enabled an option in their git client. If you want the CLA-type protection, you need a CLA gateway and making people explicitly sign it (not that this absolves us either, but at least there's an explicit gateway that requires human acknowledgement). If you want to accept drive-by commits without CLA, then I don't see how signed-off line adds anything meaningful here.

By signing off, you confirm that you have the right to submit your code under the
PHP License.

How this is better than "by submitting a pull request to the PHP repository, you confirm that you have the right to submit your code under the PHP License."? It is equally strong protection-wise, but without extra steps.

@bukka
Copy link
Member Author

bukka commented Apr 19, 2025

Moreover, since it's added automatically, it has absolutely no information about the content of a particular commit, or represents an informed consent of the committed with whatever we ask them to agree - it only means the committer, at some time in the past, enabled an option in their git client. If you want the CLA-type protection, you need a CLA gateway and making people explicitly sign it (not that this absolves us either, but at least there's an explicit gateway that requires human acknowledgement). If you want to accept drive-by commits without CLA, then I don't see how signed-off line adds anything meaningful here.

I'm pretty sure that this has been analysed by various lawyers and what you are saying is most likely incorrect. It was created by Linux foundation (it's used for Linux kernel) and you will find it also in various RedHat projects (e.g. I recently contributed to pkcs11-provider that has got this rule) so it shows on its own that there was for sure some legal analysis and it was most like deemed sufficent. In fact this is becoming more popular than CLA because it doesn't require so much hassle for contributors but still gives enough legal assurance for the project.

How this is better than "by submitting a pull request to the PHP repository, you confirm that you have the right to submit your code under the PHP License."? It is equally strong protection-wise, but without extra steps.

I think explicit commit signed-off-by would be more likely considered as a personal attestation so it's a bit stronger. However considering the GitHub ToS, it might be ok. So I went for a much lighter variant to just update the contributing notes in #18356 .

I can already see that this PR would be difficult to introduce to this project so I'm going to close this as I don't think it would pass RFC.

@bukka bukka closed this Apr 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants