Skip to content

Conversation

edavidaja
Copy link
Collaborator

This commit introduces comprehensive RPM package support alongside existing DEB packages,
migrates to nfpm for package building, and adds automated Cloudsmith publishing.

Package Building Changes:

  • Migrated from dpkg-deb to nfpm for both DEB and RPM package creation
  • Added makeInstallerRpm() function in installer.ts using shared nfpm configuration
  • Created RPM-specific post-install and post-remove scripts in package/scripts/linux/rpm/
  • Added js-yaml import for generating nfpm configuration files
  • Implemented architecture mapping (DEB: amd64/arm64, RPM: x86_64/aarch64)

GitHub Actions Workflow Improvements:

  • Consolidated 4 separate Linux installer jobs into single matrix job (make-installer-linux)
    • Matrix: arch=[x86_64, aarch64] × format=[deb, rpm]
    • Reduced workflow from ~160 to ~60 lines for Linux installers
  • Added nfpm installation step (downloads binary from GitHub releases, version 2.43.1)
  • Updated all artifact references to use new naming: Linux-{format}-{arch}-Installer

Cloudsmith Publishing:

  • Added cloudsmith-push job for automated package repository publishing
    • Publishes to both "open" and "pro" Posit repositories
    • Uses matrix strategy: 2 archs × 2 formats × 2 repos = 8 push operations
    • Configured with any-distro/any-version for broad compatibility

Build System Updates:

  • Added make-installer-rpm command to bld.ts
  • Updated all job dependencies (publish-release, cleanup-when-failure, docker-push)
  • Updated checksum generation and release file paths for new artifact names

This enables users to install Quarto via standard package managers (apt, yum, dnf, zypper)
from Posit's Cloudsmith repositories after configuring the appropriate repository source.

🤖 Generated with Claude Code

Co-Authored-By: Claude [email protected]

This commit introduces comprehensive RPM package support alongside existing DEB packages,
migrates to nfpm for package building, and adds automated Cloudsmith publishing.

Package Building Changes:
- Migrated from dpkg-deb to nfpm for both DEB and RPM package creation
- Added makeInstallerRpm() function in installer.ts using shared nfpm configuration
- Created RPM-specific post-install and post-remove scripts in package/scripts/linux/rpm/
- Added js-yaml import for generating nfpm configuration files
- Implemented architecture mapping (DEB: amd64/arm64, RPM: x86_64/aarch64)

GitHub Actions Workflow Improvements:
- Consolidated 4 separate Linux installer jobs into single matrix job (make-installer-linux)
  - Matrix: arch=[x86_64, aarch64] × format=[deb, rpm]
  - Reduced workflow from ~160 to ~60 lines for Linux installers
- Added nfpm installation step (downloads binary from GitHub releases, version 2.43.1)
- Updated all artifact references to use new naming: Linux-{format}-{arch}-Installer

Cloudsmith Publishing:
- Added cloudsmith-push job for automated package repository publishing
  - Publishes to both "open" and "pro" Posit repositories
  - Uses matrix strategy: 2 archs × 2 formats × 2 repos = 8 push operations
  - Configured with any-distro/any-version for broad compatibility

Build System Updates:
- Added make-installer-rpm command to bld.ts
- Updated all job dependencies (publish-release, cleanup-when-failure, docker-push)
- Updated checksum generation and release file paths for new artifact names

This enables users to install Quarto via standard package managers (apt, yum, dnf, zypper)
from Posit's Cloudsmith repositories after configuring the appropriate repository source.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@posit-snyk-bot
Copy link
Collaborator

posit-snyk-bot commented Sep 19, 2025

🎉 Snyk checks have passed. No issues have been found so far.

security/snyk check is complete. No issues have been found. (View Details)

license/snyk check is complete. No issues have been found. (View Details)

@edavidaja edavidaja closed this Sep 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants