[BOUNTY] Make the VCR gem thread safe

Hi,

There's a Ruby project called vcr [1] which is used to test http
interactions. It's a nice gem, but it has a problem: it's not thread safe.
This issue has been brought up in the past [2] and there was one spike that
started down the path of making it thread safe but it appears to have been
abandoned. [3]

I would very much like to see this gem made thread safe. My primary concern
is with properly testing threaded methods, not tests themselves that are
threaded, but if that happens to work, too, then great.

To this end I am offering $250 to anyone who can make this happen. If you
look at issue #403 (pasted below) there's discussion of using celluloid's
approach as the basis for a refactoring if you're looking for ideas, but
feel free to do what you think is best. In order to qualify for the bounty,
your code must meet the following criteria:

* It should be pure Ruby, though if necessary you may use FFI.
* It must be cross-platform code.
* It must have tests that properly test your implementation and pass them.
* It must be submitted as a PR to the vcr project once complete.
* It must be completed within 90 days of this post.

If these conditions are met you will receive your bounty via PayPal. If
there are multiple takers, then only the first person to have a working PR
will receive the bounty.

What's my motivation? We're developing a gem to interface with Azure's REST
API, and some of our internal methods make threaded http requests for
certain methods for speed.

Any takers? Any matchers?

Regards,

Dan

[1] https://github.com/vcr/vcr
[2] https://github.com/vcr/vcr/issues/200
[3] https://github.com/vcr/vcr/issues/403

As this doesn't seem to have generated interest, perhaps it would be a
worthwhile Grant Proposal:

···

On Wed, Sep 9, 2015 at 10:55 AM, Daniel Berger <djberg96@gmail.com> wrote:

Hi,

There's a Ruby project called vcr [1] which is used to test http
interactions. It's a nice gem, but it has a problem: it's not thread safe.
This issue has been brought up in the past [2] and there was one spike that
started down the path of making it thread safe but it appears to have been
abandoned. [3]

I would very much like to see this gem made thread safe. My primary
concern is with properly testing threaded methods, not tests themselves
that are threaded, but if that happens to work, too, then great.

To this end I am offering $250 to anyone who can make this happen. If you
look at issue #403 (pasted below) there's discussion of using celluloid's
approach as the basis for a refactoring if you're looking for ideas, but
feel free to do what you think is best. In order to qualify for the bounty,
your code must meet the following criteria:

* It should be pure Ruby, though if necessary you may use FFI.
* It must be cross-platform code.
* It must have tests that properly test your implementation and pass them.
* It must be submitted as a PR to the vcr project once complete.
* It must be completed within 90 days of this post.

If these conditions are met you will receive your bounty via PayPal. If
there are multiple takers, then only the first person to have a working PR
will receive the bounty.

What's my motivation? We're developing a gem to interface with Azure's
REST API, and some of our internal methods make threaded http requests for
certain methods for speed.

Any takers? Any matchers?

Regards,

Dan

[1] GitHub - vcr/vcr: Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.
[2] VCR is not threadsafe · Issue #200 · vcr/vcr · GitHub
[3] Spike towards better thread safety · Issue #403 · vcr/vcr · GitHub

The bounty has been claimed by Jan Berdajs (mrbrdo). You can see the PR
here:

Which was merged today.

Thanks Jan!

Regards,

Dan

···

On Wed, Sep 9, 2015 at 10:55 AM, Daniel Berger <djberg96@gmail.com> wrote:

Hi,

There's a Ruby project called vcr [1] which is used to test http
interactions. It's a nice gem, but it has a problem: it's not thread safe.
This issue has been brought up in the past [2] and there was one spike that
started down the path of making it thread safe but it appears to have been
abandoned. [3]

I would very much like to see this gem made thread safe. My primary
concern is with properly testing threaded methods, not tests themselves
that are threaded, but if that happens to work, too, then great.

To this end I am offering $250 to anyone who can make this happen. If you
look at issue #403 (pasted below) there's discussion of using celluloid's
approach as the basis for a refactoring if you're looking for ideas, but
feel free to do what you think is best. In order to qualify for the bounty,
your code must meet the following criteria:

* It should be pure Ruby, though if necessary you may use FFI.
* It must be cross-platform code.
* It must have tests that properly test your implementation and pass them.
* It must be submitted as a PR to the vcr project once complete.
* It must be completed within 90 days of this post.

If these conditions are met you will receive your bounty via PayPal. If
there are multiple takers, then only the first person to have a working PR
will receive the bounty.

What's my motivation? We're developing a gem to interface with Azure's
REST API, and some of our internal methods make threaded http requests for
certain methods for speed.

Any takers? Any matchers?

Regards,

Dan

[1] GitHub - vcr/vcr: Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.
[2] VCR is not threadsafe · Issue #200 · vcr/vcr · GitHub
[3] Spike towards better thread safety · Issue #403 · vcr/vcr · GitHub

That is fantastic. I love seeing stuff like this work (even if slowly).

···

On Oct 14, 2015, at 11:50, Daniel Berger <djberg96@gmail.com> wrote:

The bounty has been claimed by Jan Berdajs (mrbrdo). You can see the PR here:

https://github.com/vcr/vcr/pull/512

Which was merged today.