<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Contributing on Restish</title><link>https://rest.sh/docs/contributing/</link><description>Recent content in Contributing on Restish</description><generator>Hugo</generator><language>en-US</language><atom:link href="https://rest.sh/docs/contributing/index.xml" rel="self" type="application/rss+xml"/><item><title>Development Setup</title><link>https://rest.sh/docs/contributing/development-setup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rest.sh/docs/contributing/development-setup/</guid><description>&lt;p&gt;Use this page when changing code, plugins, or docs in the Restish repository.&lt;/p&gt;
&lt;h2 id="build-the-cli"&gt;Build The CLI&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go build ./cmd/restish
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="build-plugin-binaries"&gt;Build Plugin Binaries&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go build ./cmd/restish-bulk
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go build ./cmd/restish-csv
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go build ./cmd/restish-mcp
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go build ./cmd/restish-pkcs11
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="run-tests"&gt;Run Tests&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go &lt;span class="nb"&gt;test&lt;/span&gt; ./...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go &lt;span class="nb"&gt;test&lt;/span&gt; ./internal/cli/...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run the integration-tag suite before commits that touch CLI or plugin behavior:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go &lt;span class="nb"&gt;test&lt;/span&gt; -tags&lt;span class="o"&gt;=&lt;/span&gt;integration ./...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Use a temporary &lt;code&gt;GOCACHE&lt;/code&gt; when your environment needs an isolated cache:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;GOCACHE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/tmp/restish-gocache go &lt;span class="nb"&gt;test&lt;/span&gt; ./...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="update-golden-files"&gt;Update Golden Files&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go &lt;span class="nb"&gt;test&lt;/span&gt; -update ./internal/output/...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="build-the-docs-site"&gt;Build The Docs Site&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go run ./cmd/restish-docgen --check
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo --source site --quiet
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;scripts/check-doc-links.rb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When command help, global flags, plugin protocol structs, or built-in command
plugins change, refresh the checked-in generated regions first:&lt;/p&gt;</description></item><item><title>Design Records</title><link>https://rest.sh/docs/contributing/design-records/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rest.sh/docs/contributing/design-records/</guid><description>&lt;p&gt;Design records live in &lt;code&gt;docs/design/&lt;/code&gt;. They explain why Restish is shaped the
way it is: runtime boundaries, config, auth, TLS, OpenAPI command generation,
request execution, response normalization, plugins, security, and migration.&lt;/p&gt;
&lt;h2 id="when-to-read-them"&gt;When To Read Them&lt;/h2&gt;
&lt;p&gt;Read design records when you are changing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;persistent config or profile behavior&lt;/li&gt;
&lt;li&gt;auth, token storage, external tools, or OAuth flows&lt;/li&gt;
&lt;li&gt;TLS, mTLS, or signer plugins&lt;/li&gt;
&lt;li&gt;OpenAPI discovery or generated commands&lt;/li&gt;
&lt;li&gt;request execution order&lt;/li&gt;
&lt;li&gt;pagination, streaming, filtering, or output contracts&lt;/li&gt;
&lt;li&gt;plugin protocol or trust boundaries&lt;/li&gt;
&lt;li&gt;v1 compatibility and migration behavior&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="user-docs-trigger"&gt;User Docs Trigger&lt;/h2&gt;
&lt;p&gt;If a design record changes user-visible behavior, update the user docs in the
same work. Design records preserve intent; they do not replace guides,
recipes, or reference pages.&lt;/p&gt;</description></item><item><title>Docs Maintenance</title><link>https://rest.sh/docs/contributing/docs-maintenance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rest.sh/docs/contributing/docs-maintenance/</guid><description>&lt;p&gt;Use this page when you are changing user-facing behavior and need to make the
docs stay honest.&lt;/p&gt;
&lt;p&gt;This page is a maintenance workflow, not the source of truth for product
behavior. Current behavior comes from the CLI, tests, design records, and live
example API. When they disagree, update the docs and capture any remaining
follow-up in the project issue tracker or an active design record.&lt;/p&gt;
&lt;h2 id="before-you-edit"&gt;Before You Edit&lt;/h2&gt;
&lt;p&gt;Check the nearby docs before changing one page in isolation:&lt;/p&gt;</description></item><item><title>Release Packaging</title><link>https://rest.sh/docs/contributing/release-packaging/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rest.sh/docs/contributing/release-packaging/</guid><description>&lt;p&gt;Use this page when preparing a Restish v2 release. It keeps the release
artifacts, package-manager metadata, plugin binaries, and docs in the same
checklist.&lt;/p&gt;
&lt;p&gt;The public install guide assumes the v2 release artifacts are available:
Homebrew first for macOS users, then source, mise, GitHub archives, and OCI
image options. Before publishing docs, verify each public artifact below rather
than adding temporary caveats to the user-facing install path.&lt;/p&gt;
&lt;h2 id="version-and-changelog"&gt;Version And Changelog&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Update the build version used by release builds.&lt;/li&gt;
&lt;li&gt;Update the changelog with user-visible features, breaking changes, migration
notes, and plugin protocol changes.&lt;/li&gt;
&lt;li&gt;Check the upgrade guide when a v1 behavior changed or a v2 draft command was
removed before release.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="github-releases"&gt;GitHub Releases&lt;/h2&gt;
&lt;p&gt;Release archives should include the &lt;code&gt;restish&lt;/code&gt; binary for supported macOS,
Linux, and Windows targets on &lt;code&gt;amd64&lt;/code&gt; and &lt;code&gt;arm64&lt;/code&gt;.&lt;/p&gt;</description></item></channel></rss>