Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenFrameworks - room for improvement #6866

Closed
dimitre opened this issue Feb 1, 2022 · 57 comments
Closed

OpenFrameworks - room for improvement #6866

dimitre opened this issue Feb 1, 2022 · 57 comments

Comments

@dimitre
Copy link
Member

dimitre commented Feb 1, 2022

First of all thank you for the incredible project and collective effort put in OF.
I've been using for more than 10 years, and I've decided to read carefully the code to see if some things could be improved there.
And IMHO there are. so I'm opening this issue here and inviting you to discuss ideas or post new ones.

@roymacdonald
Copy link
Contributor

Hi @dimitre
I agree with you. we discussed some of this things back on 2019 at the denver conference, but soon after covid came and, well, you know...

What I recall and think would be mostly useful was the idea of modularizing OF. Have a very basic core and all the rest is treated as addons, communications, networks, 3D, sound, video, graphics, etc. The way that OF is used right now will still be possible, but with this modularization one could easilly disable the modules that are not needed, which should compile faster and into smaller apps.
There were other things we mentioned and were written in some documents, which I think @bakercp own.
@ofTheo @ofZach @arturoc

What ideas do you have in mind?

@dimitre
Copy link
Member Author

dimitre commented Feb 28, 2022

Hey @roymacdonald first of all thanks for all your activity in community helping others and keeping the forum alive.
Glad you posted, I'll be sharing more ideas here if there is discussion. Don't want to flood the project with PRs and issues.

@dimitre
Copy link
Member Author

dimitre commented Feb 28, 2022

Fresh OF

First of all, some people out there I've been talking have the perception OF project is stalled.
I disagree but I've tried to navigate the project as I was a new user, using the site, documentation, search engines and there are some easy things that can be improved for users.

  • certbot working for www pages, I've noticed some search engines tend to point to www pages which leads to a invalid certificate issue.
  • push new ofsite commits to remove IRC / Forum list and add Slack
  • release dates on the OF site
  • a new release 0.11.3 to have all the latest improvements. Even without improvements it would worth the release only by the XCode / M1 compatibility efforts. I see forum posts and issues regarding already fixed things.

Edited some suggestions as already done as I've noticed recently

@roymacdonald
Copy link
Contributor

Glad to help.
I also have the perception that OF is a bit stalled. There is a lot of people now using Touch Designer, for instance, which is really powerful and you can make super nice looking stuff quite fast, although there are lots of things you cant do in it that you can do with OF. But if I was a newcomer I would probably gravitate towards TD rather than OF.

I agree with what you point out. During the last OF conference in Denver, already more than 2 years ago, we discussed this a lot and we ended up having the idea of revamping the whole site, even with some working demos for it which looked really nice. I am kinda disappointed that all the work done there went into the dark and never came out. I understand that soon after it covid came and, well we all know what happened, yet after that there has been plenty of time to at least make public the documents we wrote then.

There were also some other really cool and useful stuff like the package manager by @thomasgeissl , which already works and the idea was to integrate with OF and project generator.

But in order to change this perception of OF being stalled, most probably, updating the website would have the biggest effect and maybe we should start from there.

I am willing to make an effort and put time into such, but we need to be clever on how to use out limited person/hour resources which are not that much. I think that organizing a hackathon during some weekend can work and we can get it all done if we have a few committed people .

@dimitre
Copy link
Member Author

dimitre commented Mar 2, 2022

Sure @roymacdonald it would be great to have a way of sharing ideas and results from the conference, so others could pick up or add or discuss more.

@dimitre
Copy link
Member Author

dimitre commented Mar 2, 2022

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.

@ofTheo
Copy link
Member

ofTheo commented Mar 2, 2022

Just fyi @dimitre there is a 0.12.0 task-list issue here:
#6692

It outlines what we are aiming for, for 0.12.0.
Any easy fixes for anything on that list would be helpful. And anything that should go on that list can be added as a comment on the issue.

Thanks for all the help so far!
Feel free to PR any things on the ofSite that seem out of date or inaccurate.

@thomasgeissl
Copy link
Contributor

hey hey, thanks for reaching out.

