<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On 11 April 2018 at 11:39, Chris Dent <span dir="ltr"><<a href="mailto:cdent+os@anticdent.org" target="_blank">cdent+os@anticdent.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, 10 Apr 2018, Michael Johnson wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I echo Ben's question about what is the recommended replacement.<br>
</blockquote>
<br></span>
It's a good question. Unfortunately I don't have a good answer. My<br>
involvement in WSME is simply the result of submitting some bug fixes<br>
in early 2015 and there being no one to review them. Lucas Gomes and<br>
I were pressganged into becoming the sole core reviews for a project<br>
that was already languishing.<br>
<br>
A short answer could be this: There doesn't have to be a<br>
replacement. There are people in the community who are active users<br>
of WSME, if those people would like to become maintainers of WSME,<br>
Lucas and I can make those people core and help them to shepherd the<br>
project to an active state. It may be that nothing really needs to<br>
change. The reason this is coming up now is because a code change<br>
was proposed that failed the gate because for unrelated reasons (the<br>
pep8 python3 thing mentioned elsewhere). If the existing feature set<br>
is sufficient the only real work to do is to keep those features<br>
working as we move to python3.<br></blockquote><div><br></div><div>I would like to see us move away from WSME. I'm not sure I have time to drive an effort in finding a replacement (and migration path) but I would certainly like to help.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Any volunteers?<br>
<br>
For new projects, I think the standby is Flask + jsonschema. They<br>
are both boring and common.<br>
<br>
I know some people really like django REST framework, but it appears<br>
to have lots of magic and magic is bad.<br>
<br>
The longer answer is just opinion so if the above is enough of an<br>
answer you can stop here before I go off on a ramble.<br>
<br>
I've never really been all that sure on what WSME is for. It<br>
describes itself with "simplifies the writing of REST web services<br>
by providing simple yet powerful typing, removing the need to<br>
directly manipulate the request and the response objects." This is<br>
pretty much exactly the opposite of what I want when writing a web<br>
service. I want to be closely aware of the request and response and<br>
not abstract away the details of HTTP because those details are what<br>
makes a web service useful and maintainable. So I tend to avoid<br>
typing systems like WSME and object dispatch systems like pecan in<br>
favor of tools that are more explicit about the data (both headers<br>
and body) coming in and going out, and that make the association<br>
between URLs and code explicit rather than implicit.<br>
<br>
That is: you want to write code for the API layer so that future<br>
maintainers of that code find it easy to trace the path through the<br>
code that a request takes without having to make a lot of guesses or<br>
de-serialize (in their heads) an object inheritance hierarchy.<br>
<br>
Flask can do that, if you chose to use it that way, but like many<br>
tools it also allows you to do things in confusing ways too.<br>
<br>
I personally don't think that consistency of web framework across<br>
OpenStack projects is important. What's important is:<br>
<br>
* The exposed HTTP APIs have some degree of consistency (that is,<br>
  they don't have glaring differences in grammar and semantics).<br>
* The code is low on abstraction and high on scrutability so that<br>
  future maintainers aren't scratching their heads.<br>
* Any frameworks chosen (if any) are maintained by the broader<br>
  Python community and are not OpenStack snowflakes.<br>
<br>
Committing to any particular framework is the same as committing to<br>
being wrong and calcified in some fairly short amount of time.<br>
<br>
Who wants to volunteer to help maintain WSME?<div class="HOEnZb"><div class="h5"><br>
<br>
-- <br>
Chris Dent                       ٩◔̯◔۶           <a href="https://anticdent.org/" rel="noreferrer" target="_blank">https://anticdent.org/</a><br>
freenode: cdent                                         tw: @anticdent</div></div><br>______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
<br></blockquote></div><br></div></div>