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

Synchronize with cheroot #1481

Closed
jaraco opened this Issue Aug 23, 2016 · 13 comments

Comments

3 participants
@jaraco
Member

jaraco commented Aug 23, 2016

I very much appreciate the work that cheroot has done to factor out the HTTP Server portion of CherryPy into a standalone HTTP Server.

The effort seems to have been abandoned. I take some blame in that as well.

I'd like to revive the effort, but I see a few obstactles.

  1. Cheroot was released, but never officially. The only releases are beta releases.
  2. The project appear to be a fork of CherryPy, but the code base diverged a long time ago and was never consumed by CherryPy, so reconciling the differences may be a massive effort.
  3. The project repo has issues disabled.

Now that CherryPy allows for dependencies to be defined, I think it's at a better place to factor out the wsgiserver.

Here's what I propose:

  1. Abandon the existing cheroot codebase. Maybe there are some gems there, and they'll remain in the history in case someone wants to dig them up.
  2. Replace the existing cheroot with wsgiserver from cherrypy. As a drop-in replacement, it will be compatible with CherryPy.
  3. Keep the cheroot tests that pass but disable or remove the rest.
  4. Document CherryPy tests passing as a temporary condition for acceptable stability.
  5. Cut the first stable release (5.0) and iterate from there.
  6. Re-enable issues in Cheroot.

Then, iterate on the goals and shortcomings.

Thoughts?

@jaraco

This comment has been minimized.

Show comment
Hide comment
@jaraco

jaraco Jan 7, 2017

Member

I discovered that the /cherrypy/cheroot project, although it's based on the same cherrypy history, due to the transition from Mercurial to Git, no longer is considered related to the cherrypy history as found here on Github. Therefore, what I've done is rebase the cheroot 4.0.0b2 changes onto a checkout of cherrypy (still against 3.2.2 as before), and pushed those changes up to the cheroot origin under the tag archive/cheroot-4. Now I'll push the latest cherrypy master (with a related git history) up as the cheroot master and re-enact the refactor into a separate project.

Member

jaraco commented Jan 7, 2017

I discovered that the /cherrypy/cheroot project, although it's based on the same cherrypy history, due to the transition from Mercurial to Git, no longer is considered related to the cherrypy history as found here on Github. Therefore, what I've done is rebase the cheroot 4.0.0b2 changes onto a checkout of cherrypy (still against 3.2.2 as before), and pushed those changes up to the cheroot origin under the tag archive/cheroot-4. Now I'll push the latest cherrypy master (with a related git history) up as the cheroot master and re-enact the refactor into a separate project.

@jaraco

This comment has been minimized.

Show comment
Hide comment
@jaraco

jaraco Jan 7, 2017

Member

I've also tagged the old master as archive/old-cheroot-master, in case anybody ever wants to go find that history.

Member

jaraco commented Jan 7, 2017

I've also tagged the old master as archive/old-cheroot-master, in case anybody ever wants to go find that history.

@jaraco

This comment has been minimized.

Show comment
Hide comment
@jaraco

jaraco Jan 7, 2017

Member

Now in the cheroot master, which is up-to-date with the cherrypy master, I'll review the refactor that happened here and try to re-apply it to the current CherryPy project tree.

Member

jaraco commented Jan 7, 2017

Now in the cheroot master, which is up-to-date with the cherrypy master, I'll review the refactor that happened here and try to re-apply it to the current CherryPy project tree.

jaraco added a commit that referenced this issue Jan 8, 2017

@jaraco

This comment has been minimized.

Show comment
Hide comment
@jaraco

jaraco Jan 8, 2017

Member

So the tests are substantially passing against the new cheroot (currently just linked to the github repo). For some reason, the Python 2 tests are exiting promptly. I see the same when I test locally, so it shouldn't be too difficult to track down. In the meantime, the functionality remains in the cheroot branch.

Member

jaraco commented Jan 8, 2017

