Skip to content

Commit 831e724

Browse files
committed
Add some dev-notes about cloudsmith publishing
1 parent ff74782 commit 831e724

File tree

4 files changed

+81
-10
lines changed

4 files changed

+81
-10
lines changed

dev-docs/checklist-make-a-new-quarto-prerelease.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@
1111
- New release prerelease should be on Github at <https://github.com/quarto-dev/quarto-cli/releases>
1212
- A new tag should be on main for the new prerelease version
1313
- `version.txt` on main should have been updated by the workflow to the pre-release version just released: https://github.com/quarto-dev/quarto-cli/blob/main/version.txt
14+
15+
Note: Cloudsmith publishing is skipped for prereleases (only runs for stable releases).

dev-docs/checklist-make-a-new-quarto-release.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,12 @@
7272
- Published to: <https://pypi.org/project/quarto-cli/>
7373
- Take a sip of tea ☕, bask in the glory of automation.
7474
- Others installers
75+
- Cloudsmith: Automatically published by Build Installers workflow. No action needed.
76+
- See [cloudsmith-publishing.md](cloudsmith-publishing.md) for manual republishing if needed.
7577
- conda-forge: An automated PR will be created to update the package version in the feedstock <github.com/conda-forge/quarto-feedstock>
7678
- This is community maintained, so no action is needed from us - except maybe helping if there are issues with the PR. We are assigned as reviewers to the PR.
77-
- Winget: An automated PR will be created by a winget bot in <github.com/microsoft/winget-pkgs/>.
78-
- This is community maintained, so no action is needed from us.
79-
- Scoop: This will be updated automatically in the manifests repo. No action is needed from us. Maintained as personal project by @cderv.
80-
- Homebrew: This is automated through an homebrew bot to update the cask <https://github.com/Homebrew/homebrew-cask>
81-
- Manifest: <https://github.com/Homebrew/homebrew-cask/blob/master/Casks/q/quarto.rb>
79+
- Winget: An automated PR will be created by a winget bot in <github.com/microsoft/winget-pkgs/>.
80+
- This is community maintained, so no action is needed from us.
81+
- Scoop: This will be updated automatically in the manifests repo. No action is needed from us. Maintained as personal project by @cderv.
82+
- Homebrew: This is automated through an homebrew bot to update the cask <https://github.com/Homebrew/homebrew-cask>
83+
- Manifest: <https://github.com/Homebrew/homebrew-cask/blob/master/Casks/q/quarto.rb>

dev-docs/checklist-make-a-new-stable-quarto-release.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,12 @@
3737
- [ ] Update the stable changelog by moving entries to the "in previous release". Use "[release checklist]" in the commit message to make it easier to spot if a new release is needed next month.
3838

3939
- Others installers
40+
- Cloudsmith: Automatically published by Build Installers workflow. No action needed.
41+
- See [cloudsmith-publishing.md](cloudsmith-publishing.md) for manual republishing if needed.
4042
- conda-forge: An automated PR will be created to update the package version in the feedstock <github.com/conda-forge/quarto-feedstock>
4143
- This is community maintained, so no action is needed from us - except maybe helping if there are issues with the PR. We are assigned as reviewers to the PR.
42-
- Winget: An automated PR will be created by a winget bot in <github.com/microsoft/winget-pkgs/>.
43-
- This is community maintained, so no action is needed from us.
44-
- Scoop: This will be updated automatically in the manifests repo. No action is needed from us. Maintained as personal project by @cderv.
45-
- Homebrew: This is automated through an homebrew bot to update the cask <https://github.com/Homebrew/homebrew-cask>
46-
- Manisfest: <https://github.com/Homebrew/homebrew-cask/blob/master/Casks/q/quarto.rb>
44+
- Winget: An automated PR will be created by a winget bot in <github.com/microsoft/winget-pkgs/>.
45+
- This is community maintained, so no action is needed from us.
46+
- Scoop: This will be updated automatically in the manifests repo. No action is needed from us. Maintained as personal project by @cderv.
47+
- Homebrew: This is automated through an homebrew bot to update the cask <https://github.com/Homebrew/homebrew-cask>
48+
- Manisfest: <https://github.com/Homebrew/homebrew-cask/blob/master/Casks/q/quarto.rb>

dev-docs/cloudsmith-publishing.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Cloudsmith Package Publishing
2+
3+
Publishes Linux packages (DEBs and RPMs) to Cloudsmith's `posit/open` repository.
4+
5+
**Workflow**: [.github/workflows/publish-cloudsmith.yml](../.github/workflows/publish-cloudsmith.yml)
6+
7+
## Automatic Publishing
8+
9+
Called automatically by `create-release.yml` for stable releases (non-prereleases).
10+
11+
## Manual Publishing
12+
13+
Use for:
14+
- Republishing older releases
15+
- Fixing package issues
16+
- Testing with dry-run
17+
18+
### Steps
19+
20+
1. Go to [Actions → Publish to Cloudsmith](https://github.com/quarto-dev/quarto-cli/actions/workflows/publish-cloudsmith.yml)
21+
2. Click "Run workflow"
22+
3. Configure:
23+
- **version**: `v1.8.26` (release tag)
24+
- **dry-run**: Check for testing, uncheck for production
25+
4. Run workflow
26+
27+
### Dry-Run First
28+
29+
**Always test with dry-run before production:**
30+
31+
```yaml
32+
dry-run: true # Test - validates but doesn't publish
33+
dry-run: false # Production - publishes to Cloudsmith
34+
```
35+
36+
Dry-run downloads packages and validates parameters without pushing to Cloudsmith.
37+
38+
## Required Assets
39+
40+
Workflow expects these in the GitHub release:
41+
42+
```
43+
quarto-${VERSION}-linux-amd64.deb
44+
quarto-${VERSION}-linux-arm64.deb
45+
quarto-${VERSION}-linux-x86_64.rpm
46+
quarto-${VERSION}-linux-aarch64.rpm
47+
```
48+
49+
Verify with:
50+
```bash
51+
gh release view v1.8.26 --json assets --jq '.assets[].name' | grep -E '(deb|rpm)'
52+
```
53+
54+
## Architecture
55+
56+
- **Validation**: Checks assets exist via GitHub API
57+
- **Matrix**: 4 parallel jobs (deb/rpm × x86_64/aarch64)
58+
- **Publishing**: Uses `cloudsmith push` with `--republish` flag
59+
- **Repository**: `posit/open/any-distro/any-version` (distribution-agnostic)
60+
61+
## Troubleshooting
62+
63+
**Assets missing**: Run [Build Installers](https://github.com/quarto-dev/quarto-cli/actions/workflows/create-release.yml) workflow to rebuild packages
64+
65+
**Authentication failed**: Check `CLOUDSMITH_API_KEY` secret in repository settings

0 commit comments

Comments
 (0)