release.txt 4.9 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# Checklist for a release

## Formatting, Spellchecking, Javadocs

    git pull

Do this until there are no errors.
Fix typos, add new words to dictionary.txt:

    ./build.sh spellcheck

Add documentation for all public methods. Make methods private if possible:

    ./build.sh javadocImpl

Ensure lines are not overly long:

    ./build.sh docs

thomasmueller's avatar
thomasmueller committed
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
## JDBC Client Jar File Size Verification

The JDBC client is supposed to not have dependencies to the database engine.
To verify, run

    ./build.sh clean jarClient

If this fails with eg. "Expected file size 400 - 500 KB, got: 1687", then
find out where the dependency is, and resolve. As follows:
start by renaming Database to Database2:

    mv src/main/org/h2/engine/Database.java src/main/org/h2/engine/Database2.java
    ./build.sh clean jarClient

This will fail, the first error is for example can not compile Session because Database was not found.
So rename Session to Session2 and try again.
This will fail again, the first error is different, now for example can not compile ResultInterface
because Session was not found. Now, ResultInterface should not depend on the Session.
So this needs to be fixed (the JDBC API shouldn't indirectly depend on it).
After everything is resolved, rename the classes back.

## MVStore Jar File Size Verification
42 43 44 45 46 47 48 49 50

To ensure the MVStore jar file is not too large
(does not reference the database code by accident).
The file size should be about 200 KB:

    ./build.sh jarMVStore

## Changing Version Numbers

thomasmueller's avatar
thomasmueller committed
51 52 53 54 55 56 57 58
Update org.h2.engine.Constants.java:
    if the last build was stable (the normal case):
        set BUILD_DATE_STABLE to current BUILD_DATE
        set BUILD_ID_STABLE to current BUILD_ID
    change the version and build number:
        set BUILD_DATE to today
        increment BUILD_ID

59 60 61
Update org.h2.value.Transfer.java:
    if the last TCP_PROTOCOL_VERSION_## doesn't have a release date set it to current BUILD_DATE

thomasmueller's avatar
thomasmueller committed
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
Update changelog.html:
    * create a new "Next Version (unreleased)" with an empty list
    * add a new version
    * remove change log entries of the oldest version (keeping about 500 lines)

Update newsfeed.sql:
    * add new version, for example:
    * (146, '1.4.197', '2017-06-10'),
    * remove oldest entry in that list

## Skipped

The following can be skipped currently, as sourceError.html and source.html
are no longer working (they can be removed, or fixed):
* Minor version change: change sourceError.html and source.html
* If a beta, change download.html: Version ${version} (${versionDate}), Beta
* If a beta, change mainWeb.html: Version ${version} (${versionDate}), Beta

The following can be skipped currently; benchmarks should probably be removed:
* To update benchmark data: use latest versions of other dbs, change version(s) in performance.html

83
## Build the Release
thomasmueller's avatar
thomasmueller committed
84

85 86 87
Switch to Java 1.7.
In Build.java, comment "-Xdoclint:none", but don't commit that change.

thomasmueller's avatar
thomasmueller committed
88 89
Run the following commands:
Non-Windows:
90

thomasmueller's avatar
thomasmueller committed
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
    cd src/installer
    ./buildRelease.sh

Windows:

    cd src/installer
    buildRelease.bat

Scan for viruses.

Test installer, H2 Console (test new languages).

Check docs, versions and links in main, downloads, build numbers.

Check the PDF file size.
106

107
Upload (http and https) to ftp://h2database.com/javadoc
Thomas Mueller Graf's avatar
Thomas Mueller Graf committed
108
Upload (http and https) to ftp://h2database.com
109
Upload (http and https) to ftp://h2database.com/m2-repo
thomasmueller's avatar
thomasmueller committed
110 111 112 113 114 115 116 117

Github: create a release.

Newsletter: send (always to BCC!), the following:

    h2-database-jp@googlegroups.com; h2-database@googlegroups.com; h2database-news@googlegroups.com; ...

Create tweet at http://twitter.com
Thomas Mueller's avatar
Thomas Mueller committed
118

119 120 121 122
## Sign files and publish files on Maven Central

Switch to Java 1.7.
In Build.java, comment "-Xdoclint:none", but don't commit that change.
thomasmueller's avatar
thomasmueller committed
123 124 125 126 127 128

    ./build.sh clean compile jar mavenDeployCentral
    cd /data/h2database/m2-repo/com/h2database
    # remove sha and md5 files:
    find . -name "*.sha1" -delete
    find . -name "*.md5" -delete
129
    cd h2/1<latest>
thomasmueller's avatar
thomasmueller committed
130
    # for each file separately (-javadoc.jar, -sources.jar, .jar, .pom):
131
    gpg -u "Thomas Mueller Graf <thomas.tom.mueller@gmail.com>" -ab h2-<...>
thomasmueller's avatar
thomasmueller committed
132
    jar -cvf bundle.jar h2-*
133
    cd ../../h2-mvstore/1<latest>
thomasmueller's avatar
thomasmueller committed
134
    # for each file separately (-javadoc.jar, -sources.jar, .jar, .pom):
135
    gpg -u "Thomas Mueller Graf <thomas.tom.mueller@gmail.com>" -ab h2-mvstore<...>
thomasmueller's avatar
thomasmueller committed
136 137 138 139 140 141 142 143 144 145 146 147 148 149
    jar -cvf bundle.jar h2-*
    # http://central.sonatype.org/pages/ossrh-guide.html
    # http://central.sonatype.org/pages/manual-staging-bundle-creation-and-deployment.html
    # https://oss.sonatype.org/#welcome - Log In "t..."
    # - Staging Upload
    # - Upload Mode: Artifact Bundle, Select Bundle to Upload... - /data/.../bundle.jar
    # - Upload Bundle - Staging Repositories - select comh2database - Release - Confirm
    # - Staging Upload
    # - Upload Mode: Artifact Bundle, Select Bundle to Upload... - /data/.../bundle.jar
    # - Upload Bundle - Staging Repositories - select comh2database - Release - Confirm

Update statistics.

Change version in pom.xml, commit.