-
-
Notifications
You must be signed in to change notification settings - Fork 29
prepare release 1.4.1.0 #985
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughThis PR releases version 1.4.1.0, introducing new methods Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes
Possibly related PRs
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
CHANGELOG.md (1)
7-33: Add "Breaking changes" section documenting Ruby 3.2.0 minimum requirement.The CHANGELOG lacks a "Breaking changes" section for 1.4.1.0, but the accompanying gemspec change raises the minimum Ruby version from 3.1.0 to 3.2.0. This is a significant breaking change that should be clearly documented to inform users upgrading from 1.3.1.0.
Consider adding a "Breaking changes" subsection to the 1.4.1.0 release entry:
# 1.4.1.0 - 2025-11-01 - add DuckDB::Connection#appender_from_query. - add DuckDB::Appender.create_query. + +## Breaking changes +- Minimum Ruby version requirement raised to 3.2.0 (from 3.1.0). + - add `DuckDB::LogicalType.boolean`, `DuckDB::LogicalType.tinyint`, ...
🧹 Nitpick comments (1)
CHANGELOG.md (1)
30-32: Under-construction warning for new classes could be more prominent.The release notes mention that
ValueImplandScalarFunctionare "under construction" and should not be used directly, but this warning appears late in the release notes. Consider moving or emphasizing these caveats earlier to ensure users see them before attempting to use these new classes.Consider restructuring the release notes to highlight experimental APIs earlier:
# 1.4.1.0 - 2025-11-01 + +⚠️ **Experimental APIs (under construction):** +- `DuckDB::ValueImpl` — do not use directly; API may change. +- `DuckDB::ScalarFunction` and `DuckDB::ScalarFunction#set_name` — API under development. + - add DuckDB::Connection#appender_from_query. - add DuckDB::Appender.create_query.Alternatively, place the experimental notices directly adjacent to their introductions.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
Gemfile.lockis excluded by!**/*.lock
📒 Files selected for processing (3)
CHANGELOG.md(1 hunks)duckdb.gemspec(1 hunks)lib/duckdb/version.rb(1 hunks)
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: suketa
Repo: suketa/ruby-duckdb PR: 0
File: :0-0
Timestamp: 2025-01-24T22:37:32.786Z
Learning: In Ruby-DuckDB C extensions, when initializing resources like prepared statements, store them directly in the context structure instead of using temporary variables to prevent memory leaks, especially when exceptions might be thrown.
📚 Learning: 2025-01-24T22:18:24.630Z
Learnt from: suketa
Repo: suketa/ruby-duckdb PR: 0
File: :0-0
Timestamp: 2025-01-24T22:18:24.630Z
Learning: When using ruby-asan (AddressSanitizer), avoid letting DuckDB throw C++ exceptions by checking conditions (like table existence) beforehand and raising Ruby exceptions directly to prevent ASAN from intercepting the C++ exceptions.
Applied to files:
lib/duckdb/version.rbduckdb.gemspec
📚 Learning: 2025-01-24T22:37:32.786Z
Learnt from: suketa
Repo: suketa/ruby-duckdb PR: 0
File: :0-0
Timestamp: 2025-01-24T22:37:32.786Z
Learning: In Ruby-DuckDB C extensions, when initializing resources like prepared statements, store them directly in the context structure instead of using temporary variables to prevent memory leaks, especially when exceptions might be thrown.
Applied to files:
lib/duckdb/version.rb
📚 Learning: 2025-01-26T00:37:44.001Z
Learnt from: suketa
Repo: suketa/ruby-duckdb PR: 871
File: ext/duckdb/appender.c:170-178
Timestamp: 2025-01-26T00:37:44.001Z
Learning: In ruby-duckdb's DuckDB::Appender#append_uint8, values larger than uint8 max (255) are silently truncated to maintain backward compatibility, following C's implicit truncation behavior. Range checking is intentionally omitted to avoid breaking changes.
Applied to files:
lib/duckdb/version.rb
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (18)
- GitHub Check: test (3.5.0-preview1, 1.4.1)
- GitHub Check: test (head, 1.3.2)
- GitHub Check: test (3.5.0-preview1, 1.3.2)
- GitHub Check: test (head, 1.4.1)
- GitHub Check: test (3.4.7, 1.3.2)
- GitHub Check: test (3.4.7, 1.4.1)
- GitHub Check: test (3.3.10, 1.4.1)
- GitHub Check: test (3.2.9, 1.3.2)
- GitHub Check: test (mingw, 1.4.1)
- GitHub Check: test (mingw, 1.3.2)
- GitHub Check: test (3.4.7, 1.3.2)
- GitHub Check: test (head, 1.4.1)
- GitHub Check: test (head, 1.3.2)
- GitHub Check: test (3.3.10, 1.4.1)
- GitHub Check: test (3.3.10, 1.3.2)
- GitHub Check: test (3.2.9, 1.4.1)
- GitHub Check: test (3.4.7, 1.4.1)
- GitHub Check: test (3.2.9, 1.3.2)
🔇 Additional comments (3)
lib/duckdb/version.rb (1)
6-6: Version constant updated correctly.Version bump from 1.3.1.0 to 1.4.1.0 is consistent with the release date and gemspec configuration.
CHANGELOG.md (1)
10-27: Comprehensive LogicalType constants and method additions.The extensive list of new
LogicalTypeconstants and snake_case/Pascal-case variants (lines 10–27) is well-documented. The addition ofDuckDB::LogicalType.new(type_id)constructor (line 33) and TIMESTAMP_NS infinity support (line 28) round out the public API expansion nicely.duckdb.gemspec (1)
30-30: Ruby 3.2.0 minimum requirement is properly documented as a breaking change.The CHANGELOG.md already explicitly documents this breaking change at line 53 under version 1.2.2.0: "- drop Ruby 3.1." This clearly communicates the compatibility shift to users and aligns with the gemspec change. No further action is required.
Summary by CodeRabbit
New Features
Chores