Closed jdantonio closed 10 years ago
It's fine, Promise
will be ready for sure.
March 3 could be the last day for add new features, that way we'll have 2 full weeks for bug fixing and stabilize the APIs.
I'm working with @lucasallan on some new features for Actor
but it is unlikely they will be ready for this release. They are fairly major and would be better for a later release even if we were to finish them.
We definitely want Promise
in this release, thank you for your work on this.
It looks like the new features @chrisseaton is working on should be ready with plenty of time to spare.
There are a few pending tests I've been meaning to work on. I will use this release as motivation to implement those tests.
Can anyone think of anything else that should be included in the next release?
Sounds great. I'm finishing the new features in the middle of March.
What is left to do prior to the 17th? We currently have zero pending specs and 100% code coverage. I am going to add a changelog to the wiki and document the (many) changes in this release. Are we done with all intended refactoring? I'm believe we've also addressed all the tests that were failing intermittently. Are there others anyone knows about? Any known bugs?
@chrisseaton Have you completed everything you planned fro MVar
and IVar
for this release?
Again, I can't thank everyone enough for the work you put into this gem. Thanks to all of you, especially @mighe and @chrisseaton (and @lucasallan in an upcoming release) this has grown from a fun side-project into something I believe can have real value to the Ruby community. I am insanely proud of what we have created together.
It's the first time I really contribute to an open source project and I'm loving it: you, @chrisseaton and I have very different backgrounds and this is very exciting every time we share our ideas :blush:
The only bug I knew of is about thread pool non-deterministic test, but it seems fixed now.
I'd like to refactor a bit Supervisor
and thread pools, just to clean up a bit the code: I didn't see any severe issue in them (just some minor locking inconsistencies in Supervisor
), so their APIs won't change.
@mighe I know that Code Climate has given Supervisor
an F grade, but I'm a little protective of that class (sorry, I'm human!). I put a lot of effort into it to replicate Erlang's behavior and I want to make sure we don't stray from that vision. If there are locking bugs they definitely need fixed, but please don't do anything more than that right now. I'd like to discuss any further potential changes later as part of a future release.
I've no more features to add for this release. TVar
and STM won't be ready by then.
I think perhaps we should look at some stress tests. By this I mean outside of RSpec, a set of programs that runs for a long time, doing random operations, checking for synchronisation problems. For example you could build a network of actors and have them pass messages around for half an hour, keep checking for consistency some way, and see if anything goes wrong. I'll do one for MVar
and IVar
to show what I mean. At the moment I think our specs are unlikely to catch the one in a million errors that are what make concurrency hard.
I don't want to change anything substantially, just fix some small details about locking and remove some style warning, nothing more.
No Supervisors
will be harmed during this process :blush:
Stress tests will be very very useful, maybe we could write them for 0.5.1 or 0.6.0, I think we're too late for 0.5.0
+1 to stress tests. When I was struggling with thread pools last summer I created a set of stress tests which I recently removed from the master branch. They were out of date and initiated as rake tasks. I like the idea of creating something more robust and comprehensive. We use JMeter at work on run those tests from or CI server. I'd love to see us create something like that for this gem.
I've pushed a pre-release update (v0.5.0.pre.1) to Rubygems.
I have been out of the loop for a bit, so if there's anything I could help with please let me know.
@headius Your continued support and promotion of the gem is plenty, and greatly appreciated. I'm working on the changelog tonight and I've very impressed with the work @mighe and @chrisseaton have done on this release. It's vastly more reliable on JRuby and Rubinius. We've even started to implement a few JRuby-specific optimizations. Next Monday's release looks very good.
We've started working on some new features and optimizations for subsequent releases and @lucasallan is helping me work on a number of Actor updates. If there is anything you'd like to see in the gem or anything you'd like to work on yourself we'd love to have your input.
I've released v0.5.0 a day early. I found a couple of bugs last weekend but there hasn't been much activity since. And to be honest, I've been pretty obsessed with Titalfall the past week so I haven't had much time for anything else. :-)
I've created a changelog in the wiki. Since I wasn't keeping a changelog during development I had to work from memory and the commit history. Please update the changelog with any errors and omissions.
I will email the mailing list Monday and send out an announcement tweet. Again, I cannot say "thank you" enough times to everyone who has helped improve, promote, and support this gem. You are all awesome.
I've learned that @headius will be talking about this gem during his presentation at RubyConf India on Saturday, 22 March 2014. Because the APIs of
Future
,ScheduledTask
, andPromise
(in progress) have changed to include the new#execute
method I'd like to release an update prior to his presentation. Unless there is a significant objection from the community I'd like to release version 0.5.0 on Monday, March 17, 2014.