Skip to content

Releasing a new version of Poor Man's T SQL Formatter

Tao Klerks edited this page Jan 15, 2019 · 12 revisions

As this project takes on more and more exposure mechanisms (npm library, npm cli, Atom plugin, and likely others in addition to the 5 or so prior existing exposures), getting a release "out" becomes more and more complicated, and it becomes more and more likely that we'll mess it up somehow - so this is an attempt to document a reasonably-complete checklist.

  1. Ensure that the version numbers are updated on all the C# projects in the PoorMansTSqlFormatter.git project/repo
    • There is now a single powershell script for doing this, in the root: VersionBump.ps1
  2. Ensure that any new language content (eg a new option) is correctly translated in all contexts (Demo app, c# cmdline formatter, plugins)
    • Including avoiding the accidental intruduction of unnecessary/harmful per-language properties in form-specific resx files by Visual Studio
  3. Ensure that everything tests correctly
  4. Ensure the JS is built and checked in (after version number update) in that main project, and that the commit is merged to the master branch and pushed to GitHub
  5. Produce and publish online (somewhere - not yet clear where) all the "artifacts" from that project:
    • NPP 32-bit plugin
    • NPP 64-bit plugin
    • .Net Command-Line formatter
    • Winforms Demo app
    • SSMS/VS Add-In Setup Program
    • SSMS/VS VSIX Package
    • SSMS Package Installer
    • .Net 2.0 Library
    • .Net 3.5 Library
    • .Net Standard 1.0 Library
  6. Publish the SSMS/VS VSIX Package to the Visual Studio Marketplace
  7. "Build" the new library into the NPM Package, run tests, update the NPM package version, commit&push, and publish the NPM package
  8. "NPM update" the NPM library into the NPM CLI tool project, run tests, update the NPM package version, commit&push, and publish the NPM package
  9. "NPM update" the NPM library into the Atom Editor plugin project, run tests, update the plugin package version, commit&push, and publish the Atom plugin ("apm publish patch/minor/major")
  10. "NPM update" the NPM library into the VSCode extension project, run tests, update the extension package version, commit&push, and publish the VSCode extension
  11. "NPM Update" the poorsql.com site project, update the version in the site code, re-build the AppCache manifest, run manual testing, commit&push. (not yet applicable)
  12. Ensure that the NPP plugins are published to the NPP Plugin Admin List
  13. Update the project page with change announcement
  14. Announce changes on Twitter

Future:

  • Clean up some clearly-redundant steps around version updates (make them dynamic / inherited)
    • EG Artifact Zipping and filename-version-numbering
  • Find a better place to host the download files (for manual download, and for NPP plugin manager download, and for JS Lib) than private site
  • Add CI tools where possible to reduce the need for manual spot-checking
  • Add any future exposures (Atom editor, VS Code, etc)
Clone this wiki locally