Python 3 Support

Asked by Marco Martinez

Hello Gustavo,

My team has recently taken an interest in using repoze.who v2 for authentication on our applications using your plugin. We're using Python 3 which unfortunately causes incompatibilities with your plugin, (the Python ldap module also does not support Python 3). I noticed you mentioned that your are no longer maintaining this plugin, my team would be happy in continuing development, we're currently hosting a fork at

https://bitbucket.org/ucsdbitcore/repoze.who.plugins.ldap

We're using the python3-ldap instead of the python-ldap to make this version Python-3-ready.

With your permission, we'd like to continue maintaining your plugin.

Thanks,
-Marco

Question information

Language:
English Edit question
Status:
Expired
For:
repoze.who LDAP plugin Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Gustavo Narea (gnarea) said :
#1

Hi there Marco.

Apologies for the tardy reply.

I'd be happy to hand it over to you. Just one question: Will the new project be backwards compatible? If so, please provide me with your PyPi username to make you the owner. If not, I'd suggest that we treat this as a fork with a separate entry on PyPi to avoid breaking other people's production applications.

Either way, can I also have the URL where you'd like to have the current documentation redirect to?

Cheers.

Revision history for this message
Marco Martinez (usblackbird) said :
#2

Glad to hear from you Gustavo!

I did my best to keep everything backwards-compatible (verified via the unit tests you had written, which were tweaked to use an actual connection since the fakeldap package no longer works in Python 3). The only thing I was not able to keep backwards-compatible was the "make_ldap_connection" function, as it works a lot differently in the python3-ldap package, which also resulted in dropping support for passing an existing connection to the plugin. But it seems to me that the purpose of this functionality was to assist in unit testing.

If this is satisfactory to you, here is the info you requested:

My Pypi username is:
Marco.Martinez

The new plugin is going to be maintained at:
https://github.com/m-martinez/repoze.who.plugins.ldap

I'll be uploading the documentation to:
https://readthedocs.org/projects/repozewhopluginsldap/

Revision history for this message
Gustavo Narea (gnarea) said :
#3

Hi Marco,

I think the removal of the "make_ldap_connection" function is OK because it's not in the documentation, so people shouldn't be using it. But if we drop support for "ldap.ldapobject.SimpleLDAPObject" objects, then we may break other people's production application, so in this case I'd suggest that we treat your fork as a separate project, and I'll update the docs and PYPI entry to point people to your plugin.

I guess that means using a different name to avoid confusion and to be able to register the new project on PYPI. (You could take advantage of this to make the name shorter -- e.g., "repoze.who-ldap").

Does that sound OK? If so, please provide me with the new URLs.

Apologies for the hassle, but I think it's important to avoid breaking other people's code.

Revision history for this message
Marco Martinez (usblackbird) said :
#4

Hi Gustavo,

I totally understand. As requested, I've renamed the fork to "who_ldap", taking inspiration from pyramid's "pyramid_<plugin>" naming conventions. Here's the new link:

https://github.com/m-martinez/who_ldap

I'm planning on maintaining the documentation on the github project site.

Thank you so much for your feedback!

-Marco

Revision history for this message
Launchpad Janitor (janitor) said :
#5

This question was expired because it remained in the 'Needs information' state without activity for the last 15 days.

Revision history for this message
Gustavo Narea (gnarea) said :
#6

Hi Marco.

Apologies for the delay again! I forgot to do this sooner.

I updated the PYPI page for this plugin to say that it's no longer maintained and to mention your fork. I was going to update the Sphinx documentation, but I found to me a real hassle because I couldn't get Bazaar to work on my computer.

I hope that's OK!

 - Gustavo.