Skip to content

Drop support for the linux/arm/v6, linux/ppc64le, and linux/s390x platforms#151

Merged
mcdonnnj merged 8 commits intodevelopfrom
improvement/drop_support_for_some_platforms
Oct 8, 2024
Merged

Drop support for the linux/arm/v6, linux/ppc64le, and linux/s390x platforms#151
mcdonnnj merged 8 commits intodevelopfrom
improvement/drop_support_for_some_platforms

Conversation

@mcdonnnj
Copy link
Member

@mcdonnnj mcdonnnj commented Aug 30, 2024

🗣 Description

This pull request drops support for the linux/arm/v6, linux/ppc64le, and linux/s390x platforms when building a Docker image to push to Docker Hub.

Note

This pull request is built on top of #147.

💭 Motivation and context

The current full image build is butting up against the six hour runtime limit for GitHub Actions runners. This is due to these platforms needing to build some Python wheels which requires compiling Rust code in conjunction with the fact that all images are being built on a single runner relying on QEMU for all platforms that aren't AMD64. We would like to restore support for these platforms when it becomes viable and that is being tracked in #150.

🧪 Testing

Automated tests pass.

✅ Pre-approval checklist

  • This PR has an informative and human-readable title.
  • Changes are limited to a single goal - eschew scope creep!
  • All future TODOs are captured in issues, which are referenced
    in code comments.
  • All relevant type-of-change labels have been added.
  • I have read the CONTRIBUTING document.
  • These code changes follow cisagov code standards.
  • All relevant repo and/or project documentation has been updated
    to reflect the changes in this PR.
  • All new and existing tests pass.
@mcdonnnj mcdonnnj added bug This issue or pull request addresses broken functionality breaking change This issue or pull request involves changes to existing functionality labels Aug 30, 2024
@mcdonnnj mcdonnnj self-assigned this Aug 30, 2024
Copy link
Member

@dav3r dav3r left a comment

Choose a reason for hiding this comment

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

👍

This includes updating all of the system packages installed to the versions available for Alpine Linux 3.20.
This updates the `build-stage` to match the versions of Python and Alpine Linux used in the `compile-stage`. This also includes updating the versions of all system packages installed.
Bump the Python packages installed in the `compile-stage` as follows: - pip from 23.1.2 to 24.2 - pipenv from 2023.10.20 to 2024.1.0 - setuptools from 67.7.2 to 75.1.0 - wheel from 0.40.0 to 0.44.0
Update the version of Python declared in the Pipfile and update the dependencies installed in the Python virtual environment by running `pipenv lock` in the `src/` directory.
Alpine Linux 3.20 configures Python 3 as externally managed, so we need to pass this flag to `pip` to install a Python package directly. Since we are using this to build a Python virtual environment in the `compile-stage` that is moved to the `build-stage` for use in the final image this should pose no issues.
We need some changes that were added in the LLNL/scraper repo but do not yet have a PyPI release. Rather than continue to use a fork in our GitHub organization it makes sense to pull in LLNL/scraper at a specific commit until a new version is release to PyPI.
In the move from Alpine Linux 3.17 to 3.18 we also moved from Cargo 1.64.0 to 1.71.1. This takes us past 1.68, which introduced sparse registries, and 1.70, which made `sparse` the default protocol to use with crates.io (the default registry). This resolves #38, and based on testing it also resolves #32.
@mcdonnnj mcdonnnj force-pushed the improvement/drop_support_for_some_platforms branch from 846fd7b to 49176b7 Compare October 7, 2024 20:58
@jsf9k
Copy link
Member

jsf9k commented Oct 8, 2024

image

Drop support for the `linux/arm/v6`, `linux/ppc64le`, and `linux/s390x` platforms. This is done because the Docker image build time with these platforms included pushes the total workflow runtime over the GitHub Actions runtime limit of six hours. This is largely due to these platforms being older, esoteric, and emulated and then having to compile when building certain Python packages.
@mcdonnnj mcdonnnj force-pushed the improvement/drop_support_for_some_platforms branch from 49176b7 to 8fcc09e Compare October 8, 2024 19:16
@mcdonnnj mcdonnnj changed the title Drop support for the linux/ppc64le and linux/s390x platforms Drop support for the linux/arm/v6, linux/ppc64le, and linux/s390x platforms Oct 8, 2024
@mcdonnnj mcdonnnj requested review from dav3r and jsf9k October 8, 2024 19:50
@mcdonnnj mcdonnnj merged commit ce274e2 into develop Oct 8, 2024
@mcdonnnj mcdonnnj deleted the improvement/drop_support_for_some_platforms branch October 8, 2024 20:00
cisagovbot pushed a commit that referenced this pull request Dec 6, 2024
…-configs Make the dev team the owners of the linter configuration files
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking change This issue or pull request involves changes to existing functionality bug This issue or pull request addresses broken functionality

3 participants