I am currently traveling and turns out train/bus rides work very well for refactoring.
I was discussing some package manager/project generator features with Theo a couple of months ago. Unfortunately, other gigs came in and I haven't found time to continue working on it.
Basically, I am simplifying things and porting the UI stuff to c++, with the hope that everyone who knows oF could work on the package manager.
The package manager now opens a gui when no arguments are specified, and if arguments are passed to it, it runs in cli mode (similar to npm). The current version is single standalone application (cli, gui, project generator), and if it is located in an oF installation, it does not require a setup step.
I wanna get things stable and then I could need some support fixing the last ofxProjectGenerator and ImGui issues.
Once it's at a stable state, i will post more information.
Screenshot 2022-03-02 at 20 38 35
Screenshot 2022-03-02 at 20 38 07

@roymacdonald
Copy link
Contributor

That's looking great @thomasgeissl !
Is it made in OF or are you using something else?

@roymacdonald
Copy link
Contributor

@dimitre
Why changing the templates folder? I rarely use it directly, and it is mostly called from project generator in order to make the projects. I feel that changes to the folder structure can be quite disruptive as there is so much interdependence between parts, in particular with scripts, but it would also bring backwards compatibility problems.

@dimitre
Copy link
Member Author

dimitre commented Mar 3, 2022

Yeah this change is really not needed @roymacdonald.
I has only to do with personal opinion based on a didactic view of the project. The simpler is to understand what is done the more inviting is for collaboration, improvement in the future.

About backwards compatibility I don't think it is needed in this case, each release has its own projectGenerator

@2bbb
Copy link
Contributor

2bbb commented Mar 3, 2022

I agree with dimitre's opinion about moving templates to root.
sometimes me and my friends say "where is the template directory...?".
even if scripts need templates, templates are not only for scripts, sometimes humans need to operate templates...

I think this is not absolutely needed, but I think it on the root directory is better.

@dimitre
Copy link
Member Author

dimitre commented Mar 3, 2022

GIT Access

People commited to OF with availability should have access to GIT so innofensive PRs can be merged without overloading @ofTheo. It would be great to have @2bbb and @roymacdonald

@thomasgeissl
Copy link
Contributor

That's looking great @thomasgeissl ! Is it made in OF or are you using something else?

hey Roy, it is entirely coded in oF. Your territory to find and fix some bugs.

I am with Roy regarding the templates, would be nice to move, but since it will cause a lot of problems, this should only happen with the next (real) major release - 1.0.0 in this case.
It is weird to have them in scripts, but it definitely mirrors the project's anarchic character.
I'd say it's a very low-priority task with lots of headaches.

@ofTheo
Copy link
Member

ofTheo commented Mar 4, 2022

@dimitre and all - thanks for this!

ofSite:
I think there is a lot to do here ( as you mentioned )

  • Any PRs would be appreciated and we could definitely add more people to ofSite Git for merging easy fixes.
  • Would also like to refresh the video on the homepage soon and do a call on the OF Twitter for video submissions.
  • There were some designs that came out of the OF meetup which were pretty nice but I think that would be fair amount of work to implement.
  • A slightly refreshed homepage with a new video and some updates to the site content would probably go a long way.

Next Release:

  • Right now 0.12.0 is slated as the next release, but 0.11.3 could make sense if 0.12.0 feels too far off.
  • Either way any help closing issues on the 0.12.0 task list would be amazingly helpful OF 0.12.0 Release Checklist #6692
  • Commits could be pulled into a 0.11.3 if needed.
  • One thing I'm working on at the moment is trying to get the release process a little simpler and using the Github Actions and Github Releases to make the process more automatic. Once that is working I think it could be a faster process to bring out patch releases.
  • I think switching the folder structure could be doable for 0.12.0

Git Merging PRs:

  • This could be opened up to more people. We'd need to sync up on a few things like "squash and merge" with #changelog notes.
  • We would probably want to do something along the lines of one person with Git access has to review before someone else merges ( to start with ). In the past we had issues with buggy code or code only tested on one platform being merged and introducing new issues.
  • A critical eye here would be important!
  • Also PRs that move us closer to a Release should be prioritized over new features. If the feature is fairly critical it could be added to a release, but PRs that close existing issues/bugs and features marked for the next release are the most helpful.

