-
-
Notifications
You must be signed in to change notification settings - Fork 383
Version Update Signatures
Stephen Woodbridge edited this page Jul 27, 2015
·
6 revisions
We have a system to automatically track PostgreSQL FUNCTION and TYPE signatures so that pgRouting can automatically generate the files needed for ALTER EXTENSION pgrouting UPDATE to '<version>'. This system is mostly integrated into cmake and works like this.
- we store signature files for old releases in
tools/sigs/pgrouting--<version>.sigand these are used along with the current version to generate the update scripts. - when cmake is run it will create
build/lib/pgrouting--<version>.sigfor the current version using a perl scripttools/mk-signature-file - cmake will also run
tools/build-extension-update-filesthat will read all the files intools/sigs/pgrouting--<versions>.sigand compare them to the current version and generate update script namedbuild/lib/pgrouting--<old_version>--<current_version>.sqland these files will get installed appropriately withsudo make install. - when we do an official release, we need to also make sure the the final
build/lib/pgrouting--<version>.sigalso gets copied and committed intotools/sigs/pgrouting--<version>.sigso it will be available when we make the next release so we can generate update scripts for that.
As a Developer, you do not need to do anything special when you are developing code. The system is automated and runs every time you cmake.
If you are the Release Manager then you need to perform step 4. above as part of the release process. When you make the final release, the build/lib/pgrouting--<versions>.sig need to be copied and commited into the tools/sigs/ so it is available for future releases. I added this to the Release Plan Checklist.
- the current perl scripts mentioned above do not handle a TYPE definition change with the same TYPE name other than to throw an error. We do not check if the column name changes on for column types and this might be an issue.