- 
                Notifications
    
You must be signed in to change notification settings  - Fork 3.4k
 
FlatBuffers release process
        Wouter van Oortmerssen edited this page Apr 11, 2019 
        ·
        31 revisions
      
    Steps to release a new version of FlatBuffers to github:
- runs generate_code.sh to ensure there's no missing files.
 - Change the version number in flatc.cpp, base.h, package.json, pom.xml (and various such files in grpc/), CMakeLists.txt (FlatBuffers_Library_SONAME_FULL), conanfile.py, dart/pubspec.yaml, rust/cargo.toml (not same as FlatBuffers version), and push to github.
 - Update the documentation remote branch 
gh-pagesthat hosts what is shown at http://google.github.io/flatbuffers/ using something like (warning, this will go live instantly): cd docs/sourcedoxygencd ../../.. (one up from flatbuffers root)git clone -b gh-pages --single-branch https://github.com/google/flatbuffers.git gh-pagescd gh-pagescp -r ../flatbuffers/docs/html/* .git add *git commitgit pushcd ..rm -rf gh-pages flatbuffers/docs/html- Tag this release by version number, e.g.:
git tag -a -m "FlatBuffers release 1.0.0" v1.0.0
 - git push yourgithubremotename v1.0.0
 - On the github releases page, add a release description to this tag, with a description of what changed etc.
- Also compile a 32bit release flatc.exe on Windows, and add it to this release as additional file (make sure to do this with the latest version so it has the correct version number).
 
 - For JS:
- (version has already been changed in package.json)
 - (on npm <4.0): 
npm run append-esm-export npm publish- (note 
npm adduserneeds a newer node than what's available on my machine?) - Check changes are on: https://www.npmjs.com/package/flatbuffers
 
 - For Java:
- (version already changed in pom.xml)
 - 
mvn clean deploy(or directly:mvn clean deploy -P release) mvn release:clean release:preparemvn release:perform- (see http://central.sonatype.org/pages/apache-maven.html for details).
 - This requires an account with oss.sonatype.org, a gpg key registered with a keyserver, and your user/pass in .m2/settings.xml (Maven) to work, among other mysterious things.
 - Note: some of the above commands tend to error out, since it is all some crazy async complex system.. but it will then succeed later anyway (shows up the new version on maven central).
 - For gRPC:
- in dir grpc, 
mvn deploy 
 - in dir grpc, 
 
 - For Dart:
- Run 
dart/publish.sh 
 - Run 
 - For Python:
export VERSION="1.9"python setup.py sdistpython setup.py bdist_wheeltwine upload dist/flatbuffers-1.9.tar.gztwine upload dist/flatbuffers-1.9-py2.py3-none-any.whl- See release on: https://pypi.org/project/flatbuffers/
 - (more detail here: https://github.com/google/flatbuffers/issues/4507#issuecomment-396370441)
 
 - For Rust:
- Tell @rw to upload after release.