Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JSON replacement in library (a few toolkits) #126

Closed
15 tasks done
guruofquality opened this issue Jul 21, 2017 · 1 comment
Closed
15 tasks done

JSON replacement in library (a few toolkits) #126

guruofquality opened this issue Jul 21, 2017 · 1 comment
Assignees

Comments

@guruofquality
Copy link
Contributor

guruofquality commented Jul 21, 2017

To get packaged into debian/ubuntu need to drop the dependency on Poco::JSON specifically. The other libs are fine. There is a very clean JSON implementation for C++ and its only a single header file, which is easier than adding another library dependency. The resulting code using the API is also much more readable vs Poco JSON https://github.com/nlohmann/json

This is mostly a transparent change because most of the JSON usage is exposed as serialized strings and not objects of a specific API. Also the PothosGUI was already ported over to use the Qt JSON API. However, the device info used by some of the toolkits was exposing a Poco::JSON pointer as a return value. This will be changed to a serialized string as well, and the toolkits will depend on version 0.6 of the library

These are a list of tasks in the works so we dont forget:

  • port core library to json.hpp
  • an easy download option for json.hpp when missing (might also use for PothosSDR) The nlohmann/json git repo is very large so this would be easier than a submodule clone

Toolkits with JSON overlays and or device info:

  • libIIO
  • SDR
  • gr-pothos (unit tests)
  • Audio
  • blocks toolkit using json for unit testing
  • comms toolkit using json for unit testing
  • python toolkit using json for unit testing
  • opencl toolkit using json for unit testing

Basic tasks for toolkits:

  • make toolkits depend on 0.6 of the library
  • look for json hpp in cmake
  • include json hpp in cmake
  • debian/control nlohmann-json-dev
  • changelog entry
  • unit tests for testplan need to pass string into feeder
  • device info needs to return string
  • test plans need to use json hpp
  • device into needs to use json hpp
  • overlays need to use json hpp

Ubuntu tasks:

Homebrew:

  • depend on nlohmann/json/nlohmann_json (full tap and recipe path)

PothosSDR:

  • nlohmann/json git seems to be large to just download the header with cmake and install (using an easy download option in core library)
@guruofquality
Copy link
Contributor Author

A blog on this for those interested: http://www.joshknows.com/blog/79/TheEvilJsonPackagingProblem

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant