My major complaint is that the version argument is disingenuous and
reflects poorly upon us every time we make it. (Internally, someone
said that prior to requests-2.1.0, the API was unstable.  2.1.0 was
released in 2013-12-05, about the time Ansible-1.5 was released.
RHEL6 and Debian Jessie both have newer releases (2.6.0 and 2.4.3
respectively).

If we can agree to stop making that argument (at least, as a project
member... I wouldn't object to someone making clear that api
incompatibility of older versions was their personal pet peeve like:
"The project doesn't allow requests because open_url works fine for
almost all use cases.  Personally, I can never forget that they
changed their API 5 years ago so I don't use it myself".) that would
satisfy me.

For your point, though, the API is both well known to developers and
much better designed than open_url/fetch_url.  requests is available
most places due to being a dep in so many third party libraries
(including libraries which Ansible users will be installing for other
Ansible modules) so it's not an extra dependency in many environments.
I think the unnecessary dep argument is enough to prohibit it in core
modules and discourage it in community modules doing simple things.
I'm unsure if we should outright ban it there, though.  I'm also
leaning towards the view that even if we ban it for simple things, we
shouldn't ban it in community modules doing complex things.... The API
of requests makes complex things much easier to code than
open_url/fetch_url and I don't think we want to spend a lot of time
making open_url/fetch_url's API better....

-Toshio

On Thu, Sep 13, 2018 at 9:16 AM, Matt Martz <m...@sivel.net> wrote:
> I must not have been part of that discussion. It was never about the
> requests version for me.  It was about yet another unnecessary dependency.
>
> What is the driving factor behind wanting to allow it?
>
> On Thu, Sep 13, 2018 at 11:10 AM Toshio Kuratomi <tkura...@redhat.com>
> wrote:
>>
>> When RHEL5 went EOL we talked about dropping the prohibition on
>> modules using the requests library (directly.... many modules use
>> requests indirectly through their dependencies) but someone said
>> "there's other distros than RHEL5 using 1.x versions of requests."
>> (and according to that person, the 1.x version of requests is
>> different enough that code that can use both requests versions
>> wouldn't be portable.)
>>
>> If the premise is correct, we still should figure out what our
>> criteria is for allowing modules to make use of requests.  We don't
>> disallow other libraries **cough**docker**cough** just because their
>> API is unstable.  We simply tell people what version of the library is
>> needed for the module to run.  So what criteria needs to be met so
>> that we can do that for requests?
>>
>> -Toshio
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Ansible Development" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to ansible-devel+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>
>
>
> --
> Matt Martz
> @sivel
> sivel.net

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-devel+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to