b9890a9d44
This commit upgrades Shadow CLJS from 2.11.16 (released on Feb/21) to latest 2.25.0 (Jul/23), so ~1.5 years worth of upgrades. By upgrading shadow we can finally use the latest major Clojure version 1.11.x. Why upgrade shadow? - Shadow CLJS controls the ClojureScript version we can use. In order to use the latest major Clojure version we must upgrade Shadow CLJS. - Shadow CLJS releases new versions very frequently, and if you take a look at its changelog https://github.com/thheller/shadow-cljs/blob/master/CHANGELOG.md, you'll see it had tons and tons of bug fixes over the years. I hope some of them help improve the DX for certain contributors who recently reported issues with it. - Clojure 1.11 brings new features, bug fixes and even performance improvements (although I think the performance mostly impacts Clojure on the JVM). See the changelog https://github.com/clojure/clojure/blob/master/changes.md#changes-to-clojure-in-version-1110 Things that can be beneficial to us, or are interesting nonetheless: - New :as-alias to be used in require, which is like :as but does not require the namespace to load. This means namespaced keywords using :as-alias can't cause circular dependency errors. This feature would very useful if we used namespaced keywords, but we don't, so... https://github.com/clojure/clojure/blob/master/changes.md#22-as-alias-in-require - New macros run-test and run-test-var to run single test with fixtures and report. - New iteration function, useful for processing paginated data. https://www.abhinavomprakash.com/posts/clojure-iteration/ - New update-keys function: applies a function to every key in a map. - New update-vals function: applies a function to every value in a map. Examples for update-vals and update-keys. They should perform better than the common reduce-kv approach since they use a transient data structure. (let [m {:a 1 :b 2}] (update-vals m inc)) ; => {:a 2, :b 3} (let [m {:a 1 :b 2}] (update-keys m name)) ; => {"a" 1, "b" 2} Why change namespaces within __tests__ directories? Any namespace with the word --tests-- throws an error, like the one below. I didn't bother investigating why, so I changed the guidelines to reflect the new convention. It's probably related to the double dashes in the name. Namespace quo2.components.dividers.--tests--.divider-label-component-spec has a segment starting with an invalid JavaScript identifier at line 1 |
||
---|---|---|
.. | ||
decisions | ||
images | ||
sign_in | ||
README.md | ||
codebase-structure-and-guidelines.md | ||
component-tests-overview.md | ||
debugging.md | ||
dependencies.md | ||
export-icons.md | ||
fdroid.md | ||
how-to-launch-e2e.md | ||
ide-setup.md | ||
merging-pr-process.md | ||
new-guidelines.md | ||
patching.md | ||
pipeline_process.md | ||
pixel-perfection.md | ||
post-mortem.md | ||
pr-review-policy.md | ||
release-checklist.md | ||
release-guide.md | ||
starting-guide.md | ||
testing.md | ||
troubleshooting.md |
README.md
Getting Started
Development Process
Working on PR together with QA team
Testing
End-to-end tests (e2e) overview
Component tests (jest) overview
Misc
Importing icons from Figma into project
Updating Status APK builds for the F-Droid Android application catalogue
Troubleshooting for known errors