Skip to content

Project has compile-time dependencies despite 'no dependency' promise in README? #251

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

Closed
pracplayopen opened this issue Mar 5, 2018 · 6 comments

Comments

@pracplayopen
Copy link

checking out commandline-2.2.1 release, it contains dependencies on:

  • FAKE
  • FSharp.Core
  • FluentAssertions
  • xunit
  • FSharp.Formatting
  • FsCheck
  • gsscoder/CSharpx
  • gsscoder/railwaysharp

While some of these are test only, some (csharpx and railwaysharp) seem to be required in implementation.

Mentioning because in your project README, it states command-line features as:

"Doesn't depend on other packages (No dependencies beyond standard base libraries)"

Is the inclusion of these dependencies in 'src' a mistake or a project error?
I notice older versions did not depend on 3rd party libraries for example.

Thanks for creating this library, just wanted to make sure you were aware of this discrepency.
Going to try to use an older version.

@pracplayopen
Copy link
Author

confirming that 1.9.71.2 was last release to comply with no external implementation depends.

just fyi thx again

@nemec
Copy link
Contributor

nemec commented Mar 6, 2018

Hi @pracplayopen, the creator of the library pretty much rewrote this library for version 2.0 prior to us becoming maintainers, and I assume he intentionally added all of those dependencies.

Recently I believe we did make the dependency on F# optional, but even then I believe the spirit of the line "Doesn't depend on other packages" was written with the Nuget package in mind, not the src/ tree. Dependencies like xunit and FluentAssertions are only used in the test project and I have no desire to remove those dependencies in non-runtime code to fit the 'no dependencies' statement. If you plan to build the source yourself, you should be able to satisfy your needs by excluding the CommandLine.Tests project from compilation.

That said, if you see any non-base library dependencies being pulled in by the NuGet package (.NET Core added a few NuGet deps due to modularization, but all of them are dependencies from the BCL), please let me know.

Hope this answers your question.

@pracplayopen
Copy link
Author

thanks for fast reply. totally understand the test dependencies being external.

sorry if it wasn't very clear from first post. the last two dependencies are being pulled from outside and are not just used by tests but are used by the core in a number of places. it did not seem easy to remove them, just fell back to 1.9 instead.

  • gsscoder/CSharpx
  • gsscoder/railwaysharp

@nemec
Copy link
Contributor

nemec commented Mar 6, 2018

Yes, you're right about those two - 'Maybe' from the CSharpx repo is used all over the codebase and it would be difficult to extricate it.

Thank you for reporting this.

@ericnewton76
Copy link
Member

Ok I'll weigh in on this briefly.

"Doesn't depend on other packages (No dependencies beyond standard base libraries)"

This is implying that the core commandline Nuget package doesn't require any additional dependencies. We created an additional commandline.FSharp support package that does require only one additional dependency: the FSharp core package.

This package dependency assertion does not imply that there's no other building and testing and source code dependencies. In fact, we're doing as much as possible to prevent Nuget package dependencies to have the Nuget package as dependency-free as possible. The only real assertion of "Doesnt depend on other packages" is for the Nuget package itself.

@pracplayopen
Copy link
Author

pracplayopen commented Mar 7, 2018

going to step away just wanted to point out this is not a criticism in any way, just an observation of how the codebase changed in 2.x and it was materially different w/respect to that line in readme.

obviously no issue with using any lib you want. to me there aren't too many people that say "we could use any library in nuget and still say it's not dependent on 3rd party libs." my .02 there. the easiest thing to do in that event is to remove that line from readme. not my place so i bow out.

anyways, great project and thanks for responding.

@nemec nemec closed this as completed Mar 7, 2018
@nemec nemec changed the title breaking project goals or a change of goals? Project has compile-time dependencies despite 'no dependency' promise in README? Mar 29, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants