From 7f3a0e19a1208fa35d02abba345cecb3d3e0bbfa Mon Sep 17 00:00:00 2001 From: "Luke R." Date: Tue, 25 Nov 2025 12:16:31 -0600 Subject: [PATCH 1/4] Closes #292 - Ignore R and Python temp folders Ignore R user folders and files, as well as for Python/Jupyter --- app/constants/search-config.js | 13 +++++++++++++ app/services/SearchService.js | 10 ++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/app/constants/search-config.js b/app/constants/search-config.js index af7c380..fa102cc 100644 --- a/app/constants/search-config.js +++ b/app/constants/search-config.js @@ -2,6 +2,19 @@ module.exports = { // File indexing settings indexing: { maxFileSize: 0.1 * 1024 * 1024, + excludedDirectories: ['node_modules', '.git', '.statwrap', + // Python + '__pycache__', '.venv', 'venv', '.pytest_cache', '.pybuilder', '.ipynb_checkpoints',, '__pypackages__', + // R and RStudio + '.Rproj.user' + ], + + excludedFiles: [ + // R and RStudio + '.Rhistory', '.Rapp.history', + // Mac + '.DS_Store' + ] }, // Search settings diff --git a/app/services/SearchService.js b/app/services/SearchService.js index 3da538c..8909d13 100644 --- a/app/services/SearchService.js +++ b/app/services/SearchService.js @@ -7,7 +7,7 @@ import Messages from '../constants/messages'; import Constants from '../constants/constants'; const SEARCH_CONFIG_VERSION = '1.0'; -const EXCLUDED_DIRS = ['node_modules', '.git', '.statwrap', '__pycache__', '.venv', 'venv']; +// const EXCLUDED_DIRS = ['node_modules', '.git', '.statwrap', '__pycache__', '.venv', 'venv']; class SearchService { constructor() { @@ -822,12 +822,18 @@ class SearchService { const stats = fs.statSync(fullPath); if (stats.isDirectory()) { - if (!EXCLUDED_DIRS.includes(item)) { + // Don't process ignored directories + if (!SearchConfig?.indexing?.excludedDirectories.includes(item)) { await scanDirectory(fullPath); } } else if (stats.isFile()) { totalFiles++; + // Skip any ignored files + if (SearchConfig?.indexing?.excludedFiles.includes(item)) { + continue; + } + if (stats.size > fileSizeLimit) { skippedLargeFiles++; continue; From e723060f6d1d3c5a08b6b3cfb59f66d9ea34dc98 Mon Sep 17 00:00:00 2001 From: "Luke R." Date: Tue, 25 Nov 2025 12:18:13 -0600 Subject: [PATCH 2/4] 0.19 version bump --- app/containers/AboutPage/AboutPage.js | 2 +- app/package-lock.json | 4 ++-- app/package.json | 2 +- package.json | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/containers/AboutPage/AboutPage.js b/app/containers/AboutPage/AboutPage.js index 6660bdd..f9cfabf 100644 --- a/app/containers/AboutPage/AboutPage.js +++ b/app/containers/AboutPage/AboutPage.js @@ -5,7 +5,7 @@ export default class AboutPage extends Component { render() { return (
-

StatWrap v0.18

+

StatWrap v0.19

(c) 2021-2025 Northwestern University Feinberg School of Medicine
diff --git a/app/package-lock.json b/app/package-lock.json index 15a0568..298397e 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -1,12 +1,12 @@ { "name": "statwrap", - "version": "0.0.18", + "version": "0.0.19", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "statwrap", - "version": "0.0.18", + "version": "0.0.19", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/app/package.json b/app/package.json index 7bc1453..d6dd4aa 100644 --- a/app/package.json +++ b/app/package.json @@ -1,7 +1,7 @@ { "name": "statwrap", "productName": "StatWrap", - "version": "0.0.18", + "version": "0.0.19", "description": "Reproducible research made easy", "main": "./main.prod.js", "author": { diff --git a/package.json b/package.json index c713f75..d20fb81 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "statwrap", "productName": "StatWrap", - "version": "0.0.18", + "version": "0.0.19", "description": "Reproducible research made easy", "scripts": { "build": "concurrently \"yarn build-main\" \"yarn build-renderer\" \"yarn build-worker\" \"yarn build-preload\"", From 3990382d74d151c76fc843d7628b51ceceeca4ae Mon Sep 17 00:00:00 2001 From: "Luke R." Date: Wed, 26 Nov 2025 09:43:33 -0600 Subject: [PATCH 3/4] Changelog for 0.19 --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d64299f..d91729e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # StatWrap Changelog +## 0.0.19 - November 26, 2025 + +### Change Summary + +- Improve search by excluding user folders from R, RStudio, Python, Jupyter, etc. from indexing. + +**Full Changelog**: https://github.com/StatTag/StatWrap/compare/0.0.18...0.0.19 + ## 0.0.18 - November 20, 2025 ### Change Summary From 3403611369703d2eee7939b5c5496f5f5e47aeda Mon Sep 17 00:00:00 2001 From: "Luke R." Date: Wed, 26 Nov 2025 09:45:30 -0600 Subject: [PATCH 4/4] Remove commented line --- app/services/SearchService.js | 1 - 1 file changed, 1 deletion(-) diff --git a/app/services/SearchService.js b/app/services/SearchService.js index 8909d13..9b19571 100644 --- a/app/services/SearchService.js +++ b/app/services/SearchService.js @@ -7,7 +7,6 @@ import Messages from '../constants/messages'; import Constants from '../constants/constants'; const SEARCH_CONFIG_VERSION = '1.0'; -// const EXCLUDED_DIRS = ['node_modules', '.git', '.statwrap', '__pycache__', '.venv', 'venv']; class SearchService { constructor() {