Skip to content

Developers Guide

Pedro Messetti edited this page May 15, 2026 · 1 revision

Create new Mercury release

  1. Add new section on debian/changelog containing:

    • Section title: new mercury version e.g. mercury (1.9.7-1) unstable; urgency=medium
    • New release version e.g. * Release 1.9.7 (first bullet point)
    • All PR titles from latest tag to current mercuryv2 branch
    • Skip one line and add -- Rafael Diniz <rafael@riseup.net> + today's date and current time

    Full example of the new section in debian/changelog:

    mercury (1.9.7-1) unstable; urgency=medium
    
      * Release 1.9.7.
      * Fix Windows ARQ socket reads (replace WSAPoll with select).
      * Add radio_serial_speed config for hamlib baud rate override.
      * Add MYCALL secondary callsigns support (up to 4).
      * Add VARA commands: ABORT, VERSION, IGNOREKISSDCD, LISTEN CQ.
    
     -- Rafael Diniz <rafael@riseup.net>  Tue, 15 Apr 2026 12:00:00 +0100
    
  2. Upgrade VERSION__ macro with the new version in main.c

     Diff example:
    
     ```
     - #define VERSION__ "1.9.6"
     + #define VERSION__ "1.9.7"
     ```
    
  3. Update mercury.1

     Diff example:
    
     ```
     - "Mercury 1.9.6"
     + "Mercury 1.9.7"
     ```
    

    Note: If new CLI arguments were added or instructions changes, also need to update this file.

  4. Push all changes from step 1, 2 and 3 in one single commit with title "Updates for release X.Y.Z"

    Note: In case we have new CLI arguments added/updated or significant changes e.g. installation changes, also need to update README.md

  5. Run make windows-zip in the root of mercury directory to generate the ZIP package for Windows

  6. Generate new release and tag via GitHub CLI:

    gh release create vX.Y.Z ./mercury-X.Y.Z-w64-GIT_HASH.zip --repo Rhizomatica/mercury --target mercuryv2 --generate-notes
    

Generate Debian packages

To be added

Clone this wiki locally