So the tests are substantially passing against the new cheroot (currently just linked to the github repo). For some reason, the Python 2 tests are exiting promptly. I see the same when I test locally, so it shouldn't be too difficult to track down. In the meantime, the functionality remains in the cheroot branch.

@jaraco

This comment has been minimized.

Show comment
Hide comment
@jaraco

jaraco Jan 8, 2017

Member

After restoring a missing __init__.py in cheroot, the CherryPy tests now pass against the master of cheroot. The CherryPy tests are still relying on cherrypy.test.helper and cherrypy.test.webtest. I believe more refactoring will need to happen in those modules before they can start to rely on the cheroot versions.

Member

jaraco commented Jan 8, 2017

After restoring a missing __init__.py in cheroot, the CherryPy tests now pass against the master of cheroot. The CherryPy tests are still relying on cherrypy.test.helper and cherrypy.test.webtest. I believe more refactoring will need to happen in those modules before they can start to rely on the cheroot versions.

@Safihre

This comment has been minimized.

Show comment
Hide comment
@Safihre

Safihre Jan 23, 2017

Contributor

Do we need to refill issues regarding the wsgiserver on the new repo?
In my case it's #1509 and #1552. But surely there are more in the Issues list here at cherrypy.

Contributor

Safihre commented Jan 23, 2017

Do we need to refill issues regarding the wsgiserver on the new repo?
In my case it's #1509 and #1552. But surely there are more in the Issues list here at cherrypy.

@webknjaz

This comment has been minimized.

Show comment
Hide comment
@webknjaz

webknjaz Jan 23, 2017

Member

I think you meant #1523

Member

webknjaz commented Jan 23, 2017

I think you meant #1523

@webknjaz

This comment has been minimized.

Show comment
Hide comment
@webknjaz

webknjaz Jan 23, 2017

Member

@Safihre PRs which are merged are already there. Others may need to be cherry-picked to cheroot if they affect wsgiserver

Member

webknjaz commented Jan 23, 2017

@Safihre PRs which are merged are already there. Others may need to be cherry-picked to cheroot if they affect wsgiserver

@Safihre

This comment has been minimized.

Show comment
Hide comment
@Safihre

Safihre Jan 23, 2017

Contributor

Actually I meant #1552, typo!

Contributor

Safihre commented Jan 23, 2017

Actually I meant #1552, typo!

@jaraco

This comment has been minimized.

Show comment
Hide comment
@jaraco

jaraco Jan 23, 2017

Member

Yes, if you would please re-file that PR with cherrypy/cheroot.

Member

jaraco commented Jan 23, 2017

Yes, if you would please re-file that PR with cherrypy/cheroot.

@jaraco

This comment has been minimized.

Show comment
Hide comment
@jaraco

jaraco Jan 23, 2017

Member

This work is essentially done. What remains is cherrypy/cheroot#3.

Member

jaraco commented Jan 23, 2017

This work is essentially done. What remains is cherrypy/cheroot#3.

@jaraco jaraco closed this Jan 23, 2017

@Safihre

This comment has been minimized.

Show comment
Hide comment
@Safihre

Safihre Jan 23, 2017

Contributor

@jaraco I was actually asking about all the open issues about the wsgiserver listed here on CherryPy-repo, if they won't be forgotten.

Contributor

Safihre commented Jan 23, 2017

@jaraco I was actually asking about all the open issues about the wsgiserver listed here on CherryPy-repo, if they won't be forgotten.

@jaraco

This comment has been minimized.

Show comment
Hide comment
@jaraco

jaraco Jan 23, 2017

Member

Well, they won't be forgotten - they just need to be addressed in cheroot. I'm not going to migrate those issues. They can continue to have a home here until such a time as they're fixed in the upstream cheroot or migrated there manually.

Member

jaraco commented Jan 23, 2017

Well, they won't be forgotten - they just need to be addressed in cheroot. I'm not going to migrate those issues. They can continue to have a home here until such a time as they're fixed in the upstream cheroot or migrated there manually.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment