2021-10-17

Luke N, Nathan H, James S, Josh P, Marcin P

Topics discussed:

  • Qt 6 update

  • sc3-plugins status

  • considering scheduled releases of SC

  • c++ complexity report (James S)

Qt discussion

Qt 6.2 includes webengine
Discussing on compatibility with qt 5 and when to update to qt 6
Discussion on universal builds
Updating to qt 6 guide: https://doc.qt.io/qt-6/portingguide.html
Adjacent topic: migration to m1 on macOS
Qt migration progress: https://github.com/supercollider/supercollider/issues/5169
~~(Marcin will update the issue to reflect current status)~~ EDIT: done
Apple M1 migration
~~Make an issue for this (Marcin)~~ EDIT: done

James S will look into tackling Qt 6 update
Marcin will help with CI

sc3-plugins

Marcin suggests splitting the repository and handing over maintenance, but keeping the sc3-plugins as an aggregate of the plugins for distribution/release purposes
Side discussion on libgit as an alternative to using system git - supposedly libgit is not well documented; our git interface could be better; OTOH having more primitives might not be good
Alternative package manager: Conan - but it needs python (Marcin will look into it)
MuseScore has some package manager (Marcin will look into it)

Scheduled releases

We are stretched pretty thin, so probably not a good idea right now
Side note for the release process: look into xcontary for signing (suggested by James S).

Complexity report

Python tool: lizard
report based on cyclomatic complexity
Useful for pinpointing problematic functions etc
Luke talks about lack of documentation of SC’s garbage collector - no tests etc
Discussing the need for tests
James S wants to use Catch2 for tests - others welcome that idea
Integration tests are also needed Luke refers to classic papers on real-time garbage collection:

  • “List processing in real time on a serial computer” https://dl.acm.org/doi/10.1145/359460.359470

  • “The treadmill: real-time garbage collection without motion sickness” https://dl.acm.org/doi/abs/10.1145/130854.130862

Nathan: maybe it’s possible/feasible to add sclang parser to lizard, to analyze complexity of the class library?
Luke suggests to attach minimizing technical dept to writing new code; but avoid scope creep -> create new PRs when refactoring code
There seem to be a consensus that we should revise our contribution/style guide to encourage refactoring of old code