Copyright © 2005-2010, 2012-2024 Uwe Vogt, UV Software, Berlin ([email protected])
All rights reserved.
- All changes are made exclusively on a feature branch!
- If necessary, update the PCBUSB header file in
$(PROJROOT)/Sources/PCANBasic/macOS
from MacCAN´s website and commit it with commit comment:
Update PCBUSB header file (version
n.
n.
n)
-
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)/Libraries/CANAPI/Makefile
*$(PROJROOT)/Libraries/PeakCAN/Makefile
*$(PROJROOT)/Utilities/can_moni/README.md
$(PROJROOT)/Utilities/can_test/README.md
*) Set variable CURRENT_VERSION
and COMPATIBILITY_VERSION
accordingly.
- 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 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:
- There should be no failed test case.
- If there are failed tests then fix the root cause or define a workaround.
- Run the
Makefile
in the project root directory with optionBINARY=UNIVERSAL
.
- 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.
Don't forget the Linux system!
- Double check all version numbers again (see above).
- Run the
Makefile
in the project root directory:
uv-pc013mac:~ eris$ cd $(PROJROOT)
uv-pc013mac:PCBUSB eris$ make pristine
uv-pc013mac:PCBUSB eris$ make all BINARY=UNIVERSAL
uv-pc013mac:PCBUSB eris$ sudo make install
- Build the CAN API V3 GoogleTest program:
uv-pc013mac:~ eris$ cd $(PROJROOT)/Tests/CANAPI
uv-pc013mac:CANAPI eris$ make clean
uv-pc013mac:CANAPI eris$ make all
- Run the CAN API V3 GoogleTest program with two PCAN-USB devices in CAN 2.0 mode:
uv-pc013mac:CANAPI eris$./pcb_testing --can_dut1=PCAN-USB1 --can_dut2=PCAN-USB2 --gtest_output=xml:TestReport_PCAN-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 directory
$(PROJROOT)/Binaries
.
- Run the CAN API V3 GoogleTest program with two PCAN-USB FD devices in CAN FD mode:
uv-pc013mac:CANAPI eris$./pcb_testing --can_dut1=PCAN-USB3 --can_dut2=PCAN-USB4 --can_mode=FDF+BRS --can_bitrate=DEFAULT --gtest_output=xml:TestReport_PCAN-USB_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.2.9
(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!