The blog of dlaa.me

Posts from August 2026

These rules are NOT made to be broken [Don't overlook a project's contribution guidelines!]

If you've been sent a link to this post, it's probably because you submitted a pull request for an open source project I maintain and those changes appear to violate one or more guidelines in CONTRIBUTING.md.

Contributions that do not comply with a project's standards will not be accepted.

A bit of context:

CONTRIBUTING.md is a text file located in the root of a repository that outlines the project's expectations. You can learn more on the GitHub page "Setting guidelines for repository contributors".

The CONTRIBUTING.md file for the markdownlint library is representative of my projects. Some of these guidelines make the process easier for others and some make it easier for me. I don't expect everyone to align 100%, but I do ask people to respect the process.

A thing that comes up periodically is someone opening a pull request without first describing the change they're proposing. I've used a paragraph like this for many years:

Start by opening an issue, whether to identify a problem or outline a change. That issue should be used to discuss the situation and agree on a plan of action before writing code or sending a pull request. Maybe the problem isn't really a problem, or maybe there are more things to consider. If so, it's best to realize that before spending time and effort writing code that gets rejected.

It's easier to discuss solutions in the abstract - and it's also less frustrating. Some "obviously broken" things have good reasons for being that way... but you won't know unless you ask.

Another thing that's coming up more frequently is violations of the policy banning contributions from large language models (also known as "LLMs" or, more colloquially, "AI"). I've used a paragraph like this for many years:

In order to maintain the permissive MIT license this project has, all contributions must be your own and released under the MIT license. Code you add should be an original work and should not be copied from elsewhere. Reusing code from a different project, Stack Overflow, etc. is not allowed. The use of tools such as Copilot, ChatGPT, Claude, etc. that produce output from a large language model (LLM) is not allowed because LLMs reuse code from other projects.

Regardless of how one feels about the ethical, social, or environmental implications of LLMs, it's clear that using a tool designed to reproduce code from sources with conflicting licenses is NOT compatible with maintaining a single license for a project.

The MIT license used by my projects is very permissive and allows others a great deal of freedom. But the software ecosystem includes a variety of other licenses and some impose significant limitations. Some are even "viral" with regard to projects reusing their code.

To eliminate the risk of introducing incompatibly-licensed code into projects, LLM contributions with unknown pedigree cannot be accepted.

Although some contributors of LLM-generated code have been forthcoming about it, others have not. As a result, I err on the side of safety/integrity and will default to rejecting PRs when in doubt.

My apologies in advance to any who feel they are unreasonably affected.