7 hours ago
timescaledb

2.29.0 (2026-07-28)

This release contains performance improvements and bug fixes since the 2.28.3 release. We recommend that you upgrade at the next available opportunity.

Release Highlights

  • Chunk exclusion for DML operations drastically improves the performance of UPDATE and DELETE statements on hypertables. By acquiring exclusive locks only on the specific chunks being modified rather than the entire hypertable, this enhancement eliminates massive lock contention and keeps high-concurrency workloads running smoothly without unnecessary slowdowns.
  • Intelligent row-by-row decompression enables the query planner to decompress data row-by-row rather than in large batches when an operation prioritizes a fast initial response (such as queries with LIMIT clauses). This dramatically reduces memory overhead and query latency, ensuring lightning-fast performance when you only need to retrieve a small subset of records from your compressed hypertables.

Important: PostgreSQL 15 Support Removed TimescaleDB 2.29.0 removes support for PostgreSQL 15. This release supports PostgreSQL 16, 17, and 18. If you are still running PostgreSQL 15, upgrade PostgreSQL before upgrading to TimescaleDB 2.29.0.

Backward-Incompatible Changes

  • #10041 Remove support for PostgreSQL 15

Features

  • #9315 Speed up DML operations on hypertables by using the optimized TimescaleDB hypertable expansion code instead of the generic PostgreSQL inheritance hierarchy expansion
  • #9534 Speed up expression evaluation in the columnar pipeline by caching common subexpressions
  • #9684 Add _timescaledb_functions.decompress_batch() SQL function
  • #9732 Speed up some queries with small LIMIT by switching to row-by-row query execution pipeline
  • #9917 Decompress less data in DML on compressed hypertables by accounting for prepared statement parameters
  • #9957 Add compact_chunk() function
  • #10048 Support concurrent refresh policies on hierarchical continuous aggregates
  • #10081 Add samplerate argument to _timescaledb_functions.estimate_uncompressed_size()
  • #10100 Skip classifying compressed relations to speed up planning
  • #10118 Don't track compressed relations as separate chunk
  • #10119 Reduce memory usage of INSERT queries using direct compress and spanning multiple chunks
  • #10163 Add a compaction policy for unordered chunks
  • #10204 Don't create separate hypertable catalog entry for hypertables with compression
  • #10217 Initial placeholder version of granular refresh API
  • #10225 Add config_merge parameter to alter_job() for merging jsonb into the existing job configuration
  • #10226 Add recompress_unordered columnstore policy option
  • #10231 Use regclass for storing relation reference in chunk table
  • #10237 Add helper functions for decoding hypertable status
  • #10240 Add the tsdb.direct_compress storage parameter that allows enabling direct compress for a given hypertable independent of global settings
  • #10266 Add max_batches to compact_chunk()
  • #10299 Add continuous_aggs_tenant_tracking and hypertable_cagg_settings catalogs

Bugfixes

  • #10013 Make ownership error messages on continuous aggregates consistent
  • #10052 Result of MIN / MAX aggregate functions in columnar aggregation pipeline possibly inconsistent with plain PostgreSQL result
  • #10071 Prune the real-time branch of hierarchical continuous aggregates at any nesting depth
  • #10143 Fix division by zero when planning time_bucket with zero width
  • #10199 Fix initial_start handling in build_job_info
  • #10213 Cache sort pathkeys per hypertable
  • #10221 Fix incremental refresh skipping the last bucket
  • #10278 Drop job_errors view in bgw_job_stat_history migration
  • #10280 RETURNING clause returned no rows for INSERT using direct compress
  • #10281 Disable direct compress when the destination table has an exclusion constraint so the constraint is still enforced
  • #10282 Only count directly compressed rows toward the command tag when the INSERT sets it
  • #10286 Propagate VACUUM on a chunk to the compressed relation when running on the chunk directly
  • #10302 Fix useless-join removal and self-join elimination for hypertables
  • #10313 Allow running ALTER EXTENSION timescaledb UPDATE inside a transaction block
  • #10315 Fix overlap detection with running max
  • #10324 Fix stale index entries after rebuild_sparse_index() on compressed chunks

GUCs

  • timescaledb.enable_hypertable_expansion_for_dml: allow using the optimized TimescaleDB hypertable expansion code for UPDATE and DELETE instead of the generic PostgreSQL inheritance hierarchy expansion. On by default.

