h3 3.6.2 → 3.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +23 -0
  3. data/Gemfile.lock +6 -6
  4. data/README.md +1 -1
  5. data/ext/h3/src/.github/workflows/test-linux.yml +118 -0
  6. data/ext/h3/src/.github/workflows/test-macos.yml +42 -0
  7. data/ext/h3/src/.github/workflows/test-website.yml +32 -0
  8. data/ext/h3/src/.github/workflows/test-windows.yml +44 -0
  9. data/ext/h3/src/.gitignore +5 -0
  10. data/ext/h3/src/.travis.yml +16 -46
  11. data/ext/h3/src/CHANGELOG.md +43 -0
  12. data/ext/h3/src/CMakeLists.txt +133 -33
  13. data/ext/h3/src/CONTRIBUTING.md +1 -1
  14. data/ext/h3/src/README.md +60 -10
  15. data/ext/h3/src/RELEASE.md +3 -1
  16. data/ext/h3/src/VERSION +1 -1
  17. data/ext/h3/src/dev-docs/RFCs/rfc-template.md +21 -0
  18. data/ext/h3/src/dev-docs/RFCs/v4.0.0/error-handling-rfc.md +21 -0
  19. data/ext/h3/src/dev-docs/RFCs/v4.0.0/names_for_concepts_types_functions.md +276 -0
  20. data/ext/h3/src/dev-docs/RFCs/v4.0.0/overrideable-allocators-rfc.md +141 -0
  21. data/ext/h3/src/dev-docs/RFCs/v4.0.0/polyfill-modes-rfc.md +21 -0
  22. data/ext/h3/src/dev-docs/RFCs/v4.0.0/vertex-mode-rfc.md +50 -0
  23. data/ext/h3/src/dev-docs/build_windows.md +6 -1
  24. data/ext/h3/src/dev-docs/creating_bindings.md +3 -3
  25. data/ext/h3/src/dev-docs/custom_alloc.md +27 -0
  26. data/ext/h3/src/docs/{overview/mainpage.md → README.md} +2 -3
  27. data/ext/h3/src/docs/api/misc.md +76 -0
  28. data/ext/h3/src/docs/community/applications.md +1 -0
  29. data/ext/h3/src/docs/community/bindings.md +7 -1
  30. data/ext/h3/src/docs/community/tutorials.md +8 -3
  31. data/ext/h3/src/docs/core-library/coordsystems.md +5 -4
  32. data/ext/h3/src/docs/core-library/filters.md +8 -9
  33. data/ext/h3/src/docs/core-library/geoToH3desc.md +2 -3
  34. data/ext/h3/src/docs/core-library/h3ToGeoBoundaryDesc.md +4 -5
  35. data/ext/h3/src/docs/core-library/h3ToGeoDesc.md +3 -4
  36. data/ext/h3/src/docs/core-library/h3indexing.md +26 -17
  37. data/ext/h3/src/docs/core-library/overview.md +2 -3
  38. data/ext/h3/src/docs/core-library/restable.md +1 -2
  39. data/ext/h3/src/docs/core-library/usage.md +1 -2
  40. data/ext/h3/src/docs/table-of-contents.json +47 -0
  41. data/ext/h3/src/docs/{overview/usecases.md → usecases.md} +6 -11
  42. data/ext/h3/src/scripts/binding_functions.sh +1 -1
  43. data/ext/h3/src/scripts/coverage.sh.in +1 -1
  44. data/ext/h3/src/scripts/update_version.sh +2 -2
  45. data/ext/h3/src/src/apps/applib/include/args.h +1 -0
  46. data/ext/h3/src/src/apps/applib/include/test.h +1 -0
  47. data/ext/h3/src/src/apps/applib/include/utility.h +7 -1
  48. data/ext/h3/src/src/apps/applib/lib/args.c +2 -0
  49. data/ext/h3/src/src/apps/applib/lib/kml.c +2 -0
  50. data/ext/h3/src/src/apps/applib/lib/test.c +1 -0
  51. data/ext/h3/src/src/apps/applib/lib/utility.c +133 -2
  52. data/ext/h3/src/src/apps/benchmarks/benchmarkH3Api.c +1 -1
  53. data/ext/h3/src/{website/html.config.js → src/apps/benchmarks/benchmarkH3UniEdge.c} +15 -12
  54. data/ext/h3/src/src/apps/filters/h3ToComponents.c +1 -0
  55. data/ext/h3/src/src/apps/filters/h3ToGeo.c +1 -0
  56. data/ext/h3/src/src/apps/filters/h3ToGeoBoundary.c +1 -0
  57. data/ext/h3/src/src/apps/filters/h3ToLocalIj.c +1 -0
  58. data/ext/h3/src/src/apps/filters/hexRange.c +1 -0
  59. data/ext/h3/src/src/apps/filters/kRing.c +1 -0
  60. data/ext/h3/src/src/apps/filters/localIjToH3.c +1 -0
  61. data/ext/h3/src/src/apps/miscapps/generateFaceCenterPoint.c +1 -0
  62. data/ext/h3/src/src/apps/miscapps/generateNumHexagons.c +1 -0
  63. data/ext/h3/src/src/apps/miscapps/generatePentagonDirectionFaces.c +67 -0
  64. data/ext/h3/src/src/apps/miscapps/h3ToGeoBoundaryHier.c +1 -0
  65. data/ext/h3/src/src/apps/miscapps/h3ToGeoHier.c +1 -0
  66. data/ext/h3/src/src/apps/miscapps/h3ToHier.c +1 -0
  67. data/ext/h3/src/src/apps/testapps/mkRandGeo.c +1 -0
  68. data/ext/h3/src/src/apps/testapps/mkRandGeoBoundary.c +1 -0
  69. data/ext/h3/src/src/apps/testapps/testBBox.c +1 -0
  70. data/ext/h3/src/src/apps/testapps/testBaseCells.c +15 -1
  71. data/ext/h3/src/src/apps/testapps/testCompact.c +75 -0
  72. data/ext/h3/src/src/apps/testapps/testCoordIj.c +1 -0
  73. data/ext/h3/src/src/apps/testapps/testGeoCoord.c +40 -13
  74. data/ext/h3/src/src/apps/testapps/testGeoToH3.c +1 -0
  75. data/ext/h3/src/src/apps/testapps/testH3Api.c +1 -0
  76. data/ext/h3/src/src/apps/testapps/testH3CellArea.c +47 -0
  77. data/ext/h3/src/src/apps/testapps/testH3CellAreaExhaustive.c +180 -0
  78. data/ext/h3/src/src/apps/testapps/testH3Distance.c +1 -0
  79. data/ext/h3/src/src/apps/testapps/testH3DistanceExhaustive.c +1 -0
  80. data/ext/h3/src/src/apps/testapps/testH3GetFaces.c +1 -0
  81. data/ext/h3/src/src/apps/testapps/testH3Index.c +33 -3
  82. data/ext/h3/src/src/apps/testapps/testH3Line.c +1 -0
  83. data/ext/h3/src/src/apps/testapps/testH3LineExhaustive.c +1 -0
  84. data/ext/h3/src/src/apps/testapps/testH3Memory.c +175 -0
  85. data/ext/h3/src/src/apps/testapps/testH3NeighborRotations.c +1 -0
  86. data/ext/h3/src/src/apps/testapps/testH3SetToLinkedGeo.c +1 -0
  87. data/ext/h3/src/src/apps/testapps/testH3SetToVertexGraph.c +1 -0
  88. data/ext/h3/src/src/apps/testapps/testH3ToCenterChild.c +1 -0
  89. data/ext/h3/src/src/apps/testapps/testH3ToChildren.c +1 -0
  90. data/ext/h3/src/src/apps/testapps/testH3ToGeo.c +1 -0
  91. data/ext/h3/src/src/apps/testapps/testH3ToGeoBoundary.c +1 -0
  92. data/ext/h3/src/src/apps/testapps/testH3ToLocalIj.c +9 -5
  93. data/ext/h3/src/src/apps/testapps/testH3ToLocalIjExhaustive.c +1 -0
  94. data/ext/h3/src/src/apps/testapps/testH3ToParent.c +1 -0
  95. data/ext/h3/src/src/apps/testapps/testH3UniEdge.c +45 -16
  96. data/ext/h3/src/src/apps/testapps/testH3UniEdgeExhaustive.c +111 -0
  97. data/ext/h3/src/src/apps/testapps/testHexRanges.c +1 -0
  98. data/ext/h3/src/src/apps/testapps/testHexRing.c +1 -0
  99. data/ext/h3/src/src/apps/testapps/testKRing.c +1 -0
  100. data/ext/h3/src/src/apps/testapps/testLinkedGeo.c +1 -0
  101. data/ext/h3/src/src/apps/testapps/testMaxH3ToChildrenSize.c +1 -0
  102. data/ext/h3/src/src/apps/testapps/testPentagonIndexes.c +1 -0
  103. data/ext/h3/src/src/apps/testapps/testPolyfill.c +72 -9
  104. data/ext/h3/src/src/apps/testapps/testPolyfillReported.c +157 -0
  105. data/ext/h3/src/src/apps/testapps/testPolygon.c +1 -0
  106. data/ext/h3/src/src/apps/testapps/testVec2d.c +1 -0
  107. data/ext/h3/src/src/apps/testapps/testVec3d.c +1 -0
  108. data/ext/h3/src/src/apps/testapps/testVertex.c +66 -0
  109. data/ext/h3/src/src/apps/testapps/testVertexGraph.c +1 -0
  110. data/ext/h3/src/src/h3lib/include/algos.h +8 -0
  111. data/ext/h3/src/src/h3lib/include/alloc.h +40 -0
  112. data/ext/h3/src/src/h3lib/include/baseCells.h +4 -0
  113. data/ext/h3/src/src/h3lib/include/bbox.h +4 -1
  114. data/ext/h3/src/src/h3lib/include/faceijk.h +3 -2
  115. data/ext/h3/src/src/h3lib/include/geoCoord.h +2 -3
  116. data/ext/h3/src/src/h3lib/include/h3Index.h +37 -4
  117. data/ext/h3/src/src/h3lib/include/h3api.h.in +65 -17
  118. data/ext/h3/src/src/h3lib/include/linkedGeo.h +1 -0
  119. data/ext/h3/src/src/h3lib/include/polygon.h +1 -0
  120. data/ext/h3/src/src/h3lib/include/polygonAlgos.h +1 -0
  121. data/ext/h3/src/src/h3lib/include/vertex.h +44 -0
  122. data/ext/h3/src/src/h3lib/include/vertexGraph.h +1 -0
  123. data/ext/h3/src/src/h3lib/lib/algos.c +300 -75
  124. data/ext/h3/src/src/h3lib/lib/baseCells.c +26 -4
  125. data/ext/h3/src/src/h3lib/lib/bbox.c +56 -31
  126. data/ext/h3/src/src/h3lib/lib/coordijk.c +2 -0
  127. data/ext/h3/src/src/h3lib/lib/faceijk.c +32 -21
  128. data/ext/h3/src/src/h3lib/lib/geoCoord.c +162 -44
  129. data/ext/h3/src/src/h3lib/lib/h3Index.c +81 -43
  130. data/ext/h3/src/src/h3lib/lib/h3UniEdge.c +42 -57
  131. data/ext/h3/src/src/h3lib/lib/linkedGeo.c +20 -15
  132. data/ext/h3/src/src/h3lib/lib/localij.c +1 -1
  133. data/ext/h3/src/src/h3lib/lib/polygon.c +2 -0
  134. data/ext/h3/src/src/h3lib/lib/vec2d.c +1 -0
  135. data/ext/h3/src/src/h3lib/lib/vec3d.c +1 -0
  136. data/ext/h3/src/src/h3lib/lib/vertex.c +134 -0
  137. data/ext/h3/src/src/h3lib/lib/vertexGraph.c +8 -5
  138. data/ext/h3/src/website/.eslintignore +2 -0
  139. data/ext/h3/src/website/.gitignore +57 -0
  140. data/ext/h3/src/website/.nvmrc +1 -0
  141. data/ext/h3/src/website/README.md +8 -6
  142. data/ext/h3/src/website/gatsby-config.js +83 -0
  143. data/ext/h3/src/website/package.json +20 -12
  144. data/ext/h3/src/website/scripts/build-to-gh-pages.sh +7 -5
  145. data/ext/h3/src/website/src/.gitkeep +0 -0
  146. data/ext/h3/src/website/templates/documentation.jsx +129 -0
  147. data/ext/h3/src/website/yarn.lock +13723 -0
  148. data/lib/h3/bindings/private.rb +3 -0
  149. data/lib/h3/miscellaneous.rb +123 -0
  150. data/lib/h3/version.rb +1 -1
  151. data/spec/miscellaneous_spec.rb +117 -0
  152. data/spec/regions_spec.rb +1 -1
  153. metadata +35 -14
  154. data/ext/h3/src/.ycm_extra_conf.py +0 -92
  155. data/ext/h3/src/appveyor.yml +0 -50
  156. data/ext/h3/src/src/apps/testapps/testPolyfill_GH136.c +0 -58
  157. data/ext/h3/src/website/src/config.js +0 -46
  158. data/ext/h3/src/website/src/mdRoutes.js +0 -151
  159. data/ext/h3/src/website/src/styles/_variables.scss +0 -16
  160. data/ext/h3/src/website/src/styles/index.scss +0 -3
  161. data/ext/h3/src/website/static/index.html +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: c5f225736d5df411fd63eb2cad74c153ba96d6a659cf603ba781bab3497dfcc9