Simplifying Contribution / Plaltforms:

  • At the moment we have a lot of supported platforms which makes things get out of date pretty quickly if someone who has been supporting the platform steps away and there is no one else to jump in.
  • It also makes development move slower. So would be great to look at things that aren't well supported or out of date.
  • Dropping 32bit on Windows is one example, but there might be some other areas we might want to look at for simplification.
  • I don't know a ton about arm based linux boards, but it could be that we could move say to one arm64 platform instead of armv6 and armv7 for future releases ( would support Rpi 3 and onwards ).
  • Anyway would be great to think about ways we can simplify the supported platforms ( where reasonable ) as that could go a long way to help OF pick up steam.

Really appreciate all the energy and would love to help get more people involved in the process!
Theo

@dimitre
Copy link
Member Author

dimitre commented Mar 4, 2022

Hey @ofTheo great! Git Releases are going to be very helpful!
Sometimes a major overhaul becomes prohibitive like design a entire new site at once or maybe turn OF modular.
Instead I would propose tiny changes that by itself can help people understand OF is alive. And hopefully lead to other improvements just by bringing the sensation things can be improved.

@ofTheo
Copy link
Member

ofTheo commented Mar 4, 2022

@dimitre totally agree!
Often things have stalled when we have tried to do huge overalls all at once. 👍

@dimitre
Copy link
Member Author

dimitre commented Mar 4, 2022

Coding style

Again : just personal opinion.
Tabs before the function names could be phased out. I understand it is meant to be tidy but it can be unhelpful when trying to find in files the exact search like "void setOrientation" because you don't know if there will be spaces, a tab or multiple tabs.

	virtual void hideCursor() {}
	virtual void showCursor() {}

	virtual void	setWindowPosition(int x, int y) {}
	virtual void	setWindowShape(int w, int h) {}

	virtual glm::vec2	getWindowPosition() {return glm::vec2(); }
	virtual glm::vec2	getWindowSize(){return glm::vec2(); }
	virtual glm::vec2	getScreenSize(){return glm::vec2(); }

	virtual void			setOrientation(ofOrientation orientation){ }
	virtual ofOrientation	getOrientation(){ return OF_ORIENTATION_DEFAULT; }
	virtual bool	doesHWOrientation(){return false;}

I think we can remove now the comment dividers before functions in examples, like this

//--------------------------------------------------------------

And clean some unused functions (not all of them) from some examples where declaring all the functions are not pertinent. ex:

//--------------------------------------------------------------
void ofApp::mouseEntered(int x, int y){

}

//--------------------------------------------------------------
void ofApp::mouseExited(int x, int y){

}

//--------------------------------------------------------------
void ofApp::windowResized(int w, int h){

}

//--------------------------------------------------------------
void ofApp::gotMessage(ofMessage msg){

}

//--------------------------------------------------------------
void ofApp::dragEvent(ofDragInfo dragInfo){

}

All of this 3 suggestions are related to read less, scroll less and less eye jumps

@roymacdonald
Copy link
Contributor

Thank you all for getting on to this.
I agree with all said. Theo's lines make total sense.

@dimitre I do have git access, it is only that I agreed not to merge PRs. @ofTheo I completely agree that more than one dev should look at a PR before merging. I can take the time to look at these and merge if needed. But please let me know what would be the correct procedure for such.

I still think that changing folder structure for a minor release is not a good idea, simply because a minor release should't break a previously working project.

I think we can remove now the comment dividers before functions in examples, like this

I like having these! lol. It helps me to find out where each function ends/starts specially on larger projects.

But sure, having all those empty functions looks unnecesary but I think that it is very handy, specially when you are a beginner to have then right there. I am not sure if I would remove these.

As of the website,
I think that a simple "cosmetic" update can give the idea that the project is not stalled, kind of a purely CSS update.
I feel that the site is a bit bloated.
The header has too much stuff. I would merge learning and documentation and take out of it stuff like the link to the gallery, github, slack, etc and put elsewhere, probably in the footer with icons only instead.
I might give a try to this and let you know.

Thanks again for all the help and time you put into this!

@2bbb
Copy link
Contributor

2bbb commented Mar 5, 2022

