/** * @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); } }
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>"); }
/** * 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()]; }
/** * 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); }
/** * 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))); }
/** * @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()); }
public function testSetPreReleaseInvalid() { $this->setExpectedException('Herrera\\Version\\Exception\\InvalidIdentifierException', 'The identifier "+" is invalid.'); $this->builder->setPreRelease(array('+')); }