Files
vimix/docs/notes.md
2025-12-24 08:52:41 +01:00

138 lines
3.3 KiB
Markdown

# 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
```bash
$ snap remove vimix
$ snapcraft pack (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
```bash
codesign --force --sign "Developer ID Application: <identityIdentifier>" <pathToDMG>
```
verify with:
```bash
codesign --verify --verbose=2 <pathToDMG>
```
2. SUBMIT TO NOTARIZATION
```bash
xcrun notarytool submit <pathToDMG> --keychain-profile "vimix" --wait
```
verify with:
```bash
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
```bash
xcrun stapler staple <pathToDMG>
```
4. VERIFY NOTARIZATION
```bash
spctl -a -vv -t install <pathToDMG>
```
NB: more info at <https://wiki.lazarus.freepascal.org/Notarization_for_macOS_10.14.5%2B>
## flatpack Development
The flatpak manifest for flathub is at <https://github.com/flathub/io.github.brunoherbelin.Vimix>
To build the vimix flatpak with code from local folder (debugging), change the following:
```json
{
"name": "vimix",
"buildsystem": "cmake",
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release"
],
"sources": [
{
"type":"dir",
"path": "[your_development_dir]/vimix",
}
]
}
```
## Testing performance
Linux perf command
- Allow perf on your system
```bash
sudo sysctl -w kernel.perf_event_paranoid=-1
```
- Launch command to record
```bash
perf record ./vimix
perf record --pid=XXXXX
```
e.g.;
```bash
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia perf record --call-graph dwarf ./build/src/vimix
```
- Analyse using <https://github.com/KDAB/hotspot>
## Memcheck
To generate memory usage plots in [massif format](https://valgrind.org/docs/manual/ms-manual.html):
```bash
G_SLICE=always-malloc valgrind --tool=massif ./vimix
```
To check for memory leaks:
```bash
G_SLICE=always-malloc valgrind --leak-check=full --log-file=vimix_mem.txt ./vimix
```