From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

Maintaining and releasing the FOLIO Z39.50 server

Perl conventions

Since this Z39.50 server is written as a Perl module, it adheres to Perl release conventions rather those of Node modules (used for front-end modules) or Java artifacts (as typically used for back-end modules). Note the following consequent differences from how most other FOLIO packages are managed:

(In the Perl world, version numbers were traditionally two-part (major.minor, for example 1.3), sorted numerically such that 1.10 was less than 1.9. But it is also possible to use three-part version numbers (major.minor.patch, for example 1.3.0) as in much of FOLIO and in semantic versioning. This is what we do in the FOLIO Z3.50 server module.)

Release procedure

The procedure therefore consists of the following steps:

	perl Makefile.PL
	make
	make test
	make distclean

(Why do we git tag the release, and even push the tag to GitHub, before knowing whether the release has been successfully accepted into CPAN? Because once you upload a given version of the module to CPAN, that version is nailed down forever and you can't replace it with a second attempt at the same version. So that version is part of history, and it's honest to tag it as such even if it was not able to make it out into the world.)