4
- data.tar.gz: cc45bd99735019ae9d8442ca948df0ce64dd70aa82fa47eabfe2966ea0d76ea2
2
+ SHA1:
3
+ metadata.gz: a2e10e1deba82674a8ea642385fdbd753ba86860
4
+ data.tar.gz: df8a3687f67e5ebfa8432ce1c456b7c038a2de50
5
5
  SHA512:
6
- metadata.gz: 84d534f96a5772628a642ac773224af9d907319a4a576cbb7c772773ba8b2ea3814c9118b90e69f617834484b7e10f117da9f9f4a98be99124238ba105532767
7
- data.tar.gz: '098daf9d6a37dfe0a1a7b4458a2d9875ff9456c1f264b61328006f7bc45ac91031f6f24aebd508c1826e884b9f0cbf457daf75691026da83031bf0312d7dd422'
6
+ metadata.gz: f4b83e62d5b0cea99238ad0c04e06e906b73a4d871c6fb0205994ec493036cbd56561184c0998b6e04f81bd0c7af27eff37e82e7c4da7f5d6a5ca214b14b4bd1
7
+ data.tar.gz: 33d956b62f5e0a465efebc8014bd03c05743e9e013fbdbbfd52ff6da94a448728c1677b69ba8ff23f26eab6a166f8d62ecd537a9d3a160ff480a311e7f9c5457
@@ -6,6 +6,29 @@ This project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
7
  We track the MAJOR and MINOR version levels of Uber's H3 project (https://github.com/uber/h3) but maintain independent patch levels so we can make small fixes and non breaking changes.