Thanks

  • @FrancescEthon and @ManuelEthon for reporting an issue with incremental refresh skipping the last bucket
  • @h0rn3t for reporting a problem with VACUUM not propagating to the compressed relation
  • @igor2x for reporting an issue with locking during DML statements on hypertables
  • @MaximeEthon for reporting an issue with prepared statement parameters in DML decompression
  • @proddata for reporting a problem when upgrading from 2.15.3 to 2.28.2
  • @tureba for reporting and fixing stale sparse-index entries after rebuild
  • @viniciusrsouza for reporting an issue with hierarchical continuous aggregates
17 hours ago
zuul

v4.1.3

What's Changed

Full Changelog: https://github.com/Netflix/zuul/compare/v4.1.2...v4.1.3

1 days ago
zuul

v4.1.2

What's Changed

Full Changelog: https://github.com/Netflix/zuul/compare/v4.1.1...v4.1.2

1 days ago
superset

superset-helm-chart-0.22.4

Apache Superset is a modern, enterprise-ready business intelligence web application

2 days ago
MeiliSearch

v1.51.0 👽

✨ Enhancement

  • Add filter condition to DSRs by @dureuill in https://github.com/meilisearch/meilisearch/pull/6505

    New filter rule activation condition

    Dynamic search rules (DSR) can now declare a new filter condition: it contains a single values key, whose value is a JSON object. The keys of this values JSON object are the facet names (e.g., color, genres, ...), while their values are the values that a filter must resolve to for these facets, so that the rule is active.

    Example of sending a DSR with a filter condition
     // PATCH /dynamic-search-rules/test-filter
     
     {
       "conditions": {
         "filter": {
           "values": {
             "color": "red",
             "category": "shirt"
           }
         }
       },
       "actions": [
         {
           "selector": { "id": "red shirt on sales" },
           "action": { "type": "pin", "position": 0 }
         }
       ]
     }
    Example of search query that enables the DSR above
     {
       "filter": "(category = shirt AND color = red) OR (category = jeans AND color = blue)"
     }

    Note that the filter only needs to have one branch resolving to all the facet values declared in the rule for the rule to be active.

    New lastUpdatedAt field

    Dynamic search rules returned by GET /dynamic-search-rules/{:ruleUid} and POST /dynamic-search-rules contain an additional lastUpdatedAt field.

    This field is automatically updated with the enqueuedAt value of the last task that modified the rule.

    Rules are listed with the most recently updated first

    POST /dynamic-search-rules now lists rules in descending lastUpdatedAt order, meaning that the most recently updated rules will be listed first.

    New environment variables

    New environment variables are defined to control the behavior of the DSR fuel:

    • MEILI_EXPERIMENTAL_DSR_FUEL_FILTER_FUEL (in range 0..4294967296): controls how many filter constraint combinations Meilisearch will attempt to resolve at search time before giving up and applying partial rules.
    • MEILI_EXPERIMENTAL_DSR_FUEL_FILTER_OR_FUEL (in range 0..65536): controls how many filter disjunctions Meilisearch will build when turning a filter to its canonical shape
    • MEILI_EXPERIMENTAL_DSR_FUEL_FILTER_AND_FUEL (in range 0..65536): controls how many filter conjunctions Meilisearch will build in total when turning a filter to its canonical shape
    • MEILI_EXPERIMENTAL_DSR_FUEL_FILTER_DEPTH_FUEL (in range 0..256): controls the maximum recursive depth that Meilisearch allows when turning a filter to its canonical shape
  • Speed up search requests by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/6528 Improves Meilisearch search speed by avoiding unnecessary internal work. We drastically reduced the number of times we retrieve data from disk to a single time across the whole search pipeline. This improvement will have the greatest effect on datasets with a large number of distinct fields across documents. We have seen search speeds up to 5.4x on a dataset with more than 14k different fields.

  • Stabilize dumpless upgrade by @curquiza in https://github.com/meilisearch/meilisearch/pull/6486

    ⚠️ Breaking change following the stabilization of an experimental feature ⚠️

    The flag —-experimental-dumpless-upgrade is renamed —-upgrade-db, keeping the exact same behavior.

  • Remove unused experimental features by @curquiza in https://github.com/meilisearch/meilisearch/pull/6489

    ⚠️ Breaking change: removing the following experimental features ⚠️

🪲 Bug fixes

🔩 Miscellaneous

New Contributors

3 days ago
seata

Apache Seata (Incubating) 2.7.0 (RC)

Apache Seata (Incubating) 2.7.0 Release Candidate.

