GEODE-1416 lays out the tasks needed to prepare geode-native to be included in
a geode release. I spent some time reviewing the source and found several
other things to consider:
1) Docs
- The documentation under docs/ needs to be rebranded for Geode.
- The API docs in src/docs to need remove references to Pivotal. This includes:
support.html
copyright.html
gemfire and pivotal logos
- README.md points to documentation hosted by Pivotal. Once the documentation
has been rebranded it should be hosted on geode.apache.org/docs
2) Schema
We need to move gfcpp-cache-9.0.xsd to http://geode.apache.org/schema.
3) Build
The cmake build can produce source and binary distributions though it’s not
very obvious how to do so. Here’s how to create the binary distribution:
cmake ../src -DPRODUCT_VERSION=1.2.0-SNAPSHOT
cmake --build .
cmake --build . —target docs
cmake --build . --target package
-rw-r--r-- 1 abaker staff 25355797 Mar 6 08:48
apache-geode-native-1.2.0-SNAPSHOT-Linux-64bit.tar.gz
-rw-r--r-- 1 abaker staff 27074260 Mar 6 08:54
apache-geode-native-1.2.0-SNAPSHOT-Linux-64bit.zip
Here’s how to create the source distribution:
cpack --config CPackSourceConfig.cmake
-rw-r--r-- 1 abaker staff 4965935 Mar 6 09:26
apache-geode-native-1.2.0-SNAPSHOT-Source.tar.Z
-rw-r--r-- 1 abaker staff 1781424 Mar 6 09:25
apache-geode-native-1.2.0-SNAPSHOT-Source.tar.bz2
-rw-r--r-- 1 abaker staff 2312379 Mar 6 09:25
apache-geode-native-1.2.0-SNAPSHOT-Source.tar.gz
-rw-r--r-- 1 abaker staff 1491336 Mar 6 09:26
apache-geode-native-1.2.0-SNAPSHOT-Source.tar.xz
Comments:
- The distributions don’t include the version in the top-level directory. We
should include that.
- The binary distributions include cmake files and several *.in files. Are
those necessary?
- The source distribution only includes files from src/. It should capture
everything in the geode-native/ root dir.
- It looks like src/cppcache/src/version.cmake.in relies on the presence of a
git repo. That will not be present for a source release, see [1].
We also need to generate signatures and hashes for each of the distribution
artifacts. How hard is that to do in cmake? Should we just create a simple
gradle wrapper script to do this so we have a common release toolset across
geode, geode-examples, and geode-native?
Thanks,
Anthony
[1] https://github.com/apache/geode/blob/develop/gradle/utilities.gradle#L55