Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cbi-dev] Some feedback on the build prototype

This is not how Tycho, and Maven in general, work. As I mentioned
before, Tycho builds source trees, which in virtually all cases consist
of multiple related projects (or "modules", as in Maven speak) that are
developed and built together. In case of git, this means that all
modules' sources belong to the same checkout.

--
Regards,
Igor

On 11-12-23 7:40 AM, Paul Webster wrote:
On Thu, Dec 22, 2011 at 10:29 PM, Igor Fedorenko <igor@xxxxxxxxxxxxxx
<mailto:igor@xxxxxxxxxxxxxx>> wrote:

    Looking at 3.8M4 maps [1], it appears that current PDE/Build often picks
    different tags from the projects coming from same git repository. Can I
    assume this is left-over from CVS and single git commit will be used to
    build all projects from one git repository?

    [1]
    http://download.eclipse.org/__eclipse/downloads/drops/S-3.__8M4-201112091447/directory.txt
    <http://download.eclipse.org/eclipse/downloads/drops/S-3.8M4-201112091447/directory.txt>


No, it uses all the tags.   In PDE the git fetchfactory:
1) clones one git repo into a "cache" location
2) checkout each tag specified in the map file
3) copies each project into the <buildDir>/plugins and
<buildDir>/features directories

PDE build in general has 2 phases, where first it gets the feature.xml
from the build feature, and uses that to build the entire list of
included features it needs and all of their plugins.  Then it gets all
the projects, using the git fetchfactory steps above.

The nightly build would be the equivalent of just taking a snapshot
(from master).

Since our move to git we've started submitting for the I build using
branches, and depending on the build to auto-tag the bundles:

1) before each integration build, each team sets the "integration"
branch to the commit for their build input

2) we have an auto-tagging script that for each map file entry: tags the
last commit with that commit's UTC timestamp (v<date-time>), and updates
that map file entry.

Then our I build runs as usual, with the input from the map files.

Arguably you can get the same results from the above I-build
auto-tagging/map process if you just build integration (or the branches
specified in the tagging/repositories.txt file) and each project's
qualifier is calculated off the last commit to touch that project, v<UTC
timestamp>


Other info: I think (although I'm not 100% sure) that the git fetch
factory can differentiate the tag used to checkout a bundle and the
qualifier used while building that project, but we have no tooling to
use that at the moment.

PW

--
Paul Webster
Hi floor.  Make me a sammich! - GIR



_______________________________________________
cbi-dev mailing list
cbi-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/cbi-dev


Back to the top