Opened 4 years ago

Last modified 3 years ago

#4354 closed defect

Release automation commits and pushes local changes — at Version 10

Reported by: fhd Assignee: tlucas
Priority: P3 Milestone:
Module: Automation Keywords:
Cc: sebastian, trev, kvas, tlucas Blocked By:
Blocking: Platform: Unknown / Cross platform
Ready: yes Confidential: no
Tester: Unknown Verified working: no
Review URL(s):

https://codereview.adblockplus.org/29508667/

Description (last modified by tlucas)

Environment

This happened during the Adblock Plus for Chrome/Opera/Safari 1.12.2 release, base revision was 44641c853190.

How to reproduce

  1. Clone the adblockpluschrome and downloads repositories. Important: Make sure to configure different remotes than the central upstream repositories (i.e. local copies of the repositories), the release automation automatically pushes changes.
  2. Make an arbitrary local change to the adblockpluschrome working directory, do not commit this.
  3. Still in the adblockpluschrome working directory, run build.py -t chrome release -k adblockpluschrome.pem -k adblockplussafari.pem 1.12.2 to perform the 1.12.2 release. (The version number you use doesn't matter.)

Observed behaviour

The local changes you made in the adblockpluschrome repository will be committed along with the release commit (the message starts with Releasing Adblock Plus).

Expected behaviour

The release automation shouldn't even start when the repository is dirty. Instead it happily commits the changes and pushes them. That could lead to nasty issues.

Any untracked or uncommitted local changes should cause the release automation to print an error-message and automatically abort the process.

The user should be prompted with detected outgoing changesets, along with a question whether to continue or not:

The above error/s has/have been detected within the repositories.
You might want to check whether this is ok or not.
Are you sure about continuing the release-process?
Please choose (yes / no):

What to test

  • automatic abortion on
    • any uncommitted local change
    • any untracked local change
  • list of outgoing changesets (local-only changesets)
  • Abortion or or continuing of the release-automation, according to the users choice

Change History (10)

comment:1 Changed 4 years ago by fhd

  • Summary changed from Release automation commits local changes if there are any to Chrome/Opera/Safari release automation commits and pushes local changes

comment:2 Changed 4 years ago by sebastian

  • Cc trev kvas added
  • Priority changed from Unknown to P3
  • Ready set

comment:3 Changed 4 years ago by trev

  • Summary changed from Chrome/Opera/Safari release automation commits and pushes local changes to Release automation commits and pushes local changes

Changing title back - our release automation generally behaves that way, for Firefox as well.

Note that the proposed change won't solve the scenario where you already have local commits - these will be pushed as well. I guess that release automation could check for that as well.

comment:4 Changed 3 years ago by tlucas

  • Cc tlucas added

comment:5 Changed 3 years ago by tlucas

  • Owner set to tlucas

comment:6 Changed 3 years ago by tlucas

  • Description modified (diff)

comment:7 Changed 3 years ago by trev

I'd suggest a hard abort for uncommitted changes. While in the other scenarios I can imagine answering "yes, continue with the release" occasionally, uncommitted changes which will end up being added to the "Releasing" commit just cannot be right.

comment:8 Changed 3 years ago by tlucas

  • Description modified (diff)

comment:9 Changed 3 years ago by tlucas

  • Description modified (diff)

comment:10 Changed 3 years ago by tlucas

  • Description modified (diff)
Note: See TracTickets for help on using tickets.