Open-EO / openeo-hub

Source code for openEO Hub, a centralized platform to explore openEO back-end providers.
https://hub.openeo.org
Apache License 2.0
8 stars 3 forks source link

Change "Exclude backends without a free plan" #68

Closed m-mohr closed 4 years ago

m-mohr commented 4 years ago

Very minor, but we have a double negation, which is not so easy to understand:

Exclude backends without a free plan

I think it would just be easier to grasp with a phrase such as:

[Show] backends with a free plan only

or maybe even

Free plans only

christophfriedrich commented 4 years ago

The problem is that backend.hasNoFreePlan != not backend.hasFreePlan. Sounds weird, but from this feature's initial commit message (dc9c8f8):

Actually the filtering is by "NOT every plan of every backend in the group is explicitly paid". This way, backends that don't supply billing information (maybe because there is no billing, i.e. everything's free) are not falsly excluded. This should work, because backends that are paid must include this information.

Because I had this in mind, in a previous draft of that commit the label was "Exclude backends that are paid-only" -- but then we wanted the keyword "free" so we got the double negation.

Should I change it anyway?

m-mohr commented 4 years ago

Hmm, I see the issue. The question is whether back-ends without billing info should be considered being "free" (that is implicit at the moment). And I think I'd rather go the way that only lists back-ends that are explicitly free. I think the wrong assumption here is that the others without billing info can be free, but could also be paid. They may just not list it there and have some kind of subscription plan behind it and the access to the API is part of their broader subscription plan (e.g. you pay a member fee to EODC and have some processing time included). So ultimately, I'd go to change it this way and call it "Free plans only", but we could also do this in multiple steps and start with changing to "Exclude backends that are paid-only". Do you agree?

christophfriedrich commented 4 years ago

I think the wrong assumption here is that the others without billing info can be free, but could also be paid.

I don't understand 100% what you mean -- who assumes that?


They may just not list it there

IMO that would be against the spec, because it says:

Billing related data [...] MUST be specified if the back-end uses any billing related functionalities

Therefore, from my understanding of the docs, my answer to "should back-ends without billing info be considered being free" is a definite yes.

Maybe that's something that should be clarified in the API?


go the way that only lists back-ends that are explicitly free

sound's okay to me

What would be the benefit of doing multiple steps?

m-mohr commented 4 years ago

I don't understand 100% what you mean -- who assumes that?

I thought that was your understanding after reading your commit message.

IMO that would be against the spec, because it says:

Billing related data [...] MUST be specified if the back-end uses any billing related functionalities

Therefore, from my understanding of the docs, my answer to "should back-ends without billing info be considered being free" is a definite yes.

Seems there's a clarification needed in the docs. It's not meant this way. It just says that if you want to implement any billing related functions (e.g. /estimate or plan selection in /jobs) you need to specify the billing info. That doesn't mean you can't bill people. The API can be part of a broader payment model where individual API requests don't lead to individual costs, but be part of the mentioned "membership fee" model, for example. There you pay indirectly, but it's far from being free.

What would be the benefit of doing multiple steps?

Maybe you'd have preferred to just change the text now and do other changes in another version, not sure. Was just saying that I don't expect all changes in 0.6.

m-mohr commented 4 years ago

Has been clarified in the API.

christophfriedrich commented 4 years ago

after reading your commit message

Ahh I get it. By last week, my understanding was that others without billing info ARE free (as in: necessarily). Anyway, it's now clarified that the spec was meant differently, so never mind.


Ok, then from now on checking that box will filter out all backend groups that don't have at least 1 backend that has a plan whose paid flag is set to false.


I would name it "Only show backends that have a free plan".

But mentioning "backend" has a drawback: The filtering only works on backend group level. There might be a case where a provider has two backends of which one has a free plan and the other has not. Because the condition stated above is met, the backend group would be left in the list. So when the user expands the group, he is shown one backend that has a free plan and one that has not. The latter violates the statement of the check box label. Is that an issue? (The best fix of course would be to implement filtering down to the backend level...)

m-mohr commented 4 years ago

I like short phrases like "Free plans only", but I'm not 100% set on it. So all fine and go ahead. :-)

christophfriedrich commented 4 years ago

I changed my mind once more :D I realised that "Only show backends that" really is unnecessary because that is what the whole filtering is all about. So now I like "Must have a free plan" and will go for that :upside_down_face: