Feat/build infra refinement#2
Merged
Merged
Conversation
edab019a0 chore: cleanup build artifacts, logs, and format code 32c6bbc84 chore: move build-docker.sh to docker folder and update docs 3045df3d2 chore: remove models folder and update docker config to use external volume 17317f996 chore: organize docker files and add to .pubignore 2a1ea1a91 feat: add Docker support for Linux build and run 189b3227f chore: cleanup build hook and add explicit library loading logs 214c32a3d fix(build): resolve iOS Simulator dlopen failure by switching to static linking 9c5ce6f fix(build): force dynamic linking for Windows, Linux, and Android native assets ac5289a fix: resolve Apple build failures by correcting deployment targets and forcing static llama.cpp d8fe387 fix: support both static and dynamic linking on Apple platforms 146dff2 fix: explicitly pass ccache to CMake on Windows for better caching 5ed7807 refactor: optimize release process by uploading individual iOS static libraries a5637dc chore: cleanup build-apple dependencies in workflow 3ecb1d3 fix: disable GGML_NATIVE for Apple builds to allow cross-compilation f307e9b fix: handle ios-sim-x86_64 target in build_apple.sh a3fb5eb fix: unify Apple architecture naming to x86_64 abab617 fix: make release job robust by using find to locate artifacts 6d53e9c perf: parallelize macOS builds and switch to arch-specific static libraries ddce8c9 perf: parallelize Apple builds by spawning multiple runners per static library e0364b4 fix: resolve CMake target name mismatch and fix iOS build script syntax 66824dc fix: resolve Apple build failures by fixing paths and merging static libraries 98bd60e refactor: transition to static linking on Apple platforms and unify naming to llamadart 5490dda fix(ci): use cpu backend for linux arm64 and add cpu support to build script a6aebec fix(ci): restore missing build jobs in workflow 87ef433 refactor(build): unify native asset hook strategy and fix ios xcframework handling 757b67c fix: stabilize app shutdown and fix native resource leaks 104c5b0 chore: align versioning with llama.cpp tag b7883 02bac60 docs: update README and CHANGELOG for Pure Native Asset release 6cf082f refactor: consolidate build infra into third_party and update llama.cpp to b7883 0bcc83b use hook d7984c8 Refactor iOS build, fix Simulator Metal crash, and cleanup codebase 44cde78 fix(ci): use unique names for release assets to avoid collisions 1d14395 fix(ci): resolve Ninja/Make conflict in Android and switch macOS to Ninja de917e8 feat: implement automated binary management and cleanup repository d7757f1 fix(ci): switch Android build to Ninja and fix naming conflict bd6b896 ci: force build for ccache verification 66ae88e fix(ci): resolve Ninja output name conflict and remove unused build vars 1e403d0 perf(ci): enable ccache on Windows by switching to Ninja generator 8add54a fix(ci): switch iOS build to Ninja to enable ccache aaf6858 fix(ci): match upstream manual vulkan install with version 1.4.313.2 85fbd1d fix(ci): use choco to install vulkan sdk on windows 5824fbe fix(ci): revert to humbletim/setup-vulkan-sdk for reliable installation 913fa09 fix(ci): manual vulkan sdk install on windows to ensure correct path be85f68 fix(ci): robust vulkan detection with path sanitization and debug logging 98f5b03 fix(ci): try enabling Vulkan_ROOT and reduce noise in build script 0abc1d9 fix(ci): use recursive search for vulkan lib and glslc in windows build 4d710e1 fix(ci): remove hardcoded local path in windows build script dde4933 fix(ci): fix windows vulkan cmake args detection 9b48045 fix(ci): disable ccache on windows due to msvc incompatibility 4e93d83 fix(ci): use optimized ios-only xcframework build script to prevent hang 17159c5 fix(ci): use correct vulkan-version input a2ad6de fix(ci): remove redundant mkdir command failing on windows 089fb5a fix(ci): fix windows artifact path, update vulkan sdk, enable ccache cbb8fc3 feat: Refactor build infrastructure and enable cross-platform support
…s and architectures
- Modularized chat app into a clean layered architecture (Models, Services, Providers, Widgets, Screens). - Extracted business logic from UI components into specialized services. - Implemented cached token counting for performance optimization. - Added comprehensive logging control for llama.cpp/ggml with configurable log levels. - Silenced verbose engine logs by default while preserving critical warnings and errors.
- Implemented interactive and single-response modes using the 'args' package. - Added automatic model downloading from Hugging Face URLs. - Organized the codebase into models and services. - Updated documentation and simplified the CLI interface.
- Replaced remaining 'print' calls in native service with log-level aware '_log' function. - Set default log level to 'error' for both basic and chat examples to ensure a clean user interface. - Verified that all internal isolate logs respect the user-defined log level.
- Updated CHANGELOG.md with comprehensive list of changes. - Bumped package version to 0.3.1+b7883. - Added library-level documentation to llamadart.dart. - Updated root README.md with the new Logging Control feature. - Synced example app versions.
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.
This pull request introduces a major overhaul to the build, distribution, and development workflow for the project, focusing on modernizing native asset management, improving cross-platform support, and streamlining the developer experience. The most significant changes include the adoption of Dart Native Assets for zero-setup binary management, the introduction of a comprehensive CI pipeline for building and releasing native binaries, consolidation of native sources and dependencies, and updated documentation to reflect the new architecture and workflows.
Native Asset Management & Distribution:
hook/build.dartscript for a seamless zero-setup experience. [1] [2] [3]Continuous Integration & Release Pipeline:
.github/workflows/build_native.yml) that builds native binaries for Android, iOS, macOS, Linux, and Windows, uploads them as artifacts, and creates GitHub Releases when a tag is pushed.Project Structure & Dependency Management:
third_party/directory, and addedllama_cppandVulkan-Headersas submodules for improved maintainability and upgradability. [1] [2]Documentation & Developer Workflow:
CONTRIBUTING.mdandCHANGELOG.mdto describe the new architecture, zero-patch strategy for submodules, and the modern binary production/consumption lifecycle; removed outdated build/test instructions fromAGENTS.md. [1] [2] [3].pubignoreto exclude large sources, submodules, local builds, and binaries from published packages, ensuring only necessary files are distributed.Other Improvements:
llama.cpprelease tags, and documented new features such as logging control, performance optimizations, and enhanced hardware acceleration support. [1] [2]