Skip to content
Merged
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
7 changes: 2 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,8 @@ jobs:
# only those and not the unit tests, via the `--ignored` option. On the latest stack
# we run all integration tests, but on older stacks we only run stack-specific tests.
- name: Run integration tests (all tests)
# TODO: Switch to builder:26 once Ubuntu 26.04 is GA and also Python and package manager
# versions have changed, so that we have a suitable historic buildpack version that both
# supports the new stack, and has enough version changes for the cache invalidation tests.
if: matrix.builder == 'builder:24'
if: matrix.builder == 'builder:26'
run: cargo test --locked -- --ignored --test-threads $(($(nproc)+1))
- name: Run integration tests (stack-specific tests only)
if: matrix.builder != 'builder:24'
if: matrix.builder != 'builder:26'
run: cargo test --locked -- --ignored --test-threads $(($(nproc)+1)) 'python_version_test::'
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ To build a Python application codebase into a production image:

```bash
$ cd ~/workdir/sample-python-app
$ pack build sample-app --builder heroku/builder:24
$ pack build sample-app --builder heroku/builder:26
```

Then run the image:
Expand Down
5 changes: 1 addition & 4 deletions tests/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,7 @@ use libcnb_test::BuildConfig;
use std::env;
use std::path::Path;

// TODO: Switch to builder:26 once Ubuntu 26.04 is GA and also Python and package manager
// versions have changed, so that we have a suitable historic buildpack version that both
// supports the new stack, and has enough version changes for the cache invalidation tests.
const DEFAULT_BUILDER: &str = "heroku/builder:24";
const DEFAULT_BUILDER: &str = "heroku/builder:26";

fn default_build_config(fixture_path: impl AsRef<Path>) -> BuildConfig {
let builder = builder();
Expand Down
8 changes: 4 additions & 4 deletions tests/pip_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ fn pip_cache_invalidation_package_manager_changed() {
fn pip_cache_previous_buildpack_version() {
let mut config = default_build_config("tests/fixtures/pip_basic");
config.buildpacks([BuildpackReference::Other(
"docker://docker.io/heroku/buildpack-python:0.16.0".to_string(),
"docker://docker.io/heroku/buildpack-python:6.4.0".to_string(),
)]);
let rebuild_config = default_build_config("tests/fixtures/pip_basic");

Expand All @@ -180,12 +180,12 @@ fn pip_cache_previous_buildpack_version() {
a '.python-version' file, containing a Python version like '{DEFAULT_PYTHON_VERSION}'.

[Installing Python]
Discarding cached Python 3.12.5 since:
- The Python version has changed from 3.12.5 to {DEFAULT_PYTHON_FULL_VERSION}
Discarding cached Python 3.14.4 since:
- The Python version has changed from 3.14.4 to {DEFAULT_PYTHON_FULL_VERSION}
Installing Python {DEFAULT_PYTHON_FULL_VERSION}

[Installing pip]
Discarding cached pip 24.2
Discarding cached pip 26.0.1
Installing pip {PIP_VERSION}

[Installing dependencies using pip]
Expand Down
8 changes: 4 additions & 4 deletions tests/poetry_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ fn poetry_cache_invalidation_package_manager_changed() {
fn poetry_cache_previous_buildpack_version() {
let mut config = default_build_config("tests/fixtures/poetry_basic");
config.buildpacks([BuildpackReference::Other(
"docker://docker.io/heroku/buildpack-python:2.7.0".to_string(),
"docker://docker.io/heroku/buildpack-python:6.4.0".to_string(),
)]);
let rebuild_config = default_build_config("tests/fixtures/poetry_basic");

Expand All @@ -167,12 +167,12 @@ fn poetry_cache_previous_buildpack_version() {
Using Python version {DEFAULT_PYTHON_VERSION} specified in .python-version

[Installing Python]
Discarding cached Python 3.14.0 since:
- The Python version has changed from 3.14.0 to {DEFAULT_PYTHON_FULL_VERSION}
Discarding cached Python 3.14.4 since:
- The Python version has changed from 3.14.4 to {DEFAULT_PYTHON_FULL_VERSION}
Installing Python {DEFAULT_PYTHON_FULL_VERSION}

[Installing Poetry]
Discarding cached Poetry 2.2.1
Discarding cached Poetry 2.3.3
Installing Poetry {POETRY_VERSION}

[Installing dependencies using Poetry]
Expand Down
8 changes: 4 additions & 4 deletions tests/uv_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ fn uv_cache_invalidation_package_manager_changed() {
fn uv_cache_previous_buildpack_version() {
let mut config = default_build_config("tests/fixtures/uv_basic");
config.buildpacks([BuildpackReference::Other(
"docker://docker.io/heroku/buildpack-python:2.7.0".to_string(),
"docker://docker.io/heroku/buildpack-python:6.4.0".to_string(),
)]);
let rebuild_config = default_build_config("tests/fixtures/uv_basic");

Expand All @@ -179,12 +179,12 @@ fn uv_cache_previous_buildpack_version() {
Using Python version {DEFAULT_PYTHON_VERSION} specified in .python-version

\\[Installing Python\\]
Discarding cached Python 3.14.0 since:
- The Python version has changed from 3.14.0 to {DEFAULT_PYTHON_FULL_VERSION}
Discarding cached Python 3.14.4 since:
- The Python version has changed from 3.14.4 to {DEFAULT_PYTHON_FULL_VERSION}
Installing Python {DEFAULT_PYTHON_FULL_VERSION}

\\[Installing uv\\]
Discarding cached uv 0.8.23
Discarding cached uv 0.11.3
Installing uv {UV_VERSION}

\\[Installing dependencies using uv\\]
Expand Down