Hello Mahmoud Bert and everyone.
[Announcement] ringenv v1.1.0: Virtual Environments, Host Library Harvester, Zero-Config Desktop Bundling, and Dynamic Android Engine for Ring!
We are thrilled to announce the release of ringenv v1.1.0, a major upgrade that turns ringenv from a virtual environment and multi-version manager into a complete modern workflow, packaging, and deployment toolchain for the Ring programming language.
ringenv is a native, cross-platform tool developed entirely in Ring (libcurl.ring, stdlibcore.ring) that brings modern project isolation, package sandboxing, and version management to Ring developers across Windows, Linux, and macOS.
Install and switch between multiple Ring runtimes (ringenv install 1.27, ringenv install 1.26).
Create isolated virtual environments (ringenv venv create .rvenv).
Activate environments across any shell (cmd, PowerShell, bash, zsh).
Explore and install from Bert's 250+ community packages (ringenv hub).
What's New in v1.1.0?In version 1.1.0, we focused on solving the biggest pain points in application distribution: dependency harvesting, missing DLLs in desktop deployments, and native C-extension auto-linking for Android APKs.
1. The Host Library Harvester (ringenv harvest)
Previously, when creating an isolated environment, accessing heavy host-bundled libraries (like guilib, raylib, threads, libuv, etc.) required manual copying of files and DLLs.
Now, ringenv harvest can automatically copy, organize, and patch official host libraries directly into your project's virtual environment:
bash
# Harvest Qt GUI library (code, DLLs, plugins, and MVC parent controllers)
ringenv harvest guilib
# Harvest Raylib game engine
ringenv harvest raylib
# Harvest background multithreading
ringenv harvest threads
1 Smart Static Scanner (ringenv harvest scan)
Don't know what libraries your code needs? Run:
bash
ringenv harvest scan
ringenv statically analyzes all load "..." statements in your .ring files, identifies any missing standard libraries, and offers to harvest them automatically!
2. Zero-Config Desktop Bundling (ringenv build desktop)
Creating a standalone .exe with ring2exe is great, but GUI applications traditionally fail when run on a machine without Ring installed because Qt plugins and DLLs are missing.
ringenv build desktop provides a complete, one-step distribution pipeline:
bash
ringenv build desktop
What it does automatically:
Compiles your app via ring2exe-plus into a native standalone executable.
Harvests all runtime DLLs from your active virtual environment (ringqt.dll, Qt5Core.dll, Qt5Gui.dll, Qt5Widgets.dll, etc.).
Bundles Qt Platform Plugins: Copies platforms/qwindows.dll, imageformats/, and styles/ directly into the release folder.
Generates qt.conf: Configures Qt plugin discovery paths so the executable runs portably from any folder or USB drive.
Collects Assets: Copies assets/, icons, and resources into build/desktop/release/.
Result: A 100% self-contained, portable folder ready for distribution or NSIS installer creation!
3.Dynamic Android Engine (ringenv build apk)
Building Android applications with native C extensions using ring2apk often required manual CMake hacking. ringenv build apk now features an automated dynamic dependency resolution engine:
bash
ringenv build apk
Key Android capabilities:
Dynamic C-Extension Auto-Harvesting: Scans your project for C-based Ring libraries (e.g. ring_libuv, ring_threads, ring_sqlite) and extracts their native C wrapper code into src/cpp/ext/.
Automatic libmain.so Compilation: Integrates with RingExtensions.cmake to compile all C sources directly into the shared library loaded by Android's NativeActivity.
Automatic Runtime Patching: Protects .ring wrappers with if isandroid() guards, completely eliminating Android LoadLib() dynamic loading crashes.
Architectural Guidance: Detects desktop-only frameworks (like guilib/Qt Widgets) and guides developers toward mobile-ready GUI options (WebView/HTML5 or Raylib OpenGL ES).
4.
RingQt Mobile Exporter (ringenv scaffold qtmobile)For developers building full Qt Widgets or QML applications for Android or iOS, ringenv introduces the Qt Creator project generator:
bash
ringenv scaffold qtmobile
Scaffolds a complete turnkey Qt Creator project referencing the official RingQt mobile templates (ringqt/project).
Automatically compiles your Ring source code into bytecode (ringapp.ringo).
Packages all media, assets, and source code into the Qt Resource file (project.qrc).
Open
ringqt.pro in Qt Creator and press Run to deploy directly to your device!
Quick Command Reference
Command
Action
ringenv venv create <dir>
Create an isolated virtual environment
ringenv harvest <library>
Harvest official runtime libraries (guilib, raylib, etc.)
ringenv harvest scan
Scan project dependencies and harvest missing ones
ringenv build desktop
Build self-contained portable desktop release
ringenv build apk
dynamic Android APK packageringenv scaffold qtmobile Export ready-to-run Qt Creator Mobile project
ringenv hub Browse community packages
ringenv hub info <name> View live GitHub README and library details
How to Install / Upgrade
You can install or update ringenv directly using ringpm:
ringpm install ringenv from Azzeddine2017
ringpm
update ringenv
Or clone the repository:
bash
git clone
https://github.com/azzeddine2017/ringenv.gitcd ringenv
setup.bat # On Windows
./setup.sh # On Linux / macOS
We would love to hear your feedback, ideas, and test reports across different operating systems!