Release Engineering Checklist

Do the following to create a new release, in 8-10 hours duration.

Sources

Update copyrights
Update versions
Update dates
Strip frame, tabs, and save dscomm-tmpl.kicad_pcb
Update dscomm-frame.kicad_pcb for integration
Delete logic from dscomm-panel.kicad_pcb
Append logic from dscomm-tmpl.kicad_pcb
Rework copper pours, planes, and tabs
Append dscomm-panel.kicad_pcb to dscomm-stencil.kicad_pcb
Remove paste definitions selectively (from mount holes)

Hard Copy

Plot schematic to dscomm-sch.pdf
Plot layout to fabsingle files
Use gs(1) to combine files [1]
Review dscomm-brd.pdf for pdfmarks
Update the bill of materials FODS
Use librewriter(1) for dscomm-bill.pdf
Online PDF compression is not helpful

[1] gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dAutoRotatePages=/None -sOutputFile=dscomm-brd.pdf dscomm-F_Cu.pdf dscomm-F_Fab.pdf dscomm-F_Mask.pdf dscomm-F_Paste.pdf dscomm-F_SilkS.pdf dscomm-In1_Cu.pdf dscomm-In2_Cu.pdf dscomm-B_Cu.pdf dscomm-B_Fab.pdf dscomm-B_Mask.pdf dscomm-B_Paste.pdf dscomm-B_SilkS.pdf dscomm-Cmts_User.pdf dscomm-Dwgs_User.pdf dscomm-Edge_Cuts.pdf dscomm-pdfmarks

EEPROM

Review programdat.txt for up to date accuracy
Update 'product_ver 0x0002' to reflect 'REL_2'
Use EEPROM tools to generate a new database [2]

[2] dtc -I dts -O dtb -o programrst.dtb programrst.dts
[2] eepmake programdat.txt programdat.eep programrst.dts

Firmware

Review firmware changes
Build solution binaries
Collect with program*.eep/dtb
Package to DSCommFW-X.X.X.tar.xz
DSCommFW-X.X.X/Debug/SendcommCmdsys-dbg.bin
DSCommFW-X.X.X/Debug/SendcommPeer2P-dbg.bin
DSCommFW-X.X.X/Debug/SendcommLWOTAA-dbg.bin
DSCommFW-X.X.X/Debug/SendcommHellow-dbg.bin
DSCommFW-X.X.X/Release/SendcommPeer2P-rel.bin
DSCommFW-X.X.X/Release/SendcommCmdsys-rel.bin
DSCommFW-X.X.X/Release/SendcommHellow-rel.bin
DSCommFW-X.X.X/Release/SendcommLWOTAA-rel.bin

Manufacturing

Review the bill of materials for up to date accuracy
Generate Excellon drills and Gerber layers for the panel *
Generate Excellon drills and Gerber layers for the foil
Set placement origin of layout to reflect 0,0 on corner
Generate CSV placements for raw, import, and machine use
Edit CSV placements to prepare for machine importing
  Add a machine import header
  Replace all 'top' with 'T'
  Replace all commas with periods
  Replace '270' with '-90' degrees
  Replace all trailing '00' strings
  Remove THT and most virtual parts
  Round up and down four figure locations
  sed(1) ' \([0-9][^\.][^\.\ ]*\.[0-9][0-9]\)00/ \1'
  Review completeness replacements /\.[0-9][0-9][0-9]
  Replace 'X_0805_2012Metric' with '0805'
  Abbreviate as many columns as possible
  Move fiducial marks to the bottom
  Rearrange order of designators
  Choose appropriate starting chip
  Multiply axis positions three times **
  Reorder columns according to machine **
  Replace space characters with one comma **
  ** sed(1) '^\([^\ ][^\ ]*\)\ \ *\([^\ ][^\ ]*\)\ \ *\([^\ ][^\ ]*\)\ \ *\([^\ ][^\ ]*\)\ \ *\([^\ ][^\ ]*\)\ \ *\([^\ ][^\ ]*\)\ \ *\([^\ ][^\ ]*\)$/\1,\3,\4,\5,\4,\5,\4,\5,\7,\6,\2'
Compress * manufacturing archives to DSCommFab-X.X.X.tar.xz
Compress foil stencil variant to DSCommStenc-X.X.X.tar.xz

Last step verifications

Before commiting tags and release, upload to board fabricator.
Await clearance pending data preparation before continuing.

Git Repository

Edit the project change log 'CHANGELOG'
Create and push the annotated tag [3][4]
Click to release /dsendcomm/releases/new/
Edit title /dsendcomm/releases/edit/REL_X/
Edit 'Description and 'Assets' subtitles
Edit 'Tickets' completed since last release

[3] git tag -a REL_X <1234abc> -m 'Release to manufacturing before the new year holidays.'
[4] git push origin REL_X