8
8
 
9
+ ## [3.7.1] - 2020-10-7
10
+ ### Added
11
+ - Area and haversine distance functions:
12
+ - `cellAreaRads2`
13
+ - `cellAreaKm2`
14
+ - `cellAreaM2`
15
+ - `pointDistRads`
16
+ - `pointDistKm`
17
+ - `pointDistM`
18
+ - `exactEdgeLengthRads`
19
+ - `exactEdgeLengthKm`
20
+ - `exactEdgeLengthM`
21
+
22
+ ### Changed
23
+ - Speeds up `getH3UnidirectionalEdgeBoundary` by about 3x.
24
+
25
+ ### Fixed
26
+ - Finding invalid edge boundaries should not crash.
27
+
28
+ ## [3.6.4] - 2020-7-2
29
+ ### Changed
30
+ - Reinstate new `polyfill` algorithm for up to 3x perf boost.
31
+
9
32
  ## [3.6.2] - 2020-1-8
10
33
  ### Changed
11
34
  - Revert new polyfill algorithm until reported issues are fixed.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- h3 (3.6.2)
4
+ h3 (3.7.1)
5
5
  ffi (~> 1.9)
6
6
  rgeo-geojson (~> 2.1)
7
7
  zeitwerk (~> 2.1)
@@ -17,9 +17,9 @@ GEM
17
17
  tins (~> 1.6)
