Skip to content

Packaging, testing and known issues

Sara Gaudon edited this page Nov 12, 2019 · 1 revision

Packaging

KoNote builds are generated via grunt script, which basically compiles and minifies the src, downloads the appropriate build of nwjs, and generates an app file (mounted inside of a dmg archive) for mac, or exe for windows.

Note 1: The version of nwjs to use is defined in package.json -> build.nwVersion. The same version should be defined for konote and the konote data uninstaller (konote/build/uninstaller)

Note 2: If building for Windows from macOS/Linux, run the steps below in Wine to ensure the icons are correctly applied to the final executable. Additionally, macOS builds must be built from a mac (thanks Apple).

Note 3: The build process itself is optimized for mac (since that is our primary development environment); building from another OS will likely require some tweaks not documented here*

Steps:

1. Open the master / relevant release branch
2. Run npm install
3. Run grunt build
4. Select the appropriate builds to generate
5. A /dist directory is created containing the binaries

Additional steps for Windows builds:

1. Codesign KoNote.exe with DigiCert utility
2. Create installer: Run builds/innosetup script
3. Codesign installer with DigiCert

Mac builds:

Mac builds are signed automatically (requires Xcode and Apple Developer ID Application certificate). To sign manually: 1. Find appropriate security certificate: security-find-identity 2. Run codesign --force --deep --sign "$identity" KoNote.app 3. Verify signature: sudo spctl -a -v "KoNote.app" 4 (optional). Upload app to be notarized by Apple: https://help.apple.com/xcode/mac/current/#/dev88332a81e?sub=dev7468a021d

Reference:

https://github.com/nwjs/nw.js/wiki/how-to-package-and-distribute-your-apps#step-1-make-a-package

NWJS builds are available here:

• Recent versions: https://github.com/nwjs/nw.js
• Old versions: https://github.com/nwjs/nw.js/wiki/Downloads-of-old-versions

Testing

The following test plan should be run for each release. As features are added, please insert relevant user tests here

Notes:

Make two or more of everything as much as possible, and do the deeper testing with the 2nd item After creating data, close out and come back to see if it's still there Also test using data from the previous release

  • Setup konote admin
  • Create new user account
  • Reset user password
  • Create new client file and complete all fields
  • Confirm additional fields exist in infoTab and are functional
  • Add plan section
  • Add target
  • Add 2 metrics
  • Save Plan
  • Select target and confirm details on right pane
  • Delete a metric and save plan
  • Add pre-existing metric to a goal
  • Add progress note
  • Create a plan template
  • Create a section template
  • Apply a template to a client File
  • Enter Reorder mode and test functionality
  • Complete client targets/goals
  • Complete all fields for given progNote template
  • Save progress note
  • Add an attachment to a progress Note
  • Search for a progress note
  • Select an entry and confirm details on right pane
  • Add a quick note
  • Add an alert to a Client File & edit it, confirm quick note creation
  • Plot metrics on analysis tab
  • Print plan
  • Print progress note
  • Deactivate/Reactivate all data types via manager layers and test related search functions
  • Confirm program timeout
  • After timeout resume program

Known Issues

File Path Length Issue

Some Windows APIs impose a maximum filename length such that a filename, including the file path, can't exceed 260 characters. Konote's data directory may exceed this limit due to the way we encrypt directory names and because we use Node we do not depend on the Windows API for file IO (the filesystem itself is not subject to this limit). However in practice this means that there are a few situations to be mindful of:

  1. Browsing or manipulating (ex copying, deleting) KoNote's data directory may be problematic within Windows Explorer, including Windows Zip.
  2. Innosetup (the utility we currently use to generate our Windows installer) cannot create file paths over the limit. This means we cannot bundle a preloaded data directory with our installer.
  3. Any third party tools which rely on the Windows API and attempt to access the data directory (such as backup software) may encounter errors. We are not aware of any mainstream backup software that is currently affected by this. Note that the native Windows Backup system on Windows and Windows Server does support long file paths (hotfix is available for older windows versions here: https://support.microsoft.com/en-us/kb/982502)

Clone this wiki locally