Copyright © 2005-2010, 2012-2025 Uwe Vogt, UV Software, Berlin (info@mac-can.com)
All rights reserved.
- All changes are made exclusively on a feature branch!
- If necessary, update the PCBUSB header file in
$(PROJROOT)/Sources/PCANBasic/macOSfrom MacCAN´s website and commit it with commit comment:
Update PCBUSB header file (versionn.n.n)
-list of major changes (optional)
- If necessary, update the CAN API V3 sources in
$(PROJROOT)\Sources\CANAPIfrom 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 RocketCAN sources in
$(PROJROOT)\Sources\CANIPCfrom the SVN repo and commit them with commit comment:
Update CAN-over-Ethernet sources to rev.nnn
-list of major changes (optional)
- If necessary, update the CAN API V3 testing sources in
$(PROJROOT)\Testsfrom 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_port/README.md$(PROJROOT)/Utilities/can_send/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
Makefilein 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/IPC$(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
Makefilein the project root directory:
uv-pc013mac:~ eris$ cd $(PROJROOT)uv-pc013mac:PCBUSB eris$ make pristineuv-pc013mac:PCBUSB eris$ make all BINARY=UNIVERSALuv-pc013mac:PCBUSB eris$ sudo make install
- Build the CAN API V3 GoogleTest program:
uv-pc013mac:~ eris$ cd $(PROJROOT)/Tests/CANAPIuv-pc013mac:CANAPI eris$ make cleanuv-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 --gateway=60000[...]- 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 --gateway=60000[...]- 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.mdon GitHub (or insert just a blank).
- Click on
Draft a new releasein the GitHub repo. - Fill out all required fields:
- Tag version: e.g
v0.4(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!