posit-dev / posit-dev/rsconnect-python

Support reading/writing Publisher `.posit/` deployment records (in addition to `rsconnect-python/*.json`)

オープン
#829 コメント 0 件 リアクション 0 件 担当者 1 名 GitHub で見る

@mconflitti-pbc がすでに取り組んでいます。

2026年7月24日 から。

主要言語
Python
スター
37
フォーク
28
平均マージ
1日 3時間
マージ済み PR(30日)
7

説明

Summary

rsconnect-python and the Posit Publisher (VS Code extension) currently track deployments in two mutually exclusive, incompatible formats. A directory deployed with one tool is invisible to the other, so the two toolchains can't collaborate on the same content. I'd like rsconnect-python to be able to read (and eventually write) the Publisher's .posit/ records so all of our deployment tooling speaks the same language.

Current behavior

Deploying the same app two ways produces two independent record sets that neither tool reconciles:

Publisher (.posit/publish/) — TOML, with a public versioned schema:

  • .posit/publish/<config>.toml — configuration (posit-publishing-schema-v3.json)
  • .posit/publish/deployments/<deployment>.toml — deployment record (posit-publishing-record-schema-v3.json), including server_url, content id/GUID, bundle_id, dashboard_url, direct_url, deployed files, requirements, etc.

rsconnect-python (rsconnect-python/<name>.json) — JSON keyed by server URL, with app_id, app_guid, app_url, app_mode, app_store_version.

Because rsconnect-python only knows about its own rsconnect-python/*.json store, a re-deploy via the CLI won't find or update the Publisher's record (and creates a separate piece of content rather than updating the existing one).

Requested behavior

  • On deploy/redeploy, have rsconnect-python detect an existing .posit/ directory and use those records to resolve the target server + existing content (GUID/id) for update-in-place.
  • Treat this as an addition, not a replacement of the existing rsconnect-python/*.json behavior initially, so we can begin transitioning without breaking existing workflows.
  • The Publisher schema is public and versioned, which makes it a good shared source of truth:
    • Config: https://cdn.posit.co/publisher/schemas/posit-publishing-schema-v3.json
    • Record: https://cdn.posit.co/publisher/schemas/posit-publishing-record-schema-v3.json

Why

The Publisher approach is considered the better/preferred way of recording deployments, and aligning rsconnect-python on it means the CLI, the VS Code extension, and other tooling share one deployment source of truth instead of drifting into incompatible records for the same content.

Related issues / prior art

# Repo · Issue State Why it's relevant
1 posit-dev/connect#36981 — feat: Support Publisher configuration files open The closest match. Proposes Connect natively consuming the Publisher .posit/ config + deployment-record TOML (same v3 schema) and building manifest.json from it — the server-side counterpart to making all tools speak the Publisher format.
2 posit-dev/publisher#3376 — feat: Integrate credential storage with rsconnect-python closed Direct precedent for Publisher ↔ rsconnect-python interoperability (sharing credential state). Shows the two tools are already being aligned; this issue extends the same idea to deployment records.
3 posit-dev/connect#29965 — Feat: Include provenance of deployment in metadata and UI open About tracking which tool/source produced a deployment — relevant to reconciling multiple record sources into one source of truth.
4 posit-dev/rsconnect-python#817 — Add support for publishing to Posit Connect Cloud open Adjacent: expands rsconnect-python's deployment targets/records, which intersects with how/where deployment state is stored.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。