You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							154 lines
						
					
					
						
							4.0 KiB
						
					
					
				
			
		
		
	
	
							154 lines
						
					
					
						
							4.0 KiB
						
					
					
				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
 | 
						|
 | 
						|
- Build confTree, JS & doc
 | 
						|
  $ make json
 | 
						|
  $ make minify
 | 
						|
  $ make documentation
 | 
						|
 | 
						|
- Update OpenAPI spec
 | 
						|
  $ make SWAGGER_CODEGEN=/opt/swagger-codegen-cli-3.0.51.jar api_doc
 | 
						|
 | 
						|
- Update languages (needs a Transifex token)
 | 
						|
  $ ./scripts/download_translations
 | 
						|
 | 
						|
- Update documentation:
 | 
						|
  $ ./scripts/parameters-for-doc.pl > doc/sources/admin/parameterlist.rst
 | 
						|
 | 
						|
- Close all issues of the milestone and restore visibility on issues which were hidden for security reasons
 | 
						|
 | 
						|
- 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/sources/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
 | 
						|
 | 
						|
Create tarball signature:
 | 
						|
$ gpg -b --default-key=security@lemonldap-ng.org lemonldap-ng-*.tar.gz
 | 
						|
 | 
						|
- 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, GPG signature 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)
 | 
						|
- Update "latest" version of the online documentation (admin guide and manager-api)
 | 
						|
 | 
						|
Spread the word
 | 
						|
---------------
 | 
						|
 | 
						|
- News on OW2 projects page: https://projects.ow2.org/bin/view/lemonldap-ng/
 | 
						|
- Mastodon / Twitter / Facebook
 | 
						|
- 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 <New number>-1 (and write "New release")
 | 
						|
- Update $VERSION anywhere
 | 
						|
 | 
						|
 |