-
Notifications
You must be signed in to change notification settings - Fork 470
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Planned changes for 4.0.0 #104
Comments
Do you all have an idea of what |
@willcohen can't you just reuse the Java API. I played with Clojure ~2 years ago and JVM integration was pretty straightforward. |
Absolutely! If picking replacement names for Beyond being a pure wrapper, there's a little bit happening in the library beyond pure calls to Java to use clojure protocols to remove unnecessary reflection in clojure for Strings versus Longs, and to avoid having to call unidiomatically to H3Core's newInstance, but it tries to stick to the Java API and uses similar naming ( |
thoughts on changing getting parent: the name of the functions already imply direction, so a resolution of |
Not sold - I think the relative use case is no more common than the absolute, and not worth introducing confusion. But if we wanted to introduce |
I agree with @nrabinowitz, I think in general both use cases are roughly as common. |
I think another major-version change to consider is whether we can replace |
@nrabinowitz + @sahrk : i cannot anticipate the use case popularity for either relative or absolute and am not suggesting one is more popular than another. I do believe that |
@joegilley I can see framing problems using either relative or absolute resolution; though I personally would also be more inclined to use relative, I don't think it's counter-intuitive to use absolute. Coincidently I was just using this function when you posted and it didn't feel odd. So I guess I'd still vote for both options. The question then is whether it warrants breaking the api to make the default the relative case. |
Looking at the planned changes it would be great to have defines for the version number in the
would really help projects depending on this library to deal with the API-change. |
@nmandery I think we could include that in the current version, since it's not changing an existing API. |
@isaacbrodsky That would also be great. For me it would just be important to have a method to check the H3 version when the API break happens. |
Per offline discussion: We should have a consistent, documented approach to input validation in V4, including what the criteria are to add input validation to a function, how errors are returned, and what kind of benchmark changes would lead us to avoid validation in favor of performance. |
I've created a branch 4.x which can be used for developing the 4.0.0 release. PRs can be made against that branch for breaking changes, and when ready it can be merged into |
To try to encourage more progress on changes needed for 4.0.0, we're going to try removing the We have a Github project tracking what's in scope for 4.0.0: https://github.com/uber/h3/projects/1 We can continue discussion on those issues, and would welcome pull requests that propose solutions for them. I summarize the things we want to address for 4.0.0 as:
Right now we still do not expect to make breaking changes to the H3 index format for 4.0.0. |
We'll keep track of this using the project, https://github.com/uber/h3/projects/1 instead of this issue. Keep an eye out for H3 v4 in the future :) |
This is a tracking issue for any breaking changes that we plan to include in the next major version.
kRing
and removehexRange
,hexRanges
, and maybehexRing
. (naming "k-ring" #42)** Error codes should have meaning, e.g. invalid was not a valid H3 index, etc. Use core 3.1.0 and add h3Distance h3-java#22
The text was updated successfully, but these errors were encountered: