posit-dev / posit-dev/connect-actions

Notes on dependency and lockfile management

Open
#17 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1
Forks
0
Avg merge
1h 44m
Merged PRs (30d)
4

Description

Don't want to require double bookkeeping everywhere, especially with manifest.json since it is Connect-only and requires Connect tooling to generate. But:

  • If repositories are private, GitHub Actions can't generate the right lockfile from pyproject.toml or R files, unless the repos are set there. (If PPM, they have OIDC support.) This is a problem unless/until Connect can support installing from pyproject.toml etc. without a requirements.txt
  • Python: There was some issue using uv to turn uv.lock into requirements.txt (todo write an issue)

In R,

For all languages:

  • If a manifest.json exists, use it. Assume user knows about it and updates it out of band. (#16)
  • Else, if a lockfile exists (uv.lock, renv.lock, others), use it. Assume that user is managing the lockfile on their own (pre-commit hook, other workflow, etc.) (#22)
  • Else, if a project requirements file exists (pyproject.toml, DESCRIPTION, etc.), the action should generate a lockfile with it and use that. Assumption is that private packages or repos are either not used by the project or are configured in the workflow. (needs issue to pick up DESCRIPTION file)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the proposed selection order in this issue, related issues #16 and #22, and the Publisher conversion code at extensions/vscode/src/publish/rPackageDescriptions.ts. Compare the referenced rsconnect, renv, pak, and uv workflows, then define the implementation entry points and acceptance tests for using manifest.json, existing lockfiles, or generated lockfiles.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, python, r, typescript
Domain
build-system, ci-cd
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.