def join_trigger(registry, xml_parent, data):
 jointrigger = XML.SubElement(xml_parent, 'join.JoinTrigger')
 joinProjectsText = ','.join(data.get('projects', ['']))
 XML.SubElement(jointrigger, 'joinProjects').text = joinProjectsText
 publishers = XML.SubElement(jointrigger, 'joinPublishers')
 for pub in data.get('publishers', []):
  for edited_node in create_publishers(registry, pub):
   publishers.append(edited_node)
 unstable = str(data.get('even-if-unstable', 'false')).lower()
 XML.SubElement(jointrigger, 'evenIfDownstreamUnstable').text = unstable

def join_trigger ( registry , xml_parent , data ) : jointrigger = XML . SubElement ( xml_parent , 'join.JoinTrigger' ) joinProjectsText = ',' . join ( data . get ( 'projects' , [ '' ] ) ) XML . SubElement ( jointrigger , 'joinProjects' ) . text = joinProjectsText publishers = XML . SubElement ( jointrigger , 'joinPublishers' ) for pub in data . get ( 'publishers' , [ ] ) : for edited_node in create_publishers ( registry , pub ) : publishers . append ( edited_node ) unstable = str ( data . get ( 'even-if-unstable' , 'false' ) ) . lower ( ) XML . SubElement ( jointrigger , 'evenIfDownstreamUnstable' ) . text = unstable
yaml: join-trigger trigger a job after all the immediate downstream jobs have completed .