Adding the LLVM license file to the monorepo root


The llvm-project monorepo ( is currently missing a top-level license file. It would be nice if there was one so that anyone unfamiliar with layout of the monorepo could find it right away.

I have put up a patch that adds a LICENSE.txt file to the monorepo root: The file is copy of LICENSE.txt from the llvm/ directory. Are there any objections to adding it?


Yes, there are objections to adding a top-level LICENSE.txt, which I also mentioned in the review.

It’s obvious from the .gitignore discussion that different downstream projects handle their additions to /llvm-project in different ways. If /llvm-project adds a top-level LICENSE.txt file, that creates requirements on how downstream projects manage the licenses for their additions; specifically it requires a LICENSE.txt file in each directory added to the top level. And probably messes with how people have to handle individual files added at the top level.

While I understand your motivation is to simplify things, actually it doesn’t; it changes how the license applies downstream, and that should not be done without proper discussion and advance notice. In particular this is something the LLVM Foundation should initiate, if it feels this is appropriate, and AFAIK you are not part of the Foundation. Sorry if that sounds harsh, but legalities are a minefield.


Hi Paul,

Thanks for your response! I think that you’re right, and it would make sense for the LLVM Foundation to drive this kind of change to ensure this is done with correct legal compliance. I will close my patch and will reach out the Foundation instead.

I would like to offer a different perspective of why adding a top-level license file would benefit some downstream monorepo repositories. Yesterday, Apple published a prototype downstream monorepo that can be used for building Swift: . One of the issues we encountered before publishing was the lack of a top-level license file in LLVM’s monorepo root SVN repo, as we created our own downstream fork for the monorepo root on Github as well ( Before we could publish it, we had to add a top-level LLVM LICENSE.txt file to our fork of the monorepo root, to ensure that the repository was licensed. And even though the monorepo root repository will go away once transitions to Github, we will still need a top-level license file in our downstream fork of llvm-project, to ensure that we aren’t publishing files that appear to be unlicensed on Github (specifically the top-level config files in llvm-project).