Giter Club home page Giter Club logo

insertions-client's People

Contributors

bekir-ozturk avatar dmonroym avatar donjoseluis avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

insertions-client's Issues

Bug Bash: Unclear if default.config was updated and saved

Consider a trace entry that explicitly calls out the full path to default.config being saved at the end of the processing.

input:
..>InsertionsClient.exe -d:\Repos\VS.corext\Configs\default.config -m:\GitHub\insertions-client\tests\InsertionsClientTest\Assets\manifest.json -idut

The time stamp of the file system for the specified default.config file does not correspond to the end time of the run.

log_637229963968638219.txt

Support for auto-updating props files

When a package in default.config is updated, file and package names referring to the content of the nuget needs to be changed as well.

Variables defined in props files automatically handle these updates. But updating the variables is still a manual process.

Improve the tool so that values of the variables defined in props files are automatically updated when the tool is run.

exit criteria:

  • Props file under src/SetupPackages/DotNetCoreSDK is updated with the correct version numbers
  • Update README file accordingly
  • Add new tests to cover the improvements
  • App takes less than 45 seconds to execute when 30 or less package versions were updated.

Allowlist

Instead of ignore.txt. Now I think it is easier to do allowlist than filter out. Since the components that SDK owns are finite.

Bug Bash: cmd line tool help out of sync with Readme

The parameters in the cmd line tool help are not up to date with the ReadMe; which describes newer parameters.

expected behavior:
both ReadMe & cmd line tool contain the same information, detailing the parameters the tool accepts

insertion-client-help

insertion-client-readme

Update msi install sizes

Visual Studio Installer shows users how much disk space is needed to install each component.
Swr files should be updated to reflect the install size during insertion.

One of the ways to solve this:

  • extract nuget packages
  • calculate the install size of msi files.
  • determine which swr file needs updating (or which property to update)
  • update the swr (or the .props file which defines the propery)

Exit criteria:

  • When the tool is run, correct files should be updated with correct install sizes
  • A failure during this stage should fail the whole process. No files should change on disk (not even default.config and .packageconfig files).
  • Add test cases
  • Update README and help texts to reflect the changes

Bug Bash: Tool logs errors downloading NuGet packages but succeeds

Command line:

C:\src\_test\insertions\VS Repo>C:\src\insertions-client\src\InsertionsClient\bin\Debug\netcoreapp3.1\InsertionsClient.exe -d:"C:\src\_test\insertions\VS Repo\.corext\Configs\default.config" -m:"..\Aux Files\sample_manifest.json"

Log output:

21-4-2020 12:38:47.672526|thread:1|The directory to search for .props files: C:\src\_test\insertions\VS Repo\src\SetupPackages
21-4-2020 12:38:49.648488|thread:13|There is an issue downloading nuget package: NuGet.Protocol.Core.Types.FatalProtocolException: Unable to load the service index for source https://pkgs.dev.azure.com/devdiv/_packaging/VS-CoreXtFeeds/nuget/v3/index.json.
 ---> System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized).
   at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
   at NuGet.Protocol.HttpSource.<>c__DisplayClass14_0`1.<<GetAsync>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at NuGet.Common.ConcurrencyUtilities.ExecuteWithFileLockedAsync[T](String filePath, Func`2 action, CancellationToken token)
   at NuGet.Common.ConcurrencyUtilities.ExecuteWithFileLockedAsync[T](String filePath, Func`2 action, CancellationToken token)
   at NuGet.Protocol.HttpSource.GetAsync[T](HttpSourceCachedRequest request, Func`2 processAsync, ILogger log, CancellationToken token)
   at NuGet.Protocol.ServiceIndexResourceV3Provider.GetServiceIndexResourceV3(SourceRepository source, DateTime utcNow, ILogger log, CancellationToken token)
   --- End of inner exception stack trace ---
   at NuGet.Protocol.ServiceIndexResourceV3Provider.GetServiceIndexResourceV3(SourceRepository source, DateTime utcNow, ILogger log, CancellationToken token)
   at NuGet.Protocol.ServiceIndexResourceV3Provider.TryCreate(SourceRepository source, CancellationToken token)
   at NuGet.Protocol.Core.Types.SourceRepository.GetResourceAsync[T](CancellationToken token)
   at NuGet.Protocol.Core.Types.SourceRepository.GetResourceAsync[T]()
   at NuGet.Protocol.HttpFileSystemBasedFindPackageByIdResourceProvider.TryCreate(SourceRepository sourceRepository, CancellationToken token)
   at NuGet.Protocol.Core.Types.SourceRepository.GetResourceAsync[T](CancellationToken token)
   at NuGet.Protocol.Core.Types.SourceRepository.GetResourceAsync[T]()
   at Microsoft.Net.Insertions.Api.PropsVariableDeducer.GetPackageFileList(DefaultConfigUpdater defaultConfigUpdater, PackageUpdateResult packageUpdate) in C:\src\insertions-client\src\InsertionsClient\Api\Props\PropsVariableDeducer.cs:line 122

...

Completed successfully.

Running the tool again with the same command line but without undoing the changes it's made to config files does not log the errors anymore.

  1. Why doesn't the NuGet failure cause the tool to fail?
  2. Why does it behave differently depending on the state of the config files?

Provide insertions client GUI option

My first code drop of the tool started as a simple 2 parameter command line. Now boasting support for 9 input parameters; some of which with dependency with others.

Until the insertions client codebase is integrated into a fully automated VS insertions process, a GUI option may make life easier for tool users.

image

Separate console app from the api

Currently, InsertionApi and the command line input parsing are both done in the same console project.

Create a class library for the insertion api and keep console app as a separate project so that we can reference the api independently within other projects.

Download timeouts immediately

Default timeout value is 240 seconds, which is passed as milliseconds to the async method.
Operation times out since 240 milliseconds is too short.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.