diff --git a/Paket.sln b/Paket.sln index 7b1106e212..5b7df8658f 100644 --- a/Paket.sln +++ b/Paket.sln @@ -35,8 +35,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "content", "content", "{8E6D docs\content\convert_from_nuget.md = docs\content\convert_from_nuget.md docs\content\dependencies_file.md = docs\content\dependencies_file.md docs\content\faq.md = docs\content\faq.md + docs\content\github_dependencies.md = docs\content\github_dependencies.md docs\content\index.md = docs\content\index.md docs\content\lock_file.md = docs\content\lock_file.md + docs\content\nuget_dependencies.md = docs\content\nuget_dependencies.md docs\content\paket_install.md = docs\content\paket_install.md docs\content\paket_outdated.md = docs\content\paket_outdated.md docs\content\paket_update.md = docs\content\paket_update.md diff --git a/docs/content/dependencies_file.md b/docs/content/dependencies_file.md index ee6e657ba4..19df2a552e 100644 --- a/docs/content/dependencies_file.md +++ b/docs/content/dependencies_file.md @@ -13,11 +13,13 @@ To give you an overview, this is what Paket's `paket.dependencies` file looks li nuget "FAKE" "~> 3.4" nuget "FSharp.Formatting" "~> 2.4" nuget "DotNetZip" "~> 1.9.3" - nuget "SourceLink.Fake" "~> 0.3" + nuget "SourceLink.Fake" "~> 0.3" + github forki/FsUnit FsUnit.fs // Only in 0.2.0 alpha versions The syntax looks familiar to users of Ruby's [bundler](http://bundler.io/) [Gemfile](http://bundler.io/gemfile.html). This is intended because it proved to work well for the authors of Paket. -The file specifies that Paket's dependencies should be downloaded from [nuget.org](http://www.nuget.org) and that we need e.g. [`FAKE`](http://fsharp.github.io/FAKE/) [in version `3.4 <= x < 3.5`](#pessimistic-version-constraint) as a build tool. +The file specifies that Paket's dependencies should be downloaded from [nuget.org](http://www.nuget.org) and that we need e.g. +[`FAKE`](http://fsharp.github.io/FAKE/) [in version `3.4 <= x < 3.5`](#pessimistic-version-constraint) as a build tool. Only direct dependencies should be listed. Paket uses this definition to compute a concrete dependency resolution, which also includes indirect dependencies. The resulting dependency graph is then persisted to the [`paket.lock` file](lock_file.html). diff --git a/docs/content/faq.md b/docs/content/faq.md index 94fb8aada0..349cacaf61 100644 --- a/docs/content/faq.md +++ b/docs/content/faq.md @@ -10,7 +10,7 @@ Paket on the other hand maintains this information on a consistent and stable ba The [`paket outdated` command](paket_outdated.html) lists packages that have new versions available. -Future versions of Paket will also enable one to [reference files directly from git repositories](https://github.com/fsprojects/Paket/issues/9). +Paket also enables one to [reference files directly from GitHub repositories](github_dependencies.html). ## I'm already using NuGet. How can I convert to Paket? diff --git a/docs/content/github_dependencies.md b/docs/content/github_dependencies.md index fe8cf2f727..36cd86ec73 100644 --- a/docs/content/github_dependencies.md +++ b/docs/content/github_dependencies.md @@ -2,10 +2,29 @@ ** Only in [0.2.0 alpha versions](https://www.nuget.org/packages/Paket/0.2.0-alpha001) ** -Paket allows to link files from [Github.com](http://www.github.com) into your projects. +Paket allows to link files from [github.com](http://www.github.com) into your projects. ## Referencing a single file -You can reference a single file from [Github.com](http://www.github.com) simply by specifying the source repository and the file name in the [`paket.dependencies` file](dependencies_file.html): +You can reference a single file from [github.com](http://www.github.com) simply by specifying the source repository and the file name in the [`paket.dependencies` file](dependencies_file.html): - github forki/FsUnit FsUnit.fs \ No newline at end of file + github forki/FsUnit FsUnit.fs + +If you run the [`paket update` command](paket_update.html), then it will add a new section to your [`paket.lock` file](lock_file.html): + + [lang=batchfile] + GITHUB + remote: forki/FsUnit + specs: + FsUnit.fs (7623fc13439f0e60bd05c1ed3b5f6dcb937fe468) + +As you can see the file is pinned to a concrete commit. This allows you to reliably use the same file version in succeeding builds. + +If you want to reference the file in one of your project files then add an entry to the project's [`paket.references` file.](references_files.html): + + [lang=batchfile] + File:FsUnit.fs + +This will reference the linked file directly into your project. + +![alt text](img/github_reference.png "Github file referenced in project") \ No newline at end of file diff --git a/docs/content/index.md b/docs/content/index.md index 4711dc36ab..d06cc33f2c 100644 --- a/docs/content/index.md +++ b/docs/content/index.md @@ -1,6 +1,6 @@ # What is Paket? -Paket is a dependency manager for .NET and [Mono][mono] projects, which is designed to work well with [NuGet][nuget] packages. +Paket is a dependency manager for .NET and [Mono][mono] projects, which is designed to work well with [NuGet][nuget] packages and also allows to [reference files directly from GitHub repositories](github_dependencies.html). It enables precise and predictable control over what packages the projects within your application reference. More details are in the [FAQ](faq.html). [mono]: http://www.mono-project.com/ diff --git a/docs/files/img/github_reference.png b/docs/files/img/github_reference.png new file mode 100644 index 0000000000..f1a0457a0a Binary files /dev/null and b/docs/files/img/github_reference.png differ diff --git a/docs/tools/templates/template.cshtml b/docs/tools/templates/template.cshtml index 045c2f91ec..a548ef8c9b 100644 --- a/docs/tools/templates/template.cshtml +++ b/docs/tools/templates/template.cshtml @@ -49,6 +49,10 @@
  • paket.dependencies
  • paket.lock
  • paket.references
  • +
  • +
  • NuGet dependencies
  • +
  • GitHub dependencies
  • +
  • API Reference