futureverse / futureverse/future
CLEANUP: Export fewer functions
- Dominant language
- R
- Stars
- 1k
- Forks
- 92
- PR merge metrics
- No merged PRs in 30d
Description
Currently, **future** exports quite a few functions beyond the _Future API_ itself. Some of them are used by backends but not really needed by uses of **future** per se - can they be removed from the public API?
For example, **future.callr** use `MultiprocessFuture`, which belongs more to a "protected" backend API. Maybe there's a robust way to make those available without exporting them, e.g.
```r
MultiprocessFuture <- future::import_protected("MultiprocessFuture")
```
OTH, with such an approach we'll lose all the advantages that come with `R CMD check`, e.g. code inspection. Maybe that's ok.
Contributor guide
Research direction
Begin by auditing the future package's public exports and the backend use of MultiprocessFuture, including future.callr. Done requires a decided scope for which exports belong to the Future API and a validated approach for backend access without losing R CMD check benefits.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- r
- Domain
- backend-api-design
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100