question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Improve Paket.Bootstrapper.exe and Paket.exe for use in F# Scripting

See original GitHub issue

I know there’s an example of how to use Paket inside a fsx, but I think the usage of Paket.Bootstrapper and Paket in F# scripts could be greatly improved by modifying the exposure of their API for consumption and the addition of a few more functions for ease of use.

After a minor tweak to expose the main function of the bootstrapper setting up a Fake build script intended to be run with fsi and appropriate for inclusion in a github repo was as simple as

#r "./.paket/paket.bootstrapper.exe"
Paket.Bootstrapper.Program.Main [|""|]
#r "./.paket/paket.exe"
let dependencies = Paket.Dependencies.Locate __SOURCE_DIRECTORY__
dependencies.Restore()
#r "packages/Fake/FakeLib.dll"
open Fake

Adding a parsing function that takes the same strings as main does on the commandline that writes the output to console would make this easy to use by anyone already familiar with the bootstrapper.

The surface area of Paket’s public API seems a bit excessive but maybe that’s not too important

Like the bootstrapper Paket.exe should expose a parsing function taking commandline args as strings and that writes its output to console.

At the same time all of the commands should be exposed in a strongly typed manner to allow more complex programmatic construction and execution of paket’s functions. Maybe it’d be useful to more concretely model the domain space for the types returned by these functions?

It could also be useful to implement help message functions for the exposed scripting apis that give back intellisense-like or explanatory information about the functions based on their names since there won’t be any intellisense provided by an xml file shipped with the .exe

Issue Analytics

  • State:closed
  • Created 7 years ago
  • Comments:19 (8 by maintainers)

github_iconTop GitHub Comments

1reaction
enricosadacommented, Jan 24, 2018

@brianary please try load scripts. Works really well ihmo, and are easier to reason about (just create a group if you want to isolate deps of a script, like for fake build )

If not, please reopen this or another issue

0reactions
brianarycommented, Jan 24, 2018
Read more comments on GitHub >

github_iconTop Results From Across the Web

The Paket bootstrapper (paket.bootstrapper.exe)
A dependency manager for .NET with support for NuGet packages and git repositories.
Read more >
EDIT
The simplest, and maybe the best thing to do is to download paket.bootstrapper.exe if it didn't get generated along with your project.
Read more >
Paket installation
The most common use of Paket is as a command line tool inside your project repository. ... Download the latest paket.bootstrapper.exe into that...
Read more >
paket.exe, paket.bootstrapper.exe don't work behind proxy
I suggest to always use default system proxy programmatically for downloading paket.exe and nuget packages.
Read more >
FSharp: Learning to use FAKE and Paket
To start using paket, simply download paket.bootstrapper.exe from their github repo and place it at the root of your project.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found