/** * 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); } } }