Ahoy !
This is the current dependency references in ProgramAB service
meta.addDependency("program-ab", "program-ab-data", "1.1", "zip");
meta.addDependency("program-ab", "program-ab-kw", "0.0.8.4");
@kwatters you said the initial service is supposed to support only english and Japanese
This is the file structure of "program-ab", "program-ab-data", "1.1", "zip"
Problems :
- it unzips into the mrl directory and not under {mrl}/resource
- if its suppose to only be "alice" - it looks like alot more stuff - so what should a ProgramAB service install ?
This is the file structure of InMoov2
Problems :
- its under InMoov2 vs being under resource/ProgramAB (which will do a merge on install)
- the bots are under a subdirectory chatbots, while if its merged with /resource/ProgramAB the bots should be under /resource/ProgramAB/bots
- There is confusion between languages vs languages+locale ... these probably should have been just languages as the en-US part isn't distinguishable in the data .. but if we are going to continue with {language}-{Locale} then {language} should be removed (I think these directories might just be created for saving config)
- These InMoov bots collide with ProgramAB , yet there content is not the same :( .. There is considerable differences between the aiml here which was forked from InMoov and the aiml in the ProgramAB directories ... if they are supposed to be different then their names should not be the same
My Plan :
Unless advised differently I'm going to:
- make the InMoov2 package install/merge into ProgramAB all its bots under the /resource/ProgramAB/bots directory. (removing the chatbot subdirectory)
- find the offending code that writes config to the {lang} directory
- delete ProgramAB bots except english if thats alice, then rename it to alice and the jp-JP one under advisement from kwatters (but this needs to be renamed too - no collisions with InMoov2 bots)
- do a pr so ProgramAB installs into the correct /resource/ProgramAB directory
- make a ProgramAB JenkinsFile pipeline job for ProgramAB and ProgramAB data - that will get dumped in the repo .. as this is another modular service.
After this is done, InMoov2 specific stuff will be in /resource/InMoov2, its ProgramAB, JMonkeyEngine, and WebGui assets will all be bundled and auto-magically merge on install (with no collisions)
quick response
ok.. so.. you're missing a few dependencies.
ok.. so.. you're missing a
ok.. so.. you're missing a few dependencies.
I absolutely agree that nothing should be "overwritten" - and that's why I started this post, because I saw that InMoov2 and ProgramAB would be in conflict (actually they would miss .. but that is due to more inconsistencies :P).
e.g.
zip path inside ProgramAB would be
/resource/ProgramAB/bots/Alice2
zip path inside InMoov2 would be
/resource/ProgramAB/bots/en-US
/resource/ProgramAB/bots/fr-FR
/resource/InMoov2/gestures
...
/resource/WebGui/app/views/InMoov2Gui.html
/resource/JMonkeyEngine/assets
this is how it works now (at least up to the point of ProgramAB and InMoov2 conflict mess)
It may not be clear during runtime where all the resources came from, but at least its clear in the build and packaging where stuff is.
once this was done, zip path inside InMoov2 would change to be
/resource/InMoov2/ProgramAB/bots/en-US
/resource/InMoov2/ProgramAB/bots/fr-FR
/resource/InMoov2/gestures
...
/resource/InMoov2/WebGui/app/views/InMoov2Gui.html
/resource/InMoov2/JMonkeyEngine/assets
I thought about these details for a while, and I think its possible to go directly to step 3... but I have Servos to take care of now