TODO: Re-Organise third-party Dependencies (APIs)
whichonespink44 opened this issue ยท 12 comments
From @srs-bsns on March 29, 2016 6:23
We should set up a better dependency chain where we no longer ship third-party APIs with the source. Some mods, such as BoP, which have maven repos, can be added as deps in the gradle build script, so that their APIs are downloaded when setting up a dev environment or building, and therefore don't need to be bundled. This will make our source tree more light-weight and easier to maintain, and it will also be much easier to update to newer third-party API versions.
There will still be problems on what to do with mods like Enhanced Biomes, but there may still be easier ways of making their classes available without shipping their source along with ours.
Copied from original issue: Team-RTG/1.9-Realistic-Terrain-Generation#37
From @topisani on April 13, 2016 21:10
yeah, we are using BOP from maven, and we will still need that. The maven repo should be added with a different system than directly into build.gradle
From @srs-bsns on April 13, 2016 21:14
The maven repo should be added with a different system than directly into build.gradle
Yeah, I'm still thinking on the best way to do that, and also still add the dependencies, and do it all from a central location, so that all we need to do is modify a version string in once place, and everything gets updated.
From @topisani on March 29, 2016 7:23
git submodules may be an option too, but overall i definately aproove of this
For mods like Enhanced Biomes, which don't have an API but we still need to access to its world gen (and thus its full source), could we create our own maven repos and just pull it down from there during build?
Personally, I don't think this is a huge concern for the 1.7.10 version... sure, packaging the full EB source in src/api is less than ideal, but it works. Having said that, it does come with some disadvantages, mainly that we have to 'include' EB when we're testing locally, which might cause problems that otherwise wouldn't be there, or hide bugs that would show up otherwise, etc.
From @topisani on March 29, 2016 9:10
bop does not work when the source is included in the api folder, but it does work in the libs folder, so it would probably work with maven too
Including a dev JAR in the libs folder allows you to load the mod locally when testing, but it doesn't allow you to reference code from that mod and compile without errors, does it?
From @topisani on March 29, 2016 9:19
yep it does, i currently include the BOP jar, but not the source in the api folder. That works in every way
From @topisani on March 29, 2016 9:31
nope, it is correctly loaded as a dependency
From @topisani on March 29, 2016 9:44
its also in ideas list of dependencies from gradle
From @srs-bsns on April 13, 2016 21:7
@Team-RTG/everyone
Will this even need to be done considering Topisani's additions to RTG2? Do we even need to import APIs anymore?