First release - #36
Merged
Merged
Conversation
Expanded the README to include step-by-step build instructions for both Linux and Windows (Docker), prerequisites, project structure, and troubleshooting tips. Clarified the process for generating and copying required files from the OpenPLC IDE and xml2st tool.
[RTOP-46] compile c program
…c-caching-issue Fix libplc.so caching issue by using unique timestamped filenames
* [RTOP-79] Unit test for logging buffer * [RTOP-79] Fix logging id on unit tests * [RTOP-79] Unused files remove * Update webserver/logger/formatter.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update tests/pytest/test_logger_buffer.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * [RTOP-79] Fix log_id in threading * [RTOP-79] classmethod to reset lod_id * [RTOP-80] Logging module documentation --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Update Dockerfile with optimized build dependencies (gcc, g++, cmake, build-essential) - Add .github/workflows/docker.yml for multi-arch builds (amd64, arm64, armv7) - Create install/install.sh script for easy local Docker image building - Add .venv/ to .gitignore to prevent committing virtual environment - Follow orchestrator-agent pattern for consistent Docker workflow - Enable easy installation via: docker pull ghcr.io/autonomy-logic/openplc-runtime:latest Co-Authored-By: Thiago Alves <thiagoralves@gmail.com>
The plugin system was using Py_SET_REFCNT(args, UINT64_MAX) to prevent garbage collection of the runtime args capsule. This caused an overflow error on 32-bit systems where Py_ssize_t is 32 bits (int), but UINT64_MAX is a 64-bit value. Changes: - Add args_capsule field to python_binds_t structure to store capsule reference - Replace Py_SET_REFCNT hack with proper reference counting pattern - Store capsule reference in plugin->python_plugin->args_capsule for lifetime - Add Py_XDECREF in python_plugin_cleanup to properly release capsule This fix ensures proper cross-architecture compatibility (32-bit and 64-bit) and follows Python C API best practices for reference counting. Co-Authored-By: Thiago Alves <thiagoralves@gmail.com>
The webserver was crashing in Docker with RuntimeError: 'The Werkzeug web server is not designed to run in production.' This occurred because Flask-SocketIO was using Werkzeug's development server by default. Changes: - Add eventlet to requirements.txt for production-ready async server - Update SocketIO initialization to use async_mode='eventlet' instead of 'threading' - Eventlet provides proper WebSocket support with HTTPS/SSL for production use This fix ensures the webserver runs reliably in Docker containers while maintaining WebSocket functionality for debug communication with OpenPLC Editor. The ssl_context parameter should work with eventlet's server. If issues arise, we can switch to ssl_certfile/ssl_keyfile parameters as an alternative. Co-Authored-By: Thiago Alves <thiagoralves@gmail.com>
…h-docker Add multi-arch Docker builds and fix arm/v7 plugin system compilation
Remove emojis
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
First release of the OpenPLC Runtime v4