Using time wisely includes not boiling to ocean.  Supporting every
possible use case, with every provider, in every environment, and with
every combination of language and tools, has historically made
delivering quality jclouds releases difficult given our limited
developer base.  Keeping a tighter project scope to concentrate on core
use cases is reasonable if people do not volunteer for maintaining the
non-core cases.

Listening to users requires actual listening, not just platitudes.  We
have integrated feedback from many users over the last year, including
requests related to your frustrations with Guava.  Many users want to
deploy older versions of jclouds with newer versions of Guava and
addressing deprecations proactively allows this.  Granted, we could make
different and potentially better decisions about when to intake
dependency upgrades to ease backports, although backporting tens of
thousands of lines of cleanups was not previously considered.

Moving to Java 7 was not an issue taken lightly and we did more outreach
for this than any other issue I am aware of, and delayed the breaking
change for a significant interval to accommodate any stragglers.  Java 7
improves HTTP Expect handling (which I have debugged for users several
times), allows larger single-part blobs (not all providers support
multi-part upload), allows the filesystem provider to preserve metadata
(which affects downstream projects[1]), and has a variety of
enhancements that appeal to developers.  Maligning this decision as a
simple preference for try-with-resources syntactic sugar is incomplete
and incorrect.

Android compatibility is an interesting possibility although does not
align with traditional jclouds use cases.  Use of Java 7 does not
preclude use of jclouds on Android, rather it requires using newer
devices, 25% of which have compatibility today.  Given the limited
number of Android queries over the years (roughly the same as a marginal
provider like CDMI), the lack of any known application in the Google
Play Store, and since we have not identified an Android use case (how
many users will thumb in 60 character AWS credentials to manage VMs?),
why should we let Android dictate the experience of the broader user
base?

[1] https://github.com/andrewgaul/s3proxy/issues/18#issuecomment-59147262

On Mon, Oct 13, 2014 at 08:21:15AM -0700, Adrian Cole wrote:
> OK folks, I'm out for a bit as I have a personal trip and a spike at
> work which will prevent me from arguing about try-with-resources for a
> while. Two thoughts to part on.
> 
>  * I'm pretty sure jclouds wants folks like me to participate. Please
> make that easier and less stressful, monotonous, or otherwise WTF.
> 
> When we create long-term branches before identifying any user-pleasing
> features, and then don't backport anything, folks like me are
> backporting MoreObjects to Objects, or hunting in git history vs
> looking at how to fix real problems or realize real features. Please,
> find a way to end the "I forked for try-with-resources" madness. Even
> if you hate the idea of android, do it to keep your other devs
> productive and to stop the bug port gap. Fork when you've found
> something meaningfully incompatible.
> 
>  * When we started jclouds, it was all about the users. Find them again
> 
> As a project, we should never justify something by saying an account
> with 200 followers tweeted it and no-one complained, or some email
> that was mobbed by a dev pile-on only had one user say "meh". There's
> a real, but solvable engagement problem. Please don't perpetuate this
> disconnection. Engage and ask users what they are doing. Ask them to
> reply to mail threads. Don't pile-on to user discussion.. allow folks
> to reply, and actively nudge users who aren't replying to either reply
> or send you text that they reply with.
> 
> Hope this helps, and see you around.
> -A

-- 
Andrew Gaul
http://gaul.org/

Reply via email to