ShipIt::State(3)

NAME
ShipIt::State - holds state between steps

OVERVIEW
An instance of type ShipIt::State is passed to each ShipIt::Step's 'run' method.

INSTANCE METHODS

  set_version
   $state->set_version("1.34");

Set the version of this release. (is done by ShipIt::Step::FindVersion, early in the process, but perhaps you want to write your own version-detecting/selecting step)

  version
   $ver = $state->version

Returns version of release, or dies if not yet set.

  pt
    $pt = $state->pt;

Detects/instantiates this project's type (Perl vs autoconf, etc) and returns a newly-created or previously-cached ShipIt::ProjectType instance.

  vc
    $vc = $state->vc;

Detects/instantiates the version control system in use (svn, svk, etc) and returns a newly-created or previously-cached ShipIt::VC instance.

  add_changelog_file
    $state->add_changelog_file("CHANGES");

Push a changelog file into the known list.

  changelog_files
    @files = $state->changelog_files;

Returns list of known changelog files.

  dry_run
   $dry = $state->dry_run;

Accessor for "dry run" flag. If set, you shouldn't actually commit/tag/upload stuff... just test if everything would've succeeded.

  skip_tests
   $dry = $state->skip_tests;

Accessor for "skip tests" flag. If set, you should skip tests. Presumably user already ran shipit, tests passed, and then some later step failed, and they want to ship quickly, without running entire test suite again.

  set_trial

  trial
  $state->set_trial(1);
  $trial = $state->trial;

Setter/getter for whether to make a TRIAL release for PAUSE. Unlike using "_" in version strings to indicate developer releases, this way you can keep the normal version numbers everywhere in your code, but the final distribution file is renamed to "-{version}-TRIAL.tar.gz" before uploading, which indicates that this is a trial/beta release.

  set_distfile

  distfile
   $state->set_distfile("foo.tar.gz");
   $file = $state->distfile;

Setter/getter for where the final distfile is. Useful so steps that need to build the whole tree (say, in an early "make test" phase), can keep it around, and later steps (like "make dist") can access it, without recompiling everything again.