- Clone all 5 Zonemaster component repos (LDNS, Engine, CLI, Backend, GUI) - Dockerfile.backend: 8-stage multi-stage build LDNS→Engine→CLI→Backend - Dockerfile.gui: Astro static build served via nginx - docker-compose.yml: backend (internal) + frontend (port 5353) - nginx.conf: root redirects to /es/, /api/ proxied to backend - zonemaster-gui/config.ts: defaultLanguage set to 'es' (Spanish) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5.2 KiB
Release process - Create Test Distribution
Table of contents
- 1. Overview
- 2. Prepare a build environment
- 3. Create a clean environment
- 4. Generate Makefile, META.yml and others
- 5. Verify that MANIFEST is up to date and that tarball can be built
- 6. Produce distribution tarballs
- 7. Produce distribution zip file
- 8. Produce Docker image
- 9. Verify that Zonemaster works when installed
- 10. Restart testing
1. Overview
The purpose of this part is to create the test distributions that can be used in QA testing for a release. It can also be used to create test distributions to verify a pull request.
Note: Normally, the develop branch version of this document should be used.
2. Prepare a build environment
Set up build system to be used for the test distribution creation. See Build Environment Preparation for how to set it up.
3. Create a clean environment
Make sure that you have checked out the correct git branch, normally
the develop branch and that your clone is up-to-date.
git fetch --all
git branch
For Zonemaster-LDNS only - empty the submodule area (LDNS):
git submodule deinit -f ldns
Make sure your working directory is clean.
git status --ignored
To clean (throw away untracked changes or files):
git clean -dfx
git reset --hard
You should usually work in the develop branch, and that should be up-to-date with the remote develop branch. Your working branch:
git branch -av | grep "^*"
All branches called "develop":
git branch -av --list "*develop"
4. Generate Makefile, META.yml and others
This section is not relevant for Zonemaster-GUI.
- For Zonemaster-LDNS:
perl Makefile.PL --no-ed25519
- For all components except Zonemaster-LDNS:
perl Makefile.PL
Note: You can ignore the following warnings:
- Missing META.yml (created by the very same command).
- Zonemaster-LDNS: Missing ldns source files (fetched by the very same command).
- Zonemaster-Engine and Zonemaster-CLI: Missing .mo files (created in a later step).
- Missing prerequisite (only needed on target system), e.g.:
- "Warning: prerequisite JSON::XS 0 not found."
5. Verify that MANIFEST is up to date and that tarball can be built
This section is not relevant for Zonemaster-GUI.
Build generated files (if any) and verify that a distribution tarball can be successfully built for each component that is to be updated in this release.
make all
For all components, make sure that all files are covered by MANIFEST and/or MANIFEST.SKIP, i.e. no missing or extra files:
make distcheck
6. Produce distribution tarballs
This section is not relevant for Zonemaster-GUI.
make dist
7. Produce distribution zip file
This section is relevant for Zonemaster-GUI only.
For this you need a build environment for Node.js, on which you create the zip file.
Clone the Zonemaster-GUI git repository:
git clone -b develop https://github.com/zonemaster/zonemaster-gui.gitcd zonemaster-gui
If you already have the repository:
cd zonemaster-guigit fetch --allgit checkout origin/develop
Build the distribution zip file:
npm installnpm run buildnpm run release
If you get building errors, repeat the
nvmcommands in build environment for Node.js first.Usually you can ignore warnings and security fixes, and usually you do not run any
npm audit fix. Check for open issues in Zonemaster-GUI and ask the others in the work group.
The distribution zip file is in the root level of the zonemaster-gui folder.
Its name is zonemaster_web_gui_v0.0.0.zip with correct version.
8. Produce Docker image
Follow the instructions in Create Docker Image to build CLI Docker image for testing.
9. Verify that Zonemaster works when installed
Verify that Zonemaster works when installed according to the documented installation procedures
Using the preliminary distribution tarballs produced in step 6 above, the preliminary distribution zip file produced in step 7 above and the Docker image produced in step 8, follow the procedures in SystemTesting.
10. Restart testing
If the system testing fails in a way that requires updated distribution tarballs, zip file or Docker image:
- Get the changes merged.
- Consider whether the actions taken in steps 2–8 above need amendment.
- Resume this document from step 9 above.