How to build a release for LemonLDAP::NG ======================================== The version ----------- - The release version should be updated in the following location: * changelog: change version in scripts/generate-changelog.pl and run it * Main modules (Common.pm/Handler.pm/Portal.pm/Manager.pm) * Makefile.PL for cross-dependencies * codemeta.json - Then update packages information with: $ make clean && make cpan - Version must also be updated in RPM and Debian build files - rpm/lemonldap-ng.spec: update versions and add changelog entry - debian/changelog: add changelog entry Before release -------------- - Run unit tests $ make test $ make LLNGTESTLDAP=1 LLNGTESTLDAP_SLAPD_BIN=/usr/local/openldap/libexec/slapd LLNGTESTLDAP_SLAPADD_BIN=/usr/local/openldap/sbin/slapadd LLNGTESTLDAP_SCHEMA_DIR=/usr/local/openldap/etc/openldap/schema/ test - Update languages (needs a Transifex token) $ ./scripts/download_translations - Update documentation: $ ./scripts/parameters-for-doc.pl > doc/sources/admin/parameterlist.rst - Update changelog: $ ./scripts/generate-changelog.pl This update "changelog" file using GitLab issues (tags Bug, New feature, Improvement) - Update debian/changelog launch just `dch -r` and force save (":w" and ot ":x") - Check Debian packages quality $ cme check dpkg - Update doc/admin/documentation.rst to display vulnerable packaged versions - Close the milestone on Gitlab and create a new one For minor release ----------------- - Go on gitlab and create a new tag: https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/tags/new For major release ----------------- - Go on gitlab and create a new branch: https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/branches/new - Go on gitlab and create a new tag: https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/tags/new Make the distribution --------------------- - CPAN packages: $ make clean && make cpan - Tarball: $ make clean && make dist - RedHat packaging: See rpm/README - Debian packaging: Create the debian specific tarball: $ make clean && make debian-dist Untar the debian archive and launch: $ make debian-packages Packages are in /tmp Sign packages: $ dpkg-sig -p --sign builder /tmp/*.deb Upload the distribution --------------------- - CPAN: Upload modules tarballs (generated by make cpan) - OW2 Release: Upload dist and bundles on sftp://release-up.ow2.org/projects/lemonldap - RPM: see rpm/README - DEB: The DEB repository is hosted on https://lemonldap-ng.org/deb Copy all generated files (*.deb): $ scp *.deb lemonldap-ng@lemonldap-ng.org:incoming/ On the server, add packages is the appropriate repository, for example: $ aptly repo add 2.0 incoming/* $ aptly repo add stable incoming/* Publish repositories: $ aptly publish update -gpg-key="57144D2148DD706967DBFF7C548B17BF81F18E7A" 2.0 $ aptly publish update -gpg-key="57144D2148DD706967DBFF7C548B17BF81F18E7A" stable Remove files from incoming directory: $ rm incoming/* - Docker: Build a new image from https://github.com/LemonLDAPNG/lemonldap-ng-docker Tag image to latest Upload on Docker hub Site ---- - Update version in the download page (see website-landing-page repository) Spread the word --------------- - News on OW2 projects page: https://projects.ow2.org/bin/view/lemonldap-ng/ - Twitter account / Facebook page - IRC channel subject and OW2 Rocket.Chat channel - Mailing lists: lemonldap-ng-users / lemonldap-ng-announces - Optional: blogs and news sites (LinuxFR, etc.) After release ------------- - Update debian/changelog $ dch -v -1 (and write "New release") - Update $VERSION anywhere