#293 Move 3rd party jars out of FB source repository

Andrey Loskutov

As proposed by Dave, we should consider moving 3rd party libraries out of the source code base.

The huge FB repository size is caused mostly by including few 3rd party libraries, see attached screenshot.

65% of the FB working tree (~85MB) is used by server/sandbox libraries. This is not nice, considering that FB core sources are about 12 MB only.

The "bare" Git repository size today (all FB history up to 2.0.3 but without working tree) is ~200 MB, with ~80% of it's filled by multiple old server/sandbox libraries.

Ideally only source code is included into the source repository. The required libraries should be downloaded from Internet on build.

This request requires (bigger) changes in build system.

1 Attachments


Patches: #248


    • Group: 2.1.0 --> 3.0.1
  • Kevin Lubick
    Kevin Lubick

    I've removed dependencies from the main FindBugs project in https://code.google.com/r/klubick-findbugs/, from commits 8a1a85a3..7210bb08

    I deleted the jars and added an ant target that downloads them from Maven. It deletes them and redownloads them every time, so you may wish to change that (by removing the dependency on "clean"

    As far as I can tell, bluej/lib, findbugsTestCases\lib and webCloudProtocol\lib also need cleaning.

    • Group: 3.x --> 3.0.2
  • Kevin Lubick
    Kevin Lubick

    Andrey, It appears I was a bit clumsy with my commits.

    removes findbugs builder from project.

    I had removed that (temporarily) because with Eclipse was struggling when I kept renaming jars. I had not meant to check that in.

    fetches same jar 8 times

    Hmm.. must have not saved the build.xml before making that commit. You'll notice the next commit has the proper jar fetching.

    adds hamcrest dependency to the findbugs project. Why??

    This one was not, in a stirring turn of events, due to me being clumsy. As the commit message suggests, the original junit.jar had the hamcrest packages in it, but the one this script downloads from maven does not have that dependency. Without the hamcrest jars, there are a few compilation errors, so I added it in.

    Can you please start a separated branch where all the (cleaned up) changes were made?

    Yes. I can make a branch where I'll squash together the broken parts and I can more carefully check out other things that might break because of the renamed jars (for example, here). I'll try to get that in later today.

    Thank you for the review.

  • Kevin Lubick
    Kevin Lubick

    I cleaned up my change history a bit and fixed a few more places impacted by the jar renaming. See revisions 8dfe1fe..35984bc5 in my creatively named branch "removing_jars"

    I hope that looks a bit cleaner.

    I realize these won't get pulled in until 3.0.1 is out the door, but I commented here to get feedback sooner rather than later.

  • Kevin Lubick
    Kevin Lubick

    Commits 27dcba84aaccce6..0e803d1a removes the jars from findbugsTestCases.

    Next up is the plugins folder (and then maybe sandbox)

  • Kevin, please be careful and change only related stuff.
    First commot from your last comment changed the classpath for testcases project from explicit 1.8 to "something".

  • Kevin Lubick
    Kevin Lubick

    Good catch Andrey,

    I restaged those changes and force pushed on that branch. The commits of interest are now from 8f856d672c..9e62b53b1