From 56bebfe4987765b53d99fd6b7f94e235d82f87a6 Mon Sep 17 00:00:00 2001 From: Matthew Evans Date: Fri, 12 Jul 2024 13:11:28 +0100 Subject: [PATCH 1/4] Replace failing lfs caching with downloading test files from release tarballs --- .github/workflows/ci.yml | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c8c1005..e30f650 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,11 +26,30 @@ jobs: python-version: ['3.8', '3.9', '3.10', '3.11'] steps: - - name: Cached LFS checkout - uses: nschloe/action-cached-lfs-checkout@v1.2.2 + - uses: actions/checkout@v4 with: fetch-depth: 0 - enableCrossOsArchive: true + lfs: false + + # Due to limited LFS bandwidth, it is preferable to download + # test files from the last release. + # + # This does mean that testing new LFS files in the CI is tricky; + # care should be taken to also test new files locally first + # Tests missing these files in the CI should still fail. + - name: Download static files from last release for testing + uses: robinraju/release-downloader@v1 + with: + latest: true + tarBall: false + fileName: "galvani-*.gz" + zipBall: false + out-file-path: /home/runner/work/last-release + extract: true + + - name: Copy test files from static downloaded release + run: | + cp -r /home/runner/work/last-release/*/tests/testdata tests - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 @@ -50,5 +69,5 @@ jobs: tox -vv --notest - name: Run all tests - run: | + run: |- tox --skip-pkg-install From 3b5dc48fc68a12b578310ee469ca8daa0122ee1d Mon Sep 17 00:00:00 2001 From: Matthew Evans Date: Fri, 12 Jul 2024 13:14:54 +0100 Subject: [PATCH 2/4] Add LFS warning note --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index 030c717..4b7e7de 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,23 @@ SPDX-License-Identifier: GPL-3.0-or-later Read proprietary file formats from electrochemical test stations. +> [!WARNING] +> A note about test files and Git LFS: +> +> This project uses Git Large File Storage (LFS) to store its test files, +> however the LFS quota provided by GitHub is frequently exceeded. +> This means that anyone cloning the repository with LFS installed will get +> failures unless they set the `GIT_LFS_SKIP_SMUDGE=1` environment variable when +> cloning. +> The full test data from the last release can always be obtained by +> downloading the GitHub release archives (tar or zip), at +> https://github.com/echemdata/galvani/releases/latest +> +> If you wish to add test files, please ensure they are as small as possible, +> and take care that your tests work locally without the need for the LFS files. +> Ideally, you could commit them to your fork when making a PR, and then they +> can be converted to LFS files as part of the review. + # Usage ## Bio-Logic .mpr files From f44851ec3725e406d8c7bc44f004b19828a8bd6b Mon Sep 17 00:00:00 2001 From: Matthew Evans Date: Fri, 12 Jul 2024 13:36:04 +0100 Subject: [PATCH 3/4] Add flake8 skip --- galvani/BioLogic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/galvani/BioLogic.py b/galvani/BioLogic.py index e566bc1..4d3300d 100644 --- a/galvani/BioLogic.py +++ b/galvani/BioLogic.py @@ -276,7 +276,7 @@ def MPTfileCSV(file_or_path): 11: ("/mA", " Date: Fri, 12 Jul 2024 14:33:53 +0100 Subject: [PATCH 4/4] LFS note formatting and location in README --- README.md | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 4b7e7de..b28b9b6 100644 --- a/README.md +++ b/README.md @@ -9,23 +9,6 @@ SPDX-License-Identifier: GPL-3.0-or-later Read proprietary file formats from electrochemical test stations. -> [!WARNING] -> A note about test files and Git LFS: -> -> This project uses Git Large File Storage (LFS) to store its test files, -> however the LFS quota provided by GitHub is frequently exceeded. -> This means that anyone cloning the repository with LFS installed will get -> failures unless they set the `GIT_LFS_SKIP_SMUDGE=1` environment variable when -> cloning. -> The full test data from the last release can always be obtained by -> downloading the GitHub release archives (tar or zip), at -> https://github.com/echemdata/galvani/releases/latest -> -> If you wish to add test files, please ensure they are as small as possible, -> and take care that your tests work locally without the need for the LFS files. -> Ideally, you could commit them to your fork when making a PR, and then they -> can be converted to LFS files as part of the review. - # Usage ## Bio-Logic .mpr files @@ -64,14 +47,30 @@ The latest galvani releases can be installed from [PyPI](https://pypi.org/projec pip install galvani ``` -The latest development version can be installed with `pip` directly from GitHub: +The latest development version can be installed with `pip` directly from GitHub (see note about git-lfs below): ```shell -pip install git+https://github.com/echemdata/galvani +GIT_LFS_SKIP_SMUDGE=1 pip install git+https://github.com/echemdata/galvani ``` ## Development installation and contributing +> [!WARNING] +> +> This project uses Git Large File Storage (LFS) to store its test files, +> however the LFS quota provided by GitHub is frequently exceeded. +> This means that anyone cloning the repository with LFS installed will get +> failures unless they set the `GIT_LFS_SKIP_SMUDGE=1` environment variable when +> cloning. +> The full test data from the last release can always be obtained by +> downloading the GitHub release archives (tar or zip), at +> https://github.com/echemdata/galvani/releases/latest +> +> If you wish to add test files, please ensure they are as small as possible, +> and take care that your tests work locally without the need for the LFS files. +> Ideally, you could commit them to your fork when making a PR, and then they +> can be converted to LFS files as part of the review. + If you wish to contribute to galvani, please clone the repository and install the testing dependencies: ```shell