fsprojects / fsprojects/Paket

Repo tools

Open
#2,919 6 comments 0 reactions 1 assignee View on GitHub

@enricosada is already working on this.

Since Jan 23, 2018.

enhancement
Dominant language
F#
Stars
2.1k
Forks
528
Avg merge
1d 12m
Merged PRs (30d)
54

Description

We need console app (tools from now on) for lots of reason in development.

Some are helpers for dev (dotnet-watch, serve, forge, ildasm).

Some are needed by build (nunit-console, ilrepack) or for both (fake, dotnet-fable, dotnet-xunit)

While the former (dev tools) MAY not need to be versioned with codebase, the latter (for build, for both) should be to make build reproducible.

Tools should be easy to install, nice developer UX from cli, easy runnable from shell scripts, multi os and runtimes, versioned with repo (if needed), can be invoked by any third party tooling.

paket should be able to manage per repo tool.

why? after restore

  • fake (or paket run fake) with the avaiabile runtime (.net or .net core)
  • fable (or paket run fable) who will work in any dir

Similar: npm run <cmd>, yarn run <cmd>, bundle exec <cmd> (and binstubs), cargo <cmd>

An example of proposed is in https://github.com/enricosada/paket-repotool-testing/ ready to clone and use. it's the result of the WIP PR https://github.com/fsprojects/Paket/pull/2938 and will be maintained until is merged

We need two things:

  • binaries (per framework runtime)
  • invocation

For example. for an hello tool (who is just a .net console app)

the binaries ( see also below), we can package in a nupkg, in tools/netcoreapp/hello.dll, and tools/net45/hello.exe.
Or just from github releases

For invocation:

  • create a paket-files\paket\bin directory
  • put some wrapper script hello/hello.cmd who just run dotnet /path/to/tools/netcoreapp/hello.dll or mono /path/to/tools/net45/hello.exe
  • and paket run hello (who just invoke that script file)

adding in a dir the wrapper script, helps because is possibile to add it to PATH, and run commands just as hello.

More info https://github.com/enricosada/paket-repotool-testing/ README

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.