OpenSSL 4.1.0
OpenSSL 4.1.0 is a feature release adding significant new functionality to OpenSSL.
This release incorporates the following potentially significant or incompatible changes:
-
Added
VC-WIN32-MSVC2013andVC-WIN64A-MSVC2013build targets to provide internal functions for bridging the gaps in C99 standard support that are present in MSVC 2013. -
Added optimized ML-DSA and ML-KEM NTT operations on
ppc64le; optimized ML-DSA operations onx86_64; AVX-512-optimized SHAKE x4 operations for ML-DSA onx86_64; AVX-512 and VAES optimizations for AES-CBC decryption onx86_64. -
Changed
tsgetutility to useNet::Curl::Easy(from theNet-CurlCPAN distribution) instead of the abandonedWWW::Curl::Easy. Users who rely ontsgetshould installNet::Curl::Easybefore upgrading. -
Dropped Windows-on-Itanium (
VC-WIN64I) and Windows CE (VC-CE) targets from Configurations. -
Dropped
no-ecdsaandno-ecdhoptions fromConfigure, as these options did not really disable the implementations. Useno-ecto disable the elliptic curve support.
This release adds the following new features:
-
Support for DTLS 1.3 (RFC 9147). Refer to the
ossl-guide-dtlsv13(7)manual page for details. -
Support for RFC 8701 GREASE (Generate Random Extensions And Sustain Extensibility).
-
DTLS support in the SSL listener API.
-
Support for IKEV2 KDF.
-
Initial support for the Elbrus2000 (
e2k) architecture.
Known issues in 4.1.0:
-
https://github.com/openssl/openssl/issues/32878 When a DTLS 1.3 KeyUpdate is received, all other outstanding post-handshake records are dropped from the retransmission buffer. This means post-handshake records still awaiting an ACK (such as a NewSessionTicket) will no longer be retransmitted if the original transmission is lost. A fix is in progress and planned for a future release.
-
https://github.com/openssl/openssl/issues/33277 A permanent receive failure on a DTLS listener can be reported as
SSL_ERROR_WANT_READon an accepted connection. Polling and subsequent accept calls may also fail to report the error, causing applications to continue waiting after a permanent failure. -
https://github.com/openssl/openssl/issues/33278 A retryable write failure on a nonblocking connection accepted from a DTLS listener can be reported as
SSL_ERROR_SYSCALLinstead ofSSL_ERROR_WANT_WRITE. Applications treating this result as fatal may close a connection that is still usable. -
https://github.com/openssl/openssl/issues/33242 DTLS 1.3 servers may abort handshakes with an
unexpected_messagealert when a client acknowledges part or all of the server's first flight before sending its response. This can occur after packet loss or while the client is preparing its authentication response.
4.49
- build(deps): bump golang.org/x/oauth2 from 0.36.0 to 0.37.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11504
- build(deps): bump github.com/dustin/go-humanize from 1.0.1 to 1.1.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11505
- build(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.14.0 to 1.14.1 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11506
- build(deps): bump github.com/twmb/avro from 1.8.0 to 1.9.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11507
- build(deps): bump cloud.google.com/go/kms from 1.34.0 to 1.35.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11508
- build(deps): bump github/codeql-action from 4.38.1 to 4.38.2 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11509
- build(deps): bump com.fasterxml.jackson.core:jackson-databind from 2.22.1 to 2.22.2 in /test/java/spark by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11511
- filer: compare IF_ENTRY_EQUAL chunks by fid, not file_id by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11514
- iam: evaluate trust policies deny-by-default by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11513
- s3/iam: persist IAM-managed OIDC providers in the filer, and trust them after a restart by @khrisrichardson in https://github.com/seaweedfs/seaweedfs/pull/11510
- docker: publish release and latest images for linux/ppc64le and linux/s390x by @IshwarKanse in https://github.com/seaweedfs/seaweedfs/pull/11517
- helm: add base dns names to admin cert by @InuSasha in https://github.com/seaweedfs/seaweedfs/pull/11518
- filer: evict remote-cached objects under storage pressure by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11515
- s3api: always write XML timestamps with three fractional digits by @dalexhu in https://github.com/seaweedfs/seaweedfs/pull/11520
- vacuum: keep disk-full read-only volumes reclaimable by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11519
- s3/iam: retry a failed OIDC provider refresh until the store answers by @khrisrichardson in https://github.com/seaweedfs/seaweedfs/pull/11521
- s3/iam: manage roles through the IAM API, with an opt-in persistent role store by @khrisrichardson in https://github.com/seaweedfs/seaweedfs/pull/11522
- shell: say which read-only volumes volume.vacuum leaves alone by @ihnokim in https://github.com/seaweedfs/seaweedfs/pull/11525
- master: follow heartbeat read-only changes in the layout's replica flag by @ihnokim in https://github.com/seaweedfs/seaweedfs/pull/11527
- s3api: do not store aws-chunked in an object's Content-Encoding by @IamYipi in https://github.com/seaweedfs/seaweedfs/pull/11528
- s3api: report the stored checksum in GetObjectAttributes by @IamYipi in https://github.com/seaweedfs/seaweedfs/pull/11529
- build(deps): bump com.fasterxml.jackson.core:jackson-databind from 2.22.2 to 2.22.3 in /test/java/spark by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11548
- volume server: drop the unused unmount result in VolumeCopy validation, and test-only EC helpers by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11531
- volume server: collect EC heartbeats and adjust volume max off the runtime by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11532
- volume server: VolumeNeedleStatus reads remote EC shards and reports deleted needles like Go by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11535
- volume server: ec.decode reads the .ecx from the index dir it was copied to by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11536
- volume: read EC shards fully, like Go's ReadAt by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11537
- volume server: refuse a tier move while compacting, and a commit once tiered by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11539
- volume server: take the heartbeat's remaining store reads off the runtime by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11540
- volume server: keep repeated response headers when proxying a read, like Go by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11542
- volume server: group-commit fsync writes in the write queue by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11543
- volume: say "volume N is read only" like Go, so filer retries deletes by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11544
- volume server: answer BatchDelete on EC needles as Go does by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11541
- s3: return 403, not 500, when an over-quota bucket refuses a write by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11552
- ecbalancer: honour total-shards-per-rack cap in Place / PlaceDurabilityFirst by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11553
- Helm: Add Configurable Security Contexts for Chart-Managed Workloads by @deepnemesis in https://github.com/seaweedfs/seaweedfs/pull/11558
- volume server: refuse to compact a volume tiered to remote storage by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11545
- s3: restrict admin gRPC to local callers when no signing key by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11530
- volume: test that only the disk holding the replaced replica gets the free-slot credit by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11486
- volume server: stream needle chunks without the store lock by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11488
- filer: option to store system metadata logs in their own collection by @MorezMartin in https://github.com/seaweedfs/seaweedfs/pull/11551
- Helm: Add Opt-in Read-Only Root Filesystem Support by @deepnemesis in https://github.com/seaweedfs/seaweedfs/pull/11562
- filer: persist pending chunk deletions across restarts (durable deletion ledger) by @MorezMartin in https://github.com/seaweedfs/seaweedfs/pull/11550
- volume: merge .ecj as a set union on EC shard copy + index recovery (Rust+Go) by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11554
- vacuum: check compaction space against live bytes, not volume size by @ihnokim in https://github.com/seaweedfs/seaweedfs/pull/11524
- iam: manage OIDC providers and roles over the filer IAM gRPC service by @khrisrichardson in https://github.com/seaweedfs/seaweedfs/pull/11523
- volume: compact an oversized .ecj at mount, safely (Rust + Go) by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11555
- s3: track filer joins and leaves pushed by the master by @petedodd-pd in https://github.com/seaweedfs/seaweedfs/pull/11563
- filer: keep generated inodes inside the positive signed 64-bit range by @Yi-111-a in https://github.com/seaweedfs/seaweedfs/pull/11567
- vacuum: bound master vacuum RPCs with phase deadlines by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11579
- s3api: allow unsigned SSE-C customer key headers on presigned requests by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11578
- filer.remote.sync: do not pin the sync offset on completed work by @jsas in https://github.com/seaweedfs/seaweedfs/pull/11569
- volume server: ec.decode verifies, cleans up and compacts like Go, off the runtime by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11547
- s3: keep small ranged GETs on range reads, no whole-chunk downloads by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11577
- helm: compare PVC sizes numerically in the volume resize hook by @oliverrahner in https://github.com/seaweedfs/seaweedfs/pull/11575
- volume server: split get_or_head_handler_inner into phases by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11489
- filer: resume metadata subscriber from processed watermark on reconnect by @Tyagiquamar in https://github.com/seaweedfs/seaweedfs/pull/11574
- filer: skip UpdateEntry when inline content is unchanged by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11580
- volume server: refuse the rest of a grouped run after a durable index failure by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11576
- filer.sync: resubscribe the metadata stream when a failure pins the offset by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11581
- s3api: copy the trailer checksum before reading the next trailer line by @polynomeer in https://github.com/seaweedfs/seaweedfs/pull/11583
- filer: stop isSameChunks from sorting caller-owned chunk slices by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11584
- s3api: fix PutObjectAcl permission scoping and owner grants by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11587
- helm: mount TLS certificates in bucket hook by @HajimohammadiNet in https://github.com/seaweedfs/seaweedfs/pull/11589
- [Filer] Support append to inline small files by @ssshr-66 in https://github.com/seaweedfs/seaweedfs/pull/11591
- s3api: persist ACLs on PutObject uploads by @zhao-yc in https://github.com/seaweedfs/seaweedfs/pull/11592
- S3: fix ListObjectVersions losing keys across page boundaries by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11598
- admin: stop leaking cancelled maintenance task files in -dataDir/tasks by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11597
- fix(s3): initialize destination ACLs for CopyObject by @zhao-yc in https://github.com/seaweedfs/seaweedfs/pull/11599
- volume server: read a non-ASCII or empty Range header as Go does by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11534
- image: add an optional public image processing gateway by @zhao-yc in https://github.com/seaweedfs/seaweedfs/pull/11593
- kafka: honor notification.kafka.event_types by @xop01 in https://github.com/seaweedfs/seaweedfs/pull/11601
- volume server: fetch only the chunks a manifest Range needs, like Go by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11546
- build(deps): bump github.com/rabbitmq/amqp091-go from 1.14.0 to 1.15.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11610
- build(deps): bump github.com/hashicorp/raft-boltdb/v2 from 2.3.1 to 2.4.2 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11606
- filer: bound metadata log flush retries during shutdown by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11596
- build(deps): bump golang.org/x/time from 0.15.0 to 0.16.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11608
- fix(s3): honor object ACLs for anonymous GET and HEAD by @zhao-yc in https://github.com/seaweedfs/seaweedfs/pull/11605
- fix(filer): leave the lock ring before stopping gRPC on shutdown by @petedodd-pd in https://github.com/seaweedfs/seaweedfs/pull/11604
- volume server: apply Range to chunk manifests and forward raw headers when proxying by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11538
- fix(s3): drain in-flight requests on SIGTERM in standalone weed s3 by @petedodd-pd in https://github.com/seaweedfs/seaweedfs/pull/11603
- helm: expose s3 update strategy, lifecycle, and termination grace period by @petedodd-pd in https://github.com/seaweedfs/seaweedfs/pull/11602
- build(deps): bump github.com/tidwall/gjson from 1.18.0 to 1.19.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11607
- build(deps): bump org.apache.spark:spark-core_2.12 from 3.5.7 to 3.5.8 in /test/java/spark by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11616
- helm: drop fromToml dependency in security-configmap.yaml (fixes #11611) by @upayanmazumder in https://github.com/seaweedfs/seaweedfs/pull/11614
- build(deps): bump github.com/apache/iceberg-go from 0.6.1-0.20260817192109-c2105090c9e2 to 0.7.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11609
- Secure Weed Mini Admin Listeners by Default by @deepnemesis in https://github.com/seaweedfs/seaweedfs/pull/11613
- volume: return error instead of panicking when .dat open fails by @hippi345 in https://github.com/seaweedfs/seaweedfs/pull/11619
- fix(s3): recheck cache metadata and validate null objects by @zhao-yc in https://github.com/seaweedfs/seaweedfs/pull/11618
- build(deps): bump rustls from 0.23.43 to 0.23.45 in /seaweed-worker by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11617
- S3: quote ETag in CopyObject and UploadPartCopy XML responses by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11624
- fix(cosi): add get/list/watch on bucketclasses to enable static provi… by @jonasoo98 in https://github.com/seaweedfs/seaweedfs/pull/11620
- fix(s3): make self-heal pointer persist CAS-bound against concurrent writers by @zhao-yc in https://github.com/seaweedfs/seaweedfs/pull/11627
- ecbalancer: cap total shards per rack in Plan by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11623
- s3: give each prefix its own hidden-prefix probe budget by @hippi345 in https://github.com/seaweedfs/seaweedfs/pull/11626
- s3api: align S3/IAM error responses with AWS by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11632
- filer: stop the aggregated metadata subscribe loop rescanning an exhausted persisted log by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11644
- filer.sync: sign proxied chunk I/O from the per-side security file by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11645
- deps: pin seaweedfs/goexif at v1.0.3 and stop dependabot re-bumping it by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11648
- ec: strict_placement option so encode only runs while guarantees hold by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11656
- iceberg maintenance: keep compacted files prunable (stats, bound order, row groups) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11654
- fix(volume): keep the TTL clock across a vacuum commit instead of rescanning by @petedodd-pd in https://github.com/seaweedfs/seaweedfs/pull/11630
- build(deps): bump rustls from 0.23.43 to 0.23.45 in /seaweed-common by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11675
- catalog: refused writes answer 403 to callers that can read the entry by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11650
- iceberg maintenance: keep statistics files the table metadata references by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11651
- iceberg maintenance: write position-delete files with spec field ids and dictionary paths by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11652
- s3api: do not re-run permission checks in the aws-chunked reader by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11655
- test: stop the compat server even when startup fails by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11659
- filer: keep the proxy-JWT test from hanging on a failed fetch by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11664
- helm: add Gateway API HTTPRoute for master, volume, filer, s3 and admin by @younsl in https://github.com/seaweedfs/seaweedfs/pull/11625
- s3api: reject SSE headers PutObject cannot honor, as CopyObject does by @IamYipi in https://github.com/seaweedfs/seaweedfs/pull/11642
- filer: cut ReaderCache mutex contention on small reads by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11677
- s3api: verify under the write lock before re-committing an ambiguous routed PUT by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11649
- s3api: revoke the identities a config reload no longer declares by @paoValle in https://github.com/seaweedfs/seaweedfs/pull/11679
- volume server: answer chunk-manifest reads from the sum of chunk sizes by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11628
- s3api: tolerate session tokens on statically configured credentials by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11694
- fix(filer): end metadata subscriptions before gRPC GracefulStop on shutdown by @tchobanski in https://github.com/seaweedfs/seaweedfs/pull/11663
- s3api: resolve volume data encryption in CopyObject SSE flows (#11646) by @Tyagiquamar in https://github.com/seaweedfs/seaweedfs/pull/11683
- fix: return NoSuchKey and drop stale entries when a remote-mounted object is gone from the remote by @petedodd-pd in https://github.com/seaweedfs/seaweedfs/pull/11680
- storage: unify needle-map counters across index loaders and warn on copy-count drift by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11701
- filer: fail writes when the existing-entry lookup fails by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11699
- s3api: validate ListObjectVersions max-keys and honor max-keys=0 by @TheNetherWatcher in https://github.com/seaweedfs/seaweedfs/pull/11703
- filer: fail the request, not the process, when chunks cannot be resolved by @martijnhoekstra in https://github.com/seaweedfs/seaweedfs/pull/11685
- kms/azure: fix encrypt/decrypt round trip for Azure Key Vault by @Yi-111-a in https://github.com/seaweedfs/seaweedfs/pull/11692
- s3api: apply bucket default encryption when volume data encryption is enabled by @Tyagiquamar in https://github.com/seaweedfs/seaweedfs/pull/11681
- worker: reject balance moves onto servers without the volume's disk type by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11695
- s3api: register the azurekms KMS provider under its build tag by @Yi-111-a in https://github.com/seaweedfs/seaweedfs/pull/11691
- s3api: accept max-keys up to 2147483647 and cap list pages at 1000 by @TheNetherWatcher in https://github.com/seaweedfs/seaweedfs/pull/11702
- build(deps): bump golang.org/x/net from 0.58.0 to 0.61.0 by @homeofe in https://github.com/seaweedfs/seaweedfs/pull/11705
- build(deps): bump github.com/klauspost/compress from 1.19.2 to 1.20.1 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11668
- s3api: preserve remote object ETags across cache fills by @zhechen-cs in https://github.com/seaweedfs/seaweedfs/pull/11704
- build(deps): bump github.com/jhump/protoreflect from 1.18.0 to 1.18.1 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11667
- build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.33.1 to 1.33.6 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11665
- mount: fail writes over to the next filer instead of hanging on a dead one by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11696
- build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.109.1 to 1.114.1 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11669
- filer: announce to master only once gRPC serves, and leave before it stops by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11700
- build(deps): bump github.com/ydb-platform/ydb-go-sdk-auth-environ from 0.5.2 to 0.5.3 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11666
- fix(filer): prevent nil pointer dereference in CompactFileChunks when context is cancelled by @Tyagiquamar in https://github.com/seaweedfs/seaweedfs/pull/11690
- filer.remote.sync: upload a rewrite that lands in the remote mtime's second by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11715
- iceberg maintenance: v3 row lineage so v3 tables compact and rewrite manifests by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11653
- mount: unwind metadata lookups on FUSE interrupt by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11717
- test: add build constraints to Unix-only files by @martijnhoekstra in https://github.com/seaweedfs/seaweedfs/pull/11712
- helm: keep the S3 config checksum stable across the first upgrade (fixes #11719) by @egezamb in https://github.com/seaweedfs/seaweedfs/pull/11720
- filer: converge peer metadata replication on restart by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11698
- filer: keep sequential prefetch within prefetchCount chunks by @scooby87 in https://github.com/seaweedfs/seaweedfs/pull/11674
- fix(volume): skip unnecessary needle data reads on delete by @JoePassanante in https://github.com/seaweedfs/seaweedfs/pull/11711
- EC placer: walk extra shards on freeSlots, keep 2+2 by @CHEPURNOV-S-S in https://github.com/seaweedfs/seaweedfs/pull/11714
- master: record writableVolumeCount on HTTP /dir/assign like gRPC Assign by @ingardm in https://github.com/seaweedfs/seaweedfs/pull/11716
- filer: copy a remote-only entry on the remote when renaming it by @impuls42 in https://github.com/seaweedfs/seaweedfs/pull/11709
- sftp: fail a directory listing on a stream error, and page past hidden entries by @jayhemnani9910 in https://github.com/seaweedfs/seaweedfs/pull/11724
- Volume grow avg fill threshold by @giftz in https://github.com/seaweedfs/seaweedfs/pull/11725
- EC worker: pin jobs to replica-host workers, late-bind local source by @CHEPURNOV-S-S in https://github.com/seaweedfs/seaweedfs/pull/11718
- ec: avoid redundant needle.GetActualSize call in LocateEcShardNeedle by @lmortezal in https://github.com/seaweedfs/seaweedfs/pull/11629
- build(deps): bump rustls from 0.23.37 to 0.23.45 in /seaweed-volume by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11707
- sftp: keep a file's existing bytes when it is opened for write without truncate by @jayhemnani9910 in https://github.com/seaweedfs/seaweedfs/pull/11723
- build(deps): bump github/codeql-action from 4.38.2 to 4.38.3 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11746
- build(deps): bump github.com/ydb-platform/ydb-go-sdk/v3 from 3.151.1 to 3.155.1 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11739
- build(deps): bump helm/chart-testing-action from 2.8.0 to 2.9.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11745
- build(deps): bump github.com/go-redsync/redsync/v4 from 4.17.0 to 4.18.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11743
- fix(shell): compare fractional evacuation destination ratios by @dwo in https://github.com/seaweedfs/seaweedfs/pull/11752
- webdav: read small files stored inline in the entry by @jayhemnani9910 in https://github.com/seaweedfs/seaweedfs/pull/11733
- filer: record the size of a multipart upload saved inside the entry by @jayhemnani9910 in https://github.com/seaweedfs/seaweedfs/pull/11734
- filer: create parent directories for lazily fetched remote entries by @gflatters in https://github.com/seaweedfs/seaweedfs/pull/11727
- filer: escape LIKE wildcards in SQL list prefixes by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11757
- mini: surface saved options and warn when filer store escapes -dir by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11758
- mini: note mini.options and Docker filer.toml pitfalls in help by @fjvbn2003 in https://github.com/seaweedfs/seaweedfs/pull/11755
- ec: re-plan balance moves when a target reports no space left by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11759
- build(deps): bump github.com/aws/aws-sdk-go-v2 from 1.47.1 to 1.47.3 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11741
- build(deps): bump github.com/a-h/templ from 0.3.1020 to 0.3.1070 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11742
- build(deps): bump helm/kind-action from 1.15.0 to 1.15.1 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11747
- build(deps): bump github.com/Azure/azure-sdk-for-go/sdk/storage/azblob from 1.8.0 to 1.8.2 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11740
- mount: release flock locks before the close-time flush by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11726
- s3: default allowDeleteBucketNotEmpty to false by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11769
- s3: fix PutObject If-Match under suspended versioning by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11780
- shell: keep volume.tier.compact replicas on the same remote object by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11783
- filer: sweep the local subtree on a replayed directory delete by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11785
- s3tables: scope OIDC-derived account IDs to the token issuer by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11774
- s3: evaluate tag conditions on copy-source and tagging subresources by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11771
- s3: apply destination retention on copies instead of inheriting it by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11773
- s3tables: let an explicit policy Deny veto fallback and owner allows by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11772
- admin: move dashboard progress labels beside the bar by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11781
- filer: make a retried ObjectTransaction replay its recorded outcome by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11788
- filer: extract zip members on ?extract=zip upload by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11782
- s3: extract zip members on PutObject by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11786
- shell: make every -collection flag parse the same way by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11794
- s3: accept signed streaming uploads when IAM is disabled by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11766
- iam: accept AWS action names for listing multipart uploads and parts by @DeviousCardi in https://github.com/seaweedfs/seaweedfs/pull/11765
- iceberg: collapse doubled /v1 prefix in catalog requests by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11767
- s3: keep the gateway up when an auxiliary listener fails to bind by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11768
- volume balance: stop planning moves onto disk types a server does not have by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11762
- ec.shard.unmount: treat same-node shard copies as one target by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11778
- s3: report an empty probed directory as a common prefix, not a key by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11779
- vacuum: bound concurrent commits per volume server by @petedodd-pd in https://github.com/seaweedfs/seaweedfs/pull/11658
- admin: fix Create Bucket sending POST /api/s3/buckets twice by @joma1022 in https://github.com/seaweedfs/seaweedfs/pull/11790
- filer: shrink zip spool threshold in tests to fix 32-bit OOM by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11796
- ec: carry the source volume's TTL expiry into the worker-written .vif by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11777
- sftp: enforce file ACLs on rename targets by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11770
- mini/server/filer: let embedded s3/sftp gateways use their own -dataCenter by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11798
- helm: apply placement values to the chart's hook Jobs by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11795
- s3 lifecycle: share daily bucket walk and prune listings by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11797
- s3 lifecycle: replay only the rules that fit the retention window by @kai-mathpix in https://github.com/seaweedfs/seaweedfs/pull/11789
- s3api: hydrate runtime policies on propagated IAM updates by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11784
- s3: count stored versions as bucket contents on delete by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11775
- fs.meta.load: wait for in-flight entry creation before returning by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11776
- filer: shrink zip spool threshold in tests to fix 32-bit OOM by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11801
- s3api: make ambiguous routed-PUT recovery atomic and stop transaction replay by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11787
- s3: read chunks from HTTPS volume servers with the global HTTP client by @nabilragab in https://github.com/seaweedfs/seaweedfs/pull/11800
- filer: honor a storage rule's rack/data-center constraint instead of falling back by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11804
- s3api: evaluate object-tag policy conditions on delete, ACL and lock operations by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11807
- s3api: recheck suspended-version condition under the lock when the filer ignores condition_alt_key by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11806
- s3tables: tighten legacy OIDC subject re-anchoring by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11808
- Rust volume: stamp ExpireAtSec into the live volume_info on .vif persist by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11813
- webdav: create a folder under its own name by @jayhemnani9910 in https://github.com/seaweedfs/seaweedfs/pull/11810
- s3: list children of the directory a ListObjects marker names by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11805
- iam: scope CreateServiceAccount's ParentUser by policy resource by @batonogov in https://github.com/seaweedfs/seaweedfs/pull/11736
- filer: free orphaned hard-link chunks and remote objects in delete sweeps by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11809
- build(deps): bump github.com/seaweedfs/raft from 1.2.1 to 1.2.2 by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11815
- webdav: delete a folder with its contents by @jayhemnani9910 in https://github.com/seaweedfs/seaweedfs/pull/11811
- admin: default to port 12535, keep 23646 as a best-effort compat listener by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11816
- fix(admin): improve Total Volumes count contrast by @Tyagiquamar in https://github.com/seaweedfs/seaweedfs/pull/11817
- ec: compare live idx NeedleId sets before encode by @CHEPURNOV-S-S in https://github.com/seaweedfs/seaweedfs/pull/11812
- storage: hash index-metric bloom filter with xxhash by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11827
- Design + master mirror of max volume id outside raft (#11763) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11818
- rust volume: release the store write lock during needle I/O by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11823
- s3tables: honor resource policy Deny on remaining operations by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11825
- s3: list the size of a directory marker that has a body by @jayhemnani9910 in https://github.com/seaweedfs/seaweedfs/pull/11830
- s3: verify X-Forwarded-Prefix only from trusted proxies by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11843
- build(deps): bump modernc.org/sqlite from 1.57.0 to 1.60.1 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11838
- build(deps): bump gocloud.dev/pubsub/rabbitpubsub from 0.46.0 to 0.47.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11835
- build(deps): bump github/codeql-action from 4.38.3 to 4.39.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11840
- build(deps): bump github.com/klauspost/compress from 1.20.1 to 1.20.3 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11837
- build(deps): bump github.com/tidwall/gjson from 1.19.0 to 1.20.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11834
- build(deps): bump github.com/linxGnu/grocksdb from 1.10.8 to 1.11.1 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11836
- s3tables: accept .puffin deletion vectors in table data/ by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11844
- Federated volume-id bound via heartbeat stamps (#11763) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11819
- ci: retry the awscli multipart download on transient failures by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11846
- ci: fail the awscli multipart retry loop on the last attempt by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11848
- s3: sort ListMultipartUploads by key and honor key-marker by @jayhemnani9910 in https://github.com/seaweedfs/seaweedfs/pull/11833
- filer.sync: unstick sync on chunks the source no longer has by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11845
- s3: keep a signed content-length in the canonical request by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11849
- s3: strip internal metadata headers on auth entry by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11850
- test: retry retryable 503s in cold-start assign test by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11852
- volume balance: stop replica-fallback moves between equally full servers by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11851
- server: give heartbeat-options test a topology by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11853
- Add OLake to README and Admin UI; fix catalog_olake path-style docs by @gauriiiiiiiiiiii in https://github.com/seaweedfs/seaweedfs/pull/11858
- s3: list keys in byte order around directory markers by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11832
- iceberg, lance: vend read-only credentials to callers that may only read by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11859
- rust volume: group-commit fsync uploads on the direct write path by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11860
- Freeze volume growth on topology id mismatch (#11763) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11820
- Detect and quarantine duplicate volume ids (#11763) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11828
- rust volume: score EC shard placement with the volume's own ratio by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11862
- s3: mask anonymous misses behind AccessDenied unless the bucket is listable by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11857
- volume: run the durable sync outside the reader-visible lock by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11863
- build(deps): bump github.com/klauspost/compress from 1.17.0 to 1.18.7 in /test/kafka/simple-consumer by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11869
- build(deps): bump github.com/klauspost/compress from 1.15.9 to 1.18.7 in /test/kafka/kafka-client-loadtest/tools by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11866
- volume: repair an unindexed .dat tail at load instead of loading read-only by @jatorre in https://github.com/seaweedfs/seaweedfs/pull/11870
- iceberg: keep version-hint.text out of remove_orphans (#11867) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11871
- iam: targeted writes for single-user IAM actions by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11877
- build(deps): bump github.com/klauspost/compress from 1.18.0 to 1.18.7 in /test/kafka/kafka-client-loadtest by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11879
- s3tables: only the admin repairs a table bucket that has no owner metadata by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11873
- s3: resolve versionId tagging requests to the version-tagging actions by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11874
- s3, s3tables: create buckets and namespaces exclusively by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11872
- iceberg maintenance: merge bin files across parquet schema spellings by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11875
- rust volume: repair an unindexed .dat tail at load by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11878
- README: describe OLake Go and fix its wiki link by @gauriiiiiiiiiiii in https://github.com/seaweedfs/seaweedfs/pull/11880
- volume: repair torn tails on canDelete volumes; reject damaged 1-3 byte records by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11876
- s3: answer a conditional write on a missing object with 404, not 412 by @jayhemnani9910 in https://github.com/seaweedfs/seaweedfs/pull/11882
- gcs: size the upload buffer from the entry instead of reserving the default 16 MiB chunk per writer by @jsas in https://github.com/seaweedfs/seaweedfs/pull/11854
- filer.remote.sync: do not upload an entry whose only content is the remote object by @daniel-garcia in https://github.com/seaweedfs/seaweedfs/pull/11890
- s3tables: accept Puffin statistics files in a table's metadata/ by @jatorre in https://github.com/seaweedfs/seaweedfs/pull/11892
- iam: take the implicit user name from the verified identity by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11903
- s3tables: keep absent-target answers identical to denied ones by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11905
- fix(s3): set Access-Control-Allow-Credentials on CORS responses by @Tyagiquamar in https://github.com/seaweedfs/seaweedfs/pull/11886
- s3tables: judge an absent tag target by its canonical ARN by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11912
- volume: route lookups to the leader master only by @plisandro in https://github.com/seaweedfs/seaweedfs/pull/11888
- s3: apply Range to HeadObject by @jayhemnani9910 in https://github.com/seaweedfs/seaweedfs/pull/11856
- s3: report the copied bytes' MD5 in UploadPartCopy ETags by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11884
- s3tables, iceberg: log client refusals at V(1), not ERROR by @jatorre in https://github.com/seaweedfs/seaweedfs/pull/11896
- volume tier: accept deletes on a volume as soon as it is tiered by @jatorre in https://github.com/seaweedfs/seaweedfs/pull/11894
- s3: no empty-directory marker in a "/" self-prefix listing by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11906
- s3: answer InvalidBucketName to a denied request on a malformed bucket name by @jatorre in https://github.com/seaweedfs/seaweedfs/pull/11893
- s3api: cover the inline-content UploadPartCopy route at handler level by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11914
- s3 backend: optional HTTP client settings for the cloud tier by @jatorre in https://github.com/seaweedfs/seaweedfs/pull/11897
- s3tables: accept the external-volume verification object at a table bucket's root by @jatorre in https://github.com/seaweedfs/seaweedfs/pull/11900
- iceberg: keep a default-CRS geometry column without a CRS after compaction by @jatorre in https://github.com/seaweedfs/seaweedfs/pull/11899
- volume: use FALLOC_FL_KEEP_SIZE and log preallocation failures by @junkerderprovinz in https://github.com/seaweedfs/seaweedfs/pull/11920
- fix(storage): count preallocated space when auto-sizing max volumes by @junkerderprovinz in https://github.com/seaweedfs/seaweedfs/pull/11919
- ec distribution: implement the documented shard distribution API by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11915
- s3: resolve versionId ACL and attributes requests to the version-scoped actions by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11916
- iceberg: authorize a commit before staging its metadata file by @jatorre in https://github.com/seaweedfs/seaweedfs/pull/11891
- iceberg: record geometry bounds on the data files compaction writes by @jatorre in https://github.com/seaweedfs/seaweedfs/pull/11898
- storage: read the super block extra before unmarshaling it by @junkerderprovinz in https://github.com/seaweedfs/seaweedfs/pull/11932
- s3: keep '' a literal object-key character behind -s3.allowBackslashInKey by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11911
- sftp: reject empty passwords in PasswordAuthenticator by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11938
- iam: optionally require an iam: grant for self-service access-key actions by @jatorre in https://github.com/seaweedfs/seaweedfs/pull/11937
- Missing data read in super block extra parsing by @ccy00808 in https://github.com/seaweedfs/seaweedfs/pull/8392
- upload: upload -dir files concurrently behind a new -c flag by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11918
- volume: never compact a volume tiered to remote storage by @jatorre in https://github.com/seaweedfs/seaweedfs/pull/11895
- shell: bound the initial master connection wait behind -connectTimeout by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11922
- volume.configure: keep the superblock in sync with the .vif by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11930
- volume: report the needle read error with a failed read by @junkerderprovinz in https://github.com/seaweedfs/seaweedfs/pull/11934
- remote_storage/s3: use the AWS default credential chain when a source is configured by @daniel-garcia in https://github.com/seaweedfs/seaweedfs/pull/11881
- fix: volume.fsck purges live chunks of files renamed during its filer walk (SQL stores) by @kisow in https://github.com/seaweedfs/seaweedfs/pull/11883
- s3, iceberg: record the access key a request was signed with by @jatorre in https://github.com/seaweedfs/seaweedfs/pull/11901
- s3: skip the local filer socket on Windows by @junkerderprovinz in https://github.com/seaweedfs/seaweedfs/pull/11921
- volume.fsck: delete missing filer entries through a worker pool by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11924
- filer leveldb2: tunable cache, buffer, block and table sizes by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11927
- s3api: skip error response body when http forbids it by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11931
- filer: reduce forwarded lock log noise by @junkerderprovinz in https://github.com/seaweedfs/seaweedfs/pull/11933
- s3: reject requests carrying more than one routed subresource by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11942
- s3api: support s3:RequestObjectTag/ in bucket policies by @junkerderprovinz in https://github.com/seaweedfs/seaweedfs/pull/11910
- filer+volume: make acknowledged writes durable under the fsync rule by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11943
- s3: fix prefix filtering and delimiter pagination by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11962
- test: fix HEAD bucket assertions and FUSE failover startup timing by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11967
- FUSE mount: add posix compliance reports by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/7183
- deps: patch two open dependabot alerts (klauspost/compress, aws-smithy-json) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11959
- fix: clone protobuf snapshots without copying internal locks by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11968
- weed filer.remote.sync: ignore .system directory under buckets (#11966) by @Tyagiquamar in https://github.com/seaweedfs/seaweedfs/pull/11969
- @khrisrichardson made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11510
- @IshwarKanse made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11517
- @InuSasha made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11518
- @dalexhu made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11520
- @ihnokim made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11525
- @IamYipi made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11528
- @deepnemesis made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11558
- @oliverrahner made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11575
- @polynomeer made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11583
- @HajimohammadiNet made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11589
- @zhao-yc made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11592
- @xop01 made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11601
- @upayanmazumder made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11614
- @hippi345 made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11619
- @jonasoo98 made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11620
- @younsl made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11625
- @paoValle made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11679
- @tchobanski made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11663
- @TheNetherWatcher made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11703
- @martijnhoekstra made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11685
- @homeofe made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11705
- @zhechen-cs made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11704
- @egezamb made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11720
- @scooby87 made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11674
- @JoePassanante made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11711
- @CHEPURNOV-S-S made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11714
- @jayhemnani9910 made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11724
- @lmortezal made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11629
- @dwo made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11752
- @gflatters made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11727
- @fjvbn2003 made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11755
- @DeviousCardi made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11765
- @joma1022 made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11790
- @kai-mathpix made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11789
- @nabilragab made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11800
- @batonogov made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11736
- @gauriiiiiiiiiiii made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11858
- @jatorre made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11870
- @daniel-garcia made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11890
- @ccy00808 made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/8392
Full Changelog: https://github.com/seaweedfs/seaweedfs/compare/4.48...4.49
v3.7.3
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 play.etcd.io and operating etcd. Latest support status for common architectures and operating systems can be found at supported platforms.
ETCD_VER=v3.7.3
# 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
ETCD_VER=v3.7.3
# 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
etcd uses gcr.io/etcd-development/etcd as a primary container registry, and quay.io/coreos/etcd as secondary.
ETCD_VER=v3.7.3
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
v3.6.16
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 play.etcd.io and operating etcd. Latest support status for common architectures and operating systems can be found at supported platforms.
ETCD_VER=v3.6.16
# 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
ETCD_VER=v3.6.16
# 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
etcd uses gcr.io/etcd-development/etcd as a primary container registry, and quay.io/coreos/etcd as secondary.
ETCD_VER=v3.6.16
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
v3.5.35
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 play.etcd.io and operating etcd. Latest support status for common architectures and operating systems can be found at supported platforms.
ETCD_VER=v3.5.35
# 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
ETCD_VER=v3.5.35
# 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
etcd uses gcr.io/etcd-development/etcd as a primary container registry, and quay.io/coreos/etcd as secondary.
ETCD_VER=v3.5.35
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
5.1.0-RC1
- Move from spring-boot-starter-web to spring-boot-starter-webmvc by @ryanjbaxter in https://github.com/spring-cloud/spring-cloud-gateway/pull/4293
- Dispose upstream connection when a cancelled exchange discards the response in
NettyRoutingFilterby @raccoonback in https://github.com/spring-cloud/spring-cloud-gateway/pull/4283 - Update Antora UI bundle to v0.4.26 by @spring-builds in https://github.com/spring-cloud/spring-cloud-gateway/pull/4296
- Allow Dependabot minor version updates on main by @ryanjbaxter in https://github.com/spring-cloud/spring-cloud-gateway/pull/4298
- Bump org.apache.maven.plugins:maven-jar-plugin from 3.4.2 to 3.5.1 by @dependabot[bot] in https://github.com/spring-cloud/spring-cloud-gateway/pull/4301
- Bump bucket4j.version from 8.15.0 to 8.20.0 by @dependabot[bot] in https://github.com/spring-cloud/spring-cloud-gateway/pull/4300
- Bump com.google.protobuf:protobuf-java-util from 4.33.6 to 4.36.2 by @dependabot[bot] in https://github.com/spring-cloud/spring-cloud-gateway/pull/4302
- Update Maven wrapper to 3.10.0 by @spring-builds in https://github.com/spring-cloud/spring-cloud-gateway/pull/4303
- Bump grpc.version from 1.77.1 to 1.84.0 by @dependabot[bot] in https://github.com/spring-cloud/spring-cloud-gateway/pull/4299
- Bump @antora/atlas-extension from 1.0.0-alpha.5 to 1.0.0-alpha.6 in /docs by @dependabot[bot] in https://github.com/spring-cloud/spring-cloud-gateway/pull/4308
- Bump antora from 3.2.0 to 3.2.1 in /docs by @dependabot[bot] in https://github.com/spring-cloud/spring-cloud-gateway/pull/4307
- Bump grpc.version from 1.84.0 to 1.84.2 by @dependabot[bot] in https://github.com/spring-cloud/spring-cloud-gateway/pull/4327
- Mvc websockets by @spencergibb in https://github.com/spring-cloud/spring-cloud-gateway/pull/4324
- Bump grpc.version from 1.84.2 to 1.84.3 by @dependabot[bot] in https://github.com/spring-cloud/spring-cloud-gateway/pull/4330
Full Changelog: https://github.com/spring-cloud/spring-cloud-gateway/compare/v5.1.0-M1...v5.1.0-RC1
5.0.4
- Update Maven wrapper to 3.9.16 by @spring-builds in https://github.com/spring-cloud/spring-cloud-gateway/pull/4266
- Fix forwarded headers for untrusted proxies by @Manihass-Ch in https://github.com/spring-cloud/spring-cloud-gateway/pull/4271
- Bump antora from 3.2.0-rc.2 to 3.2.0-rc.3 in /docs by @dependabot[bot] in https://github.com/spring-cloud/spring-cloud-gateway/pull/4273
- Filter out synthetic and anonymous types when registering hints by @ryanjbaxter in https://github.com/spring-cloud/spring-cloud-gateway/pull/4277
- Bump antora from 3.2.0-rc.3 to 3.2.0 in /docs by @dependabot[bot] in https://github.com/spring-cloud/spring-cloud-gateway/pull/4281
- Dispose upstream connection when a cancelled exchange discards the response in
NettyRoutingFilterby @raccoonback in https://github.com/spring-cloud/spring-cloud-gateway/pull/4283 - Update Antora UI bundle to v0.4.26 by @spring-builds in https://github.com/spring-cloud/spring-cloud-gateway/pull/4295
- Update Maven wrapper to 3.10.0 by @spring-builds in https://github.com/spring-cloud/spring-cloud-gateway/pull/4304
- Bump antora from 3.2.0 to 3.2.1 in /docs by @dependabot[bot] in https://github.com/spring-cloud/spring-cloud-gateway/pull/4312
- Bump @antora/atlas-extension from 1.0.0-alpha.5 to 1.0.0-alpha.6 in /docs by @dependabot[bot] in https://github.com/spring-cloud/spring-cloud-gateway/pull/4311
- @Manihass-Ch made their first contribution in https://github.com/spring-cloud/spring-cloud-gateway/pull/4271
Full Changelog: https://github.com/spring-cloud/spring-cloud-gateway/compare/v5.0.3...v5.0.4