Conversation
…; also removed hard-coded firmware version macros in the Desktop Interface and the firmware
|
Copying from a previous draft of this PR: Posted by @mi-hol
|
|
@brentfpage I triggered re-run of all workflows after merging #404 but they still fail |
|
|
As an aside, the firmware that's currently configured to be packaged is that from the most recent "continuous release" in my fork. This practice will be necessary unless/until this PR is fully merged into the genuine repo and a continuous release is run that generates firmware files. |
Well I re-ran and it still failed :(
Please add these changes, test, change status to "ready for review" and we'll review again after that has happened. |
|
Unfortunately I had missed this key point: The PR is still a draft (only one workflow has been implemented), so I'll hold off on indicating that it's "Ready for review". |
|
Now, AVR_VER is defined using avr_ver_def.yml and has been removed as a repo-wide variable. This approach seems preferable as avr_ver_def.yml can be more easily found than the Github variables tab and can also be more easily edited without an internet browser. |
@brentfpage I fully share your conclusion. |
|
Just to add some hairiness, the Windows installer currently needs to be manually updated whenever we bump the firmware version. This is one of the reasons we were sticking with pre-built binaries for everything. I think it makes sense to have a job for automatically building the firmware, but unless we find a clean solution to the Windows Installer problem I don't think we want to be auto-pulling new builds in. |
|
@EspoTek Is it possibly the case that the manually updated installer is downloaded in windows.yml with this line? If so, could you please elaborate on what steps are necessary for generating that |
That like there is installed a (proprietary) program called "Advanced Installer", that's converts the .aip (Advanced Installer Project) file to the .msi package. If we ever increment the firmware version, we'll need to either manually add them to the Advanced Installer project or possibly take advantage of some Advanced Installer feature that automatically adds them for us? |
Updated
Reasoning is:
The open questions in this regard are for me:
Does my reasoning make sense? |
To reduce dependency on the specific server http://espotek.com via insecure http protocol I'm in favour of converting this piece of code to a GH action from marketplace. I'd be happy to own that task. |
(Following up on some of the discussion in #381.)
This PR:
The versioning is centralized, but not automatic. Namely, the current version of the firmware has to be set in
a repository-wide variable, AVR_VER, under (repo home)->settings->secrets+variables->actions->variables->(repository variables)avr_ver_def.yml. In the fork, AVR_VER=0x0007. At compile time, this variable gets injected:It would be nicer to have AVR_VER defined in some location like continuous.yml instead, but it needs to be available to mac.yml when that workflow is called individually. I don't know of any other place to define AVR_VER where it would be available to both workflows.Also, the inclusion of the version number in the .hex file names has been retained, so they are, e.g., labrafirm_0007_0{1 or 2}.hex. To me, this is worthwhile because then the firmware that's packaged into a given release can be very easily determined.
If we decide to go forward with this approach, extending it to encompass the android, linux, and windows builds I think would be straightforward. Also, a prerequisite for merging would be #404 .
Strikethrough and replacement edits made 2/15/2026