Git tag: v2.7.0 @ 49fef81747c3f7afd9ec0ae054e5a4aece83e5ac
Source / Binary (ASF SVN dev): https://dist.apache.org/repos/dist/dev/incubator/seata/2.7.0/
Maven staging (closed): https://repository.apache.org/content/repositories/orgapacheseata-1269/
CI: https://github.com/apache/incubator-seata/actions?query=branch%3A2.7.0+event%3Apush

This is a pre-release / RC for community and incubator voting. Do not treat as the final Apache release until votes pass and artifacts are promoted.


Highlights

  • Benchmark CLI 2.0:支持 AT / XA / TCC / SAGA_ANNOTATION,含 P99.9 延迟统计
  • NamingServer 可观测性:Metrics + Grafana 仪表盘
  • JSON 安全与统一:反序列化白名单、Jackson/fastjson 统一、fastjson2/jackson3 序列化器
  • 客户端注销资源:关闭 DataSourceProxy 时向 TC 发送注销通知(含 protobuf)
  • Raft Watch:HTTP/2 流推送 + HTTP 协议动态切换
  • 虚拟线程:全局虚拟线程切换(#8023)
  • 依赖与安全:tomcat 升级、console/saga npm 依赖精简、p3c 替换为 checkstyle 增量检查

Features

  • #7865 Benchmark 命令行工具
  • #8094 Benchmark XA 模式
  • #8062 Benchmark 真实 TCC 模式
  • #8052 Benchmark SAGA_ANNOTATION 模式
  • #8014 Benchmark P99.9 延迟
  • #7882 NamingServer Metrics
  • #7760 统一 Jackson/fastjson 序列化
  • #7000 多版本 codec + 注册失败原因返回
  • #7973 JSON 反序列化白名单
  • #7903 Raft Watch HTTP/2 流推送
  • #8002 NamingServer Grafana 仪表盘
  • #8020 客户端资源注销通知
  • #8044 注销协议 protobuf 序列化
  • #8046 fastjson2 / jackson3 序列化器
  • #7952 Raft Watch HTTP 协议动态切换
  • #8090 配置忽略的网络接口

Bug Fixes

  • #7929 Kingbase undo log SQL
  • #7940 Jakarta 包路径
  • #7960 控制台 API bean
  • #7956 JDK17+ JaCoCo 空报告
  • #7965 DM/Kingbase 主键索引识别
  • #7981 DataSourceProxy 关闭资源泄漏
  • #7992 分支事务状态缺少 branch type
  • #8035 GET 带 body 的 IllegalArgumentException
  • #8078 MySQL undo log 序列化
  • #8106 AOT 代理 NPE
  • #8113 控制台导出 JSON/下载
  • #8118 rollback 校验查询显式列
  • #8124 批量插入 SQL 函数 PK 提取

Refactor

  • #8023 全局虚拟线程切换
  • #8055 TCC 默认 JSON 解析器切 Jackson
  • #8103 integration RPC 模块重构
  • #8107 Spring 模块重构

Upgrade Notes

  • 默认 JSON 栈向 Jackson 收敛,使用 fastjson1 自定义配置需评估迁移
  • 虚拟线程可通过配置全局开启,JDK 版本需满足项目要求
  • tomcat-embed-core 升级至 9.0.117

Links

3 days ago
incubator-seata

Apache Seata (Incubating) 2.7.0 (RC)

Apache Seata (Incubating) 2.7.0 Release Candidate.

Git tag: v2.7.0 @ 49fef81747c3f7afd9ec0ae054e5a4aece83e5ac
Source / Binary (ASF SVN dev): https://dist.apache.org/repos/dist/dev/incubator/seata/2.7.0/
Maven staging (closed): https://repository.apache.org/content/repositories/orgapacheseata-1269/
CI: https://github.com/apache/incubator-seata/actions?query=branch%3A2.7.0+event%3Apush

This is a pre-release / RC for community and incubator voting. Do not treat as the final Apache release until votes pass and artifacts are promoted.


Highlights

  • Benchmark CLI 2.0:支持 AT / XA / TCC / SAGA_ANNOTATION,含 P99.9 延迟统计
  • NamingServer 可观测性:Metrics + Grafana 仪表盘
  • JSON 安全与统一:反序列化白名单、Jackson/fastjson 统一、fastjson2/jackson3 序列化器
  • 客户端注销资源:关闭 DataSourceProxy 时向 TC 发送注销通知(含 protobuf)
  • Raft Watch:HTTP/2 流推送 + HTTP 协议动态切换
  • 虚拟线程:全局虚拟线程切换(#8023)
  • 依赖与安全:tomcat 升级、console/saga npm 依赖精简、p3c 替换为 checkstyle 增量检查

Features

  • #7865 Benchmark 命令行工具
  • #8094 Benchmark XA 模式
  • #8062 Benchmark 真实 TCC 模式
  • #8052 Benchmark SAGA_ANNOTATION 模式
  • #8014 Benchmark P99.9 延迟
  • #7882 NamingServer Metrics
  • #7760 统一 Jackson/fastjson 序列化
  • #7000 多版本 codec + 注册失败原因返回
  • #7973 JSON 反序列化白名单
  • #7903 Raft Watch HTTP/2 流推送
  • #8002 NamingServer Grafana 仪表盘
  • #8020 客户端资源注销通知
  • #8044 注销协议 protobuf 序列化
  • #8046 fastjson2 / jackson3 序列化器
  • #7952 Raft Watch HTTP 协议动态切换
  • #8090 配置忽略的网络接口

Bug Fixes

  • #7929 Kingbase undo log SQL
  • #7940 Jakarta 包路径
  • #7960 控制台 API bean
  • #7956 JDK17+ JaCoCo 空报告
  • #7965 DM/Kingbase 主键索引识别
  • #7981 DataSourceProxy 关闭资源泄漏
  • #7992 分支事务状态缺少 branch type
  • #8035 GET 带 body 的 IllegalArgumentException
  • #8078 MySQL undo log 序列化
  • #8106 AOT 代理 NPE
  • #8113 控制台导出 JSON/下载
  • #8118 rollback 校验查询显式列
  • #8124 批量插入 SQL 函数 PK 提取

Refactor

  • #8023 全局虚拟线程切换
  • #8055 TCC 默认 JSON 解析器切 Jackson
  • #8103 integration RPC 模块重构
  • #8107 Spring 模块重构

Upgrade Notes

  • 默认 JSON 栈向 Jackson 收敛,使用 fastjson1 自定义配置需评估迁移
  • 虚拟线程可通过配置全局开启,JDK 版本需满足项目要求
  • tomcat-embed-core 升级至 9.0.117

Links

4 days ago
superset

superset-helm-chart-0.22.3

Apache Superset is a modern, enterprise-ready business intelligence web application

4 days ago
etcd

v3.7.1

Please check out CHANGELOG for a full list of changes. And make sure to read upgrade guide before upgrading etcd (there may be breaking changes).

For installation guides, please check out operating etcd. Latest support status for common architectures and operating systems can be found at supported platforms.

Linux
ETCD_VER=v3.7.1

# choose either URL
GOOGLE_URL=https://storage.googleapis.com/etcd
GITHUB_URL=https://github.com/etcd-io/etcd/releases/download
DOWNLOAD_URL=${GOOGLE_URL}

rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test

curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=1 --no-same-owner
rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz

/tmp/etcd-download-test/etcd --version
/tmp/etcd-download-test/etcdctl version
/tmp/etcd-download-test/etcdutl version

# start a local etcd server
/tmp/etcd-download-test/etcd

# write,read to etcd
/tmp/etcd-download-test/etcdctl --endpoints=localhost:2379 put foo bar
/tmp/etcd-download-test/etcdctl --endpoints=localhost:2379 get foo
macOS (Darwin)
ETCD_VER=v3.7.1

# choose either URL
GOOGLE_URL=https://storage.googleapis.com/etcd
GITHUB_URL=https://github.com/etcd-io/etcd/releases/download
DOWNLOAD_URL=${GOOGLE_URL}

rm -f /tmp/etcd-${ETCD_VER}-darwin-amd64.zip
rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test

curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-darwin-amd64.zip -o /tmp/etcd-${ETCD_VER}-darwin-amd64.zip
unzip /tmp/etcd-${ETCD_VER}-darwin-amd64.zip -d /tmp && rm -f /tmp/etcd-${ETCD_VER}-darwin-amd64.zip
mv /tmp/etcd-${ETCD_VER}-darwin-amd64/* /tmp/etcd-download-test && rm -rf mv /tmp/etcd-${ETCD_VER}-darwin-amd64

/tmp/etcd-download-test/etcd --version
/tmp/etcd-download-test/etcdctl version
/tmp/etcd-download-test/etcdutl version
Docker

etcd uses gcr.io/etcd-development/etcd as a primary container registry, and quay.io/coreos/etcd as secondary.

ETCD_VER=v3.7.1

rm -rf /tmp/etcd-data.tmp && mkdir -p /tmp/etcd-data.tmp && \
  docker rmi gcr.io/etcd-development/etcd:${ETCD_VER} || true && \
  docker run \
  -p 2379:2379 \
  -p 2380:2380 \
  --mount type=bind,source=/tmp/etcd-data.tmp,destination=/etcd-data \
  --name etcd-gcr-${ETCD_VER} \
  gcr.io/etcd-development/etcd:${ETCD_VER} \
  /usr/local/bin/etcd \
  --name s1 \
  --data-dir /etcd-data \
  --listen-client-urls http://0.0.0.0:2379 \
  --advertise-client-urls http://0.0.0.0:2379 \
  --listen-peer-urls http://0.0.0.0:2380 \
  --initial-advertise-peer-urls http://0.0.0.0:2380 \
  --initial-cluster s1=http://0.0.0.0:2380 \
  --initial-cluster-token tkn \
  --initial-cluster-state new \
  --log-level info \
  --logger zap \
  --log-outputs stderr

docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcd --version
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl version
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdutl version
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl endpoint health
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl put foo bar
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl get foo
4 days ago
etcd

v3.6.14

Please check out CHANGELOG for a full list of changes. And make sure to read upgrade guide before upgrading etcd (there may be breaking changes).

For installation guides, please check out operating etcd. Latest support status for common architectures and operating systems can be found at supported platforms.

Linux
ETCD_VER=v3.6.14

# choose either URL
GOOGLE_URL=https://storage.googleapis.com/etcd
GITHUB_URL=https://github.com/etcd-io/etcd/releases/download
DOWNLOAD_URL=${GOOGLE_URL}

rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test

curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=1 --no-same-owner
rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz

/tmp/etcd-download-test/etcd --version
/tmp/etcd-download-test/etcdctl version
/tmp/etcd-download-test/etcdutl version

# start a local etcd server
/tmp/etcd-download-test/etcd

# write,read to etcd
/tmp/etcd-download-test/etcdctl --endpoints=localhost:2379 put foo bar
/tmp/etcd-download-test/etcdctl --endpoints=localhost:2379 get foo
macOS (Darwin)
ETCD_VER=v3.6.14

# choose either URL
GOOGLE_URL=https://storage.googleapis.com/etcd
GITHUB_URL=https://github.com/etcd-io/etcd/releases/download
DOWNLOAD_URL=${GOOGLE_URL}

rm -f /tmp/etcd-${ETCD_VER}-darwin-amd64.zip
rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test

curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-darwin-amd64.zip -o /tmp/etcd-${ETCD_VER}-darwin-amd64.zip
unzip /tmp/etcd-${ETCD_VER}-darwin-amd64.zip -d /tmp && rm -f /tmp/etcd-${ETCD_VER}-darwin-amd64.zip
mv /tmp/etcd-${ETCD_VER}-darwin-amd64/* /tmp/etcd-download-test && rm -rf mv /tmp/etcd-${ETCD_VER}-darwin-amd64

/tmp/etcd-download-test/etcd --version
/tmp/etcd-download-test/etcdctl version
/tmp/etcd-download-test/etcdutl version
Docker

etcd uses gcr.io/etcd-development/etcd as a primary container registry, and quay.io/coreos/etcd as secondary.

ETCD_VER=v3.6.14

rm -rf /tmp/etcd-data.tmp && mkdir -p /tmp/etcd-data.tmp && \
  docker rmi gcr.io/etcd-development/etcd:${ETCD_VER} || true && \
  docker run \
  -p 2379:2379 \
  -p 2380:2380 \
  --mount type=bind,source=/tmp/etcd-data.tmp,destination=/etcd-data \
  --name etcd-gcr-${ETCD_VER} \
  gcr.io/etcd-development/etcd:${ETCD_VER} \
  /usr/local/bin/etcd \
  --name s1 \
  --data-dir /etcd-data \
  --listen-client-urls http://0.0.0.0:2379 \
  --advertise-client-urls http://0.0.0.0:2379 \
  --listen-peer-urls http://0.0.0.0:2380 \
  --initial-advertise-peer-urls http://0.0.0.0:2380 \
  --initial-cluster s1=http://0.0.0.0:2380 \
  --initial-cluster-token tkn \
  --initial-cluster-state new \
  --log-level info \
  --logger zap \
  --log-outputs stderr

docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcd --version
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl version
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdutl version
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl endpoint health
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl put foo bar
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl get foo