public static IVersionSpec ToCombinedMinVersionSpecInclusive(this IVersionSpec versionSpec, SemanticVersion minVersionInclusive)
        {
            if (versionSpec == null)
            {
                return(minVersionInclusive.ToMinVersionSpecInclusive());
            }

            if (!versionSpec.IsSatisfiedBy(minVersionInclusive))
            {
                return(new VersionSpec
                {
                    MinVersion = versionSpec.MinVersion,
                    IsMinInclusive = versionSpec.IsMinInclusive,
                    MaxVersion = versionSpec.MaxVersion,
                    IsMaxInclusive = versionSpec.IsMaxInclusive,
                });
            }

            return(new VersionSpec
            {
                MinVersion = minVersionInclusive,
                IsMinInclusive = true,
                MaxVersion = versionSpec.MaxVersion,
                IsMaxInclusive = versionSpec.IsMaxInclusive,
            });
        }