← Back to all sparks
P

pins

ANALYTICS
Velocity0.0

Publish, discover and share data, models and objects across R projects

pins keeps adding a storage backend per release while retiring its original API

data-versioningcloud-storagedatabricksserializationdeprecation
Current state
pins publishes and versions R objects to a board, where a board is whatever storage you have. The recent releases read as a steady list of new boards - Google Cloud Storage, Google Drive, Databricks Volumes, Connect vanity URLs - alongside serialization changes that track which formats R users actually want: parquet via nanoparquet, and qs replaced by qs2.
Where it's heading
Two long-running processes, neither dramatic. Backend coverage expands toward wherever teams already store artifacts, which increasingly means Databricks and cloud object storage rather than a shared drive. Meanwhile the legacy pin() API from before the board model has been in a staged deprecation across at least three releases, escalated each time rather than removed.
Prediction
Expect another board or two as storage platforms are requested, and the legacy pin() functions to finally become errors; the format list will keep tracking whichever serializer the R community settles on.

Recent moves

  1. 5mo ago

    qs2 replaces qs; pins can be written in multiple formats

    Serialization tracking the ecosystem again - qs2 in, qs out - plus the ability to write one pin in several types at once, which matters when the consumers are not all R. Google Cloud Storage gains pin_list(), continuing the pattern of boards reaching feature parity over time.

    View source ↗
  2. 1y ago

    Pin previews on Connect; Databricks host normalization

    Small fixes concentrated on the two hosted backends: preview data for Posit Connect, and prepending the scheme to a Databricks host when it is missing. The legacy pin() deprecation is escalated another step.

    View source ↗
  3. 1y ago

    Adds board_databricks() and switches parquet to nanoparquet

    Databricks Volumes joins the board list, which is where the backend expansion has been heading, and parquet writing moves to nanoparquet - a lighter dependency for a format pins now treats as standard. The legacy API deprecation formally begins here.

    View source ↗
  4. 2y ago

    pin_write() arguments must be named; Connect caches removed

    A signature change forcing arguments like type and title to be passed by name, and the removal of Connect's content and user caches in favor of looking up the server every time. Both trade convenience for predictability.

    View source ↗
  5. 2y ago

    Message clarity and Google Drive dribble handling

    Documentation improvements and small fixes to how dots are checked and how board_gdrive() handles dribble objects. Nothing that changes what pins can do.

    View source ↗
  6. 2y ago

    board_gdrive() added; cache location configurable

    Google Drive becomes a board, and PINS_CACHE_DIR lets the cache location be set by environment variable rather than assumed - the kind of change that matters when pins runs somewhere other than a laptop.

    View source ↗