syntax = "proto3";

package conductor_state;

// A git remote
message Remote {
  string name = 1;
  string url = 2;
}

enum ReleasePhase {
  // Release was started with `conductor start` and repositories cloned.
  INITIALIZE = 0;
  APPLY_ENGINE_CHERRYPICKS = 1;
  CODESIGN_ENGINE_BINARIES = 2;
  APPLY_FRAMEWORK_CHERRYPICKS = 3;

  // Git tag applied to framework RC branch HEAD and pushed upstream.
  PUBLISH_VERSION = 4;

  // RC branch HEAD pushed to upstream release branch.
  //
  // For example, flutter-1.2-candidate.3 -> upstream/beta
  PUBLISH_CHANNEL = 5;

  // Package artifacts verified to exist on cloud storage.
  VERIFY_RELEASE = 6;
}

enum CherrypickState {
  // The cherrypick has not yet been applied.
  PENDING = 0;

  // The cherrypick has not been applied and will require manual resolution.
  PENDING_WITH_CONFLICT = 1;

  // The cherrypick has been successfully applied to the local checkout.
  //
  // This state requires Cherrypick.appliedRevision to also be set.
  COMPLETED = 2;

  // The cherrypick will NOT be applied in this release.
  ABANDONED = 3;
}

message Cherrypick {
  // The revision on trunk to cherrypick.
  string trunkRevision = 1;

  // Once applied, the actual commit revision of the cherrypick.
  string appliedRevision = 2;

  CherrypickState state = 3;
}

message Repository {
  // The development git branch the release is based on.
  //
  // Must be of the form /flutter-(\d+)\.(\d+)-candidate\.(\d+)/
  string candidateBranch = 1;

  // The commit hash at the tip of the branch before cherrypicks were applied.
  string startingGitHead = 2;

  // The difference in commits between this and [startingGitHead] is the number
  // of cherrypicks that have been currently applied.
  string currentGitHead = 3;

  // Path to the git checkout on local disk.
  string checkoutPath = 4;

  // The remote commits will be fetched from.
  Remote upstream = 5;

  // The remote cherrypicks will be pushed to create a Pull Request.
  //
  // This should be a mirror owned by the user conducting the release.
  Remote mirror = 6;

  // Desired cherrypicks.
  repeated Cherrypick cherrypicks = 7;
}

message ConductorState {
  // One of 'stable', 'beta', or 'dev'
  string releaseChannel = 1;

  // The name of the release.
  string releaseVersion = 2;

  Repository engine = 4;
  Repository framework = 5;
  int64 createdDate = 6;
  int64 lastUpdatedDate = 7;

  repeated string logs = 8;

  // The last [ReleasePhase] that was successfully completed.
  ReleasePhase lastPhase = 9;

  // Commit hash of the Conductor tool.
  string conductor_version = 10;
}
