GeneratingTheWeeklyRelease - psiinon/zaproxy GitHub Wiki
Generating the weekly release
Generating the weekly release is currently a manual process.
Yes we should automate more, but as you'll see there are quite a few steps and manual sanity checks.
We now generate the weekly releases from the develop branch.
Language files
Language file changes are now automatically submitted via pull requests from zapbot - no additional steps are required here.
Update extension zap.jar files
Note that this is only done when we are relatively close to a release as add-ons that use the weekly ZAP jars may be incompatible with the released version of ZAP.
- zaproxy/build/build.xml target=copy-jar-to-extension-projects
- Refresh files in IDE
- Fix any compilation errors caused by updating the jar
- Commit the jars and any fixes required
Generate the weekly add-ons
- zaproxy/build/build.xml target=deploy-weekly-addons
Generate the release
- zaproxy/build/build.xml target=day-stamped-release
Sanity check the release
- Expand package into a new directory
- Check the UI starts with no errors: * ./zap -dir test
- Check the daemon starts with no errors: * ./zap -dir test -daemon
Publish the release
- Create a new release via https://github.com/zaproxy/zaproxy/releases
- Upload the file to the release
- Update https://github.com/zaproxy/zaproxy/wiki/Downloads
- Update ZapVersions-dev.xml
- Update ZapVersions-2.4.xml
Update the Docker image
In the zaproxy directory:
- docker login
- docker build --no-cache -t owasp/zap2docker-weekly -f build/docker/Dockerfile-weekly build/docker/
- docker push owasp/zap2docker-weekly
Generate the client APIs
- zaproxy/build/build.xml target=generate-apis
- Run zap-extensions/src/org.zaproxy.zap.extension.ApiGenerator
- Run zap-extensions-beta/src/org.zaproxy.zap.extension.ApiGenerator
- Run zap-extensions-alpha/src/org.zaproxy.zap.extension.ApiGenerator * Yes we should have build targets for these but I havnt had time to get them to work yet ;)
- If new files are added reference them from * zaproxy/src/org/zaproxy/clientapi/core/clientApi.java * zaproxy/nodejs/api/zapv2/index.js * zaproxy/php/api/zapv2/src/Zap/Zapv2.php * zaproxy/python/api/src/zapv2/init.py
- Check in any changes under * zaproxy/src/org/zaproxy/clientapi/ * zaproxy/nodejs/api/zapv2/ * zaproxy/php/api/zapv2/src/Zap/ * zaproxy/python/api/src/zapv2/
- TODO - packaging the APIs