Hi all, congrats to the successful release of 0.9.7 … it greatly simplified the last PLC4X release to have the artifacts out there in the wild.
I would really like to see Royale as the tool in my toolbox for building industrial UI applications as I sort of am not that happy with the other existing alternatives. In order to do this I know that I have some areas of expertise I can offer to the project … Writing ActionScript and MXML code is definitely not where I can help best. However I’m really good at Java, Maven and Apache Infrastructure. I know that development is most active in the ASJS repo but I would be happy to help on the other sides ... perhaps even help the automated testing in the ASJS repo. I would have one proposal on how to really simplify things, but I would be hesitant to start working on this before we have consensus on this here. It would probably involve multiple weeks of full time work in total to do it for me, but I would be happy to do it, if the project would accept it in the end and you folks would be willing to help with the parts I’m not too deep into (Ant-, NPM build adjustments). So that’s why I’m bringing this up here first. I know it might question some unwritten project rules, but I would kindly ask you to not just block the discussion and perhaps help re-evaluating why they became “project rules” and if the assumptions were correct or still apply. The benefit would be: * Less problems in getting set-up (just clone one repo) * Simpler release (Only need to release one repository … no updating of version information in-between) * Less things that can go wrong (I remember when compiler was already in 0.9.8-SNAPSHOT but the rest wasn’t yet … there were issues discussed on the list) * I would use the opportunity to clean up some things in the maven build, because despite the probably common assumption … I’m not really happy with the usability of the maven build from a user’s perspective … I think there’s great room for improvement In general I would propose to merge all 3 repositories into one. Right now the Maven build would probably work with different releases of the compiler or typedefs but from what I can see … the Ant release would probably not work without modification. So the whole idea of releasing separately seems to be more a theoretical one. I think in the history of FlexJS and Royale it hasn’t been done once (please correct me if I’m wrong). If there are external entities only interested in consuming parts of the project, we could build source distribution for these that only contain the parts they are interest in. * I propose to move the artifacts needed for the build but not being part of the build (build-tools, jburg-types) into a separate repository where they can be released independently and don’t cause confusion like they are doing right now. * Then I would like to create a new repository (Let’s call it “royale”) which contains 3 directories: compiler, typedefs and asjs (or even with the current “royale-“ prefix, I don’t really care/mind). * Now comes the biggest block … I would need to completely rewrite the royale-maven-plugin … the core of it would be also moved to the new build-tools repository. This plugin would sort of be an empty skeleton to load compiler plugins. This is needed as Maven can’t build a project where a plugin used in the project is also part of the build itself. So we couldn’t build all-in-one go without this change. * Next step would be to add a new royale-parent pom in the new root of the project, the 3 old parents would be updated to use the new parent and a lot of duplicated configuration could be moved there, hereby greatly simplifying the 3 old root poms. A migration plan, could be to : * create a feature-branch in all 3 repositories * create two new repos “royale” and “royale-build-tools” (or whatever you want to name them) * Start with using git submodules to import the 3 branches into the new (I know submodules really suck, but they would only be needed until everything is finished) * I would move/copy the build tools to the new repo and start working on the new maven plugin * Then I would need to update the old compiler repo to produce something I can use as royale-maven-plugin plugins * After that’s done I would update the typedefs to use the new plugin * After that’s done I would update the asjs repo to use the new plugin * Then I would add the new royale-parent pom * After that’s done I would simplify and deduplicate the configuration * Now I would definitely need some help with adjusting the Ant and possibly NPM build to these changes (Most of them should be profile-names and maybe directory names or paths) * The last thing that would be required to be done now would be to remove the submodules in the “royale” repository and to import the real repos * After this the 3 old repos could be archived I am really looking forward to some open discussion on this. Chris
