constructive
constructive copied to clipboard
Extract constructive.core package to sub/ directory
Implements first step of package modularization by extracting core infrastructure into standalone constructive.core package in sub/ directory.
Package Structure
Created sub/constructive.core/ containing:
-
Core infrastructure (34 files):
construct(),construct_multi(),construct_diff(), helper utilities, options system, attribute repair, deparse functions - Base type methods (18 files): Constructors for NULL, atomic vectors, list, array, matrix, environment, function, language objects, pairlist, dots, externalptr, S4/object types
-
C++ code: External pointer and environment handling (updated for
constructive.corenamespace) - Tests: 26 test files with snapshots covering core functionality
- Metadata: DESCRIPTION, LICENSE, README, .Rbuildignore
Implementation Notes
- Package is self-contained and buildable independently
- Main
constructivepackage unchanged (code duplication maintained for now) - Updated
.Rbuildignoreto excludesub/from main package builds - Dependencies: cli, diffobj, methods, rlang, waldo
Next Steps
Future PRs will:
- Make main package depend on
constructive.core - Remove duplicated code from main package
- Extract additional packages (
constructive.base,constructive.ggplot2, etc.)
Addresses #638, supports #581 roadmap.
Original prompt
This section details on the original issue you should resolve
<issue_title>Extract constructive.core package</issue_title> <issue_description>See parent issue. The package should live in the
subdirectory in the root of this repository. </issue_description>Comments on the Issue (you are @copilot in this section)
- Fixes cynkra/constructive#638
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.