Releases: alibaba/neug
Releases · alibaba/neug
Release list
Release v0.1.3
Release Notes
NeuG v0.1.3
Release Date: 2026-03-17
Full Changelog: v0.1.2...release-v0.1.3
New Features
- Graph Data Science (GDS) Extension — Added built-in graph algorithms including WCC, BFS, PageRank, LCC, K-Core, Label Propagation, Louvain, and Leiden (#560).
- COPY TEMP Graph Computation — Support temporary graph computation via
COPY TEMPwithout persisting intermediate results (#595). - Node.js Binding — Implemented core Node.js binding code (#424).
Bug Fixes
- Fixed macOS ARM64 build failures in nightly wheel builds (#515, #517).
- Fixed parquet loading silently loading 0 rows with non-standard column names (#455).
Refactoring & Improvements
- Switched
UpdateTransactionto copy-on-write snapshot isolation (#370). - Unified compiler
LogicalTypewith engineDataType(#525). - Introduced
Module,Checkpoint, andCheckpointManagerfor database directory management (#148).
Build & CI
- macOS ARM64 CI — Added dedicated macOS ARM64 test workflow (#576).
- Improved workflow triggers for
build-wheel.yml(#588). - Added AI-powered issue triage workflow and PR completeness check (#469, #466).
Documentation
- Added Node.js installation and quick example to README (#633).
- Documented that data I/O operations are embedded-mode only (#597).
发布说明
NeuG v0.1.3
发布日期: 2026-03-17
完整变更记录: v0.1.2...release-v0.1.3
新功能
- 图数据科学(GDS)扩展 — 新增内置图算法,包括 WCC、BFS、PageRank、LCC、K-Core、标签传播、Louvain 和 Leiden(#560)。
- COPY TEMP 图计算 — 支持通过
COPY TEMP进行临时图计算,无需持久化中间结果(#595)。 - Node.js 绑定 — 实现 Node.js 绑定的核心代码(#424)。
缺陷修复
重构与改进
UpdateTransaction切换为写时复制快照隔离(#370)。- 统一编译器
LogicalType与引擎DataType(#525)。 - 引入
Module、Checkpoint和CheckpointManager,优化数据库目录管理(#148)。
构建与 CI
- macOS ARM64 CI — 新增 macOS ARM64 专用测试工作流(#576)。
- 改进
build-wheel.yml的工作流触发条件(#588)。 - 新增 AI 驱动的 issue 分类工作流和 PR 完整性检查(#469、#466)。
文档
Release v0.1.2
Release v0.1.2
We are delighted to announce NeuG v0.1.2! This release brings major query language improvements (including the MERGE clause and schema-free COPY FROM), cloud object storage support (S3/OSS/HTTP), comprehensive Parquet export, an enhanced CLI with autocomplete and syntax highlighting, and numerous stability and performance fixes across the storage and query engine.
✨ Features
- feat: Support specifying BufferStrategy when open a database by @zhanglei1949 in #162
- feat: Support
COPY FROMwithout prior DDL by @shirly121 in #134 - feat: Improve Column Remapping Performance in
COPY FROMby @shirly121 in #193 - feat: Support Multiplicity and Extra Options for Edge Type by @shirly121 in #281
- feat: Support
MERGEClause to Ensure Pattern Existence by @shirly121 in #312 - feat: Support converting QueryResult to pyarrow table by @zhanglei1949 in #270
- feat: Add comprehensive Parquet export support with complex data types by @BingqingLyu in #241
- feat: Add S3/OSS/HTTP extension support for cloud object storage by @BingqingLyu in #179
- feat: Add rich autocomplete and syntax highlighting by @Mrhs121 in #373
- feat: Add AGENTS.md to NeuG by @zhanglei1949 in #327
- feat: Update help info of neug-cli by @lnfjpt in #253
- feat: Add nightly ldbc interactive benchmark by @lnfjpt in #217
- feat: Report nightly result by @lnfjpt in #353
- feat: Use sort_key_for_nbr in ldbc benchmark by @lnfjpt in #324
- feat: Update codegraph skill with pr-analysis pattern by @BingqingLyu in #362
🐛 Bug Fixes
- fix: Maintain the edge count in the CSR by @liulx20 in #209
- fix: Fix incorrect passing for buffer_strategy by @zhanglei1949 in #223
- fix: Enhance the expressiveness of VertexAccessor and EdgeAccessor by @liulx20 in #215
- fix: Refactor the file lock by @liulx20 in #189
- fix: Refactor string-column dump by @liulx20 in #172
- fix: Fix edge relation getting by @zhanglei1949 in #244
- fix: Fix EnsureCapacity for edge table in PropertyGraph by @zhanglei1949 in #275
- fix: Disable resizing during the INSERT transaction by @liulx20 in #283
- fix: Fix compile of parquet extension by @lnfjpt in #278
- fix: Fix Bugs in Duplicated Column Projections by @shirly121 in #276
- fix: Support List Expression to Fix Bugs in Unwind by @shirly121 in #280
- fix: Fix string dump by @liulx20 in #287
- fix: Fix two small bugs by @zhanglei1949 in #301
- fix: Use lower_bound for the sorted-region boundary in foreach_nbr_lt by @liulx20 in #295
- fix: Adjust precedence for string/list predicates with NOT by @Spockkk0225 in #322
- fix: Improve unsupported operator error messages with readable names by @shirly121 in #319
- fix: Fix bugs of copy to after load from by @shirly121 in #336
- fix: Fix bug for MMapContainer::IsDirty() by @zhanglei1949 in #368
- fix: Support Returning Edge Properties Immediately After Edge Creation by @liulx20 in #309
- fix: String literals longer than 48 chars crash query pipeline (issue 345) by @ShunyangLi in #350
- fix: Bug fix by @zhanglei1949 in #380
- fix: Update minimum CMake version to 3.16 by @liulx20 in #375
- fix: Disable libunwind in
glogby @liulx20 in #383 - fix: DROP TABLE no longer leaks across checkpoint boundary by @zhanglei1949 in #399
- fix: Avoid copying during edge filtering by @liulx20 in #358
- fix: Correct the unsorted boundary for csr by @liulx20 in #394
- fix: Fix empty line in neug cli by @lnfjpt in #268
- fix: Fix build-wheel error in neug-extension-test by @lnfjpt in #356
🔧 Refactoring & Internals
- refactor: Avoid unnecessary MD5 computation by @zhanglei1949 in #195
- refactor: Remove idIndexer::insert_safe, add param bool insert_safe for insert by @zhanglei1949 in #175
- refactor: Rename USAGE.md to README.md for tools/java_driver by @zhanglei1949 in #218
- refactor: Move the file when doing Dump for FileSharedMMap by @zhanglei1949 in #212
- refactor: Remove dummy method in lf_indexer by @zhanglei1949 in #227
- refactor: Remove wal_uri config and remove dummy work_dir in NeuGDB open by @zhanglei1949 in #230
- refactor: Serialize vertex_timestamp into one single file by @zhanglei1949 in #231
- refactor: Remove dummy field for NeuGDBService and ensure the correctness of its functions by @zhanglei1949 in #235
- refactor: Disable auto checkpoint for read-only mode by @zhanglei1949 in #237
- refactor: Directly open degree_list and cap_list in container and avoid copy in dump by @zhanglei1949 in #267
- refactor: Refactors the graph schema modification interfaces by @liulx20 in #289
- refactor: Avoid passing error_on_conflict to storage layer by @zhanglei1949 in #291
- refactor: Merge proto related target into one by @zhanglei1949 in #310
- refactor: Update predicate operator size and indexing in tc_fuse.cc by @liulx20 in #332
- refactor: Remove redundant field of Table by @zhanglei1949 in #349
- refactor: Use Value as the underlying type for default value store in Schema by @zhanglei1949 in #344
- refactor: Unify the Edge/Vertex label resolution in UpdateTransaction by @zhanglei1949 in #355
- refactor: Replace some dangerous
LOG(FATAL)with exception throw by @zhanglei1949 in #360 - refactor: Refactor json extension as built-in functionality by @shirly121 in #337
- refactor: Wrap VertexTable::indexer_ and v_ts_ as std::shared_ptr by @zhanglei1949 in #391
- refactor: Consolidate Schema vertex/edge label check API by @zhanglei1949 in #393
- refactor: Rename GenericView/generic_view.h to CsrView/csr_view.h by @zhanglei1949 in #397
- refactor: Remove unused LFIndexer::build_empty_LFIndexer by @zhanglei1949 in #403
- refactor: Add md5 for string column by @liulx20 in #258
📚 Documentation
- docs: Update document since parquet is available since v0.1.1 by @BingqingLyu in #192
- docs: Clean up Java API reference doc by @longbinlai in #207
- docs: Fix key format for tinysnb tutorial by @longbinlai in #213
- docs: Update Parquet support status in data-io index documentation by @longbinlai in #214
- docs: Fix docs errors by @Spockkk0225 in #304
- docs: Update extensions index.md to reflect JSON built-in status and use PARQUET examples by @BingqingLyu in #406
🛠 CI/CD
- ci: Restrict the self-hosted runners used by neug-test by @lnfjpt in #196
- ci: Add label for self-hosted runner in neug-test by @lnfjpt in #199
- ci: Temporarily disable the multiprocessing test case by @liulx20 in #234
- ci: Simplify ccache key by @zhanglei1949 in #285
- ci: Add test to ensure service-related API correct by @zhanglei1949 in #259
- ci: Use github-hosted runner in neug-test by @lnfjpt in #317
⚠️ Breaking / Migration Notes
- Minimum CMake version is now 3.16 (#375).
GenericViewis renamed toCsrView; external code referencing the old header must update its include paths (#397).- Schema modification interfaces are reworked — downstream tooling that called the old APIs should be revisited (#289).
New Contributors
- @ShunyangLi made their first contribution in #350
- @Mrhs121 made their first contribution in https://github.com/alibaba/n...