@@ -307,6 +307,33 @@ def sanitizePackageLog(log, report = None):
307307 slog = slog .rstrip ('\n ' )
308308 return slog
309309
310+ def normalizeWhitespace (text ):
311+ """
312+ Normalize whitespace in text to handle formatting differences between
313+ release logs and package logs. This function:
314+ 1. Normalizes line endings
315+ 2. Normalizes multiple spaces/tabs to single spaces
316+ 3. Removes trailing whitespace from lines
317+ 4. Normalizes empty lines
318+ """
319+ if not text :
320+ return text
321+
322+ # Split into lines and normalize each line
323+ lines = text .split ('\n ' )
324+ normalized_lines = []
325+
326+ for line in lines :
327+ # Replace multiple whitespace characters with single space
328+ normalized_line = ' ' .join (line .split ())
329+ normalized_lines .append (normalized_line )
330+
331+ # Join lines back together, removing empty lines at the end
332+ while normalized_lines and normalized_lines [- 1 ] == '' :
333+ normalized_lines .pop ()
334+
335+ return '\n ' .join (normalized_lines )
336+
310337def isGitLogEmpty (package , releaseLog , gitLog , report = None ):
311338 logPath = os .path .join (package .basePath , gitLog )
312339 prisitineLog = readFile (logPath )
@@ -316,9 +343,14 @@ def isGitLogEmpty (package, releaseLog, gitLog, report = None):
316343 report .message ("git log contains:" , gitLog )
317344 prisitineLog = prisitineLog .decode ('utf-8' , 'ignore' )
318345 report .fmtmessage (prisitineLog )
319- if log == releaseLog [0 ]:
346+ # Normalize whitespace for comparison
347+ normalized_log = normalizeWhitespace (log )
348+ normalized_release_log_0 = normalizeWhitespace (releaseLog [0 ])
349+ normalized_release_log_1 = normalizeWhitespace (releaseLog [1 ]) if releaseLog [1 ] is not None else None
350+
351+ if normalized_log == normalized_release_log_0 :
320352 return True
321- if releaseLog [ 1 ] != None and log == releaseLog [ 1 ] :
353+ if normalized_release_log_1 is not None and normalized_log == normalized_release_log_1 :
322354 return True
323355 return False
324356
@@ -327,9 +359,14 @@ def isReleaseHeadInGitLog (report, package, releaseLog, gitLog):
327359 log = readFile (logPath )
328360 log = sanitizePackageLog (log )
329361
330- if releaseLog [0 ] in log :
362+ # Normalize whitespace for comparison
363+ normalized_log = normalizeWhitespace (log )
364+ normalized_release_log_0 = normalizeWhitespace (releaseLog [0 ])
365+ normalized_release_log_1 = normalizeWhitespace (releaseLog [1 ]) if releaseLog [1 ] is not None else None
366+
367+ if normalized_release_log_0 in normalized_log :
331368 return True
332- if releaseLog [ 1 ] != None and releaseLog [ 1 ] in log :
369+ if normalized_release_log_1 is not None and normalized_release_log_1 in normalized_log :
333370 return True
334371 return False
335372
0 commit comments