openFrameworks icon indicating copy to clipboard operation
openFrameworks copied to clipboard

OF 0.12.0 Release Checklist

Open ofTheo opened this issue 3 years ago • 30 comments

I found this format quite helpful to organize tracking issues for releases. Just wanted to put this here so we can start collecting any issues/PR for the next patch release.

Please add links to issues based on testing the nightly packages on different platforms.

0.12.0 SPECIFIC:

Github Workflow:

  • [ ] Look at issue templates again. ( First take at creating a GitHub issue template #5652 )

Addons:

  • [ ] #6989

Libraries:

  • [ ] What libraries to drop?

All Platforms:

  • [x] Support C++17 - #6585 ( wip PR here #6844 )
  • [x] Make ofVideoPlayer::isPlaying() consistent #6527 ( without breaking things!! )
  • [ ] Check out proposal for avoiding ofParameter notify loop for linked ofParams #6602
  • [x] ofAppGLFWWindow settings.monitor not being clamped bug causes crash
  • [x] Modernize examples/templates main.cpp #6720
  • [x] Bug with cairo render when setting scale to 0,0 #6715
  • [ ] Move templates to root ( and fix CI scripts / PG / etc to correspond )
  • [ ] update GLFW ( see #6954 )

Windows:

  • [x] K-Lite breaks Directshow player - #6765
  • [ ] Look at more robust fix to k-lite issue.

VS:

  • [ ] Remove fmod as the default sound player. #167 #5490
  • [ ] Fix VS 2017 template - https://forum.openframeworks.cc/t/of-v0-11-2-error-lnk2038/37495/5
  • [x] Switch to VS2019
  • [ ] Consider a MF video player using IMFMediaEngine ( useful ref here )
  • [ ] Remove 32bit
  • [ ] Check if C++17 fixes allow for c++latest #6832

MSYS2:

  • [ ] Remove fmod as the default sound player. #167 #5490 #6622
  • [ ] Fix PG issue with backslashes - https://github.com/openframeworks/projectGenerator/issues/265
  • [ ] Remove 32bit

macOS:

  • [x] Change template to make missing a return a hard error instead of allowing functions not return anything.
  • [ ] Better retina support ( this is a tough one - might need to get bumped ) - https://github.com/openframeworks/openFrameworks/issues/4789
  • [ ] Fmod sound crash #6708 ( Don't see this anymore - @roymacdonald could you see if this is an issue? )
  • [ ] Assimp went from 26MB to 300MB ( 0.11.0 to 0.11.1 )
  • [x] Remove QTKit https://github.com/openframeworks/projectGenerator/issues/264
  • [x] Fullscreen issues / viewport issues on M1 #6719
  • [ ] Remove fmod as the default sound player. #167 #5490 ( this seems doable if we can figure out the FFT part )
  • [x] Update template to allow serial device access #6864
  • [x] 10.15 min macOS ( once C++17 PR is merged )
  • [ ] Rename osx to macOS 😬
  • [x] Change macOS / iOS / tvOS to ARC #6889

Linux/ARM:

  • [ ] Try and get Rpi 4 working without X ( see comment from @patriciogonzalezvivo )
  • [ ] fmod linking error with Qt Creator - #6733
  • [ ] X11 Macro clash with OpenCV 4. Need to do something like this, but maybe targeted to X11 ( https://github.com/openframeworks/openFrameworks/pull/6868/files )
  • [x] Fix Gstreamer 1.20 breaking video and grabber
  • [ ] ofGstVideoPlayer fixes #7063

iOS:

  • [ ] examples are broken #6723
  • [ ] update main.cpp to modern approach

Android:

  • [ ] #6762
  • [ ] Add cpp 17 when @danoli3 's PRs are merged.
  • [ ] update main.cpp to modern approach

emscripten:

  • [ ] check out @Jonathhhan 's branch for emscripten fixes. Can we do small bitesized PRs here?
  • [ ] update to latest emscripten version ( see https://forum.openframeworks.cc/t/the-future-of-emscripten-and-of/38360 )
  • [ ] fix fullscreen and AA not working #6758 ( see fix here )

CI:

ProjectGenerator:

  • [x] Remove macOS binary from PG for Linux: https://github.com/openframeworks/projectGenerator/issues/209

Apothecary:

Examples:

GENERAL:

  • [ ] update the change log.
  • [ ] update the Thanks.md with scripts/dev/thanks.sh
  • [ ] update version defines in ofConstants.h.
  • [ ] change the version on ofSite and make packages.
  • [ ] update apothecary and projectGenerator submodules
  • [ ] update stable to master

ofTheo avatar Feb 23 '21 05:02 ofTheo

suggestions:

  • [x] build RtAudio compatible with macOs 10.13
  • [ ] removing deprecated functions like loadMovie, etc.
  • [x] remove QTKit

dimitre avatar Nov 23 '21 23:11 dimitre

Suggestions: Folders naming and location

it would be great to change some parts of structure for a major version like 0.12.0 changing osx to macos in docs, scripts and templates

and moving templates to root, not inside scripts. it is just strange that this folder sits there, together with lots of .sh folders.

dimitre avatar Mar 04 '22 19:03 dimitre

Be great if people could add any open issues not listed above to this - either in the comments or by editing this issue.

ofTheo avatar Mar 08 '22 18:03 ofTheo

Regarding my Emscripten branch: Not sure what is the best way to do the bitesized pull requests, but I am open for that... (actually I tried to keep everything together, but now I read this: https://yihui.org/en/2018/02/bite-sized-pull-requests/) Should I make another branch with less changes (only one at a time)? Would also be great if someone can review my changes, because there are possibly some beginner mistakes (still it works fine for me so far)... And which of the changes should be included and which not (for now)?

I tried to make a list for a better overview (hope I did not forget anything):

Done: Fullscreen Font antialiasing

Done, but could be optimized: Update OF libs for current Emscripten Update OF libs for atomics / sharedArrayBuffer (which is needed for AudioWorklet for example) AudioWorklet (wasm workers were just merged into the official branch, so could be usable with the official Emscripten branch soon https://github.com/emscripten-core/emscripten/pull/16449) WebMidi Simplification (?) of ofxEmscriptenSoundPlayer Routing of audio nodes (for processing ofxEmscriptenSoundPlayer and ofxEmscriptenVideoPlayer sound with audioWorklets)

Not done (but I have examples for using the file system): Simplified use of the Emscripten file system

Jonathhhan avatar Mar 11 '22 00:03 Jonathhhan

Bitesized Pull Requests would be great! Especially starting with stuff which is easy to review and merge.

People can then review the PRs in a more focused way.

Thanks!! Theo

ofTheo avatar Mar 11 '22 02:03 ofTheo

Alright, actually I think I need somebody who can help me (already asked in the forum - but it seems quite difficult to find someone, even if paid), also I dont have a lot of time at the moment. But I will try, if I have more time (not sure if that is before 0.12.0). (My problem starts with: This branch is 186 commits behind the upstream and has conflicts that must be resolved.) I am a little lost and have other important things to do at the moment. I am sorry for that.

Jonathhhan avatar Mar 11 '22 02:03 Jonathhhan

Implement audioWorklet from official Emscripten branch: https://github.com/emscripten-core/emscripten/pull/16449/files

Jonathhhan avatar Mar 11 '22 03:03 Jonathhhan

hey @Jonathhhan sorry for not being able to help so far. I will take a look at your branch and see how I can help to make a nice and clean PR.

roymacdonald avatar Mar 15 '22 23:03 roymacdonald

@roymacdonald no problem. And sorry if I sounded a bit grumpy, it wasnt meant like that. I was just a little overwhelmed and exhausted.... But I think it would be a good idea to implement audioWorklets from the official Emscripten branch instead. Still, my implementation could help to show how to implement it (maybe (hopefully) it doesnt need a lot of changes).

Jonathhhan avatar Mar 16 '22 02:03 Jonathhhan

@Jonathhhan no worries. It did not sound like that at all to me. I see that there your most up to date branches are named bitesize-audioworklet and bitesize-AudioWorklet which one should be used?

roymacdonald avatar Mar 16 '22 02:03 roymacdonald

@roymacdonald those two branches were my attempts to get clean up to date branches for making the bitsize changes. But I had no luck, because I made some changes to my master branch once (they include none of my current changes yet). So this is still the branch that includes all my changes: https://github.com/Jonathhhan/openFrameworks/tree/AudioWorklet

Jonathhhan avatar Mar 16 '22 03:03 Jonathhhan

Edit: Done ofxSVG object renamed to ofxSvg

  • https://github.com/openframeworks/openFrameworks/issues/6866#issuecomment-1081904974
  • https://github.com/openframeworks/openFrameworks/pull/6906

dimitre avatar Apr 02 '22 00:04 dimitre

Anybody else likes the idea of having https://github.com/danomatika/ofxMidi as a core addon?

dimitre avatar Apr 02 '22 01:04 dimitre

Anybody else likes the idea of having https://github.com/danomatika/ofxMidi as a core addon?

definitely :)

Jonathhhan avatar Apr 02 '22 01:04 Jonathhhan

Yes yes

On Sat, 2 Apr 2022 at 12:25 pm, Jonathan @.***> wrote:

Anybody else likes the idea of having https://github.com/danomatika/ofxMidi as a core addon?

definitely :)

— Reply to this email directly, view it on GitHub https://github.com/openframeworks/openFrameworks/issues/6692#issuecomment-1086457150, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGK2HDCPYCY55FHJDPLDMLVC6OY7ANCNFSM4YB3EOSQ . You are receiving this because you were mentioned.Message ID: @.***>

danoli3 avatar Apr 03 '22 03:04 danoli3

Edit: Done Suggestion: this PR can be added to 0.12 checklist too

  • [x] https://github.com/openframeworks/openFrameworks/pull/6889

dimitre avatar Apr 04 '22 16:04 dimitre

hey @ofTheo I've took a look at this: settings.monitor not being clamped

and moved functionality to outside the if, so it is clamped correctly once https://github.com/openframeworks/openFrameworks/pull/6954

dimitre avatar May 04 '22 20:05 dimitre

hey @ofTheo I was reading this one " Change template to make missing a return a hard error instead of allowing functions not return anything." and it is already an error in XCode and a warning in make. This can be changed adding

PLATFORM_CFLAGS += -Werror=return-type

in line 93 of config.osx.default.mk should I submit a PR?

dimitre avatar May 05 '22 14:05 dimitre

@dimitre that would be great for make! Thanks!!

ofTheo avatar May 05 '22 18:05 ofTheo

Nice, its here

  • https://github.com/openframeworks/openFrameworks/pull/6962

dimitre avatar May 05 '22 21:05 dimitre

Hey @ofTheo can you explain better about retina support item?

dimitre avatar May 05 '22 23:05 dimitre

@dimitre there is is more info here: #4789

Originally I was imagining that say you had a 2x retina scale OF would render everything twice as large into a 2x frame buffer. However fonts would also need to be loaded at 2x and then things start to get tricky as if you move the window to a 1x ( non retina window ), do you reload the fonts? Or if you start on a non retina monitor and move to a retina monitor do you reload the fonts at 2x?

There are definitely some edge cases where things get tricky.

It might be worth trying out some different approaches and see what is the simplest and most robust approach.

We can query the pixel coordinate scale and we can enable retina support via the plist so, the basic info is there.

Hope that helps! Theo

ofTheo avatar May 06 '22 01:05 ofTheo

Other suggestion, older deprecated API should be removed already loadMovie -> load loadImage -> load saveImage -> save initGrabber -> setup

  • https://github.com/openframeworks/openFrameworks/pull/3320

dimitre avatar May 07 '22 03:05 dimitre

Just to add to list. it would be great to have orientation issues solved for 0.12

dimitre avatar Jun 02 '22 19:06 dimitre

I saw the Linux issue "Try and get Rpi 4 working without X" in the list. Does this mean running oF headless and without windowing system? I just did something similar on a Rock Pi 4 and I basically just used the ofAppNoWindow feature.

StaffanMelin avatar Jun 18 '22 19:06 StaffanMelin

I think this should be addressed for Linux: https://github.com/openframeworks/openFrameworks/issues/6871

StaffanMelin avatar Jun 18 '22 19:06 StaffanMelin

Hey @StaffanMelin do you think it is an OF issue rather than GStreamer? Is Processing still shipping a previous version binary to make it work?

dimitre avatar Jun 18 '22 22:06 dimitre

Good question @dimitre! :) I an play videos but not capture them. I could with previous versions of gstreamer. I can also run the pipeline with gst-launch-1.0, but when running the videoGrabberExample the program crashes. So I think it is an oF problem when gstreamer updated beyond 1.18.

As for Processing and if it bundles an old GStreamer version, I don't know. for sure. They seem to have bundled an earlier version, then removed it, then brought it back. See https://github.com/processing/processing-video/issues/195

StaffanMelin avatar Jun 19 '22 07:06 StaffanMelin

For create openGL ES 2.0 context on a RPI 4 without X11/WAYLAND (where glfw don't work) I'm doing this:

  • GBM > EGL helper functions https://github.com/patriciogonzalezvivo/vera/blob/main/src/window.cpp#L195-L314
  • create actual GL context https://github.com/patriciogonzalezvivo/vera/blob/main/src/window.cpp#L516-L660 For those sections ignore everything under flags DRIVER_BROADCOM define flags (it's for the older RPIs with a broadcom chip)

patriciogonzalezvivo avatar Sep 19 '22 19:09 patriciogonzalezvivo

Wow - thanks @patriciogonzalezvivo! That's super helpful. 🙏🙏🙏

ofTheo avatar Sep 19 '22 19:09 ofTheo