From 799f9835c206e1b519b336d58fc0222ef9f165dd Mon Sep 17 00:00:00 2001 From: hborcher Date: Thu, 29 Oct 2026 09:56:48 -0500 Subject: [PATCH 1/3] ci: generated reports are moved from the sonar-project.properties and into the scanner cli arg --- Jenkinsfile | 2 +- sonar-project.properties | 8 -------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3f416e0..1e29cbb 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -303,7 +303,7 @@ pipeline { withCredentials([string(credentialsId: params.SONARCLOUD_TOKEN, variable: 'token')]) { sh( label: 'Running Sonar Scanner', - script: "uv run pysonar -t \$token -Dsonar.projectVersion=$PACKAGE_VERSION -Dsonar.buildString=\"$BUILD_TAG\" ${env.CHANGE_ID? '-Dsonar.pullrequest.key=$CHANGE_ID -Dsonar.pullrequest.base=$BRANCH_NAME': '-Dsonar.branch.name=$BRANCH_NAME'}" + script: 'uv run pysonar -t \$token -Dsonar.projectVersion=\$PACKAGE_VERSION -Dsonar.buildString="\$BUILD_TAG" -Dsonar.python.xunit.reportPath=reports/tests/pytest/pytest-junit.xml -Dsonar.python.pylint.reportPaths=reports/pylint.txt -Dsonar.python.coverage.reportPaths=reports/python-coverage.xml -Dsonar.python.mypy.reportPaths=reports/mypy/linecoverage/coverage.json -Dsonar.python.flake8.reportPaths=logs/flake8.log -Dsonar.eslint.reportPaths=reports/eslint_report.json -Dsonar.docker.hadolint.reportPaths=logs/hadolint.json -Dsonar.javascript.lcov.reportPaths=reports/lcov.info ' + "${env.CHANGE_ID? '-Dsonar.pullrequest.key=$CHANGE_ID -Dsonar.pullrequest.base=$BRANCH_NAME': '-Dsonar.branch.name=$BRANCH_NAME'}" ) } } diff --git a/sonar-project.properties b/sonar-project.properties index 550577b..88a1006 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -10,12 +10,4 @@ sonar.tests=tests sonar.test.inclusions = src/frontend/**/__tests__/**/*,src/frontend/**/*.test.tsx,=**/test_**.py sonar.scm.provider=git sonar.python.version=3 -sonar.python.xunit.reportPath=reports/tests/pytest/pytest-junit.xml -sonar.python.pylint.reportPaths=reports/pylint.txt -sonar.python.coverage.reportPaths=reports/python-coverage.xml -sonar.python.mypy.reportPaths=reports/mypy/linecoverage/coverage.json -sonar.python.flake8.reportPaths=logs/flake8.log sonar.typescript.tsconfigPaths=tsconfig.json -sonar.eslint.reportPaths=reports/eslint_report.json -sonar.docker.hadolint.reportPaths=logs/hadolint.json -sonar.javascript.lcov.reportPaths=reports/lcov.info From c279fdd729b70675342fc9de801938ebb50f3d92 Mon Sep 17 00:00:00 2001 From: hborcher Date: Thu, 29 Oct 2026 10:07:03 -0500 Subject: [PATCH 2/3] chore: upgrade lockfile dependencies (pysonar) Removed pyfakefs v5.10.2 Updated pysonar v1.0.2.1722 -> v1.10.0.5888 Removed responses v0.25.8 --- uv.lock | 33 +++++---------------------------- 1 file changed, 5 insertions(+), 28 deletions(-) diff --git a/uv.lock b/uv.lock index a88b6bb..e4a26d3 100644 --- a/uv.lock +++ b/uv.lock @@ -877,15 +877,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/36/ea/99ddefac41971acad68f14114f38261c1f27dac0b3ec529824ebc739bdaa/pydocstyle-6.3.0-py3-none-any.whl", hash = "sha256:118762d452a49d6b05e194ef344a55822987a462831ade91ec5c06fd2169d019", size = 38038, upload-time = "2023-01-17T20:29:18.094Z" }, ] -[[package]] -name = "pyfakefs" -version = "5.10.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/58/1c/4b9489847535a41e074d108bfb86119ab463aa3012f4cb8f6b7f9154e00a/pyfakefs-5.10.2.tar.gz", hash = "sha256:8ae0e5421e08de4e433853a4609a06a1835f4bc2a3ce13b54f36713a897474ba", size = 231379, upload-time = "2025-11-04T20:19:04.446Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/65/3a15447a8630a6bb79cf1ecd9e323a72b28830cb9f367494bedcd045059d/pyfakefs-5.10.2-py3-none-any.whl", hash = "sha256:6ff0e84653a71efc6a73f9ee839c3141e3a7cdf4e1fb97666f82ac5b24308d64", size = 246305, upload-time = "2025-11-04T20:19:02.583Z" }, -] - [[package]] name = "pyflakes" version = "3.4.0" @@ -936,18 +927,18 @@ wheels = [ [[package]] name = "pysonar" -version = "1.0.2.1722" +version = "1.10.0.5888" source = { registry = "https://pypi.org/simple" } dependencies = [ + { name = "certifi" }, { name = "jproperties" }, - { name = "pyfakefs" }, { name = "requests" }, - { name = "responses" }, { name = "tomli" }, + { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/dd/25/cb693cf80a3b6aa4c86f2f3ab59652be1280452d3c70c18823eec1024254/pysonar-1.0.2.1722.tar.gz", hash = "sha256:fc024f5172b97faca6c280284a67be1bfaf8d76f4f04e37f93c86b70042bac15", size = 24570, upload-time = "2025-05-28T11:44:00.295Z" } +sdist = { url = "https://files.pythonhosted.org/packages/03/d3/32a7bcda552ee2f432052fc5e3af3c54b4b536627df00af216845c74d91f/pysonar-1.10.0.5888.tar.gz", hash = "sha256:91a0d1106a8cd5b5452a98f777d0e72b3c021736a19fa685c15109f536dfc000", size = 34094, upload-time = "2026-10-23T13:23:45.912Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c6/e8/ab475bfe152ec01ebd0508514267182ab84e45a73405df73f7fdda0f3f8c/pysonar-1.0.2.1722-py3-none-any.whl", hash = "sha256:abacede0e5f8ca1468ac644889e2e87e8adeae07718906fe4ad546f5feacbc5d", size = 36742, upload-time = "2025-05-28T11:43:59.056Z" }, + { url = "https://files.pythonhosted.org/packages/e0/4e/dfe8c4698b492160c7a0a9f63c20020572df7c73a9671524b8b2b6d5c95f/pysonar-1.10.0.5888-py3-none-any.whl", hash = "sha256:6c400ee4c65964a0d63171476a324b95fa16ebfec1d26f71e9e6a08f56765608", size = 51083, upload-time = "2026-10-23T13:23:44.856Z" }, ] [[package]] @@ -1091,20 +1082,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl", hash = "sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a", size = 64947, upload-time = "2026-03-30T16:09:13.83Z" }, ] -[[package]] -name = "responses" -version = "0.25.8" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pyyaml" }, - { name = "requests" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0e/95/89c054ad70bfef6da605338b009b2e283485835351a9935c7bfbfaca7ffc/responses-0.25.8.tar.gz", hash = "sha256:9374d047a575c8f781b94454db5cab590b6029505f488d12899ddb10a4af1cf4", size = 79320, upload-time = "2025-08-08T19:01:46.709Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1c/4c/cc276ce57e572c102d9542d383b2cfd551276581dc60004cb94fe8774c11/responses-0.25.8-py3-none-any.whl", hash = "sha256:0c710af92def29c8352ceadff0c3fe340ace27cf5af1bbe46fb71275bcd2831c", size = 34769, upload-time = "2025-08-08T19:01:45.018Z" }, -] - [[package]] name = "rich" version = "14.3.3" From d55653108de22621f49c7aa8bc3a1011b8522e1d Mon Sep 17 00:00:00 2001 From: hborcher Date: Thu, 29 Oct 2026 10:12:22 -0500 Subject: [PATCH 3/3] ci: source encoding explicitly set in sonar-project.properties --- sonar-project.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/sonar-project.properties b/sonar-project.properties index 88a1006..e25ece1 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -3,6 +3,7 @@ sonar.host.url=https://sonarcloud.io sonar.organization=uiuclibrary sonar.links.scm=https://github.com/UIUCLibrary/cloudwagon sonar.links.ci=https://jenkins-prod.library.illinois.edu/job/open%20source/job/cloudwagon/ +sonar.sourceEncoding=UTF-8 sonar.sources=src/backend,src/frontend sonar.exclusions = src/frontend/*.config.js,src/frontend/src/setupProxy.js sonar.coverage.exclusions=src/frontend/*.ts,src/frontend/*.config.js,