Releases: snarfed/oauth-dropins
Releases · snarfed/oauth-dropins
v6.4
v6.3
Notable changes
- Bluesky:
- Normalize handles to lower case, remove leading
@
(bridgy#1667).
- Normalize handles to lower case, remove leading
Miscellaneous changes in webutil
.
v6.2
v6.1: ### Notable changes
Notable changes
Non-breaking changes:
- IndieAuth:
- Store access token and refresh token in
IndieAuth
datastore entities.
- Store access token and refresh token in
- Misc
webutil
changes.
v6.0: ### Breaking changes
Breaking changes
- Remove
webutil.handlers
, which was based on the largely unmaintainedwebapp2
. All known clients have migrated to Flask andwebutil.flask_util
. - Drop Python 3.6 support. Python 3.7 is now the minimum required version.
Non-breaking changes
- Add new
twitter_v2
module for Twitter's new OAuth 2 with PKCE support and v2 API. - Blogger:
- Fix bug when user approves the OAuth prompt but has no Blogger blogs. Instead of crashing, we now redirect to the callback with
declined=True
, which is still wrong, but less bad.
- Fix bug when user approves the OAuth prompt but has no Blogger blogs. Instead of crashing, we now redirect to the callback with
- Mastodon:
- Change
MastodonAuth.access_token_str
from ndbTextProperty
toStringProperty
so that it's indexed in the Datastore. - When the callback gets an invalid
state
parameter, return HTTP 400 instead of raisingJSONDecodeError
.
- Change
- Misc webutil updates.
v5.0
Breaking changes
- Drop Python 3.5 support. Python 3.6 is now the minimum required version.
Non-breaking changes
- Switch from app_server to
flask run
for local development. - Add
webutil.util.set_user_agent
to setUser-Agent
header to be sent with all HTTP requests.
v4.0: ### Breaking changes
Breaking changes
-
Migrate from webapp2 to Flask. webapp2 had a good run, but it's no longer actively developed, and Flask is one of the most widely adopted standalone web framework in the Python community.
-
Remove
to()
class methods. Instead, now pass redirect paths to Flask'sas_view()
function, eg:app = Flask() app.add_url_rule('/start', view_func=twitter.Callback.as_view('start', '/oauth_callback'))
-
Remove deprecated
blogger_v2
module alias. -
webutil
: migrate webapp2 HTTP request handlers in thehandlers
module -XrdOrJrdHandler
,HostMetaHandler
, andHostMetaXrdsHandler
- to Flask views in a newflask_util
module.
Non-breaking changes
webutil
: implement Webmention protocol in newwebmention
module.webutil
: add misc Flask utilities and helpers in newflask_util
module.
v3.1: ### Notable changes
Notable changes
- Add Python 3.8 support, drop 3.3 and 3.4. Python 3.5 is now the minimum required version.
- Add Pixelfed support, heavily based on Mastodon.
- Add Reddit support. Thanks Will Stedden!
- WordPress.com:
- Handle errors from access token request.
v3.0: ### _Breaking changes_
Breaking changes
- Python 2 is no longer supported! Including the App Engine Standard Python 2 runtime. On the plus side, the Python 3 runtimes, both Standard and Flexible, are now supported.
- Replace
handlers.memcache_response()
, which used Python 2 App Engine's memcache service, withcache_response()
, which uses local runtime memory. - Remove the
handlers.TemplateHandler.USE_APPENGINE_WEBAPP
toggle to use Python 2 App Engine'sgoogle.appengine.ext.webapp2.template
instead of Jinja. - Blogger:
- Login is now based on Google Sign-In. The
api_from_creds()
,creds()
, andhttp()
methods have been removed. Use the remainingapi()
method to get aBloggerClient
, oraccess_token()
to make API calls manually.
- Login is now based on Google Sign-In. The
- Google:
- Replace
GoogleAuth
with the newGoogleUser
NDB model class, which doesn't depend on the deprecated oauth2client. - Drop
http()
method (which returned anhttplib2.Http
).
- Replace
- Mastodon:
StartHandler
: dropAPP_NAME
/APP_URL
class attributes andapp_name
/app_url
kwargs in theto()
method and replace them with newapp_name()
/app_url()
methods that subclasses should override, since they often depend on WSGI environment variables likeHTTP_HOST
andSERVER_NAME
that are available during requests but not at runtime startup.
webutil
:- Drop
handlers.memcache_response()
since the Python 3 runtime doesn't include memcache. - Drop
handlers.TemplateHandler
support forwebapp2.template
viaUSE_APPENGINE_WEBAPP
, since the Python 3 runtime doesn't includewebapp2
built in. - Remove
cache
andfail_cache_time_secs
kwargs fromutil.follow_redirects()
. Caching is now built in. You can bypass the cache withfollow_redirects.__wrapped__()
. Details.
- Drop
Non-breaking changes
- Add Meetup support. (Thanks Jamie Tanna!)
- Blogger, Google:
- The
state
query parameter now works!
- The
- Add new
outer_classes
kwarg tobutton_html()
for the outer<div>
, eg as Bootstrap columns. - Add new
image_file
kwarg toStartHandler.button_html()
v2.2: ### Notable changes
Notable changes
- Add LinkedIn and Mastodon!
- Add Python 3.7 support, and improve overall Python 3 compatibility.
- Add new
button_html()
method to allStartHandler
classes. Generates the same button HTML and styling as on oauth-dropins.appspot.com. - Blogger: rename module from
blogger_v2
toblogger
. Theblogger_v2
module name is still available as an alias, implemented via symlink, but is now deprecated. - Dropbox: fix crash with unicode header value.
- Google: fix crash when user object doesn't have
name
field. - Facebook: upgrade Graph API version from 2.10 to 4.0.
- Update a number of dependencies.
- Switch from Python's built in
json
module toujson
(built into App Engine) to speed up JSON parsing and encoding.