← Back to all sparks
P

piecepackr

ANALYTICS
Velocity0.0

R package piecepackr by piecepackr — release notes from GitHub.

A board game graphics package runs one of the most disciplined deprecation cycles in R.

board-gamesgraphicsr-package3d-renderinggrid-graphicsapi-deprecation
Current state
piecepackr renders game pieces — piecepack, chess, dominoes and related systems — as 2D grid graphics, 3D meshes, animations, and print-and-play PDFs. Its interface is mature enough that most releases are about managing change rather than adding capability: features get deprecated with a named replacement, live through a release or two, then get removed on schedule. The current release completes the cycle opened a year earlier, retiring the new_device and style arguments in favour of open_device and the composable font, border, background_color and edge_color set.
Where it's heading
Two things dominate the log. The first is that deprecation discipline, unusually explicit for a package this size — every removal names its successor, and deprecations announced in one release are removed in a predictable later one. The second is defensive dependency management: version bumps pinned around bugs introduced upstream in rayrender and rayvertex, a warning class for known-buggy cairo versions with an option to suppress it, and suggested packages required for metadata embedding with clear messages when they are absent. Functionality still arrives — vectorised 3D object export that finally handles composite pieces, new crosshair grobs, a reworked colour palette — but it arrives inside that maintenance rhythm rather than driving it.
Prediction
The features deprecated in this release — the preview_layout component and the 4x6 print-and-play size — are on the established path toward removal in a future version, with the documented ppdf-based replacement already in place.

Recent moves

  1. 3mo ago

    Year-old deprecations removed; new crosshair grobs added

    The removals promised in v1.15.1 land on schedule — new_device and the style argument are gone, with open_device and the font/border/colour arguments as documented replacements. Two new crosshair grobs arrive for registration marks, and two more features enter deprecation, including a print-and-play size the notes candidly describe as never having worked well with photo printing services.

    View source ↗
  2. 10mo ago

    Examples updated off the deprecated style argument

    Example code stops using an argument the package had already deprecated. Small, but consistent with a project that treats its own deprecation notices as binding on itself.

    View source ↗
  3. 1y ago

    Suit colours redrawn and piece styling made composable

    A breaking visual change — blue darkens, yellow brightens, and the previous shades return as new cyan and orange suits — paired with the API restructuring that matters more: a single style string gives way to independent font, border, background_color and edge_color arguments. Splitting one opaque argument into orthogonal ones is what made the later removals possible without losing capability.

    View source ↗
  4. 1y ago

    3D export vectorised, and composite pieces stop erroring

    save_piece_obj() becomes vectorised and returns a data frame of file paths, one row per piece, which allows a single piece to be represented by several Wavefront objects. That fixes a real limitation rather than a cosmetic one: composite pieces like the joystick pawn previously threw an error instead of exporting.

    View source ↗
  5. 1y ago

    rayrender pinned around an upstream bug

    A dependency version bump to avoid a rendering bug introduced upstream. One of several such pins in the log, and the reason this package's release notes read as much like defensive maintenance as development.

    View source ↗
  6. 2y ago

    rayvertex pinned around an upstream mesh bug

    The same pattern a year earlier, this time pinning rayvertex to avoid a bug affecting mesh generation. Depending on two separate 3D rendering backends means inheriting both of their regressions.

    View source ↗