Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion airbyte-integrations/connectors/source-s3/metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ data:
connectorSubtype: file
connectorType: source
definitionId: 69589781-7828-43c5-9f63-8925b1c1ccc2
dockerImageTag: 4.15.4
dockerImageTag: 4.15.5
dockerRepository: airbyte/source-s3
documentationUrl: https://docs.airbyte.com/integrations/sources/s3
externalDocumentationUrls:
Expand Down
6 changes: 3 additions & 3 deletions airbyte-integrations/connectors/source-s3/poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion airbyte-integrations/connectors/source-s3/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ requires = [ "poetry-core>=1.0.0",]
build-backend = "poetry.core.masonry.api"

[tool.poetry]
version = "4.15.4"
version = "4.15.5"
name = "source-s3"
description = "Source implementation for S3."
authors = [ "Airbyte <contact@airbyte.io>",]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@
from .source import SourceS3
from .stream_reader import SourceS3StreamReader


__all__ = ["Config", "Cursor", "LegacyConfigTransformer", "SourceS3", "SourceS3StreamReader"]
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,15 @@

from source_s3.v4 import Config, SourceS3, SourceS3StreamReader

from airbyte_cdk.models import AirbyteStream, SyncMode
from airbyte_cdk.sources.concurrent_source.concurrent_read_processor import ConcurrentReadProcessor
from airbyte_cdk.sources.concurrent_source.thread_pool_manager import ThreadPoolManager
from airbyte_cdk.sources.message import MessageRepository
from airbyte_cdk.sources.streams.concurrent.abstract_stream import AbstractStream
from airbyte_cdk.sources.streams.concurrent.partition_enqueuer import PartitionEnqueuer
from airbyte_cdk.sources.streams.concurrent.partition_reader import PartitionReader
from airbyte_cdk.sources.utils.slice_logger import SliceLogger


_V3_FIELDS = ["dataset", "format", "path_pattern", "provider", "schema"]
TEST_FILES_FOLDER = Path(__file__).resolve().parent.parent.joinpath("sample_files")
Expand Down Expand Up @@ -52,3 +61,31 @@ def test_when_spec_then_v3_fields_descriptions_are_prefixed_with_deprecation_war
def test_when_spec_then_v3_nested_fields_are_not_required(self) -> None:
spec = self._source.spec()
assert not spec.connectionSpecification["properties"]["provider"]["required"]


def test_airbyte_cdk_limits_concurrent_partition_generators() -> None:
stream = Mock(spec=AbstractStream)
stream.name = "stream"
stream.block_simultaneous_read = ""
stream.as_airbyte_stream.return_value = AirbyteStream(
name="stream",
json_schema={},
supported_sync_modes=[SyncMode.full_refresh],
)
thread_pool_manager = Mock(spec=ThreadPoolManager)
handler = ConcurrentReadProcessor(
[stream],
Mock(spec=PartitionEnqueuer),
thread_pool_manager,
Mock(),
Mock(spec=SliceLogger),
Mock(spec=MessageRepository),
Mock(spec=PartitionReader),
max_concurrent_partition_generators=1,
)
handler._streams_currently_generating_partitions.append("active_stream")

status_message = handler.start_next_partition_generator()

assert status_message is None
thread_pool_manager.submit.assert_not_called()
1 change: 1 addition & 0 deletions docs/integrations/sources/s3.md
Original file line number Diff line number Diff line change
Expand Up @@ -356,6 +356,7 @@ This connector utilizes the open source [Unstructured](https://unstructured-io.g

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[markdownlint-fix] reported by reviewdog 🐶

Suggested change

| Version | Date | Pull Request | Subject |
|:------------|:-----------|:----------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------|
| 4.15.5 | 2026-05-20 | [TBD](https://github.com/airbytehq/airbyte/pull/TBD) | Improved completion reliability for large full refresh syncs. |
| 4.15.4 | 2026-05-14 | [78081](https://github.com/airbytehq/airbyte/pull/78081) | Updates the source-s3 Poetry lock file to use airbyte-cdk 7.19.1 for CSV column error. |
| 4.15.3 | 2026-04-08 | [76162](https://github.com/airbytehq/airbyte/pull/76162) | Add opt-in `skip_full_check_for_parquet` stream option to skip the full parse check for Parquet files during CHECK, avoiding OOM on large files |
| 4.15.2 | 2025-11-11 | [69268](https://github.com/airbytehq/airbyte/pull/69268) | Update dependencies |
Expand Down
Loading