Releases: meltano/meltano
Releases · meltano/meltano
Release list
v4.2.2
v3.9.5
v4.2.1
v3.9.4
v3.9.3
v4.2.0
Immutable
release. Only release title and notes can be modified.
v4.2.0 (2026-04-10)
Highlights
- This restores the
latest*tags on Docker Hub, which inadvertently were reverted to use Meltano v3 with the v3.9.2 release and now run on v4 again. - Miscellaneous improvements to the State Backend interface.
✨ New
- #9948 Create
.gitignoreautomatically in the.meltanodirectory - #9946 Avoid setting a global
UV_NO_CACHE=1in the Docker image - #9901 Add
CACHEDIR.TAGfile automatically to.meltanodirectory - #9849 Show required setting indicators in
meltano config list-- Thanks @mahangu! - #9843 Print stderr from extractor's discover call at default log level -- Thanks @mahangu!
- #9822 Added
StateStoreManager.migrate()interface which state backend implementations can override to provide a state migration mechanism - #9819 Make
StateStoreManagera context manager with a default no-op.close()method
🐛 Fixes
- #9949 Avoid emitting an
Unknown setting ...warning when setting a nested "extra" setting like_metadata.*.replication-method - #9922 Do not swallow state backend persistence errors in BookmarkWriter -- Thanks @awohletz-pm!
- #9921 Update the type annotation of
retry_secondsin the state backendacquire_lockmethod to allowfloatvalues - #9877 Add warning when using ephemeral state ID in el/elt commands -- Thanks @stbiadmin!
- #9858 Do not disable existing loggers when passing logging configuration to SDK-based plugins
- #9825 Drop
Nonevalues coming from.env-- Thanks @RamiNoodle733! - #9804 Make
meltano state set --input-file ...work with click 8.1
⚙️ Under the Hood
- #9936 Updated some plugin-related types
- #9909 Centralize virtualenv management into a new
VirtualEnvServiceand delegate toVenvBackendimplementations - Move logging frame number to constants
_FRAMES_DEBUGand_FRAMES_DEFAULT - #9883 Use
ProjectDirsServicein all remaining places - #9880 Ensure custom
click.ParamTypeimplementations correctly override their parent methods - #9879 Added
reasonkeyword argument toPluginInstallercallable protocol - #9870 Add more type-annotations for
SettingDefinitionattributes - #9841 Use
Project.dirsAPI in more places - #9840 Use the
--clearflag of virtualenv and uv to recreate the venv instead of removing it preemptively - #9817 Bump Ruff to 0.15 and update code to the 2026 style guide
📚 Documentation Improvements
- #9939 Fixed some broken links in the
environmentspage - #9906 Added examples for overriding key-properties and replication-key in metadata -- Thanks @alexchenai!
- #9908 Update our AI guidelines
- Hide video links since they are no longer available
- #9868 Use uv in the "complete tutorial"
- #9860 Add architecture diagram to docs home page
- #9855 Fix broken image link.
- #9856 Fix copyright and images in footer
- #9468 Updated
production.mdto reflect it is not possible to set Airflow'score.executorconfiguration value withmeltano config set-- Thanks @Rodeoclash! - #9839 Add a section about AI coding agents to the contribution guide
- #9833 Fix typo 'the the' -> 'the' in manifest.py docstring -- Thanks @RamiNoodle733!
- #9827 Fix typos in DataHub tutorial documentation -- Thanks @RamiNoodle733!
📦 Packaging changes
v4.1.2
Immutable
release. Only release title and notes can be modified.
v4.1.2 (2026-02-03)
📦 Packaging changes
- Require google-cloud-storage 3+
- Require uv 0.8.14+
- #9799 Allow pip 26.0
v3.9.2
Immutable
release. Only release title and notes can be modified.
v3.9.2 (2026-02-03)
🐛 Fixes
- Default smart-open logs to the warning level and above (#9617)
- Filter out Alembic logs of level INFO and below (#9734)
- Bump
fastenersto 0.20 (#9637)
⚙️ Under the Hood
- Filter out
urllib3logs below the error level (#9599) - Remove missing import handling for state backends now that they are loaded dynamically (#9479)
- Get package version from distribution metadata (#9438)
⚡ Performance Improvements
- Revert to sync APIs for writing the tap catalog file following discovery (#9724)
📦 Packaging changes
- Pin core
clickandsqlalchemydependencies to their minor versions (#9449) - Remove upper constraint on Python version
- Removed license classifier made redundant by PEP 639 (#9711)
- Require google-cloud-storage 3+
- Require uv 0.8.14+
- Allow uv 0.9 (#9550)
- Allow pip 26.0 (#9799)
- Allow
packaging26.0 (#9762) - Allow ruamel-yaml 0.19.x (#9756)
- Allow check-jsonschema 0.36.x
- Allow Rich 14.3.x (#9780)
- Remove upper constraint on aiodocker
- Bump upper constraint on boto3
v4.1.1
Immutable
release. Only release title and notes can be modified.
v4.1.0
Immutable
release. Only release title and notes can be modified.
v4.1.0 (2026-01-30)
✨ New
- #9694 Remove stale tables used by long-removed UI/API
- #9759 Add plugin name or
meltanoas another column in the console-formatted output - #9680 Auto-select a supported Python version if the plugin is not compatible with Meltano's own Python version
🐛 Fixes
- #9779 Always display Slack community message for errors without self-service instructions
- #9775 Avoid displaying tracebacks when known CLI-level errors occur
⚙️ Under the Hood
- #9723 Simplify state backend creation from settings
- #9726 Replace use of
check-jsonschemawith directjsonschemacalls
⚡ Performance Improvements
- #9724 Revert to sync APIs for writing the tap catalog file following discovery
📚 Documentation Improvements
- #9758 Sync plugin definition syntax with current options