Development Meetings: Minutes

Hey all, in the interest of more transparency and dialogue between devs and users I’m starting this thread to post minutes from sc-dev meetings. They currently happen every two weeks. Feel free to reply here or start a new thread if there is a topic that interests you.

Note that minutes for all our meetings are kept on github at Home · supercollider/supercollider Wiki · GitHub

1 Like

2020-04-12

People present: Nathan H, Brian H, Patrick D, Geoffrey M, James S, Gianluca E, Josh P

Welcoming Gianluca!

What people are up to

  • Geoffrey: looking at autoindent in IDE, waiting for review on #4797
  • James: reviews, working on implementing spelling correction suggestions in sclang parser
  • Nathan: working on other projects
  • Patrick: refactoring TestBuffer to break out server-requiring tests
  • Josh: managing releases
  • Brian: reviewing, beginning to implement RFC #1

3.11.1

  • discussed Brian’s cherry-pick PR
  • need to merge in scel update for support on ubuntu
  • decided to postpone outstanding issues (#4544, #4826)
  • decided to release ASAP

sc3-plugins

  • discussed merging Scott C’s PR and doing a release
  • Josh P said he thinks we should merge it and include in 3.11, general agreement

Other PRs and issues

  • Patrick asked about best practice quitting servers in unit testing
1 Like

2020-05-10

People present: Brian H, Marcin P, Luke N, James S, Nathan H, Patrick D, Gianluca E, Tejaswi P

Luke N talked a bit about Scintillator (https://github.com/ScintillatorSynth/Scintillator)

Brian gave a short overview of what things have been merged in recently

Gianluca discussed his help browser PR (#4883) and associated RFC (#9)

Discussed issues around SuperCollider versioning and standalones

Some points of discussion:

  • ease of learning - interactive learning environment
  • interoperability with other technologies (web, etc, LSP?)
  • standalones - for performers
  • multiple versions of supercollider
    • dev work
    • possible, but very difficult currently
    • backward compatibility
    • run ‘from a USB stick’
  • app bundle design
  • server/IDE/language search paths
1 Like

2020-05-24

Members present: Brian H, Marcin P, Luke N, James S, Patrick D, Gianluca E, Tejaswi P, Josh P, Geoffrey M, Julian R

Release status

  • Josh P has had some reports of unsigned sc3-plugins not working with 3.11 on macOS 10.15
    • hasn’t been able to reproduce. thinks that everything is in order, but not sure.
    • Marcin offered to test

Release process scripting

  • Brian brought up the idea of automating / scripting the release process
    • James S, Josh P, Brian H, Marcin P decided to form a working group for this

vcpkg - https://github.com/supercollider/supercollider/issues/4928

  • James S has used it before and offered some advice
    • one issue is that packages need to be built from source, not a good way to provide Qt
    • generally positive impression
  • Marcin P tried it, ran into an issue with powershell
    • for portaudio, issue with asio sdk
  • James S mentioned asio sdk is in vcpkg, and seems like it provides CMake integration
  • Brian noted ExternalProject in CMake is also an option for managing external dependencies
  • Luke N and Marcin P said vcpkg support for CI first might be a good way to test it out, and then recommend it if it works
    • James S said he would look into that

portaudio vendoring - https://github.com/supercollider/supercollider/issues/4928

  • Marcin P did work to shift over to fresh, non-sc-org portaudio
  • Brian suggested using ExternalProject in CMake to get around
  • Discussed tradeoffs of vcpkg vs ExternalProject
  • Decided to do more research and revisit

issue management - https://github.com/supercollider/supercollider/issues/4940

  • Josh P wants to reset everything and start from scratch
  • Luke N also likes this idea, but said we need to have a policy to avoid it happening again
  • Josh P said most projects don’t actually run as long as SC. issue trackers work good for shorter term projects, but maybe not for this duration
    • fresh start could give some focus
  • James S explained his ideas regarding stale issues and automation
  • Julian R said a bot would add a kind of neutrality/fairness to it, but is concerned that closing issues will hide valuable information
  • James S suggested updating issue template or other obvious place to note that you may want to search closed issues
  • Everyone agreed messaging around closing issues is important
  • Discussed a gradual approach to transitioning between current process and more controlled approach
  • There was a proposition to have a two-step approach where a bot would comment every issue that’s been stalled for more than X months, which would explain the triage process. Then, after some other time to be determined, the issue would be closed
  • Someone proposed to start with proposition some texts for these messages.

Other topics and PRs:

2 Likes

Thanks for posting!!

Hey all,

Thanks to everyone who attended the sc-dev meeting! Minutes of the meeting are below. You can find archived minutes from all our meetings on our GitHub wiki page: https://github.com/supercollider/supercollider/wiki/Dev-Team-Meeting-Minutes

The next meeting is planned for the weekend of July 25-26. Note: we are going to try meeting on meet.jit.si next time. Details are yet to be decided, but we will use Skype as a fallback in case it doesn’t work for some reason. A meeting time poll will be sent out early in the week. If you’d like to attend but our usual meeting times aren’t good for you, respond to this thread or email me privately and we’ll try to work something out! We are always interested in getting new people involved in the development community.


2020-07-12

Members present: Patrick D, Brian H, james S, Marcin P, Gianluca E, Luis Lloret, Clifford (Cliff) Dunn, Tejaswi P

Intros for new joiners (Cliff, Luis)

Luis discussed his Pulsaudio RFC:

  • adding PulseAudio as a build time option
  • Jack will stay as the default
  • new option for systems where getting Jack may be difficult
  • PR is open against SC
  • goal to help less technically savvy users, incl. with platforms like SonicPi that use SC internally

Discussed use of RtAudio library in PR
Discussed possibility of using RtAudio for other backends
Discussed possibility of using another library besides RtAudio
Discussed device selection

Brian gave an update on the 3.11.1 release:

  • Ready to go, currently waiting on Josh

Brian suggested using Jitsi (meet.jit.si) for future calls

  • Most people agreed it would be desirable
  • James said we should check to make sure it’s not blocked anywhere contributors may live
  • Agreed to try the next meeting on meet.jit.si, further details TBD

Discussed what (if anything) currently keeps people from contributing:

  • several people said they have a hard time keeping track of what’s going on in active development
  • several people indicated they would like more shared priorities as a project, or to be assigned issues/PRs
  • navigating the Wiki to access new contributor info is hard
  • PRs are hard to review because they don’t stay contained/branch into other topics

Patrick brought up some PRs:

James brought up PR 5015, asked if it might solve the same issue as his PR 4646 and therefore could try reverting 4646.

  • Brian said it might, give it a try

Gianluca brought up a thread on scsynth.org about audio clipping on macOS, agreed we should try to tackle this for 3.12.

Marcin asked for attention on https://github.com/supercollider/supercollider/pull/4852.

1 Like

2020-08-02

Members present:
Brian H, Cliff D, Patrick D, James S, Josh P, Clare M, Marcin P, Luke N

Discussed 3.11.1 release

  • Discussed PR #5113, agreed that we can move forward with release now
  • Brian said they would move forward with the release process after the meeting
  • Luke wrote a script to notarize and codesign macOS binary on Travis
  • Discussed design of script and how we could adapt it (especially regard build time limit on Travis)
  • Discussed whether SuperCollider as an org could purchase an org certificate from Apple, probably has legal issues

Discussed issue of many GitHub accounts having admin access to the organization (some without 2FA)

Discussed whether to change master->main before or after the release

  • Agreed to do it after release since release is high priority and we don’t want any issues potentially arising from changing default branches during the release process
  • Discussed GitHub and git changing their behavior around this as well

sc3-plugins and codesigning:

  • Josh said we weren’t able to get a release out for 3.11 because of sign/unsigned binaries
  • Possibility of creating a single binary plugin that someone could use to load all of the plugins once
  • Josh hasn’t had a successful way to download & load plugins in the signed binary
  • Brian and Josh said they would work together to try to debug this this week

Clare and Brian discussed release automation & pair programming within the next few weeks

Patrick brought up a Ctk quark pull request

Discussed Quarks best practices and creating a “best practices” document, and/or an example repo

Discussed GUI/headless builds and conditional compilation

Discussed JetBrains product licenses expiring

Discussed macOS 11 (Big Sur) and SC compatibility

Discussed post-release ideas:

  • Making shared project priorities more visible for new & current contributors
  • Patrick wants to discuss after the 3.11.1 release when/how we should do the next release
  • When to do 3.12? - supernova on Windows is probably ‘the big feature’
  • Doing more regular/cadenced releases?
1 Like

2020-09-20

Members present: James S, Joshua Parmenter, patrick, brian, Marcin, elgiano

macOS11 problems (Joshua Parmenter):

  1. example:
SynthDef(\test, { Out.ar(0, SinOsc.ar(440, 0, 0.2)); }).add // works 
s.sendBundle(nil, [\s_new, \test, 1000, 0, 1] ) // doesn't ever schedule 
s.sendBundle(0, [\s_new, \test, 1001, 0, 1] )

most probably a problem with endiannes with ntohl.JP is working on it

  1. Qt problems. Waiting for next Qt release for macOS (Qt currently needs to be built from source to target macOS 11).

  2. Binary download don’t work on macOS 11. Compiling from source works. Need to announce this. JP is announcing on sc-users.

  3. We need both x86 + arm releases (two separate builds) when we start to support macOS 11.

macOS CI error (Marcin)

  • errors during testing. Seems related to no graphics env available → web engine failing.
  • CI is blocked for macOS until this is fixed. Marcin is on it.
  • Possible temporary workaround: disable tests.

3.11.2 / 3.12.0

  • discussed in Issue #5146:
  • Planning 3.11.2 for October.
    3.12 right after:
  • macOS 11 support if possible by then, but not if it would delay the release.
  • macOS server-side volume clipping ?

Would there be a possibility than upgrading Qt could drop an older system we currently support?

  • If it happens we could include a pre-processor switch in a patch release. (add a new build job to do that)

Talking and reading about the future of Qt.

James S: Qt 6 is not advertising breaking changes, but won’t work without C++17.

  • Setup a Qt 6 working group, or issue, to keep track of it.
  • Require C++17 (open ticket for C++17 in sc as well)
  • Setup a C++17 working group, or issue.

Does C++17 allow new features for sclang?

  • Not out of the box
  • drop a lot of boost support?
  • lock/mutexes in supernova

Maybe a C++17 ticket on github is enough? Let’s start with that.

Websockets (patrick)

(see RFC #9 for previous discussion points)

with or without Qt?

  • without Qt would be better for headless builds
  • better to avoid another dependency

Qt’s websockets are split from webengine and GUIs. So Qt could be viable for headless.

Commit notation (James S)

Conventional commits: standardized way of writing commit messages

  • machine and human readable

  • based on semantic versioning

  • tooling to automatic generate a changelog

  • might be asking too much to a community project

  • but it could be done by maintainers when PRs are merged

  • even if not 100% strict, would alleviate changelog-writing pain

IT IS PATRICK’S BIRTHDAY TODAY

1 Like

Here are meeting minutes for October 4 and October 18 (I neglected to post the ones from last time but they are here and on GitHub now.)

2020-10-18

Present: Patrick D, Brian H, Marcin P, Gianluca E

  • What are people up to lately?
    • Brian: helping Marcin with jack2/jackOSX
    • Gianluca: Bela bug fix
    • Marcin: investigating Jack backend on macOS
    • Patrick: not much SC work lately
  • Discussed new jack2 release for macOS (replacing JackOSX)
  • 3.11.2 release
    • overall on track
    • need to fix portaudio/cmake issue (#5176)
    • need to make cherry pick PRs
    • discussed #5188 - does not need to be fixed for 3.11.2
    • discussed #4883 - Brian will review soon
    • still planning for release date in October or November
    • discussed #5110 - agreed better for 3.12
  • 3.12.0 release
    • planning to release before the end of the year
    • already have enough to do a release
    • #5081 is a nice-to-have
    • maybe Bela support if it starts moving forward soon
  • pair/group code review sessions
    • informal group call to review PRs together
    • did first one last week with Brian, Gianluca, James S
    • should have someone else besides Brian “driving” next time (next weekend probably)
    • send out an announce/invite to more channels if the next one goes well
  • big list/board/prioritization
    • want to have some way to organize top-level issues/projects/concerns
    • where to put it?
      • Discourse vs Github projects vs Github wikis vs other places?
    • milestones? make it easier to see what goes into what release
    • hard to use tools GitHub gives us to manage project easily
    • look into bots for automation? / external integration
    • maybe even a new GitHub repo for “meta-issues” / organization?
    • agreed to dump into a wiki page for now and see how that works out
  • Bela
    • discussed merge of Bela into SC and the difficulties involved – everyone wants it, just takes some time
    • Gianluca and Patrick offered to help with the merge & testing
    • CI job is probably possible since it can be cross-compiled
  • help browser
    • Marcin suggested it might be possible to avoid using QtWebEngine for the help browser by using a text view instead
    • discussed some possible implementation issues

2020-10-04

Present: Marcin, Brian, James S, Gianluca

  • General greenfield question: what might a version 4 look like?
    • We release breaking changes every minor release - it doesn’t follow semantic verisoning, should we already be on version 4 etc.?
    • When we’re next able to discuss big things, this would be on the list.
  • Backwards compat and deprecations
    • A very positive feature
    • However, potentially leads to stagnation and unclear/confusing features
    • Concerns about removing deprecations: in particular asInt.
  • Xcode 11 build issues
    • Marcin + Brian tried to diagnose a segfault with a non-legacy xcode11 build, still investigating
  • 3.11.2
    • Lots of CI work to figure out first, including the Xcode 11 things
  • Discussion on reviewing existing PRs

    However people are able to contribute to the project, in whatever capacity they are able to, is massively appreciated.
    We’re all very grateful for any work people are doing towards the project, particularly during these times.
  • Can we do pair-programming and/or group programming sessions? Paired reviews? With the goal of tackling larger/more complex things and sharing workload as well as knowledge and experiences about various sections/aspects of the project.
  • Discussion around signing and notarisation
    • Questions about how CMake handles signing

Actions

  • Marcin and Brian will continue to work together on the Xcode 11 issues
  • Try to plan paired/group reviews for next week

2020-11-01

Present: Gianluca E, Brian H, Marcin P, Hanns H

3.11.2 release

  • on schedule for release
  • one small build system issue and one crash reported on macOS 10.12 (#5229), found fixes for both
  • will do a release if that one issue is fixed

3.12 release

  • decided we want to include #5110 (clip hardware output on macOS)
  • may move to C++17 for this release to prepare for porting to Qt 6

Webassembly

  • Hanns discussed recent talk about porting SC, at least scsynth, to the webassembly toolchain
  • Discussed possible porting issues – threading, exceptions, etc.
  • At this point, doesn’t look like anyone else can help out, but we also aren’t in a rush to implement this

Discussed using labels and milestones to help organize issues

  • Brian proposed using a couple labels for priority level to organize open issues
  • Discussed how to agree on priority levels and how to go about adopting labeling as a team
    • Would want multiple people to label, and discuss to agree on how to assign priority beforehand

Discussed informal group code review sessions

  • Brian H, James S, Gianluca E, Marcin P have met twice to review PRs as a group, to get experience reviewing and learn from each other
  • Want to ask more people to join - will announce more widely for the next time

(Sorry for the delay in posting these, like many people in the US I was glued to the election news this week!)

2020-11-15

Present: Gianluca E, Marcin P, Brian H

3.11.2 release

  • in progress, will finish up today or tomorrow
  • need to finish making sc3-plugins release too

Gianluca reported that the Bela fork maintainers are getting close to making a PR to SC. Discussed how to handle new flags in scsynth.

3.12 release

  • discussed #5110 macOS clipping feature; possible API/ABI change; desired for 3.12
  • after 3.11.2, Brian wants to do more to improve the release process
  • discussed ideas for prioritizing issues and PRs that don’t have an associated issue

it will certainly allow to have the helper activated on arm…
how great idea !!

2020-12-12

Members present: Brian, Marcin, Gianluca, Tejaswi

3.12

  • making good progress toward release
  • Brian planning to work on moving C++11 to 17
  • Gianluca planning to work on Bela support
  • Marcin moved us to GitHub Actions
  • Gianluca working on macOS clipping in supernova - Brian will create ticket

Marcin gave a status update on GHA (GitHub Actions)

  • building works
  • not yet running test suite
  • not yet pushing to S3

discussed dropping boost sync

  • Brian thinks this might be better long term since sync seems to be causing trouble during the last few releases
  • decided to open ticket to discuss further

discussed https://github.com/supercollider/supercollider/issues/5282

  • discussed compatibility and quarks

decided to postpone 3.12 release indefinitely since Josh and Brian don’t have much time for SC in the next while

1 Like

Minutes from 3-14-2021
Thanks to all who attended! Notes below

Marcin, Iannis, Patrick, Josh

Marcin recent work:

  • cmake and verifyApp

  • verify app turned of for Qt 5.9 for legacy build

3.12:

  • ImageLoader::link in server start failure - what is this doing??? - Josh and Brian to check on this for the scsynth failure to start on older MacOS

Josh to look at MIDI PR - Topic/midi out use logical time by sirlensalot · Pull Request #4725 · supercollider/supercollider · GitHub

Iannis - looked at sclang - simpler Condition -

what methods are essential and what do they do?

Brian? Can there be a time to sync with Iannis?

Something similar to DispatchGroup in Swift for Condition?

Patrick -

Rust: Sorcerer crate

Deferred on scsynth may be good for Condition refactoring

Does it pertain to: Fix condition eval in UnitTest.wait by patrickdupuis · Pull Request #5363 · supercollider/supercollider · GitHub ?

Discussion of how UnitTest::wait should work, and reverting / avoiding changes for Condition / UnitTest, etc., after 3.12

Patrick and Marcin discuss reopening Fix condition eval in UnitTest.wait by patrickdupuis · Pull Request #5363 · supercollider/supercollider · GitHub

Patrick explains the change introduced in class library: fix UnitTest.wait for small wait times · supercollider/supercollider@2aa3374 · GitHub that broke tests; Patrick’s PR reverts this back to using a function as the “condition” argument for UnitTest -wait

There’s an ongoing work on making UnitTest use a Condition instead, but this will likely result in larger rewrite: Simplify UnitTest.wait and update test suite accordingly by jamshark70 · Pull Request #5368 · supercollider/supercollider · GitHub

Marcin supports reopening 5363 to get the current functionality back (and tests passing) in the interim

Current plan: discuss this further at the next meeting, particularly getting input from Brian

Marcin talks about proposed SC_VERSION improvements. Will create an RFC.

Ianni asks about an issue with Quarks installation and permission issues writing to the yaml file (Arch Linux) - will post question to the forum.

2 Likes

The minutes from May 2, 2021 can be found on GitHub Wiki at Dev Team Meeting Minutes · supercollider/supercollider Wiki · GitHub

Please let me know if there’s any need to copy and paste them here as well.

Dev meeting notes

JamesS, NathanH, MarcinP, JoshP, PatrickD

James talks about possibly moving to a single branch linear workflow

Less bugix releases, more minor releases

Semi-linear workflow vs 2 branches

With linear workflow and getting rid of main branch we’d just tag releases; but we need to check with community particularly linux packagers

Josh: proposing more frequent minor releases, regardless of whether/which option we go for

We should ask for opinions on the changes

scsynth/email list/ slack - ask for feedback: James and Josh will look into it

Discussion on milestone PRs

Patrick will look into UnitTest

Josh will look into midi out PR

Marcin and Josh will meet to work on supernova clipping values

James will look into ableist language issue (see https://alexjs.com/)

Proposed short release meeting next Sunday (May 23) (edited)

JamesS, Olga, Daniel, Marcin, Josh, Iannis

Introductions We discuss 3.12 release - RC week of June 14

**Remaining PRs: ** Inclusive language #5470 Discussion on #5470 Choosing alternative “new” method name to re-route non-deprecated but classes that we suggest you avoid.

Possibly: supernova bind interface #5474 Discussion on #5474 Looks good, Josh will check

Iannis starts discussion on modularizing sc code

James mentions his work on CMake

Iannis inquires on possibility of interfacing SC / running SC on GPU in the context of AI https://www.rncm.ac.uk/research/research-centres-rncm/prism/prism-events/future-music-3-16-17-june-2021/unsupervised/

Olga shares ideas about shared memory interface improvements

Josh, John Andrews (new) Marcin, Nathan

  • libsndfile will build for older builds, (legacy)
  • make a new RC
  • need to fix CI
  • automate signing? This sucks …
  • John’s sc-el PR -
    • Mac OS - no pre-package sc-el library (unlike Linux)
    • doesn’t work for any other platform unless you modify the source code - not ideal
    • cmake translates install path as a constant defined in one of the files
    • cmake generated variables - make files expect SC as a dependency
    • PR tries to make this more configurable
    • update the PR to make these changes optional with a flag - the old install path will have a kind of ‘manual deprecation’
1 Like

Sc-dev 1-30

Marcin, James S, Luke N, Nathan Hall

Qt 6At 6 - Quartz Composer goes away

3.13 to deprecate Quartz Composer
Pull in a number of PRs

5650 - ad hoc code signing PR seems to fix a number of M1 problems
5680 - JACK changes? Does this work?
4368 - Windows Defender and Jack don’t play well together?

Windows signing

  • signing
  • extended verification signing

5697 - branch name change

Standalones - need to rethink the load path architecture

5491 - add defers to GUI updates

Look at Quartz Composer deprecation, and a few more PRs

  • Windows - take advantage of new CPU features?
  • Some supernova changes PRs?

What is a reasonable SC4? Good topic for next meeting

Discussion on replacing boost test
James S plans to introduce Catch for C++ unit testing

1 Like

SC Dev meeting 2.13.22

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

SC4 thoughts:

Stripped down core library / language

Scsynth evolutions (multi-thread core and a more fully spec’d out API to the engine enabling easier integration with front end / sclang)

Better support for server and language plugins

SC 3.13 - talk more next weekend

What is SuperCollider 4?

Pull everything into its own sub-projects?

Luke -

SC language IS the user community - removing that, it kind of kills the language and maybe its community

Scsynth as an interface with OSC - maybe something else could be used?

We want SC code to look like SC code

GLSL for audio plugins
Templatizable bits of code
Marcin likes this idea as well
Luke - avoids distribution issues as well
Christof - but what about things like the VST or streaming audio?
Luke - more API and domain splitting for RT and NRT

example VGen from scintillator:

Christof - I want to write the C++ and have it do what I want
Luke - agree, I want to codify, test it, etc

Marcin (summing up) -
Clarifying - more separation between synthesis, language and IDE -
Using a domain specific language to build synthesis graphs and JIT for real-time
Multi-threading scsynth
Scsynth and supernova as a single executable?
Parallelization - auto-vectorization

Nathan - action plan: Nu School
Luke Maybe - maybe make this work with Scintalltor as a test?

James - keep the ‘group’ together on things - avoid orphaned amazing code

Marcin - things to keep in mind:
multi-rate processing
Helps FFT and Feedback processes
64-bit data types - or, define the depth at start time?

Luke - 64-bit only? That feels like a strange line to draw now

Keep full compatibility with backwards compatible code?
We’re really scared of breaking things
But we need to feel ok breaking the stuff we NEED to break

Nathan and Christof talk about issues with server asynchronous commands

Quick discussion on Readline on Windows, which prompted discussion on using vcpkg for more of our dependencies

2 Likes