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

Forge 3.0 #115

Krzysztof-Cieslak opened this Issue Jul 3, 2018 · 4 comments


None yet
3 participants

Krzysztof-Cieslak commented Jul 3, 2018

World has changed. We know live in era of .Net Core and what’s even more important in the era of .Net SDK and dotnet CLI tool. This means that we should think about what’s the place of Forge in this new world. Here are couple of my ideas:

  • Move Forge to .Net Core
  • Publish Forge as dotnet CLI global tool
  • Remove project scaffolding part of the tool - community has embraced the dotnet new templates and it’s just fine.
  • Add commands to initialize Paket and FAKE in existing projects - one of the biggest advantages of Forge over dotnet is fact it uses Paket and FAKE for all templates which is not the case for dotnet new
  • Add commands for changing properties in project file - this may be used for editing project files with some nice UI in editors.

This comment has been minimized.

MangelMaxime commented Jul 3, 2018

Moving Forge to .Net Core seems a good move as we are trying to move all the F# project there I think :).

Can a CLI global tool be used locally ?

Like we did in the past using clitool via paket.

I am asking this because I am still wondering if global tool are something nice... I mean, you don't always want the same version for all your projects etc. So if user can decide, it ok :)

I am not sure to understand the point n°3. The idea is to provide an easy plug-in to FAKE/Paket for template that don't use one of them ? Should't we try to add the support to the template instead ? We could use conditional choice for that.

Last point seems like a good idea, only if Forge do not modify what it don't understand. For example, on a Fable library forge always remove this lines:

  <!-- Add source files to "fable" folder in Nuget package -->
    <Content Include="*.fsproj; **\*.fs" PackagePath="fable\" />

This comment has been minimized.

JacobChang commented Jul 8, 2018

To me,1 moving to .Net core seems a good suggestion.

2、3、4 I prefer Saturn way,a template contains a Cli tool

5 I thought we already have Mechanic


This comment has been minimized.

MangelMaxime commented Jul 8, 2018

@JacobChang Mechanic is only about finding a correct order for the files using an algorithm.

Here, I think it more about providing a tool to move up/down a file, add/remove properties to the *proj etc.


This comment has been minimized.

JacobChang commented Jul 9, 2018

@MangelMaxime I see, I hope we don't fall into the npm trap, too many tools for related task.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment