From b15c46503f2d860a7adba46b5574e86cdd0ffe47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A1s=20B=20Nagy?= <20251272+BNAndras@users.noreply.github.com> Date: Fri, 2 Oct 2026 17:57:22 -0700 Subject: [PATCH 1/2] Student-facing package.json doesn't have a tmp folder --- exercises/practice/acronym/package.json | 2 +- exercises/practice/all-your-base/package.json | 2 +- exercises/practice/allergies/package.json | 2 +- exercises/practice/anagram/package.json | 2 +- exercises/practice/armstrong-numbers/package.json | 2 +- exercises/practice/atbash-cipher/package.json | 2 +- exercises/practice/binary-search-tree/package.json | 2 +- exercises/practice/binary-search/package.json | 2 +- exercises/practice/bob/package.json | 2 +- exercises/practice/change/package.json | 2 +- exercises/practice/difference-of-squares/package.json | 2 +- exercises/practice/eliuds-eggs/package.json | 2 +- exercises/practice/flower-field/package.json | 2 +- exercises/practice/hello-world/package.json | 2 +- exercises/practice/isogram/package.json | 2 +- exercises/practice/leap/package.json | 2 +- exercises/practice/matching-brackets/package.json | 2 +- exercises/practice/pangram/package.json | 2 +- exercises/practice/phone-number/package.json | 2 +- exercises/practice/prism/package.json | 2 +- exercises/practice/protein-translation/package.json | 2 +- exercises/practice/raindrops/package.json | 2 +- exercises/practice/resistor-color-duo/package.json | 2 +- exercises/practice/resistor-color-trio/package.json | 2 +- exercises/practice/resistor-color/package.json | 2 +- exercises/practice/rna-transcription/package.json | 2 +- exercises/practice/roman-numerals/package.json | 3 ++- exercises/practice/rotational-cipher/package.json | 2 +- exercises/practice/run-length-encoding/package.json | 3 ++- exercises/practice/space-age/package.json | 2 +- exercises/practice/strain/package.json | 2 +- exercises/practice/two-fer/package.json | 2 +- exercises/practice/word-count/package.json | 2 +- 33 files changed, 35 insertions(+), 33 deletions(-) diff --git a/exercises/practice/acronym/package.json b/exercises/practice/acronym/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/acronym/package.json +++ b/exercises/practice/acronym/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/all-your-base/package.json b/exercises/practice/all-your-base/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/all-your-base/package.json +++ b/exercises/practice/all-your-base/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/allergies/package.json b/exercises/practice/allergies/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/allergies/package.json +++ b/exercises/practice/allergies/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/anagram/package.json b/exercises/practice/anagram/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/anagram/package.json +++ b/exercises/practice/anagram/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/armstrong-numbers/package.json b/exercises/practice/armstrong-numbers/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/armstrong-numbers/package.json +++ b/exercises/practice/armstrong-numbers/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/atbash-cipher/package.json b/exercises/practice/atbash-cipher/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/atbash-cipher/package.json +++ b/exercises/practice/atbash-cipher/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/binary-search-tree/package.json b/exercises/practice/binary-search-tree/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/binary-search-tree/package.json +++ b/exercises/practice/binary-search-tree/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/binary-search/package.json b/exercises/practice/binary-search/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/binary-search/package.json +++ b/exercises/practice/binary-search/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/bob/package.json b/exercises/practice/bob/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/bob/package.json +++ b/exercises/practice/bob/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/change/package.json b/exercises/practice/change/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/change/package.json +++ b/exercises/practice/change/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/difference-of-squares/package.json b/exercises/practice/difference-of-squares/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/difference-of-squares/package.json +++ b/exercises/practice/difference-of-squares/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/eliuds-eggs/package.json b/exercises/practice/eliuds-eggs/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/eliuds-eggs/package.json +++ b/exercises/practice/eliuds-eggs/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/flower-field/package.json b/exercises/practice/flower-field/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/flower-field/package.json +++ b/exercises/practice/flower-field/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/hello-world/package.json b/exercises/practice/hello-world/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/hello-world/package.json +++ b/exercises/practice/hello-world/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/isogram/package.json b/exercises/practice/isogram/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/isogram/package.json +++ b/exercises/practice/isogram/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/leap/package.json b/exercises/practice/leap/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/leap/package.json +++ b/exercises/practice/leap/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/matching-brackets/package.json b/exercises/practice/matching-brackets/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/matching-brackets/package.json +++ b/exercises/practice/matching-brackets/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/pangram/package.json b/exercises/practice/pangram/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/pangram/package.json +++ b/exercises/practice/pangram/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/phone-number/package.json b/exercises/practice/phone-number/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/phone-number/package.json +++ b/exercises/practice/phone-number/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/prism/package.json b/exercises/practice/prism/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/prism/package.json +++ b/exercises/practice/prism/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/protein-translation/package.json b/exercises/practice/protein-translation/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/protein-translation/package.json +++ b/exercises/practice/protein-translation/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/raindrops/package.json b/exercises/practice/raindrops/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/raindrops/package.json +++ b/exercises/practice/raindrops/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/resistor-color-duo/package.json b/exercises/practice/resistor-color-duo/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/resistor-color-duo/package.json +++ b/exercises/practice/resistor-color-duo/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/resistor-color-trio/package.json b/exercises/practice/resistor-color-trio/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/resistor-color-trio/package.json +++ b/exercises/practice/resistor-color-trio/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/resistor-color/package.json b/exercises/practice/resistor-color/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/resistor-color/package.json +++ b/exercises/practice/resistor-color/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/rna-transcription/package.json b/exercises/practice/rna-transcription/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/rna-transcription/package.json +++ b/exercises/practice/rna-transcription/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/roman-numerals/package.json b/exercises/practice/roman-numerals/package.json index 7829c03..f29c9d1 100644 --- a/exercises/practice/roman-numerals/package.json +++ b/exercises/practice/roman-numerals/package.json @@ -20,7 +20,8 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest **/tests/*.js", + "test": "rescript && retest tests/*.res.js", + "test:only": "rescript && retest", "ci": "npm test" } } diff --git a/exercises/practice/rotational-cipher/package.json b/exercises/practice/rotational-cipher/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/rotational-cipher/package.json +++ b/exercises/practice/rotational-cipher/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/run-length-encoding/package.json b/exercises/practice/run-length-encoding/package.json index 65b104c..f29c9d1 100644 --- a/exercises/practice/run-length-encoding/package.json +++ b/exercises/practice/run-length-encoding/package.json @@ -20,7 +20,8 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tests/*.js", + "test": "rescript && retest tests/*.res.js", + "test:only": "rescript && retest", "ci": "npm test" } } diff --git a/exercises/practice/space-age/package.json b/exercises/practice/space-age/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/space-age/package.json +++ b/exercises/practice/space-age/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/strain/package.json b/exercises/practice/strain/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/strain/package.json +++ b/exercises/practice/strain/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/two-fer/package.json b/exercises/practice/two-fer/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/two-fer/package.json +++ b/exercises/practice/two-fer/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } diff --git a/exercises/practice/word-count/package.json b/exercises/practice/word-count/package.json index 90d48e1..f29c9d1 100644 --- a/exercises/practice/word-count/package.json +++ b/exercises/practice/word-count/package.json @@ -20,7 +20,7 @@ "res:start": "rescript build -w", "res:format-check": "rescript format --check", "res:format-fix": "rescript format", - "test": "rescript && retest tmp/tests/*.js", + "test": "rescript && retest tests/*.res.js", "test:only": "rescript && retest", "ci": "npm test" } From 03e9b59b900154228e9e917189284ed698da7381 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A1s=20B=20Nagy?= <20251272+BNAndras@users.noreply.github.com> Date: Fri, 2 Oct 2026 17:58:14 -0700 Subject: [PATCH 2/2] Add student-facing package.json template --- Makefile | 4 ++-- templates/package.json | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 templates/package.json diff --git a/Makefile b/Makefile index 71bc67c..a28dd4c 100644 --- a/Makefile +++ b/Makefile @@ -49,7 +49,7 @@ add-test-template: # copy all relevant files for a single exercise - test template, config etc. copy-exercise-files: - @cp package.json exercises/practice/$(EXERCISE)/package.json + @cp templates/package.json exercises/practice/$(EXERCISE)/package.json @cp package-lock.json exercises/practice/$(EXERCISE)/package-lock.json @cp templates/rescript.json exercises/practice/$(EXERCISE)/rescript.json @cp templates/.gitignore exercises/practice/$(EXERCISE)/.gitignore @@ -126,4 +126,4 @@ test: $(MAKE) -s clean $(MAKE) -s check-exercise-files $(MAKE) -s copy-all-exercises - npm run ci \ No newline at end of file + npm run ci diff --git a/templates/package.json b/templates/package.json new file mode 100644 index 0000000..f29c9d1 --- /dev/null +++ b/templates/package.json @@ -0,0 +1,27 @@ +{ + "name": "@exercism/rescript", + "description": "Exercism exercises in ReScript.", + "private": true, + "license": "MIT", + "type": "module", + "repository": { + "type": "git", + "url": "https://github.com/exercism/rescript" + }, + "dependencies": { + "rescript": "^12.1.0" + }, + "devDependencies": { + "rescript-test": "^8.0.0", + "toml": "^3.0.0" + }, + "scripts": { + "res:build": "rescript", + "res:start": "rescript build -w", + "res:format-check": "rescript format --check", + "res:format-fix": "rescript format", + "test": "rescript && retest tests/*.res.js", + "test:only": "rescript && retest", + "ci": "npm test" + } +}