Various Notes and reminders
===========================
Copyright 2024 Bruno Herbelin



Publishing new a release
------------------------

- Update share/metainfo/io.github.brunoherbelin.Vimix.metainfo.xml
  Add a <release>, with date and version number
- Update snap/snapcraft.yaml
  Change version string
- commit to Beta
  
- Test the flatpack for Beta
  https://github.com/brunoherbelin/vimix/tree/master/flatpak
- Test the snap for Beta
  $ snap remove vimix
  $ snapcraft (from vimix base dir)
  $ snap install ./vimix_0.X.Y_amd64.snap --devmode
  $ snap connections vimix

- Merge Beta into origin/master
- push origin/master
- Create Release & Tag in https://github.com/brunoherbelin/vimix
  Document new features and major bugfixes

- Edit the Json on https://github.com/flathub/io.github.brunoherbelin.Vimix
  Set vimix git Tag and Commit #
  Merge pull-request after successful flathubbot compilation
  (delete branch)
- Follow-up status of flathub package build on https://buildbot.flathub.org
  (link is sent by email)



Mac OSX specificities
------------------------

- Settings are saved in /Users/[username]/Library/Application Support/vimix
  Instructions to reset in finder, do "Go to folder" (shift+command+G),
  enter "/Users/[username]/Library/Application Support/vimix" and delete the folder 'vimix'

-  POST INSTALL DMG SIGNING AND NOTARIZATION

1. SIGN DMG

    codesign --force --sign "Developer ID Application: <identityIdentifier>" <pathToDMG>

verify with:

    codesign --verify --verbose=2 <pathToDMG>

2. SUBMIT TO NOTARIZATION

    xcrun notarytool submit <pathToDMG> --keychain-profile "vimix" --wait

verify with:

    xcrun notarytool log xxxx-xxxx-xxx  --keychain-profile "vimix"

NB: "vimix" is the name of the app-specific password in keychain generated online: https://support.apple.com/en-us/102654

3. STAPLE THE TICKET TO THE DISK IMAGE

    xcrun stapler staple <pathToDMG>

4. VERIFY NOTARIZATION

    spctl -a -vv -t install <pathToDMG>

NB: more info at https://wiki.lazarus.freepascal.org/Notarization_for_macOS_10.14.5%2B


Testing performance
-------------------

Linux perf command
- Allow perf on your system
sudo sysctl -w kernel.perf_event_paranoid=-1
- Launch command to record
perf record ./vimix
perf record --pid=XXXXX
- Analyse using https://github.com/KDAB/hotspot



Memcheck
--------

To generate memory usage plots in [massif format](https://valgrind.org/docs/manual/ms-manual.html):

    G_SLICE=always-malloc valgrind --tool=massif ./vimix

To check for memory leaks:

    G_SLICE=always-malloc valgrind --leak-check=full --log-file=vimix_mem.txt ./vimix

