Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Preparing the macOS or Windows Binary Packages

Note: As of 3.1.0, we're not doing Apache binary packages for macOS or Windows. Neighbourhoodie have taken over this work.

Everyone is welcome to prepare binary packages for the release. Binary packages are never required for release candidates. All binaries must be prepared from the release artefacts. After voting on the release, you should prepare your binaries from the release artefacts you just voted on. If you can't build these yourself, ask for help on IRC or the mailing list.

...

macOS and Windows Binaries

Note: As of 3.1.0, we're not doing Apache binary packages for macOS or Windows. Neighbourhoodie have taken over this work.

The macOS and Windows binaries should be uploaded to the official  https://dist.apache.org/repos/dist/release/couchdb/binary tree, using instructions similar to the above.

...

  • First, build the binaries. On a Linux machine with Docker:

    Code Block
    languagebash
    $ docker pull --all-tags couchdbdev
    $ git clone https://github.com/apache/couchdb-pkg && cd couchdb-pkg
    $ ./build.sh couch-all https://dist.apache.org/repos/dist/release/couchdb/source/#.#.#/apache-couchdb-#.#.#.tar.gz


  • Double-check that the contents of the pkgs directory include the expected results:
    • couch/centos-6/x86_64 should contain the couchdb RPM as well as the SpiderMonkey 1.8.5 RPMs.
    • couch/centos-7/x86_64 should contain the couchdb RPM.
    • couch/debian-jessie|debian-stretch|ubuntu-trusty|ubuntu-xenial|ubuntu-bionic should each contain the appropriate couchdb deb.
  • Now, upload the binaries to Bintray and publish them:

    Code Block
    $ BINTRAY_USER="your-userid-here" BINTRAY_API_KEY="your-key-here" ./build.sh couch-upload-all


    If this fails, or you want to do it the old labour intensive way, the old web-based approach is below:

    • Visit the appropriate repo: https://bintray.com/apache/couchdb-deb/CouchDB or https://bintray.com/apache/couchdb-rpm/CouchDB  
    • Click on the New Version link. The version number should be x.x.x, and the description should be "Version x.x.x".
    • Click on the breadcrumb of the version number to return to the view of the version itself, such as https://bintray.com/apache/couchdb-rpm/CouchDB/2.1.0.
    • Click on the Upload Files link.
    • For RPMs, specify the appropriate target path: /el6/x86_64 or /el7/x86_64 as appropriate.
    • For debs, specify the appropriate parameters: distribution name (jessie, trusty, xenial), component name main, architecture name amd64. All platforms can be done in one go.
    • Click to add and upload the package. (Bintray automatically generates sha256 checksums.)
    • Wait for the upload to finish, then click Save Changes for RPM. For Debian, repeat the last 2 steps for all the packages, then click Save Changes.
    The binaries upload to Bintray without being published. You will want to log in and manually review the files on each repo, then publish:
    • Visit the appropriate repo: https://bintray.com/apache/couchdb-deb/CouchDB or https://bintray.com/apache/couchdb-rpm/CouchDB  
    • Click on the newly created version under the Versions heading, then click on Files to see the uploaded files. Confirm everything is as expected.
    • In the banner that appears, click Publish.
    • Note: this may not be necessary... Sign the Debian repository. You will need your Bintray API Key for this, which you can find under your account settings.


      Code Block
      languagebash
      $ curl -X POST -u $BINTRAY-USER:$BINTRAY-API-KEY https://api.bintray.com/gpg/apache/couchdb-deb/CouchDB/versions/X.X.


Docker images

  • Update the contents of https://github.com/apache/couchdb-docker so that the new version is being built. This is usually just a global search and replace on the Dockerfile as well as a directory rename or copy, plus updating .travis.yml. If this is a security release, just rename the old version directory. 
  • A PR will then do a test build in Travis and ensure everything is functional. Get that merged into master.
  • Use the new repo to build the image(s) the same way as in .travis.yml, tag the image(s), and upload to apache/couchdb:X.X.X using docker push.  It's also recommended to push the image as apache/couchdb:#.#, apache/couchdb:# and apache/couchdb:latest. Do not do the last 2 if this is just a maintenance release on an older supported branch.

    Note that the dev image cannot be uploaded per Apache policy!


  • Make a pull request against https://github.com/docker-library/official-images to reference the new commit you made on master. Make any changes as requested by the Docker team.

...