Split `ark` from `positron` R modules?
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 337
- Forks
- 32
- Avg merge
- 8d 17h
- Merged PRs (30d)
- 11
Description
Extracted from https://github.com/posit-dev/ark/pull/977#discussion_r2585988617
It's currently a bit confusing that files in https://github.com/posit-dev/ark/tree/main/crates/ark/src/modules/positron get sourced even when Ark is used outside Positron.
We could split an ark folder containing essential functionality used with other frontends (such as error handling). positron would only contain functionality used by the Positron frontend.
To further disambiguate, we could introduce .ark. as a prefix for stuff living in ark. For instance .ark.version() instead of .ps.ark.version().
Finally, to decide whether to load Positron functionality, we could introduce a new flag to the ark binary. This would be a bit more precise than the current approach of detecting the POSITRON environment variable, which could also be set even when Positron is not the frontend, for example when running jupyter-console in the terminal. Note we can't use any Jupyter information for this (such as when the UI comm is connected) because that would be racy.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the discussion in pull request 977 and the files under crates/ark/src/modules/positron. Map which modules are essential to Ark versus specific to the Positron frontend, then review how the POSITRON environment variable currently controls loading. Done means the module split, naming convention, and frontend-selection mechanism have an agreed design and implementation scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- r, rust
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100