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

Tools at Developers tab should be better organized #245

Closed
egekorkan opened this issue Jan 18, 2022 · 9 comments
Closed

Tools at Developers tab should be better organized #245

egekorkan opened this issue Jan 18, 2022 · 9 comments
Assignees

Comments

@egekorkan
Copy link
Contributor

Currently, the developers tab/page has different category of tools (or tool-like "stuff"). I think that this needs a better organization to identify where to use which tool. There are specific (single purpose) implementations under WoT implementations like sayWoT, WADE and also under TD Tooling with WoTify, shadow thing, test bench.

From my point of view, we have the following categories:

  1. "Low level" WoT libraries: Software libraries like node-wot, wot-py, sane, nodegen that allow you to build a custom WoT software
  2. WoT Software with specific purposes: These are more less like executables (not really meant to be used as a dependency). Examples are Test Bench, sayWoT, shadow thing
  3. TD Tooling or Helper tools: These are mostly hosted services, plugins to IDEs or specific software that help you to build WoT applications. Examples are TD Playground, Editdor, WAM, WADE, JDT
  4. TDDs: Self explanatory.

I would like to get some feedback and start restructuring this page.

Note: Additionally, we should think of a policy on how to link these tools.

@danielpeintner
Copy link
Contributor

I agree, the page can (and maybe should) be restructured.

I think a good exercise is to use the list we have so far and try to put it in your categories.

Note: besides the actual tools we also have links to slides/material etc. Not sure how we deal with those links. Maybe we should no longer link to such information.

Note: Additionally, we should think of a policy on how to link these tools.

I am not 100% sure what you mean by that. Is a link, as we have it today, not sufficient?

@egekorkan
Copy link
Contributor Author

I am not 100% sure what you mean by that. Is a link, as we have it today, not sufficient?

This was mentioned by @ashimura in the previous call. I do not remember the exact point so @ashimura can you elaborate?

@egekorkan
Copy link
Contributor Author

egekorkan commented Feb 22, 2022

To be continued!

We want to categorize them into different categories and each category should explain what they do. A single tool can be listed in two places.

Categories:

  1. TD Directory Implementations These are services that can host a Thing Description Directory which implements the W3C WoT Discovery Specification. Examples: LinkSmart, WoT Hive, Logilab. Tags: Service, TDD, Discovery
  2. WoT Runtime Implementations These are libraries or CLIs that implement a WoT Runtime so that custom applications can be built following the WoT paradigms. Examples: node-wot, wot-py, sane, nodegen . Tags: Library, CLI, Runtime.
  3. Development Tools These are ready-to-use tools that help the development of WoT applications by providing user interfaces and other tooling. They can be compared to REST Clients that help development of REST services. Examples: WADE, FXUI. Tags: UIs, Tools, Software
  4. Helpers (We need a better name) These are tools that are used during the development to set up a WoT project or provide convenience functions to the editor of a WoT Developer. Examples: TD Code, WAM. Tags: Tools, editor
  5. TD Tooling These are tools to manipulate and edit TDs, and to use TDs via programming APIs in programming languages. Examples: Playground, Editdor, td-tools of node-wot, JDT. Tags: editor, TD, parser
  6. Software, Middleware These are ready to use software applications that can be deployed in order to provide a certain functionality in a system, such as gateway and proxying, simulation, testing services. They are generally built on top of WoT Runtimes. Examples: sayWoT!, shadow thing, testbench. Tags: software, gateway, simulation.

@egekorkan
Copy link
Contributor Author

I have updated the previous comment, please provide feedback on the naming of these categories

@thjaeckle
Copy link

I would even split the "WoT Runtime Implementations", e.g. in:

  • WoT Thing Description providers
  • WoT Thing Description consumers

Some tools may be in both categories (like node-wot).

The Eclipse Ditto project would be with its WoT integration a pure "WoT TD provider".
As part of the WoT integration we added a Java module providing a Java API for:

  • building TDs and TMs with a builder-based API (DSL) and e.g. converting the Java object to JSON
  • parsing a TD from a JSON string and proving it as TD Java object

Such a API (without the capabilities to consume or provide TDs) would probably be another category, maybe just:

  • WoT APIs

@danielpeintner
Copy link
Contributor

I tend to think it gets difficult to split all tools properly. Maybe categorizing is a better approach?

What about having a list of the tools (as we have them today). Moreover, in the beginning of the page we could have a matrix (table) with the name of the tool (linking to the proper description below) and a ✔ for each category it supports.

Hence, we would just need to find a good list of categories

  • consumer
  • producer
  • directory
  • middleware
  • dev tool, helper
  • ...

Just to give you an idea (see https://en.wikipedia.org/wiki/Comparison_of_file_archivers#Operating_system_support that has such a table, for a different purpose of course)

@egekorkan
Copy link
Contributor Author

Call of 12.04:

  • We will have a matrix of categories with list of tools underneath.
  • We will have a list under that matrix where each tool mentions what categories it supports, like the Wikipedia table example above.

@egekorkan egekorkan self-assigned this Apr 12, 2022
@egekorkan
Copy link
Contributor Author

While preparing a PR, I have also realized that we are calling this page developers and then tools.

  1. First of all, not everything in here is targeting purely developers (or programmers). Examples are: WoTify (currently has a bug), WADE, FX-UI
  2. Secondly, most of them are not tools. In my opinion, node-wot is not a tool for example.

@egekorkan
Copy link
Contributor Author

Forgot to close this one, it is fixed. A follow up issue is at #319

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

3 participants