What is best practice for App Store module source control?
I am interested in finding out how other Mendix developers maintain modules they put in the App Store. Do you use the built in Mendix Source Control for the containing project, do you use GitHub, both, or something else? Do you work differently when working on a module for the Private App Store compared to the Public App Store? When uploading to the App Store, the default option is to take a published upload from GitHub, which makes me think this is the right way to do it. This also gives others a link in the App Store to view and download the project. The other option is a manual upload of a binary. At the moment I keep my App Store modules in GitHub for both public and private, with a number of exclusions in my .gitignore file for other modules the project might need so they aren't committed with my work. It does mean when anyone wants to work on the module, they need to download those modules again from the App Store first. This is the same as someone wanting to download and use the module from the App Store. The advantage of using GitHub seems to be in allowing anyone to have access to the project so they can contribute and learn from it. The downside is loosing the built in Mendix history functionality. Thoughts?
I always use the teamserver from Mendix to do the version control. And yes I also publish on Github. That is easier to collect issues. I always just ask other collaborators to just upload the changed microflows. And if somebody has some really good idears I just add those people to the teamserver so we can do the version control in Mendix again.
Some other points to take into account when creating module / widgets. Do select your Mx versions you work with carefully. You have to think about the upgrade path's. Some of my modules started in Mx 2 and we are now heading to Mx9 probably and maintaining versions in different lines can be a pain in the ….I always try to create in the lowest possible. But take for instance Mx8 it would be wise to develop in the LTM version Mx8.6. Then you still get at least the bugfixes and you can update your model. In the appstore you can see the framework versions so it is good to keep an eye out what Mendix is doing with it's own modules. Take for instance Mxmodelreflection that has mx 601 and then mx 7.23 versions to be Mx8 compatible.
Hope this helps a bit.