Skip to content

Latest commit

 

History

History
118 lines (99 loc) · 5.55 KB

Deployment.md

File metadata and controls

118 lines (99 loc) · 5.55 KB

macOS® Wrapper Library for PCAN-USB Interfaces from PEAK-System

Copyright © 2005-2010, 2012-2024 Uwe Vogt, UV Software, Berlin ([email protected])
All rights reserved.

Deployment

Create the Release Candidate

Precondition

  • All changes are made exclusively on a feature branch!

Preparation

  1. 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)
  1. 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)
  1. 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)
  1. 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.

Procedure

  1. Check the working directory for uncommitted changes.
  • There should not be any uncommitted changes.
  • If there are uncommitted changes then commit or undo them.
  1. 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.
  1. 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.
  1. Run the Makefile in the project root directory with option BINARY=UNIVERSAL.
  • There should be absolutely no compiler or linker error!
  • If there are compiler or linker warnings then think twice.
  1. 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.
  1. 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.
  1. Build and try out the examples (fix them if necessary);
  • $(PROJROOT)/Examples/C++
  • $(PROJROOT)/Examples/Python

Pull Request

  1. Update the README.md (e.g. development environment, supported devices, etc.).
  2. Push the feature branch to the remote repo.
  3. Create a pull request and name it somehow like 'Release Candidate n for ...'.
  4. Review the changes and merge the feature branch into the default branch.

Create the Release Tag

Preparation

  1. Pull or clone the default branch on all development systems.

    Don't forget the Linux system!

  2. Double check all version numbers again (see above).
  3. 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
  1. 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
  1. 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.
  1. 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.
  1. Pack the artifacts into a .zip-archive, e.g. artifacts.zip:
  • $(PROJROOT)/Binaries/*.*
  • $(PROJROOT)/Includes/*.*
  • $(PROJROOT)/README.md
  • $(PROJROOT)/LICENSE.*
  1. Double check and update the README.md on GitHub (or insert just a blank).

Procedure

  1. Click on Draft a new release in the GitHub repo.
  2. 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)
  1. Click on Publish release.
  2. That´s all folks!

Announce the new Release

  1. Create a new post with the change-log in the mac-can.github.io repo.
  2. Update the PCBUSB-Wrapper page in the mac-can.github.io repo.
  3. Post the new release on Twitter, Facebook, etc.