コード例 #1
0
ファイル: PublishRelease.php プロジェクト: silverstripe/cow
 /**
  * Release a library
  *
  * @param OutputInterface $output
  * @param LibraryRelease $releasePlan The library to tag
  */
 protected function releaseRecursive(OutputInterface $output, LibraryRelease $releasePlan)
 {
     // Skip upgrade-only modules
     if (!$releasePlan->getIsNewRelease()) {
         return;
     }
     // Before releasing a version, make sure to tag all nested dependencies
     foreach ($releasePlan->getItems() as $item) {
         $this->releaseRecursive($output, $item);
     }
     // Release this library
     $this->releaseLibrary($output, $releasePlan);
 }
コード例 #2
0
ファイル: CreateChangelog.php プロジェクト: silverstripe/cow
 /**
  * Generate changelogs for this release, and all child nodes
  *
  * @param OutputInterface $output
  * @param LibraryRelease $release
  */
 protected function recursiveGenerateChangelog(OutputInterface $output, LibraryRelease $release)
 {
     // Don't generate changelogs for non-release upgrades (e.g. bump to existing tag)
     if (!$release->getIsNewRelease()) {
         return;
     }
     // Generate changelog for this library only
     $this->generateChangelog($output, $release);
     // Recurse
     foreach ($release->getItems() as $child) {
         $this->recursiveGenerateChangelog($output, $child);
     }
 }
コード例 #3
0
 /**
  * Update branches for the given library recursively
  *
  * @param OutputInterface $output
  * @param LibraryRelease $libraryRelease
  */
 protected function recursiveBranchLibrary(OutputInterface $output, LibraryRelease $libraryRelease)
 {
     // Recursively rewrite and branch child dependencies first
     foreach ($libraryRelease->getItems() as $childLibrary) {
         $this->recursiveBranchLibrary($output, $childLibrary);
     }
     // Skip if not tagging this library (upgrade only)
     if ($libraryRelease->getIsNewRelease()) {
         // Update this library
         $this->branchLibrary($output, $libraryRelease);
         // Update dev dependencies for the given module
         $this->incrementDevDependencies($output, $libraryRelease);
     } else {
         $this->checkoutLibrary($output, $libraryRelease->getLibrary(), $libraryRelease->getVersion());
     }
 }
コード例 #4
0
ファイル: PlanRelease.php プロジェクト: silverstripe/cow
 /**
  * Update selected version of a given library
  *
  * @param LibraryRelease $selectedVersion
  * @param Version $newVersion New version
  */
 protected function modifyLibraryReleaseVersion(LibraryRelease $selectedVersion, $newVersion)
 {
     $wasNewRelease = $selectedVersion->getIsNewRelease();
     // Replace tag
     $selectedVersion->setVersion($newVersion);
     // If the "create new release" tag changes, we need to re-generate all child dependencies
     $isNewRelease = $selectedVersion->getIsNewRelease();
     if ($wasNewRelease !== $isNewRelease) {
         // Need to either clear, or regenerate all children
         $selectedVersion->clearItems();
         // Changing to require a new tag will populate children again from scratch
         if ($isNewRelease) {
             $this->generateChildReleases($selectedVersion);
         }
     }
 }