# History ## 0.22.0 Install/update via the bootstrap script: ```shell wget https://raw.githubusercontent.com/dokku/dokku/v0.22.0/bootstrap.sh sudo DOKKU_TAG=v0.22.0 bash bootstrap.sh ``` See the [0.22.0 migration guide](/docs/appendices/0.22.0-migration-guide.md) for more information on migrating to 0.22.0. ### Bug Fixes - #4204: @josegonzalez Ensure the image is not an empty string - #4198: @josegonzalez Reference extracted Procfile - #4194: @josegonzalez Drop appName check in apps:report - #4183: @josegonzalez Embed pb.UnimplementedGreeterServer to avoid linting issues - #4182: @josegonzalez Upgrade herokuish to fix nodejs tests - #4173: @karimsan Add build-essential to Vagrant provision - #4181: @josegonzalez Conditionally mount the dokku-arch folder if it exists - #4130: @josegonzalez Clear proxy configs on boot - #4131: @josegonzalez Bump minimum docker version - #4123: @fomojola Support for expected CHECKS text with special characters - #4115: @josegonzalez Add missing labels to built images - #4116: @Schlepptop Ensure config:clear an be called ### New Features - #4209: @josegonzalez Add experimental support for Cloud Native Buildpacks (CNB) - #4210: @josegonzalez Add migration guide link to release notes - #4203: @josegonzalez Cleanup log output for failure case - #4208: @ankane Add ability to change the access log format - #4202: @josegonzalez Schedule related images for cleanup when retiring containers - #4197: @josegonzalez Retire intermediate containers after use - #4128: @fomojola Added the container index to the network-compute-ports trigger - #4191: @josegonzalez Create codeql-analysis.yml - #4139: @Yihao-G Allow controlling Nginx proxy-buffer-size, proxy-buffering, proxy-buffers, proxy-busy-buffers-size - #4156: @ltalirz When `cert:add` remove previous cert before copying the new cert - #4129: @josegonzalez Prohibit non-dns names for apps and process types - #4125: @josegonzalez Allow customizing the various nginx templates - #4121: @josegonzalez Add ability to disable custom ninx.conf.sigil extraction ### Refactors - #4160: @nerg4l Rewrite logs plugin in Go - #4149: @josegonzalez Rewrite ps plugin in golang - #4080: @hugopeixoto Stop using VHOST when listing app domains and urls - #4117: @josegonzalez Rewrite app-json plugin in golang - #4113: @josegonzalez Drop herokuish release code ### Documentation - #4196: @josegonzalez Correctly doc apps:report output - #4195: @luizpicolo Fix whitespace in process-management docs - #4184: @badsyntax Add note regarding using plugin triggers instead of sourcing functions - #4188: @fomojola Added the autosync community plugin - #4187: @nahtnam Add `-p` flag to "Run on External Volume" tutorial - #4186: @badsyntax Add dokku-discourse to community plugins list - #4170: @chrisjsimpson Add note on how to enable buildkit usage - #4168: @josegonzalez Revert "The default branch for ruby-getting-started is 'main', not 'master" - #4167: @nateww The default branch for ruby-getting-started is 'main', not 'master - #4135: @znz Fix broken table - #4140: @swrobel Note Ubuntu 20.04 support in README - #4136: @hugopeixoto Update push command for sample app in docs - #4124: @josegonzalez Note that docker options require app rebuilds - #4098: @carlosgeos Add a note on how nginx handles load balancing - #4111: @josegonzalez Add large version of dokku image - #4100: @turicas Fix markdown syntax in nginx docs ### Other - #4201: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.34.v20201102 to 9.4.35.v20201120 in /tests/apps/java - #4200: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 183 to 185 in /tests/apps/php - #4189: @dependabot-preview[bot] chore(deps): bump thin from 1.7.2 to 1.8.0 in /tests/apps/ruby - #4175: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.33.v20201020 to 9.4.34.v20201102 in /tests/apps/java - #4172: @dependabot-preview[bot] chore(deps): bump github.com/golang/protobuf from 1.4.2 to 1.4.3 in /tests/apps/gogrpc - #4185: @dependabot-preview[bot] chore(deps): bump socket.io from 2.3.0 to 3.0.1 in /tests/apps/.websocket.disabled - #4190: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 182 to 183 in /tests/apps/php - #4165: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.31.v20200723 to 9.4.33.v20201020 in /tests/apps/java - #4153: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 181 to 182 in /tests/apps/php - #4144: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 180 to 181 in /tests/apps/php - #4137: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 179 to 180 in /tests/apps/php - #4118: @dependabot[bot] chore(deps): bump django from 3.0.2 to 3.0.7 in /tests/apps/dockerfile-release - #4103: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 178 to 179 in /tests/apps/php - #4091: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.30.v20200611 to 9.4.31.v20200723 in /tests/apps/java
3.7 KiB
Release Process
Dokku is released in intervals at most three weeks apart, though may be released much quicker.
To propose a release, the following tasks need to be performed:
export PACKAGECLOUD_TOKEN=SOME_TOKEN
# supports major/minor/patch/betafish
contrib/release-dokku
If you are a maintainer and need the PACKAGECLOUD_TOKEN in order to make a release, please contact @josegonzalez to get this information.
As well, the ArchLinux package description must be updated via vagrant up build-arch (needs to be done after the tag is pushed to GitHub, because it is based on that)
Versioning
Dokku follows semver standards. As we are not yet at a stable release, breaking changes will require only a minor release, while all other changes only require a patch release. Once we hit stable, breaking changes will require a major release.
At the moment, tags need not be signed, though that may change in the future.
ArchLinux Packages
ArchLinux packages are not really build, because all that is needed for an Arch User Repo (AUR) package is the description of how to build the package. To make this process as easy as possible there is a vagrant box called build-arch that updates the version of this build description (a file called PKGBUILD), then runs some helper scripts to fill all additional information and does test if the package could be build. Then only those changes need to be pushed to the AUR repo and an updated version of the package is ready for usage for our ArchLinux users. For detailed information see the section below.
The workflow looks like this:
# having dokku-arch in ../dokku-arch
vagrant up build-arch
# wait for "==> build-arch: ==> Finished making: dokku 0.22.0-2 (Mon Feb 22 23:20:37 CET 2016)"
cd ../dokku-arch
git add PKGBUILD .SRCINFO
git commit -m 'Update to dokku 0.9.9'
git push aur master
If you are a maintainer and need access to the AUR repositories in order to make a release, please contact @morrisjobke or @josegonzalez to get this co-maintainership.
Detailed information for ArchLinux packages
All of the information to build the ArchLinux package is in the AUR git repository (see dokku AUR page). The release of a AUR package only consists of pushing the package information into the AUR git repo. Then users could use that information to build the package on their machines.
To update the package clone the repository and adjust the files in the repository. Then a helper script - updpkgsums - to update the SHA sum could be called (check against the original SHA sum). Another helper script - mksrcinfo - needs to be called to update the meta information of the package in a file called .SRCINFO. The next step builds the package locally for verification - makepkg. As last step commit your changes and push the commit.
- dependencies are defined in the
dependsattribute inPKGBUILD - build steps during package build time are defined in the
package()method inPKGBUILD - steps that should be executed during install/update/remove time are defined in the file
dokku.install - detailed information about all attributes in
PKGBUILDcould be found in the ArchLinux wiki - detailed information about the AUR workflow could be found in the AUR article in the ArchLinux wiki
That is the usual workflow:
updpkgsums # update sha sums - compare them with the original ones
mksrcinfo # update package metadata for AUR
makepkg # test package builds
git add PKGBUILD .SRCINFO
git commit -m 'Update to dokku 0.9.9'
git push
If there is something unclear simply ask @morrisjobke for help.