fsprojects / fsprojects/Paket

Allow renaming Github file dependencies

Open
#1,641 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement github spec up-for-grabs
Dominant language
F#
Stars
2.1k
Forks
528
Avg merge
1d 12m
Merged PRs (30d)
54

Description

Description

I attempted to include two Github file dependencies with the same filename: Helpers.fs. It's a terrible name, to be certain, but it is common, and I don't know of a way within paket.references to disambiguate. If some means already exists, I apologize for overlooking it. I tried a few options, and nothing appeared to work.

Repro steps
  1. Add the following dependencies to a paket.dependencies file:
    github isaacabraham/fsharp-demonstrator src/FootballLibrary/Helpers.fs
    github isaacabraham/fsharp-demonstrator src/SuaveHost/Helpers.fs
  2. Add the following lines to the project's paket.references file:
    File:Helpers.fs .
  3. As an attempt at disambiguation, I tried the following:
    File:src/FootballLibrary/Helpers.fs ./Helpers.fs
    File:src/SuaveHost/Helpers.fs ./SuaveHelpers.fs
Expected behavior

I was uncertain what might happen. I would propose the following:
Allow disambiguation by specifying the full file path used in the paket.dependencies file.
I think the use of ./SuaveHelpers.fs for the second file would have worked as expected, but if not, I would like if we could change the target file name using the above approach.

Actual behavior

Only src/FootballLibrary/Helpers.fs is added to the project.

Known workarounds

I manually linked to the file in paket-files from my .fsproj and made sure not to specify that the link was maintained by <Paket />. This seems to work, as the first Helpers.fs is always retrieved due to either dependency order in paket.dependencies or alphabetical ordering of the folders within paket-files.

Related information
  • Operating system: Windows Server 2012 R2
  • Branch
  • .NET Runtime, CoreCLR or Mono Version: .NET 4.6
  • Performance information, links to performance testing scripts

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.

Research direction

Start by tracing how the paket.dependencies GitHub file entries are resolved into paket-files and how paket.references maps them into the project. Review the conflicting Helpers.fs reproduction, including the attempted path and target-name forms, then inspect the generated .fsproj links. Done means both dependencies can be referenced unambiguously with the proposed path or rename syntax.

Written by the indexing model from the issue text.

Assessment

Tech stack
fsharp
Domain
build-system, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.