Skip to content
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

Release is desperately needed #57

Open
DanielVartanov opened this issue Jul 4, 2016 · 19 comments
Open

Release is desperately needed #57

DanielVartanov opened this issue Jul 4, 2016 · 19 comments

Comments

@DanielVartanov
Copy link

The last version 1.3.0 was released in year 2010, 6 years ago!
People needed to pull down changes which were made since that.

Please please please bump up and release a new version.

@glebm
Copy link

glebm commented Mar 10, 2017

The maintainer of this gem hasn't been active on Github since 2014 and hasn't tweeted nor instagram'd, nor flickr'd anything since November 2015. His homepage and blog are gone as well.

@DanielVartanov
Copy link
Author

@glebm oh god, are you assuming the worst? Let's hope it's not the case. But someone needs to take over maintenance anyway. I really don't want to undertake for this task as I'll won't devote enough time for the project, but what would you suggest for such case? Is there a common protocol in the community?

@glebm
Copy link

glebm commented Mar 10, 2017

oh god, are you assuming the worst?

Not necessarily, as he also seems to have a history of quitting the internet: https://twitter.com/robolson/status/667436321812701189

Is there a common protocol in the community?

Usually, an org that uses the gem heavily and is willing to maintain it forks the repo, emails rubygems explaining the situation to get ownership of the gem, and contacts github to set the new repo as the canonical one. There are several precedents, such as rake.

@DanielVartanov
Copy link
Author

@glebm great, huge thanks for explanation

@betesh
Copy link

betesh commented Mar 23, 2017

Usually, an org that uses the gem heavily and is willing to maintain it forks the repo, emails rubygems explaining the situation to get ownership of the gem, and contacts github to set the new repo as the canonical one. There are several precedents, such as rake.

Has anyone done that yet?

@betesh
Copy link

betesh commented Mar 31, 2017

@technicalpickles @MarkMenard @mislav @blaine @jacqui @myronmarston @kachick @illuminerdi @syborg @trevorrowe @larrytheliquid @chrisZingel @josh @Empact @akahn @chubas @anselmoalves

All of you have contributed to this gem in the past. If any of you are interested in maintaining it, please let us know by commenting on this issue. Once one of you has volunteered and there is agreement among contributors about who will take on this role, we can then reach out to rubygems and github to let them know that there is a new maintainer.

@betesh
Copy link

betesh commented Apr 20, 2017

Since nobody else has spoken up, I will be reaching out to github and rubygems

@Empact
Copy link
Contributor

Empact commented Apr 20, 2017

@betesh FYI I use webmock for current projects.
https://github.com/bblimke/webmock

@chrisk
Copy link
Owner

chrisk commented Jun 10, 2017

Hi all, thank you for posting. I'm really sorry for leaving you hanging for so long.

When I last worked on this project, I was very sick. It eventually got serious enough that I had to stop working, pack up my apartment in San Francisco, and move home, putting my life on hold completely.

Thankfully, I eventually made it through, and I'm doing much, much better these days.

Back when I was first starting to get better, I decided to fill the newly available hours of the day with activities I thought would help shore up my physical and mental health. I started exercising again, joined a choir, started getting fluent in Spanish again, got a skateboard, started volunteering, and on and on. I spent a lot of time caring for my mother after she got sick herself and ended up in the hospital. These days, of all things, I actually get paid to sing in a professional vocal group sometimes. It's been a strange & winding path, but one I needed to walk.

All through this, I wasn't paying attention to this project, nor responding to a lot of friends who were concerned about me. I think I was pretty burned out in addition to being sick, and just wasn't ready to deal with the responsibility of working on this again, or of maintaining those relationships. So I put it all off. In hindsight, I think that was probably a healthy defense mechanism for me, but I wish I had let all of you know what was happening. Not least of all @blaine, who started this project and graciously let me start maintaining it way back in 2008. I apologize for that. I know lots of people use FakeWeb to make important things, and it's not unreasonable to expect a minimum level of communication to reciprocate your investment in a tool.

With all that out of the way, I'm here to say that I'm going to take up maintaining FakeWeb once again. You can expect a point release to restore compatibility with all current mainstream versions of Ruby. After that, I'll start on the rest of the open pull requests.

I just got a new Mac, so I'm currently setting up my environment. After I finish that you should start seeing activity on this project again.

If you need something in the meantime, certainly try WebMock and see if it works for you. That project actually started as a copy-and-paste of FakeWeb, oddly enough, although it has developed considerably since then. And if you've already switched and it works for you, then great.

Going forward, I think it's important for FakeWeb to continue to exist so that we always have a small, simple, fast tool for the 99% case of just testing code that uses Net::HTTP. Also, the gem has been an inspiration (and a template) for library authors in many other languages over the years, and that's been good for software development everywhere. I'd like to keep that going.

Okay. Whew. Thanks for reading all that, and thank you all again for your concern. If you have a fix to contribute, please do continue to open/update issues/pull requests and I'll merge. Updates should post here as I reference this ticket in commits. Onwards!

--Chris

chrisk added a commit that referenced this issue Jun 13, 2017
chrisk added a commit that referenced this issue Jun 14, 2017
This fixes a deprecation warning:

    simplecov_formatter_class: [DEPRECATION] ::[] is deprecated.
    Use ::new instead.

References #57.
chrisk added a commit that referenced this issue Jun 15, 2017
Checking the exit status of `command -v` should pretty much work
everywhere. See e.g. https://stackoverflow.com/a/677212/54401 for a
discussion.

Thanks to @davidcornu for reporting this and suggesting an alternate
fix in #58.

