-
-
Notifications
You must be signed in to change notification settings - Fork 59
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
Please tag v1.x.x #28
Comments
Hi thanks for your feedback. This gem hasn't ever had a stable API and things have changed quite a bit (even between 0.6.x and 0.7.x), however I do maintain compatibility between minor versions. A 1.0 release could be sooner rather than later now that I've implemented all the functionality I wanted, but I like to let things settle a bit before doing 1.0 because as you've said this should be a stable and mostly bug free release. I'll review the situation in more detail and see what is appropriate. |
Cool, thanks for the considered response. I'm not sure v1.0.0 needs aim for bug-free; that can be addressed by patch-level version bumps. As for stability of the API; there's probably enough people using it now that backwards incompatible changes will be painful. Tagging current as v1.0.0 means you can signal those changes via a v2.0.0 release in future. Thanks for the open-source code, and I hope you don't mind me ranting about my versioning opinions :) |
Okay so I remembered two of the last remaining things I wanted to do:
I've released 0.8.0 which will probably become the 1.0.0 release. If possible, I'll get people to test with 0.8.0 and then if there aren't any issues within two weeks I'll make 1.0.0 release. |
By the way, you should definitely be using the latest 0.7.x release as there are some issues with the older releases. Ideally, going forward, target 0.8.x and then within two weeks there will be a 1.0 release. |
@ioquatix With the recent change from EventMachine to Celluloid in the 0.9.x version do you have an updated timeline for a 1.0 release? Is there anything that I can do to help get RubyDNS to a 1.0? Thanks. |
@petergoldstein Testing, testing and more testing :) The timeline is by the end of this year, but it also will depend on the outstanding bugs in Celluloid and whether they get resolved.. I'm currently trying to fix this one (I've got a half assed work around which I'll try today): Less important is this one: |
Another issue which is currently hacked around in RubyDNS: |
While less important, getting the examples all working again would be useful since people use them as starting points. |
@ioquatix Ok, let me start with the examples because there's less of a learning curve than diving into Celluloid internals. Thanks for the update! |
So, the first example I restored was the wikipedia DNS. It had some minor spelling error in a module name and the HTTP requester was based on I've added two more example files 9227809 - they need to be tested. They might need to have documentation updated (e.g. RExec is no longer used). It's also useful for people to add in to the file, an example of what dig command to run and what output you'd expect. @petergoldstein Those two examples, if you can test them and bring them "up to spec" that would be great. |
Invoker currently does not start on a new install because it will use RubyDNS 0.9.0 which was released on 10/23/14. This took an exceptionally long time to troubleshoot because of celluloid, but I finally tracked it down! Invoker's gemspec locks RubyDNS to `~> 0.7`, however [the author states](socketry/rubydns#28) that `0.x` releases are incompatible, but minor versions should be compatible. Here is the [offending change](socketry/rubydns@v0.8.5...v0.9.0#diff-d86035f01d9c6b072797c19b43eb736aL116) in 0.9.0. For the time being you can add the following to your own `Gemfile`: `gem 'rubydns', '~> 0.8.5'` Here is a trace of what happens when you run with RubyDNS 0.9.0: ``` → invoker start Procfile D, [2014-10-26T09:45:30.515304 #59891] DEBUG -- : Terminating 1 actor... vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:39:in `check': wrong number of arguments (1 for 0) (ArgumentError) from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:24:in `dispatch' from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:63:in `dispatch' from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:in `block in invoke' from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in `block in task' from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:in `block in task' from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in `block in initialize' from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:in `block in create' from (celluloid):0:in `remote procedure call' from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:92:in `value' from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:17:in `block in run' from vendor/bundle/bundler/gems/eventmachine-4d53154a9ea4/lib/eventmachine.rb:187:in `call' from vendor/bundle/bundler/gems/eventmachine-4d53154a9ea4/lib/eventmachine.rb:187:in `run_machine' from vendor/bundle/bundler/gems/eventmachine-4d53154a9ea4/lib/eventmachine.rb:187:in `run' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:13:in `run' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:7:in `block in fork_and_start' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:7:in `fork' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:7:in `fork_and_start' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/process_manager.rb:72:in `run_power_server' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/commander.rb:39:in `start_manager' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/cli.rb:46:in `start' from vendor/bundle/gems/thor-0.19.1/lib/thor/command.rb:27:in `run' from vendor/bundle/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command' from vendor/bundle/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch' from vendor/bundle/gems/thor-0.19.1/lib/thor/base.rb:440:in `start' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/cli.rb:12:in `start' from vendor/bundle/gems/invoker-1.3.0/bin/invoker:7:in `<top (required)>' from ./bin/invoker:16:in `load' from ./bin/invoker:16:in `<main>' ```
Invoker currently does not start on a new install because it will use RubyDNS 0.9.0 which was released on 10/23/14. This took an exceptionally long time to troubleshoot because of celluloid, but I finally tracked it down! Invoker's gemspec locks RubyDNS to `~> 0.7`, however [the author states](socketry/rubydns#28) that `0.x` releases are incompatible, but minor versions should be compatible. Here is the [offending change](socketry/rubydns@v0.8.5...v0.9.0#diff-d86035f01d9c6b072797c19b43eb736aL116) in 0.9.0. For the time being you can add the following to your own `Gemfile`: `gem 'rubydns', '~> 0.8.5'` Here is a trace of what happens when you run with RubyDNS 0.9.0: ``` → invoker start Procfile D, [2014-10-26T09:45:30.515304 #59891] DEBUG -- : Terminating 1 actor... vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:39:in `check': wrong number of arguments (1 for 0) (ArgumentError) from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:24:in `dispatch' from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:63:in `dispatch' from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:in `block in invoke' from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in `block in task' from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:in `block in task' from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in `block in initialize' from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:in `block in create' from (celluloid):0:in `remote procedure call' from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:92:in `value' from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:17:in `block in run' from vendor/bundle/bundler/gems/eventmachine-4d53154a9ea4/lib/eventmachine.rb:187:in `call' from vendor/bundle/bundler/gems/eventmachine-4d53154a9ea4/lib/eventmachine.rb:187:in `run_machine' from vendor/bundle/bundler/gems/eventmachine-4d53154a9ea4/lib/eventmachine.rb:187:in `run' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:13:in `run' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:7:in `block in fork_and_start' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:7:in `fork' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:7:in `fork_and_start' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/process_manager.rb:72:in `run_power_server' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/commander.rb:39:in `start_manager' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/cli.rb:46:in `start' from vendor/bundle/gems/thor-0.19.1/lib/thor/command.rb:27:in `run' from vendor/bundle/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command' from vendor/bundle/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch' from vendor/bundle/gems/thor-0.19.1/lib/thor/base.rb:440:in `start' from vendor/bundle/gems/invoker-1.3.0/lib/invoker/cli.rb:12:in `start' from vendor/bundle/gems/invoker-1.3.0/bin/invoker:7:in `<top (required)>' from ./bin/invoker:16:in `load' from ./bin/invoker:16:in `<main>' ```
Nice, thanks again for your efforts @ioquatix. |
Could you please release and tag a semver v1.x.x?
No meaningful relationship between v0.x.x releases can be inferred. There's no guarantee that v0.7.4 will be in any way compatible with v0.7.3.
This means library authors need to lock their dependencies to the patch-version, making interoperability painful. For example landrush.gemspec locks to rubydns 0.7.0 while vagrant-dns.gemspec locks to rubydns 0.6.x, so they can't both be loaded at once.
A v1.0.0 release doesn't need to be finished or perfect, it just defines the backwards-compatibility semantics moving forwards, and should be released pretty much as soon as the code is being used in the wild.
Thanks!
The text was updated successfully, but these errors were encountered: