Copyright © 2020-2023 Uwe Vogt, UV Software, Berlin ([email protected])
All rights reserved.
- All changes are made exclusively on a feature branch!
- If necessary, update the MacCAN-Core sources in
$(PROJROOT)/Sources/MacCAN
from SVN repo and commit them with commit comment:
Update MacCAN-Core sources to rev.
nnn
-
list of major changes (optional)
- If necessary, update the CAN API V3 sources in
$(PROJROOT)/Sources/CANAPI
from the SVN repo and commit them with commit comment:
Update CAN API V3 sources to rev.
nnn
-
list of major changes (optional)
- If necessary, update the CAN API V3 testing sources in
$(PROJROOT)/Tests/CANAPI
from the SVN repo and commit them with commit comment:
Update CAN API V3 testing sources to rev.
nnn
-
list of major changes (optional)
- Check and update the version and date information in the following files:
$(PROJROOT)/Sources/TouCAN.h
$(PROJROOT)/Sources/TouCAN.cpp
$(PROJROOT)/Sources/Wrapper/can_api.c
$(PROJROOT)/Sources/Swift/CANAPI.swift
$(PROJROOT)/Libraries/CANAPI/Makefile
*$(PROJROOT)/Libraries/TouCAN/Makefile
*$(PROJROOT)/Utilities/can_moni/Driver.h
$(PROJROOT)/Utilities/can_moni/Makefile
$(PROJROOT)/Utilities/can_moni/README.md
$(PROJROOT)/Utilities/can_test/Driver.h
$(PROJROOT)/Utilities/can_test/Makefile
$(PROJROOT)/Utilities/can_test/README.md
*) Set variable CURRENT_VERSION
and COMPATIBILITY_VERSION
accordingly.
- Check the working folders for uncommitted changes.
- There should not be any uncommitted changes.
- If there are uncommitted changes then commit or undo them.
- Open the trial program with Xcode and run a code analysis.
- There should not be any serious finding.
- If there are findings then fix them or create an issue in the repo.
- Select the Xcode Testing target and run all test cases (two device are required):
- There should be no failed test case.
- If there are failed tests then fix the root cause or define a workaround.
- Open the SPM configuration with Xcode and check for errors:
- There should be absolutely no package manager error!
- If there are package manager warnings then think twice.
- Run the
Makefile
in the project root folder with optionBINARY=UNIVERSAL
.
- There should be absolutely no compiler or linker error!
- If there are compiler or linker warnings then really think twice.
- Try out the trial program with different options.
- There should be no crash, hangup, or any other error.
- If there is an error then fix it or create an issue in the repo.
- Try out the utilities with different options.
- There should be no crash, hangup, or any other error.
- If there is an error then fix it or create an issue in the repo.
- Build and try out the examples (fix them if necessary);
$(PROJROOT)/Examples/C++
$(PROJROOT)/Examples/Python
$(PROJROOT)/Examples/Swift
- Update the
README.md
(e.g. development environment, supported devices, etc.). - Push the feature branch to the remote repo.
- Create a pull request and name it somehow like 'Release Candidate n for ...'.
- Review the changes and merge the feature branch into the default branch.
- Pull or clone the default branch on all development systems.
- Double check all version numbers again (see above).
- Run the
Makefile
in the project root folder:
uv-pc013mac:~ eris$ cd $(PROJROOT)
uv-pc013mac:RusokuCAN eris$ make pristine
uv-pc013mac:RusokuCAN eris$ make BINARY=UNIVERSAL
uv-pc013mac:RusokuCAN eris$ make test
uv-pc013mac:RusokuCAN eris$ sudo make install
- Build the CAN API V3 GoogleTest program:
uv-pc013mac:~ eris$ cd $(PROJROOT)/Tests/CANAPI
uv-pc013mac:CANAPI eris$ make pristine
uv-pc013mac:CANAPI eris$ make all
- Run the CAN API V3 GoogleTest program with two TouCAN USB device:
uv-pc013mac:CANAPI eris$./tou_testing --can_dut1=TouCAN-USB1 --can_dut2=TouCAN-USB2 --gtest_output=xml:TestReport_TouCAN-USB.xml --run_all=YES --smoketest_frames=100000
[...]- If there is any error then stop here or create an issue for each error in the repo.
- Copy the test report into the binary's folder
$(PROJROOT)/Binaries
.
- Pack the artifacts into a .zip-archive, e.g.
artifacts.zip
:
$(PROJROOT)/Binaries/*.*
$(PROJROOT)/Includes/*.*
$(PROJROOT)/README.md
$(PROJROOT)/LICENSE
- Double check and update the
README.md
on GitHub (or insert just a blank).
- Click on
Draft a new release
in the GitHub repo. - Fill out all required fields:
- Tag version: e.g
v0.2.6
(cf. semantic versioning) - Target:
main
(default branch) - Release title: e.g.
Release of November 12, 2023
- Change-log: list all major changes, e.g. from commit comments
- Assets: drag and drop the artifacts archive (see above)
- Click on
Publish release
. - That´s all folks!