3

I'm trying to set up Jenkins (v1.47) to build a project using the ClearCase UCM (v1.1.2) plugin.

With the following config (names changed to protect the innocent):

Stream: project_dev_build@\company_pvob<br/>
Component: project_tools@\company_pvob<br/>
Promotion level: INITIAL

I get the following output:

[CCUCM] * Stream: project_dev_build@\company_pvob
[CCUCM] * Component: project_tools@\company_pvob
[CCUCM] * Promotion level: INITIAL
[CCUCM] Removed 45 of 45 Baselines.
[CCUCM] No valid baselines found

I can see in my ClearCase client that there are exactly 45 baselines, all in the INITIAL promotion level, for that stream and component.
So the plugin obviously finds and then discards them.

But why?
I expected the latest one to be picked up, why are they all rejected?
I should note that if I change the config from "INITIAL" to "ALL" it makes no difference, the same thing happens.

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250

1 Answers1

3

That message is produced by the net.praqma.hudson.scm.CCUCMScm#pollStream() method

It calls filterBaselines() which removed all "deliver.xxx" baselines or unlabelled baselines.

private int filterBaselines( List<Baseline> baselines ) {

  int pruned = 0;

  /* Remove deliver baselines */
  Iterator<Baseline> it = baselines.iterator();
  while( it.hasNext() ) {
    Baseline baseline = it.next();
    if( baseline.getShortname().startsWith( "deliverbl." ) || baseline.getLabelStatus().equals( LabelStatus.UNLABLED ) ) {
      it.remove();
      pruned++;
    }
  }
  return pruned;
}

If all your baselines have been produced by deliver operations, that would explain why the plugin removes them from the possible baselines to select for a build.

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • Thanks VonC, they do indeed all start with "deliverbl.". But (and this is the ClearCase novice asking) why is it that any baseline produced via deliver operations cannot be used? – Yannis Lionis Jun 25 '12 at 16:39
  • @YannisLionis those are technical *unlabeled* baselines set by ClearCase at the beginning of a deliver operation, mainly for an obscure notion of "timeline" and to link activities (to be delivered) together. Since they are unlabeled, they aren't fit for a rebase. See for instance point 3 of http://www-01.ibm.com/support/docview.wss?uid=swg21255440. – VonC Jun 25 '12 at 18:19
  • @YannisLionis as mentioned in http://stackoverflow.com/a/1644109/6309, that timeline created by any baseline (including those unlabeled "`deliverbl.xxx`" baselines) has some unfortunate side-effect (in term of which activity you are allowed to delivered: in some case, you have no other choice but to deliver *all* of them)... – VonC Jun 25 '12 at 18:27