comparison treepkg/packager.py @ 191:94fb3f3ab58b

When building a subset of tracks, make sure new packages are added to pbuilder even if the tracks that depend on them are not being built. To achieve this, the information which tracks are to be built is now stored as the do_build flag in the individual tracks and not by passing only a subset of the tracks ot the PackagerGroup. Otherwise the PackagerGroup would not determine the dependencies correctly.
author Bernhard Herzog <bh@intevation.de>
date Wed, 30 Jul 2008 19:23:10 +0000
parents e83db4482aab
children 86360f3d5611
comparison
equal deleted inserted replaced
190:e83db4482aab 191:94fb3f3ab58b
304 extra_config_desc = [] 304 extra_config_desc = []
305 305
306 def __init__(self, name, base_dir, svn_url, root_cmd, pbuilderrc, deb_email, 306 def __init__(self, name, base_dir, svn_url, root_cmd, pbuilderrc, deb_email,
307 deb_fullname, packager_class="treepkg.packager", 307 deb_fullname, packager_class="treepkg.packager",
308 debrevision_prefix="treepkg", handle_dependencies=False, 308 debrevision_prefix="treepkg", handle_dependencies=False,
309 signing_key_id=""): 309 signing_key_id="", do_build=True):
310 self.name = name 310 self.name = name
311 self.base_dir = base_dir 311 self.base_dir = base_dir
312 self.svn_url = svn_url 312 self.svn_url = svn_url
313 self.builder = PBuilder(pbuilderrc, root_cmd, 313 self.builder = PBuilder(pbuilderrc, root_cmd,
314 release_signing_keyid=signing_key_id) 314 release_signing_keyid=signing_key_id)
315 self.deb_email = deb_email 315 self.deb_email = deb_email
316 self.deb_fullname = deb_fullname 316 self.deb_fullname = deb_fullname
317 self.debrevision_prefix = debrevision_prefix 317 self.debrevision_prefix = debrevision_prefix
318 self.signing_key_id = signing_key_id 318 self.signing_key_id = signing_key_id
319 self.do_build = do_build
319 self.handle_dependencies = handle_dependencies 320 self.handle_dependencies = handle_dependencies
320 self.dependencies = None 321 self.dependencies = None
321 self.pkg_dir_template = "%(revision)d-%(increment)d" 322 self.pkg_dir_template = "%(revision)d-%(increment)d"
322 self.pkg_dir_regex \ 323 self.pkg_dir_regex \
323 = re.compile(r"(?P<revision>[0-9]+)-(?P<increment>[0-9]+)$") 324 = re.compile(r"(?P<revision>[0-9]+)-(?P<increment>[0-9]+)$")
440 def package_if_updated(self, revision=None, do_svn_update=True): 441 def package_if_updated(self, revision=None, do_svn_update=True):
441 """Returns a new packager if the working copy has not been packaged yet. 442 """Returns a new packager if the working copy has not been packaged yet.
442 If do_svn_update is true -- the default -- update the working 443 If do_svn_update is true -- the default -- update the working
443 copy to the the revision specified with the revision parameter 444 copy to the the revision specified with the revision parameter
444 or if revision is None, the latest revision in the repository.""" 445 or if revision is None, the latest revision in the repository."""
446 if not self.do_build:
447 return None
445 if do_svn_update: 448 if do_svn_update:
446 self.update_checkout(revision=revision) 449 self.update_checkout(revision=revision)
447 current_revision = self.last_changed_revision() 450 current_revision = self.last_changed_revision()
448 logging.info("New revision is %d", current_revision) 451 logging.info("New revision is %d", current_revision)
449 if current_revision not in self.get_revision_numbers(): 452 if current_revision not in self.get_revision_numbers():
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)