Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
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
3 changes: 3 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ RUN apk --no-cache add \
yamllint

# Install Yamale YAML schema validator
# Note: Yamale 6.0.0 supports Python 3.8+, including Python 3.13.
# Python 3.14 compatibility requires Yamale >= 7.0.0 (when available).
# For Python 3.14 runners, ensure Yamale is updated to a version with Python 3.14 support.
ARG yamale_version=6.0.0
LABEL yamale-version=$yamale_version
RUN pip install --break-system-packages "yamale==$yamale_version"
Expand Down
28 changes: 28 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,21 @@ available tags [here](https://quay.io/repository/helmpack/chart-testing?tab=tags
$ brew install chart-testing
```

## Python Version Compatibility

Chart Testing (`ct`) bundles Yamale for YAML schema validation. The currently bundled Yamale version (6.0.0) supports Python 3.8 through Python 3.13.

**Python 3.14 Note**: If you are using CT on a system with Python 3.14 installed, schema validation may fail due to Yamale's use of deprecated Python AST features that were removed in Python 3.14.

**For detailed information and solutions, see [PYTHON-3.14-COMPATIBILITY.md](PYTHON-3.14-COMPATIBILITY.md)**

**Quick Workaround**: When Python 3.14 is detected on your system:
1. **Use the Docker image** (recommended): `docker run quay.io/helmpack/chart-testing:latest ct lint`
2. **Use Python 3.13 or earlier** on your system or CI/CD pipeline
3. **Disable schema validation** temporarily: `ct lint --validate-chart-schema=false` (not recommended)

Future versions of CT will include updated Yamale versions with Python 3.14 support.

## Usage

See documentation for individual commands:
Expand Down Expand Up @@ -184,6 +199,19 @@ Build ct using Goreleaser.
If this flag is not specified, Goreleaser is run with --snapshot
```

## Troubleshooting

### Schema Validation Fails with Python 3.14

If you encounter `AttributeError: module 'ast' has no attribute 'Num'` or similar errors during schema validation when running CT on a system with Python 3.14, this is a known compatibility issue.

**See [PYTHON-3.14-COMPATIBILITY.md](PYTHON-3.14-COMPATIBILITY.md) for detailed information and solutions.**
Copy link
Member

Choose a reason for hiding this comment

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

where this is defined?


Quick solutions:
- Use the Docker image: `docker run quay.io/helmpack/chart-testing ct lint`
- Use Python 3.13 or earlier
- Upgrade to a future CT release with Python 3.14 support

## Releasing

### Prepare Release
Expand Down