diff --git a/.zenodo.json b/.zenodo.json new file mode 100644 index 0000000..857f846 --- /dev/null +++ b/.zenodo.json @@ -0,0 +1,21 @@ +{ + "creators": [{"name": "devkyato", "affiliation": "MATA Company"}], + "contributors": [{"name": "Cursor Agent", "type": "Other"}], + "title": "OpenNet: typed ONP/1 messaging for ESP32, Raspberry Pi, and Python backends", + "description": "OpenNet is a dependency-free implementation of typed ONP/1 messaging for ESP32 devices, Raspberry Pi systems, and Python backends. It provides inspectable framing, bounded resource use, acknowledgement and retry support, and Arduino and Python implementations for direct reliable streams. Usage: install the Arduino library or Python package, connect a client and host over a trusted stream, then send typed application messages. Applications include classroom IoT systems, embedded telemetry links, Raspberry Pi gateways, and direct device-to-backend communication.", + "version": "0.2.1", + "keywords": ["opennet", "ONP/1", "IoT", "ESP32", "Raspberry Pi", "messaging", "protocol", "embedded", "Arduino", "Python"], + "license": "mit", + "upload_type": "software", + "access_right": "open", + "language": "eng", + "related_identifiers": [ + {"identifier": "https://github.com/devkyato/OpenNet", "relation": "isSupplementTo", "resource_type": "software"}, + {"identifier": "https://github.com/devkyato/Datary", "relation": "references", "resource_type": "software"}, + {"identifier": "https://github.com/devkyato/TapAuth", "relation": "references", "resource_type": "software"}, + {"identifier": "https://github.com/devkyato/Lowpack", "relation": "references", "resource_type": "software"}, + {"identifier": "https://github.com/devkyato/Relay", "relation": "references", "resource_type": "software"}, + {"identifier": "https://github.com/devkyato/Custom-Arduino-Libraries", "relation": "references", "resource_type": "software"}, + {"identifier": "https://github.com/devkyato/Arduino-Programs-Guide", "relation": "references", "resource_type": "software"} + ] +} diff --git a/CHANGELOG.md b/CHANGELOG.md index 7730eae..0ba9488 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,13 @@ All notable changes are documented here. OpenNet follows ## [Unreleased] +## [0.2.1] - 2026-08-09 + +### Changed + +- Add Zenodo and Citation File Format metadata for archival citation. +- Refresh release-facing metadata across the Python and Arduino packages. + ## [0.2.0] - 2026-07-29 ### Added @@ -97,7 +104,8 @@ All notable changes are documented here. OpenNet follows - Arduino IDE, PlatformIO, and Python examples. - Cross-platform tests, CI, packaging, and contributor documentation. -[Unreleased]: https://github.com/devkyato/OpenNet/compare/v0.2.0...HEAD +[Unreleased]: https://github.com/devkyato/OpenNet/compare/v0.2.1...HEAD +[0.2.1]: https://github.com/devkyato/OpenNet/compare/v0.2.0...v0.2.1 [0.2.0]: https://github.com/devkyato/OpenNet/compare/v0.1.1...v0.2.0 [0.1.1]: https://github.com/devkyato/OpenNet/compare/v0.1.0...v0.1.1 [0.1.0]: https://github.com/devkyato/OpenNet/releases/tag/v0.1.0 diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 0000000..5ef2dcb --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,19 @@ +cff-version: 1.2.0 +message: "If you use this software, please cite it using the metadata from this file." +title: "OpenNet: typed ONP/1 messaging for ESP32, Raspberry Pi, and Python backends" +authors: + - family-names: devkyato + affiliation: "MATA Company" +version: 0.2.1 +license: MIT +repository-code: "https://github.com/devkyato/OpenNet" +url: "https://github.com/devkyato/OpenNet" +abstract: "Typed ONP/1 messaging for ESP32, Raspberry Pi, and Python backends." +keywords: [opennet, ONP/1, IoT, ESP32, Raspberry Pi, messaging, protocol, embedded, Arduino, Python] +preferred-citation: + type: software + title: "OpenNet: typed ONP/1 messaging for ESP32, Raspberry Pi, and Python backends" + authors: + - family-names: devkyato + affiliation: "MATA Company" + version: 0.2.1 diff --git a/README.md b/README.md index 42458f9..1a80a6b 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ communication layer or a replacement for MQTT, HTTP, or WebSocket. It sends JSON, text, signed integers, finite doubles, booleans, null, and arbitrary binary data over TCP/TLS or another reliable ordered stream. -Version 0.2.0 is an alpha release for real projects and learning. It has a +Version 0.2.1 is an alpha release for real projects and learning. It has a documented wire format, bounded resource use, retries and duplicate suppression, native Arduino protocol tests, Python tests across 3.9–3.14, reproducible release packages, measured local performance, and an optional topic-authorization hook. @@ -56,7 +56,7 @@ Python wheel from the release page: ```sh python -m pip install \ - https://github.com/devkyato/OpenNet/releases/download/v0.2.0/opennet_protocol-0.2.0-py3-none-any.whl + https://github.com/devkyato/OpenNet/releases/download/v0.2.1/opennet_protocol-0.2.1-py3-none-any.whl opennet --version ``` @@ -64,15 +64,15 @@ For an isolated command: ```sh pipx install \ - https://github.com/devkyato/OpenNet/releases/download/v0.2.0/opennet_protocol-0.2.0-py3-none-any.whl + https://github.com/devkyato/OpenNet/releases/download/v0.2.1/opennet_protocol-0.2.1-py3-none-any.whl ``` -For Raspberry Pi/Linux, extract `OpenNet-linux-0.2.0.tar.gz` and run +For Raspberry Pi/Linux, extract `OpenNet-linux-0.2.1.tar.gz` and run `sudo ./install.sh`. It creates a hardened, unprivileged systemd service with a -loopback-only default. For Arduino IDE, install `OpenNet-0.2.0.zip` through +loopback-only default. For Arduino IDE, install `OpenNet-0.2.1.zip` through **Sketch > Include Library > Add .ZIP Library**. -The Python distribution is installable with pip, but v0.2.0 is distributed from +The Python distribution is installable with pip, but v0.2.1 is distributed from GitHub Releases rather than the public PyPI index. ## Five-minute local test @@ -143,6 +143,23 @@ unsafe action. - [ONP/1 protocol specification](docs/protocol.md) - [Contributing](CONTRIBUTING.md) +## Citation + +If you use this software in research or teaching, please cite the Zenodo archive / this repository: + +```text +devkyato. (2026). OpenNet: typed ONP/1 messaging for ESP32, Raspberry Pi, and Python backends (Version 0.2.1). +``` + +See [CITATION.cff](CITATION.cff) for machine-readable metadata. + +## Applications + +- Direct ESP32-to-Raspberry Pi telemetry links. +- Classroom demonstrations of typed embedded messaging. +- Lightweight device-to-backend protocols over reliable streams. +- Arduino and Python interoperability experiments. + ## Connected projects | Project | Role | diff --git a/docs/releases/v0.2.1.md b/docs/releases/v0.2.1.md new file mode 100644 index 0000000..35b92c3 --- /dev/null +++ b/docs/releases/v0.2.1.md @@ -0,0 +1,13 @@ +# OpenNet v0.2.1 + +OpenNet v0.2.1 is a publication-maintenance release. It aligns the Python and Arduino package +versions and adds Zenodo plus Citation File Format metadata for archival citation. + +## Install + +```sh +python -m pip install https://github.com/devkyato/OpenNet/releases/download/v0.2.1/opennet_protocol-0.2.1-py3-none-any.whl +``` + +Arduino IDE users can install `OpenNet-0.2.1.zip`; see [`CITATION.cff`](../../CITATION.cff) for +the software citation metadata. diff --git a/library.json b/library.json index b27d09a..f700921 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "OpenNet", - "version": "0.2.0", + "version": "0.2.1", "description": "Direct typed ONP/1 messaging between ESP32 devices and Python hosts.", "keywords": ["esp32", "raspberry-pi", "iot", "tcp", "tls", "bluetooth", "messaging"], "repository": { diff --git a/library.properties b/library.properties index 23d4e84..b8a7a92 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=OpenNet -version=0.2.0 +version=0.2.1 author=devkyato maintainer=devkyato sentence=Direct typed ONP/1 messaging between ESP32 devices and Python hosts. diff --git a/python/pyproject.toml b/python/pyproject.toml index 0455c09..cb96999 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "opennet-protocol" -version = "0.2.0" +version = "0.2.1" description = "Dependency-free typed ONP/1 messaging for Raspberry Pi, ESP32, and backend systems" readme = "README.md" requires-python = ">=3.9" diff --git a/python/src/opennet/__init__.py b/python/src/opennet/__init__.py index 078d206..7a3d2ac 100644 --- a/python/src/opennet/__init__.py +++ b/python/src/opennet/__init__.py @@ -33,4 +33,4 @@ "encode_value", ] -__version__ = "0.2.0" +__version__ = "0.2.1"