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
Imports & Dependencies #100
Comments
Yes... I also do not feel too good with all these dependencies directly in the acme package. My thought was that I first wanted to get the feature stable and then do a clean up to structure it in a way I feel comfortable with. As we progress on DNS-01 I think it is a good time to start thinking about this. |
That being said... I am in favor of packages per DNS provider and just having the manual provider in the acme package itself as it does not add a dependency but allows for completion of the challenge. |
I actually got an email from someone packaging Caddy for Debian and since Caddy uses the acme package, and mitchellh/goamz was one of them that was questioned as why it was being used. Also the miekg/dns package is cool but it's huuuge. +1 to refactoring. |
related to dependencies, was there a specific motivation for using |
ping @janeczku |
+1 to the refactoring
Mostly that it seemed overkill to import such a huge library for basically just a single API method: |
@jehiah #144 was merged and it removed most of the dependencies from the ACME package.
We could not get rid of the |
@xenolf this is fantastic. I think that resolves this issue! |
I sweat dependency trees, and really enjoy light libraries. One of the initial appeals to me of
lego
overhlandau/acme
was how light this project was in terms of dependencies to accomplish what i needed. ❤️Unfortunately, with the current code structure, the addition of support for multiple DNS providers to solve the
dns-01
challenge has increased the dependency tree 🙈.To import
github.com/hlandau/acme
the current dependency tree you need to support isOf these, I'd love to skip 6 of them (
vaughan0/go-ini
is a sub dependency ofmitchellh/goamz/route53
), so I'd like to propose two options for refactoring the code structure to make these dependencies separate from the mainacme
package.a) Move all
providers
into a singlexenolf/lego/providers
packageb) Move per-challenge pacakges (ie:
xenolf/lego/providers/dns01
xenolf/lego/providers/http01
etc)c) move to per-provider packages (ie:
xenolf/lego/providers/dns/cloudflare
,xenolf/lego/providers/dnsimple
, ...)d) some combination of the above?
(Note: i'm proposing structure, not specific naming). Since i personally don't care about the DNS providers, 2 and 3 are equal for me. I imagine others might feel differently, and the ideal case might change when more options w/ dependencies are added (like say #28).
The key is that the
acme
package doesn't import these packages (because that makes them all a dependency), the cli code would import them and set them as appropriate on theClient
. Depending on the approach, the default http and tls-sni providers may or may not be moved.thoughts @xenolf ?
The text was updated successfully, but these errors were encountered: