developing

This page lists recommendations for getting the code, developing and debugging dwv.

Version control system

Not much choice on this one, Git is, these days, the de-facto version control system. Git comes with most Linux distributions. For Windows see: git-scm.com/downloads. To remember the commands, I like this cheatsheet

Github provides some help on [[working-with-key-passphrases|http://help.github.com/working-with-key-passphrases/]]. Github uses the Open-ssh2 format. These keys can be generated using the ssh-keygen command. On windows, if you have installed Git, you should have a Git-bash from which you can run the command. The full command is: ssh-keygen -t rsa -C "tekkub@gmail.com". You can then paste the public part in your Github account settings. The EGit extension of Eclipse also allows you to create a key.

If you are using Tortoise-git, you need to convert your Open-ssh2 key to the putty key format. You can do this using the PuttyGen software by opening your Open-ssh2 key and then saving it. Then load the putty key in the Pageant application and you are ready to pull code with tortoise!

Implementation

A text editor can be enough to play with javascript, I use VSCodium with the the vscode-eslint extension.

Debugging

Browsers do provide very extensive debugging tools:

  • Chrome: {Settings Icon} > Tools > Developer tools (or F12)
  • Firefox: {Firefox} > Web Developer > Inspector (or F12)

Chrome allows to simulate touch events: in the Developer tools window, popup the Drawer from its button (top right) or press Esc and tick Emulate touch screen from its Emulation tab. Beware that this changes the way Chrome fires events, for example it stops sending mousemove events...

For the application behaviour, check these tools:

Release tasks

  1. Fix all current issues
  2. Check that help information is in sync
  3. Check the build status
  4. Check DICOM conformance by loading the test data
  5. Check integrations by launching dwv in some PACS
  6. Check module integration
  7. Create release:
    1. run the resources/scripts/prep-release script with the release and previous version
    2. review changes
    3. run the resources/scripts/finish-release script with the release and next version
  8. Create release from github releases (creates the tag)
  9. Create the doc for the release yarn run doc and push it on the gh-pages branch
  10. Publish npm package: npm publish in the main directory on the master branch
  11. Check the examples: on class doc or examples
  12. Create snapshots
  13. Update dependent plugins: wordpress dicom-support, dwv-orthanc-plugin, dwv-dcm4chee-web