hgweb: stop passing req and tmpl into @webcommand functions (API)
ClosedPublic

Authored by indygreg on Mar 11 2018, 12:24 AM.

Details

Summary

We have effectively removed all consumers of the old wsgirequest
type. The templater can be accessed on the requestcontext passed
into the @webcommand function.

For the most part, these arguments are unused. They only exist to
provide backwards compatibility. And in the case of wsgirequest,
use of that object could actively interfere with the new request
object.

So let's stop passing these objects to @webcommand functions.

With this commit, wsgirequest is practically dead from the hgweb
WSGI application. There are still some uses in hgwebdir though...

.. api::

@webcommand functions now only receive a single argument. The
request and templater instances can be accessed via the
``req`` and ``templater`` attributes of the first argument.
Note that the request object is different from previous Mercurial
releases and consumers of the previous ``req`` 2nd argument
will need updating to use the new API.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
indygreg created this revision.Mar 11 2018, 12:24 AM
durin42 accepted this revision.Mar 12 2018, 5:18 PM
This revision is now accepted and ready to land.Mar 12 2018, 5:18 PM
This revision was automatically updated to reflect the committed changes.