| Summary: | 3rd party dependency management using Git and Orbit | ||
|---|---|---|---|
| Product: | Community | Reporter: | Gunnar Wagenknecht <gunnar> |
| Component: | Architecture Council | Assignee: | eclipse.org-architecture-council |
| Status: | CLOSED MOVED | QA Contact: | |
| Severity: | enhancement | ||
| Priority: | P3 | CC: | david_williams, denis.roy, dj.houghton, glyn.normington, janet.campbell, john.arthorne, mike.milinkovich, mober.at+eclipse, wayne.beaton |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
|
Description
Gunnar Wagenknecht
I strongly +1 what is proposed here. Actually, I would even commit to maintaining CVS indefinitely if it is used exclusively for Orbit 3rd party packages. The overhead of maintaining CVS for a single project would likely pale compared to the ease of removing code that doesn't belong. Also, I can't help but assume there is wasted disk space from the same 3rd party code appearing in project repos. +1 I like the idea of retaining all approved third party libraries in one central location such as Orbit. In addition to the benefits cited, it also reduces the risk that a Project uses a version of a third party library that has not been fully approved. Janet Allowing (or ... forcing?) Orbit to continue to use CVS lines up well with some discussion and conclusions in bug 349048. Forcing everyone to put 3rd party code into Orbit's CVS repository (even if not a "shared" 3rd party bundle) is a little different. In fact, I think there are some projects that have a slightly different version of an Orbit bundle in their repos, for some legacy reasons, never intended to be "shared" by others. (Such as see CQ 3932). Some of this type of complication, though, could be handled by having a "non-shared" portion of Orbit's repo ... which would not be that much different that saying all projects should continue to use CVS for their (binary) 3rd party dependencies, if not in Orbit. Adding Glyn, as I've heard Virgo has about 150 3rd party bundles "not in Orbit" ... so, they'd likely deserve (require?) similar "solution" as Orbit ... that is, keep binary 3rd party bundles in their own Virgo specific CVS repository. (I say this not even knowing where they currently are ... SVN? Git already?) (In reply to comment #4) > Adding Glyn, as I've heard Virgo has about 150 3rd party bundles "not in Orbit" > ... so, they'd likely deserve (require?) similar "solution" as Orbit ... that > is, keep binary 3rd party bundles in their own Virgo specific CVS repository. > (I say this not even knowing where they currently are ... SVN? Git already?) Virgo is entirely Git. (In reply to comment #3) > Forcing everyone to put 3rd party code into Orbit's CVS repository (even if not > a "shared" 3rd party bundle) is a little different. Well, it's easier for webmaster to handle CVS when it comes to removing things. Why not centralize all this in one single place? That simplifies administration even further. I think it's also a big improvement for the Eclipse community at large. All 3rd party libraries, OSGi-ified bundles contributed and supported by all Eclipse projects in one single place. > In fact, I think there are some projects that have a slightly different version > of an Orbit bundle in their repos, for some legacy reasons, never intended to > be "shared" by others. So there is still the IP process which requires projects to submit CQs. Thus, no immediate "re-use" will start. Projects still need to file CQs. > (Such as see CQ 3932). Frankly, I don't like that particular example. IMHO it represents a decision made by fear. The project didn't trust what was in Orbit. However, instead of reviewing, fixing and improving what was in Orbit (for the benefit of the whole community) it went away with creating its own copies. It surely was a win for the project. But I think the bigger win for the community is to help improving what is there and used by many. (In reply to comment #5) > (In reply to comment #4) > > Adding Glyn, as I've heard Virgo has about 150 3rd party bundles "not in Orbit" > > ... so, they'd likely deserve (require?) similar "solution" as Orbit ... that > > is, keep binary 3rd party bundles in their own Virgo specific CVS repository. > > (I say this not even knowing where they currently are ... SVN? Git already?) > > Virgo is entirely Git. Correct. Furthermore, Virgo uses Ant/Ivy to build, so none of its dependencies are checked into git. Ivy dependency definitions are checked in which reference the actual dependencies in a remote Ivy repository (which we control). One inhibitor to Virgo using Orbit is that we would need to perform duplicate maintenance on Orbit bundles by publishing them to an Ivy repository so Virgo could reference them. So for dependencies which are new to Orbit, we would need to get them into Orbit *and* publish them to Ivy. This issue has been migrated to https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/issues/143. |