Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(96)

Unified Diff: cros_mark_as_stable.py

Issue 5513012: Be more selective about what packages we remove so that we can detect conflicts. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/crosutils.git@master
Patch Set: Re-upload Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | cros_mark_as_stable_unittest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cros_mark_as_stable.py
diff --git a/cros_mark_as_stable.py b/cros_mark_as_stable.py
index 9eb092cfd6b49138deed3031004cdb25e49d77fa..013ccd1ca915fb3f70f00290493d6d24bb73e4c9 100755
--- a/cros_mark_as_stable.py
+++ b/cros_mark_as_stable.py
@@ -78,15 +78,15 @@ def _Print(message):
Info(message)
-def _CleanStalePackages(board, package_array):
+def _CleanStalePackages(board, package_atoms):
"""Cleans up stale package info from a previous build."""
- Info('Cleaning up stale packages %s.' % package_array)
+ Info('Cleaning up stale packages %s.' % package_atoms)
unmerge_board_cmd = ['emerge-%s' % board, '--unmerge']
- unmerge_board_cmd.extend(package_array)
+ unmerge_board_cmd.extend(package_atoms)
RunCommand(unmerge_board_cmd)
unmerge_host_cmd = ['sudo', 'emerge', '--unmerge']
- unmerge_host_cmd.extend(package_array)
+ unmerge_host_cmd.extend(package_atoms)
RunCommand(unmerge_host_cmd)
RunCommand(['eclean-%s' % board, '-d', 'packages'], redirect_stderr=True)
@@ -319,15 +319,15 @@ class EBuild(object):
"""Sets up data about an ebuild from its path."""
from portage.versions import pkgsplit
unused_path, self.category, self.pkgname, filename = path.rsplit('/', 3)
- unused_pkgname, version_no_rev, rev = pkgsplit(
+ unused_pkgname, self.version_no_rev, rev = pkgsplit(
filename.replace('.ebuild', ''))
self.ebuild_path_no_version = os.path.join(
os.path.dirname(path), self.pkgname)
self.ebuild_path_no_revision = '%s-%s' % (self.ebuild_path_no_version,
- version_no_rev)
+ self.version_no_rev)
self.current_revision = int(rev.replace('r', ''))
- self.version = '%s-%s' % (version_no_rev, rev)
+ self.version = '%s-%s' % (self.version_no_rev, rev)
self.package = '%s/%s' % (self.category, self.pkgname)
self.ebuild_path = path
@@ -454,17 +454,19 @@ class EBuildStableMarker(object):
OSError: Error occurred while creating a new ebuild.
IOError: Error occurred while writing to the new revved ebuild file.
Returns:
- True if the revved package is different than the old ebuild.
+ If the revved package is different than the old ebuild, return the full
+ revved package name, including the version number. Otherwise, return None.
"""
if self._ebuild.is_stable:
- new_stable_ebuild_path = '%s-r%d.ebuild' % (
- self._ebuild.ebuild_path_no_revision,
- self._ebuild.current_revision + 1)
+ stable_version_no_rev = self._ebuild.version_no_rev
else:
# If given unstable ebuild, use 0.0.1 rather than 9999.
- new_stable_ebuild_path = '%s-0.0.1-r%d.ebuild' % (
- self._ebuild.ebuild_path_no_version,
- self._ebuild.current_revision + 1)
+ stable_version_no_rev = '0.0.1'
+
+ new_version = '%s-r%d' % (stable_version_no_rev,
+ self._ebuild.current_revision + 1)
+ new_stable_ebuild_path = '%s-%s.ebuild' % (
+ self._ebuild.ebuild_path_no_version, new_version)
_Print('Creating new stable ebuild %s' % new_stable_ebuild_path)
unstable_ebuild_path = ('%s-9999.ebuild' %
@@ -480,7 +482,7 @@ class EBuildStableMarker(object):
if 0 == RunCommand(diff_cmd, exit_code=True, redirect_stdout=True,
redirect_stderr=True, print_cmd=gflags.FLAGS.verbose):
os.unlink(new_stable_ebuild_path)
- return False
+ return None
else:
_Print('Adding new stable ebuild to git')
_SimpleRunCommand('git add %s' % new_stable_ebuild_path)
@@ -489,7 +491,7 @@ class EBuildStableMarker(object):
_Print('Removing old ebuild from git')
_SimpleRunCommand('git rm %s' % old_ebuild_path)
- return True
+ return '%s-%s' % (self._ebuild.package, new_version)
@classmethod
def CommitChange(cls, message):
@@ -556,16 +558,18 @@ def main(argv):
# Contains the array of packages we actually revved.
revved_packages = []
+ new_package_atoms = []
for ebuild in ebuilds:
try:
_Print('Working on %s' % ebuild.package)
worker = EBuildStableMarker(ebuild)
commit_id = ebuild.GetCommitId()
- if worker.RevWorkOnEBuild(commit_id):
+ new_package = worker.RevWorkOnEBuild(commit_id)
+ if new_package:
message = _GIT_COMMIT_MESSAGE % (ebuild.package, commit_id)
worker.CommitChange(message)
revved_packages.append(ebuild.package)
-
+ new_package_atoms.append('=%s' % new_package)
except (OSError, IOError):
Warning('Cannot rev %s\n' % ebuild.package,
'Note you will have to go into %s '
@@ -573,7 +577,7 @@ def main(argv):
raise
if revved_packages:
- _CleanStalePackages(gflags.FLAGS.board, revved_packages)
+ _CleanStalePackages(gflags.FLAGS.board, new_package_atoms)
if gflags.FLAGS.drop_file:
fh = open(gflags.FLAGS.drop_file, 'w')
fh.write(' '.join(revved_packages))
« no previous file with comments | « no previous file | cros_mark_as_stable_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698