target-s3 (plinxore fork)
Copyright 2026 plinxore

This product is derived from "target-s3" (https://github.com/crowemi/target-s3),
Copyright (c) 2022-2025 crowemi and contributors, licensed under the
Apache License, Version 2.0. See LICENSE for the full license text.

The upstream project declared the Apache License, Version 2.0 in its
pyproject.toml but did not include a LICENSE or NOTICE file in the
repository at the time this fork was created (commit 39a95d3, 2025-04-29).
No NOTICE file existed upstream to carry forward.

This fork modifies and extends the original work, including but not
limited to: a config-driven `compression` setting (`none`/`gzip`) for
JSON/JSONL/CSV output, corrected JSONL datetime serialization, a
config-driven `datetime_error_treatment` so unparseable source dates
(e.g. legacy MySQL/MyISAM zero-dates) no longer abort the run, a
collision-safe "-part-{NNNNN}-{uuid}" batch filename suffix (a monotonic
counter for readable ordering within a run, plus a per-batch UUID
guaranteeing two different runs can never collide on the same object
key -- the original had no batch-uniqueness mechanism at all beyond an
optional, clock-based filename suffix), and additional test coverage
including a synthetic-data replay of a representative wide-row schema, a
permanent memory/throughput load test, and mocked multi-stream/
multi-batch/idempotency integration tests. This NOTICE will be updated
as further changes land.
