Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 25 additions & 23 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,50 +8,52 @@ All types of contributions are encouraged and valued.
>
> - Star the project
> - Tweet about it or share in social media
> - Create examples & refer this project in your project's readme. I can add your example in my [example repository](https://github.com/VigneshVSV/hololinked-examples) if its really helpful, including use cases in more sophisticated integrations
> - Create examples & refer this project in your project's readme. I can add your example in my [example repository](https://github.com/hololinked-dev/hololinked-examples) if its really helpful, including use cases in more sophisticated integrations
> - Mention the project at local meetups/conferences and tell your friends/colleagues
> - Donate to cover the costs of maintaining it

## I Want To Contribute

> ### Legal Notice <!-- omit in toc -->
>
> When contributing to this project, you must agree that you have authored 100% of the content or that you have the necessary rights to the content, and agree to release it under the license of the project.

If you want to tackle any issues, un-existing features, please do have a look at [good-first-issues](https://github.com/hololinked-dev/hololinked/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). Issues are separated by (perceived-) level of difficulty (`beginner`, `intermediate`) and type of contribution (`bug`, `feature`, `documentation` etc.). If you wish to propose a feature or bugfix, we could discuss it on discord/email (links in README) before you start working on it.

Partial contributions are also taken if its easier to continue working on it. In this case, you can submit your fork to merge into a separate branch until it meets the required standards for release.

There are also other repositories which can use your skills:

- An [admin client](https://github.com/hololinked-dev/thing-control-panel) in react
- [Documentation](https://github.com/hololinked-dev/docs) in mkdocs which needs significant improvement in beginner level docs which may teach people concepts of data acquisition or IoT, Docstring or API documentation of this repository itself
- [Examples](https://github.com/hololinked-dev/hololinked-examples) in nodeJS, Dashboard/PyQt GUIs or server implementations using this package. Hardware implementations of unexisting examples are also welcome, I can open a directory where people can search for code based on hardware and just download your code.

## I Have a Question

Do feel free to reach out to me at [email protected] or in discord. I will try my very best to respond.
Do feel free to reach out to me at email or in discord (links in README). I will try my very best to respond.

Nevertheless, one may also refer the available how-to section of the [Documentation](https://hololinked.readthedocs.io/en/latest/index.html).
If the documentation is insufficient for any reason including being poorly documented, one may open a new discussion in the [Q&A](https://github.com/VigneshVSV/hololinked/discussions/categories/q-a) section of GitHub discussions.
Nevertheless, one may also refer the available how-to section of the [Documentation](https://docs.hololinked.dev/beginners-guide/articles/servers/).
If the documentation is insufficient for any reason including being poorly documented, one may open a new discussion in the [Q&A](https://github.com/hololinked-dev/hololinked/discussions/categories/q-a) section of GitHub discussions.

For questions related to workings of HTTP, JSON schema, basic concepts of python like descriptors, decorators etc., it is also advisable to search the internet for answers first.
For generic questions related to web of things standards or its ideas, it is recommended to join web of things [discord](https://discord.com/invite/RJNYJsEgnb) group and [community](https://www.w3.org/community/wot/) group.

If you believe your question might also be a bug, you might want to search for existing [Issues](https://github.com/VigneshVSV/hololinked/issues) that might help you.
If you believe your question might also be a bug, you might want to search for existing [Issues](https://github.com/hololinked-dev/hololinked/issues) that might help you.
In case you have found a suitable issue and still need clarification, you can write your question in this issue. If an issue is not found:

- Open an [Issue](https://github.com/VigneshVSV/hololinked/issues/new).
- Open an [Issue](https://github.com/hololinked-dev/hololinked/issues/new).
- Provide as much context as you can about what you're running into.
- Stack trace (Traceback)
- OS, Platform and Version (Windows, Linux, macOS, x86, ARM)
- OS, Platform and Version (Windows, Linux, macOS)
- Version of python
- Possibly your input and the output
- Can you reliably reproduce the issue?

One may submit a bug report at any level of information, especially if you reached out to me at my email upfront. If you also know how to fix it, lets discuss, once the idea is clear, you can fork and make a pull request.
One may submit a bug report at any level of information, especially if you reached out to me upfront. If you also know how to fix it, lets discuss, once the idea is clear, you can fork and make a pull request.

Otherwise, I will then take care of the issue as soon as possible.

> You must never report security related issues, vulnerabilities or bugs including sensitive information to the issue tracker, or elsewhere in public. Instead sensitive bugs must be sent by email to [email protected].

## I Want To Contribute

> ### Legal Notice <!-- omit in toc -->
>
> When contributing to this project, you must agree that you have authored 100% of the content or that you have the necessary rights to the content. For example, you copied code from projects with MIT/BSD License. Content from GPL-related licenses may be maintained in a separate repository as an add-on.

Developers are always welcome to contribute to the code base. If you want to tackle any issues, un-existing features, let me know (at my email), I can create some open issues and features which I was never able to solve or did not have the time. You can also suggest what else can be contributed functionally, conceptually or also simply code-refactoring.

There are also other repositories which can use your skills:

- An [admin client](https://github.com/VigneshVSV/thing-control-panel) in react
- [Documentation](https://github.com/VigneshVSV/hololinked-docs) in sphinx which needs significant improvement in How-To's, beginner level docs which may teach people concepts of data acquisition or IoT, Docstring or API documentation of this repository itself
- [Examples](https://github.com/VigneshVSV/hololinked-examples) in nodeJS, Dashboard/PyQt GUIs or server implementations using this package. Hardware implementations of unexisting examples are also welcome, I can open a directory where people can search for code based on hardware and just download your code.
> You must never report security related issues, vulnerabilities or bugs including sensitive information to the issue tracker, or elsewhere in public. Instead sensitive bugs must be sent by email to [email protected].

## Git Branching

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

`hololinked` is a beginner-friendly pythonic tool suited for instrumentation control and data acquisition over network (IoT & SCADA).

As a novice, you have a requirement to control and capture data from your hardware, say in your electronics or science lab, and you want to show the data in a dashboard, provide a PyQt GUI, run automated scripts, `hololinked` can help. Even for isolated desktop applications or a small setup without networking, one can still separate the concerns of the tools that interact with the hardware & the hardware itself.
As a novice, you have a requirement to control and capture data from your hardware, say in your electronics or science lab, and you want to show the data in a dashboard, provide a PyQt GUI or run automated scripts, `hololinked` can help. Even for isolated desktop applications or a small setup without networking, one can still separate the concerns of the tools that interact with the hardware & the hardware itself.

If you are a web developer or an industry professional looking for a web standards compatible (high-speed) IoT runtime, `hololinked` can be a decent choice. By conforming to [W3C Web of Things](https://www.w3.org/WoT/), one can expect a consistent API and flexible bidirectional message flow to interact with your devices, irrespective of the underlying protocol. Currently HTTP & ZMQ are supported. See [Use Cases Table](#use-cases-table).

Expand Down Expand Up @@ -617,7 +617,7 @@ Some other features that are currently supported:
<code>readallproperties</code>,
<code>writeallproperties</code>
<br>
properties and actions can be operated in a oneway and noblock manner as well
properties and actions can be operated in a oneway and no-block manner (issue and query later format) as well
</td>
</tr>
<tr>
Expand Down
2 changes: 1 addition & 1 deletion license.txt
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@

END OF TERMS AND CONDITIONS

Copyright 2025 Vignesh Venkatasubramanian Vaidyanathan
Copyright 2025 Vignesh Venkatasubramanian Vaidyanathan, hololinked Contributors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ authors = [
description = "A ZMQ-based protocol-agnostic object oriented RPC toolkit primarily focussed for instrumentation control, data acquisition or IoT, however can be used for controlling generic python objects."
readme = "README.md"
requires-python = ">=3.11"
license = {text = "BSD-3-Clause"}
license = "Apache-2.0"
license-files = ["licenses/*"]
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Intended Audience :: Information Technology",
"Intended Audience :: Science/Research",
Expand Down
Loading