Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
track "projects" not repositories #1233
This re-organizes SourceCred to track data based on the "project" it is a part of, rather than the GitHub repository it came from. This is motivated by a desire to add first-class support for multi-repository projects in SourceCred.
Currently, we have a very hacky approach: we merge multiple repositories worth of data into a combined git repository (via
This approach has a number of deficiencies:
This complexity was motivated by the fact that
Therefore, this PR starts from the assumption that each plugin will create atomic
In this PR, I haven't made an attempt to get the config to anything like it's final, fully-fleshed-out form. So the project config doesn't even have a field for plugin, since we're only loading GitHub data at the moment. I don't think there's a big advantage to adding the extra abstraction just yet; I'd rather experiment with this in its simplest form for a while. Just effecting the one change of indexing by project rather than repo is a big change. :)
The new load command is patterned off @wchargin's suggestions in #945 around making an API-ified SourceCred. Specifically, load command is implemented in
I'm definitely not suggesting the normal workflow for people who use the meta package should be different / simplified from those who use individual packages. I would instead consider the meta package as a way to install a bundle of commonly used and known-to-work combination of versions. One of these packages that is not the meta package (probably core) should be responsible for acting as the integration layer.