<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Use Cases on rmqa.com</title>
    <link>https://rmqa.com/tags/use-cases/</link>
    <description>Recent content in Use Cases on rmqa.com</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 25 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://rmqa.com/tags/use-cases/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>A Real Release Checked With rmqa, ukue 0.1.0 From GitHub</title>
      <link>https://rmqa.com/a-real-release-checked-with-rmqa-ukue-0.1.0-from-github/</link>
      <pubDate>Sun, 25 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://rmqa.com/a-real-release-checked-with-rmqa-ukue-0.1.0-from-github/</guid>
      <description>&lt;p&gt;The other use cases on this site use a made-up tool so the mistakes can be planted on purpose. This one is a real release: &lt;a href=&#34;https://ukue.com/&#34;&gt;ukue&lt;/a&gt;, a job queue that lives in one SQLite file, published on GitHub as five archives and a checksums file. Like rmqa, it&amp;rsquo;s a &lt;a href=&#34;https://softdevstudio.com/&#34;&gt;SoftDevStudio.com&lt;/a&gt; project, and its releases are built by a workflow nobody watches.&lt;/p&gt;&#xA;&lt;h2 id=&#34;writing-the-manifest&#34;&gt;Writing the Manifest&lt;/h2&gt;&#xA;&lt;p&gt;The files came straight from the release&amp;rsquo;s download links. Then:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Checking a Draft GitHub Release Before Anyone Can Download It</title>
      <link>https://rmqa.com/checking-a-draft-github-release-before-anyone-can-download-it/</link>
      <pubDate>Sun, 25 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://rmqa.com/checking-a-draft-github-release-before-anyone-can-download-it/</guid>
      <description>&lt;p&gt;Many projects don&amp;rsquo;t publish releases straight from CI. A tool such as GoReleaser builds everything and uploads it to a draft release on GitHub. A maintainer looks the draft over, edits the notes, and presses publish. Until then, nobody else can see it.&lt;/p&gt;&#xA;&lt;p&gt;That review step is a good idea with one weakness: a person looking at a list of six file names can&amp;rsquo;t tell what&amp;rsquo;s inside them. The draft is the last moment a mistake is free to fix, and it&amp;rsquo;s exactly where an automatic check belongs.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Checking Rust Style Release Targets and a Missing Intel Mac Build With rmqa</title>
      <link>https://rmqa.com/checking-rust-style-release-targets-and-a-missing-intel-mac-build-with-rmqa/</link>
      <pubDate>Sun, 25 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://rmqa.com/checking-rust-style-release-targets-and-a-missing-intel-mac-build-with-rmqa/</guid>
      <description>&lt;p&gt;Rust projects usually name their release files after target triples: &lt;code&gt;x86_64-unknown-linux-gnu&lt;/code&gt;, &lt;code&gt;aarch64-apple-darwin&lt;/code&gt;, &lt;code&gt;x86_64-pc-windows-msvc&lt;/code&gt;. Each archive also wraps its contents in a folder with the same name, so unpacking &lt;code&gt;tidy-2.3.0-aarch64-apple-darwin.tar.gz&lt;/code&gt; gives a folder &lt;code&gt;tidy-2.3.0-aarch64-apple-darwin/&lt;/code&gt; with the program inside. Many projects ship two license files, MIT and Apache.&lt;/p&gt;&#xA;&lt;p&gt;None of that fits a simple &lt;code&gt;{os}_{arch}&lt;/code&gt; pattern, and rmqa doesn&amp;rsquo;t need it to. Any string you add to a &lt;code&gt;[[platform]]&lt;/code&gt; becomes a template variable.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Keeping a Machine-Readable Record of What Every Release Shipped</title>
      <link>https://rmqa.com/keeping-a-machine-readable-record-of-what-every-release-shipped/</link>
      <pubDate>Sun, 25 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://rmqa.com/keeping-a-machine-readable-record-of-what-every-release-shipped/</guid>
      <description>&lt;p&gt;Sooner or later someone asks what exactly was in a release. A customer whose security team wants to know which build of a program they&amp;rsquo;re running. An auditor working through a supply-chain questionnaire. A colleague trying to work out, a year later, whether the Windows download of version 2.3.0 had the fix in it.&lt;/p&gt;&#xA;&lt;p&gt;The release page answers part of that: file names and sizes. It doesn&amp;rsquo;t say what was inside the archives, which platform each program was built for, or whether anyone checked. rmqa&amp;rsquo;s JSON report does, and it costs nothing to keep.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Keeping Env Files and Private Keys Out of Release Archives</title>
      <link>https://rmqa.com/keeping-env-files-and-private-keys-out-of-release-archives/</link>
      <pubDate>Sun, 25 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://rmqa.com/keeping-env-files-and-private-keys-out-of-release-archives/</guid>
      <description>&lt;p&gt;Packing scripts are often written as &amp;ldquo;take this folder and archive it&amp;rdquo;. That&amp;rsquo;s fine until the folder holds more than it should. A developer runs the release script locally once, with a &lt;code&gt;.env&lt;/code&gt; file sitting in the build folder because the integration tests needed it. A signing step drops its key file next to the program it just signed. A Mac adds &lt;code&gt;.DS_Store&lt;/code&gt; files to every folder it opens.&lt;/p&gt;&#xA;&lt;p&gt;Once a release is public, a secret inside it is public too, and deleting the release doesn&amp;rsquo;t take it back: mirrors, caches and package managers may already have copies. The only safe time to catch it is before publishing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Permission Denied After Unzip and How rmqa Spots Lost Executable Bits</title>
      <link>https://rmqa.com/permission-denied-after-unzip-and-how-rmqa-spots-lost-executable-bits/</link>
      <pubDate>Sun, 25 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://rmqa.com/permission-denied-after-unzip-and-how-rmqa-spots-lost-executable-bits/</guid>
      <description>&lt;p&gt;On Linux and macOS, a program runs only if its file is marked executable. The mark travels with the file in a tar archive, as part of each entry&amp;rsquo;s Unix permissions. Lose it, and every user who downloads the release gets the same first experience:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ ./tidy&#xA;bash: ./tidy: Permission denied&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then a support question, or a quiet uninstall.&lt;/p&gt;&#xA;&lt;h2 id=&#34;two-ways-it-gets-lost&#34;&gt;Two Ways It Gets Lost&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Packing with the wrong mode.&lt;/strong&gt; A script copies the program with a tool or a step that doesn&amp;rsquo;t keep permissions, or builds the tar archive with fixed file modes, and the program goes in as &lt;code&gt;-rw-r--r--&lt;/code&gt;. The archive looks normal, the program is fine, it just won&amp;rsquo;t start.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wrong Build in the arm64 Archive Caught Before a Go CLI Release Went Out</title>
      <link>https://rmqa.com/wrong-build-in-the-arm64-archive-caught-before-a-go-cli-release-went-out/</link>
      <pubDate>Sun, 25 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://rmqa.com/wrong-build-in-the-arm64-archive-caught-before-a-go-cli-release-went-out/</guid>
      <description>&lt;p&gt;Say a small team maintains a command-line tool in Go called &lt;code&gt;tidy&lt;/code&gt;. Each release ships five archives, for Linux on Intel and ARM, macOS on Apple silicon and Intel, and Windows, plus a &lt;code&gt;SHA256SUMS&lt;/code&gt; file. A release workflow builds them in a matrix of jobs and a final job uploads everything.&lt;/p&gt;&#xA;&lt;p&gt;One day a refactor of the workflow moves the build output into a shared folder. The Linux ARM job now packs whatever &lt;code&gt;tidy&lt;/code&gt; binary is in that folder, and on the runner where it lands, that&amp;rsquo;s the Intel build. Meanwhile the Intel Mac job hits a cache from the previous release and doesn&amp;rsquo;t rebuild. Every job is green. The archives have the right names and plausible sizes.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
