beta and release version

how do you manage the UUID between your beta and release version ?

for now, I modify some files manually (mostly manifest.xml), but it's a bit error prone ....

also sometime, I miss updating a version number or the like.

did you have some well-known process to do that ?

  • Well,share my plan.

    I just use different manifest.xml and monkey.jungle with a makefile.

    packagec:
    	@$(JAVA_HOME)/bin/java \
    	-Dfile.encoding=UTF-8 \
      	-Dapple.awt.UIElement=true \
    	-jar "$(SDK_HOME)/bin/monkeybrains.jar" \
      	-o bin/$(appName).iq \
    	-e \
    	-w \
    	-y $(PRIVATE_KEY) \
    	-r \
    	-f monkey.jungle
    packagei:
    	@$(JAVA_HOME)/bin/java \
    	-Dfile.encoding=UTF-8 \
      	-Dapple.awt.UIElement=true \
    	-jar "$(SDK_HOME)/bin/monkeybrains.jar" \
      	-o International/$(appName)-en.iq \
    	-e \
    	-w \
    	-y $(PRIVATE_KEY) \
    	-r \
    	-f monkey-en.jungle
    packageb:
    	@$(JAVA_HOME)/bin/java \
    	-Dfile.encoding=UTF-8 \
      	-Dapple.awt.UIElement=true \
    	-jar "$(SDK_HOME)/bin/monkeybrains.jar" \
      	-o bin/$(appName)-beta.iq \
    	-e \
    	-w \
    	-y $(PRIVATE_KEY) \
    	-r \
    	-f monkey-beta.jungle
    

    When I need to export my projects, I just run the command make packagei for an international version ,make packagec for a Chinese version(Why don't I use localization? The memory is not sufficient and the functions between the international and Chinese version isn't in parity) and make packageb for a beta app.

    Then how to debug?

    Generally , these 3 versions share the most code but there is a little different in contents that exposing to the terminal users.

    While debuging , you can switch jungle file in extension settings. Maybe somewhat annoying , but each knife has two edges, doesn't it?

  • > also sometime, I miss updating a version number or the like.

    I use git tag to tag versions for applications.

    Assume a project which has no (git) tag yet. This gets to be version 0.0.1. once I tag a version the next commit I bump the version number to 0.0.2. This way your development version is ALWAYS one more than what users are currently using.

    If you make a beta version, you could opt to use some logic, eg even numbers are non-beta releases, odd numbers are beta-releases, you just need to figure out what your preference is. I don't know if Garmin support x.y.z.a like version strings.

  • What I do is simple.  In the manifest.xml I have comments with the AppID for production and the AppId for the Beta.  If I want to build a beta version, I copy/paste that AppId, and same if I want to build a public version.

    Most of the apps I have marked as beta today won't show up in the production store, as they are more what I'd call "private apps" that I want in the store so fit contrib and app settings work, but aren't for the general public. Like the widget I use to control my garage door.

    Or are you talking a public beta version of your app, and not a beta app in the sense of an app store?

  • No.

    are you talking a public beta version of your app, and not a beta app in the sense of an app store?

    I have there versions.

    One is really for test purpose,won't show up in the production store.

    The two versions below are in the production store.

    One is for Chinese users with Chinese BMfont included. 

    One is for the English users without Chinese Bmfont to save memory.

    I often forget to modify the beta uuid when make a formal release, so I prefer using a makefile to manage different versions' releases.

  • If the source is the same between the english and chinese versions, you should be able to just use resource overrides for the font.  The size of the prg will grow, but the runtime memory shouldnt, except for the font used.

  • great tips ! was not thinking of this "old" way of using makefile ! does it integrate with vscode or is it CLI only ?

  • overrides for the font. 

    Well, font is a part of the problem. The key problem is I cannot properly localize app settings titles cuz of garmin ciq Bug. Chinese and international version use different languages in settings as well.