public async Task <IDictionary <string, LatestVersion> > GetLatestVersions(string[] packageNames, string rootFolder, bool preRelease)
        {
            console.WriteHighlighted($"Getting the latest package versions. Hang on.....");

            var sourceRepositories = GetSourceRepositories(rootFolder);

            var result = new ConcurrentBag <LatestVersion>();

            int totalTicks = packageNames.Length;
            var options    = new ProgressBarOptions
            {
                ProgressCharacter   = '─',
                ProgressBarOnBottom = true
            };

            using (var progressBar = new ProgressBar(totalTicks, "Getting latest package versions", options))
            {
                await Task.WhenAll(packageNames.Select(name => GetLatestVersion(name, preRelease, sourceRepositories, result, progressBar))).ConfigureAwait(false);
            }



            return(result.ToDictionary(v => v.PackageName));
        }