This thread about upgrading to a new software version:
highlights a problem with the way the FTC code is being distributed in the first place.
The Qualcomm code should not be in a project that you check out and edit. It seems very clunky to be putting team code in someone else's project, especially when it comes time to upgrade. The first post in the referenced thread (that shows what people go through to pick up the new code) sort of proves my point.
The low level hardware code should be a library component that teams can download and then just add to the library folder of their own projects.
This would greatly simplify trying out upgrades. Just download the new libraries, add them to you lib folder, and try them out. If you don't like the result, just go back to the previous version of the library. Teams then could maintain their own code repositories that don't depend on the FTC-provided repository. Then there is no need ever to merge code in from other branches. Merging branches from different development trees is only easy after you have climbed a very steep learning curve, as Philbot and others pointed out.
This would also require a new way to add op modes through some kind of registration mechanism instead of editing classes from the core library.
There could still be a "reference implementation" project that shows how to set up Android Studio to use the libraries, but teams would not edit this project, just look at it or use the examples as starting points for their own code in their own project.
JonV
highlights a problem with the way the FTC code is being distributed in the first place.
The Qualcomm code should not be in a project that you check out and edit. It seems very clunky to be putting team code in someone else's project, especially when it comes time to upgrade. The first post in the referenced thread (that shows what people go through to pick up the new code) sort of proves my point.
The low level hardware code should be a library component that teams can download and then just add to the library folder of their own projects.
This would greatly simplify trying out upgrades. Just download the new libraries, add them to you lib folder, and try them out. If you don't like the result, just go back to the previous version of the library. Teams then could maintain their own code repositories that don't depend on the FTC-provided repository. Then there is no need ever to merge code in from other branches. Merging branches from different development trees is only easy after you have climbed a very steep learning curve, as Philbot and others pointed out.
This would also require a new way to add op modes through some kind of registration mechanism instead of editing classes from the core library.
There could still be a "reference implementation" project that shows how to set up Android Studio to use the libraries, but teams would not edit this project, just look at it or use the examples as starting points for their own code in their own project.
JonV
Comment