Skip to content

Stabilize Python builds and improve CLI tool usability#179

Open
Manamama-Gemini-Cloud-AI-01 wants to merge 31 commits into
ggerganov:masterfrom
Manamama-Gemini-Cloud-AI-01:feat/stabilize-build-and-cli
Open

Stabilize Python builds and improve CLI tool usability#179
Manamama-Gemini-Cloud-AI-01 wants to merge 31 commits into
ggerganov:masterfrom
Manamama-Gemini-Cloud-AI-01:feat/stabilize-build-and-cli

Conversation

@Manamama-Gemini-Cloud-AI-01

Copy link
Copy Markdown

This PR addresses several stability and usability issues to ensure a smooth experience for both developers and standard users.

Key Improvements:

1. CLI Tool Usability (Pipe Support)

  • Graceful EOF handling: Patched ggwave-cli to detect the end of the input stream (EOF) when piped. It no longer enters an infinite "Re-sending" loop.
  • Finished-playback detection: Added GGWave_txPlaying() helper to ensure the tool waits for the audio buffer to finish playing before exiting.
  • Piping Example: echo "All is done" | ggwave-cli now works as expected.

2. Python Binding Stability

  • Syntax Fix: Resolved a SyntaxError in setup-tmpl.py regarding the long_description assignment.
  • Cog Collision Mitigation: Updated the Python Makefile to prioritize python3 -m cogapp. This prevents build failures on systems where the Replicate cog CLI is also installed.

3. Build & Installation

  • Expanded Installation: Added missing install directives for ggwave-cli and ggwave-to-file. These are now installed to the system path by default.
  • Missing Linkage: Fixed an "undefined reference" error by explicitly linking ggwave-cli against SDL2.

4. Documentation

  • Comprehensive update to README.md (and the template) to clearly distinguish between standard user installation (pip install) and source-based development (--no-build-isolation).
  • Included clear prerequisites and a "One Workflow" installation guide for Linux/Mac users.

TrinityUnited and others added 24 commits August 5, 2025 05:36
This commit resolves several issues that prevented the project from building and running correctly on Android via Termux.

The key changes are:

- **Updated CMake version:** The `CMakeLists.txt` is updated to require CMake 3.10+, which is necessary for modern builds.
- **Android Audio Fix:** The documentation in `README.md` and `GEMINI.md` now provides the correct instructions to use the native Android audio backend by installing the `portaudio-static` package. This resolves the session-crashing bugs caused by the incorrect `libportaudio.so`.
- **Submodule Update:** The `ggsock` submodule has been updated.
- **Documentation:** A new `GEMINI.md` file has been added to document the debugging journey and the final, successful architecture.

With these changes, the project is now fully functional on Android, enabling the use of the audio examples for data transmission.
This commit includes:
- Additional updates to GEMINI.md, incorporating details about the ggsock submodule.
- Commits the current state of the ggsock submodule.
This commit performs the following cleanup and updates:
- Deletes .clang-format and README-tmpl.md to align with upstream.
- Updates the ggsock submodule to its current state.
…submodule

This commit updates GEMINI.md to document the unresolved compilation error related to the ggsock submodule.
It also stages the current state of the ggsock submodule.
This commit adds an execute_process command to the top-level CMakeLists.txt
to automatically initialize and update Git submodules during the CMake
configuration step. This resolves issues where submodules might not be
properly cloned or updated, leading to compilation errors on other machines.
- Patched ggwave-cli to handle EOF gracefully and exit after transmission (fixes infinite loop when piped).
- Added install directives for ggwave-cli and ggwave-to-file in CMake.
- Fixed SyntaxError in bindings/python/setup-tmpl.py.
- Updated bindings/python/Makefile to avoid name collisions with 'cog' binary.
- Added GGWave_txPlaying() helper for graceful CLI exit.
- Comprehensive overhaul of README.md and README-tmpl.md for better clarity and robustness.
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

Successfully merging this pull request may close these issues.

2 participants