public void Initialize() { Phase = LifecyclePhase.Initialized; Initialized = 1; Executed = 0; Disposed = 0; }
private void ValidateDependenciesLifecyclePhase(Dictionary <string, string> dependencies) { // No dependencies, exit early if (!dependencies.Any()) { return; } // Extract the current track, since otherwise we'd be potentially parsing the version // multiple times var currentTrack = PackageLifecyclePhase.GetLifecyclePhaseOrRelation(Context.ProjectPackageInfo.version, Context.ProjectPackageInfo.name, Context); var supportedVersions = PackageLifecyclePhase.GetPhaseSupportedVersions(currentTrack); // Check each dependency against supported versions foreach (var dependency in dependencies) { // Skip invalid dependencies from this check SemVersion depVersion; if (!SemVersion.TryParse(dependency.Value, out depVersion)) { continue; } LifecyclePhase dependencyTrack = PackageLifecyclePhase.GetLifecyclePhaseOrRelation(dependency.Value.ToLower(), dependency.Key.ToLower(), Context); var depId = Utilities.CreatePackageId(dependency.Key, dependency.Value); if (!supportedVersions.HasFlag(dependencyTrack)) { AddError($"Package {Context.ProjectPackageInfo.Id} depends on package {depId} which is in an invalid track for release purposes. {currentTrack} versions can only depend on {supportedVersions.ToString()} versions. {ErrorDocumentation.GetLinkMessage(k_DocsFilePath, "package-depends-on-a-package-which-is-in-an-invalid-track-for-release-purposes")}"); } } }
internal static LifecyclePhase GetPhaseSupportedVersions(LifecyclePhase phase) { var supportedVersions = phase; // Set extra supported versions for other tracks switch (phase) { case LifecyclePhase.Release: supportedVersions = LifecyclePhase.Release; break; case LifecyclePhase.ReleaseCandidate: supportedVersions = LifecyclePhase.Release | LifecyclePhase.ReleaseCandidate; break; case LifecyclePhase.PreRelease: supportedVersions = LifecyclePhase.PreRelease | LifecyclePhase.ReleaseCandidate | LifecyclePhase.Release; break; case LifecyclePhase.Experimental: supportedVersions = LifecyclePhase.Preview | LifecyclePhase.Experimental | LifecyclePhase.PreRelease | LifecyclePhase.ReleaseCandidate | LifecyclePhase.Release; break; case LifecyclePhase.Preview: supportedVersions = LifecyclePhase.Preview | LifecyclePhase.Experimental | LifecyclePhase.PreRelease | LifecyclePhase.ReleaseCandidate | LifecyclePhase.Release; break; } return(supportedVersions); }
public void Execute(ref ExecuteContext <NoParameters, NoProviders> context) { Phase = LifecyclePhase.Executing; ++Executed; }
public void Dispose() { Phase = LifecyclePhase.Disposed; ++Disposed; }