You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.adoc
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,8 @@ If you wish, you can read nitty gritty details on link:doc/design/01-merging-rew
20
20
What follows is a summary of changes.
21
21
22
22
==== New
23
-
* A new home under clj-commons. Thanks to @xsc, rewrite-clj will also retain its same maven coordinates on Clojars making for a seamless upgrade path for rewrite-clj v0 users.
23
+
* A new home under clj-commons.
24
+
Thanks to @xsc, rewrite-clj will also retain its same maven coordinates on Clojars making for a seamless upgrade path for rewrite-clj v0 users.
24
25
* Now supports ClojureScript, merging in rewrite-cljs specific functionality.
25
26
Frustrations like not having namespace map support and differences from rewrite-clj, like whitespace parsing, should now be things of the past.
26
27
Rewrite-cljs users migrating to rewrite-clj v1 are now at, and will remain at, feature parity with rewrite-clj.
@@ -75,7 +76,8 @@ Rewrite-cljs users migrating to rewrite-clj v1 are now at, and will remain at, f
75
76
* Moved from potemkin import-vars to static template based version https://github.com/clj-commons/rewrite-clj/issues/98[#98]:
76
77
** Avoids frustration/mysteries of dynamic import-vars for users and maintainers
77
78
** Argument names now correct in API docs (some were gensymed previously)
78
-
** Also turfed use of custom version of potemkin defprotocol+ in favor of plain old defprotocol. Perhaps I missed something, but I did not see the benefit of defprotocol+ for rewrite-clj v1.
79
+
** Also turfed use of custom version of potemkin defprotocol+ in favor of plain old defprotocol.
80
+
Perhaps I missed something, but I did not see the benefit of defprotocol+ for rewrite-clj v1.
79
81
80
82
==== Internal changes (developer facing)
81
83
* Tests updated to hit public APIs https://github.com/clj-commons/rewrite-clj/issues/106[#106]
Copy file name to clipboardExpand all lines: README.adoc
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,8 @@ Only a minor failure on zprint v1.1.1 was found due to intentional breaking chan
25
25
* Please review link:CHANGELOG.adoc[change log] for an overview of all v1 changes.
26
26
* I am very conservative on making any further v0->v1 breaking changes, but am open to breaking changes to any of the new v1 work.
27
27
28
-
We'll move out of alpha after folks have had a chance to give rewrite-clj v1 alpha a good shake. Things look solid but I would be very surprised if there are no issues and/or feedback.
28
+
We'll move out of alpha after folks have had a chance to give rewrite-clj v1 alpha a good shake.
29
+
Things look solid but I would be very surprised if there are no issues and/or feedback.
29
30
30
31
See https://github.com/clj-commons/rewrite-clj/projects/1[project page for current priorities].
31
32
@@ -44,7 +45,8 @@ Rewrite-clj versioning scheme is: `major`.`minor`.`patch`-`test-qualifier`
44
45
* `major` increments when a non alpha release API has been broken - something, as a rule, we'd like to avoid.
45
46
* `minor` increments to convey significant new features have been added.
46
47
* `patch` indicates bug fixes - it is the total number of commits in the repo.
47
-
* `test-qualifier` is absent for stable releases. Can be `alpha`, `beta`, `rc1`, etc.
Copy file name to clipboardExpand all lines: doc/02-developer-guide.adoc
+32-35Lines changed: 32 additions & 35 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,14 +5,16 @@
5
5
== Supported Environments
6
6
Rewrite-clj is verified on each push on macOS, Ubuntu and Windows via GitHub Actions.
7
7
8
-
All scripts are written in Clojure and most invoked via https://github.com/borkdude/babashka[babashka]. This gives us a cross platform
9
-
scripting language that is familiar, fun and consistent. These docs will show babashka scripts invoked explicitly via babashka's `bb`; on
10
-
macOS and linux feel free to leave out `bb`.
8
+
All scripts are written in Clojure and most invoked via https://github.com/borkdude/babashka[babashka].
9
+
This gives us a cross platform scripting language that is familiar, fun and consistent.
10
+
These docs will show babashka scripts invoked explicitly via babashka's `bb`; on macOS and linux feel free to leave out `bb`.
11
11
12
-
We make use of planck for cljs bootstrap (aka cljs self-hosted) testing. Planck is currently not available for Windows.
12
+
We make use of planck for cljs bootstrap (aka cljs self-hosted) testing.
13
+
Planck is currently not available for Windows.
13
14
14
-
We test that rewrite-clj operates as expected when natively compile via GraalVM. Automated testing is setup using GraalVM v21 for
15
-
both jdk8 and jdk11. On Windows we only test against jdk11 as tool setup for jdk8 on Windows seemed overly arduous.
15
+
We test that rewrite-clj operates as expected when natively compile via GraalVM.
16
+
Automated testing is setup using GraalVM v21 for both JDK8 and JDK11.
17
+
On Windows we only test against JDK11 as tool setup for JDK8 on Windows seemed overly arduous.
16
18
17
19
== Prerequisites
18
20
* Java JDK 1.8 or above
@@ -26,25 +28,23 @@ both jdk8 and jdk11. On Windows we only test against jdk11 as tool setup for jdk
26
28
27
29
==== Git and newlines
28
30
The primary development OSes for rewrite-clj are macOS and Linux.
29
-
Our line endings are lf only.
31
+
Our line endings are LF only.
30
32
31
33
I'm not sure what Windows developers typically want for line endings while working on source.
32
-
I expect, but don't know, that most Windows editors automatically handle lf as line ending.
34
+
I expect, but don't know, that most Windows editors automatically handle LF as line ending.
33
35
Someone let me know if I am wrong.
34
36
35
37
Note that I do explicitly set git's config `core.autocrlf` to `false` on our Windows CI unit test environment.
36
38
Our import vars code generation checks currently rely on line endings remaining unconverted.
37
39
38
40
==== Babashka
39
-
The Clojure story on Windows is still in the early chapters. https://scoop.sh/[Scoop] offers an easy way to install tools.
40
-
@littleli is doing a great job w/maintaining https://github.com/littleli/scoop-clojure[scoop apps for Clojure, Babashka and other tools] and
41
-
this is how I installed Babashka.
41
+
The Clojure story on Windows is still in the early chapters.
42
+
https://scoop.sh/[Scoop] offers an easy way to install tools.
43
+
@littleli is doing a great job w/maintaining https://github.com/littleli/scoop-clojure[scoop apps for Clojure, Babashka and other tools] and this is how I installed Babashka.
42
44
43
45
==== Clojure
44
-
We all choose our own paths, but for me, using https://github.com/borkdude/deps.clj[deps.clj] instead of
45
-
https://github.com/clojure/tools.deps.alpha/wiki/clj-on-Windows[Clojure's PowerShell Module] offered me no
46
-
fuss no muss Clojure on Windows and GitHub Actions on Windows. I decided to install deps.clj not through scoop but through
We all choose our own paths, but for me, using https://github.com/borkdude/deps.clj[deps.clj] instead of https://github.com/clojure/tools.deps.alpha/wiki/clj-on-Windows[Clojure's PowerShell Module] offered me no fuss no muss Clojure on Windows and GitHub Actions on Windows.
47
+
I decided to install deps.clj not through scoop but through https://github.com/borkdude/deps.clj#windows[the deps.clj `install.ps1` script].
48
48
This makes it simple to treat `deps.exe` as if it were the official `clojure` via a simple rename:
49
49
50
50
----
@@ -64,10 +64,10 @@ Here's what works on my Windows dev environment:
And finally, I never did figure out how to get the Windows prerequisites setup for the jdk8 version of GraalVM, so I only test on the jdk11 version.
67
+
And finally, I never did figure out how to get the Windows prerequisites setup for the JDK8 version of GraalVM, so I only test on the JDK11 version.
68
68
69
69
== Setup
70
-
After checking out this project from github,
70
+
After checking out this project from GitHub,
71
71
72
72
1. Install JavaScript libraries and tools required by https://github.com/bensu/doo[doo] and https://github.com/thheller/shadow-cljs[shadow-cljs]:
73
73
+
@@ -150,13 +150,14 @@ bb ./script/clj_watch.clj
150
150
This launches https://github.com/lambdaisland/kaocha[kaocha] in watch mode.
151
151
152
152
=== ClojureScript
153
-
For Clojurescript, I open a shell terminal window and run:
153
+
For ClojureScript, I open a shell terminal window and run:
154
154
155
155
----
156
156
bb ./script/cljs_watch.clj
157
157
----
158
158
159
-
This launches https://figwheel.org/[fighweel main]. After initialization, your default web browser will automatically be opened with the figwheel auto-testing page.
159
+
This launches https://figwheel.org/[fighweel main].
160
+
After initialization, your default web browser will automatically be opened with the figwheel auto-testing page.
160
161
161
162
== Docs
162
163
@@ -221,7 +222,8 @@ Current libs we test against:
221
222
222
223
Additional libs are welcome.
223
224
224
-
If you are troubleshooting locally, and want to only run specific tests, you can specify which ones you'd like to run. For example:
225
+
If you are troubleshooting locally, and want to only run specific tests, you can specify which ones you'd like to run.
226
+
For example:
225
227
226
228
----
227
229
bb ./script/libs_tests.clj run cljfmt zprint
@@ -236,7 +238,6 @@ To check for outdated libs:
236
238
bb ./script/libs_test.clj outdated
237
239
----
238
240
239
-
240
241
Notes:
241
242
242
243
* `libs_tests.clj` was developed on macOS and is run on CI under Linux only under JDK 11 only.
@@ -267,7 +268,8 @@ Note that checks are only done against installed `./node_modules`, so you may wa
267
268
== Linting
268
269
We use https://github.com/borkdude/clj-kondo[clj-kondo] for linting rewrite-clj source code.
269
270
270
-
We fail the build on any lint violations. The ci server runs:
Copy file name to clipboardExpand all lines: doc/03-faq.adoc
+6-3Lines changed: 6 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,14 +3,17 @@
3
3
== Documentation
4
4
5
5
=== What is the meaning of the ^:no-doc metadata?
6
-
Our goal is to produce documentation for users of rewrite-clj. As such we only want to document public APIs.
6
+
Our goal is to produce documentation for users of rewrite-clj.
7
+
As such we only want to document public APIs.
7
8
8
-
`^:no-doc` is a signal to https://cljdoc.org/[cljdoc] that source code should not be included in generated documentation. This metadata convention was introduced by https://github.com/weavejester/codox[codox].
9
+
`^:no-doc` is a signal to https://cljdoc.org/[cljdoc] that source code should not be included in generated documentation.
10
+
This metadata convention was introduced by https://github.com/weavejester/codox[codox].
9
11
10
12
== What the markdown?
11
13
Stand alone articles are written up in https://asciidoctor.org/docs/what-is-asciidoc/[AsciiDoc].
12
14
13
15
1. it is a richer markup language than GitHub markdown.
14
16
2. is supported by cljdoc.
15
17
16
-
Our docstrings sometimes take advantage of https://commonmark.org/[CommonMark] which is supported by cljdoc for docstrings. GitHub uses CommonMark as part of of its markdown solution.
18
+
Our docstrings sometimes take advantage of https://commonmark.org/[CommonMark] which is supported by cljdoc for docstrings.
19
+
GitHub uses CommonMark as part of of its markdown solution.
0 commit comments