Spork 1.0.0rc0, 0.9.0, spork-testunit, and the future of Spork

62 views
Skip to first unread message

timcharper

unread,
Jan 23, 2012, 1:33:08 AM1/23/12
to spor...@googlegroups.com
Hi everyone,

It's been a while. Spork seems to continue to have an active user base, and over the past year, much due to some hardship of which many of you are aware, I've been rather passive in my role as a maintainer. However, as many open source contributors approach their contributions, they always intend to do better :) The user base has been fantastic and the contributions to the project have been abundant.

I'd like to recognize Gopal Patel for his outstanding contributions taking ownership of spork-testunit. The project has needed a lot of support and love, and he has been wonderful responding to issues, merging patches, and getting the gem working reliably for the community.

== Spork 0.9.0

I decided that it was in release candidate mode WAY too long, and that spork, at it's core, didn't require any further refinement. The code that handled integration with different frameworks (such as rails), on the other hand, did have a ways to go. Since I decided to extract framework integration into a separate gem (thus is born spork-rails), it made sense to mark spork 0.9.0 as released and then start working on 1.0.0

== Spork 1.0.0rc0

This release candidate has no rails support. Instead, it lives in spork rails. The accompanying tests have been moved as well. What remains is the spork server, bootstrapper, various execution strategies (fork, magazine strategy, etc.), and a handful of test framework integration (spec, cucumber) still live in it. In the near future, I plan on extracting those out as well. I suspect that the core Spork gem will need to change very little in the future and could almost be considered a finished product.

If you can, please try out spork-rails and spork-1.0.0rc0 and report your experience. I'm sure the documentation will need to be updated and clarified before dropping the rc0.

== Spork-rails

All of the integration tests are passing in ruby 1.9.0 for spork-rails! This is exciting as many failed in the past. The coverage is quite good. I confirmed that all of the hacks, some more heavy-handed than others, were necessary to achieve basic out-of-the-box functionality are required to fulfill the test suite.

If you're having a specific problem with spork-rails, a great way to prove that there is a problem is to write an integration test and show that it fails. 

All issues related to rails integration should go on the spork-rails bug tracker.

I can't help but think that there has got to be a better method to preload the rails application framework without loading application files. However, one of the things that makes Rails awesome is also one of the things that makes Rails awful: there is a lot of mystery that goes on behind the curtain to get the rails application initialized. And, unfortunately, Rails doesn't seem give an abundance of control over how the initialization process happens.

Some other approaches that I think about from time to time:

* Use rails cache_classes = true and manually trigger reload. This method has some drawbacks as well, but may be easier to get working "out of the box". It doesn't work well with integration tests.
* Instruct users to load as many of their gems as possible in the preload block. This requires more verbosity. Many gems lazy load many of their features via autoload (although, Spork could easily watch for all autoload statements that point to paths outside of the project and preemptively trigger them to load at the end of the preload phase.) Some gems, such as Mongoid of Factory girl, trigger application files to load just by loading the gem, so also not a perfect solution.

Does anyone have any ideas on the matter? Would be great to figure out a better approach than obscene punching of ducks.

== Future of Spork

I am still committed to maintain the project, however, I greatly appreciate those who step up and take on pieces. If you feel that you could polish an area and would like to join and become a maintainer for a piece of the project, let's talk!

Thanks everyone!

Tim

Timothy Harper

unread,
Jan 23, 2012, 1:39:09 AM1/23/12
to spor...@googlegroups.com
Some other news that I forgot, and some clarifications:

* Spork has its own github organization. Its home is https://github.com/sporkrb/
* I am tentatively planning on extracting out test framework integration for rspec and cucumber. The rest of the functionality stays in Spork core.
* I really need everyone's help to know the best way to communicate to spork users how to switch to 1.0.0 so they don't get confused.

Thanks!

Tim

Reply all
Reply to author
Forward
0 new messages