Skip to content
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

Declare subprojects and support them #661

Open
carmenbianca opened this issue Feb 6, 2023 · 4 comments
Open

Declare subprojects and support them #661

carmenbianca opened this issue Feb 6, 2023 · 4 comments
Labels
enhancement New feature or request priority/low Low priority

Comments

@carmenbianca
Copy link
Member

Related to #163, maybe supersedes it.

When we've finished the switch to REUSE.yaml, we could add an tag in the root REUSE.yaml to declare subprojects. Those subprojects would then (recursively?) have their own, independent REUSE configuration.

@mxmehl
Copy link
Member

mxmehl commented Feb 8, 2023

So you mean that a REUSE.yaml could describe a submodule?

Would it suffice to make the submodule REUSE-compliant (with whatever annotation method we support) and run the lint with the --include-submodules flag?

The issue you linked to seems to originate from the problem that the linter does not take the submodule's dep5 file as a source for information, but the parent project's one, right?

@carmenbianca
Copy link
Member Author

Not really. This is separate from Git submodules and Meson subprojects, although we could probably generalise those into this proposal.

Rather, this aims to tackle mono-repos with subprojects. See, for example, https://github.com/OCA/partner-contact/. Every subdirectory in the root directory (except setup/) is its own project that should have its own LICENSES/ directory etc etc etc. In short, each directory should be treated as its own project/repository, and I think we can configure that using REUSE.yaml. In the future.

Of course, if the world were a better place, all those projects would have their own repository, but that's not the world we live in.

@carmenbianca carmenbianca added enhancement New feature or request priority/low Low priority labels Feb 8, 2023
@pmhahn
Copy link

pmhahn commented Jun 30, 2023

We have a similar issue with Univention Corporate Server (UCS): it is a mono-repository consisting of 128+ sub-packages, each in its own 2-level deep sub-directory. As UCS is based on Debian GNU/Linux each sub-package is its own Debian package having a valid dep5-compliant debian/copyright file for the files of that sub-package.
While reuse already has the capability to bulk describe licences using a single .reuse/dep5 file, that would require merging those files into one file and prefixing each pattern with the original sub-directory-path. That would lead to duplicating the information, which then needs to be maintained in two locations and easily gets out-of-sync. Removing the 128 debian/copyright files is not an option as they are required for Debian packages.

A mechanism to include sub-files like include */*/debian/copyright with automatic path mangling would be appreciated.

@carmenbianca
Copy link
Member Author

@pmhahn To set expectations, it'll be a little while before we tackle this. There's a lot of plumbing that needs to be done before work can be started on this.

But thank you for your example use-case!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request priority/low Low priority
Projects
None yet
Development

No branches or pull requests

3 participants