summaryrefslogtreecommitdiff
path: root/release-Readme.md
diff options
context:
space:
mode:
Diffstat (limited to 'release-Readme.md')
-rw-r--r--release-Readme.md164
1 files changed, 0 insertions, 164 deletions
diff --git a/release-Readme.md b/release-Readme.md
deleted file mode 100644
index ef88df2e..00000000
--- a/release-Readme.md
+++ /dev/null
@@ -1,164 +0,0 @@
-==== RELEASE PREPARATION (versioning)
-(this creates a release tag which has versioning fields set appropriately, tags it, and pushes it to gitlab)
- -> switch to your pdf-over clone
- -> run mvn install to verify that it builds
- -> you can skip this step if you are feeling brave
- -> if using WSL, ensure that your line endings are correct
- -> git add --renormalize .
- -> to actually prep a release, run mvn release:prepare -Dresume=false
- -> this will prompt in the following order:
- -> current release version (x.y.z)
- -> current release tag (we typically use pdf-over-x.y.z)
- -> new snapshot version (new version with -SNAPSHOT suffix)
- -> it will then update version to release version, commit this & tag it with your release tag, update version to new snapshot version, and also commit this
- -> to build an installer, make sure you manually check out the release tag afterwards, before you proceed!
-
-==== INSTALLER CREATION (you can do this at any time if you want to test a finalized bundle, you don't need to do it on a release tag, it's independent from the previous section)
-DO THIS ON LINUX! there are some weird quirks on other platforms, cf. issue #62 (if you are on windows, setup WSL, it works perfectly fine there)
- -> ./publish.sh -Dks-pass={keystore password} -Dks-file={path to jks keystore file}
- -> if you only want specific binaries, use ./publish.sh --profiles {windows|linux|mac} {remaining cli arguments as above}
- -> this produces pdf-over-build/pdf-over_{windows|linux|mac}-{x86_64|aarch64}.{zip|jar|tar.gz} files
- -> each platform setup has to be post-processed specifically, see respective section(s) below
-
-==== LINUX-SPECIFIC RELEASE PROCESS
- nothing to do here, just rename pdf-over_linux-x86_64.jar to PDF-Over-{version}.jar and call it a day
-
-==== WINDOWS-SPECIFIC RELEASE PROCESS
-
-step 1: unpack zip archive
- -> unpack to a temp directory, e.g. C:/temp/pdfover-packaging
- -> check that it runs
- -> try if pdf-over.exe works
-
-step 2: create signed installer
- -> open PDF-Over.aip in Advanced Installer
- -> update Product Details
- -> Product version
- -> attempt to switch away from page
- -> when prompted, choose "Major Upgrade"
- -> make sure the project is still valid (these *should* be correct, but...)
- -> ensure that current files are included (Files and Folders)
- -> include exactly the contents of the release zip except PDF-Over.aip
- -> create shortcuts in "Start Menu -> Programs", "Desktop", and "Send To"
- -> ensure Digital Signature configuration is correct
- -> Use the A-SIT code signing cert from your cert store
- -> We currently use http://timestamp.digicert.com for timestamping
- -> SHA256 digest (or other appropriate choice)
- -> ensure that Launch Conditions excludes 32-bit systems
- -> ensure that the correct registry keys are setup (they already should be)
- -> HKEY_CLASSES_ROOT.pdf\OpenWithProgids, REG_SZ `PDF-Over.pdf` `(empty value)`
- -> HKEY_CLASSES_ROOT\Applications\PDF-Over.exe, REG_SZ `FriendlyAppName` `PDF-Over`
- -> HKEY_CLASSES_ROOT\Applications\PDF-Over.exe\DefaultIcon, REG_SZ `(empty key)` `"[reference to PDFOver.exe]",0`
- -> HKEY_CLASSES_ROOT\Applications\PDF-Over.exe\shell\open\command, REG_SZ `(empty key)` `"[reference to PDFOver.exe]" "%1"`
- -> HKEY_CLASSES_ROOT\Applications\PDF-Over.exe\SupportedTypes, REG_SZ `.pdf` `(empty value)`
- -> HKEY_CLASSES_ROOT\PDF-Over.pdf, REG_SZ `(empty key)` `PDF-Over`
- -> HKEY_CLASSES_ROOT\PDF-Over.pdf\DefaultIcon, REG_SZ `(empty key)` `"[reference to PDFOver.exe]",0`
- -> HKEY_CLASSES_ROOT\PDF-Over.pdf\shell\open\command `(empty key)` `"[reference to PDFOver.exe]" "%1"`
- -> Click "Build" in the toolbar, this produces pdf-over/installer/windows/PDF-Over-SetupFiles/PDF-Over.msi
- -> rename this to PDF-Over-{version}.msi; you are done
-
-==== MAC-SPECIFIC RELEASE PROCESS
-== (must be done on a Mac VM)
-
-step 0: make new working directory
- mkdir /tmp/pdfover-packaging
-
-step 1: unpack archive bundle
- unzip pdf-over_mac-x86_64.zip -d /tmp/pdfover-packaging
- -> unzip to /tmp/pdfover-packaging
- -> if you want to open this folder, use cmd+shift+g (the "go to" dialog)
- -> set necessary files to be executable
- -> cd /tmp/pdfover-packaging/
- -> chmod +x *.sh jre/bin/*
- -> check that it runs
- -> ./pdf-over_mac.sh
- -> (if you need to give permissions to java, navigate there in finder, then right click open to reveal the "OK" button)
-
-step 2: use platypus to create a bundle app
- -> open platypus
- -> set Script Path "/tmp/pdfover-packaging/pdf-over_mac.sh"
- -> set App Name "PDF-Over"
- -> set Interface "None"
- -> for debugging, it can be useful to set this to "Text Window", and enable "Remain running after execution"
- -> set Icon
- -> Select .icns File
- -> /tmp/pdfover-packaging/icons/icon.icns
- -> set Identifier "at.a-sit.PDF-Over"
- -> set Author "A-SIT"
- -> set Version to current version
- -> check "Accepts dropped items", click Settings, check "Accept dropped files"
- -> add "jre", "lib" and "icons" (from /tmp/pdfover-packaging) to "Bundled Files"
- -> click "Create App", this creates a new .app
- -> save it in a new subfolder, as /tmp/pdfover-packaging/platypus/PDF-Over.app
- -> check that it runs
- -> (double-click the app in Finder)
-
-step 3: sign the platypus bundle
- -> run ./signscript.sh platypus
- -> it needs a .app in a folder, that's why we made a subfolder :) no, don't ask me why, and feel free to invest time into fixing it
- -> this creates a signed app as /tmp/pdfover-packaging/pdf-over-{timestamp}/PDF-Over/PDF-Over.app
-
-step 4: prepare disk image
- -> open disk utility
- -> click file (at the top of your screen!), new image, blank image
- -> name "PDF-Over", image format "Sparse Bundle Disk Package", size 250MB
- -> save as /tmp/pdfover-packaging/pdf-over.sparsebundle
- -> this has automatically mounted the bundle as a disk (in finder sidebar)
- -> drag the following into this bundle:
- -> the signed PDF-Over bundle from step 3
- -> a shortcut to the Applications folder
- -> background.png
- -> move background.png to an invisible folder
- -> Terminal: cd /Volumes/PDF-Over && mkdir .background && mv background.png .background
- -> switch to the "PDF-Over" volume in Finder
- -> switch Finder to icon view (if it isn't yet - it's the button to the right of the current folder name)
- -> in Finder, click "View" (at the top), "Show View Options", enable "Always open in icon view" and "Browse in icon view"
- -> set Background to "Picture", click to select, cmd+shift+g into /Volumes/PDF-Over/.background, and select background.png
- -> adjust icon size & grid spacing until it looks centered
-
-step 5: bundle & notarize disk image
- -> unmount the "PDF-Over" volume if it is still mounted
- -> in Disk Utility, go to (at the top) Images, Convert
- -> select /tmp/pdfover-packaging/pdf-over.sparsebundle from step 4 as input
- -> set Image Format to "Compressed"
- -> save as /tmp/pdfover-packaging/PDF-Over-{version}.dmg
- -> mount it, verify that it looks good, then unmount it
- -> submit the bundle to app for notarization
- -> the first time, you will need to set your username & password
- -> run ./notarizeAppCommand.sh PDF-Over-{version}.dmg
- -> wait until notarization succeeds (usually <15min)
- -> you can check with ./notarizeCheckSingleCommand.sh {uuid}
- -> bundle the notarization ticket with the .dmg
- -> xcrun stapler staple PDF-Over-{version}.dmg
- -> you are done, this is the official mac release bundle!
-
-==== PUBLISHING INSTALLERS TO https://technology.a-sit.at/en/pdf-over/
- -> log in to https://technology.a-sit.at/wp-admin/
- -> LDAP login without @, if it doesn't work, talk to admins
- -> click on "Downloads" in the sidebar
- -> if you can't see it, you are missing permissions, talk to admins (again)
- -> for each of the three PDF-Over downloads, click the title to edit, then...
- -> scroll down, click "add download"
- -> set correct version
- -> click upload file
- -> upload the respective installer file
-
-==== PUBLISHING INSTALLERS TO JOINUP
- -> log into https://joinup.ec.europa.eu/
- -> go to the pdf-over project page
- -> "+", add release
- -> set Name to "PDF-Over"
- -> set Release number to {version}
- -> add Release notes (orient yourself on previous versions')
- -> leave rest unchanged
- -> save as draft
- -> use "+", add distribution to add setup files
- -> publish the release
- -> "..." in the far top right (inside the pdf-over banner)
- -> edit
- -> publish
-
-==== NOTIFYING CLIENTS OF THE UPDATE
- -> sftp into https://updates.a-sit.at/
- -> talk to admins about login (asitupdates@websites.iaik.tugraz.at)
- -> update /html/pdf-over/Release.txt to the new version number