[{"data":1,"prerenderedAt":1081},["ShallowReactive",2],{"navigation_docs":3,"-contributing-releasing":172,"-contributing-releasing-surround":1076},[4,30,100,134],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":29},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,21,25],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":5,"path":19,"stem":20},"\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":22,"path":23,"stem":24},"Build from source","\u002Fgetting-started\u002Fbuild-from-source","1.getting-started\u002F4.build-from-source",{"title":26,"path":27,"stem":28},"Troubleshooting","\u002Fgetting-started\u002Ftroubleshooting","1.getting-started\u002F5.troubleshooting",false,{"title":31,"icon":32,"path":33,"stem":34,"children":35,"page":29},"Guide","i-lucide-book-open","\u002Fguide","2.guide",[36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96],{"title":37,"path":38,"stem":39},"Interface","\u002Fguide\u002Finterface","2.guide\u002F01.interface",{"title":41,"path":42,"stem":43},"Workspace","\u002Fguide\u002Fworkspace","2.guide\u002F02.workspace",{"title":45,"path":46,"stem":47},"Collections","\u002Fguide\u002Fcollections","2.guide\u002F03.collections",{"title":49,"path":50,"stem":51},"HTTP requests","\u002Fguide\u002Fhttp-requests","2.guide\u002F04.http-requests",{"title":53,"path":54,"stem":55},"Variables","\u002Fguide\u002Fvariables","2.guide\u002F05.variables",{"title":57,"path":58,"stem":59},"Authorization","\u002Fguide\u002Fauthorization","2.guide\u002F06.authorization",{"title":61,"path":62,"stem":63},"Scripts and tests","\u002Fguide\u002Fscripts-and-tests","2.guide\u002F07.scripts-and-tests",{"title":65,"path":66,"stem":67},"Collection runner","\u002Fguide\u002Fcollection-runner","2.guide\u002F08.collection-runner",{"title":69,"path":70,"stem":71},"Import and export","\u002Fguide\u002Fimport-export","2.guide\u002F09.import-export",{"title":73,"path":74,"stem":75},"Code snippets","\u002Fguide\u002Fcode-snippets","2.guide\u002F10.code-snippets",{"title":77,"path":78,"stem":79},"gRPC","\u002Fguide\u002Fgrpc","2.guide\u002F11.grpc",{"title":81,"path":82,"stem":83},"WebSocket","\u002Fguide\u002Fwebsocket","2.guide\u002F12.websocket",{"title":85,"path":86,"stem":87},"Cookies, proxy and certificates","\u002Fguide\u002Fcookies-proxy-certificates","2.guide\u002F13.cookies-proxy-certificates",{"title":89,"path":90,"stem":91},"Settings","\u002Fguide\u002Fsettings","2.guide\u002F14.settings",{"title":93,"path":94,"stem":95},"Keyboard shortcuts","\u002Fguide\u002Fkeyboard-shortcuts","2.guide\u002F15.keyboard-shortcuts",{"title":97,"path":98,"stem":99},"Privacy and security","\u002Fguide\u002Fprivacy-and-security","2.guide\u002F16.privacy-and-security",{"title":101,"icon":102,"path":103,"stem":104,"children":105,"page":29},"Reference","i-lucide-square-terminal","\u002Freference","3.reference",[106,110,114,118,122,126,130],{"title":107,"path":108,"stem":109},"Command line","\u002Freference\u002Fcli","3.reference\u002F1.cli",{"title":111,"path":112,"stem":113},"Automation tools","\u002Freference\u002Fautomation-tools","3.reference\u002F2.automation-tools",{"title":115,"path":116,"stem":117},"Scripting API","\u002Freference\u002Fscripting-api","3.reference\u002F3.scripting-api",{"title":119,"path":120,"stem":121},"Dynamic variables","\u002Freference\u002Fdynamic-variables","3.reference\u002F4.dynamic-variables",{"title":123,"path":124,"stem":125},"UI control channel","\u002Freference\u002Fui-control-channel","3.reference\u002F5.ui-control-channel",{"title":127,"path":128,"stem":129},"Workspace format","\u002Freference\u002Fworkspace-format","3.reference\u002F6.workspace-format",{"title":131,"path":132,"stem":133},"Feature status","\u002Freference\u002Ffeature-status","3.reference\u002F7.feature-status",{"title":135,"icon":136,"path":137,"stem":138,"children":139,"page":29},"Contributing","i-lucide-git-pull-request","\u002Fcontributing","4.contributing",[140,144,148,152,156,160,164,168],{"title":141,"path":142,"stem":143},"Contributing overview","\u002Fcontributing\u002Foverview","4.contributing\u002F1.overview",{"title":145,"path":146,"stem":147},"Development","\u002Fcontributing\u002Fdevelopment","4.contributing\u002F2.development",{"title":149,"path":150,"stem":151},"Architecture","\u002Fcontributing\u002Farchitecture","4.contributing\u002F3.architecture",{"title":153,"path":154,"stem":155},"Known gaps","\u002Fcontributing\u002Fgaps","4.contributing\u002F4.gaps",{"title":157,"path":158,"stem":159},"Adding a feature","\u002Fcontributing\u002Fadding-a-feature","4.contributing\u002F5.adding-a-feature",{"title":161,"path":162,"stem":163},"Assets and clean-room","\u002Fcontributing\u002Fassets-and-clean-room","4.contributing\u002F6.assets-and-clean-room",{"title":165,"path":166,"stem":167},"Releasing","\u002Fcontributing\u002Freleasing","4.contributing\u002F7.releasing",{"title":169,"path":170,"stem":171},"Writing the documentation","\u002Fcontributing\u002Fdocumentation","4.contributing\u002F8.documentation",{"id":173,"title":165,"body":174,"description":1070,"extension":1071,"links":1072,"meta":1073,"navigation":852,"path":166,"seo":1074,"stem":167,"__hash__":1075},"docs\u002F4.contributing\u002F7.releasing.md",{"type":175,"value":176,"toc":1059},"minimark",[177,199,204,207,229,416,426,430,436,557,563,566,601,608,615,619,622,628,704,719,723,727,733,759,1029,1040,1055],[178,179,180,190,191,198],"p",{},[181,182,186],"a",{"href":183,"rel":184},"https:\u002F\u002Fgithub.com\u002Fzuramai\u002Fpostguy\u002Fblob\u002Fmain\u002F.github\u002Fworkflows\u002Frelease.yml",[185],"nofollow",[187,188,189],"code",{},".github\u002Fworkflows\u002Frelease.yml"," builds releases. The canonical notes live in ",[181,192,195],{"href":193,"rel":194},"https:\u002F\u002Fgithub.com\u002Fzuramai\u002Fpostguy\u002Fblob\u002Fmain\u002Fpackaging\u002FREADME.md",[185],[187,196,197],{},"packaging\u002FREADME.md",", next to the scripts. This page summarises them.",[200,201,203],"h2",{"id":202},"release-flow","Release flow",[178,205,206],{},"The workflow runs in two cases:",[208,209,210,218],"ul",{},[211,212,213,214,217],"li",{},"A tag matching ",[187,215,216],{},"v*"," is pushed. The tag names the version.",[211,219,220,221,224,225,228],{},"You start it by hand through ",[187,222,223],{},"workflow_dispatch",", with an optional version override such as ",[187,226,227],{},"0.2.0-rc.1",".",[230,231,232,237,247,291,319,323,351,354,358,394,398],"steps",{},[233,234,236],"h3",{"id":235},"set-the-version","Set the version",[178,238,239,240,243,244,228],{},"The version lives in exactly one place: ",[187,241,242],{},"[workspace.package] version"," in the root ",[187,245,246],{},"Cargo.toml",[248,249,254],"pre",{"className":250,"code":251,"language":252,"meta":253,"style":253},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","cargo xtask version          # print it\ncargo xtask version set X.Y.Z\n","sh","",[187,255,256,276],{"__ignoreMap":253},[257,258,261,265,269,272],"span",{"class":259,"line":260},"line",1,[257,262,264],{"class":263},"sBMFI","cargo",[257,266,268],{"class":267},"sfazB"," xtask",[257,270,271],{"class":267}," version",[257,273,275],{"class":274},"sHwdD","          # print it\n",[257,277,279,281,283,285,288],{"class":259,"line":278},2,[257,280,264],{"class":263},[257,282,268],{"class":267},[257,284,271],{"class":267},[257,286,287],{"class":267}," set",[257,289,290],{"class":267}," X.Y.Z\n",[208,292,293,303,310],{},[211,294,295,296,299,300,228],{},"The format is ",[187,297,298],{},"X.Y.Z"," or ",[187,301,302],{},"X.Y.Z-pre.release",[211,304,305,306,309],{},"A version containing ",[187,307,308],{},"-"," marks the GitHub release as a pre-release.",[211,311,312,313,315,316,228],{},"In deb and rpm packages, a pre-release such as ",[187,314,227],{}," becomes ",[187,317,318],{},"0.2.0~rc.1",[233,320,322],{"id":321},"push-the-tag-only","Push the tag only",[248,324,326],{"className":250,"code":325,"language":252,"meta":253,"style":253},"git tag v1.2.3\ngit push origin v1.2.3\n",[187,327,328,339],{"__ignoreMap":253},[257,329,330,333,336],{"class":259,"line":260},[257,331,332],{"class":263},"git",[257,334,335],{"class":267}," tag",[257,337,338],{"class":267}," v1.2.3\n",[257,340,341,343,346,349],{"class":259,"line":278},[257,342,332],{"class":263},[257,344,345],{"class":267}," push",[257,347,348],{"class":267}," origin",[257,350,338],{"class":267},[178,352,353],{},"Do not create the GitHub release by hand. The workflow creates a draft. It refuses to update a release that is already published.",[233,355,357],{"id":356},"wait-for-the-jobs","Wait for the jobs",[208,359,360,366,380,388],{},[211,361,362,365],{},[187,363,364],{},"version"," resolves and validates the version.",[211,367,368,371,372,375,376,379],{},[187,369,370],{},"macos",", ",[187,373,374],{},"windows"," (x64, x86, arm64) and ",[187,377,378],{},"linux"," (x86_64, aarch64) build in parallel.",[211,381,382,385,386,228],{},[187,383,384],{},"flatpak"," builds from the Linux tarball, so it needs ",[187,387,378],{},[211,389,390,393],{},[187,391,392],{},"release"," then collects every artifact.",[233,395,397],{"id":396},"publish-the-draft","Publish the draft",[178,399,400,401,403,404,407,408,411,412,415],{},"The ",[187,402,392],{}," job writes ",[187,405,406],{},"SHA256SUMS.txt"," over all artifacts. It creates the draft release ",[187,409,410],{},"v\u003Cversion>"," titled ",[187,413,414],{},"Postguy v\u003Cversion>"," with generated notes. Re-running for a tag whose release is still a draft replaces its assets. Review the draft and publish it by hand.",[178,417,418,419,422,423,425],{},"A manual run with a version override applies it with ",[187,420,421],{},"cargo xtask version set"," inside the job. ",[187,424,246],{}," in the repository does not change.",[200,427,429],{"id":428},"artifacts","Artifacts",[178,431,432,433,228],{},"Files appear in ",[187,434,435],{},"dist\u002Frelease\u002F",[437,438,439,454],"table",{},[440,441,442],"thead",{},[443,444,445,449,452],"tr",{},[446,447,448],"th",{},"Platform",[446,450,451],{},"Script",[446,453,429],{},[455,456,457,481,505,542],"tbody",{},[443,458,459,463,468],{},[460,461,462],"td",{},"macOS universal",[460,464,465],{},[187,466,467],{},"packaging\u002Fmacos\u002Fpackage.sh --arch universal",[460,469,470,371,473,476,477,480],{},[187,471,472],{},"postguy-\u003Cv>-macos-universal.dmg",[187,474,475],{},"postguy-\u003Cv>-macos-universal.zip"," (the app), ",[187,478,479],{},"postguy-cli-\u003Cv>-macos-universal.tar.gz",". Developer ID codesign and notarization.",[443,482,483,486,491],{},[460,484,485],{},"Windows x64, x86, arm64",[460,487,488],{},[187,489,490],{},"packaging\u002Fwindows\u002Fpackage.ps1 -Arch \u003Carch>",[460,492,493,496,497,500,501,504],{},[187,494,495],{},"postguy-\u003Cv>-windows-\u003Carch>.msi"," (WiX v5), ",[187,498,499],{},"postguy-\u003Cv>-windows-\u003Carch>.zip"," (portable), ",[187,502,503],{},"postguy-cli-\u003Cv>-windows-\u003Carch>.zip",". Azure Trusted Signing or a PFX.",[443,506,507,510,515],{},[460,508,509],{},"Linux x86_64, aarch64",[460,511,512],{},[187,513,514],{},"packaging\u002Flinux\u002Fpackage.sh",[460,516,517,520,521,524,525,528,529,371,532,371,535,538,539,228],{},[187,518,519],{},"postguy-\u003Cv>-linux-\u003Carch>.AppImage"," (plus ",[187,522,523],{},".AppImage.zsync"," when ",[187,526,527],{},"zsyncmake"," is present), ",[187,530,531],{},".deb",[187,533,534],{},".rpm",[187,536,537],{},".tar.gz",", and ",[187,540,541],{},"postguy-cli-\u003Cv>-linux-\u003Carch>.tar.gz",[443,543,544,547,552],{},[460,545,546],{},"Flatpak",[460,548,549],{},[187,550,551],{},"packaging\u002Flinux\u002Fflatpak-bundle.sh",[460,553,554],{},[187,555,556],{},"postguy-\u003Cv>-linux-\u003Carch>.flatpak",[178,558,559,560,228],{},"Not built: WebAssembly (there is no web build), riscv64, FreeBSD and Arch. FreeBSD users ",[181,561,562],{"href":23},"build from source",[178,564,565],{},"Build hosts:",[208,567,568,575,581,592],{},[211,569,570,571,574],{},"macOS: ",[187,572,573],{},"macos-15",". The universal binary cross-compiles x86_64 on it.",[211,576,577,578,228],{},"Windows: ",[187,579,580],{},"windows-latest",[211,582,583,584,587,588,591],{},"Linux: ",[187,585,586],{},"ubuntu-22.04"," and ",[187,589,590],{},"ubuntu-22.04-arm",", so packages need glibc 2.35 or newer.",[211,593,594,595,587,598,228],{},"Flatpak: ",[187,596,597],{},"ubuntu-24.04",[187,599,600],{},"ubuntu-24.04-arm",[178,602,603,604,607],{},"The Linux job uses the public ",[187,605,606],{},"storytold\u002Fcraft-common-actions\u002Factions\u002Finstall-linux-deps"," action to install build libraries and nfpm. It is the one outside dependency.",[178,609,610,611,614],{},"Icons are derived at packaging time from ",[187,612,613],{},"assets\u002Flogo",". No generated icon is committed.",[200,616,618],{"id":617},"signing","Signing",[178,620,621],{},"Signing secrets are optional. Without them the scripts warn and ship unsigned (ad-hoc signed on macOS), so a release works with no secrets.",[178,623,624,625,627],{},"Set the secrets on the repository's ",[187,626,392],{}," environment. It must exist (Settings, Environments) even when empty.",[437,629,630,639],{},[440,631,632],{},[443,633,634,636],{},[446,635,448],{},[446,637,638],{},"Secrets",[455,640,641,666,691],{},[443,642,643,646],{},[460,644,645],{},"macOS",[460,647,648,371,651,371,654,371,657,371,660,371,663],{},[187,649,650],{},"APPLE_CERTIFICATE",[187,652,653],{},"APPLE_CERTIFICATE_PASSWORD",[187,655,656],{},"KEYCHAIN_PASSWORD",[187,658,659],{},"APPLE_ID",[187,661,662],{},"APPLE_PASSWORD",[187,664,665],{},"APPLE_TEAM_ID",[443,667,668,671],{},[460,669,670],{},"Windows (Azure Trusted Signing)",[460,672,673,371,676,371,679,371,682,371,685,371,688],{},[187,674,675],{},"AZURE_TENANT_ID",[187,677,678],{},"AZURE_CLIENT_ID",[187,680,681],{},"AZURE_CLIENT_SECRET",[187,683,684],{},"AZURE_SIGNING_ENDPOINT",[187,686,687],{},"AZURE_SIGNING_ACCOUNT",[187,689,690],{},"AZURE_CERT_PROFILE",[443,692,693,696],{},[460,694,695],{},"Windows (PFX alternative)",[460,697,698,371,701],{},[187,699,700],{},"WINDOWS_CERTIFICATE",[187,702,703],{},"WINDOWS_CERTIFICATE_PASSWORD",[178,705,706,707,709,710,587,712,714,715,718],{},"Notarization needs a real signing identity plus ",[187,708,659],{},", an app-specific ",[187,711,662],{},[187,713,665],{},". The macOS job also runs ",[187,716,717],{},"packaging\u002Fmacos\u002Fverify.sh"," after packaging.",[720,721,722],"note",{},"Do not describe a release as signed or notarized on the install pages unless the draft's artifacts were actually built with these secrets.",[200,724,726],{"id":725},"running-the-scripts-locally","Running the scripts locally",[178,728,729,732],{},[187,730,731],{},"packaging\u002Fenv.sh"," is shared setup for the bash scripts.",[208,734,735,744],{},[211,736,737,738,740,741,228],{},"It reads the version from the root ",[187,739,246],{},". Override it with ",[187,742,743],{},"POSTGUY_VERSION",[211,745,746,747,750,751,754,755,758],{},"It exports ",[187,748,749],{},"DIST"," (default ",[187,752,753],{},"dist\u002Frelease","), the application id ",[187,756,757],{},"io.github.zuramai.postguy",", and the build date and commit.",[760,761,762,815,885,946],"tabs",{},[763,764,765,808],"tabs-item",{"label":645},[248,766,768],{"className":250,"code":767,"language":252,"meta":253,"style":253},"packaging\u002Fmacos\u002Fpackage.sh --arch universal      # or aarch64, x86_64\npackaging\u002Fmacos\u002Fpackage.sh --arch aarch64 --skip-build\npackaging\u002Fmacos\u002Fverify.sh --arch universal       # add --require-notarized to demand tickets\n",[187,769,770,784,796],{"__ignoreMap":253},[257,771,772,775,778,781],{"class":259,"line":260},[257,773,774],{"class":263},"packaging\u002Fmacos\u002Fpackage.sh",[257,776,777],{"class":267}," --arch",[257,779,780],{"class":267}," universal",[257,782,783],{"class":274},"      # or aarch64, x86_64\n",[257,785,786,788,790,793],{"class":259,"line":278},[257,787,774],{"class":263},[257,789,777],{"class":267},[257,791,792],{"class":267}," aarch64",[257,794,795],{"class":267}," --skip-build\n",[257,797,799,801,803,805],{"class":259,"line":798},3,[257,800,717],{"class":263},[257,802,777],{"class":267},[257,804,780],{"class":267},[257,806,807],{"class":274},"       # add --require-notarized to demand tickets\n",[178,809,810,811,814],{},"Without ",[187,812,813],{},"MACOS_SIGN_IDENTITY"," the app is ad-hoc signed, and Gatekeeper rejects it on other Macs. The minimum system version is macOS 11.0.",[763,816,818,825,872,882],{"label":817},"Windows",[178,819,820,821,824],{},"You need the Rust MSVC toolchain and target, and WiX v5. You need the Windows SDK (",[187,822,823],{},"signtool.exe",") only for signing.",[248,826,830],{"className":827,"code":828,"language":829,"meta":253,"style":253},"language-powershell shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","dotnet tool install --global wix --version 5.0.2\nwix extension add -g WixToolset.UI.wixext\u002F5.0.2\nwix extension add -g WixToolset.Util.wixext\u002F5.0.2\n\npwsh packaging\u002Fwindows\u002Fpackage.ps1 -Arch x64     # or x86, arm64\npwsh packaging\u002Fwindows\u002Fpackage.ps1 -Arch x86 -SkipBuild\npwsh packaging\u002Fwindows\u002Ftest-msi.ps1 dist\u002Frelease\u002Fpostguy-0.1.0-windows-x64.msi\n","powershell",[187,831,832,837,842,847,854,860,866],{"__ignoreMap":253},[257,833,834],{"class":259,"line":260},[257,835,836],{},"dotnet tool install --global wix --version 5.0.2\n",[257,838,839],{"class":259,"line":278},[257,840,841],{},"wix extension add -g WixToolset.UI.wixext\u002F5.0.2\n",[257,843,844],{"class":259,"line":798},[257,845,846],{},"wix extension add -g WixToolset.Util.wixext\u002F5.0.2\n",[257,848,850],{"class":259,"line":849},4,[257,851,853],{"emptyLinePlaceholder":852},true,"\n",[257,855,857],{"class":259,"line":856},5,[257,858,859],{},"pwsh packaging\u002Fwindows\u002Fpackage.ps1 -Arch x64     # or x86, arm64\n",[257,861,863],{"class":259,"line":862},6,[257,864,865],{},"pwsh packaging\u002Fwindows\u002Fpackage.ps1 -Arch x86 -SkipBuild\n",[257,867,869],{"class":259,"line":868},7,[257,870,871],{},"pwsh packaging\u002Fwindows\u002Ftest-msi.ps1 dist\u002Frelease\u002Fpostguy-0.1.0-windows-x64.msi\n",[178,873,874,877,878,881],{},[187,875,876],{},"test-msi.ps1"," needs an elevated shell. It installs the MSI silently into a temporary folder, checks the result, runs the CLI and uninstalls. ",[187,879,880],{},"package.ps1"," runs it for x64 and x86 builds.",[178,883,884],{},"The arm64 build is cross-compiled and needs the MSVC ARM64 build tools. Binaries link the C runtime statically, so no Visual C++ redistributable is required.",[763,886,888,910,913],{"label":887},"Linux",[178,889,890,891,371,893,371,896,899,900,903,904,906,907,228],{},"You need ",[187,892,264],{},[187,894,895],{},"curl",[187,897,898],{},"nfpm"," for deb and rpm, and ",[187,901,902],{},"appimagetool"," for the AppImage. If ",[187,905,902],{}," is missing, the script downloads a pinned release and checks it against its SHA-256. Override with ",[187,908,909],{},"APPIMAGETOOL=\u002Fpath",[178,911,912],{},"Build on an old distribution, as CI does with Ubuntu 22.04, so the binaries run on newer ones.",[248,914,916],{"className":250,"code":915,"language":252,"meta":253,"style":253},"packaging\u002Flinux\u002Fpackage.sh\npackaging\u002Flinux\u002Fpackage.sh --skip-build --formats \"deb rpm\"   # formats: appimage deb rpm tar cli\n",[187,917,918,923],{"__ignoreMap":253},[257,919,920],{"class":259,"line":260},[257,921,922],{"class":263},"packaging\u002Flinux\u002Fpackage.sh\n",[257,924,925,927,930,933,937,940,943],{"class":259,"line":278},[257,926,514],{"class":263},[257,928,929],{"class":267}," --skip-build",[257,931,932],{"class":267}," --formats",[257,934,936],{"class":935},"sMK4o"," \"",[257,938,939],{"class":267},"deb rpm",[257,941,942],{"class":935},"\"",[257,944,945],{"class":274},"   # formats: appimage deb rpm tar cli\n",[763,947,948,958,965,1022],{"label":546},[178,949,890,950,371,952,587,955,228],{},[187,951,384],{},[187,953,954],{},"flatpak-builder",[187,956,957],{},"librsvg2-common",[178,959,960,961,964],{},"The bundle is built for the host architecture from a Linux tarball, which ",[187,962,963],{},"package.sh --formats tar"," creates first. The freedesktop runtime and SDK named in the manifest are installed per user from Flathub.",[248,966,968],{"className":250,"code":967,"language":252,"meta":253,"style":253},"packaging\u002Flinux\u002Fpackage.sh --formats tar\npackaging\u002Flinux\u002Fflatpak-bundle.sh                 # uses dist\u002Frelease\u002Fpostguy-\u003Cv>-linux-\u003Carch>.tar.gz\npackaging\u002Flinux\u002Fflatpak-bundle.sh --no-test path\u002Fto\u002Fpostguy-\u003Cv>-linux-\u003Carch>.tar.gz\n",[187,969,970,979,986],{"__ignoreMap":253},[257,971,972,974,976],{"class":259,"line":260},[257,973,514],{"class":263},[257,975,932],{"class":267},[257,977,978],{"class":267}," tar\n",[257,980,981,983],{"class":259,"line":278},[257,982,551],{"class":263},[257,984,985],{"class":274},"                 # uses dist\u002Frelease\u002Fpostguy-\u003Cv>-linux-\u003Carch>.tar.gz\n",[257,987,988,990,993,996,999,1003,1006,1009,1011,1014,1017,1019],{"class":259,"line":798},[257,989,551],{"class":263},[257,991,992],{"class":267}," --no-test",[257,994,995],{"class":267}," path\u002Fto\u002Fpostguy-",[257,997,998],{"class":935},"\u003C",[257,1000,1002],{"class":1001},"sTEyZ","v",[257,1004,1005],{"class":935},">",[257,1007,1008],{"class":267},"-linux-",[257,1010,998],{"class":935},[257,1012,1013],{"class":267},"arc",[257,1015,1016],{"class":1001},"h",[257,1018,1005],{"class":935},[257,1020,1021],{"class":267},".tar.gz\n",[178,1023,1024,1025,1028],{},"Unless you pass ",[187,1026,1027],{},"--no-test",", the script installs the bundle per user and lists the sandbox's files as a smoke test.",[178,1030,1031,1032,371,1035,587,1038,228],{},"Optional tools for the Linux script: ",[187,1033,1034],{},"desktop-file-validate",[187,1036,1037],{},"appstreamcli",[187,1039,527],{},[178,1041,1042,1043,1046,1047,1050,1051,1054],{},"Packaging scripts are not part of ",[187,1044,1045],{},"cargo xtask ci",". To verify a package, install it on a clean machine and run ",[187,1048,1049],{},"postguy-cli tools",". The CLI has no ",[187,1052,1053],{},"--version"," flag.",[1056,1057,1058],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":253,"searchDepth":278,"depth":278,"links":1060},[1061,1067,1068,1069],{"id":202,"depth":278,"text":203,"children":1062},[1063,1064,1065,1066],{"id":235,"depth":798,"text":236},{"id":321,"depth":798,"text":322},{"id":356,"depth":798,"text":357},{"id":396,"depth":798,"text":397},{"id":428,"depth":278,"text":429},{"id":617,"depth":278,"text":618},{"id":725,"depth":278,"text":726},"How a tagged release builds the macOS, Windows and Linux packages, which secrets sign them, and how to run each packaging script locally.","md",null,{},{"title":165,"description":1070},"ICyI_iBp3a37_E28725g6D87fLPlu6qmC95tkbEZvPU",[1077,1079],{"title":161,"path":162,"stem":163,"description":1078,"children":-1},"Which assets Postguy may ship, how to attribute them, where behaviour may come from, and the commands that enforce it.",{"title":169,"path":170,"stem":171,"description":1080,"children":-1},"How this Docus site is organised, how to preview and build it, the writing rules, and how it is published.",1793179614879]