[xwiki-devs] [Discussion] Generate and publish sources for snapshot builds in the CI
Hi devs, I was wondering why we don`t generate source artefacts for snapshots, just like we do for final versions? While I do agree that final versions are the important ones, it's often very annoying to have to manually add sources from the filesystem (assuming you have cloned locally the git repo) for all the maven modules that you want to see the code or even the javadoc or method parameter names. For final releases we don`t have that problem because Eclipse and the Maven plugin (for example) can automatically download the sources in the background providing an effortless process. However, while working with snapshots, you are nagged continuously that the sources can not be found automatically and you experience a bit of unneeded frustration :). Not only that Would it be that much of a storage penalty for the extra sources jars to accompany the snapshot builds? Would it be that much of a build time penalty for actually generating source builds for each artefact? WDYT? Thanks, Eduard
On Wed, Aug 31, 2011 at 4:46 PM, Eduard Moraru <[email protected]> wrote:
Hi devs,
I was wondering why we don`t generate source artefacts for snapshots, just like we do for final versions?
While I do agree that final versions are the important ones, it's often very annoying to have to manually add sources from the filesystem (assuming you have cloned locally the git repo) for all the maven modules that you want to see the code or even the javadoc or method parameter names. For final releases we don`t have that problem because Eclipse and the Maven plugin (for example) can automatically download the sources in the background providing an effortless process. However, while working with snapshots, you are nagged continuously that the sources can not be found automatically and you experience a bit of unneeded frustration :). Not only that
Would it be that much of a storage penalty for the extra sources jars to accompany the snapshot builds?
Sources packages are generally way bigger that jars. See http://maven.xwiki.org/releases/org/xwiki/commons/xwiki-commons-component-ap... for example. But maybe it's not really an issue to have a maven repository way bigger, storage is not that expensive AFAIK.
Would it be that much of a build time penalty for actually generating source builds for each artefact?
It's not minor but I could not tell you the exact cost.
WDYT?
Thanks, Eduard _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Thomas Mortagne
On Wed, Aug 31, 2011 at 6:24 PM, Thomas Mortagne <[email protected]>wrote:
On Wed, Aug 31, 2011 at 4:46 PM, Eduard Moraru <[email protected]> wrote:
Hi devs,
I was wondering why we don`t generate source artefacts for snapshots, just like we do for final versions?
While I do agree that final versions are the important ones, it's often very annoying to have to manually add sources from the filesystem (assuming you have cloned locally the git repo) for all the maven modules that you want to see the code or even the javadoc or method parameter names. For final releases we don`t have that problem because Eclipse and the Maven plugin (for example) can automatically download the sources in the background providing an effortless process. However, while working with snapshots, you are nagged continuously that the sources can not be found automatically and you experience a bit of unneeded frustration :). Not only that
Would it be that much of a storage penalty for the extra sources jars to accompany the snapshot builds?
Sources packages are generally way bigger that jars. See
http://maven.xwiki.org/releases/org/xwiki/commons/xwiki-commons-component-ap... for example.
By looking only at the sources jars (ignoring javadoc, since we don`t really need it once we have the sources) it would look as though sources jars are roughly the same size as classes jars. Here's another example for larger jars: http://maven.xwiki.org/releases/org/xwiki/platform/xwiki-platform-oldcore/3.... So... storage-wise, I`d say that source jars would double storage requirements for snapshot builds. Thanks, Eduard
But maybe it's not really an issue to have a maven repository way bigger, storage is not that expensive AFAIK.
Would it be that much of a build time penalty for actually generating source builds for each artefact?
It's not minor but I could not tell you the exact cost.
WDYT?
Thanks, Eduard _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Personally I don't like it too much at this point because: - we need the builds to be as fast as possible to provide early feedback to developers when something is broken. Generating source/javadoc would delay significantly the build times. We need to try to reduce build times, not the other way around ;) So one way would be to generate sources/javadocs separately but that would work only if we add even more build agents and is a bit complex to set up. - we regularly have disk space issues on the maven machine so this would need to be fixed before we can even consider doing this. Thanks -Vincent On Aug 31, 2011, at 4:46 PM, Eduard Moraru wrote:
Hi devs,
I was wondering why we don`t generate source artefacts for snapshots, just like we do for final versions?
While I do agree that final versions are the important ones, it's often very annoying to have to manually add sources from the filesystem (assuming you have cloned locally the git repo) for all the maven modules that you want to see the code or even the javadoc or method parameter names. For final releases we don`t have that problem because Eclipse and the Maven plugin (for example) can automatically download the sources in the background providing an effortless process. However, while working with snapshots, you are nagged continuously that the sources can not be found automatically and you experience a bit of unneeded frustration :). Not only that
Would it be that much of a storage penalty for the extra sources jars to accompany the snapshot builds? Would it be that much of a build time penalty for actually generating source builds for each artefact?
WDYT?
Thanks, Eduard
On 08/31/2011 10:46 AM, Eduard Moraru wrote:
Hi devs,
I was wondering why we don`t generate source artefacts for snapshots, just like we do for final versions?
While I do agree that final versions are the important ones, it's often very annoying to have to manually add sources from the filesystem (assuming you have cloned locally the git repo) for all the maven modules that you want to see the code or even the javadoc or method parameter names. For final releases we don`t have that problem because Eclipse and the Maven plugin (for example) can automatically download the sources in the background providing an effortless process. However, while working with snapshots, you are nagged continuously that the sources can not be found automatically and you experience a bit of unneeded frustration :). Not only that
Would it be that much of a storage penalty for the extra sources jars to accompany the snapshot builds? Would it be that much of a build time penalty for actually generating source builds for each artefact?
Generating the sources zip shouldn't take that much time, since it's mostly building the zip, the sources are already available. Generating Javadocs on the other hand would take some time, since it requires parsing all the java files and generating a lot of HTML. Given that the sources jar is enough for developers, I'd say that only the sources jar should be built. Still, I think that it's not that relevant that sources for snapshot jars are not available, since it addresses a very small niche. Most downstream developers should work based on a released stable version, for which sources are available. Some of those that work on the trunk platform should depend not on pre-built jars, but on the real project based on the trunk sources, which makes it easier to modify the platform code as well. Sure, it's more time-consuming to set up the proper links between the projects (and more resource-hungry since loading the tens of modules that the XWiki platform contains takes a lot of heap space), but it ends up in a more powerful setup. I'm +0 for enabling this step, but only after the space problem with the maven machine is solved for good. -- Sergiu Dumitriu http://purl.org/net/sergiu/
participants (4)
-
Eduard Moraru -
Sergiu Dumitriu -
Thomas Mortagne -
Vincent Massol