A new maintenance release 0.4.22 of RProtoBuf arrived on CRAN earlier today. RProtoBuf provides R with bindings for the Google Protocol Buffers (“ProtoBuf”) data encoding and serialization library used and released by Google, and deployed very widely in numerous projects as a language and operating-system agnostic protocol.
This release matches the recent 0.4.21 release which enabled use of the package with newer ProtoBuf releases. Tomas has been updating the Windows / rtools side of things, and supplied us with simple PR that will enable building with those updated versions once finalised.
The following section from the NEWS.Rd file has full details.
Changes in RProtoBuf version 0.4.22 (2022-12-13)
- Apply patch by Tomas Kalibera to support updated rtools to build with newer ProtoBuf releases on windows
Thanks to my CRANberries, there is a diff to the previous release. The RProtoBuf page has copies of the (older) package vignette, the ‘quick’ overview vignette, and the pre-print of our JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can sponsor me at GitHub.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
An exciting new release 0.4.21 of RProtoBuf arrived on CRAN earlier today. RProtoBuf provides R with bindings for the Google Protocol Buffers (“ProtoBuf”) data encoding and serialization library used and released by Google, and deployed very widely in numerous projects as a language and operating-system agnostic protocol.
ProtoBuf
development, following what seemed like a multi-year lull, all of a
sudden picked up again with a vengeance a little while ago. And the
library releases we rely on for convenience and provided by the Linux
distributions are lagging. So last summer we received an excellent, and
focussed, pull request
#93 offering to update the package to the newer ProtoBuf 22.0 and beyond.
(Aside: When a library ditches its numbering scheme you know changes are
‘for real’. My Ubuntu 23.10 box is still at 3.21 in a different counting
scheme
The following section from the NEWS.Rd file has full details.
Changes in RProtoBuf version 0.4.21 (2022-12-13)
Package now builds with ProtoBuf >= 22.x thanks to Matteo Gianella (#93 addressing #92).
An Alpine 3.19-based workflow was added to test this in continuous integration thanks to a suggestion by Sebastian Meyer.
A large number of old-style
.Call
were updated (#96).Several packaging, dcoumentation and testing items were updated.
Thanks to my CRANberries, there is a diff to the previous release. The RProtoBuf page has copies of the (older) package vignette, the ‘quick’ overview vignette, and the pre-print of our JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can sponsor me at GitHub.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new release 0.4.20 of RProtoBuf arrived on CRAN earlier today. RProtoBuf provides R with bindings for the Google Protocol Buffers (“ProtoBuf”) data encoding and serialization library used and released by Google, and deployed very widely in numerous projects as a language and operating-system agnostic protocol.
This release is somewhat mechanical and in the spirit of many other recent releases. clang-15
is, as more recent compilers do, more stringent on definitions and wants to see some void
in argument-less signatures. Happy to oblige. At the same time, GitHub Actions started to nag us about minimum versions of node
code so an upgrade to a newer action is warranted, again as with many other affected packages. We also found another http://
URL hiding somewhere so that was cleaned. Lastly, it appears Protocol Buffers themselves moved on and now need / prefer C++17 so were happy to oblige.
The following section from the NEWS.Rd file has full details.
Changes in RProtoBuf version 0.4.20 (2022-11-02)
Two function prototype were updated for
clang-15
.GitHub Actions were updated to checkout version 3.
One more http:// URL was updated to https://
The package compilation is now donw with C++17 as the Protocol Buffer headers require it (and
clang-15
nags otherwise).
Thanks to my CRANberries, there is a diff to the previous release. The RProtoBuf page has copies of the (older) package vignette, the ‘quick’ overview vignette, and the pre-print of our JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new release 0.4.19 of RProtoBuf arrived on CRAN earlier today. RProtoBuf provides R with bindings for the Google Protocol Buffers (“ProtoBuf”) data encoding and serialization library used and released by Google, and deployed very widely in numerous projects as a language and operating-system agnostic protocol.
This release contains a pull request contribution by Michael Chirico to add support for the TextFormat
API, a minor maintenance fix ensuring (standard) string are referenced as std::string
to avoid a hickup on Arch builds, some repo updates, plus reporting of (package and library) versions on startup. The following section from the NEWS.Rd file has more details.
Changes in RProtoBuf version 0.4.19 (2022-05-06)
Thanks to my CRANberries, there is a diff to the previous release. The RProtoBuf page has copies of the (older) package vignette, the ‘quick’ overview vignette, and the pre-print of our JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new release 0.4.18 of RProtoBuf arrived on CRAN earlier today. RProtoBuf provides R with bindings for the Google Protocol Buffers (“ProtoBuf”) data encoding and serialization library used and released by Google, and deployed very widely in numerous projects as a language and operating-system agnostic protocol.
This release, the first since March of last year, contains two contributed pull requests improving or extending the package, some internal maintance updating the CI setup as well as retiring an old-yet-unused stub interface for RPC, as well as an update for UCRT builds on Windows.
The following section from the NEWS.Rd file has more details.
Changes in RProtoBuf version 0.4.18 (2021-12-15)
Support
string_view
inFindMethodByName()
(Adam Cozzette in #72).CI use was updated first at Travis, later at GitHub and now uses r-ci (Dirk in #74 and (parts of) #76).
The (to the best of our knowledge) unused minimal RPC mechanism has been removed, retiring one method and one class as well as the import of the RCurl package (Dirk in #76).
The
toJSON()
method supports two (upstream) formatting toggles (Vitali Spinu in #79 with minor edit by Dirk).Windows UCRT builds are now supported (Jeroen in #81, Dirk and Tomas Kalibera in #82).
Thanks to my CRANberries, there is a diff to the previous release. The RProtoBuf page has copies of the (older) package vignette, the ‘quick’ overview vignette, and the pre-print of our JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new release 0.4.17 of RProtoBuf is now on CRAN. RProtoBuf provides R with bindings for the Google Protocol Buffers (“ProtoBuf”) data encoding and serialization library used and released by Google, and deployed very widely in numerous projects as a language and operating-system agnostic protocol.
This release contains small polishes related to the release 0.4.16 which added JSON support for messages, and switched to ByteSizeLong
. This release now makes sure JSON functionality is only tested where available (on version 3 of the Protocol Buffers library), and that ByteSizeLong
is only called where available (version 3.6.0 or later). Of course, older versions build as before and remain fully supported.
Changes in RProtoBuf version 0.4.17 (2020-03-xx)
CRANberries provides the usual diff to the previous release. The RProtoBuf page has copies of the (older) package vignette, the ‘quick’ overview vignette, and the pre-print of our JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub. For the first year, GitHub will match your contributions.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new release 0.4.16 of RProtoBuf is now on CRAN. RProtoBuf provides R with bindings for the Google Protocol Buffers (“ProtoBuf”) data encoding and serialization library used and released by Google, and deployed very widely in numerous projects as a language and operating-system agnostic protocol.
This release contains a PR contributed by Siddhartha Bagaria which adds JSON support for messages, which had been an open wishlist item. I also appeased a clang
deprecation warning that had come up on one of the CRAN test machines.
Changes in RProtoBuf version 0.4.16 (2020-03-19)
CRANberries provides the usual diff to the previous release. The RProtoBuf page has copies of the (older) package vignette, the ‘quick’ overview vignette, and the pre-print of our JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub. For the first year, GitHub will match your contributions.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new release 0.4.15 of RProtoBuf just arrived at CRAN. RProtoBuf provides R with bindings for the Google Protocol Buffers (“ProtoBuf”) data encoding and serialization library used and released by Google, and deployed very widely in numerous projects as a language and operating-system agnostic protocol.
This release contains a small bug fix for repeated messages and groups. While making changes, I used the opportunity to change the unit testing framework to the excellent and lightweight tinytest package permitting, among other things, tests of the installed package, and also simplified the build by using pre-made pdf vignettes. A list of changes follows below.
As one heads-up and deprecation message, we are planning to remove the (entirely unused as best as we can tell, and minimal) remote procedure call feature. Protocol Buffers itself always lacked this, but eventually gRPC arrived to fill that void. All use cases should rely on it. So we prepared a test release 0.14.15.1 corresponding to the feature/retire_minimal_rpc branch. You can install this dev release from the ghrr drat repo via one of the drat-assisted commands, or directly via install.packages("RProtoBuf", repos="https://ghrr.github.io/drat")
. Please do so and test if you suspect that the change may affect you. Otherwise the removal is likely to happen in the next release (but we will strive to wait a couple of months before doing so).
Changes in RProtoBuf version 0.4.15 (2020-02-08)
CRANberries provides the usual diff to the previous release. The RProtoBuf page has copies of the (older) package vignette, the ‘quick’ overview vignette, and the pre-print of our JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub. For the first year, GitHub will match your contributions.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new release 0.4.14 of RProtoBuf is arriving at CRAN. RProtoBuf provides R with bindings for the Google Protocol Buffers (“ProtoBuf”) data encoding and serialization library used and released by Google, and deployed very widely in numerous projects as a language and operating-system agnostic protocol.
This release contains two very helpful pull requests by Jarod Meng that solidify behaviour in two corner cases of message translation. Jeroen also updated the Windows build settings which will help with the upcoming transition to a new Rtools version.
Changes in RProtoBuf version 0.4.14 (2019-06-30)
CRANberries provides the usual diff to the previous release. The RProtoBuf page has copies of the (older) package vignette, the ‘quick’ overview vignette, and the pre-print of our JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new release 0.4.13 of RProtoBuf got onto CRAN a few hours ago. RProtoBuf provides R with bindings for the Google Protocol Buffers (“ProtoBuf”) data encoding and serialization library used and released by Google, and deployed fairly widely in numerous projects as a language and operating-system agnostic protocol.
It would also appear that I failed to blog about release 0.4.12 from July. Both releases contain a number of very nice and focused contributed pull requests – see below for more – as well as some standard packaging maintenance.
Changes in RProtoBuf version 0.4.13 (2018-11-03)
The
configure
setup is more robust with respect to the C++ setup (CRAN request).
POSIXlt
elements are now properly serialized too (Jeffrey Shen in #48 and #50 fixing #47)Added two Dockerfiles for continuous integration and use; see this url for more.
Changes in RProtoBuf version 0.4.12 (2018-07-11)
Recursive serialization of sublists returning themselves is now recognised (Jeffrey Shen in #38 fixing #37)
New function
readProtoFiles2
to be consistent withprotoc
(Siddhartha Bagaria in #40 fixing #39)Update Windows binary library used (Maciej Lach and Jeroen Ooms in #42 and follow-up commits)
New unit tests for new functionality (Siddhartha Bagaria in #45)
CRANberries also provides a diff to the previous release. The RProtoBuf page has copies of the (older) package vignette, the ‘quick’ overview vignette, a unit test summary vignette, and the pre-print for the JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
RProtoBuf provides R bindings for the Google Protocol Buffers ("ProtoBuf") data encoding and serialization library used and released by Google, and deployed fairly widely in numerous projects as a language and operating-system agnostic protocol.
A new releases RProtoBuf 0.4.11 appeared on CRAN earlier today. Not unlike the other recent releases, it is mostly a maintenance release which switches two of the vignettes over to using the pinp package and its template for vignettes.
Changes in RProtoBuf version 0.4.11 (2017-10-03)
The
RProtoBuf-intro
andRProtoBuf-quickref
vignettes were converted to Rmarkdown using the templates and style file from the pinp package.A few minor internal upgrades
CRANberries also provides a diff to the previous release. The RProtoBuf page has copies of the (older) package vignette, the 'quick' overview vignette, a unit test summary vignette, and the pre-print for the JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
RProtoBuf provides R bindings for the Google Protocol Buffers ("ProtoBuf") data encoding and serialization library used and released by Google, and deployed fairly widely in numerous projects as a language and operating-system agnostic protocol.
A new releases RProtoBuf 0.4.10 just appeared on CRAN. It is a maintenance releases replacing one leftover errorenous use of package=
in .Call
with the correct PACKAGE=
(as requsted by CRAN). It also integrates a small robustification in the deserializer when encountering invalide objects; this was both reported and fixed by Jeffrey Shen.
Changes in RProtoBuf version 0.4.10 (2017-08-13)
CRANberries also provides a diff to the previous release. The RProtoBuf page has an older package vignette, a 'quick' overview vignette, a unit test summary vignette, and the pre-print for the JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
RProtoBuf provides R bindings for the Google Protocol Buffers ("Protobuf") data encoding and serialization library used and released by Google, and deployed as a language and operating-system agnostic protocol by numerous projects.
The RProtoBuf 0.4.9 release is the fourth and final update this weekend following the request by CRAN to not use package=
in .Call()
when PACKAGE=
is really called for.
Some of the code in RProtoBuf 0.4.9 had this bug; some other entry points had neither (!!). With the ongoing drive to establish proper registration of entry points, a few more issues were coming up, all of which are now addressed. And we had some other unreleased minor cleanup, so this made for a somewhat longer (compared to the other updates this weekend) NEWS list:
Changes in RProtoBuf version 0.4.9 (2017-03-06)
A new file
init.c
was added with calls toR_registerRoutines()
andR_useDynamicSymbols()
Symbol registration is enabled in
useDynLib
Several missing
PACKAGE=
arguments were added to the corresponding.Call
invocationsTwo (internal) C++ functions were renamed with suffix
_cpp
to disambiguate them from R functions with the same nameAll of above were part of #26
Some editing corrections were made to the introductory vignette (David Kretch in #25)
The 'configure.ac' file was updated, and renamed from the older converntion 'configure.in', along with 'src/Makevars'. (PR #24 fixing #23)
CRANberries also provides a diff to the previous release. The RProtoBuf page has an older package vignette, a 'quick' overview vignette, a unit test summary vignette, and the pre-print for the JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Issue ticket #20 demonstrated that we had not yet set up Windows for version 3 of Google Protocol Buffers ("Protobuf") -- while the other platforms support it. So I made the change, and there is release 0.4.8.
RProtoBuf provides R bindings for the Google Protocol Buffers ("Protobuf") data encoding and serialization library used and released by Google, and deployed as a language and operating-system agnostic protocol by numerous projects.
The NEWS
file summarises the release as follows:
Changes in RProtoBuf version 0.4.8 (2017-01-17)
CRANberries also provides a diff to the previous release. The RProtoBuf page has an older package vignette, a 'quick' overview vignette, a unit test summary vignette, and the pre-print for the JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
CRAN requested a release updating any URLs for Omegahat to the (actually working) omegahat.net URL. The RProtoBuf package had this in one code comment (errr...) and on bibfile entry. Oh well -- so that caused this 0.4.7 release which arrived on CRAN today. It contains the requested change, and pretty much nothing else.
RProtoBuf provides R bindings for the Google Protocol Buffers ("Protobuf") data encoding and serialization library used and released by Google, and deployed as a language and operating-system agnostic protocol by numerous projects.
The NEWS
file summarises the release as follows:
Changes in RProtoBuf version 0.4.7 (2016-10-27)
- At the request of CRAN, two documentation instances referring to the Omegehat repository were updated to http://omegahat.net
CRANberries also provides a diff to the previous release. The RProtoBuf page has an older package vignette, a 'quick' overview vignette, a unit test summary vignette, and the pre-print for the JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Relatively quickly after version 0.4.5 of RProtoBuf was released, we have a new version 0.4.6 to announce which appeared on CRAN today.
RProtoBuf provides R bindings for the Google Protocol Buffers ("Protobuf") data encoding and serialization library used and released by Google, and deployed as a language and operating-system agnostic protocol by numerous projects.
This version contains a contributed bug-fix pull request covering conversion of zero-length vectors, and adding native support for S4 objects. At the request / suggestion of the CRAN maintainers, it also uncomments a LaTeX macro in the vignette (corresponding to our recent JSS paper paper) which older R versions do not (yet) have in their jss.cls
file.
Changes in RProtoBuf version 0.4.6 (2016-09-08)
CRANberries also provides a diff to the previous release. The RProtoBuf page has an older package vignette, a 'quick' overview vignette, a unit test summary vignette, and the pre-print for the JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A few short weeks after the 0.4.4 release of RProtoBuf, we are happy to announce a new version 0.4.5 which appeared on CRAN earlier today.
RProtoBuf provides R bindings for the Google Protocol Buffers ("Protobuf") data encoding library used and released by Google, and deployed as a language and operating-system agnostic protocol by numerous projects.
This release brings support to the recently-release 'version 3' Protocol Buffers standard, used e.g. by the (very exciting) gRPC project (which was just released as version 1.0). RProtoBuf continues to supportv 'version 2' but now also cleanly support 'version 3'.
Changes in RProtoBuf version 0.4.5 (2016-08-29)
Support for version 3 of the Protcol Buffers API
Added 'syntax = "proto2";' to all proto files (PR #17)
Updated Travis CI script to test against both versions 2 and 3 using custom-built .deb packages of version 3 (PR #16)
Improved build system with support for custom CXXFLAGS (Craig Radcliffe in PR #15)
CRANberries also provides a diff to the previous release. The RProtoBuf page has an older package vignette, a 'quick' overview vignette, a unit test summary vignette, and the pre-print for the JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new release 0.4.4 of RProtoBuf is now on CRAN, and corresponds to the source archive for the Journal of Statistical Software paper about RProtoBuf as JSS vol71 issue 02. The paper is also included as a pre-print in the updated package.
RProtoBuf provides R bindings for the Google Protocol Buffers ("Protobuf") data encoding library used and released by Google, and deployed as a language and operating-system agnostic protocol by numerous projects.
This release brings small cleanups as well as build-system updates for the updated R 3.3.0 infrastructure based on g++ 4.9.*.
Changes in RProtoBuf version 0.4.4 (2016-07-10)
New vignette based on our brand-new JSS publication (v71 i02)
Some documentation enhancements were made, as well as other minor cleanups to file modes and operations
Unit-test vignette no longer writes to
/tmp
per CRAN requestThe new Windows toolchain (based on g++ 4.9.*) is supported
CRANberries also provides a diff to the previous release. The RProtoBuf page has an older package vignette, a 'quick' overview vignette, a unit test summary vignette, and the pre-print for the JSS paper. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new maintenance release 0.4.3 of RProtoBuf is now on CRAN. RProtoBuf provides R bindings for the Google Protocol Buffers ("Protobuf") data encoding library used and released by Google, and deployed as a language and operating-system agnostic protocol by numerous projects.
This release comes upon the request of CRAN and adds additional import statements to the NAMESPACE
file. While we were at it, a few more things got cleaned up and edited---but no new code was added. Full details are below.
Changes in RProtoBuf version 0.4.3 (2015-08-25)
Declare additional imports from methods in
NAMESPACE
.Travis CI tests now run faster as all CRAN dependencies are installed as binaries.
The
tools/winlibs.R
script now tests for R (< 3.3.0) before calling the (soon-to-be phased out)setInternet2()
function.Several small edits were made to
DESCRIPTION
to clarify library dependencies, provide additonal references and conform to now-current R packaging standards.
CRANberries also provides a diff to the previous release. The RProtoBuf page has a package vignette, a a 'quick' overview vignette, and a unit test summary vignette. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new release 0.4.2 of RProtoBuf is now on CRAN. RProtoBuf provides R bindings for the Google Protocol Buffers ("Protobuf") data encoding library used and released by Google, and deployed as a language and operating-system agnostic protocol by numerous projects.
Murray and Jeroen did almost all of the heavy lifting. Many changes were triggered by two helpful referee reports, and we are slowly getting to the point where we will resubmit a much improved paper. Full details are below.
Changes in RProtoBuf version 0.4.2 (2014-12-10)
Address changes suggested by anonymous reviewers for our Journal of Statistical Software submission.
Make
Descriptor
andEnumDescriptor
objects subsettable with "[[
".Add
length()
method forDescriptor
objects.Add
names()
method forMessage
,Descriptor
, andEnumDescriptor
objects.Clarify order of returned list for descriptor objects in
as.list
documentation.Correct the definition of
as.list
forEnumDescriptors
to return a proper list instead of a named vector.Update the default print methods to use
cat()
withfill=TRUE
instead ofshow()
to eliminate the confusing[1]
since the classes in RProtoBuf are not vectorized.Add support for serializing function, language, and environment objects by falling back to R's native serialization with
serialize_pb
andunserialize_pb
to make it easy to serialize into a Protocol Buffer all of the more than 100 datasets which come with R.Use
normalizePath
instead of creating a temporary file withfile.create
when getting absolute path names.Add unit tests for all of the above.
CRANberries also provides a diff to the previous release. RProtoBuf page which has a draft package vignette, a a 'quick' overview vignette, and a unit test summary vignette. Questions, comments etc should go to the GitHub issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
CRANberries also provides a diff to the previous release. More information is at the RProtoBuf page which has a draft package vignette, a 'quick' overview vignette and a unit test summary vignette. Questions, comments etc should go to the rprotobuf mailing list off the RProtoBuf page at R-Forge.Changes in RProtoBuf version 0.4.1 (2014-03-25)
Document and add a test for the deprecated group functionality.
Add a
CITATION
file pointing to our arXiv.org preprint.Fix a bug in the
show
method forEnumDescriptor
types.Import all top-level enums from imported
.proto
files.Removed duplicate enum value type from the unit tests that caused problems with the most recent libprotobuf-2.5. (without option allow_alias).
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
llvm-format
was particular helpful to
make our coding style a little more consistent.
The complete NEWS file entry for this release follows:
CRANberries also provides a diff to the previous release 0.3.2. More information is at the RProtoBuf page which has a draft package vignette, a 'quick' overview vignette and a unit test summary vignette. Questions, comments etc should go to the rprotobuf mailing list off the RProtoBuf page at R-Forge.Changes in RProtoBuf version 0.4.0 (2014-01-14)
Changes to support CRAN builds for MS Windows.
Added functions
serialize_pb
,unserialize_pb
, andcan_serialize_pb
plus documentation from Jeroen Ooms RProtoBufUtils package.New dir
inst/python
with some Python examples.Added Jeroen Ooms as author.
Vignettes have been converted to the R 3.0.0 or later use of external vignette builders, no longer need a
Makefile
Added missing methods to dollar completion list for Message, Descriptor, EnumValueDescriptor, and FileDescriptor classes.
Add missing export for
.DollarNames
EnumValueDescriptor to allow completion on that class.Add more than 15 additional pages to the main Intro vignette documenting better all of the S4 classes implemented by RProtoBuf, updating the type mapping tables to take into account 64-bit support, and documenting advanced features such as Extensions.
Added better error checking in EnumDescriptors to catch the case when wrong types are provided.
Updated the FileDescriptor
name()
method to accept a boolean for full paths just like the genericname()
method.Correct a bug that incorrectly dispatched
as.character()
whenas.list()
was called on Descriptor objects.Update FileDescriptor
$
dispatch to work properly for the names of fields defined in the FileDescriptor, instead of just returningNULL
even for types returned by$
completion.Added a reservation for extension fields in the example tutorial.Person schema.
Support setting int32 fields with character representations and raise an R-level
stop()
error if the provided string can not be parsed as a 32-bit integer, rather than crashing the R instance.Update the project TODO file.
Add better documentation and tests for all of the above.
Corrected the handling of uint32 and fixed32 types in protocol buffers to ensure that they work with numbers as large as 2^32 - 1, which is larger than an integer can hold in R since R does not have an unsigned integer class. These values are stored as doubles internally now to avoid losing precision.
Added unit tests to verify behavior of RProtoBuf with extreme values for uint32 types.
Removed old exception handling code and instead rely on the more modern Rcpp::stop method maintained in Rcpp.
Add better error messages when setting a repeated field of messages to inform the user which element index was of the wrong type and what the expected type was.
Add an optional 'partial' argument to readASCII allowing uninitialized message fragments to be read in.
(internal) Added const qualifiers in more places throughout the C++ code for type safety.
(internal) Standardize coding conventions of the C++ files and run them through clang-format for consistency. A STYLE file has been submitted to R-Forge with details about the coding standards and how they are enforced with Emacs and clang-format.
Applied changes suggested by Kevin Ushey to the
S4
class handling to support both the currently released Rcpp as well as the currently pending next version.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
As for the last few releases, Murray took charge of most changes. The NEWS file entry follows:
CRANberries also provides a diff to the previous release 0.3.1. More information is at the RProtoBuf page which has a draft package vignette, a 'quick' overview vignette and a unit test summary vignette. Questions, comments etc should go to the rprotobuf mailing list off the RProtoBuf page at R-Forge.Changes in RProtoBuf version 0.3.2 (2013-12-15)
Fixed a bug that erroneously prevented users from setting raw byte fields in protocol buffers under certain circumstances.
Give a user friendly error message when seting an extension to a message of the wrong type instead of causing a C++ check failure that terminates the Rsession.
Change object table lookup slightly to allow users to use the
<<-
operator in code using RProtoBuf without hitting astop()
error in the lookup routine.Add missing
enum_type
method and improve show method for EnumValueDescriptors.Improve documentation and tests for all of the above.
Rewrote
tests/
script calling RUnit tests
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Once again, Murray lead this release and added a number improvements. The NEWS file entry follows:
CRANberries also provides a diff to the previous release 0.3.0. More information is at the RProtoBuf page which has a draft package vignette, a 'quick' overview vignette and a unit test summary vignette. Questions, comments etc should go to the rprotobuf mailing list off the RProtoBuf page at R-Forge.Changes in RProtoBuf version 0.3.1 (2013-09-13)
Added support for setting and getting 64-bit integer types as character strings of decimal integers to work around R's lack of native 64-bit integer types.
Added better error handling, documentation, and tests to the extensions support (getExtension and setExtension).
Add support to P for returning extension descriptors.
Improved error messages to include field names when invalid fields are specified to protocol buffer messages with new, update, etc.
Improved configure to detect and pass
-std=c++0x
if it is available to enable long long 64-bit integer support in Rcpp.Improved configure in the case when pkg-config is not available or does not know about the google protocol buffer includes.
Replaced newly deprecated Rcpp macros with a simplified macro functionality to avoid warnings on the latest development version of Rcpp.
Murray added a lot of new features which merited the increase in the minor number. The NEWS file entry follows below:
CRANberries also provides a diff to the previous release 0.2.6. More information is at the RProtoBuf page which has a draft package vignette, a 'quick' overview vignette and a unit test summary vignette. Questions, comments etc should go to the rprotobuf mailing list off the RProtoBuf page at R-Forge.Changes in RProtoBuf version 0.3 (2013-07-13)
Added support for Protocol Buffer extensions through the new getExtension and setExtension methods for Message objects, and added top-level extensions to the descriptor pool.
Added more user-friendly
show()
methods for Messages, Descriptors, and other RProtoBuf objects. A common source of confusion on the mailing lists is to confuse Messages and Descriptors. The newshow()
methods succinctly display more information about e.g. the number of set fields in a message to make it a little clearer to users what type of object they are working with.Added has method for EnumDescriptor objects to test existance of a named constant in an enumeration, and fix a bug in the length method for these objects.
Added a number method for EnumValueDescriptor objects to return the number of a named enumeration constant directly.
Improved documentation and unit tests.
This release was once more driven largely by Murray whom we have now added among the list of authors of the package too. The NEWS file entry follows below:
CRANberries also provides a diff to the previous release 0.2.5. More information is at the RProtoBuf page which has a draft package vignette, a 'quick' overview vignette and a unit test summary vignette. Questions, comments etc should go to the rprotobuf mailing list off the RProtoBuf page at R-Forge.Changes in version 0.2.6 (2012-10-04)
Applied several more patches by Murray to
correct '_' and '__' mismatches in wrapper calls
update a few manual pages for style, and add examples
fix a bug where NAs were silently treated as TRUE for logical/bool types
fix a bug that caused crashes when adding vectors to optional fields
fix bugs in readASCII that returned empty protocol buffers when the file or connection could not be opened
distinguish between non-existant and not-set fieldswith has() by returning NULL in the former case.
fix a bug that caused non-deterministic behavior when setting a repeated message field in a protobuf to a single Message.
add unit tests for all of the above.
Added Murray to Authors: field in DESCRIPTION
Removed old and unconvincing example on RProtoBuf for storage and serialization in an imagined HighFrequencyFinance context
This release once again contains a number of patches kindly contributed by Murray Stokely, as well as some updates to conform to CRAN Policy changes.
The NEWS file entry follows below:
CRANberries also provides a diff to the previous release 0.243. More information is at the RProtoBuf page which has a draft package vignette, a 'quick' overview vignette and a unit test summary vignette. Questions, comments etc should go to the rprotobuf mailing list off the RProtoBuf page at R-Forge.Changes in version 0.2.5 (2012-08-08)
Applied patches by Murray to
correctly deal with nested Protocol Buffer definitions, and also add new unit test for this
test a a protocol buffer for missing required fields before serializing it, also add a unit test
add a small stylistic fix and examples to the 'add.Rd' manual page
Moved inst/doc/ to vignettes/ per newer CRAN Policy
This release once again contains a number of patches kindly contributed by Murray Stokely, as well as an added header file needed to build with the g++ 4.7 version which has become the build standard on CRAN.
The NEWS file entry follows below:
CRANberries also provides a diff to the previous release 0.2.3. More information is at the RProtoBuf page which has a draft package vignette, a 'quick' overview vignette and a unit test summary vignette. Questions, comments etc should go to the rprotobuf mailing list off the RProtoBuf page at R-Forge. Updated to show NEWS rather than ChangeLog0.2.4 2012-05-15 o Applied several patches kindly supplied by Murray Stokely to - properly work with repeated strings - correct C++ function naming in a few instances - add an example of ascii export/import of messages o Suppport g++-4.7 and stricter #include file checking by adding unistd o Made small improvements to the startup code
The NEWS file entry follows below:
And courtesy of CRANberries, here is the diff to the previous release 0.2.2:0.2.3 2011-04-12 o Protect UINT64 and INT64 with '#ifdef RCPP_HAS_LONG_LONG' which itself is valid with either g++ <= 4.4, or newer versions if the -std=c++0x is used o The documentation Makefile now uses the $R_HOME environment variable o The documentation Makefile no longer calls clean in the all target
Diff between RProtoBuf versions 0.2.2 dated 2011-01-12 and 0.2.3 dated 2011-04-13 RProtoBuf-0.2.2/RProtoBuf/inst/doc/RProtoBuf-quickref.Rnw |only RProtoBuf-0.2.3/RProtoBuf/ChangeLog | 23 RProtoBuf-0.2.3/RProtoBuf/DESCRIPTION | 8 RProtoBuf-0.2.3/RProtoBuf/R/with.R | 12 RProtoBuf-0.2.3/RProtoBuf/cleanup | 3 RProtoBuf-0.2.3/RProtoBuf/inst/NEWS | 10 RProtoBuf-0.2.3/RProtoBuf/inst/doc/Makefile | 42 RProtoBuf-0.2.3/RProtoBuf/inst/doc/RProtoBuf-quickref.pdf |binary RProtoBuf-0.2.3/RProtoBuf/inst/doc/RProtoBuf-unitTests.pdf |binary RProtoBuf-0.2.3/RProtoBuf/inst/doc/RProtoBuf.pdf | 1267 +++++----- RProtoBuf-0.2.3/RProtoBuf/inst/doc/unitTests-results/RProtoBuf-unitTests.html | 20 RProtoBuf-0.2.3/RProtoBuf/inst/doc/unitTests-results/RProtoBuf-unitTests.txt | 14 RProtoBuf-0.2.3/RProtoBuf/src/extractors.cpp | 44 RProtoBuf-0.2.3/RProtoBuf/src/mutators.cpp | 55 RProtoBuf-0.2.3/RProtoBuf/src/wrapper_FieldDescriptor.cpp | 24 15 files changed, 819 insertions(+), 703 deletions(-)
As always, there is more information at the RProtoBuf page which has a draft package vignette, a 'quick' overview vignette and a unit test summary vignette. Questions, comments etc should go to the rprotobuf mailing list off the RProtoBuf page at R-Forge.
The NEWS file entry follows below:
And courtesy of CRANberries, here is the diff to the previous release 0.2.1:0.2.2 2011-01-11 o Applied two patches by Murray Stokely which - correct a typo preventing some functions from being called, - add bounds checking in call to google protobuf library, - add a new name method - add a tiny unit test for the above - add more graceful error handling - add support for import patterns other than .proto$, - add simple reading file that does not exist (exception) test - add simple repeated field unit test
ChangeLog | 35 DESCRIPTION | 8 R/00classes.R | 11 R/internals.R | 7 R/wrapper_EnumDescriptor.R | 6 inst/NEWS | 12 inst/THANKS |only inst/doc/Makefile | 4 inst/doc/RProtoBuf-quickref.pdf |binary inst/doc/RProtoBuf-unitTests.pdf |binary inst/doc/RProtoBuf.pdf | 2362 +++++++++----------- inst/doc/unitTests-results/RProtoBuf-unitTests.html | 20 inst/doc/unitTests-results/RProtoBuf-unitTests.txt | 23 inst/unitTests/runit.addressbook.R | 11 inst/unitTests/runit.enums.R |only inst/unitTests/runit.golden.message.R | 7 inst/unitTests/runit.import.R |only man/EnumDescriptor-class.Rd | 42 man/EnumValueDescriptor-class.Rd | 23 man/readProtoFiles.Rd | 3 src/DescriptorPoolLookup.cpp | 26 src/S4_classes.h | 6 src/wrapper_EnumDescriptor.cpp | 25 src/wrapper_EnumValueDescriptor.cpp | 25 24 files changed, 1357 insertions(+), 1299 deletions(-)
As always, there is more information at the RProtoBuf page which has a draft package vignette, a 'quick' overview vignette and a unit test summary vignette. Questions, comments etc should go to the rprotobuf mailing list off the RProtoBuf page at R-Forge.
This releases extends the recent 0.2.0 release of RProtoBuf with a patch for raw bytes serialization which Koert Kuipers kindly contributed. This helps RProtoBuf for RPC communication where raw bytes are often a preferred form.
As always, there is more information at the RProtoBuf page which has a draft package vignette, a 'quick' overview vignette and a unit test summary vignette. Questions, comments etc should go to the rprotobuf mailing list off the RProtoBuf page at R-Forge.
This is only the second release after 0.1-0 more than six months ago. Given that Rcpp is such a key ingedrient for RProtoBuf, and that Rcpp underwent so many exciting changes itself, Romain and I never got around to releasing new versions of RProtoBuf. This version is now much closer to the actual C++ API and fairly feature rich. We summarised a few of these new things in the presentation at useR! 2010.
There is more information at the RProtoBuf page; there is a draft package vignette, a 'quick' overview vignette and a unit test summary vignette. Questions, comments etc should go to the rprotobuf mailing list off the RProtoBuf page at R-Forge.
RProtoBuf had a funny start. I had blogged about the 12 hour passage from proof of concept to R-Forge project following the ORD session hackfest in October. What happened next was as good. Romain emailed within hours of the blog post and reminded me of a similar project that is part of Saptarshi Guha's RHIPE R/Hadoop implementation. So the three of us--Romain, Saptarshi and I---started emailing and before long it becomes clear that Romain is both rather intrigued by this (whereas Saptarshi has slightly different needs for the inner workings of his Hadoop bindings) and was able to devote some time to it. So the code kept growing and growing at a fairly rapid clip. Til that stopped as we switched to working feverishly on Rcpp to both support the needs of this project, and to implement ideas we had while working on this. That now lead to the point where Rcpp is maturing in terms of features, so we will probably have time come back to more work on RProtoBuf to take advantage of the nice templated autoconversions we now have in Rcpp. Oddly enough, the initial blog post seemed to anticipate changes in Rcpp.
Anyway --
RProtoBuf
is finally here and it already does a fair amount of magic based of code reflection
using the proto
files. The Google documentation has a simple
example of a 'person' entry in an 'addressbook' which, when translated to R,
goes like this:
R> library( RProtoBuf ) ## load the package R> readProtoFiles( "addressbook.proto" ) ## acquire protobuf information R> bob <- new( tutorial.Person, ## create new object + email = "bob@example.com", + name = "Bob", + id = 123 ) R> writeLines( bob$toString() ) ## serialize to stdout name: "Bob" id: 123 email: "bob@example.com" R> bob$email ## access and/or override [1] "bob@example.com" R> bob$id <- 5 R> bob$id [1] 5 R> serialize( bob, "person.pb" ) ## serialize to compact binary format
There is more information at the RProtoBuf page, and we already have a draft package vignette, a 'quick' overview vignette and a unit test summary vignette.
More changes should be forthcoming as Romain and I find time to code them up. Feedback is as always welcome.