my personal opinions about details on macOS. (this is not genral, sorry if those don't fit the purpose of this room)

  • supporting ARC

no-ARC env is too legacy and compiler doesn't care some wrong codes.
if oF get supporintg ARC, then obj-c codes will be more strict and it makes more easy to find and clear bugs.

I posted PR already. (but I think this need to test by more people.)
#6848

  • PG template supporting not XML format

some users around me got trouble about project format be made not XML by editing templates/osx/emptyExample.xcproj..
i have not found a better solution yet, but already XML format is legacy and we need to support other formats.
related: openframeworks/projectGenerator#280

@dimitre
Copy link
Member Author

dimitre commented Mar 6, 2022

thanks @2bbb this room should encompass everything, personal opinion, platforms.

@dimitre
Copy link
Member Author

dimitre commented Mar 6, 2022

Done: Memory Layout

I've took some time to read OF code and appreciate all the work done! Beautiful.
One fact that caught my attention was the fact OF uses a number of functions with shared_ptr as parameter, like this:

void ofMainLoop::setCurrentWindow(shared_ptr<ofAppBaseWindow> window){
currentWindow = window;
}

I think we should change function parameter to const and & where appliable to avoid temporary increasing shared_ptr use_count, or using std::move inside the function if copying a shared pointer to another. (not in the example above which uses weak_ptr)

There is some discussion on this already merged PR:

Related PRs:

@2bbb
Copy link
Contributor

2bbb commented Mar 8, 2022

supress warnings

Recently, many return values changed from int to size_t, but arguments of method are still int.
and now, those are hidden by (I know only Xcode) project settings are set to suppress warnings.

I will try fixed those, but so many commits will be needed.

@2bbb
Copy link
Contributor

2bbb commented Mar 8, 2022

Memory Layout

I think, better way is overload with const shared_ptr & and shared_ptr &&.

@ofTheo
Copy link
Member

ofTheo commented Mar 8, 2022

Thanks all!

While PRs which fix small things like increasing the use count of shared_ptrs etc are good to address. Considering how much work there is to maintain OF and get releases out, PRs which move the needle on release milestones or close open issues for existing bugs are far more helpful.

Usually if a PR isn't merged it is due to there being some hesitation of it possibly creating a new bug or breaking existing patterns. eg: #6882

Anyway, all this to say would love to direct some of this energy towards 0.12.0 and PRs which solve issues/bugs people are currently having ( and while also fixing warnings etc too 🙂 )

0.12.0 Checklist here.

Thanks so much!!

@thomasgeissl
Copy link
Contributor

thomasgeissl commented Mar 11, 2022

here are some project manager updates. it still needs some refactoring and testing.
but in case anyone is an expert in ImGui (probably it is enough already just to be a bit smarter than me), there are two issues that could need help.
thomasgeissl/ofPackageManager#101
thomasgeissl/ofPackageManager#111

https://github.com/thomasgeissl/ofPackageManager/releases/download/0.1.2/ofPackageManager_osx_0.1.2.zip

  • it is not yet signed, nor notarized
  • download it copy it inside your oF directory, I am currently having it in myApps
  • it won't find oF due to translocation issues. start it, move it, start it, move it back and it should work next time you start it.

this should clone and build it, but in the case of an m1 mac, it will fail with arch arm64, ofxGit2 is not updated and will fail to link.
I built it in vs code/zsh terminal and probably it runs with rosetta as far as I know.
Also, I use a rosetta iterm version, just a duplicate which opens using rosetta (get info/open using rosetta), and there I can build it.

git clone https://github.com/thomasgeissl/ofPackageManager.git
cd ofPackageManager
bash -c "$(curl -sSL https://raw.githubusercontent.com/thomasgeissl/ofPackageManager/master/scripts/ofPackageManager.sh)" install
make -j4 && ./scripts/fix_dylib.sh && make run

any feedback is very welcome. It is probably best to move the discussion over to ofPackageManager's repo.

Screenshot 2022-03-11 at 01 32 41

Screenshot 2022-03-11 at 01 32 58

edit: I updated the release link to the most recent version
and here is the demo project url that can be pasted in the open screen, the package manager should list missing dependencies and install them.
https://github.com/thomasgeissl/ofPackageManageableExampleProject.git
edit2: I updated the release again, the link is fixed. @dimitre I am still having the issue with the font, maybe you have an idea what I am doing wrong. It is not urgent btw. And if someone wants to code some animations for home screen, you are very welcome (could be actually a nice strategy to get more people in forking the repo and fixing bugs)

@2bbb
Copy link
Contributor

2bbb commented Mar 13, 2022

@dimitre

changing osx to macos in docs, scripts and templates

In addition, we need to add #define TARGET_MACOS in ofConstants.h?

@2bbb
Copy link
Contributor

2bbb commented Mar 16, 2022

#6892

This issue is from my hope to save beginners get trouble about communication with arduino and other library...

@dimitre
Copy link
Member Author

dimitre commented Mar 27, 2022

Done: Folder other/serialTest

I've noticed the .ino file with the same logic is there three times, two as .ino and one as .cpp
and I think it doesn't make sense to keep the ELF, Rom and Bin there, due to the quantity of different Arduino boards out there, not even counting other compatible boards.

First PR : removing binaries

TODO: remove redundant .ino / .cpp

@ofZach
Copy link
Contributor

ofZach commented Apr 13, 2022

I just wanted to chime in about the templates folder -- one thing I am worried about, if its moved to the root level, is that people may click on and interact with a template, which would sort of hose their entire OF folder since those are not meant to be opened. I agree that having it in "scripts" seems sort of messy. Perhaps there's a more organized approach, such as:

  • utilities/script
  • utilities/templates

(or instead of utilities, internal?)

with a clear readme about what utilities are. another option is to have templates in the PG folder, but that folder is sort of messy on different platforms (on windows, it's full of DLLs, etc)

@2bbb
Copy link
Contributor

2bbb commented Apr 15, 2022

rename ofBufferToFile to ofSaveBuffer for fit to the naming rule

there are ofSaveJson to save a json and ofSaveImage to save an image.
ofBufferToFile is not under the same rule.

@2bbb
Copy link
Contributor

2bbb commented Apr 15, 2022

In association with:

Arguments of ofSaveImage are pixels, path, arguments of ofSaveURL are url, path, but arguments of ofSaveJson are path, json.
I think making arguments same order, i.e., changing ofSaveJson(ofJson json, string path) is better.

@dimitre
Copy link
Member Author

dimitre commented Apr 15, 2022

Great. for me the most unusual function which is different from the others is ofStringReplace, because it doesn't return a value, but sets a variable passed as a parameter
https://openframeworks.cc/documentation/utils/ofUtils/#!show_ofStringReplace
differently from all other operations.

@dimitre
Copy link
Member Author

dimitre commented Apr 18, 2022

@roymacdonald I like the idea of a hackathon or setting a day to be more available and try to advance things using slack.
Im super available. anybody else?

@roymacdonald
Copy link
Contributor

Hi @dimitre and everyone else. I've been a bit unavailable lately as I have been traveling and I wont stop until early May. Then I will be available and it would be great to have a hackathon, but before that it is most likely that I will not be.
Best!

@dimitre
Copy link
Member Author

dimitre commented Apr 27, 2022

Experimental

should OF have an experimental branch?
how to make collaboration more dynamic?

@roymacdonald
Copy link
Contributor

@dimitre
how would that make it more dynamic?

@dimitre
Copy link
Member Author

dimitre commented May 5, 2022

@roymacdonald by having more people there able to commit, changes can be voted and tested there.
If people consent a specific change is better Theo can be involved in merging into master.

@dimitre
Copy link
Member Author

dimitre commented May 7, 2022

Done: XCConfig optional include at the end

edit: now an issue here:

it would be great to have something like
#include? "app.xcconfig"
in the end of the actual Project.xcconfig

so if somebody want to have configuations that survive ProjectGenerator rebuild they can be there
#include? doesn't complain if the file doesn't exist

useful for overwriting pbxproj or xcconfig configurations, or setting custom data for the app like

APP_VERSION = 0.76
PRODUCT_BUNDLE_IDENTIFIER = org.dmtr.testOF

@dimitre
Copy link
Member Author

dimitre commented May 15, 2022

Done : Reducing .h includes in .h files.

There are some cases includes are there but they are unneeded (I've made some PRs targeting that but I'm sure there are more out there) and others can be changed to forward declaration like this :

@smeyfroi
Copy link
Contributor

Re improvements to ofSite, I wonder if scraping the Instagram #openframeworks tag might be a quick win? I noticed there's a feed from Twitter, but perhaps Insta would have better results. Having said that I have no idea how easy it is to take a feed from Insta. Maybe it's really complicated, but thought I'd mention.

@ofTheo
Copy link
Member

ofTheo commented May 17, 2022

@smeyfroi Yeah would love to feature more OF work on the main site. Another option could be behance which has a fair amount of OF content: https://www.behance.net/search/projects?tracking_source=typeahead_search_direct&search=openframeworks&sort=published_date

Edit: added an issue here for those that have thoughts
openframeworks/ofSite#794

@smeyfroi
Copy link
Contributor

What's the best way for me to start helping this project? @ofTheo @ofZach

I'm time poor in general, quite new to oF, but willing to help with tasks that are easily within my grasp.

So... I'm mediocre in C++, picking it up again specifically to use oF after last using it commercially in the days of C++98! I'm studying for an art degree in my spare time, with a day job in software (currently ruby, bash, some js, previously python, java), though I mostly spend my work hours managing a decent sized AWS estate.

One reason I'm nervous about the oF codebase is because of its highly cross-platform nature. I wonder whether the implications of that re development could be documented more clearly, because for me that's quite a barrier: last time I touched Windows was probably decades ago, and my knowledge of low-level graphics ops is minimal at best, never mind thinking about the differences between a Pi and a MacBook. I imagine CI automation might be the answer there, if that's a reliable enough setup.

I find the issues list overwhelming, though clearly it's not stopping @dimitre! 👍 I wonder whether I might be best starting to help triage the issues (tagging/re-tagging to bucket them up), or if there's anything I can do around the hosting and so on?

A successful repo that I sort of follow is the neovim project. They have a lot of active participants on what must be a very difficult legacy codebase. Yet they've managed to refactor, excise legacy, and add complex new functionality. Is their model for managing the dev process something to look at? (They tag and triage issues quite nicely, for example.)

Anyway, I'm making no grand promises, but it'd be handy to have a way into helping with whatever limited resource I can give.

Feel free to DM: email on my GH profile. 😀

@ofTheo
Copy link
Member

ofTheo commented May 24, 2022

Thanks @smeyfroi !
Appreciate the offer to jump in :)

Things that can be helpful to the project:

  • answering questions on the forum
  • helping with the site ( if you are able to get some example iframe / embed code snippets for behance or instagram or way to pull in images would be really helpful )
  • reporting bugs

@dimitre
Copy link
Member Author

dimitre commented May 25, 2022

Great.
Another suggestion of useful collaboration would be proofreading and/or testing pull requests.
like @NickHardeman just did in this one - #6987

@smeyfroi
Copy link
Contributor

Great. PR incoming for ofSite to start, but I'll start engaging on this repo too. Thanks guys!

@dimitre
Copy link
Member Author

dimitre commented May 27, 2022

Libs version / URL in a log file

it would be great to have a txt file in the libs folder contaning info for each lib:

  • lib version
  • git url (branch / fork)
    it can be generated by the same process that build the libs.

@dimitre
Copy link
Member Author

dimitre commented Jul 21, 2022

Github Discussions

it would be great to have the feature discussions enabled in Github, so some issues can be moved there
Like this https://github.com/plotdevice/plotdevice/discussions

@ofTheo
Copy link
Member

ofTheo commented Jul 21, 2022

@dimitre yes - if you want to kick it off happy to add that. 👍

I think we want to make sure though to use it in a way that makes sense, so we aren't duplicating conversations in issues / or the forum.

@dimitre
Copy link
Member Author

dimitre commented Jul 21, 2022

@ofTheo great! As I've seem some issues being moved to discussions we can do it without duplicating anything.

@dimitre
Copy link
Member Author

dimitre commented Jul 21, 2022

@ofTheo just as a follow up I don't have access to repository settings here.
from what I've seen in other repositories this can be enabled in settings -> General, scroll to features -> [ ] discussion

@openframeworks openframeworks locked and limited conversation to collaborators Aug 2, 2022
@dimitre dimitre converted this issue into discussion #7040 Aug 2, 2022

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants