Copyright © 2017-2024 Uwe Vogt, UV Software, Berlin ([email protected]) All rights reserved.
- All changes are made exclusively on a feature branch!
- If necessary, update the CANlib SDK in
$(PROJROOT)\Sources\CANlib
from Kvaser's website and commit them with commit comment:
Update Kvaser's CANlib SDK (version
n.
nn)
-
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
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\Version.h
$(PROJROOT)\Sources\KvaserCAN.h
$(PROJROOT)\Sources\KvaserCAN.cpp
$(PROJROOT)\Sources\Wrapper\can_api.c
$(PROJROOT)\Libraries\CANAPI\uvcankvl.rc
$(PROJROOT)\Libraries\PeakCAN\KvaserCAN.rc
$(PROJROOT)\Utilities\can_moni\Driver.h
$(PROJROOT)\Utilities\can_test\Driver.h
- Check the working directory 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 Visual Studio 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.
- Run
x86_build.bat
andx64_build.bat
in the project root directory.
- There should be absolutely no compiler or linker error!
- If there are compiler or linker warnings then 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
- 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 batch files in the project root directory:
C:\Users\haumea>cd C:\Projects\CAN\Drivers\KvaserCAN
C:\Projects\CAN\Drivers\KvaserCAN>x86_build.bat
C:\Projects\CAN\Drivers\KvaserCAN>x86_install.bat
C:\Projects\CAN\Drivers\KvaserCAN>x64_build.bat
C:\Projects\CAN\Drivers\KvaserCAN>x64_install.bat
- Build the CAN API V3 GoogleTest program:
C:\Users\haumea>cd C:\Projects\CAN\Drivers\KvaserCAN\Tests
C:\Projects\CAN\Drivers\KvaserCAN\Tests>x86_build.bat
C:\Projects\CAN\Drivers\KvaserCAN\Tests>x64_build.bat
- Run the CAN API V3 GoogleTest program with two Kvaser CAN devices in CAN 2.0 mode:
C:\Projects\CAN\Drivers\KvaserCAN\Tests>Debug\kvl_testing --can_dut1="Kvaser CAN Channel 0" --can_dut2="Kvaser CAN Channel 1" --gtest_output=xml:TestReport_KvaserCAN.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 directory
$(PROJROOT)\Binaries
.
- Run the CAN API V3 GoogleTest program with two Kvaser CAN devices in CAN FD mode:
C:\Projects\CAN\Drivers\KvaserCAN\Tests>x64\Debug\kvl_testing --can_dut1="Kvaser CAN Channel 1" --can_dut2="Kvaser CAN Channel 2" --can_bitrate=DEFAULT --can_mode=CANFD+BRS --gtest_output=xml:TestReport_KvaserCAN_FD.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 directory
$(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.3
(cf. semantic versioning) - Target:
main
(default branch) - Release title: e.g.
Release of January 19, 2038
- 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!