Debian Packaging ================ We use git-buildpackage for packaging. Workflow for Unstable ===================== We use the standard git-buildpackage workflow. Dynamic Modules =============== Since v1.9.11 Nginx added dynamic module support. This will sanitize the nginx packaging flow in the long term, but there is a lot work to be done in order to get there. We gradually convert all modules to dynamic as they add support for it. [0] https://www.nginx.com/blog/dynamic-modules-nginx-1-9-11/ Workflow for Experimental ========================= Nginx mainline releases (1.11.x series) are been packaged for experimental, as they lack security support. The workflow we use is based on the assumption that packaging work happens on origin/master and experimental builds are a trivial patch away from that. The direct consequence of treating experimental as a patchset for origin/master is that the relevant branches are forced-pushed whenever we release a new 1.11.x version. In other words, **it is not safe to base your work on the experimental branch**. This is a brief description of our experimental branches and how we are using them. * experimental-base Force-pushed when origin/master changes. experimental-base tracks the changes needed for building the 1.11.x branch, such as new configure parameters, etc. On new 1.11.x releases, it is rebased on origin/master so it is always up-to-date with our latest packaging work. * experimental Force-pushed on every 1.11.x release. This branch points to the latest 1.11.x release. Before release this branch is reset to experimental-base, and then merged with the new upstream-1.11 branch. Finally all the release specific changes are commited (changelog entry etc) and the build is made. * upstream-1.11 Pushed on every 1.11.x release. Before a new 1.11.x release origin/upstream is dummy merged (-s ours) into ustream-1.11. This is a technicallity so we can avoid resolving conflicts when a new 1.10.x release happens between two experimental releases. Older 1.11.x releases are not referenced by any branch, but they can be found by the relevant debian/* tag.