❔ How do I Open Source Software correctly?
I'm worried that I don't know how to OSS correctly.
How do I choose a library? I want to write C# code that controls and monitors Docker containers. How do I find a good, supported library that does it?
I searched around and found this one: https://www.nuget.org/packages/Docker.DotNet/ Where do I find documentation for this library? There's a README, but it's incomplete, just some examples; covers about 10% of the library, I figure. How do I learn more?
Docker.DotNet 3.125.12
Docker.DotNet is a library that allows you to interact with the Docker Remote API programmatically with fully asynchronous, non-blocking and object-oriented code in your .NET applications.
23 Replies
Github repos usually list the license of the library
If that matches your use case you're good to go
What about the viability of the code? How do I know the project isn't abandoned?
GitHub
GitHub - mariotoffia/FluentDocker: Use docker, docker-compose local...
Use docker, docker-compose local and remote in tests and your .NET core/full framework apps via a FluentAPI - GitHub - mariotoffia/FluentDocker: Use docker, docker-compose local and remote in tests...
I guess the best way to just is to check the commit history
How recent / frequent commits take place
Check the issues tab and responsiveness there
And contributor count is also good to check, doesn't help to have a very active repo if it's one guy and that one suddenly decides to jump ship
For example, FluentDocker hasn't had a release since December of 2021.
And it seems to have the same documentation problem. Just a README, no docs.
That's true, maybe I should also use another one at some point, but I don't have the same concerns as you for what I use it 😄
Without documentation, how did you learn to use it? I guess you have to read all the code?
Basically I never needed much more than the first few examples on how to start a container and build an image
So I'm not sure about how well it supports managing running containers as you need it
I wonder what you would do if your use case was non-trivial.
Yeah you are kind of at the mercy of the maintainers to provide enough documentation, but that's the thing about open source, you're not paying anything so there's no one to complain to if you don't get what you need
That seems kind of crazy. Why would anyone bet their success on such a weak promise?
Because you'd have to roll your own code for everything otherwise
I guess. But I'm going to have to build my own, anyway, if I can't find a documented and viable solution.
Most Github repos have issues, and more and more of them also have discussions enabled. They're usually a good place to ask questions
Besides that, intellisense and reading the code
Those requirements start to defeat the purpose of reuse.
By that standard, Docker.Net isn't abandoned. The FuentDocker solution that Sossenbinder recommended is certainly abandoned.
OK
How do I choose a library?2 Factors that come to mind - Popularity (github stars, nuget downloads) - Maintenance (Mix of: commit count, last commit at & issues (-solved))
What number of github stars or nuget download should I look for?
Just outstanding from the alternatives
So pick the package with the most stars and/or downoads of those that support my needs?
Well, popularity is pointless if it wasnt maintained for 10 years 😄
Maintenance is pointless if no one uses it, and youre running into the bleeding edge
Find a balance; That's my two cents
Thanks. I guess The Cathedral and the Bazaar still applies. 😐
Pick your Poison 💉
Was this issue resolved? If so, run
/close
- otherwise I will mark this as stale and this post will be archived until there is new activity.