Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider pay-for-play for tools packages #5273

Closed
natemcmaster opened this issue May 5, 2016 · 4 comments
Closed

Consider pay-for-play for tools packages #5273

natemcmaster opened this issue May 5, 2016 · 4 comments
Assignees
Labels
closed-fixed The issue has been fixed and is/will be included in the release indicated by the issue milestone. type-bug
Milestone

Comments

@natemcmaster
Copy link
Contributor

Installing Microsoft.EntityFrameworkCore.Tools into a desktop .NET project brings with it packages that are only there for .NET Core CLI commands. Although this can be harmless, this means csproj/packages.config projects end up with about 20 packages and references they don't actually need. This also makes uninstalling tools.

IMO we should consider pay-for-play. A package such as Ms.EFCore.Tools.Powershell could eliminate bringing in these unnecessary packages.

Result of blank csproj + Install-Package Microsoft.EntityFrameworkCore.Tools -pre

<packages>
  <package id="Ix-Async" version="1.2.5" targetFramework="net452" />
  <package id="Microsoft.AspNetCore.Hosting.Abstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.AspNetCore.Hosting.Server.Abstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.AspNetCore.Http.Abstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.AspNetCore.Http.Features" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.DotNet.Cli.Utils" version="1.0.0-rc2-002611" targetFramework="net452" />
  <package id="Microsoft.DotNet.InternalAbstractions" version="1.0.0-rc2-002611" targetFramework="net452" />
  <package id="Microsoft.DotNet.ProjectModel" version="1.0.0-rc2-002611" targetFramework="net452" />
  <package id="Microsoft.EntityFrameworkCore" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.EntityFrameworkCore.Relational" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.EntityFrameworkCore.Relational.Design" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.EntityFrameworkCore.Tools" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.EntityFrameworkCore.Tools.Cli" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.EntityFrameworkCore.Tools.Core" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.Caching.Abstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.Caching.Memory" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.CommandLineUtils" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.Configuration.Abstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.DependencyInjection" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.DependencyModel" version="1.0.0-rc2-002611" targetFramework="net452" />
  <package id="Microsoft.Extensions.FileProviders.Abstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.Logging" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.Logging.Abstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.Options" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.PlatformAbstractions" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Microsoft.Extensions.Primitives" version="1.0.0-rc2-20801" targetFramework="net452" />
  <package id="Newtonsoft.Json" version="7.0.1" targetFramework="net452" />
  <package id="NuGet.Common" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Configuration" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.DependencyResolver.Core" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Frameworks" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.LibraryModel" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Packaging" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Packaging.Core" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Packaging.Core.Types" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.ProjectModel" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Protocol.Core.Types" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Protocol.Core.v3" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Repositories" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.RuntimeModel" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="NuGet.Versioning" version="3.5.0-rc-1238" targetFramework="net452" />
  <package id="Remotion.Linq" version="2.0.2" targetFramework="net452" />
  <package id="System.Collections" version="4.0.11-rc2-24027" targetFramework="net452" />
  <package id="System.Collections.Concurrent" version="4.0.12-rc2-24027" targetFramework="net452" />
  <package id="System.Collections.Immutable" version="1.2.0-rc2-24027" targetFramework="net452" />
  <package id="System.ComponentModel" version="4.0.1-rc2-24027" targetFramework="net452" />
  <package id="System.Diagnostics.Debug" version="4.0.11-rc2-24027" targetFramework="net452" />
  <package id="System.Diagnostics.DiagnosticSource" version="4.0.0-rc2-24027" targetFramework="net452" />
  <package id="System.Globalization" version="4.0.11-rc2-24027" targetFramework="net452" />
  <package id="System.IO" version="4.1.0-rc2-24027" targetFramework="net452" />
  <package id="System.Linq" version="4.1.0-rc2-24027" targetFramework="net452" />
  <package id="System.Linq.Expressions" version="4.0.11-rc2-24027" targetFramework="net452" />
  <package id="System.Reflection" version="4.1.0-rc2-24027" targetFramework="net452" />
  <package id="System.Reflection.Metadata" version="1.3.0-rc2-24027" targetFramework="net452" />
  <package id="System.Resources.ResourceManager" version="4.0.1-rc2-24027" targetFramework="net452" />
  <package id="System.Runtime" version="4.1.0-rc2-24027" targetFramework="net452" />
  <package id="System.Runtime.Extensions" version="4.1.0-rc2-24027" targetFramework="net452" />
  <package id="System.Runtime.InteropServices" version="4.1.0-rc2-24027" targetFramework="net452" />
  <package id="System.Text.Encodings.Web" version="4.0.0-rc2-24027" targetFramework="net452" />
  <package id="System.Threading" version="4.0.11-rc2-24027" targetFramework="net452" />
  <package id="System.Threading.Tasks" version="4.0.11-rc2-24027" targetFramework="net452" />
</packages>
``
@ErikEJ
Copy link
Contributor

ErikEJ commented May 5, 2016

Yes, I noticed this when getting the latest Tools package for a demo. This seems insane, and contrary to your pay per play goals

@rowanmiller
Copy link
Contributor

Kinds of a dupe of #4830, which we ultimately decided was a dupe of #4546

@natemcmaster
Copy link
Contributor Author

natemcmaster commented May 5, 2016

kinds of a dupe

Yes, but not 100% overlap with #4546. Adding Ms.EfCore.Tools.Cli as a dependency of Ms.EfCore.Tools is orthogonal to #4546. Its addition alone accounts for ~20 or so unnecessary dependencies.

@natemcmaster
Copy link
Contributor Author

Remarking for triage: this can wait until after RTM.

@rowanmiller rowanmiller added this to the 1.0.1 milestone May 26, 2016
@rowanmiller rowanmiller removed the pri0 label Jul 6, 2016
natemcmaster pushed a commit that referenced this issue Aug 11, 2016
Issues:

 - Fix #646 - implements assembly-based command line interface
 - Fix #5273 - Split tools packages into .Tools.DotNet and .Tools.VisualStudio
 - Fix #5334 - Refactor cmdlets/dotnet-ef to invoke ef.exe/ef.dll
 - Fix #5684 - Use nuspec's instead of Sake
 - Fix #5839 - throw warning when architecture is not in {x86, x64, AnyCPU}

Other changes:

 - Add --no-color and --no-appdomain to command line tools
 - Add --json option to 'dbcontext scaffold' and 'migrations remove'
 - Refactor the inside-man invocation for Tools.DotNet to use "ef.dll" instead of invoking .Design.exe.
 - Add native powershell module for processing/forwarding streams
 - Reorganize code
    *  💔 break up DotNet and VisualStudio command line tools into separate packages
    * Push down execution logic dode from Tools.VisualStudio into .Design.
    * Lift code from .Design.Core to .Design
    * Reorganize test projects
    * Create a powershell only project for Tools.VisualStudio
    * Move tests into appropriate test projects and adjust namespaces
@natemcmaster natemcmaster added the closed-fixed The issue has been fixed and is/will be included in the release indicated by the issue milestone. label Aug 12, 2016
@ajcvickers ajcvickers modified the milestones: 1.1.0-preview1, 1.1.0 Oct 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
closed-fixed The issue has been fixed and is/will be included in the release indicated by the issue milestone. type-bug
Projects
None yet
Development

No branches or pull requests

5 participants