celluloid / celluloid-dns

UNMAINTAINED: See celluloid/celluloid#779 - Celluloid::IO-powered DNS server
https://celluloid.io
57 stars 13 forks source link

Copy RubyDNS into Celluloid::DNS. #5

Closed ioquatix closed 9 years ago

ioquatix commented 9 years ago

@tarcieri I am happy to put some time aside to do this. What do you think?

There are a couple of options:

Rename RubyDNS to Celluloid::DNS and add compatibility layer for existing code depending on Celluloid::DNS.

Copy specific parts (e.g. just resolver and/or just basic server, etc).

Something else?

/cc @digitalextremist @e2

ioquatix commented 9 years ago

Within reason, if we go for the first option, I'd look at deprecating RubyDNS and as such I'd like to maintain at least the illusion of control over the code that goes into this one.

digitalextremist commented 9 years ago

Just checked to make sure you have access, and you do @ioquatix. Forming a reply but want to emphasize that, especially if it's the first route. And .author in the gemspec ...

My own feelings are that I like the idea of bringing code into Celluloid, even entire suites, not just taking it out. I think we're moving into a time of having suite diversity, with many core committers not only working on Celluloid, but bringing in gems and maintaining them alongside Celluloid.

... more complete reply coming.

ioquatix commented 9 years ago

I guess one other option is that you guys give me access to celluloid-dns on RubyGems and I simply rename RubyDNS and bump the major version and push..

ioquatix commented 9 years ago

Is celluloid-dns even the right name? Shouldn't it be more likely celluloid-io-dns? Because you couldn't avoid using celluloid-io except with the most basic of resolver implementations.

digitalextremist commented 9 years ago

@ioquatix can you give me a second before you obsolete my whole reply :)

tarcieri commented 9 years ago

@ioquatix happy to have you do whatever works and generally drive this integration. Celluloid::IO definitely needs a better DNS resolver!

digitalextremist commented 9 years ago

@ioquatix I came to the same conclusion: it's truly celluloid-io-dns ... but from a "brand" perspective that's a tough sell. I thought about creating a celluloid-io organization and making it celluloid-io/dns ... to me this solves a bigger issue. I love Reel for example, but it feels like it's in another organization. There's not the same feeling for DCell for example, because DCell and the other libraries ( except Reel are really libraries, or frameworks, not entire servers... like RubyDNS is.

All this being thinking outloud, I do think it ought to be celluloid-io-dns ( celluloid-io/dns ) but ... that Reel follow that and become celluloid-io/web ( or another word which is not http, https, ws, wss, sse, etc ... since it's multiprotocol, but "a web server" ) ... and that we all conspire to write an IMAP server as celluloid-io/imap ... end result... bigger picture over the next 2-5 years:

We could bring together celluloid-dns, celluloid-web, and celluloid-web to have a virtualhost manager which is 100% Celluloid ... I don't say this in a "competing" sense, i.e. try to disrupt cPanel or Ajenti or Webmin, etc... but that I am sure sick and tired of dealing with Zimbra for example. Truly DIY people who would use Reel for example, would love to have the ability to completely maintain the code behind the software that maintains their virtualhost environment.

So in the short term: yes. Hell yes. But I'd take this as a pivot point to create a parallel organization.

/cc: @tarcieri

ioquatix commented 9 years ago

Okay well whether another org is created is way outside my scope so.. perhaps that needs to be discussed?

Personally the flat namespace doesn't bother me. celluloid-dns means a DNS server that runs on celluloid.. the fact it depends on celluloid-io and celluloid-foo and celluloid-supervisor and celluloid-awesome-pools is coincidental I guess?

tarcieri commented 9 years ago

I would suggest vendoring the DNS resolver into Celluloid::IO itself and junking the existing Celluloid::IO::DNSResolver code. Server is a bit more of an open question. celluloid-io-dns sounds good to me.

tarcieri commented 9 years ago

I don't think we need a separate org. There's already a celluloid-dns repo you could take over if you're cool with that name:

https://github.com/celluloid/celluloid-dns

Existing code is garbage. Please throw it away :wink:

ioquatix commented 9 years ago

The only issue I can see with celluloid-io-dns is when you have two high level dependencies, e.g. lets say celluloid-io and celluloid-web were two major dependencies of celluloid-dns.. does it become celluloid-io-web-dns?

tarcieri commented 9 years ago

If you call it Celluloid::DNS, you get a free logo! :smiley:

ioquatix commented 9 years ago

Okay, the free logo, that seals the deal.

digitalextremist commented 9 years ago

( finishing off the existential crisis portion ) Handling it as how Celluloid::IO actually is ... if we were make it true to form, it wants to ducktype everything, so everything ought to be celluloid-<name> without the -io because Celluloid::IO is trying to not stand out enough to be called out as an entity unless you're working on it itself.

IMO Reel ought to be celluloid-web eventually.

digitalextremist commented 9 years ago

@tarcieri celluloid/dns ? ( still free logo )

Meaning Reel could become celluloid/web

tarcieri commented 9 years ago

I like "Reel"! :smile:

I think I'd prefer just calling it celluloid-dns to match the other projects

digitalextremist commented 9 years ago

@tarcieri celluloid/reel#192 game over

digitalextremist commented 9 years ago

Any news @ioquatix?

ioquatix commented 9 years ago

I am travelling around Europe and Asia for the next two months, it won't be until at lest I am in Tokyo that I can do this, in about 3 weeks.

digitalextremist commented 9 years ago

Wow. No hurry. I can do it for you if you'd like. Enjoy your trip @ioquatix!

ioquatix commented 9 years ago

Um, I'd prefer to do it, thanks :)

digitalextremist commented 9 years ago

Thought you might :)