18
18
  diff-lcs (1.3)
19
19
  docile (1.3.1)
20
- ffi (1.11.3)
21
- json (2.1.0)
22
- rake (12.3.2)
20
+ ffi (1.13.1)
21
+ json (2.3.1)
22
+ rake (12.3.3)
23
23
  rgeo (2.1.1)
24
24
  rgeo-geojson (2.1.1)
25
25
  rgeo (>= 1.0.0)
@@ -46,7 +46,7 @@ GEM
46
46
  thor (0.19.4)
47
47
  tins (1.20.2)
48
48
  yard (0.9.20)
49
- zeitwerk (2.2.2)
49
+ zeitwerk (2.4.0)
50
50
 
51
51
  PLATFORMS
52
52
  ruby
@@ -59,4 +59,4 @@ DEPENDENCIES
59
59
  yard (~> 0.9)
60
60
 
61
61
  BUNDLED WITH
62
- 1.17.3
62
+ 2.1.4
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ![h3](https://user-images.githubusercontent.com/98526/50283275-48177300-044d-11e9-8337-eba8d3cc88a2.png)
4
4
 
5
- [![Build Status](https://travis-ci.org/StuartApp/h3_ruby.svg?branch=master)](https://travis-ci.org/seanhandley/h3_ruby)
5
+ [![Build Status](https://travis-ci.org/StuartApp/h3_ruby.svg?branch=master)](https://travis-ci.org/StuartApp/h3_ruby)
6
6
  [![Maintainability](https://api.codeclimate.com/v1/badges/74a47e7fa516588ab545/maintainability)](https://codeclimate.com/repos/5ca38395a86379029800281f/maintainability) [![Coverage Status](https://coveralls.io/repos/github/StuartApp/h3_ruby/badge.svg?branch=master)](https://coveralls.io/github/StuartApp/h3_ruby?branch=master) [![Gem Version](https://badge.fury.io/rb/h3.svg)](https://badge.fury.io/rb/h3)
7
7
 
8
8
  Ruby-to-C bindings for Uber's [H3 library](https://uber.github.io/h3/).
@@ -0,0 +1,118 @@
1
+ name: test-linux
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+ branches: [master]
8
+
9
+ jobs:
10
+ tests:
11
+ name: Test Compile ${{ matrix.compiler }}
12
+ runs-on: ubuntu-latest
13
+ env:
14
+ CC: ${{ matrix.compiler }}
15
+
16
+ strategy:
17
+ matrix:
18
+ compiler: [clang, gcc]
19
+
20
+ steps:
21
+ - uses: actions/checkout@v2.1.1
22
+
23
+ - name: Install Doxygen
24
+ run: |
25
+ sudo apt update
26
+ sudo apt-get install doxygen graphviz
27
+
28
+ - name: Configure build
29
+ run: cmake -Bbuild -DWARNINGS_AS_ERRORS=ON .
30
+
31
+ - name: Formatting check
32
+ working-directory: build
33
+ run: |
34
+ clang-format-9 --version
35
+ make format
36
+ git diff --exit-code
37
+
38
+ - name: Build
39
+ working-directory: build
40
+ run: make
41
+
42
+ - name: binding-functions
43
+ working-directory: build
44
+ run: |
45
+ make binding-functions
46
+ test -s binding-functions
47
+
48
+ - name: Tests
49
+ working-directory: build
50
+ run: |
51
+ make test
52
+ sudo make install
53
+
54
+ # Note the packages aren't used to test the examples below
55
+ - name: Test packaging
56
+ working-directory: build
57
+ run: cpack -D CPACK_PACKAGE_CONTACT="Test build in CI"
58
+
59
+ - name: Examples
60
+ run: |
61
+ mkdir build/examples
62
+ cd build/examples
63
+ cmake ../../examples
64
+ make
65
+ make test
66
+
67
+ valgrind-tests:
68
+ name: Test Valgrind
69
+ runs-on: ubuntu-latest
70
+
71
+ steps:
72
+ - uses: actions/checkout@v2.1.1
73
+
74
+ - name: Install Valgrind
75
+ run: |
76
+ sudo apt update
77
+ sudo apt-get install valgrind
78
+
79
+ - name: Configure build
80
+ run: cmake -Bbuild -DCMAKE_BUILD_TYPE=Debug -DWRAP_VALGRIND=ON .
81
+
82
+ - name: Build
83
+ working-directory: build
84
+ run: make
85
+
86
+ - name: Tests
87
+ working-directory: build
88
+ env:
89
+ CTEST_OUTPUT_ON_FAILURE: 1
90
+ run: make test-fast
91
+
92
+ coverage-tests:
93
+ name: Coverage
94
+ runs-on: ubuntu-latest
95
+ env:
96
+ CC: gcc
97
+
98
+ steps:
99
+ - uses: actions/checkout@v2.1.1
100
+
101
+ - name: Install lcov
102
+ run: |
103
+ sudo apt update
104
+ sudo apt-get install lcov
105
+
106
+ - name: Configure build
107
+ run: cmake -DCMAKE_BUILD_TYPE=Debug -DWARNINGS_AS_ERRORS=ON -DH3_PREFIX=testprefix_ .
108
+
109
+ - name: Build
110
+ run: make
111
+
112
+ - name: Tests
113
+ run: make coverage
114
+
115
+ - uses: coverallsapp/github-action@master
116
+ with:
117
+ path-to-lcov: ./coverage.cleaned.info
118
+ github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,42 @@
1
+ name: test-macos
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+ branches: [master]
8
+
9
+ jobs:
10
+ tests:
11
+ name: Test Compile ${{ matrix.compiler }}
12
+ runs-on: macos-latest
13
+
14
+ steps:
15
+ - uses: actions/checkout@v2.1.1
16
+
17
+ - name: Configure build
18
+ run: cmake -Bbuild -DWARNINGS_AS_ERRORS=ON .
19
+
20
+ - name: Build
21
+ working-directory: build
22
+ run: make
23
+
24
+ - name: binding-functions
25
+ working-directory: build
26
+ run: |
27
+ make binding-functions
28
+ test -s binding-functions
29
+
30
+ - name: Tests
31
+ working-directory: build
32
+ run: |
33
+ make test
34
+ sudo make install
35
+
36
+ - name: Examples
37
+ run: |
38
+ mkdir build/examples
39
+ cd build/examples
40
+ cmake ../../examples
41
+ make
42
+ make test
@@ -0,0 +1,32 @@
1
+ name: test-website
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+ branches: [master]
8
+
9
+ jobs:
10
+ tests:
11
+ name: Test Website and FOSSA
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - uses: actions/checkout@v2.1.1
16
+
17
+ - uses: actions/setup-node@v1
18
+ with:
19
+ node-version: 10.x
20
+
21
+ - name: Install FOSSA
22
+ run: |
23
+ curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/fossas/fossa-cli/master/install.sh | sudo bash
24
+
25
+ - name: Test Website Build
26
+ working-directory: website
27
+ run: |
28
+ yarn
29
+ yarn build
30
+
31
+ - name: Submit FOSSA report
32
+ run: if [ -n "${{ secrets.FOSSA_API_KEY }}" ]; then fossa; fi
@@ -0,0 +1,44 @@
1
+ name: test-windows
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+ branches: [master]
8
+
9
+ jobs:
10
+ tests:
11
+ name: Test Compile ${{ matrix.config }} ${{ matrix.arch }}
12
+ runs-on: windows-latest
13
+ env:
14
+ CC: cl.exe
15
+ CXX: cl.exe
16
+
17
+ strategy:
18
+ matrix:
19
+ config: [Release, Debug]
20
+ arch: [Win32, x64]
21
+
22
+ steps:
23
+ - uses: actions/checkout@v2.1.1
24
+
25
+ - name: Configure build
26
+ shell: cmd
27
+ run: cmake -Bbuild -A ${{ matrix.arch }} -DWARNINGS_AS_ERRORS=ON .
28
+
29
+ - name: Build
30
+ working-directory: build
31
+ run: cmake --build . --config ${{ matrix.config }}
32
+
33
+ - name: binding-functions
34
+ working-directory: build
35
+ run: |
36
+ cmake --build . --config ${{ matrix.config }} --target binding-functions
37
+ if ((Get-Item "binding-functions").Length -lt 10) { $host.SetShouldExit(1) }
38
+
39
+ - name: Tests
40
+ working-directory: build
41
+ shell: cmd
42
+ env:
43
+ CTEST_OUTPUT_ON_FAILURE: 1
44
+ run: ctest -C ${{ matrix.config }}
@@ -58,12 +58,16 @@ env_docs/
58
58
  node_modules/
59
59
  website/dist/
60
60
  website/package-lock.json
61
+ website/.cache/
62
+ website/public/
61
63
  # Generated Doxyfile
62
64
  dev-docs/Doxyfile
63
65
 
64
66
  # CMake generated
65
67
  CMakeFiles
66
68
  CMakeCache.txt
69
+ CPackConfig.cmake
70
+ CPackSourceConfig.cmake
67
71
  Makefile
68
72
  cmake_install.cmake
69
73
  install_manifest.txt
@@ -90,6 +94,7 @@ coverage.cleaned.info
90
94
  *.cbp
91
95
  .idea
92
96
  .vscode
97
+ .ipynb_checkpoints
93
98
 
94
99
  # Generated by `make binding-functions`
95
100
  binding-functions
@@ -15,12 +15,17 @@
15
15
  language: c
16
16
 
17
17
  os: linux
18
- dist: xenial
18
+ dist: bionic
19
19
 
20
20
  compiler:
21
21
  - gcc
22
22
  - clang
23
23
 
24
+ arch:
25
+ - arm64
26
+ - ppc64le
27
+ - s390x
28
+
24
29
  # Docs are built during the normal compile/test check.
25
30
  addons:
26
31
  apt:
@@ -30,57 +35,22 @@ addons:
30
35
 
31
36
  matrix:
32
37
  include:
33
- # Check that clang-format doesn't detect some files are not formatted.
34
- - name: "Formatting check"
35
- compiler: clang
36
- addons:
37
- apt:
38
- sources:
39
- - llvm-toolchain-trusty-5.0
40
- packages:
41
- - clang-format-5.0
42
- script: make format && git diff --exit-code
43
- # Submit coverage report to Coveralls.io, also test that prefixing works.
44
- - name: "Coverage and FOSSA report"
45
- compiler: gcc
46
- addons:
47
- apt:
48
- packages:
49
- - lcov
50
- install:
51
- - gem install coveralls-lcov
38
+ # Test building the website also - needed for FOSSA to pick up dependencies
39
+ # FOSSA is run here because the API key will not be present in Github Actions.
40
+ # Blocked on https://github.com/fossas/fossa-cli/issues/617
41
+ - name: "Website and FOSSA report"
42
+ arch: amd64
43
+ language: node_js
44
+ node_js: 10
45
+ install: []
52
46
  before_script:
53
47
  - "curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/fossas/fossa-cli/master/install.sh | sudo bash"
54
- - cmake -DCMAKE_BUILD_TYPE=Debug -DWARNINGS_AS_ERRORS=ON -DH3_PREFIX=testprefix_ .
55
48
  script:
56
- - make
57
- - make coverage
58
- # Test building the website also - needed for FOSSA to pick up dependencies
59
49
  - cd website
60
- - npm install
61
- - npm run build
50
+ - yarn
51
+ - yarn build
62
52
  - cd ..
63
53
  - 'if [ -n "$FOSSA_API_KEY" ]; then fossa; fi'
64
- after_success:
65
- - coveralls-lcov coverage.cleaned.info
66
- - name: "Valgrind test"
67
- compiler: gcc
68
- addons:
69
- apt:
70
- packages:
71
- - valgrind
72
- before_script:
73
- - cmake -DCMAKE_BUILD_TYPE=Debug -DWRAP_VALGRIND=ON .
74
- script:
75
- - make
76
- - CTEST_OUTPUT_ON_FAILURE=1 make test-fast
77
- - name: "Mac OSX (Xcode 8)"
78
- os: osx
79
- - name: "binding-functions target"
80
- script:
81
- - make binding-functions
82
- # Check that the file exists and has contents
83
- - test -s binding-functions
84
54
 
85
55
  # Configure the build script, out of source.
86
56
  before_script:
@@ -7,6 +7,49 @@ The public API of this library consists of the functions declared in file
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [3.7.1] - 2020-10-05
11
+ ### Fixed
12
+ - Finding invalid edge boundaries should not crash. (#399)
13
+ - Build fixes for FreeBSD. (#397)
14
+
15
+ ## [3.7.0] - 2020-09-28
16
+ ### Added
17
+ - Area and haversine distance functions (#377):
18
+ - `cellAreaRads2`
19
+ - `cellAreaKm2`
20
+ - `cellAreaM2`
21
+ - `pointDistRads`
22
+ - `pointDistKm`
23
+ - `pointDistM`
24
+ - `exactEdgeLengthRads`
25
+ - `exactEdgeLengthKm`
26
+ - `exactEdgeLengthM`
27
+ - Refactor `getH3UnidirectionalEdgeBoundary` for accuracy at small resolutions. (#391)
28
+ - Speeds up `getH3UnidirectionalEdgeBoundary` by about 3x.
29
+ - Implement core logic for future vertex mode.
30
+ ### Fixed
31
+ - Fixed building the library with custom memory allocation functions on Mac OSX. (#362)
32
+ - The installed H3 CMake target should have include directories specified. (#381)
33
+ ### Changed
34
+ - Tests now use `bash` on Windows. (#381)
35
+
36
+ ## [3.6.4] - 2020-06-19
37
+ ### Added
38
+ - `H3_MEMORY_PREFIX` CMake option for replacing the memory management functions used in H3. (#317)
39
+ - Support for building Debian packages of H3. (#352)
40
+ ### Fixed
41
+ - Removed duplicate include statements. (#333)
42
+ - Fixed macro `H3_DIGIT_MASK_NEGATIVE`. (#329)
43
+ ## Changed
44
+ - Again implement new `polyfill` algorithm. (#313)
45
+
46
+ ## [3.6.3] - 2020-01-21
47
+ ### Fixed
48
+ - `compact` detects and fails on cases with duplicated input indexes. (#299)
49
+ ### Changed
50
+ - `h3IsValid` returns false for indexes that have non-zero reserved bits. (#300)
51
+ - `h3IsValid` and `h3UnidirectionalEdgeIsValid` return false for indexes with the high bit set. (#300)
52
+
10
53
  ## [3.6.2] - 2019-12-9
11
54
  - Revert new `polyfill` algorithm until reported issues are fixed. (#293)
12
55