mangoro 0.2.15
- Add
go_binary_candidates()and strengthen Go discovery/validation (platform-specific search paths,go versionvalidation, and minimum Go version check). - Tinytest now checks Go candidates first and emits a short warning before skipping when Go is unavailable or unsuitable.
-
find_go()now warns when it falls back to PATH or platform defaults instead of an explicit user-provided Go path.
mangoro 0.2.13
- Added Go path overrides (
options(mangoro.go_path)/MANGORO_GO) with clearer platform messaging; Go path checks now occur at runtime only. - Add tinytest
tests/tinytest.R
mangoro 0.2.12
- Fixed leftover temp directory detritus: Configure scripts now use a predictable temp directory path (
${TMPDIR:-/tmp}/mangoro_go_home_$$) instead ofmktemp -dto ensure proper cleanup and avoid leaving temporary files in the check directory.
mangoro 0.2.11
- Fixes
~/.config/godirectory creation: All Go invocations (in configure scripts and R functions) now temporarily setHOMEto a temporary directory to prevent Go’s telemetry system from writing to~/.config/go. This is necessary because Go 1.23+ writes telemetry data toos.UserConfigDir()even for simple commands likego version. Both configure and configure.win scripts, as well asmangoro_go_build(),get_mangos_version(), andget_arrow_go_version()functions are now isolated. All environment variables are restored and temporary directories cleaned up after completion. This resolves the CRAN policy violation that caused the previous archive.
mangoro 0.2.10
- Go build telemetry and ~/.config side effect: The package now controls Go telemetry during build (default: off) and avoids populating ~/.config/go/telemetry and other user config/cache directories during installation and tests, complying with CRAN policy.
- Added a
telemetryparameter tomangoro_go_build()for explicit control of Go telemetry mode. - Configure improvements: The configure script now creates a config.log file for diagnostics and logging, improving reliability and transparency. Installation failures due to missing Go are now logged, and the script avoids suppressing diagnostics.
mangoro 0.2.6
CRAN release: 2025-11-25
- actually remove the generate_certs.R script from the package build
mangoro 0.2.5
CRAN Policy Compliance
- Replaced non-suppressible console output (
print()/cat()) withmessage()where appropriate (notablymangoro_go_build()), so information. - Updated
tools/generate_certs.Rto avoid writing into the package or user home by default: when no explicit--diris provided it writes into a temporary directory and reports the chosen path viamessage(); the script still accepts an explicit--dirfor persistent output. - Added
inst/AUTHORSandinst/COPYRIGHTSso vendored components and their license files are easy to find; full license/NOTICE/AUTHORS files remain in the vendor directories. - Added
LICENSE.notesummarizing the license types present in vendored code. - Added
Copyright: See inst/AUTHORStoDESCRIPTIONto make copyright ownership explicit as requested by CRAN.
mangoro 0.2.3
CRAN Policy Compliance
-
mangoro_go_build()now setsGOCACHEto a temporary directory by default to prevent populating~/.cache/go-buildduring package checks, complying with CRAN policy - Added
gocacheparameter tomangoro_go_build()for users who want to specify a custom cache location or use the default Go cache (gocache = NA) - Maintains backward compatibility while ensuring CRAN compliance
mangoro 0.2.2
CRAN Packaging Improvements
- Fixed long path warnings by relocating flatbuf files during build process
- Flatbuf files now stored in
tools/flatbuf/and restored during package installation via configure script - Configure scripts updated to be POSIX-compliant (replaced bashisms with standard sh syntax)
- Moved
processxfrom Imports to Suggests (only used in tests) - Package now passes
R CMD check --as-cranwith no warnings
mangoro 0.2.1
RPC Interface
- New
rgoipcGo package for type-safe function registration with Arrow schema validation - RPC protocol wrapping Arrow IPC data with function call envelope
- RPC helper functions:
mangoro_rpc_get_manifest(),mangoro_rpc_call(),mangoro_rpc_send(),mangoro_rpc_recv(),mangoro_rpc_parse_response() - RPC example server demonstrating function registration (add, echoString functions)
- HTTP file server with RPC control interface (start/stop/status commands)
- Helper functions for HTTP server control:
mangoro_http_start(),mangoro_http_stop(),mangoro_http_status()
mangoro 0.2.0
Initial Release
- R/Go IPC using Nanomsg Next Gen (mangos v3, nanonext)
- Vendored Go dependencies for reproducible builds
- Helper functions to build and run Go binaries from R
- Example echo server and on-the-fly Go compilation from R
- Platform-correct IPC path helpers
- Designed for extensibility and cross-platform use
- We do not cgo’s c-shared mode to avoid loading multiple Go runtimes in the same R session
Arrow Go IPC Support
- Add Arrow Go IPC roundtrip example and support: send and receive Arrow IPC streams between R and Go using nanoarrow and arrow-go.
- New function:
get_arrow_go_version()to report the vendored Arrow Go version.