Making an opensource package / module / library?

RELATED
PRODUCTS

Post

Hey checking out there to see if anyone has some advice for me about making a package/ module / library that could be included other bitwig extensions?

I have some OSC and Bitwig helper things to make some things easier for bitwig extension development that I wish to publish as an open source library for others and myself to include with their projects.

I'm happy to use Maven or Gradle as a build tool. I am currently learning about different build systems and approaches.

Its quite easy to prune a branch of the code and add it to any repository but it seems to loose! I'd like to have this code in a seperate github repository and syncing to latest updates when needed and of course build on the core library.

I think the same could also apply to https://github.com/bitwig/bitwig-extensions/tree/api-18 and making that part of another extension... Not sure if anyone has done this.

I'm also pretty sure I got these names package / module / library confused as well, since they all seem to have different meaning in Java / Build / Github context. Anyways... I hope you can understand the question and if you have any help or direction that would be greatly appreciated.
----------------------------------------------------------------------
http://instagram.com/kirkwoodwest/
http://soundcloud.com/kirkwoodwest

Post

Hi Kirkwood West,
I am not sure if I really understand your questions. Maybe the following hints might help you a bit: You create a fork from any git(hub) repository. I fork is different to a branch (go and google the differences). Basically a fork is useful when you want to use a repo, make same changes and use them in your code (and potentially never bring any of these changes back to the original repo). There are also ways to bring the changes from the original repository into your fork.

I have used this method to make use of MOSS' OSC implementation and make use of them in my BitwigPerformanceTwister Code. You can see that I have a copy of DrivenByMoss as part of my own repository. You can use Maven to build your application with a sub-repository, as well. But you need a certain plugin in Maven.

My github repo is here: https://github.com/Markram71/Bitwig-Performance-Twister. You can see the plugin in the POM file there, as well.

Cheers
Martin

PS: I am also quite new to Github, and not an expert there, so maybe I got this all wrong, as well.

Post

markram71 wrote: Fri Apr 12, 2024 10:28 am Hi Kirkwood West,
I am not sure if I really understand your questions. Maybe the following hints might help you a bit: You create a fork from any git(hub) repository. I fork is different to a branch (go and google the differences). Basically a fork is useful when you want to use a repo, make same changes and use them in your code (and potentially never bring any of these changes back to the original repo). There are also ways to bring the changes from the original repository into your fork.

I have used this method to make use of MOSS' OSC implementation and make use of them in my BitwigPerformanceTwister Code. You can see that I have a copy of DrivenByMoss as part of my own repository. You can use Maven to build your application with a sub-repository, as well. But you need a certain plugin in Maven.

My github repo is here: https://github.com/Markram71/Bitwig-Performance-Twister. You can see the plugin in the POM file there, as well.

Cheers
Martin

PS: I am also quite new to Github, and not an expert there, so maybe I got this all wrong, as well.
Martin! Thank you!

I was just checking your repo out last night to see how you set this up. Local maven repository. Very cool! Thanks so much for sharing and writing back. It means a lot,

Forking seems like a good strategy even between my own projects so I will learn how to do this as well.

I will try this and see how far I get. your method like the most straightforward way without dealing with maven Central. Which seems overkill for this type of thing.

I still don’t know how to write test code or anything of this sort.

Hopefully I can put some time in to make the package soon. Again much appreciated.
----------------------------------------------------------------------
http://instagram.com/kirkwoodwest/
http://soundcloud.com/kirkwoodwest

Post

… one more hint on this topic: When you fork another repository you quite likely get into the situation that you have two (or more) difference source code folders. But for Maven this is not the standard way to build your application, Maven expects only one source code folder. But you can use a plug-in for Maven to solve that problem.
See more details here: https://www.baeldung.com/maven-project- ... irectories

Post

markram71 wrote: Sat Apr 13, 2024 7:52 am … one more hint on this topic: When you fork another repository you quite likely get into the situation that you have two (or more) difference source code folders. But for Maven this is not the standard way to build your application, Maven expects only one source code folder. But you can use a plug-in for Maven to solve that problem.
See more details here: https://www.baeldung.com/maven-project- ... irectories
got it! thanks mark! what you provided is the gold. will let you know when its up.

I thought first to make different packages for my osc configuration and other bitwig goodies. But to keep things more maintainable and usable for myself, i'll just make one module/library. There will be some other nice classes that push the limits of what we can do in the extension framework. This will result in more code bloat for people who just want the OSC stuff but it will make the development much simpler in the long run. Its about to get schwifty!!
----------------------------------------------------------------------
http://instagram.com/kirkwoodwest/
http://soundcloud.com/kirkwoodwest

Post

Still working this out... so far so good. thanks for the tips again Martin. Got the packages sorted out... just got a ton of unexpected cleanup to do before this is ready for consumption.
----------------------------------------------------------------------
http://instagram.com/kirkwoodwest/
http://soundcloud.com/kirkwoodwest

Return to “Controller Scripting”