Uploaded image for project: 'Puppet Agent'
  1. Puppet Agent
  2. PA-1504

Update NSSM versioning script to change version calculation

    XMLWordPrintable

    Details

    • Template:
    • Acceptance Criteria:
      Hide
      • New nssm.exe binaries should use the 3rd version number (z) in a git describe tag in x.y.z format
      • New nssm.exe binaries, when there is no 3rd version number in a tag, should use 0
      • New nssm.exe binaries will successfully replace older nssm.exe binaries when performing a puppet-agent MSI upgrade
      Show
      New nssm.exe binaries should use the 3rd version number (z) in a git describe tag in x.y.z format New nssm.exe binaries, when there is no 3rd version number in a tag, should use 0 New nssm.exe binaries will successfully replace older nssm.exe binaries when performing a puppet-agent MSI upgrade
    • Team:
      Windows
    • Method Found:
      Needs Assessment
    • Release Notes:
      Bug Fix
    • Release Notes Summary:
      Hide
      - Due to build changes for NSSM in puppet-agent 1.10.7, when upgrading from any prior version to 1.10.7, nssm.exe would be removed, causing the pxp-agent service to no longer be functional. This issue has been corrected so that nssm.exe will no longer be removed on an upgrade.
      Show
      - Due to build changes for NSSM in puppet-agent 1.10.7, when upgrading from any prior version to 1.10.7, nssm.exe would be removed, causing the pxp-agent service to no longer be functional. This issue has been corrected so that nssm.exe will no longer be removed on an upgrade.
    • QA Risk Assessment:
      Needs Assessment

      Description

      NSSM versions should always be positively incremented to prevent the MSI installer from removing nssm.exe on upgrade.

      More details about the reasoning are in PE-22261, but to summarize:

      Schedule the RemoveExistingProducts action before the costing actions in version 2 of the MSI (as described on Stack Overflow).

      • The NSSM binary is versioned with https://github.com/puppetlabs/nssm/blob/master/version.cmd. The 1.10.7 release "rolled back" the version to 2.24.0.0 because we tagged our copy of NSSM with a new tag 2.24.1 to keep track of something "versioned" within the puppet-agent repo. Unfortunately the version.cmd script doesn't take into account the third (patch / z) number. The previous build that we used was based on Major.Minor.CommitsPastTag.JenkinsBuild - in other words, exactly at the 2.24 tag BUT the 74th build in the original authors Jenkins system, hence 2.24.0.74. Using a Jenkins build number is a fragile way of calculating version, and I think that we will have to change the versioning system to Major.Minor.Patch.CommitsPastTag.

      To do this requires modifying the version.cmd script in NSSM to produce a version from Major.Minor.CommitsPastTag.JenkinsBuildNumber to Major.Minor.Patch.CommitsPastTag

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              ethan Ethan Brown
              Reporter:
              ethan Ethan Brown
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Zendesk Support