-
Notifications
You must be signed in to change notification settings - Fork 32
Pixi dependency management #301
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
sbrandstaeter
merged 215 commits into
queens-py:main
from
sbrandstaeter:pixi-dependency-management
Jun 16, 2026
Merged
Changes from all commits
Commits
Show all changes
215 commits
Select commit
Hold shift + click to select a range
a8e8a11
build: split conda environment file into denpendency groups
sbrandstaeter cd36ad1
build: add tf-keras dependency explicitly and limit setuptools versio…
sbrandstaeter 1ec8567
fix: np.linalg imports
sbrandstaeter b8bea84
build: change to conda driven dependency management
sbrandstaeter 1e2a5a4
build: activate base to find conda-lock
sbrandstaeter 662be96
ci: clean conda cache
sbrandstaeter 5cb6568
ci: use mamba for conda-lock
sbrandstaeter d4438e6
ci: bump actions/checkout to v5
sbrandstaeter dbca697
ci: use miniforge
sbrandstaeter 0927397
refactor: blackify code with new black version
sbrandstaeter 201f406
test: update .pylintrc to latest pylint version
sbrandstaeter 9db683b
build: add particles name to pypi dependency
sbrandstaeter fc6e258
build: fix import errors arviz 1.0.0 by bumping pymc version
sbrandstaeter 3627fc6
build: adapt pydoe name to non-camelcase
sbrandstaeter 1d3fe09
build: introduce base enviroment to pyproject.toml with pixi
sbrandstaeter c2231c6
build: introduce pixi features
sbrandstaeter 719d289
build: remove pixi feature queens and cleanup
sbrandstaeter 5d544bb
build: add current pip-tools mininum versions
sbrandstaeter bca3359
build: bump versions to current conda-lock versions
sbrandstaeter c35ca17
build: add explicit dependency of contourpy
sbrandstaeter c15ae22
build: first working setup with uv venv
sbrandstaeter 0bd1440
build: update pypi dependencies based on latest conda-lock
sbrandstaeter ad05dfe
build: remove contourpy as explicit dependency
sbrandstaeter b3f256e
build: make dev group uv installable
sbrandstaeter 3ac1102
build: add license information to metadata
sbrandstaeter 3a2c7c1
build: cleanup pixi workspace
sbrandstaeter 5ffa9df
build: prepare switch from liccheck to pip-licenses
sbrandstaeter baeb0b4
build: add pixi.lock
sbrandstaeter 3223050
ci: switch github ci to pixi
sbrandstaeter 68f5641
build: add editable install of QUEENS to pixi default feature/ enviro…
sbrandstaeter 97e80b4
ci: pixi list is called after install anyway
sbrandstaeter df13f3e
build: fix black python version warning
sbrandstaeter 8cf1b5d
ci: ensure that pipline fails if one code check fails
sbrandstaeter 3b4b8d2
ci: deactivate caching
sbrandstaeter 2ca19cd
ci: skip .pixi path for nbstripout
sbrandstaeter abf5121
build: add license exception for torch
sbrandstaeter d2d5b68
feat: rework remote env build and remote tests with using pixi
sbrandstaeter e436d4f
build: add license exception for PySide6
sbrandstaeter 36c95fe
feat: format warning
sbrandstaeter 62d8bef
feat: fix checking pixi availability
sbrandstaeter 1165f38
feat: fix checking pixi availabnility without warning
sbrandstaeter 4b88697
build: add license exception for shiboken6
sbrandstaeter ab985db
feat: check integrity of dependencies in pyproject
sbrandstaeter 7f02edb
build: make pyproject dependencies consistent
sbrandstaeter 6151615
ci: add dependency integrity checks to ci pipeline
sbrandstaeter 066fee3
ci: use cache only on main
sbrandstaeter 3fc045a
ci: improve logs of pixi integrity checks
sbrandstaeter 80137ed
ci: make sure that pixi.lock not already changed
sbrandstaeter 9ba2b2e
ci: fix pixi lock
sbrandstaeter 795e7ee
ci: allow pixi lock to fail
sbrandstaeter 6444223
ci: remove authentication to prefix dev
sbrandstaeter e935aaa
ci: reactivate cache and deactivate auth
sbrandstaeter c9f4cc4
fix: mypy errors
leahaeusel d4ceb11
ci: bump version of skywalking eyes (license header checks) up to 0.8.0
sbrandstaeter c336845
fix: np.trapz renamed to np.trapezoid in numpy > 2.0
sbrandstaeter ded2a78
build: fix pypi overwrite of tensorflow-probability
sbrandstaeter 4084474
build: manually install queens package in environments
sbrandstaeter 1176983
build: deactivate default feature for all environments
sbrandstaeter 5db23c0
build: fix environment in documentation build workflow
sbrandstaeter 1c2c1e3
docs: fix documentation build warnings
sbrandstaeter 20417ac
fix: type hinting
sbrandstaeter e247344
docs: link to external README.md to fix warning
sbrandstaeter 68b8cb4
ci: introduce testing on macos
sbrandstaeter e8567e0
ci: split jobs into code checks and tests
sbrandstaeter 435284d
ci: ensure install queens to correct interpreter
sbrandstaeter e7c7b1d
ci: cleanup tests_local workflow
sbrandstaeter 8f8c60c
ci: split into three cleaned workflows
sbrandstaeter 75f0b93
ci: add names for build documentation
sbrandstaeter 471953d
ci: unify pytest calls
sbrandstaeter f6f4f54
ci: upload artifacts as last step
sbrandstaeter 64ab5b3
ci: always run tutorial tests even if some core tests fail
sbrandstaeter 7a9c8aa
ci: make step names more explicit
sbrandstaeter 5d69110
ci: remove unnecessary PR write access
sbrandstaeter 8361db5
build: remove dependency bokeh
sbrandstaeter 2ec689f
build: remove dependency cython
sbrandstaeter b4a7999
build: remove dependency autograd
sbrandstaeter 62dad6b
build: remove dependency optax
sbrandstaeter d26605a
ci: remove PR write access in local testsuite workflow
sbrandstaeter a8bff89
ci: introduce queens setup action to reduce duplicate code
sbrandstaeter 09f0b93
ci: fix name of 4C integration tests job
sbrandstaeter ea0414d
ci: split into three test steps, compute coverage and junit report fr…
sbrandstaeter a08c37b
ci: always build test reports
sbrandstaeter b122e6c
ci: only build all envs once in code checks use only queens-dev for t…
sbrandstaeter 1882a0a
ci: use relative coverage paths to enable combining from docker and n…
sbrandstaeter d4e5d80
ci: bump version of upload artifact action
sbrandstaeter f59a3d0
ci: bump version of checkout action
sbrandstaeter c73b2d7
ci: bump version of upload pages artifact
sbrandstaeter 079b6a1
ci: bump version of deploy pages
sbrandstaeter e0f52ae
ci: bump version of download artifact
sbrandstaeter bde8e06
ci: bump version of junit report
sbrandstaeter b01ee76
test: fix elementary effects tests
reginabuehler bde9a76
Merge pull request #3 from reginabuehler/pixi-dependency-management
sbrandstaeter d97204b
ci: add pypi build test
sbrandstaeter e96207a
ci: ignore path test in wheel based tests
sbrandstaeter dfbbe48
feat: activate testing of tutorial tests that use 4C
sbrandstaeter d1f20a3
fix: import error in 4c tutorial tests
sbrandstaeter 3b17e0c
fix: change cwd for notebook tests
sbrandstaeter 78ea315
fix: resolve notebook path in test execution
sbrandstaeter 97210ee
fix: add tutorials dir to sys.path
sbrandstaeter 9340800
refactor: use config directories to identify base dir
sbrandstaeter fed5dc0
fix: use pandas functionality for filtering
sbrandstaeter 2349d63
ci: publish junit report for each pytest job
sbrandstaeter 55beeba
fix: np.NaN has been deprecated
sbrandstaeter 498bdd5
fix: accepted_sum is a one-dimensional array in case of several chain…
sbrandstaeter 6521375
docs: document details of test setup
sbrandstaeter f572204
fix: adjust expected values and switch to numpy testing, control tols
sbrandstaeter befc284
docs: add explanation of test setup
sbrandstaeter baa7a67
feat: switch to numpy testing statements
sbrandstaeter 4e5de59
fix: adjust expected values for new dependency versions
sbrandstaeter aca321e
feat: loosen tolerances a bit
sbrandstaeter 1c0c577
docs: add explanation of test setup
sbrandstaeter 142f8fe
feat: switch to numpy testing statements and loosen tolerances
sbrandstaeter 8b6c46a
fix: adjust desired values for new dependency versions
sbrandstaeter e23b983
feat: switch to numpy testing statements with adaptable tolerances
sbrandstaeter 5df93cf
docs: add explanation of test setup and analytical solution
sbrandstaeter 0ea58c0
fix: control reproducibility of lhs sampling with proper, modern rng …
sbrandstaeter 892ed87
fix: adjust desired values due to new dependency versions
sbrandstaeter c5c368f
fix: change desired values since salib switched to proper np.random.G…
sbrandstaeter a4837a5
fix: adjust desired values due to changed sequences
sbrandstaeter 1eebaa5
fix: define cdf of lognormal for x<=0 to be 0, this is identical to t…
sbrandstaeter 9f07bb7
fix: adapt desired values that changed due to the LHS implementation …
sbrandstaeter 676676d
fix: adjust desired values due to changed lhs behaviour (fixed seed)
sbrandstaeter cb35c95
Merge branch 'main' into pixi-dependency-management
sbrandstaeter 6986c96
fix: add marker for tutorial 5
sbrandstaeter 0ddf746
ci: exclude tests/unit_tests/data_processors/test_txt_file.py from bu…
sbrandstaeter 933fc1a
fix: update Sized import
leahaeusel b4b7965
fix: mypy errors due to Literal[1]
leahaeusel 76d197a
feat: print content of log file to error message
sbrandstaeter 26205c9
feat: introduce seed handling with seed sequences
sbrandstaeter 253a0bc
fix: switch to precomputed desired values
sbrandstaeter ffb4629
feat: add convergence test marker and test variant for gaussian neura…
sbrandstaeter b764c38
fix: reduce tolerance to make test past of macos and ubuntu
sbrandstaeter b1fd3fc
fix: make sure to use same python executable
sbrandstaeter 2eba738
fix: subprocess setup for test
sbrandstaeter 6e10ec3
fix: loosen tolerance to work with macos and ubuntu
sbrandstaeter 9659d92
fix: maxiter not known by TNC optimizer
sbrandstaeter ca67701
fix: deactivate pca tests for macos with automatic reenable once the …
sbrandstaeter 2a34264
ci: make macos pypi build test optional (should be temporary)
sbrandstaeter eb4dc0d
ci: bump version of setup-python action
sbrandstaeter ef6120d
docs: update documentation with pixi dependency management
sbrandstaeter 6d225b9
ci: remove conda environment action
sbrandstaeter 8ff37db
build: remove conda environment files
sbrandstaeter bd0af1b
build: remove dev dependencies from base environment
sbrandstaeter 5b63815
build: update pixi.lock
sbrandstaeter 09f391d
ci: update md github summary report to new workflow
sbrandstaeter e933198
ci: remove junit report from collection since it is published per job…
sbrandstaeter fd12d7f
docs: instructions on how to change dependencies
sbrandstaeter cb27716
ci: add dependabot automatic updating of actions
sbrandstaeter 1540676
build(deps): bump the github-actions group across 2 directories with …
dependabot[bot] d30c84f
docs: fix link to section
sbrandstaeter 5da1a16
docs: remove double information
sbrandstaeter 7345b98
ci: add workflow for automatic dependecy upgrades
sbrandstaeter f181e6a
ci: add gitattributes file for pixi.lock
sbrandstaeter 3b9e988
build: make queens-base the default environment, remove queens-base
sbrandstaeter d7e30f3
docs: update documentation with default pixi environment and rename q…
sbrandstaeter e451cb6
ci: unify use of pixi to make maintenance easier
sbrandstaeter b3c8b47
refactor: activate yamllint for workflow yml files
sbrandstaeter 95882f8
ci: bump pixi version, fix pixi version
sbrandstaeter ffcc328
build: remove environment name prefix queens-
sbrandstaeter 55e94e7
ci: remove unnecessary pixi run calls
sbrandstaeter ab16dec
fix: remove debugging print statements
sbrandstaeter 804e8fd
fix: remove duplicate test
sbrandstaeter a9de493
docs: unify description of seed
sbrandstaeter 6c46182
ci: rename job
sbrandstaeter 1e4b367
ci: remove groups in single group steps
sbrandstaeter 2d234ea
ci: introduce action to run pytest
sbrandstaeter 89a9916
ci: move artifact handling into pytest action
sbrandstaeter f973e18
refactor: remove extra string concatenation
sbrandstaeter d4eaa74
build: fix ruff version mismatch
sbrandstaeter 3c647c2
docs: fix typo and formatting
sbrandstaeter 7c63b98
ci: extract definition of bash
sbrandstaeter 5f95f7c
ci: simplify bash
sbrandstaeter 22a3732
ci: simplify bash even more
sbrandstaeter 07a1ace
ci: remove unused default environmnet
sbrandstaeter 5790e7f
ci: use entire src folder as reference for coverage
sbrandstaeter 60f28af
ci: add one source of truth for pixi version
sbrandstaeter 5b096fb
fix: remove unused file
sbrandstaeter d25975c
build: expose yamllint config outside precommit hook, add yamllint co…
sbrandstaeter 617cdd1
build: manage version with pixi
sbrandstaeter 5f1e16a
ci: collect all test but ignore problematic cases, add explanation
sbrandstaeter eb83358
ci: run pre-commit hooks and code quality in same order, add missing …
sbrandstaeter 5b34b10
ci: restrict pypi test collection to unit_tests as many packages miss…
sbrandstaeter 486d0f4
docs: add explanation for jupyter kernel
sbrandstaeter 5d96d0e
ci: remove comments that break shell command
sbrandstaeter 80ee1f6
fix: use absolute path for notebooks in test suite
sbrandstaeter c75212d
feat: generalize path finding of root and src dirs that also work in …
sbrandstaeter e999690
refactor: move helper functions to tests_utils
sbrandstaeter dba0749
ci: ensure editable queens install
sbrandstaeter 27342f8
ci: add gitlab strategy variables
sbrandstaeter bdfc074
fix: install editable queens on remote
sbrandstaeter 713b820
ci: ensure install editable queens on pytest call
sbrandstaeter 50aa61d
ci: switch to locked env
sbrandstaeter 4b7f57e
build: update pixi.lock to v7
sbrandstaeter 1578e15
ci: add optional use of existign 4C build
sbrandstaeter 547b05d
ci: run cleanup immediately once tests finish
sbrandstaeter 1689be8
ci: fix needs statements
sbrandstaeter 964bb64
ci: periodic, automatic update of pixi version
sbrandstaeter 978d609
ci: fix naming
sbrandstaeter c044e80
ci: deactivate caching for non-install
sbrandstaeter 498c1ff
ci: frozen cannot be true if install is false
sbrandstaeter 2f7c194
ci: switch default value for environment
sbrandstaeter 1ddc2b9
ci: switch to GitHub App managed branch creation
sbrandstaeter 8b75478
refactor: move root_directory method to test_utils
sbrandstaeter 67877bf
fix: detect root reliably from relative to test_utils
sbrandstaeter 7a24bb4
fix: split into test and runtime implementations
sbrandstaeter c1098f3
fix: use correct root in tests
sbrandstaeter 3898350
fix: add shell quotes to reduce command injection risk
sbrandstaeter e17da67
feat: limit size of log file printing
sbrandstaeter fdd436d
fix: typo
sbrandstaeter 3d9fe05
ci: ensure pixi available and correct version
sbrandstaeter 489c58e
docs: explain test setup
sbrandstaeter 8265040
docs: Unix system remains a prerequisite
sbrandstaeter 0d7bdd9
docs: add code quality badge
sbrandstaeter 062ab45
docs: add test pypi build badge
sbrandstaeter 8a45923
chore: remove unused code
sbrandstaeter File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| # SCM syntax highlighting & preventing 3-way merges | ||
| pixi.lock merge=binary linguist-language=YAML linguist-generated=true -diff |
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,74 @@ | ||
| name: Run pytest suite | ||
| description: Run a marked pytest suite and publish its reports. | ||
|
|
||
| inputs: | ||
| test-suite-name: | ||
| description: Test suite name used in coverage, JUnit, and artifact filenames. | ||
| required: true | ||
| markers: | ||
| description: Pytest marker expression to select tests. | ||
| required: true | ||
|
|
||
| runs: | ||
| using: composite | ||
| steps: | ||
| - name: Prepare report names | ||
| id: report-names | ||
| shell: bash | ||
| env: | ||
| TEST_SUITE_NAME: ${{ inputs.test-suite-name }} | ||
| run: | | ||
| echo "coverage-file=.coverage.${TEST_SUITE_NAME}" >> "$GITHUB_OUTPUT" | ||
| echo "junit-file=test_junit_${TEST_SUITE_NAME}.xml" >> "$GITHUB_OUTPUT" | ||
| echo "artifact-name=raw_test_reports_${TEST_SUITE_NAME}" >> "$GITHUB_OUTPUT" | ||
|
|
||
| - name: Run pytest | ||
| id: pytest | ||
| shell: bash | ||
| continue-on-error: true | ||
| env: | ||
| COVERAGE_FILE: ${{ steps.report-names.outputs.coverage-file }} | ||
| JUNIT_FILE: ${{ steps.report-names.outputs.junit-file }} | ||
| PYTEST_MARKERS: ${{ inputs.markers }} | ||
| run: | | ||
| pytest_args=( | ||
| -v | ||
| -m "${PYTEST_MARKERS}" | ||
| --cov | ||
| --cov-report=term | ||
| --color=yes | ||
| -o junit_logging=all | ||
| --junitxml="${JUNIT_FILE}" | ||
| ) | ||
|
|
||
| if [ -n "${TEST_TIMING_OPTION:-}" ]; then | ||
| read -r -a timing_args <<< "${TEST_TIMING_OPTION}" | ||
| pytest_args+=("${timing_args[@]}") | ||
| fi | ||
|
|
||
| pytest "${pytest_args[@]}" | ||
|
|
||
| - name: Publish junit pytest report | ||
| if: always() | ||
| uses: mikepenz/action-junit-report@v6 | ||
| with: | ||
| report_paths: ${{ steps.report-names.outputs.junit-file }} | ||
| annotate_only: true | ||
| job_summary: false | ||
|
|
||
| - name: Upload raw test reports | ||
| if: always() | ||
| uses: actions/upload-artifact@v7 | ||
| with: | ||
| name: ${{ steps.report-names.outputs.artifact-name }} | ||
| include-hidden-files: true | ||
| path: | | ||
| ${{ steps.report-names.outputs.coverage-file }} | ||
| ${{ steps.report-names.outputs.junit-file }} | ||
| if-no-files-found: error | ||
| retention-days: 7 | ||
|
|
||
| - name: Fail if pytest failed | ||
| if: steps.pytest.outcome == 'failure' | ||
| shell: bash | ||
| run: exit 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,88 @@ | ||
| --- | ||
| name: Setup QUEENS pixi environment | ||
| description: > | ||
| Set up pixi, install QUEENS editable into the selected environment, | ||
| and optionally ensure rsync is available. | ||
|
|
||
| inputs: | ||
| cache: | ||
| description: Whether setup-pixi should enable caching. | ||
| required: false | ||
| default: "true" | ||
| cache-write: | ||
| description: Whether setup-pixi should write to the cache. | ||
| required: false | ||
| default: "false" | ||
| run-install: | ||
| description: Whether setup-pixi should install the selected pixi environments. | ||
| required: false | ||
| default: "true" | ||
| environments: | ||
| description: Whitespace-separated list of pixi environments to install. | ||
| required: false | ||
| default: default | ||
| activate-environment: | ||
|
leahaeusel marked this conversation as resolved.
|
||
| description: Pixi environment to activate and use for the editable install. | ||
| required: false | ||
| default: default | ||
| install-editable: | ||
| description: Whether to install QUEENS editable into the selected pixi environment. | ||
| required: false | ||
| default: "true" | ||
| ensure-rsync: | ||
| description: Whether to verify that rsync is available, installing it if necessary. | ||
| required: false | ||
| default: "true" | ||
| frozen: | ||
| description: Whether to install with frozen requirements. | ||
| required: false | ||
| default: "true" | ||
|
|
||
| runs: | ||
| using: composite | ||
| steps: | ||
| - name: Read pixi version | ||
| id: pixi-version | ||
| shell: bash | ||
| run: | | ||
| pixi_version="$(tr -d '[:space:]' < "${GITHUB_WORKSPACE}/.pixi-version")" | ||
| echo "version=${pixi_version}" >> "$GITHUB_OUTPUT" | ||
|
|
||
| - uses: prefix-dev/setup-pixi@v0.9.5 | ||
| with: | ||
| pixi-version: ${{ steps.pixi-version.outputs.version }} | ||
| cache: ${{ inputs.cache }} | ||
| cache-write: ${{ inputs.cache-write }} | ||
| run-install: ${{ inputs.run-install }} | ||
| environments: ${{ inputs.environments }} | ||
| frozen: ${{ inputs.frozen }} | ||
| activate-environment: ${{ inputs.activate-environment }} | ||
|
|
||
| - name: Install QUEENS in workspace | ||
| if: ${{ inputs.install-editable != 'false' }} | ||
| shell: bash | ||
| run: | | ||
| pixi run --locked -e "${{ inputs.activate-environment }}" install-editable | ||
|
|
||
| - name: Mark repo as safe for git | ||
| shell: bash | ||
| run: | | ||
| git config --global --add safe.directory "${GITHUB_WORKSPACE}" | ||
|
|
||
| - name: Ensure rsync is available | ||
| if: ${{ inputs.ensure-rsync != 'false' }} | ||
| shell: bash | ||
| run: | | ||
| if command -v rsync >/dev/null 2>&1; then | ||
| rsync --version | ||
| elif [ "${RUNNER_OS}" = "Linux" ]; then | ||
| sudo apt-get update | ||
| sudo apt-get install -y rsync | ||
| rsync --version | ||
| elif [ "${RUNNER_OS}" = "macOS" ]; then | ||
| brew install rsync | ||
| rsync --version | ||
| else | ||
| echo "Unsupported runner OS for rsync setup: ${RUNNER_OS}" | ||
| exit 1 | ||
| fi | ||
|
leahaeusel marked this conversation as resolved.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| --- | ||
| version: 2 | ||
| updates: | ||
| - package-ecosystem: github-actions | ||
| directories: | ||
| - / | ||
| - /.github/actions/setup-queens-pixi | ||
| schedule: | ||
| interval: monthly | ||
| groups: | ||
| github-actions: | ||
| patterns: | ||
| - "*" | ||
| cooldown: | ||
| default-days: 7 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.