PaulStoffregen / OctoWS2811

Control thousands of WS2811/2812 LEDs at video refresh speeds
http://www.pjrc.com/teensy/td_libs_OctoWS2811.html
267 stars 118 forks source link

Fix JSON syntax #2

Closed ivankravets closed 10 years ago

PaulStoffregen commented 10 years ago

I still have mixed feelings about this metadata format, but at least it's a start.

My hope is to someday make a library management tool within the Arduino IDE. Actually, I'm really hoping someone else will do this and I can simply use it. Many people have tried to do such tools in the past, but all have abandoned their effort or never really got started (even Arduino has wanted to do this for years, but never made significant progress).

For every library I publish, there's a stable download URL, and the work-in-progress GitHub address. It would be nice if both were in the metadata. How some future library manager will actually use those links, I do not know. I'm not very good at predicting the future!

Another feature missing is a clear way to specify one or more pages that are the documentation for the library. The description also appears to be limited to only a short description (often an image communicates a visual idea of a library's purpose much easier than reading text). There's also no way to specify well defined categories. In some sort of library manager tool, where many hundreds of libraries are shown to users, all of that type of descriptive metadata will be needed.

But at least this format is a good start with basic info. I'd rather start something imperfect and improve as needed, instead of waiting and never making any forward progress due to indecision.

ivankravets commented 10 years ago

My hope is to someday make a library management tool within the Arduino IDE. Actually, I'm really hoping someone else will do this and I can simply use it.

This is quite easy to do it with PlatformIO Regisrty. The API is open for all. If I had practice with Java + GUI Framework I could help Arduino community with nice GUI tool. As for API:

  1. Search for libs: http://api.platformio.ikravets.com/lib/search?query=%QUERY_HERE% The %QUERY_HERE% can contain not only "words", but also special filters, like: keyword:, author:, framework: or platform:. For example, [http://api.platformio.ikravets.com/lib/search?query=platform:teensy audio](http://api.platformio.ikravets.com/lib/search?query=platform:teensy audio)
  2. Get library information: http://api.platformio.ikravets.com/lib/info/%LIB_ID% For example, Teensy Audio http://api.platformio.ikravets.com/lib/info/70
  3. Get cleaned library sources by different versions (based on downloadUrl and repository) http://api.platformio.ikravets.com/lib/download/%LIB_ID%?version=%VERSION_NUMBER% The version argument is optional. For example, http://api.platformio.ikravets.com/lib/download/70
  4. Get library latest version (good for update) http://api.platformio.ikravets.com/lib/version/%LIB_IDs_BY_COMMA% For example, http://api.platformio.ikravets.com/lib/version/70,1

For every library I publish, there's a stable download URL, and the work-in-progress GitHub address. It would be nice if both were in the metadata.

I agree with you. Thanks.

Another feature missing is a clear way to specify one or more pages that are the documentation for the library.

What do you think about docsUrl field? It can be String, for one URL, or Array with the multiple URLs

The description also appears to be limited to only a short description (often an image communicates a visual idea of a library's purpose much easier than reading text).

Are you sure that manifest file should contain more detailed information about library? I think this information should be located in special file/files, documentation or etc., like README file. Then we can define the URL to this README file in docsUrl field.

There's also no way to specify well defined categories.

This is good idea. I like Python's package classifiers https://pypi.python.org/pypi?%3Aaction=list_classifiers
I'm not sure that we should spend time for it now. To my mind, the keywords field is enough at this point. People are not interested in it :( Or, maybe, they don't know about it :)

I'd rather start something imperfect and improve as needed, instead of waiting and never making any forward progress due to indecision.

I'm totally agree with you. As you can see, I accepted all propositions from you and implemented their, because you were right with "trademarks". I didn't see it early, but Arduino really doesn't allow to use theirs name ... http://arduino.cc/en/Trademark/HomePage?from=Main.Trademark

PaulStoffregen commented 10 years ago

Maybe we should find a better place to discuss these issues, where other people can join in, and where the conversation can be found by anyone interested? On this old github issue, it's only going to be lost.

I really do not know the best way to organize metadata. At this point, the idea to make a really great library manager is still only a distant dream. I have not done any real work, so I do not know the issues well at this time. But someday I want to make such a thing... unless someone else does it first.

ColinHarrington commented 10 years ago

Maybe we should find a better place to discuss these issues, where other people can join in, and where the conversation can be found by anyone interested? On this old github issue, it's only going to be lost.

:+1:

ivankravets commented 10 years ago

I've just moved our discussion with a few changes to Arduino Developers group https://groups.google.com/a/arduino.cc/forum/#!topic/developers/xCDjekcQW4k

Let's discuss it with others developers :+1:

PaulStoffregen commented 10 years ago

For now, I'm going to watch only. The mail list can be very painful and often a huge waste of time.