/**
  * @param Builder $builder
  * @param $matches
  */
 protected function handleMetaData(Builder $builder, $matches)
 {
     if (intval($matches[7]) != 0) {
         // we are not on TAG commit, add "dev" and git commit hash as pre release part
         $preRelease = array_merge($builder->getPreRelease(), array('dev', $matches[8]));
         $builder->setPreRelease($preRelease);
     }
 }
Пример #2
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $filename = $input->getArgument('filename');
     $versionNumber = file_get_contents($filename);
     $version = Builder::create()->importString($versionNumber);
     $part = $input->getOption('part');
     switch (strtolower($part)) {
         case self::PART_MAJOR:
             $version->incrementMajor();
             $version->clearPreRelease();
             $version->clearBuild();
             break;
         case self::PART_PATCH:
             $version->incrementPatch();
             $version->clearPreRelease();
             $version->clearBuild();
             break;
         case self::PART_MINOR:
             $version->incrementMinor();
             $version->clearPreRelease();
             $version->clearBuild();
             break;
         default:
             throw new \InvalidArgumentException('Invalid name for the version part was provided, received: ' . $part);
             break;
     }
     $preRelease = $input->getOption('pre-release');
     if ($preRelease) {
         $version->setPreRelease(array($preRelease));
     }
     $newVersionNumber = Dumper::toString($version);
     file_put_contents($filename, $newVersionNumber);
     $output->writeln("<info>The version number was incremented from <comment>{$versionNumber}</comment> to " . "<comment>{$newVersionNumber}</comment></info>");
 }
Пример #3
0
 /**
  * Get the possible ways to increment the version using semantic versioning.
  *
  * @return array The semantic version number increments.  Will be empty for non-semantic versions.
  */
 public function getSemanticIncrements()
 {
     if (!$this->_isSemantic) {
         return [];
     }
     $builder = VersionBuilder::create()->importVersion($this->_version);
     $builder->clearBuild();
     $builder->clearPreRelease();
     return ['patch' => (string) $builder->incrementPatch()->getVersion(), 'minor' => (string) $builder->incrementMinor()->getVersion(), 'major' => (string) $builder->incrementMajor()->getVersion()];
 }
Пример #4
0
 /**
  * Increment the package version.
  *
  * @param string $increment
  */
 public function incrementVersion($increment)
 {
     $last = $this->changelog->getLastRelease();
     $last = $last ? $last['name'] : '0.0.0';
     $version = Builder::create()->importString($last);
     switch ($increment) {
         case self::MAJOR:
             $version->incrementMajor();
             break;
         case self::MINOR:
             $version->incrementMinor();
             break;
         default:
             $version->incrementPatch();
             break;
     }
     $version = (string) $version->getVersion();
     if (!$this->output->confirm('This will create <comment>' . $version . '</comment>, correct?')) {
         return;
     }
     $this->createVersion($version);
 }
Пример #5
0
 /**
  * Returns a Version builder for the string representation.
  *
  * @param string $version The string representation.
  *
  * @return Builder A Version builder.
  */
 public static function toBuilder($version)
 {
     return Builder::create()->importComponents(self::toComponents($version));
 }
 /**
  * @dataProvider getLess
  */
 public function testIsLessThan($left, $right)
 {
     $this->assertTrue(Comparator::isLessThan(Builder::create()->importString($left), Builder::create()->importString($right)));
 }
Пример #7
0
 /**
  * @param string $version
  *
  * @return Version
  */
 public static function fromString($version)
 {
     $builder = Builder::create()->importString($version);
     return new Version($builder->getMajor(), $builder->getMinor(), $builder->getPatch(), $builder->getPreRelease(), $builder->getBuild());
 }
Пример #8
0
 public function testSetPreReleaseInvalid()
 {
     $this->setExpectedException('Herrera\\Version\\Exception\\InvalidIdentifierException', 'The identifier "+" is invalid.');
     $this->builder->setPreRelease(array('+'));
 }