References #57.
chrisk added a commit that referenced this issue Jun 21, 2017
* add-new-argument-check:
  Simplify test by removing irrelevant fixture
  Tests: fix URI to really be invalid for Ruby 2.2
  Raise if .register_uri isn't given an options hash

Closes #53.
References #57.
chrisk added a commit that referenced this issue Jun 23, 2017
* update-net-http-mocks-for-ruby-2.3:
  Add explanatory comment to test helper
  net/http uses connect_nonblock since 2.3.0

Thanks to @zeha for patching this in #56, and also to @davidcornu for
the version in #58.

This gets us all green on MRI Ruby 2.3 and below.

Closes #56.
References #57.
chrisk added a commit that referenced this issue Jun 26, 2017
Background:

1.  As of Ruby 2.2, calling #close on a socket that's already closed
    no longer raises an exception.

2.  As of Ruby 2.4, Net::HTTP no longer checks #closed? every time
    before calling #close on a socket, since there's no longer any
    danger it will raise. See:

    * r56795 (ruby/ruby@6394b63db9abe34234e7)
    * r56865 (ruby/ruby@f845a9ef76c0195254de)

FakeWeb's internal StubSocket has been short-circuiting those pre-2.4
checks by just always returning true when #closed? is checked,
preventing #close from ever being called.

Now that the checks are gone, StubSocket needs its own #close
method. This fixes a variety of NoMethodErrors on Ruby 2.4, but is
basically backwards-compatible with earlier implementations.

(When running on pre-Ruby 2.2, I suppose StubSocket should raise when
you call #close on an already-closed socket. I'll look into that, but
all our functional tests are passing on earlier Rubies at the moment.)

While we're at it, I changed #closed? to stop just always returning
true, to be closer to how the Ruby stdlib's sockets behave. This
doesn't appear to break anything but I'll revert that part if I find
anything in the relevant Net::HTTP code that conflicts.

Thanks for reporting and submitting patches: @voxik in #59,
@SamMolokanov in #60.

Closes #59.
References #57.
chrisk added a commit that referenced this issue Jun 26, 2017
* add-stub-socket-close:
  Change stub socket for Ruby 2.4 compat
  Rename test class

References #57.
chrisk added a commit that referenced this issue Jun 27, 2017
* jruby-updates:
  Tests: modernize JRuby runtime configuration
  Tests: JRuby now bundles its OpenSSL gem

This gets everything working on JRuby 9000.

References #57.
chrisk added a commit that referenced this issue Jun 29, 2017
* update-dev-deps-for-old-ruby-compat:
  Tests: just skip coverage on Ruby 1.9.0-1.9.2
  Hold back RDoc version on Ruby 1.9.2 and earlier
  Tests: fix a spurious failure on 1.8.7
  Tests: bump compatible Rubies to the latest Rake
  Reorganize the dev. dependencies in the gemspec
  Reformat comments in gemspec

References #57.
chrisk added a commit that referenced this issue Jul 9, 2017
* update-bufferedio-method-signature-for-24-compat:
  Update Net::BufferedIO patch for Ruby 2.4-compat
  Extract-method refactor

Refernces #57 and #60.
@chrisk
Copy link
Owner

chrisk commented Jul 17, 2017

Hello everyone!

I've got a ton of fixes merged now, and as far as I know we're code-complete to release 1.3.1. I still need to update the docs and write up a changelog. In the interim, if there's anybody out there who could test FakeWeb in their projects, I'd appreciate it. The master branch should be compatible with all versions of MRI from the past decade or so (Ruby 1.8.6 or later, up to 2.4.x), as well as recent versions of JRuby and Rubinius.

You can try the current master branch by doing something like this in your Gemfile:

group :test do
  gem "fakeweb", github: "chrisk/fakeweb", branch: "master"
end

@sdsykes
Copy link

sdsykes commented Jul 17, 2017

I can confirm tests run ok on ruby 2.4.1 in https://github.com/sdsykes/fastimage with the latest changes. Thanks!

@choonkeat
Copy link

Perhaps a release candidate gem? Not all environments are hospitable to installing gems by git

@thewoolleyman
Copy link

@chrisk Please publish a prerelease gem to rubygems. Otherwise, your latest updates cannot be used as a gemspec development dependency for other gems.

@esbanarango
Copy link

@chrisk Thank you! Could we release 1.3.1 or at least have a prerelease gem? We can't use it in other gems like:

add_development_dependency "fakeweb", github: "chrisk/fakeweb", branch: "master"

🙏 🙏 🙏 🙏

@abarrak
Copy link

abarrak commented Jan 30, 2018

It'll be very helpful for the gem users to have 1.3.1 released.

@esbanarango
Copy link

@chrisk let me know if you need a hand here ✋ 🙏

@esbanarango
Copy link

1.3.1 coming soon...

xt9ignxyv1zooxxbti

@sdsykes
Copy link

sdsykes commented Sep 10, 2018

I pushed a gem named fakeweb-fi to rubygems, built from master (version 1.3.1) - feel free to use it if you need. It has no other changes than the name of the gem and the version number - so you would still need require 'fakeweb' to load it.

It was enough to get https://github.com/sdsykes/fastimage/ passing anyway.

@esbanarango
Copy link

Thank you @sdsykes

Daeik added a commit to Clayful/clayful-ruby that referenced this issue Apr 28, 2020
- 테스트 디펜던시 `fakeweb` 동작이 깨지던 부분을 `fakeweb-fi` 모듈로 마이그레이션 (chrisk/fakeweb#57 (comment))
- `rest-client` `2.1>=` 버전에서 `gzip` `Accept-Encoding` 헤더를 제대로 처리하지 못해 반환 데이터가 제대로 잡히지 않던 현상 수정 (#4)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants