Compare commits

...

3755 commits
ansi ... master

Author SHA1 Message Date
Michiel Borkent
8052618fa8
Fix #1818: wrong argument order in clojure.java.io/resource (#1819)
* Fix #1818: wrong argument order in clojure.java.io/resource

* fix
2025-05-13 11:28:44 +02:00
Michiel Borkent
238a98d9b2
Add java.text.BreakIterator (#1817) 2025-05-07 19:58:37 +02:00
Michiel Borkent
57b799e63d Add odoyle-rules to tested libs 2025-05-07 11:06:22 +02:00
Gert Goet
dad646ce38
Make install-script wget-compatible (#1816) 2025-05-04 10:27:03 +02:00
Michiel Borkent
35696b7c0b Bump edamame 2025-05-03 15:35:58 +02:00
Michiel Borkent
00d56900e8
Bump jsoup to 1.20.1 (#1814) 2025-05-02 16:34:03 +02:00
Michiel Borkent
1fc8ef6adb Bump fs 2025-04-30 14:24:49 +02:00
Michiel Borkent
158b36c645 Version bump 2025-04-26 17:27:17 +02:00
Michiel Borkent
b5c65f46e1 changelogs 2025-04-26 17:27:12 +02:00
Michiel Borkent
7e64ce5dd1 export variable 2025-04-26 17:05:55 +02:00
Michiel Borkent
73b806dbd2 v1.12.200 2025-04-26 16:25:47 +02:00
Michiel Borkent
0579d6a0ec disable bulkhead tests 2025-04-26 13:23:02 +02:00
Michiel Borkent
cfee65101f Bump fusefox 2025-04-26 13:03:00 +02:00
Michiel Borkent
4da643cf63 artifact despite failing tests 2025-04-26 12:47:18 +02:00
Michiel Borkent
aa15e5212a disable flaky tests 2025-04-26 12:39:26 +02:00
Michiel Borkent
e23a222fdb
fusebox tests fixed with SCI interop improvements (#1813) 2025-04-26 12:16:36 +02:00
Michiel Borkent
6c0cfde92f Bump process and fs in print-deps 2025-04-21 12:50:20 +02:00
Michiel Borkent
5f6befc577
Add CachedThreadPool interop test (#1811) 2025-04-19 17:29:38 +02:00
Michiel Borkent
d7b0f9155d Add ConcurrentHashmap 2025-04-19 13:52:02 +02:00
Michiel Borkent
28c2f6947f Add ReentrantLock + ThreadLocalRandom 2025-04-19 13:41:37 +02:00
Michiel Borkent
5c4fb1ccc1 Remove run as lein cmd 2025-04-19 12:47:52 +02:00
Michiel Borkent
5b7678f309
Fix virtual thread builder interop (#1810) 2025-04-19 12:12:56 +02:00
Michiel Borkent
f33c68293b Version bump 2025-04-18 11:46:41 +02:00
Michiel Borkent
fd69206933 v1.12.199 2025-04-18 11:25:51 +02:00
Lee Read
689148b99c
Fix #1806: Add cheshire.factory (#1809)
* add cheshire.factory namespace

This will allow bb users to change jackson factory options when using
cheshire.

Took inspiration from other bb lib impls that dealt with dynamic vars.

Brought over cheshire tests, disabling tests for cheshire/jvm features not
included in bb.

Closes #1806

* turf debug stuff

* turf commented code accidentally left in
2025-04-18 11:10:22 +02:00
Michiel Borkent
3db67a5574 Version bump 2025-04-17 15:09:34 +02:00
Michiel Borkent
8191e09314 v1.12.198 2025-04-17 13:00:04 +02:00
Michiel Borkent
e784f4ae8a
Upgrade babashka.cli and cheshire (#1805) 2025-04-16 14:07:58 +02:00
Michiel Borkent
774fe99a83
Bump core.async to 1.8.741 (#1803) 2025-04-08 11:19:04 +02:00
Wes Morgan
f9aafc9d96
Add java.util.regex.PatternSyntaxException (#1802)
* Add java.util.regex.PatternSyntaxException

...to support com.gfredericks/test.chuck library

* Add java.util.regex.PatternSyntaxException addition to CHANGELOG

---------

Co-authored-by: Michiel Borkent <michielborkent@gmail.com>
2025-04-04 21:04:42 +02:00
Michiel Borkent
4037154a28 changelog 2025-04-03 11:50:45 +02:00
Michiel Borkent
35e904b547
Bump core.async to 1.8.735 (#1795) 2025-04-03 11:46:11 +02:00
Michiel Borkent
08d60112ed Bump edamame, throw on triple colon keyword 2025-03-31 16:05:00 +02:00
Michiel Borkent
a9060f0027 Bump process, fixes memory leak 2025-03-31 15:47:51 +02:00
Michiel Borkent
597f180d32 remove debug 2025-03-19 17:40:33 +01:00
Michiel Borkent
007209c0d2 debug windows 2025-03-19 17:23:26 +01:00
Michiel Borkent
1b2682b67a changelog 2025-03-19 16:41:15 +01:00
Michiel Borkent
4a2a305e38
GraalVM 24 (#1800) 2025-03-19 16:38:17 +01:00
Michiel Borkent
e3908a1306
Merge pull request #1799 from lread/lread/badges
docs: readme: badges: reference bb book
2025-03-17 20:04:10 +01:00
lread
f967e10bdd
docs: readme: badges: reference bb book
Give only a quick summary of bb badges in the README, and reference the new
full description in bb book.

Closes #1798
2025-03-17 10:54:07 -04:00
Michiel Borkent
4c6fe98236 Bump deps 2025-03-11 15:07:16 +01:00
Michiel Borkent
28c7c42c2a
Merge pull request #1797 from babashka/jsoup-upgrade
Jsoup upgrade
2025-03-11 11:24:09 +01:00
Michiel Borkent
6d5fc67467 Bump to main branch 2025-03-11 11:21:13 +01:00
Michiel Borkent
50fc2e2582 Upgrade jsoup 2025-03-10 21:02:02 +01:00
Michiel Borkent
a45f76b029 deps.clj 2025-03-10 20:54:49 +01:00
Michiel Borkent
9ed0507030 fix cache 2025-03-06 17:12:58 +01:00
Michiel Borkent
f9935def7e Bump deps.clj 2025-03-06 17:10:34 +01:00
Michiel Borkent
d053a3c0c5 Bump deps.clj 2025-03-04 10:00:38 +01:00
Michiel Borkent
cdcf9deb1c Bump deps.clj 2025-02-28 14:22:23 +01:00
Michiel Borkent
6f43c47f2a Version bump 2025-02-28 12:23:15 +01:00
Michiel Borkent
63a51ff669 v1.12.197 2025-02-28 11:13:20 +01:00
Michiel Borkent
d7c80012b1 v2024.02.28 2025-02-28 11:02:39 +01:00
Michiel Borkent
eddf51529f changelog 2025-02-18 12:36:44 +01:00
Michiel Borkent
d1dbafc49b Bump fs 2025-02-11 21:21:27 +01:00
Michiel Borkent
bc8cd6d358 Bump deps.clj 2025-02-10 17:04:00 +01:00
Michiel Borkent
b01ee6d87d Fix rewrite-clj tests 2025-02-04 20:18:08 +01:00
Michiel Borkent
a43b55bf5c Fix #1793: bump rewrite-clj to 1.1.49 2025-02-04 19:55:25 +01:00
Michiel Borkent
4358428464 Bump deps.clj 2025-01-28 11:17:25 +01:00
Michiel Borkent
7998e50045
Fix #1791: interop problem on Jsoup form element (#1792) 2025-01-23 14:10:36 +01:00
Michiel Borkent
8d3806a6e7 Bump deps.clj 2025-01-23 11:18:32 +01:00
Michiel Borkent
455728092c sync deps.clj and sci 2025-01-16 15:32:49 +01:00
Michiel Borkent
da3eff0305 Bump fs 2025-01-09 21:08:29 +01:00
Michiel Borkent
51b44ba2ed deps.clj bump 2025-01-05 11:24:36 +01:00
Bob
3cddc33334
Fix #1785: allow subclasses of Throwable to have instance methods called via interop (#1786) 2025-01-01 19:36:28 +01:00
Michiel Borkent
d8521888cc sync deps.clj 2024-12-27 16:21:53 +01:00
Michiel Borkent
1a62a619e3 changelog 2024-12-24 10:41:05 +01:00
Michiel Borkent
ecbdbba8d4 Version bump 2024-12-24 10:40:14 +01:00
Michiel Borkent
e186726fd9 v1.12.196 2024-12-24 10:23:11 +01:00
Michiel Borkent
2a50af8f68 Bump org.babashka/cli 2024-12-23 10:55:01 +01:00
Michiel Borkent
c7a5c6c6bc parameterize graalvm install script 2024-12-22 19:47:43 +01:00
Michiel Borkent
024f1d5515
Fix #1771: *e should contain exception thrown by user (#1784) 2024-12-20 17:20:45 +01:00
Ryan Tate
142e9eae06
Add java.nio.file.attribute.UserDefinedFileAttributeView (#1783) 2024-12-20 14:44:52 +01:00
Michiel Borkent
3d909f04b8 Disable test for Windows 2024-12-20 12:43:33 +01:00
Ryan Tate
c9b9ad64fc
Add java.nio.file.attribute.PosixFileAttributes (#1782)
* Add java.nio.file.attribute.PosixFileAttributes

* Update Changelog
2024-12-20 12:17:08 +01:00
Michiel Borkent
9070db46df changelog 2024-12-19 22:50:03 +01:00
Ian Fernandez
b16ecfdf6c
Add RT iter to babashka (#1781) 2024-12-19 22:46:34 +01:00
Michiel Borkent
1874da1d2d
Bump core.async to 1.7.701 (#1778) 2024-12-18 10:42:55 +01:00
Michiel Borkent
c89ac0bd7f Bump github to macos-13 2024-12-12 10:32:07 +01:00
Michiel Borkent
def5d8fd37 Add java.util.concurrent.CompletionStage 2024-12-12 10:17:48 +01:00
Michiel Borkent
2932d82a65 Bump SCI 2024-12-12 10:17:29 +01:00
Michiel Borkent
d8d6876832 Bump fs 2024-12-04 10:56:06 +01:00
Michiel Borkent
c538d5edbd Bump deps.clj 2024-12-03 11:29:57 +01:00
Michiel Borkent
a5ec09087e Changelogs 2024-12-03 10:34:12 +01:00
Michiel Borkent
5e4ce8e093 Fix java.security interop 2024-12-03 10:31:57 +01:00
Michiel Borkent
c1412f9b31 Add java.security.Signature 2024-12-02 20:20:16 +01:00
Michiel Borkent
f5d7c1bb6e
Add more java.security and javax.crypto classes (#1770)
---------

Signed-off-by: Loukas Agorgianitis <loukas@agorgianitis.com>
Co-authored-by: Loukas Agorgianitis <loukas@agorgianitis.com>
2024-12-02 19:49:12 +01:00
Michiel Borkent
1deae725ae Fix #1768: add taoensso.timbre/color-str 2024-11-29 11:32:19 +01:00
Michiel Borkent
42b9ff8f25 Bump clj-yaml 2024-11-25 12:31:39 +01:00
Michiel Borkent
3442f1e505
move locking to SCI (#1765) 2024-11-24 11:58:27 +01:00
Michiel Borkent
f0943d8a14 Bump deps.clj 2024-11-22 13:14:31 +01:00
Michiel Borkent
dff3b526e9 sync process 2024-11-21 20:42:58 +01:00
Kursat Aktas
afb566f600
Introducing Babashka Guru on Gurubase.io (#1763)
Signed-off-by: Kursat Aktas <kursat.ce@gmail.com>
2024-11-18 20:35:50 +01:00
Michiel Borkent
3cc45ec8a7 sync fs 2024-11-18 18:03:08 +01:00
Michiel Borkent
d670bbb245 Bump babashka.cli 2024-11-18 11:07:29 +01:00
Michiel Borkent
62cab79ce6 Bump SCI which has volatile? 2024-11-16 13:58:49 +01:00
Michiel Borkent
f4292e1038
Fix #1760: expose more stuff for fireworks lib (#1762)
Co-authored-by: Jeremiah Coyle <jcoyle@gmail.com>
2024-11-16 10:47:25 +01:00
Michiel Borkent
286e03ee24 Version bump 2024-11-12 10:17:54 +01:00
Michiel Borkent
cd362fbf01 v1.12.195 2024-11-12 09:52:35 +01:00
Michiel Borkent
ccebfa630f Use safer detection of process command 2024-11-11 22:44:02 +01:00
Michiel Borkent
5ab8b3f975 changelogs 2024-11-11 20:55:10 +01:00
Michiel Borkent
2df2e7661b Bump http-client 2024-11-11 20:52:06 +01:00
Michiel Borkent
7121253f75
Add hickory tests (#1758) 2024-11-11 20:10:46 +01:00
Michiel Borkent
e5dde61ba8 sync SCI 2024-11-11 18:26:02 +01:00
Michiel Borkent
6a5c13a6f8 changelog 2024-11-11 10:58:43 +01:00
Michiel Borkent
b981921a00 changelog 2024-11-11 10:57:58 +01:00
Michiel Borkent
eaf760d62f
Add Jsoup (#1756) 2024-11-11 10:51:14 +01:00
Michiel Borkent
b59bfcb7e6
Upgrade timbre (#1755) 2024-10-30 14:41:46 +01:00
Michiel Borkent
0138990139 sync sci 2024-10-30 11:07:12 +01:00
Michael Glaesemann
5acf04dcf1
Include java.lang.SecurityException (#1753)
* Include java.lang.SecurityException

java.net.http.HttpClient, included in Babashak, can throw java.lang.SecurityException

https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpClient.html

* Update Changelog for https://github.com/babashka/babashka/issues/1752
2024-10-24 16:25:55 +02:00
lvh
aabd35eeaa
Document that tests should prefer to hit public APIs (#1751) 2024-10-23 18:07:14 +02:00
Michiel Borkent
ec6a6a5cdb Bump SCI 2024-10-17 12:37:54 +02:00
Michiel Borkent
b19d5f9bff Fix compile script, fixex #1750 2024-10-15 19:00:12 +02:00
Michiel Borkent
5902852ff9
Fix #1748: add clojure.core/ensure (#1749) 2024-10-15 15:08:47 +02:00
Rahuλ Dé
24c644d9f0
[describe] add commit SHA to describe (#1747) 2024-10-13 20:07:04 +02:00
dependabot[bot]
01cb6112f9
Bump actions/download-artifact from 2 to 4.1.7 in /.github/workflows (#1717)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 2 to 4.1.7.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v2...v4.1.7)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-12 13:05:43 +02:00
Michiel Borkent
7ff62d91a2 Version bump 2024-10-12 11:49:26 +02:00
Michiel Borkent
89eed2ed44 v1.12.194 2024-10-12 11:30:21 +02:00
Michiel Borkent
ed8aa97d34
GraalVM 23 (#1745) 2024-10-12 11:28:58 +02:00
Michiel Borkent
34b5e71465
Fix #1743: fix fully qualified instance method in call pos. with GraalVM 22 (#1744) 2024-10-12 10:41:45 +02:00
Michiel Borkent
1d5a777b81 Version bump 2024-10-11 15:17:09 +02:00
Michiel Borkent
2519a284f4 changelog 2024-10-11 15:17:00 +02:00
Michiel Borkent
0f9a0fe622 v1.12.193 2024-10-11 14:50:35 +02:00
Michiel Borkent
b6f844ba0c Fix #1741 2024-10-11 14:44:01 +02:00
Michiel Borkent
ab1ee96335 Bump SCI [skip ci] 2024-10-11 14:26:14 +02:00
Michiel Borkent
a535a5faec Bump SCI 2024-10-11 14:20:38 +02:00
Michiel Borkent
4715d13f71 Bump SCI, add note 2024-10-11 12:54:30 +02:00
Michiel Borkent
8b46e030ca use new impl-java 2024-10-10 21:04:48 +02:00
Michiel Borkent
6ca28c642c New impl-java with release 8 2024-10-10 21:04:20 +02:00
Michiel Borkent
c3c2c8b108
Clojure 1.12 IFn coercion 2024-10-10 20:54:29 +02:00
Michiel Borkent
bc1c35790e
Bump SCI: support new Clojure 1.12 interop (#1740) 2024-10-10 14:01:22 +02:00
Michiel Borkent
50e8a74321 Bump SCI 2024-10-06 15:04:34 +02:00
Michiel Borkent
70b3e5c999 Bump ubuntu image in docker 2024-10-02 15:33:30 +02:00
Michiel Borkent
31a5ec5c71
Upgrade machine executor (#1736) 2024-10-02 15:01:54 +02:00
Michiel Borkent
96807375e0 Add tools.reader.edn/read 2024-10-02 14:10:09 +02:00
Michiel Borkent
c402c01861 Bump SCI reflector compiled for java8 2024-10-01 11:08:35 +02:00
Michiel Borkent
08a08ef957 Bump SCI reflector 2024-10-01 11:00:21 +02:00
Michiel Borkent
6a420c9bfd Bump SCI 2024-09-30 21:13:30 +02:00
Michiel Borkent
030d6ba889
SCI issue 928: record constructor + opt. meta + ext map (#1732) 2024-09-30 15:13:36 +02:00
Stephan Renatus
15f5918e58
Dockerfile improvements (#1729) 2024-09-20 13:31:52 +02:00
Michiel Borkent
0c6f8b6806 Version bump 2024-09-12 20:20:50 +02:00
Michiel Borkent
7128d65de7 v1.4.192 2024-09-12 18:46:05 +02:00
Michiel Borkent
2bf95f60e7 Fix #1676: support latest release of at-at lib 2024-09-12 18:43:26 +02:00
Michiel Borkent
0685424ac3 Fix #1707: support aset on primitive array 2024-09-12 18:20:51 +02:00
Michiel Borkent
ecb0fa5cac Fix #1716: expose babashka.http-client.interceptors namespace 2024-09-12 16:48:00 +02:00
Michiel Borkent
e0a303c484
Fix #1719: add new clojure 1.12 clojure.repl.deps namespace (#1724) 2024-09-12 16:41:27 +02:00
Michiel Borkent
5bc1df73af Bump rewrite-clj 2024-09-12 16:30:53 +02:00
Michiel Borkent
ca26b22bf9 changelog 2024-09-11 15:37:30 +02:00
Michiel Borkent
aa566ed15c Bump deps.clj 2024-09-11 15:36:21 +02:00
Michiel Borkent
2492e71dcc clj-yaml v1.0.28 2024-09-10 15:45:18 +02:00
Michiel Borkent
bbf9933941 upload artifact 2024-09-10 10:21:36 +02:00
Michiel Borkent
ea660e956f Bump http-client to 0.4.21 2024-09-10 10:16:58 +02:00
Michiel Borkent
bc413b654b
Fix #1722: add new clojure 1.12 vars (#1723) 2024-09-06 18:37:26 +02:00
Michiel Borkent
a415139b3b
Fix #1720: include clojure.java.process (#1721) 2024-09-06 17:32:16 +02:00
Michiel Borkent
0147195e8c
Clojure 1.12 (#1718) 2024-09-06 14:37:00 +02:00
Michiel Borkent
d226fe785a Bump edamame 2024-08-22 20:23:57 +02:00
Michiel Borkent
2bb865917a README 2024-08-16 15:40:34 +02:00
Michiel Borkent
16eebb60a3 Bump http-client 2024-08-13 14:48:36 +02:00
Michiel Borkent
da9fcbf10d
Add java.io.LineNumberReader (#1714) 2024-08-10 13:32:24 +02:00
Michiel Borkent
cdfc664682 Bump sci 2024-08-09 18:25:56 +02:00
Michiel Borkent
93e398f288 readme 2024-08-06 11:21:39 +02:00
Michiel Borkent
880b4ebe3f Bump deps.clj 2024-08-06 11:21:20 +02:00
Michiel Borkent
366cbed689 changelogs 2024-08-05 12:02:29 +02:00
Michiel Borkent
d17a5342d2 Bump fs 2024-08-05 12:00:56 +02:00
Michiel Borkent
1372b3d8a0 Bump process 2024-07-27 00:15:17 +02:00
Michiel Borkent
b144c81fbb Bump process + SCI 2024-07-26 20:08:47 +02:00
Lee Read
0527f6a372
docs: dev: windows set example misleading (#1713)
The example I provided implied that the set applied only to the next
command. I've learned that this is not the case.

Also: mention what shell examples apply to.
2024-07-26 19:50:40 +02:00
Lee Read
e258358170
Support running of new babashka.process tests (#1711)
Default `BABASHKA_TEST_ENV` to `jvm` for libtests
CI already understands this need, but defaulting in-script avoids
having devs to understand/remember it too.

Alter PATH as required for new babashka.process tests.

In support of babashka/process#163, babashka/process#164
2024-07-26 12:56:47 +02:00
Lee Read
58def24712
docs: dev: windows tips (#1712)
Some extra notes for Windows that I expect will benefit others and also
future-me!
2024-07-26 12:56:34 +02:00
Michiel Borkent
f335fe51ff Bump SCI: detect duplicate keys in dynamic set of map literal 2024-07-23 13:01:12 +02:00
Michiel Borkent
83918c4b80
Fix #1598: use Rosetta on CircleCI to build x64 images (#1708) 2024-06-30 09:28:56 +02:00
Michiel Borkent
2da875c8f9 sync sci 2024-06-29 20:52:16 +02:00
Michiel Borkent
7abd0000c7 Version bump 2024-06-19 14:52:35 +02:00
Michiel Borkent
19804e4bc7 v1.3.191 2024-06-19 14:13:31 +02:00
Michiel Borkent
af3ae5fa79 Changelogs 2024-06-19 11:34:44 +02:00
Michiel Borkent
bf183a33a8
Add bytechannel + more tests (#1706)
Co-authored-by: Jarppe <jarppe@metosin.fi>
2024-06-18 09:08:12 +02:00
Michiel Borkent
616de196f8
Bump bencode (#1703) 2024-06-12 19:15:24 +02:00
Bob
c3c0bf3cef
catch exceptions from resolving symbolic links during bb.edn lookup (#1702) 2024-06-08 20:56:07 +02:00
Michiel Borkent
ea2c3f06ec bump sci 2024-06-06 12:15:50 +02:00
Bob
3068428578
Fix #1696: make transcriptor work (#1699) 2024-05-30 15:11:09 +02:00
Michiel Borkent
702fdf8108 Skip curl test until Alpine has working curl again 2024-05-27 23:01:57 +02:00
Michiel Borkent
7e8e51b882 debug 2024-05-27 22:46:37 +02:00
Michiel Borkent
976d0fcb6d Debug Alpine 2024-05-27 22:12:21 +02:00
Michiel Borkent
c60d139dbf Debug alpine 2024-05-27 20:52:49 +02:00
Bob
116ee1191c
Fix #1686: do not fetch deps/invoke java when deps aren't needed (#1698) 2024-05-27 10:38:27 +02:00
Bob
035a8268ba
Fix #1695: make CLI args available to REPL (#1697) 2024-05-26 11:41:47 +02:00
Michiel Borkent
5cd2b9d6e6 Bump fs 2024-05-17 11:43:49 +02:00
Noah
82291325de
Update org.flatland/ordered to 1.15.12 (#1694) 2024-05-14 10:54:45 +02:00
Noah
fa0be7ecbf
Fix #1692: expose ordered-set 2024-05-13 22:20:16 +02:00
Michiel Borkent
6d4737ce77 bump deps.clj 2024-05-09 21:49:36 +02:00
Michiel Borkent
da44bd4940 Bump bb.cli 2024-04-30 16:34:38 +02:00
Michiel Borkent
b47a5cc21d
Fix #1688: use-fixtures should add metadata to *ns* (#1689)
* Fix #1688: use-fixtures should add metadata to *ns*

* fix test
2024-04-28 16:22:47 +02:00
Michiel Borkent
ba35032253 Bump deps.clj 2024-04-26 20:21:20 +02:00
Michiel Borkent
11610d6ebe bb http-client v0.4.18 2024-04-25 10:44:05 +02:00
Michiel Borkent
37849d72ad Bump SCI 2024-04-25 10:43:44 +02:00
Michiel Borkent
375c9d3550 Version bump 2024-04-17 11:30:22 +02:00
Michiel Borkent
d7499210ec v1.3.190 2024-04-17 11:09:36 +02:00
Michiel Borkent
3d671ffcb6 Sync fs 2024-04-13 11:39:33 +02:00
Michiel Borkent
4d1984410b Bump fs 2024-04-12 20:39:13 +02:00
Michiel Borkent
0d4096dcd1 changelog 2024-04-12 12:13:42 +02:00
Michiel Borkent
1e4236e22d v0.4.17 2024-04-12 11:52:57 +02:00
Michiel Borkent
717084a71d sync deps 2024-04-12 11:48:38 +02:00
Michiel Borkent
3608c6ab81 changelog 2024-04-04 19:41:09 +02:00
Gabriel Marin
67d8e04db5
bump cheshire (#1685) 2024-04-04 19:39:37 +02:00
Michiel Borkent
71c5e7c45b doc 2024-03-21 15:30:07 +01:00
Michiel Borkent
3cca11f8d1
Upgrade to GraalVM 22 (#1684) 2024-03-21 12:19:13 +01:00
Michiel Borkent
655760d2a9 changelog 2024-03-18 11:21:51 +01:00
Michiel Borkent
7b84a9d256
Fix #1679: issue with wrapping taoensso.timbre/log! (#1683) 2024-03-15 19:19:06 +01:00
Michiel Borkent
1a454b10bb
Add java.lang.ThreadLocal (#1682) 2024-03-14 16:57:06 +01:00
Michiel Borkent
81819deb0a
Add java.util.concurrent.CountDownLatch 2024-03-13 09:08:22 +01:00
Michiel Borkent
8a0f66f3c1 Bump cli 2024-03-12 11:58:26 +01:00
Michiel Borkent
b53e265af3 Bump deps.clj 2024-03-11 11:38:28 +01:00
Michiel Borkent
7530e6a57f Bump clojure 1.11.2 2024-03-08 20:11:47 +01:00
Michiel Borkent
2ee8185269
Bump httpkit to 2.8.0-RC1 2024-03-01 12:27:09 +01:00
Michiel Borkent
ff59956602 Bump process 2024-02-29 17:21:21 +01:00
Michiel Borkent
a176584eda sync pod lib 2024-02-27 17:07:05 +01:00
Michiel Borkent
43d9816bd6 Bump process 2024-02-27 10:58:14 +01:00
Michiel Borkent
e1a12037cd Changelog 2024-02-22 15:44:37 +01:00
Michiel Borkent
86ac0c2431 Version bump 2024-02-22 15:40:57 +01:00
Michiel Borkent
67ae82ee18 v1.3.189 2024-02-22 14:18:51 +01:00
Michiel Borkent
d8e0c6b476 Bump cli 2024-02-22 14:08:23 +01:00
Michiel Borkent
12c89f79c6 Fix #1675: add hash-unordered-coll 2024-02-22 11:41:29 +01:00
Michiel Borkent
67dc3af22d
Add more sslsocket classes (#1674) 2024-02-22 11:15:11 +01:00
Anders Olsson
1f0f932c5e
Suggest using mise instead of asdf (#1673)
asdf adds 120-150 ms to startup time, multiplying bb startup time by a factor of 5 or so.
2024-02-18 23:42:24 +01:00
Michiel Borkent
fa579b74df Bump babashka.cli 2024-02-13 15:58:54 +01:00
Michiel Borkent
e7d964bb0a
Bump http-client (#1670) 2024-02-13 11:34:53 +01:00
Imre Kószó
771f69d922
Update clojure example to new calling convention (#1667)
This way work both from scripts and tasks
2024-02-06 14:23:08 +01:00
Gert Goet
3e4c5861e7
Update CHANGELOG.md (#1666)
inc year
2024-02-06 14:17:57 +01:00
Michiel Borkent
68e8ac6e10 changelog 2024-02-05 12:34:16 +01:00
Michiel Borkent
32078f8259 SCI: read-string should use non-indexing reading, fixes #1665 2024-02-05 12:33:35 +01:00
Michiel Borkent
c9a63af40f Support reader conditional in .cljc file 2024-02-02 19:43:14 +01:00
Michiel Borkent
87f9f6f206 Bump edamame 2024-02-01 11:04:08 +01:00
Michiel Borkent
df477adbb0
Fix #1661: follow symlink when reading adjacent bb.edn (#1663) 2024-01-30 11:56:22 +01:00
Michiel Borkent
35e17bd46a
Upgrade to graal 21.0.2, fixes #1632 (#1662) 2024-01-29 12:02:04 +01:00
Michiel Borkent
9da2afc4b5 Fix #1660: add :deps-root to hash to avoid caching issue with deps.clj 2024-01-23 16:57:22 +01:00
Michiel Borkent
f24c75a054 Version bump 2024-01-12 20:50:19 +01:00
Michiel Borkent
30534691ba v1.3.188 2024-01-12 20:30:24 +01:00
Michiel Borkent
6dc3110b3c
Fix #1658: fix command-line args with overlapping bb options (#1659) 2024-01-12 20:29:40 +01:00
Michiel Borkent
ecbbd7ab84
medium mac still works on circle (#1656) 2024-01-12 17:15:10 +01:00
Michiel Borkent
4ae9d27171 try 14.0.1 2024-01-12 17:08:05 +01:00
Michiel Borkent
86ec03e2f4 try 15.1 2024-01-12 17:06:09 +01:00
Michiel Borkent
39a9ed69d6 try 15.2.0 2024-01-12 17:04:26 +01:00
Michiel Borkent
9653435460 try xcode 15 2024-01-12 16:39:54 +01:00
Michiel Borkent
d467bf53c8 Bump fs: copy-tree with read-only dirs 2024-01-12 16:20:35 +01:00
Michiel Borkent
6bfb2374b8 Version bump 2024-01-09 17:50:34 +01:00
Michiel Borkent
fe940c73c9 v1.3.187 2024-01-09 17:31:21 +01:00
Michiel Borkent
ea2c439369 changelog 2024-01-09 16:54:01 +01:00
Michiel Borkent
c48d2f7a90 Add clojure.reflect/reflect 2024-01-09 16:38:28 +01:00
Michiel Borkent
b337e032b6 #1410: better error message when exec fn doesn't exist 2024-01-09 15:11:42 +01:00
Michiel Borkent
2166c42de2 Fix #1586: warn when config file doesn't exist and debug is enabled 2024-01-09 14:36:49 +01:00
Michiel Borkent
d85c86af2c Fix #1652: allow bb.edn to be empty 2024-01-09 12:26:38 +01:00
Michiel Borkent
5b471cb5e2 Bump cli 2024-01-04 22:06:23 +01:00
Michiel Borkent
629c338b14 Bump deps.clj 2023-12-31 16:21:16 +01:00
Michiel Borkent
ab28e4c465 Fix #1653: add java.time.temporal.WeekFields 2023-12-22 12:23:13 +01:00
Michiel Borkent
54ea4b460d Bump fs to 0.5.20 2023-12-21 21:15:00 +01:00
Michiel Borkent
bf7f42ce73
Compatibility with plumbing.core (#1650) 2023-12-20 16:29:04 +01:00
Michiel Borkent
53d16eb9a0 Bump deps.clj 2023-12-16 11:56:08 +01:00
paintparty
eb69baeaa7
Fix #1645: support clojure.lang.LongRange instance check (#1649) 2023-12-16 10:09:26 +01:00
Michiel Borkent
6052b9ba35 Allow capturing env vars at build time, fixes #1647 2023-12-15 18:20:33 +01:00
Michiel Borkent
4a1b26a6be Fix tests 2023-12-15 18:07:47 +01:00
Michiel Borkent
28f9879e40 Fix #1646: command-line-args are dropped when file exists with same name 2023-12-15 17:19:58 +01:00
Michiel Borkent
0e1694f586 Add tools reader tests 2023-12-09 11:49:57 +01:00
Michiel Borkent
2ee7a0d12e Fix namespace attributes 2023-12-09 11:18:01 +01:00
Michiel Borkent
4af5f1fd61 tools reader compat for shadow.css 2023-12-09 11:07:13 +01:00
Michiel Borkent
fc19382b5e Sync SCI 2023-12-01 13:55:29 +01:00
Michiel Borkent
9e1452867e fill 2023-11-24 11:18:05 +01:00
Michiel Borkent
2a432d3e80 changelog 2023-11-14 10:47:30 +01:00
Michiel Borkent
1dbffac334 Runnable import 2023-11-14 10:46:49 +01:00
Michiel Borkent
aa654a9ead
Add java.util.concurrent.ScheduledFuture (#1643) 2023-11-13 10:33:57 +01:00
Michiel Borkent
9ded5fea0d Bump SCI: allow catch to be used as var name 2023-11-12 11:49:29 +01:00
Michiel Borkent
6353ab9de9 Version bump 2023-11-02 14:19:02 +01:00
Michiel Borkent
ce403671be trigger CI 2023-11-02 14:01:02 +01:00
Michiel Borkent
cedbff7696 v1.3.186 2023-11-02 13:31:58 +01:00
Michiel Borkent
15cff2eb7b v1.3.186 2023-11-02 13:31:07 +01:00
Michiel Borkent
2e23471612 Confirm fix for#1639 by adding test 2023-11-02 13:30:38 +01:00
Michiel Borkent
6b52831a21
Upgrade to GraalVM 21.0.1 (#1640) 2023-11-02 13:25:31 +01:00
Eugen Stan
fdd2d68e1d
Include javax.crypto.spec.IvParameterSpec so I can implement ansible vault decryption (#1638)
Please consider adding this class to bb.

I'm looking to implement ansible-vault decryption in babashka and I need the above class. 

Decryption works in Clojure but fails with missing class for babashka. 

After this I need to fix crypto padding and all is good :). 

https://docs.ansible.com/ansible/latest/vault_guide/vault_using_encrypted_content.html#format-of-files-encrypted-with-ansible-vault
2023-10-31 00:03:13 +01:00
Michiel Borkent
838608647a Bump SCI: add time macro 2023-10-30 18:23:57 +01:00
Michiel Borkent
e746593f14 changelog 2023-10-29 14:47:55 +01:00
Michiel Borkent
3735135c05 Bump SCI 2023-10-27 15:04:15 +02:00
Michiel Borkent
7ebe96773d
Simplify Graal argument (#1636) 2023-10-23 18:01:29 +02:00
Michiel Borkent
2fcf9c682a nrepl: ns-list op 2023-10-22 11:49:48 +02:00
Michiel Borkent
36e9732549 Expose taoensso.timbre.appenders.core 2023-10-19 14:59:06 +02:00
Michiel Borkent
a5e4dfe663 Fix https://github.com/babashka/babashka.nrepl/issues/68 2023-10-14 21:11:49 +02:00
Michiel Borkent
9da7af58b3 Add java.net.URISyntaxException 2023-10-12 16:08:31 +02:00
Michiel Borkent
f1084c1f36
Binary test (#1635) 2023-10-12 13:12:29 +02:00
Michiel Borkent
e0598470be Bump deps.clj 2023-10-12 11:43:58 +02:00
Michiel Borkent
d854de883e
Bump http-kit (#1634) 2023-10-11 16:19:06 +02:00
Michiel Borkent
80a8097a63 Don't parse other arguments in self-contained binary 2023-10-11 15:00:08 +02:00
Michiel Borkent
5bb98159be
Invoke self as uberjar (#1633) 2023-10-11 11:50:26 +02:00
Michiel Borkent
69b83c3678 sync fs 2023-10-11 10:47:51 +02:00
Michiel Borkent
857ecc3111 Bump fs 2023-10-10 15:45:48 +02:00
Michiel Borkent
dbc766f58a Add java.security.spec.PKCS8EncodedKeySpec 2023-10-10 11:39:49 +02:00
Michiel Borkent
79a133ee13 Add java.security.KeyFactory 2023-10-10 11:23:31 +02:00
Michiel Borkent
7ecd2fe59e Partial fix for #1632 2023-10-09 14:58:33 +02:00
Michiel Borkent
0b892ad8e5 Fix babashka.process/exec wrt *defaults* 2023-10-08 21:20:17 +02:00
Michiel Borkent
66b29b9061 Bump sci [skip ci] 2023-10-08 21:19:41 +02:00
Michiel Borkent
1dff46699a bump deps.clj and fs 2023-10-07 11:43:02 +02:00
Michiel Borkent
ae01170f92 changelog 2023-09-28 16:23:36 +02:00
Michiel Borkent
996c96761e Version bump 2023-09-28 16:17:45 +02:00
Michiel Borkent
ef5d2fdf3a v1.3.185 2023-09-28 15:57:06 +02:00
Michiel Borkent
9ae36491b7 Fix test 2023-09-28 15:27:03 +02:00
Michiel Borkent
d1580f1a72
Fix [#babashka.nrepl/66](babashka/babashka.nrepl#66) (#1630) 2023-09-28 14:55:59 +02:00
Michiel Borkent
8788a3c482 Bump babashka.cli to 0.7.53 2023-09-28 13:18:26 +02:00
Michiel Borkent
5cab060bbb Bump deps.clj 2023-09-28 12:50:35 +02:00
Michiel Borkent
d984eda226 Update Github Actions for GraalVM 21 2023-09-28 12:01:19 +02:00
Michiel Borkent
c8324ac887 Compatibility with older architectures 2023-09-28 11:54:37 +02:00
Michiel Borkent
e938a58e06 Changelogs 2023-09-27 14:26:33 +02:00
Michiel Borkent
c04b83811c
Use pgo to speed up loop performance (#1629) 2023-09-27 14:25:16 +02:00
Rahuλ Dé
6c1a66e853
Use Oracle GraalVM 21 (#1624)
---------

Co-authored-by: Michiel Borkent <michielborkent@gmail.com>
2023-09-27 12:23:57 +02:00
Michiel Borkent
ef50677275
Fix #1513: interop on Thread/sleep with non-long (#1628) 2023-09-26 21:16:22 +02:00
Michiel Borkent
8a8c2dcb46 Bump process 2023-09-26 20:42:24 +02:00
Michiel Borkent
7c5a2775df deps.clj 2023-09-26 19:37:33 +02:00
Michiel Borkent
0b61f4d3ab
Use new :static-methods functionality in SCI (#1626) 2023-09-26 17:46:50 +02:00
Michiel Borkent
e14af7b629 Make interop test OS-agnostic 2023-09-25 15:23:19 +02:00
Michiel Borkent
bc5e6b6d52
Add interop on java.util.stream.IntStream (#1625) 2023-09-25 14:52:26 +02:00
Michiel Borkent
c2c7053120
Bump cheshire (#1623) 2023-09-21 03:48:21 -05:00
Michiel Borkent
6467316dc8 Update rewrite-clj tests 2023-09-15 16:03:05 +02:00
Michiel Borkent
ad4935077d Bump rewrite-clj to 1.1.47 2023-09-15 15:18:09 +02:00
Michiel Borkent
ad6cd5989f
Fix #1619: fix reflection issue with core.async/timeout (#1620) 2023-09-05 12:53:42 +02:00
Michiel Borkent
b1d2dc599b Bump babashka.http-client to 0.4.15 2023-09-04 16:09:16 +02:00
Michiel Borkent
af507b2894
Use macos.x86.large.gen2 resource (#1618) 2023-09-03 12:36:19 +02:00
Michiel Borkent
c91ccc7b93 sci (minor) [skip ci] 2023-09-03 12:16:11 +02:00
Michiel Borkent
2eed1b810b Bump SCI (only JS changes) 2023-08-30 15:50:44 +02:00
Peter Strömberg
ce9a0f71e5
Tweak Babashka Babooka copy (#1617)
Straight out recommending Babashka Babooka, instead of conditioning the recommendation on that the user has read Clojure for the Brave and True. Also adding some little info about Daniel.
2023-08-29 10:38:04 +02:00
Michiel Borkent
0d20cdf696 Version bump 2023-08-22 15:25:19 +02:00
Michiel Borkent
6bee6b6a89 v1.3.184 2023-08-22 15:01:17 +02:00
Michiel Borkent
dac6dcd6d5 deps.clj: more remove debug 2023-08-22 14:54:06 +02:00
Michiel Borkent
d8c41351f5 Remove debugging 2023-08-22 14:50:52 +02:00
Michiel Borkent
c1b82db587 Version bump 2023-08-22 14:27:37 +02:00
Michiel Borkent
26c6c5ce18 v1.3.183 2023-08-22 13:37:28 +02:00
Michiel Borkent
3ded3b9546
Fix #1568: warn when task overrides built-in command (#1612) 2023-08-22 13:36:49 +02:00
Michiel Borkent
10c315663f Bump http-client 2023-08-22 10:34:25 +02:00
Michiel Borkent
5f82d40fe6 Bump http-client 2023-08-22 10:33:35 +02:00
Michiel Borkent
81d260e473
Fix #1610: expose babashka.http-client.websocket namespace (#1611) 2023-08-20 21:20:13 +02:00
Michiel Borkent
1881a75a1d
Expose selmer.parser/resolve-arg (#1609) 2023-08-20 20:05:25 +02:00
Michiel Borkent
f470dba671
Fix #1600: use pagesize of 64K on linux aarch64 (#1606)
Fix #1600: use pagesize of 64K on linux aarch64
2023-08-17 15:12:26 +02:00
Michiel Borkent
09bbd9eb34
Fix #1604: throw on missing namespace (#1605) 2023-08-16 20:19:20 +02:00
Michiel Borkent
7dc6b713d0 Bump deps.clj - 1.11.1.1403 2023-08-15 11:08:36 +02:00
Michiel Borkent
42d9d77e76 flaky test 2023-08-11 17:27:57 +02:00
Michiel Borkent
df5b115aab
Bump clj-yaml to 1.0.27 (#1603) 2023-08-11 17:13:16 +02:00
Michiel Borkent
2ee0df4909
Fix #1592 (2): reduce image size (#1602) 2023-08-11 16:41:25 +02:00
Michiel Borkent
ea4ebab807
Fix #1599: propagate run error (#1601) 2023-08-11 13:22:50 +02:00
Michiel Borkent
666ce9adc9 babashka.nrepl minor 2023-08-10 20:31:04 +02:00
Michiel Borkent
601e6e82cd Revert nREPL middleware stuff 2023-08-10 20:19:41 +02:00
Michiel Borkent
6e088272b7 Bump SCI: pick up on new file metadata on second def 2023-08-10 20:15:30 +02:00
Michiel Borkent
2353827e43 Bump deps shas 2023-08-08 16:10:18 +02:00
Michiel Borkent
a8e7d35dfa Disable #1596 test 2023-08-08 11:15:35 +02:00
Michiel Borkent
b6e8f86595 Bump http-client 2023-08-08 11:10:20 +02:00
Chuck Cassel
3370d7a063
Fix #1596: Escape URLs for clojure.java.browse/browse-url on Windows (#1597) 2023-08-08 10:49:07 +02:00
Michiel Borkent
d1e36be9d9 Bump SCI and fs 2023-08-07 11:27:51 +02:00
Michiel Borkent
83c02cb58b
Fix #1592: expose sci.core in babashka (#1593) 2023-08-04 11:43:14 +02:00
Michiel Borkent
4c7bbeeb3b Version bump 2023-07-21 15:49:33 +02:00
Michiel Borkent
560369e294 v1.3.182 2023-07-20 11:32:39 +02:00
Michiel Borkent
94c5141a3e Bump edamame 2023-07-12 21:07:08 +02:00
didibus
b749563003
Bumping selmer version to 1.12.59 (#1588)
* Bumping selmer version to 1.12.59

* Copied over resolve-arg tests to Selmer's lib test.
2023-07-09 21:00:07 +02:00
Michiel Borkent
af0937f060 Bump deps.clj 2023-07-07 13:21:54 +02:00
Michiel Borkent
85ecdab0a5 Bump babashka.http-client 2023-07-06 12:51:25 +02:00
Michiel Borkent
3b251c1b38 Add javax.net.ssl.X509ExtendedTrustManager + proxy 2023-07-05 21:19:50 +02:00
Michiel Borkent
657adff336
Expose more selmer.filter vars (#1585) 2023-07-02 17:02:19 +02:00
Michiel Borkent
a2f70d8324 Bump deps.clj [skip ci] 2023-07-01 19:39:35 +02:00
Michiel Borkent
fb3fa03074 Bump process and sci 2023-06-30 15:22:56 +02:00
Teodor Heggelund
de06c199f1
bb print-deps: sort dependencies (#1582)
* `bb print-deps`: sort dependencies

Co-authored-by: Teodor Heggelund <git@teod.eu>
2023-06-28 18:17:06 +02:00
Michiel Borkent
85eef7d6f7
Upgrade hiccup (#1580) 2023-06-23 12:41:39 +02:00
Michiel Borkent
bf306bb407 Fix #1579: add clojure.tools.reader/resolve-symbol 2023-06-23 11:23:31 +02:00
Michiel Borkent
056254dc9d deps.clj: print repl-aliases in -Sdescribe 2023-06-21 19:15:58 +02:00
Marek J
e3228fe358
Fix README.md prepending the command with bb (#1578) 2023-06-15 15:35:06 +02:00
Michiel Borkent
1010b7f114 Version bump 2023-06-13 12:34:42 +02:00
Michiel Borkent
bef5ccf229 v1.3.181 2023-06-13 11:34:48 +02:00
Michiel Borkent
6760a2b844 Bump deps.clj 2023-06-13 11:33:28 +02:00
Michiel Borkent
fa10070013 deps.clj: better error message when tools zip is corrupt 2023-06-12 23:02:15 +02:00
Michiel Borkent
fb3e04cffe Add zip classes 2023-06-12 21:24:30 +02:00
Michiel Borkent
7b7feb7034 Fix #1575: command line parsing problem with -e + *command-line-args* 2023-06-11 11:11:10 +02:00
Michiel Borkent
c3cf8f5330 Bump deps.clj 2023-06-10 23:05:06 +02:00
Michiel Borkent
caf05979c3
Add malli-cli to projects (#1574)
Co-authored-by: 胡雨軒 Петр <3686502+piotr-yuxuan@users.noreply.github.com>
2023-06-08 08:45:24 +02:00
Michiel Borkent
9356653a09 changelog 2023-06-05 20:45:17 +02:00
Michiel Borkent
aa7fb0c62a Bump fs 2023-06-04 21:22:29 +02:00
Michiel Borkent
45ff85e1a0 fix link 2023-06-02 16:21:22 +02:00
Michiel Borkent
9ff8003c1b mastodon 2023-06-02 15:52:26 +02:00
Michiel Borkent
b46fc49a5d news 2023-06-02 15:51:41 +02:00
Michiel Borkent
9edce22ea7 no vids 2023-06-02 15:49:03 +02:00
Michiel Borkent
56f5378702 sponsors 2023-06-02 15:48:32 +02:00
Michiel Borkent
a2398705bf sponsors 2023-06-02 15:48:11 +02:00
Michiel Borkent
c74d9a6f0a news 2023-06-02 15:47:30 +02:00
Michiel Borkent
d27287b837 sci [skip ci] 2023-06-01 22:08:59 +02:00
Michiel Borkent
d677a2b65a
Upgrade httpkit to 2.7.0-RC1 2023-05-31 11:50:00 +02:00
Michiel Borkent
efb947ec03 Fix #1567: always use static binary on linux aarch64 2023-05-29 11:13:17 +02:00
Lee Read
a8c9526be1
lib tests: include new babashka/process exec tests (#1566)
see https://github.com/babashka/process/pull/131#issuecomment-1558113387
2023-05-29 10:00:45 +02:00
Michiel Borkent
0d1ffd0c9f changelog 2023-05-28 11:53:46 +02:00
Michiel Borkent
bfcec721c9 Version bump 2023-05-28 11:53:14 +02:00
Michiel Borkent
3ade21918f v1.3.180 2023-05-28 11:29:18 +02:00
Michiel Borkent
ddfc93d7e5 changelog 2023-05-27 21:27:41 +02:00
Michiel Borkent
b44167e5c0 Update changelogs 2023-05-27 21:26:58 +02:00
Michiel Borkent
8a0fe19ab3 process 2023-05-27 17:56:33 +02:00
Michiel Borkent
a3eb37e4a6 process 2023-05-27 16:33:52 +02:00
Michiel Borkent
44465990a8 Bump process 2023-05-27 16:13:30 +02:00
Michiel Borkent
236768cada Bump fs 2023-05-24 16:15:56 +02:00
Michiel Borkent
0f85b02a82 mention conf in readme 2023-05-20 13:41:03 +02:00
Michiel Borkent
b1a5f4e8df Bump http-client + deps.clj 2023-05-20 11:16:33 +02:00
Lee Read
0e47d7f7a6
tests: run babashka.process lib tests on windows (#1564)
Now that babashka.process tests are os agnostic we can also run them
on Windows.

This should now work, see babashka/process#126
2023-05-19 11:26:18 +02:00
Michiel Borkent
41e5e0c484 Bump process 2023-05-18 14:05:40 +02:00
Michiel Borkent
fe989f7233 Revert "tests: run babashka.process lib tests on windows (#1559)"
This reverts commit 7f8ec567e6.
2023-05-14 00:31:38 +02:00
Lee Read
7f8ec567e6
tests: run babashka.process lib tests on windows (#1559)
Now that babashka.process tests are os agnostic we can also run them
on Windows.
2023-05-13 23:39:31 +02:00
Lee Read
342cedbcfa
Support babashka.process reload for exec fn (#1558)
* Support babashka.process reload for exec fn

Exposed GraalVM `ProcessProperties/exec` signature used by
babashka.process/exec.

Add new `graal?` feature (on by default) to allow folks to build/use
babashka without this specific Graal API.

On my linux dev box bb executable increased by 8kb.

Closes #1557

* Respond to PR review feedback

1. Allow all Graal ProcessProperties/exec signatures

2. Instead of a feature flag, simply check if Graal ProcessProperties
class is available before including ProcessProperties/exec.
I did not see the value of adding a has-graal-process-properties fn, so
left that part out. Lemme know if you want/need that.

* Respond to PR review feedback

Because resolves can bloat GraalVM native-image size, we like to keep
the together and obvious instead of buried and non-obvious.
2023-05-13 23:22:18 +02:00
Michiel Borkent
b22092a318 pods minor 2023-05-12 16:56:43 +02:00
Michiel Borkent
3da2c9f75f Bump pods 2023-05-12 16:12:16 +02:00
Michiel Borkent
2e3bd2d3f0
Bump deps.clj (#1556) 2023-05-12 16:05:41 +02:00
Michiel Borkent
555c11eca2 Bump fs 2023-05-11 11:51:00 +02:00
Michiel Borkent
32a18191dc deps.clj 2023-05-09 12:06:47 +02:00
Michiel Borkent
dcb0b45405 Bump process 2023-05-06 20:44:14 +02:00
Michiel Borkent
e84eb29fa1 process minor 2023-05-04 22:15:51 +02:00
Michiel Borkent
1c425796ae process: hopefully fixed CI tests 2023-05-04 21:47:56 +02:00
Michiel Borkent
4e8d907369 Bump print-deps deps 2023-05-04 21:04:37 +02:00
Michiel Borkent
f4bc802880 Bump process 2023-05-04 21:04:37 +02:00
Rahuλ Dé
c13500cddb
[#1524] fix docker orchestration (#1552)
* [#1524] fix docker orchestration

* [#1524] revert branch checks
2023-05-01 14:15:03 +02:00
Michiel Borkent
98aa6b996e swag link [skip ci] 2023-05-01 12:25:14 +02:00
Michiel Borkent
f2e955cc0b
README [skip ci] (#1551) 2023-05-01 12:09:25 +02:00
Rahul De
5c4eedb12b [#1524] pick right binary for ARM docker images 2023-05-01 11:07:55 +01:00
Michiel Borkent
c536d524f8 changelog 2023-05-01 11:47:29 +02:00
Rahuλ Dé
ea57060963
No linux aarch64 (#1550)
* [#1524] remove linux-aarch64 dynamic binary build

* [#1524] add changelog
2023-05-01 11:46:24 +02:00
Michiel Borkent
430a466a25 bb news 2023-05-01 10:17:26 +02:00
Michiel Borkent
d27efb137d
Fix #1548: shell and sh should respect babashka.process/*defaults* (#1549) 2023-04-28 13:30:07 +02:00
Michiel Borkent
0063196074 SCI: revert 2023-04-28 13:20:40 +02:00
Michiel Borkent
4db3de5987 Revert "SCI: preserve ex-data in threads"
This reverts commit cd70809b1b.
2023-04-28 13:20:25 +02:00
Michiel Borkent
cd70809b1b SCI: preserve ex-data in threads 2023-04-28 12:56:30 +02:00
Michiel Borkent
2b24a84c11 Version bump 2023-04-26 17:42:59 +02:00
Michiel Borkent
7d5cdadbcb v1.3.179 2023-04-26 16:24:13 +02:00
Michiel Borkent
325e043440 changelog 2023-04-26 14:42:21 +02:00
Michiel Borkent
4dcc159ed7
Fix #1545: Adjacent bb.edn not respected with explicit -f option (#1547) 2023-04-26 14:41:21 +02:00
Michiel Borkent
a9be9d02ea Fix #1546: add .contains for vector and lazy-seq 2023-04-25 14:28:54 +02:00
Michiel Borkent
d2fece3f80 Fix #1544: :local/root in script-adjacent bb.edn should resolve relative to script 2023-04-23 12:28:44 +02:00
Bob
39e4ea71e9
Fix #1189: add test for error message for clojure {:dir "missing-directory"} (#1543)
* add test for error message from running clojure
task in non-existent dir

* make testing string more accurate
2023-04-22 23:37:17 +02:00
Michiel Borkent
4cbdb57ad1 SCI: better error message when trying to recur across try 2023-04-22 11:30:03 +02:00
Michiel Borkent
2e0bbfb260 unset bb classpath 2023-04-21 16:50:31 +02:00
Michiel Borkent
c1726c3b98 Add test for regression 2023-04-21 16:39:08 +02:00
Michiel Borkent
0951328270 Version bump 2023-04-21 16:14:06 +02:00
Michiel Borkent
1de5c553ea v1.3.178 2023-04-21 15:55:14 +02:00
Michiel Borkent
cd4987b005 news 2023-04-21 14:27:48 +02:00
Michiel Borkent
340d24fb07 changelogs 2023-04-21 14:21:47 +02:00
Michiel Borkent
abc102f0b8 Version bump 2023-04-21 14:19:43 +02:00
Michiel Borkent
3f99274978 v1.3.177 2023-04-21 13:59:51 +02:00
Michiel Borkent
26967df643
Fix #1541: respect bb.edn adjacent to invoked file (#1542) 2023-04-21 13:50:53 +02:00
Michiel Borkent
1644c94fda nrepl wip [skip ci] 2023-04-21 12:23:30 +02:00
Michiel Borkent
63102eca86
Add --install-exit-handlers to support shutdown hook + SIGTERM (#1540) 2023-04-19 21:55:47 +02:00
Michiel Borkent
f7907be86e Bump http-client 2023-04-18 15:00:47 +02:00
Bob
19bfd172fc
vary ports across socket repl tests (#1539)
* use different port for socket repl tests

- update socket-command to socket-command-on-port, which
 takes a port and then returns the socket-command function
- change port numbers across tests

* undo little formatting change

* grr... newlines
2023-04-18 09:47:40 +02:00
Michiel Borkent
a945ea8146 Bump CLI 2023-04-17 19:57:48 +02:00
Michiel Borkent
fcb0b4a1a7 docs [skip ci] 2023-04-15 11:24:52 +02:00
Michiel Borkent
6eea167cfe docs 2023-04-15 11:20:08 +02:00
Michiel Borkent
307ed36f9c Add UnsupportedOperationException 2023-04-14 13:13:19 +02:00
Michiel Borkent
99655aa224 Bump edamame 2023-04-13 17:54:18 +02:00
Michiel Borkent
b7ee49ab8d Bump edamame to 1.3.21 2023-04-13 15:34:05 +02:00
Michiel Borkent
37b5d1d6a3 built-in deps.edn 2023-04-12 15:18:26 +02:00
Michiel Borkent
1a54f03ce3 Bump clj-yaml to 1.0.26 2023-04-12 15:14:50 +02:00
Michiel Borkent
9365a24eed deps.clj upgrade 2023-04-12 15:03:08 +02:00
Michiel Borkent
0b5a281d46 sci [skip ci] 2023-04-08 13:14:11 +02:00
Michiel Borkent
c89a396bbd
Add java.security.cert.CertificateFactory (#1531) 2023-04-07 23:54:59 +02:00
Michiel Borkent
905f6365d4 news 2023-04-07 13:18:16 +02:00
Michiel Borkent
c1788da654 news 2023-04-07 13:14:28 +02:00
Michiel Borkent
d3f7a52f65 pods: fix for JVM 2023-04-02 11:27:33 +02:00
Michiel Borkent
c85e86cb7e
Upgrade transit-clj 1.0.333 (#1528) 2023-04-01 12:25:46 +02:00
Michiel Borkent
b4365826ba Bump deps.clj 2023-04-01 12:03:52 +02:00
Michiel Borkent
e68eb7a998 Add clojure.lang.PersistentList to reachable classes 2023-03-31 11:42:00 +02:00
Michiel Borkent
18b2d54d33 deps.clj 1.11.1.1262 2023-03-28 10:59:14 +02:00
KARASZI István
43e7b4af0b
fix(docker): make image smaller (#1523)
* Replace mkdir with WORKDIR

* Remove unnecessary package list

* Remove graalvm removal in the base image

This could speed up local builds since we don't need to download it
every time

* Remove package information

* Remove the downloaded apk

* Add a changelog entry

* Revert WORKDIR changes
2023-03-21 22:45:25 +00:00
Michiel Borkent
57ebb524b0 changelog 2023-03-18 17:02:48 +01:00
Michiel Borkent
6ccdfae7bb Version bump 2023-03-18 17:00:50 +01:00
Michiel Borkent
fa34ebfdef Retry release 2023-03-18 16:42:43 +01:00
Michiel Borkent
a66a2f74f5 Retry release 2023-03-18 16:04:44 +01:00
Michiel Borkent
6850caed6e revert release 2023-03-18 15:25:58 +01:00
Michiel Borkent
29150e6bd3 v1.3.176 2023-03-18 15:22:24 +01:00
Michiel Borkent
4a45624acd Version bump 2023-03-18 15:07:51 +01:00
Michiel Borkent
cce0a3d378 Fix pushing to ghcr 2023-03-18 14:33:34 +01:00
Michiel Borkent
26780fffe5 v1.3.175 2023-03-18 14:12:05 +01:00
Michiel Borkent
1bc4782d42 changelogs 2023-03-18 14:11:19 +01:00
Michiel Borkent
2c6485b876 Bump edamame to 1.3.20 2023-03-18 11:13:19 +01:00
Michiel Borkent
4fc1d9a815 deps.clj: 1.11.1.1257 2023-03-16 11:02:37 +01:00
Rahuλ Dé
e7521110c9
Fix #1521: Push images to GHCR (#1522) 2023-03-15 16:52:05 +01:00
Michiel Borkent
e2f2e9ae4e use newest ordered 2023-03-13 15:38:56 +01:00
Michiel Borkent
0927a48c50 Use newest ordered 2023-03-13 15:37:01 +01:00
Michiel Borkent
69373fb445 Support clojure.lang.MapEntry/create 2023-03-11 23:38:16 +01:00
Michiel Borkent
7aba75564e
Go macro uses virtual threads (#1517) 2023-03-10 19:22:53 +01:00
Michiel Borkent
4438f3bbcf Bump babashka cli 2023-03-10 16:30:14 +01:00
Michiel Borkent
1bb7ebe3dc Bump github release artifact 2023-03-09 23:21:02 +01:00
Michiel Borkent
9545d23cc4
Enable unix protocol on Windows (#1516) 2023-03-09 22:51:42 +01:00
Michiel Borkent
e74e7ed2ca
Fix #1511: support domain sockets (#1514) 2023-03-09 16:57:17 +01:00
Michiel Borkent
5ad161a059 Bump http-client in meta-inf [skip ci] 2023-03-08 21:49:13 +01:00
Michiel Borkent
68878e7f89 Fix #1510 2023-03-08 10:55:43 +01:00
Michiel Borkent
84bd66f869 Mark ssl test as flaky 2023-03-07 19:34:48 +01:00
Michiel Borkent
5516151132 deps.clj : 1.1.11.1152 2023-03-07 19:06:42 +01:00
Michiel Borkent
4e52f0d34c Bump http-client 2023-03-03 20:21:19 +01:00
Michiel Borkent
4a38fdbd07 SCI 2023-03-03 16:57:50 +01:00
Michiel Borkent
a8d3923262 Add UnixDomainSocketAddress 2023-03-03 16:42:15 +01:00
Michiel Borkent
8d8d3a1057 clean [skip ci] 2023-03-03 15:22:10 +01:00
Michiel Borkent
d4c4e53c86 sci minor [skip ci] 2023-03-03 15:03:31 +01:00
Michiel Borkent
52a7c205a3 Bump graal in actions 2023-03-02 15:35:49 +01:00
Rahuλ Dé
9e004edefe
Fix #1507: support calling getName on virtual thread 2023-03-02 15:10:58 +01:00
Michiel Borkent
b8a0520b93 Version bump 2023-03-01 00:23:46 +01:00
Michiel Borkent
1022068624 trim version 2023-03-01 00:07:09 +01:00
Michiel Borkent
8df7f7c3fe Bump minor version 2023-02-28 23:51:54 +01:00
Michiel Borkent
f5e2fe0f61 v1.1.174 2023-02-28 23:51:18 +01:00
Michiel Borkent
abdd068149 changelog 2023-02-28 23:46:16 +01:00
Michiel Borkent
99ec77afeb Bump fs 2023-02-28 23:45:20 +01:00
Michiel Borkent
eba9d0d642 Docker alpine, hopefully clojure.org is less flaky 2023-02-28 23:10:09 +01:00
Michiel Borkent
9520c5b240 Fix #1501: equals on deftype 2023-02-28 22:21:04 +01:00
Michiel Borkent
9b21986f05 changelog [skip ci] 2023-02-28 20:22:22 +01:00
Michiel Borkent
076a2774be Fix #1506: :exec-args in task should override :exec-args on fn metadata 2023-02-28 19:45:49 +01:00
Michiel Borkent
3f4ac12cc4 Bump deps.clj 2023-02-28 16:05:44 +01:00
Michiel Borkent
b2d422cacb Bump http-client 2023-02-28 15:05:00 +01:00
Bob
5dc7763325
- remove zero size tolerance for overwriting uber-files (#1504)
- in tests, delete temp output files that would prevent overwrite
- in tests, change 'non-empty' files to be empty files (since
 non-empty is no longer necessary)
- in hato test, replace nghttp2 with httpbin, since httpbin
 uses http/2 by default now, and to benefit from httpbin
  'flaky' test
2023-02-26 10:13:27 +01:00
Bob
3045cd226e
Fix #1489: prevent uberscript/uberjar overwrites (#1503) 2023-02-25 21:36:02 +01:00
Michiel Borkent
187ee7da00 Add support for .getWatches on atoms 2023-02-25 21:33:55 +01:00
Michiel Borkent
cd9a87e75c library upgrades 2023-02-25 21:18:46 +01:00
Michiel Borkent
3ad043769c
Use GraalVM 22.3.1 on JDK 19.0.2 with virtual thread support (#1500) 2023-02-21 16:23:03 +01:00
Michiel Borkent
332c7c6ac8 Babashka CLI v0.6.46 2023-02-19 13:09:18 +01:00
Michiel Borkent
711bb40480 Fix crypto test 2023-02-15 13:51:41 +01:00
Michiel Borkent
be426ee56d Add secret key test 2023-02-15 13:30:09 +01:00
Michiel Borkent
9118c43da3 Fix #1496: add set-agent-send-executor! and set-agent-send-off-executor! 2023-02-15 11:25:05 +01:00
Michiel Borkent
c5c8086dfe
More jaxax.crypto stuff (#1495) 2023-02-15 11:01:37 +01:00
Michiel Borkent
734ca577f6 Partial fix for toString on deftype, #1494 2023-02-14 18:36:09 +01:00
Michiel Borkent
bf3623b596 Bump http-client 2023-02-14 17:01:36 +01:00
Michiel Borkent
b2f534517c deps.clj 2023-02-13 17:31:26 +01:00
Daniel Vingo
ead237eee3
Add more java classes and interfaces to support juxt.tick (#1490) 2023-02-10 10:39:54 +01:00
Michiel Borkent
30a15e16ae Bump fs 2023-02-08 11:29:17 +01:00
Bob
42fd5d851f
Don't fail build on flaky tests 2023-02-07 22:24:11 +01:00
Michiel Borkent
6d1f295f47
Fix #1487: babashka.tasks/clojure with 0 args (#1488) 2023-02-06 22:36:26 +01:00
Michiel Borkent
a1858774b6 Fix #1482: make loading of libs thread safe 2023-02-06 10:51:26 +01:00
Michiel Borkent
ab0c5bb058 Update babashka news 2023-02-05 20:31:18 +01:00
Michiel Borkent
920babb56b sci minor [skip ci] 2023-02-05 16:34:53 +01:00
Dosbol
cc0338a1e9
Added Kleene to companies (#1485) 2023-02-05 11:55:32 +01:00
Bob
a4e791e6ad
Add lib tests for xforms (#1483)
Fixes #1000
2023-02-04 23:14:35 +01:00
Michiel Borkent
02d300ee3d changelog 2023-02-04 11:05:10 +01:00
Michiel Borkent
a6d8d0179c changelog 2023-02-04 10:56:23 +01:00
Michiel Borkent
9441dabf81 Version bump 2023-02-04 10:54:53 +01:00
Michiel Borkent
842c7a0589 v1.1.173 2023-02-04 10:42:19 +01:00
Michiel Borkent
a19d05b8da
Support reader_tags.clj(c) (#1481) 2023-02-03 21:21:56 +01:00
Michiel Borkent
ca1e2d7769
Classloader interop improvements (#1480) 2023-02-03 13:08:55 +01:00
Michiel Borkent
72dbf53df7 TODO: disable :flaky tests on master branch: 2023-02-01 23:00:13 +01:00
Michiel Borkent
76e779d0d3
Compatibility with clojure.tools.namespace.repl/refresh and clojure.java.classpath (#1479) 2023-02-01 21:53:52 +01:00
Michiel Borkent
bbd1940844 SCI minor 2023-02-01 11:51:00 +01:00
Michiel Borkent
0dab6f5f3d SCI: loaded-libs support 2023-02-01 11:46:06 +01:00
Michiel Borkent
5a1b6a9f79 bump deps.edn [skip ci] 2023-01-31 19:37:21 +01:00
Michiel Borkent
722812bd61 Bump rewrite-clj 2023-01-31 19:32:29 +01:00
Michiel Borkent
2b575b1ea6 Bump http-client 2023-01-30 20:43:09 +01:00
Michiel Borkent
e9e906e09f minor [skip ci] 2023-01-30 12:05:34 +01:00
Michiel Borkent
d8f50879c8 Bump fs 2023-01-29 16:36:52 +01:00
Michiel Borkent
28f72ff4a2 Bump fs 2023-01-29 16:36:01 +01:00
Rahuλ Dé
32864476e5
Fix #1473: make :local/root deps resolve paths relative to bb.edn
Co-authored-by: Michiel Borkent <michielborkent@gmail.com>
2023-01-28 14:27:54 +01:00
Michiel Borkent
63abc75cf5 Update deps.clj 2023-01-27 17:31:55 +01:00
Michiel Borkent
b2855d1212 Bump cli 2023-01-27 13:55:46 +01:00
Michiel Borkent
bd5597a3cb Bump process to 0.4.16 2023-01-26 16:47:51 +01:00
Michiel Borkent
a79c33d7bf
Fix #1474: use UrlClassLoader for finding files on classpath (#1475) 2023-01-25 22:29:37 +01:00
Michiel Borkent
1452f45cfb Bump SCI 2023-01-24 19:38:12 +01:00
Michiel Borkent
64dcb3335d changelog 2023-01-23 20:14:47 +01:00
Michiel Borkent
c053765731 Version bump 2023-01-23 20:13:09 +01:00
Michiel Borkent
314906cb0d v1.1.172 2023-01-23 19:58:13 +01:00
Michiel Borkent
4220902927 Try fixing test on Windows 2023-01-23 18:13:47 +01:00
Michiel Borkent
4931048284 changelogs 2023-01-23 17:28:37 +01:00
Michiel Borkent
2da873a2c1 Bump process: change default for :out :append to :out :write 2023-01-23 17:27:15 +01:00
Michiel Borkent
17adc69abc Another fix for #1472 2023-01-23 17:00:20 +01:00
Michiel Borkent
a464b59bc2 Fix #1472: fix double tokenization when calling clojure from tasks 2023-01-23 16:35:51 +01:00
Michiel Borkent
7c2e8a155f babooka 2023-01-23 15:12:55 +01:00
Michiel Borkent
fa9103807d Version bump 2023-01-23 14:51:29 +01:00
Michiel Borkent
3610f52c47 v1.1.171 2023-01-23 14:28:33 +01:00
Michiel Borkent
68d041c892 changelog 2023-01-22 21:00:54 +01:00
Michiel Borkent
02cdb00e8d
Include babashka.http-client (#1471) 2023-01-22 20:52:17 +01:00
Michiel Borkent
7f44c272b8 deps resource [skip ci] 2023-01-22 19:48:26 +01:00
Michiel Borkent
5140bd4249 SCI: support add-watch on vars 2023-01-22 12:28:46 +01:00
Michiel Borkent
0be3c71772
Eftest compatibility (#1470) 2023-01-21 21:29:30 +01:00
Michiel Borkent
77878631e9 Switch clojure.test/*report-counters* to ref instead of atom 2023-01-21 17:31:53 +01:00
Michiel Borkent
28ec2c690a Support qualified method names in proxy and ignore namespace 2023-01-21 17:02:52 +01:00
Michiel Borkent
fe6042a06f Fix Outputstream proxy for kaocha 2023-01-21 16:25:39 +01:00
Michiel Borkent
6feb785cb0 changelog: mention breaking change 2023-01-21 15:41:43 +01:00
Michiel Borkent
eca7847ed9
Fix #1467: avoid printing results by default, unless --prn is enabled (#1469) 2023-01-21 15:38:50 +01:00
Michiel Borkent
430cbedbe4 Fix proxy class 2023-01-21 14:10:04 +01:00
Michiel Borkent
a5318ea289 Allow java.io.OutputStream to be proxied, for kaocha 2023-01-21 14:06:33 +01:00
Michiel Borkent
91413c2803 Fix changelog 2023-01-19 12:59:09 +01:00
Michiel Borkent
7844039861 Version bump 2023-01-19 12:55:54 +01:00
Michiel Borkent
61851a511f v1.0.170 2023-01-19 12:40:55 +01:00
Michiel Borkent
09debe0f1d Add Semaphore + httpkit functions 2023-01-19 12:29:01 +01:00
Michiel Borkent
71d0a14c26 Mark curl tests as flaky 2023-01-18 15:47:18 +01:00
Michiel Borkent
5b42de70d8
Tab compatibility (#1466) 2023-01-18 15:29:19 +01:00
Michiel Borkent
79a9bc531a Bump SCI, fixes #1465 2023-01-18 14:40:53 +01:00
Michiel Borkent
6b6d403d5e Bump CLI and fs 2023-01-18 11:35:53 +01:00
Michiel Borkent
843ca4c2d3 SCI: macroexpansion error location improvement 2023-01-14 10:59:22 +01:00
Michiel Borkent
e43edd8627 Bump babashka cli 2023-01-13 13:14:31 +01:00
Michiel Borkent
b2b20e15c1 Update asdf link 2023-01-12 15:59:45 +01:00
Michiel Borkent
004e99eaa3 Add forked asdf plugin 2023-01-11 21:44:47 +01:00
Jeroen van Dijk
4d1c05b23d
Add java.util.jar.Attributes to classes (#1464)
* Add java.util.jar.Attributes to classes

* Update Changelog
2023-01-11 13:09:12 +01:00
Michiel Borkent
6f41179849 sync deps.clj [skip ci] 2023-01-10 10:45:37 +01:00
Michiel Borkent
1810b4bd97 Marlk httpkit tests as flaky 2023-01-09 23:05:59 +01:00
Michiel Borkent
e3aa11baa8 pods: fix untar with missing dir, delete port files 2023-01-09 21:22:53 +01:00
Michiel Borkent
9b5ec623e4 news 2023-01-06 16:37:59 +01:00
Michiel Borkent
0b4bfdc3ab news 2023-01-06 16:35:09 +01:00
Michiel Borkent
96e70ff7e3 news fini 2023-01-06 15:59:17 +01:00
Michiel Borkent
eb4e583c97 news update 2023-01-06 15:14:52 +01:00
Michiel Borkent
47df0c47a1 news november 2022 2023-01-06 14:56:19 +01:00
Michiel Borkent
7de2262585 new october 2023-01-06 14:46:07 +01:00
Michiel Borkent
27fad0ac36 News september 2023-01-06 14:38:22 +01:00
Michiel Borkent
5b7213822c news august 2023-01-06 13:44:38 +01:00
Michiel Borkent
8fa49b940d CI install 2023-01-06 13:34:44 +01:00
Michiel Borkent
6c1f5f7a4d CI install instructions 2023-01-06 13:33:49 +01:00
Michiel Borkent
2a943086a6 Mark clj-http-lite tests as flaky 2023-01-05 12:34:07 +01:00
Michiel Borkent
9e1ea1071d Skip flaky tests on main 2023-01-05 12:15:20 +01:00
Michiel Borkent
a0a34dc5d8 Fix #1456 (2): add *data-readers* 2023-01-05 11:25:25 +01:00
Michiel Borkent
b9308eddcc
Fix #1456: allow dyn vars to be set in socket REPL (#1461) 2023-01-04 21:23:29 +01:00
Michiel Borkent
3aca505790
Partial fix for #1456 (nREPL issue) (#1460)
Co-authored-by: axks <alexander.kaiser@blockinfinity.com>
2023-01-04 20:46:04 +01:00
Michiel Borkent
5965e32d26 changelog 2023-01-03 22:18:32 +01:00
Michiel Borkent
e9b87b0185 Version bump 2023-01-03 22:18:00 +01:00
Michiel Borkent
91b3a962b4 v1.0.169 2023-01-03 22:04:40 +01:00
Michiel Borkent
d9358f0706 Changelog [skip ci] 2023-01-03 22:03:51 +01:00
Michiel Borkent
8e64ef9df8
Upgrade babashka spec.alpha (#1459) 2023-01-03 22:03:19 +01:00
Michiel Borkent
2ac1428341 Add compiler dynvars for compatibility 2023-01-03 19:51:03 +01:00
Michiel Borkent
efe4f214cc Fix pprinting vars 2023-01-03 13:24:27 +01:00
Michiel Borkent
bdbe5a4548 SCI: add reader-conditional 2023-01-03 12:02:14 +01:00
Rahuλ Dé
34136173d5
Add check for max glibc version (#1458)
* Add check for max glibc version

* checkout first

* tolerate subversions

* exit better

* rename ci gen script
2022-12-31 12:16:39 +01:00
Michiel Borkent
1e06b07d0f Update pods 2022-12-29 17:10:14 +01:00
Michiel Borkent
188949d7eb sci, process sync 2022-12-27 22:32:06 +01:00
Michiel Borkent
073e7e3ce0 Even better require detection 2022-12-26 13:10:26 +01:00
Michiel Borkent
39c1390085 Fix build 2022-12-26 12:58:08 +01:00
Michiel Borkent
dd77a85893 better require logging 2022-12-26 12:40:22 +01:00
Michiel Borkent
4223f1432d SCI sync 2022-12-25 12:24:23 +01:00
Michiel Borkent
68a6e24516 Fix #1454: include babashka process in print-deps output 2022-12-23 14:44:52 +01:00
Michiel Borkent
8b39f67700
SCI: cache Java interop methods (#1455) 2022-12-23 14:32:13 +01:00
Michiel Borkent
61950b87e2 SCI: faster field access 2022-12-21 12:28:47 +01:00
Michiel Borkent
df24d04f73 SCI: minor perf boost for zero args 2022-12-21 12:06:10 +01:00
Michiel Borkent
01eea0babb changelog 2022-12-20 19:48:18 +01:00
Michiel Borkent
935c8da535 Changelog + SCI update 2022-12-20 19:43:23 +01:00
Matthew Downey
62916fa292
Fix #1451: Allow passing explicit file and line number to clojure.test 2022-12-20 19:41:36 +01:00
Michiel Borkent
d9aad85476 SCI: remove intermediate code for static method call 2022-12-19 23:04:57 +01:00
Michiel Borkent
37e2da9f5b minor README 2022-12-19 14:41:13 +01:00
Michiel Borkent
2535299be8 README [skip ci] 2022-12-18 12:04:30 +01:00
Gabe
965c177bca
Fix #1280: babashka REPL doesn't quit right after ctrl-d (#1450)
the problem is that parser/parse-next waits for an enter before returning an object
we can use peek-char to pre-emptively react to any EOF at the start of the line
in case of not-start-of-line, parse-next takes over

Co-authored-by: Alice Margatroid <code@alice.bunkerlabs.net>
2022-12-14 14:57:07 +01:00
Michiel Borkent
dc2502ebae deps.clj 2022-12-14 14:46:42 +01:00
Michiel Borkent
df24cf287d Update deps.clj 2022-12-12 21:19:23 +01:00
Michiel Borkent
72377d090f Bump built-in deps.edn [skip ci] 2022-12-11 18:17:12 +01:00
Michiel Borkent
5570c416e9 v0.6.41 2022-12-11 18:06:23 +01:00
Michiel Borkent
e619a896a1 restore init 2022-12-10 20:55:31 +01:00
Michiel Borkent
38dc526680 Fix inlined alength 2022-12-10 15:18:15 +01:00
Michiel Borkent
44dbc57cda Restore inlined functions 2022-12-10 14:41:29 +01:00
Michiel Borkent
b9fa877cd7 Constructor of LazySeq 2022-12-10 12:22:22 +01:00
Michiel Borkent
f9131b2979 lazy-seq as macro 2022-12-10 12:04:28 +01:00
Michiel Borkent
ba328f2387
ns as macro (#1447) 2022-12-10 11:48:29 +01:00
Michiel Borkent
d721b925f4 Support --dev-build flag 2022-12-09 19:12:16 +01:00
Michiel Borkent
c7ccc6fedb Fix #1446: add pprint/code-dispatch 2022-12-09 18:39:51 +01:00
Thiago Kenji Okada
58dbd2b6aa Update zlib to version 1.2.13 2022-12-09 15:13:39 +00:00
Michiel Borkent
f7b235635a doc improvement 2022-12-09 13:08:03 +01:00
Michiel Borkent
7d5083ac0a Fix #1434, document installing on Alpine 2022-12-09 13:05:29 +01:00
Michiel Borkent
683752c602 Always install static binary on linux amd64 2022-12-09 12:51:33 +01:00
Michiel Borkent
5ac048157a sci: speed up case 2022-12-08 23:26:59 +01:00
Michiel Borkent
9dff25d36b process [skip ci] 2022-12-08 15:05:08 +01:00
Michiel Borkent
c931fbe294 sync process [skip ci] 2022-12-08 15:00:40 +01:00
Michiel Borkent
46b6dfd3c3 Update fs: better fix for splitting on extension 2022-12-08 13:34:30 +01:00
Michiel Borkent
3bdeee8bee sync process [skip ci] 2022-12-07 17:05:47 +01:00
Michiel Borkent
531b9383f2 Remove reference to survey 2022-12-07 11:33:40 +01:00
Michiel Borkent
facb65734e Version bump 2022-12-07 11:33:01 +01:00
Michiel Borkent
419b71e7c6 v1.0.168 2022-12-07 11:16:22 +01:00
Michiel Borkent
7cc94ea6a1 fs: don't touch dirs in split-ext 2022-12-07 11:10:41 +01:00
Michiel Borkent
69db7105e5
Support new syntax in babashka.deps/clojure (#1440) 2022-12-07 10:04:40 +01:00
Michiel Borkent
cd3252796e Add blog [skip ci] 2022-12-06 11:39:19 +01:00
Michiel Borkent
6acd912a34 Add java.util.InputMismatchException 2022-12-06 11:12:35 +01:00
Bob
cf01d7f24d
#1438: httpkit.client functions (#1439)
* expose query-string function from org.httpkit.client

* add url-encode from httpkit client ns

* cleanup and changelog
2022-12-06 11:01:52 +01:00
Michiel Borkent
bd857ae3e1 Partially revert, will revisit 2022-12-05 17:46:43 +01:00
Michiel Borkent
43375d49a2 Allow deps/clojure to be called with new syntax 2022-12-05 15:14:52 +01:00
Michiel Borkent
9087cf6311 Fix process test for bb 2022-12-04 21:43:31 +01:00
Michiel Borkent
c81babad9a Bump process 2022-12-04 20:51:08 +01:00
Michiel Borkent
952a695234 Update process 2022-12-04 20:33:54 +01:00
Michiel Borkent
a92ebfe68a Update process 2022-12-04 20:20:41 +01:00
Michiel Borkent
d681f9bc7f SCI notes 2022-12-03 14:27:47 +01:00
Michiel Borkent
9305417edc and and or as macros 2022-12-03 14:16:40 +01:00
Michiel Borkent
7b6a69f2b3
SCI: fn, defn and defmacro as macros (#1437) 2022-12-02 19:50:58 +01:00
Michiel Borkent
eb740c7c9b loop* as special form 2022-12-02 13:30:05 +01:00
Michiel Borkent
d53d05c856 Add articles to README 2022-11-30 16:51:52 +01:00
Michiel Borkent
2a56f2e5ef Version bump 2022-11-30 14:37:58 +01:00
Michiel Borkent
ade5ca1ba7 v1.0.167 2022-11-30 14:23:01 +01:00
Michiel Borkent
bc0b59500b
Fix #1433: spec source as fallback + built-in (#1435) 2022-11-30 14:10:02 +01:00
LouD
cf0f145d10
Add note about BSOD when using WSL1 (#1432) 2022-11-29 09:09:23 +01:00
Michiel Borkent
198722ab7c Bump SCI: better error locations for interop 2022-11-28 13:21:14 +01:00
ikappaki
6e00354053
Fix 1430: empty tasks names display list (#1431)
Co-authored-by: ikappaki <ikappaki@users.noreply.github.com>
2022-11-28 10:51:39 +01:00
Michiel Borkent
cb72f8ba17 Fix babashka/babashka.nrepl#59 2022-11-27 20:41:50 +01:00
Michiel Borkent
7d3d38fee1 SCI [skip ci] 2022-11-27 13:22:06 +01:00
Michiel Borkent
03e50cb17e SCI: performance improvement 2022-11-27 13:04:10 +01:00
Michiel Borkent
0671678b60 Change title of blog post [skip ci] 2022-11-24 15:09:53 +01:00
Michiel Borkent
434ee39ad9 CHANGELOG [skip ci] 2022-11-24 14:34:31 +01:00
Michiel Borkent
c67441226a Version bump 2022-11-24 14:01:06 +01:00
Michiel Borkent
6f8f205609 v1.0.166 2022-11-24 13:15:30 +01:00
Michiel Borkent
0df40a1a9a Add clojure.data/equality-partition for lambdaisland/deepdiff2 2022-11-22 11:50:53 +01:00
Michiel Borkent
4504976191 Update built-in deps.edn [skip ci] 2022-11-21 20:53:16 +01:00
Michiel Borkent
eb6745fa86 changelog [skip ci] 2022-11-20 11:34:31 +01:00
Michiel Borkent
058d2071b2 Add java.lang.Error 2022-11-20 11:26:15 +01:00
Michiel Borkent
99f1e948d3 Fix pREPL tests 2022-11-19 11:50:14 +01:00
Michiel Borkent
40e0087b59 Fix socket repl tests 2022-11-19 11:21:23 +01:00
Michiel Borkent
b458d79b29 Switch to use ctx-store for global context 2022-11-19 11:00:35 +01:00
Michiel Borkent
495ded8a50
Compatibility with cognitest test runner and tools.namespace (#1423) 2022-11-18 23:43:42 +01:00
Michiel Borkent
326b1def6b Add java.net.URLClassLoader for compatibility with java.classpath lib 2022-11-17 21:20:27 +01:00
samrose
b7e327c690
refactor: propose changing to working example found at (#1422) 2022-11-17 16:58:20 +01:00
Max Penet
759d977879
allow normalize-keywords to work on cljs files (#1421) [skip ci] 2022-11-16 17:13:13 +01:00
Max Penet
b57981bcd5
make normalize-keywords walk clj[cdx]? files in specified location (#1420) [skip ci] 2022-11-16 17:01:39 +01:00
Michiel Borkent
3751749ca3 Update keyword example [skip ci] 2022-11-16 15:49:07 +01:00
Michiel Borkent
7a22c5fa5a Update fs 2022-11-16 11:11:19 +01:00
Michiel Borkent
e08eab080e deps.clj [skip ci] 2022-11-15 18:09:33 +01:00
Michiel Borkent
0ac4eea9ee deps.clj: 1.11.1.1200 2022-11-15 18:06:16 +01:00
Michiel Borkent
885a82b736 sci docs [skip ci] 2022-11-15 17:49:03 +01:00
Michiel Borkent
d222b32d70
Upgrade timbre to 6.0.1 (#1419) 2022-11-15 17:10:52 +01:00
Michiel Borkent
8d514cc982 sci [skip ci] 2022-11-15 13:56:41 +01:00
Michiel Borkent
65d77d3555 sci [skip ci] 2022-11-15 13:14:51 +01:00
Michiel Borkent
66e90be6a7 sci [skip ci] 2022-11-15 13:01:49 +01:00
Michiel Borkent
85bb1fec76 SCI changelogs [skip ci] 2022-11-14 14:24:55 +01:00
Michiel Borkent
fc15eab795 SCI: optimize analysis and eval of fn 2022-11-14 13:56:24 +01:00
Bob
d8a0018213
Sluj tests (#1416)
* add lib test for sluj (#1269)

* changelog

* add sluj to projects.md
2022-11-13 22:07:01 +01:00
Michiel Borkent
4c3fa4c406 fs docs [skip ci] 2022-11-13 11:19:39 +01:00
Michiel Borkent
bf55d65f14 fs: update-file 2022-11-13 11:19:39 +01:00
Rahul De
4c1da7d242 [skip ci] Mark the sgerrand/alpine-pkg-glibc issue as a TODO 2022-11-13 07:54:13 +00:00
Bob
a24c8fa197
add force overwrite flag when installing glibc on alpine (#1415)
Alpine 3.16 includes /etc/nsswitch.conf, which glibc install tries to create.
This change adds the force-overwrite flag to the glibc install.
2022-11-12 20:58:32 +01:00
Michiel Borkent
6e2eaa9e87 Remove obsolete code 2022-11-12 15:46:59 +01:00
Michiel Borkent
9ed3cb6a31 Fix #1414: preserve metadata on exec task function argument map 2022-11-11 17:34:44 +01:00
Michiel Borkent
8269a632c0 changelog [skip ci] 2022-11-11 15:35:29 +01:00
Michiel Borkent
bc901fdcf0 Set java to GRAALVM 2022-11-11 15:31:35 +01:00
Michiel Borkent
a5dec07279 Build uberjar using graalvm 2022-11-11 15:14:02 +01:00
Michiel Borkent
ac1b16bfc8 SCI: preserve more stacktrace, e.g. on throw 2022-11-10 21:04:01 +01:00
Michiel Borkent
bb84bd357e Fix tests 2022-11-08 13:32:41 +01:00
Michiel Borkent
e5ee1f4a77 Fix run-test 2022-11-08 12:39:31 +01:00
Michiel Borkent
5be61476d8 meta inf [skip ci] 2022-11-08 12:38:13 +01:00
Michiel Borkent
ee5f2a7a2e Add run-test and run-test-var to clojure.test 2022-11-08 12:35:21 +01:00
Michiel Borkent
36d2ec2d87 doc [skip ci] 2022-11-05 15:56:31 +01:00
Michiel Borkent
8d9ac4c4d1 Add lib tests for Postmortem 2022-11-05 15:53:58 +01:00
Michiel Borkent
3d916df4a0 SCI: minor change to type 2022-11-02 17:46:54 +01:00
Michiel Borkent
70d9bbd10e changelog [skip ci] 2022-11-01 13:11:56 +01:00
Michiel Borkent
07030d8f89 changelogs [skip ci] 2022-11-01 13:09:28 +01:00
Michiel Borkent
9083959a5d Version bump 2022-11-01 13:04:08 +01:00
Michiel Borkent
4483ccf20b v1.0.165 2022-11-01 12:46:18 +01:00
Michiel Borkent
ce064291f3 SCI: more docstrings 2022-11-01 12:41:19 +01:00
Michiel Borkent
e31cb57a3d Add java.time.zone.ZoneRules class 2022-10-31 22:40:39 +01:00
Michiel Borkent
ccc1512bb6 SCI: fix alength 2022-10-31 20:23:11 +01:00
Michiel Borkent
8b146525f2 SCI: more docs 2022-10-31 18:18:38 +01:00
Michiel Borkent
c89300b3b5 SCI: more docstrings 2022-10-31 17:58:51 +01:00
Michiel Borkent
42d721a92f Fix tests 2022-10-31 15:52:31 +01:00
Michiel Borkent
98741c9db7 Fix tests 2022-10-31 15:27:07 +01:00
Michiel Borkent
ee85685334 Fix tests 2022-10-31 14:13:45 +01:00
Michiel Borkent
a4ba9527b9 SCI: more docstrings 2022-10-31 13:42:42 +01:00
Michiel Borkent
a035291f41 SCI: now with docstrings for core macros 2022-10-30 15:12:23 +01:00
Michiel Borkent
f5a226ab34 Add notes for detecting runtime requiring-resolve, etc [skip ci] 2022-10-27 21:01:14 +02:00
Michiel Borkent
10ec7dcf1a
Bump core.async to 673 (#1412) 2022-10-27 20:11:12 +02:00
Michiel Borkent
fc5dccc9ef sci: in-ns as function 2022-10-27 13:42:51 +02:00
Michiel Borkent
9de689c623 deps.clj 1.11.1.1182 2022-10-26 19:46:57 +02:00
Andrea Richiardi
eaf0a068f3
Link pod registry to Pods section in README (#1411)
In the `Pods` section we were pointing to a place with a slightly outdated list of projects. This patch adds the correct link to the pod registry.
2022-10-26 18:15:12 +02:00
Michiel Borkent
bca3f28e28
Graalvm 22.3.0 (#1408) 2022-10-25 22:56:57 +02:00
Michiel Borkent
b452c1d94a changelog 2022-10-25 11:11:31 +02:00
Michiel Borkent
cf93651e8e
Add java.net.URLConnection 2022-10-25 11:05:47 +02:00
Bob
1cf8321960
Add fs lib test (#1406) 2022-10-24 22:23:24 +02:00
Michiel Borkent
a141998f55 deps.clj: jar check 2022-10-24 12:07:30 +02:00
Michiel Borkent
5566a7869f Fix #1405: drop name metadata from conditionally defined var 2022-10-23 20:07:53 +02:00
Michiel Borkent
17c9003e2a SCI: don't rely on metadata for record implementation 2022-10-22 20:08:18 +02:00
polemius
16ea1e8f95
Fix small typo (#1404) 2022-10-21 10:43:46 +02:00
Michiel Borkent
1ead74a501 SCI: fix node test [skip ci] 2022-10-21 10:21:09 +02:00
Michiel Borkent
e3b55b5f47 SCI [skip ci] 2022-10-21 10:16:54 +02:00
Michiel Borkent
a61c2721d7 SCI: restore do recur warning 2022-10-20 23:20:55 +02:00
Michiel Borkent
74c26084e3
Fix #1401: mutation of deftype field should be visible in protocol method (#1402) 2022-10-20 21:36:45 +02:00
Michiel Borkent
b409d663ff deps.clj: revert non-upstream change 2022-10-20 17:35:13 +02:00
Michiel Borkent
9cd1f71b76 deps.clj: stale classpath 2022-10-20 12:05:52 +02:00
Michiel Borkent
81e837006e Version bump 2022-10-18 18:22:39 +02:00
Michiel Borkent
5cdeb09a17 v1.0.164 2022-10-18 18:05:59 +02:00
Michiel Borkent
0e57b9d461
Fix #1330: allow *warn-on-reflection* in programmatic nREPL (#1398) 2022-10-18 17:54:38 +02:00
Michiel Borkent
351723fdb6 Fix #1384: allow .indexOf on LazySeq 2022-10-18 17:32:22 +02:00
Michiel Borkent
b6f19b03dc Fix #1397: clojure.lang.Namespace 2022-10-18 17:27:17 +02:00
Michiel Borkent
94aab46855 sci 2022-10-18 17:18:05 +02:00
Michiel Borkent
b6dffe3f87 manifest [skip ci] 2022-10-18 16:46:14 +02:00
Michiel Borkent
bfe59b57d0 SCI: simplify do 2022-10-18 16:42:00 +02:00
Michiel Borkent
e283a87b4c SCI: or/and 2022-10-18 14:08:25 +02:00
Michiel Borkent
9ca24ffce4
SCI: optimize let (#1396) 2022-10-18 12:20:02 +02:00
Michiel Borkent
1e9cc9f203 submodules 2022-10-14 12:34:04 +02:00
Michiel Borkent
7c15b04fa2 Fix tests 2022-10-12 13:06:48 +02:00
Michiel Borkent
33bee0480d Fix #1391: fix var name 2022-10-12 13:00:56 +02:00
Michiel Borkent
ed22bb573b Fix #1391: support loading hiccup.page from source 2022-10-12 12:59:37 +02:00
Michiel Borkent
682f8514fb #1391: include raw in hiccup2.core ns 2022-10-12 12:47:03 +02:00
Michiel Borkent
c2b3fea9fc Bump tools.cli 2022-10-12 12:42:27 +02:00
Michiel Borkent
471ed01cae Bump babashka CLI 2022-10-12 12:33:47 +02:00
Bob
9241c81238
doc additions/cleanups [skip ci] (#1388) 2022-10-10 17:04:15 +02:00
Michiel Borkent
863c6051bd Add process alive? 2022-10-07 12:40:16 +02:00
Michiel Borkent
5bb2d2f8bd process: add alive? - thanks @grzm 2022-10-07 12:23:22 +02:00
Michiel Borkent
87e9e0861c Upgrade graalvm in cirrus 2022-10-06 14:16:20 +02:00
Michiel Borkent
2dac7847a8 Fix #1369: provide .sha256 files for every released asset 2022-10-06 14:12:58 +02:00
Michiel Borkent
851e1f5eb0 Bump CLI 2022-10-06 12:55:09 +02:00
Michiel Borkent
ec842c942d process: only slurp err when inputstream (@ikappaki) 2022-10-05 19:56:09 +02:00
Baishampayan Ghose
77768cec67
feat: Honor *print-namespace-maps* in pprint (#1387)
We can now use the dynamic var `*print-namespace-maps*` to control how
maps with namespaced keys are printed using `pprint`.

Fixes: #1381
2022-10-04 19:11:59 +02:00
Michiel Borkent
9fba927ec8 sci: print-namespace-maps 2022-10-04 16:53:40 +02:00
Rahuλ Dé
7e77ab5633
Update contajners to latest (#1382) 2022-10-03 16:13:14 +02:00
Michiel Borkent
2b3e7df2e9 Fix tests 2022-10-03 15:34:47 +02:00
Michiel Borkent
80a8ee1b7e Don't let orchestra nuke other spec tests 2022-10-02 13:24:06 +02:00
Michiel Borkent
465ea247eb process and sci 2022-10-02 13:14:15 +02:00
Michiel Borkent
c94960eac1 deps.clj: support for CLJ_JVM_OPTS and JAVA_OPTS 2022-09-30 12:05:43 +02:00
Michiel Borkent
c081367304 Fix pod test 2022-09-29 10:05:43 +02:00
Michiel Borkent
8170fd7675 pods: print + flush for out and err, thanks @justone 2022-09-29 09:31:13 +02:00
Rahuλ Dé
0684119000
Mark bb.edn load exception (#1378)
* Mark bb.edn load exception

* print to stderr

* print with binding
2022-09-28 15:48:35 +02:00
Rahuλ Dé
8352448611
check if supplied deps is non-empty (#1377) 2022-09-28 13:12:05 +02:00
Michiel Borkent
8fdefb99b9 Go back to clj-commons/clj-yaml 2022-09-26 12:17:32 +02:00
Crispin Wellington
e6f6b02c06
Add single arg read method to PipedInputStream proxy (#1372)
* reify java.lang.Object with optional toString and finalize

* add single argument read method to PipedInputStream proxy

* update changelog

Co-authored-by: Michiel Borkent <michielborkent@gmail.com>
2022-09-26 10:52:59 +02:00
Michiel Borkent
7baa0542ec CHANGELOGS [skip ci] 2022-09-24 13:56:46 +02:00
Michiel Borkent
4b1e02c6c7 CHANGELOGS [skip ci] 2022-09-24 13:56:25 +02:00
Michiel Borkent
9e8571cd08 CHANGELOGS [skip ci] 2022-09-24 13:54:26 +02:00
Michiel Borkent
89e8dfdf32 Version bump 2022-09-24 13:53:54 +02:00
Michiel Borkent
e2a8f03d21 v0.10.163 2022-09-24 13:27:04 +02:00
Michiel Borkent
020d42a94f Fix #808: -Sdeps 2022-09-24 13:25:06 +02:00
Michiel Borkent
eed298f4a4 Changelog [skip ci] 2022-09-24 12:41:00 +02:00
Michiel Borkent
0c87ed2312 Use clj-yaml with fixes 2022-09-24 12:34:07 +02:00
Bob
78cbdd1d82
#1336: --force as global opt (#1374) 2022-09-24 10:59:34 +02:00
Michiel Borkent
42ebb92c5d exec tests 2022-09-23 21:26:37 +02:00
Michiel Borkent
7b563dd802 exec-test [skip ci] 2022-09-23 21:18:52 +02:00
Michiel Borkent
2ff0304821 changelog [skip ci] 2022-09-23 20:55:23 +02:00
Michiel Borkent
2ffbef09d8 process [skip ci] 2022-09-23 17:12:04 +02:00
Michiel Borkent
525f73f822 process 2022-09-23 17:02:13 +02:00
Michiel Borkent
fd3f4a100a process: exit-fn 2022-09-23 13:14:27 +02:00
Michiel Borkent
a9f0483869 Bump CLI 2022-09-22 20:58:36 +02:00
Michiel Borkent
3110dde2ab Fix #1368: -x: do not pick up on aliases in user ns 2022-09-22 20:05:22 +02:00
Michiel Borkent
848683f82d sci 2022-09-22 18:14:07 +02:00
Lee Read
d2c8696039
Make a "babashka built-in" badge available (#1366)
* Make a "babashka built-in" badge available

Of note: added markdown and adoc syntaxes for badges to README.

Closes #1365

* Moved flair section under new badges section

Badges themselves act as headings under badges section.
Reworded badges text for 2 audiences.
1. The general bb user who wants to know what they mean.
2. The library author who might want to display them.

Renamed "Projects" heading to "Compatible Projects"
2022-09-22 17:40:15 +02:00
Michiel Borkent
92a8042f97 changelog 2022-09-22 14:05:50 +02:00
Michiel Borkent
c3f61bdc34 changelog 2022-09-22 14:05:42 +02:00
Michiel Borkent
3b5dbb7c66 Fix #1367: line number in clojure.test output 2022-09-22 14:03:48 +02:00
Wes Morgan
aa0da8f503
Map (on)to-chan!(!) core.async fns (#1371)
* Map (on)to-chan!(!) core.async fns

These are recent replacements for their deprecated predecessors onto-chan & to-chan.

* Add note to changelog about #1370 fix
2022-09-21 21:46:03 +02:00
Michiel Borkent
00dee39196 sci [skip ci] 2022-09-21 16:38:19 +02:00
Michiel Borkent
06d6e97927 sci protocol docs 2022-09-21 12:50:07 +02:00
Michiel Borkent
3bc5bcab5b Bump process 2022-09-20 12:10:08 +02:00
Michiel Borkent
3b9163cde9 Bump clojure.xml 2022-09-19 14:01:10 +02:00
Michiel Borkent
621130960b Bump deps.clj 2022-09-18 21:38:23 +02:00
Michiel Borkent
739f05cc5e CHANGELOGS [skip ci] 2022-09-18 12:51:02 +02:00
Michiel Borkent
b84ecd5da7 CHANGELOG [skip ci] 2022-09-18 12:48:21 +02:00
Michiel Borkent
2f146bd712 Fix #1364: Be tolerant of unknown tags in bb.edn 2022-09-18 12:29:16 +02:00
Eero Helenius
4926aaf85f
Add and expose babashka.classes/all-classes (#1362)
* Add and expose babashka.classes/all-classes

* Add test for babashka.classes/all-classes
2022-09-13 10:54:30 +02:00
Michiel Borkent
d0d36a2bc4 Bump clj-yaml 2022-09-13 10:19:52 +02:00
Michiel Borkent
1a700f6a69 Add -x help 2022-09-12 14:19:47 +02:00
Michiel Borkent
1631349fb6 pods: TCP_NODELAY 2022-09-12 12:43:49 +02:00
Eero Helenius
9566a7d1f1
Add more reflection class methods (#1361) 2022-09-09 20:55:11 +02:00
Michiel Borkent
03b1bfa80f sci tweaks 2022-09-09 20:51:25 +02:00
Michiel Borkent
e1094e1529
Add more reflection classes (#1360) 2022-09-09 20:24:37 +02:00
Michiel Borkent
267646fbe7 Fix gc test 2022-09-09 18:13:40 +02:00
Crispin Wellington
ea4f56886d
Expose a subset of java.lang.ref to enable hooking into the destruction/GC of objects (#1359)
* reify java.lang.Object with optional toString and finalize

* reify java.lang.Runnable

* reflection support for java.lang.Runnable

* java.lang.ref.* class exposure

* test for detection of garbage collection of Object

* added change to changelog
2022-09-09 17:25:32 +02:00
Michiel Borkent
c4c76d58ac fix exec 2022-09-09 16:00:22 +02:00
Michiel Borkent
e3e855f7ae SCI 2022-09-09 14:28:20 +02:00
Michiel Borkent
55ffa95b7d pods issue 52 2022-09-07 21:24:27 +02:00
Wes Morgan
a592104bc5
Fix download-only? fn & use new env var names (#1357) 2022-09-07 21:08:53 +02:00
Michiel Borkent
ef84df8bc9 Revert "pods: allow downloading for other os"
This reverts commit 57a6249dcb.
2022-09-07 20:02:06 +02:00
Michiel Borkent
57a6249dcb pods: allow downloading for other os 2022-09-07 19:48:15 +02:00
Michiel Borkent
42f79d0db3 Expose clojure.main/with-bindings 2022-09-07 19:29:11 +02:00
Eero Helenius
8afd672a20
Add ThreadPoolExecutor rejection policy classes (#1356) 2022-09-07 19:19:42 +02:00
Wes Morgan
c97fb958dc
Only download pods when os.name / os.arch don't match (#1354) 2022-09-07 17:11:06 +02:00
Eero Helenius
dcae949496
Add clojure.core.server/stop-server (#1355) 2022-09-07 16:45:04 +02:00
Michiel Borkent
d91eadbc9c Add ns-unalias 2022-09-07 15:09:59 +02:00
Michiel Borkent
086a5eb5a2 Add AtomicInteger and Long to full interop 2022-09-06 19:52:33 +02:00
Michiel Borkent
2400fc7be0 Add PrintWriter-on 2022-09-06 19:38:32 +02:00
Michiel Borkent
1197f4feec Add interceptor tests 2022-09-06 14:56:26 +02:00
Michiel Borkent
f116b493be process 2022-09-06 10:33:32 +02:00
Michiel Borkent
ea36bbecb9 add auspex tests to CI 2022-09-06 10:31:53 +02:00
Michiel Borkent
cd54d2a911
Improve reify error messages (#1352)
Co-authored-by: Crispin Wellington <retrogradeorbit@gmail.com>
2022-09-06 10:24:15 +02:00
Michiel Borkent
3e2738201c
auspex compatibility (#1351) 2022-09-05 22:59:31 +02:00
Michiel Borkent
18e19934d1 Fix #1350: map clojure.lang.Var to sci.lang.Var 2022-09-05 20:59:37 +02:00
Michiel Borkent
ef41365656 require core.async in time 2022-09-05 18:16:44 +02:00
Michiel Borkent
3afd85ccb3 expose core async ManyToManyChannel 2022-09-05 18:13:25 +02:00
Michiel Borkent
cae237e42a fs: write-lines 2022-09-05 17:01:09 +02:00
Michiel Borkent
2ca3b2ecc5 fs: write-bytes 2022-09-05 13:54:50 +02:00
Michiel Borkent
bebd20c088 CHANGELOG [skip ci] 2022-09-04 23:26:13 +02:00
Michiel Borkent
d15d38df8a CHANGELOG [skip ci] 2022-09-04 23:25:54 +02:00
Michiel Borkent
fc3f178c7e CHANGELOG [skip ci] 2022-09-04 23:24:21 +02:00
Michiel Borkent
8ef3bb08a8 Version bump 2022-09-04 23:22:52 +02:00
Michiel Borkent
75994d5134 Trigger another release build 2022-09-04 23:09:37 +02:00
Michiel Borkent
38feb35a53 changelog 2022-09-04 22:56:51 +02:00
Michiel Borkent
1200d5625c v0.9.162 2022-09-04 22:56:08 +02:00
Michiel Borkent
191c6b75a8 Another fix for #1339 2022-09-04 22:43:08 +02:00
Michiel Borkent
e285d970c7 changelogs [skip ci] 2022-09-04 21:39:39 +02:00
Michiel Borkent
52c60e7928 Fix #1339: SCI 2022-09-04 21:31:15 +02:00
Michiel Borkent
ccfa50b2bc
Fix #1338: add-watch segfault 2022-09-03 13:51:07 +02:00
Michiel Borkent
d5c76f774e deps.clj fix for windows exe in JAVA_HOME, thanks @Jacob-Kroeze 2022-09-03 11:59:15 +02:00
Michiel Borkent
4a42ba938f sci: minor 2022-09-02 22:30:47 +02:00
Michiel Borkent
6cdc002423 Fix #1322: better error location in tasks 2022-09-02 22:22:27 +02:00
Michiel Borkent
9b2435557d Revert "Fix #1322: improve error location"
This reverts commit 6e92c99f31.
2022-09-02 21:40:14 +02:00
Michiel Borkent
6e92c99f31 Fix #1322: improve error location 2022-09-02 21:15:27 +02:00
Michiel Borkent
c77944fad7 Bump clj-yaml 2022-09-02 11:08:33 +02:00
Michiel Borkent
813c6029c5 deps.clj 2022-09-01 21:27:33 +02:00
Michiel Borkent
4dc084502a process docs [skip ci] 2022-09-01 14:15:53 +02:00
Michiel Borkent
2150cb1e06 fs + sci 2022-08-31 17:57:24 +02:00
Michiel Borkent
57b88f2141 deps.clj [skip ci] 2022-08-30 11:12:50 +02:00
Michiel Borkent
6035a46b3a SCI upgrade 2022-08-26 11:29:42 +02:00
Lee Read
464a000b1b
Add exception classes useful for clj-http-lite (#1346)
* Add exception classes useful for clj-http-lite

Closes #1345

* update changelog
2022-08-26 09:45:12 +02:00
Michiel Borkent
d27fc0d2d6 Fix #1343: postgresql feature 2022-08-23 17:40:28 +02:00
Michiel Borkent
b5a17b3af7 fs/sci 2022-08-23 17:28:43 +02:00
Michiel Borkent
1eaa094e9b fs 2022-08-13 11:10:18 +02:00
Michiel Borkent
306d97f4ef Update babashka cli 2022-08-13 11:10:01 +02:00
Michiel Borkent
33569df040 update fs: expose :win-exts 2022-08-11 22:18:18 +02:00
Michiel Borkent
72864a18d6 bb.nrepl: preserve stacktrace on exception 2022-08-11 20:52:11 +02:00
Michiel Borkent
a7a84e872e fs issue 68 2022-08-09 16:41:49 +02:00
Michiel Borkent
5823a08d51 Bump deps.clj 2022-08-06 14:21:15 +02:00
Michiel Borkent
1b3c90870d Update rewrite-clj 2022-08-05 14:41:39 +02:00
Radford Smith
55ff3bcf98
README: Add link to babashka.org from logo (#1333) 2022-08-04 16:59:35 +02:00
Michiel Borkent
b4b0ee87fe
Marker protocol + satisfies fix (#1331) 2022-08-02 23:42:10 +02:00
Michiel Borkent
42f9440d85 last try 2022-08-02 23:19:59 +02:00
Michiel Borkent
a201788087 xcode 2022-08-02 23:16:46 +02:00
Michiel Borkent
f9327c04ca bump xcode 2022-08-02 23:12:53 +02:00
Michiel Borkent
ddee3847bf sci 2022-08-02 23:07:04 +02:00
Michiel Borkent
765a9c0846 Version bump 2022-07-31 14:20:40 +02:00
Michiel Borkent
4aa352c94a v0.9.161 2022-07-31 13:57:10 +02:00
Michiel Borkent
b0de4a79a4 fix exec 2022-07-31 13:57:00 +02:00
Michiel Borkent
de43917140 the-var 2022-07-31 13:42:44 +02:00
Michiel Borkent
c4f2d45f08 CHANGELOG 2022-07-29 21:32:36 +02:00
Michiel Borkent
2c3b1095c8 Version bump 2022-07-29 21:18:27 +02:00
Michiel Borkent
0cdb897f4f changelogs 2022-07-29 21:18:20 +02:00
Michiel Borkent
c97b08425a v0.9.160 2022-07-29 21:03:24 +02:00
Michiel Borkent
0608c71687 Make exec a function instead 2022-07-29 21:03:07 +02:00
Michiel Borkent
2a01f8720e Add note [skip ci] 2022-07-29 15:05:23 +02:00
Michiel Borkent
774b2d5d3d Version bump 2022-07-29 13:27:27 +02:00
Michiel Borkent
1bd2c18d5e changelog 2022-07-29 13:10:24 +02:00
Michiel Borkent
245a5bfaad v0.9.159 2022-07-29 13:10:01 +02:00
Michiel Borkent
dc30728f68 Version bump 2022-07-29 13:09:33 +02:00
Michiel Borkent
e8ca180529 make compatible with init 2022-07-29 13:09:00 +02:00
Michiel Borkent
05d105716a improve snippet 2022-07-29 13:04:48 +02:00
Michiel Borkent
781cc929dd v0.9.158 2022-07-29 12:57:23 +02:00
Michiel Borkent
8d24f70d73 task integration 2022-07-29 12:51:43 +02:00
Michiel Borkent
1b3adaaf64 -x 2022-07-29 12:23:28 +02:00
Michiel Borkent
dc5b36bbe6 bundle babashka cli 2022-07-29 12:00:58 +02:00
Michiel Borkent
5c03eef36b sci update 2022-07-27 17:32:38 +02:00
Michiel Borkent
e58fe9db1b
Upgrade to GraalVM 22.2.0 (#1325) 2022-07-27 12:20:32 +02:00
Michiel Borkent
9e57cb4430 Add article 2022-07-23 14:06:38 +02:00
Michiel Borkent
5c246ccccb process: improve tokenize 2022-07-16 17:02:23 +02:00
Michiel Borkent
cde09afa10 news 2022 7 2022-07-15 23:39:32 +02:00
Michiel Borkent
9c92500297 news 2022 7 2022-07-15 23:39:02 +02:00
Michiel Borkent
19f58fca83 news 2022 7 2022-07-15 23:35:54 +02:00
Michiel Borkent
55ba655fab news 2022 7 2022-07-15 23:34:41 +02:00
Michiel Borkent
4a76fd050d news 2022 7 2022-07-15 23:33:20 +02:00
Michiel Borkent
30dcb2ad86 news 2022 7 2022-07-15 23:29:37 +02:00
Michiel Borkent
8aba3ffc2d news 2022 6 2022-07-15 23:19:34 +02:00
Michiel Borkent
bf06830353 news 2022 5 2022-07-15 23:10:12 +02:00
Michiel Borkent
536f39d435 news 04 22 2022-07-15 23:06:05 +02:00
Michiel Borkent
ac9b249cc8 news 2022-07-15 21:44:23 +02:00
Michiel Borkent
8f447cf43b partial news 03 2022 2022-07-15 21:35:28 +02:00
Michiel Borkent
3cf09e12fa news 03 2022 2022-07-15 21:30:23 +02:00
Michiel Borkent
dca1d2693c news for jan 2022 2022-07-15 21:21:24 +02:00
Michiel Borkent
0ab0cb2410 news 2022-07-15 21:09:25 +02:00
Michiel Borkent
e1544f3d65 SCI with different CLJS analyzer loading 2022-07-13 10:45:06 +02:00
Michiel Borkent
4e2ef2f152
sci: needs-ctx refactor (#1319) 2022-07-11 13:00:19 +02:00
Michiel Borkent
e20ba643ff
Sci issue 774 interpreter stacktrace (#1318) 2022-07-11 11:52:14 +02:00
Michiel Borkent
22763c6485 sync process and sci [skip ci] 2022-07-08 23:16:42 +02:00
Rahuλ Dé
00ea105d4a
Skip cirrus (#1315)
* skip cirrus on irrelevant chnages

* wrong expr
2022-07-06 21:43:59 +02:00
Rahuλ Dé
3dfcc74324
skip appveyor on irrelevant files (#1314)
* skip appveyor on irrelevant files

* YAML?
2022-07-06 21:25:38 +02:00
Brandon Stubbs
d18ecbd22f
add bb-github-app project (#1313) 2022-07-06 20:50:16 +02:00
Michiel Borkent
38185d5658 bb process [skip ci] 2022-07-04 21:29:22 +02:00
Michiel Borkent
21fd8e3a3f bb process 2022-07-04 21:10:44 +02:00
Michiel Borkent
cdbe07ad45 bb process 2022-07-04 21:01:14 +02:00
Michiel Borkent
32ac3c5398
Manifest dir with env var (#1312) 2022-07-04 19:59:04 +02:00
Rahuλ Dé
e7c504b331
skip logo paths and in actions (#1311)
* skip logo paths and in actions

* [skip ci] Keep CI happy
2022-07-04 08:43:56 +02:00
Michiel Borkent
7b10adc69a Add schema 2022-07-03 13:46:23 +02:00
Michiel Borkent
4aa6cfc472 Add to projects 2022-07-03 13:42:45 +02:00
Michiel Borkent
90add0e787 Meander tests 2022-07-03 13:41:30 +02:00
Michiel Borkent
1a48bdf4bc Add malli to project 2022-07-03 13:31:02 +02:00
Michiel Borkent
16e427848d Add malli tests 2022-07-03 13:14:25 +02:00
Michiel Borkent
01e414c4d1 defn metadata tweak 2022-07-03 13:03:08 +02:00
José Luis Lafuente
f044ba15cd
Fix misspelling: BABAHSKA -> BABASHKA (#1308) 2022-07-03 13:02:15 +02:00
Michiel Borkent
f8b0a00a17 SCI: preserve file metadata in defn 2022-07-03 12:38:55 +02:00
Michiel Borkent
53aa17dbde SCI: don't eval metatada on defn body 2022-07-03 12:19:25 +02:00
Michiel Borkent
abc15c4959 Version bump 2022-07-01 13:12:24 +02:00
Michiel Borkent
0751e39eac v0.8.157 2022-07-01 12:46:22 +02:00
Michiel Borkent
833318edb2 Flair [skip ci] 2022-07-01 11:59:01 +02:00
Michiel Borkent
9cbdc8f767 Flair [skip ci] 2022-07-01 11:40:43 +02:00
Michiel Borkent
0c9ddadd90 Flair [skip ci] 2022-07-01 11:39:24 +02:00
Michiel Borkent
2688156b78 Add raw HTML to README 2022-07-01 11:35:07 +02:00
Michiel Borkent
3f404746b4
Support Java classes for Malli (#1304) 2022-06-30 17:54:47 +02:00
Michiel Borkent
f491d02ba0 sci: deftype with mutable fields 2022-06-30 14:21:06 +02:00
José Luis Lafuente
3564cac6b3
Fix misspelling (#1303) 2022-06-29 22:48:19 +02:00
Michiel Borkent
04f16e220c Add logo [skip ci] 2022-06-27 20:15:57 +02:00
Michiel Borkent
e651de400a Update deps.clj tools jar to 1.11.1.1149 2022-06-27 17:19:27 +02:00
Michiel Borkent
aec2848e24 Fix nrepl server built-in 2022-06-25 21:30:34 +02:00
Michiel Borkent
72e9b6ceee process update 2022-06-25 21:21:27 +02:00
Michiel Borkent
6259797f6a SCI 0.3.32 2022-06-23 16:58:48 +02:00
Michiel Borkent
0b471636e1 logo [skip ci] 2022-06-22 12:03:31 +02:00
Rahuλ Dé
512dbf9ea5
Optimise executors when shorted (#1301)
* Optimise executors when shorted

* Test short

* Also handle mac

* Test short
2022-06-21 15:32:23 +02:00
Rahuλ Dé
b5dea3563d
Pass correct arch (#1300)
* [wip] pass correct arch

* [wip] pass arch only when aarch64

* [skip ci] add branch filter back to docker
2022-06-20 22:20:50 +02:00
agata-anastazja
381b9f0a4f
use dynamic configuration to short CI (#1294) 2022-06-20 20:03:03 +02:00
Michiel Borkent
7769675648 sci [skip ci] 2022-06-20 12:49:01 +02:00
Odd A
573db8ea79
Exposing babashka.nrepl.server-functions (#1297)
Co-authored-by: Odd Andreas Sørsæther <odd.andreas.sorsether@nav.no>
Co-authored-by: Odd Andreas Sørsæther <odd.andreas@ardoq.com>
2022-06-20 12:48:31 +02:00
Michiel Borkent
9ed705f8db Pod namespaces come before namespaces from source 2022-06-20 12:14:48 +02:00
Michiel Borkent
0a55554bb8 SCI: preserve docstring 2022-06-19 23:03:01 +02:00
Michiel Borkent
cc2c682e79 SCI now has memfn 2022-06-19 22:41:52 +02:00
Michiel Borkent
56d2c2b7d5 sci [skip ci] 2022-06-19 20:38:49 +02:00
Michiel Borkent
14b177ad21 Add schema tests to CI, fixes #1296 2022-06-15 21:13:53 +02:00
Michiel Borkent
39f057b3ae SCI update 2022-06-15 17:58:58 +02:00
Michiel Borkent
115f89ac81 Fix feature map 2022-06-09 08:52:21 +02:00
Michiel Borkent
34bd4edf1e CHANGELOGS [skip ci] 2022-06-08 20:15:44 +02:00
Michiel Borkent
ebdbd9ea00 Version bump 2022-06-08 20:06:28 +02:00
Michiel Borkent
e979765275 CHANGELOGS 2022-06-08 20:06:21 +02:00
Michiel Borkent
60da44512e v0.8.156 2022-06-08 19:40:56 +02:00
Michiel Borkent
e290c3c2e0 SCI: defprotocol symbol 2022-06-08 19:16:51 +02:00
Michiel Borkent
ba0ce4ca23 Update 2022-06-08 17:44:50 +02:00
Michiel Borkent
30ebdfb6e0 SCI: record in syntax quote resolves to Type 2022-06-08 17:41:23 +02:00
Michiel Borkent
ecdf952b23 Bump sci 2022-06-08 14:09:04 +02:00
Michiel Borkent
ed0875b52b install script [skip ci] 2022-06-07 23:12:33 +02:00
Michiel Borkent
3c7468b6de cirrus 2022-06-07 22:55:47 +02:00
Michiel Borkent
c0d4127b57 cirrus 2022-06-07 22:24:57 +02:00
Michiel Borkent
f0a9e2b88c cirrus 2022-06-07 22:16:30 +02:00
Michiel Borkent
1669983cb2 github token 2022-06-07 22:15:36 +02:00
Michiel Borkent
05223adf7e release 2022-06-07 21:49:00 +02:00
Michiel Borkent
9698ddae61 cirrus 2022-06-07 21:37:25 +02:00
Michiel Borkent
83c4ccff2c short always 2022-06-07 20:21:38 +02:00
Michiel Borkent
826b955543 Add cirrus 2022-06-07 20:18:42 +02:00
Michiel Borkent
47ceae0ba0 process/exec: arg0 2022-06-06 22:25:12 +02:00
Michiel Borkent
201370275e Bump Clojure to 1.11.1 2022-06-01 15:42:09 +02:00
Michiel Borkent
8e3f22db7a
Migrate to sci.lang.Var (#1285) 2022-05-30 22:07:12 +02:00
Michiel Borkent
5ec6fca29a pods: fix benign socket closed exception 2022-05-30 10:11:54 +02:00
Rahuλ Dé
35b8204704
Use extracted CI short script (#1284)
* Use extracted CI short script

* Use clojure build env

* Update build script
2022-05-29 22:58:09 +02:00
Michiel Borkent
40fdb19c95
SCI record "classes" are now instance of sci.lang.Type (#1283) 2022-05-29 11:40:05 +02:00
agata-anastazja
94034063db
Skip CI run if commit only documentation changes (#1282) 2022-05-28 22:01:20 +02:00
Michiel Borkent
b8a3d2447c api docs updates [skip ci] 2022-05-28 16:05:16 +02:00
Michiel Borkent
162ca90287 Add process/shell binding 2022-05-28 11:38:55 +02:00
Michiel Borkent
a858269c74 fix #1281: upgrade httpkit to 2.6.0-RC1 2022-05-28 11:25:51 +02:00
Michiel Borkent
6442487110 bb.process 0.1.3 2022-05-28 11:24:16 +02:00
Michiel Borkent
cfdb4f69e6 deps.edn update [skip ci] 2022-05-27 13:40:59 +02:00
Michiel Borkent
17c047418e
Add support for sun.misc.SignalHandler (#1276) 2022-05-27 13:26:40 +02:00
Michiel Borkent
92b4dc7620 Bump cheshire 2022-05-26 23:12:58 +02:00
Rahuλ Dé
cb4cbb6691
inline bb badge (#1275) [skip ci] 2022-05-24 14:24:06 +02:00
Sohalt
d81e58cf43
Add documentation for usage with nix (#1274) [skip ci] 2022-05-23 18:10:45 +02:00
Michiel Borkent
818ea38a82 Roll back sci.runtime 2022-05-23 08:57:14 +02:00
Michiel Borkent
09284932e4 Add sci.runtime 2022-05-22 21:41:29 +02:00
Michiel Borkent
8b3698063f fs: strip and split-ext less reliant on file system 2022-05-22 12:28:06 +02:00
Michiel Borkent
d547fbf31a fs/read-all-lines, support charset 2022-05-22 12:20:19 +02:00
Michiel Borkent
f1019384b1 bb.nrepl: fix completions for static interop 2022-05-20 15:04:08 +02:00
Michiel Borkent
9f6ffcf11c SCI update 2022-05-20 14:38:01 +02:00
Thiago Kenji Okada
20e6b447b2
Add installation instructions using nix (#1272) [skip ci] 2022-05-20 13:12:59 +02:00
Michiel Borkent
0f8458fd03 SCI: default pprint impl for SCI records 2022-05-20 11:43:35 +02:00
Michiel Borkent
7bf2ca0e57 babashka/sci#745: syntax quote for import record 2022-05-20 11:37:49 +02:00
Michiel Borkent
6089496d9c babashka/sci#744: syntax quote for records should return class repr 2022-05-19 21:35:24 +02:00
Michiel Borkent
8a25716ef4 Fix symbolic representation of records 2022-05-19 21:19:42 +02:00
Michiel Borkent
55f96e69fe fix babashka/sci#743: satisfies? of marker protocol via extend-{type, protocol} 2022-05-19 21:04:44 +02:00
Michiel Borkent
b288abc542 SCI: simple-dispatch 2022-05-19 12:11:24 +02:00
Michiel Borkent
77b75fe0b9 SCI: marker protocol on record 2022-05-19 11:13:59 +02:00
Michiel Borkent
eea1cdadee SCI: preserve closed over value analysis when using fixed + varargs arity 2022-05-19 10:23:47 +02:00
Michiel Borkent
ab503951da SCI: fix resolving of class 2022-05-18 23:08:33 +02:00
Michiel Borkent
27189657a8 SCI: custom record impl, fixes record equiv and with-meta 2022-05-18 17:31:07 +02:00
Michiel Borkent
9b611a42fe docs [skip ci] 2022-05-17 16:56:32 +02:00
Michiel Borkent
0d88606c9d process: improve tokenize 2022-05-17 11:06:01 +02:00
Michiel Borkent
7b729c5f4b fly io docs [skip ci] 2022-05-16 14:18:32 +02:00
Michiel Borkent
1794fe9dd4 fly io docs [skip ci] 2022-05-16 14:16:26 +02:00
Michiel Borkent
a977f04181 AbstractMethodError 2022-05-16 10:55:33 +02:00
Michiel Borkent
2c79e9dd30 AFunction 2022-05-16 10:45:40 +02:00
Michiel Borkent
f9ca314c31 sci 2022-05-16 10:03:35 +02:00
Michiel Borkent
861066082f Print-dup 2022-05-15 21:44:08 +02:00
Michiel Borkent
6cf1a3ff6a
SCI: use explicit global print-method (#1268) 2022-05-15 14:23:16 +02:00
Michiel Borkent
063a0b01c6 sync pods [skip ci] 2022-05-14 20:17:43 +02:00
Michiel Borkent
3b94b51780 pods update 2022-05-14 18:44:22 +02:00
Michiel Borkent
c1539fe3b0
Some additions that at least make plumatic/schema run partially (#1267) 2022-05-14 13:10:16 +02:00
Michiel Borkent
f8657cd59f Add note [skip ci] 2022-05-13 13:42:32 +02:00
Michiel Borkent
8506c30507 CHANGELOGS [skip ci] 2022-05-13 11:07:11 +02:00
Michiel Borkent
96d93d3940
fix #1264: add support for calling ScheduledExecutorService 2022-05-13 11:04:33 +02:00
Michiel Borkent
5d47397ffc Add BindException 2022-05-10 14:40:45 +02:00
Michiel Borkent
d9ff456e60
Re-enable mac on CircleCI (#1263) 2022-05-09 17:57:41 +02:00
Michiel Borkent
6960bc5d24 Tweak release script 2022-05-09 17:01:54 +02:00
Michiel Borkent
73306079ec Pass env 2022-05-09 16:55:27 +02:00
Michiel Borkent
fe88348bf8 Add exec 2022-05-09 15:09:54 +02:00
Rahuλ Dé
4a13965a6d
Disable JVM on Actions, better triggers (#1262) 2022-05-08 19:49:13 +02:00
Rahuλ Dé
5b455cd51b
Refine Actions (#1261) 2022-05-08 10:31:14 +02:00
Michiel Borkent
eee3b55f56 Try newer machines for aarch64 2022-05-06 16:51:59 +02:00
Michiel Borkent
729de81537 Bump ghra 2022-05-06 16:39:54 +02:00
Michiel Borkent
6941a5c2ff Bump ghra [skip ci] 2022-05-06 16:06:09 +02:00
Michiel Borkent
48501c6f52 Version bump 2022-05-06 15:52:29 +02:00
Michiel Borkent
4ff35902f3 CHANGELOGS [skip ci] 2022-05-06 14:59:11 +02:00
Michiel Borkent
3eee5870ca v0.8.2 2022-05-06 14:57:01 +02:00
Michiel Borkent
f1fcf24822 Support BABASHKA_PODS_DIR 2022-05-06 14:53:44 +02:00
Michiel Borkent
786019ef2a fs / sci [skip ci] 2022-05-06 14:33:28 +02:00
Michiel Borkent
61ad485ce0 updates 2022-05-05 22:50:34 +02:00
Michiel Borkent
9e5bdc4b0f process: exec 2022-05-05 14:36:32 +02:00
Michiel Borkent
200a01fe85 tasks: use process wrapper 2022-05-04 19:32:11 +02:00
Michiel Borkent
1e8ec5285a fs: cwd 2022-05-04 17:29:57 +02:00
Michiel Borkent
20e8171869 CHANGELOGs [skip ci] 2022-05-04 15:07:20 +02:00
Michiel Borkent
b4dfb91fd3
Expose edamame, fixes #549 and #1258 (#1259) 2022-05-04 15:02:30 +02:00
Michiel Borkent
8338afb066 slightly faster 2022-05-03 23:44:47 +02:00
Michiel Borkent
45df5bcc8f Fix catvec polyfill 2022-05-03 23:20:36 +02:00
Michiel Borkent
c34109d828 Fix tests 2022-05-03 16:59:31 +02:00
Michiel Borkent
41dcc9239a Use into as catvec replacement for now 2022-05-03 16:47:43 +02:00
Michiel Borkent
e65f86a39d Update fs 2022-05-02 13:45:02 +02:00
Michiel Borkent
7f0fd86d8b Fix default aliases 2022-05-01 20:52:12 +02:00
Michiel Borkent
fbc5b69ab1 Update process with pre-start-fn 2022-05-01 20:38:56 +02:00
Michiel Borkent
22e56ce779 Read-eval 2022-04-30 20:49:42 +02:00
Michiel Borkent
085fffd95b fix #1252: update docs for m1 2022-04-30 12:03:01 +02:00
Michiel Borkent
226d5c5976 fix #1233: don't print error to stdout in prepl 2022-04-30 11:59:57 +02:00
Michiel Borkent
b93198c965
Compatibility with fipp and puget (#1253)
See brandonbloom/fipp#81
2022-04-30 11:46:36 +02:00
Brett Rowberry
1ef90f98ef
Update README.md (#1251) [skip ci] 2022-04-28 12:21:54 +02:00
Michiel Borkent
fc7df082b7
Bump to newest graalvm (#1250) 2022-04-26 16:27:49 +02:00
Michiel Borkent
c83786593a Upgrade deps.clj 2022-04-25 22:52:09 +02:00
Michiel Borkent
9727cabaf3 Add fields for reflection 2022-04-23 12:02:11 +02:00
Michiel Borkent
24f124d955 fix #1237: add tests for numeric tower 2022-04-23 11:35:49 +02:00
Michiel Borkent
b92af69d1d SCI: support invoking field, without dash 2022-04-23 11:29:06 +02:00
Bob
1113037b51
add Clarktown lib tests (#1247)
* add lib tests for clarktown

* add clarktown to library list

* make code block test agnostic to line separator
2022-04-17 20:11:33 +02:00
Michiel Borkent
1f7dba35c9
Bump SCI 2022-04-17 00:34:23 +02:00
Michiel Borkent
8bdb2a21da babashka.nrepl: support pprint length 2022-04-16 12:44:49 +02:00
Michiel Borkent
4bfe0eec89 Convey print-length to pprint and allow set! 2022-04-16 11:37:14 +02:00
Michiel Borkent
e3a6dbacb3 Version bump 2022-04-15 21:42:04 +02:00
Michiel Borkent
1ee298a411 v0.8.1 2022-04-15 21:15:27 +02:00
Michiel Borkent
917713f24f README [skip ci] 2022-04-15 20:48:25 +02:00
Rahuλ Dé
d7f180cdbe
Bash -> Clojure: Take 2 (#1243)
* Bash -> Clojure: Take 2

* Apply better naming

* Temp disable circle branch filter

* Pass platforms correctly to buildx

* Rename platforms, better checks

* Add circle and script guards for branch and PR

* Fix guard
2022-04-15 19:20:52 +02:00
Michiel Borkent
d830e8f576 Revert "First pass at bash cleanup (#1239)"
This reverts commit b5a4e0a170.
2022-04-15 13:27:29 +02:00
Michiel Borkent
ae7792634f Process: arg vec type hints 2022-04-15 11:48:40 +02:00
Michiel Borkent
1c03d74235 fs: type hints on arg vecs 2022-04-15 11:43:41 +02:00
Michiel Borkent
23a97233ad SCI: support *print-dup* 2022-04-15 11:38:31 +02:00
Michiel Borkent
83963116b0 SCI: fix destructuring in protocol impl 2022-04-15 11:25:42 +02:00
Rahuλ Dé
b5a4e0a170
First pass at bash cleanup (#1239) 2022-04-14 23:35:19 +02:00
Michiel Borkent
d8db9eee63
fix #1231: missing methods in reify should fall back to default interface methods (#1240) 2022-04-14 18:14:31 +02:00
Leah Neukirchen
52448f7597
[#556] Add server-status to org.httpkit.server (#1238) 2022-04-12 20:53:15 +02:00
Bob
3d0befb52b
update some SciVar names (metadata-wise) to align with babashka name (#1236)
* update SciVar names to align with the symbols in the namespace maps

* make test using a bb script more consistent with others

* update changelog
2022-04-07 14:02:06 +02:00
Michiel Borkent
60a3e86449 Added Fluree to companies [skip ci] 2022-04-06 21:22:10 +02:00
Michiel Borkent
f3526d80a4 SCI: fix name metadata on vars 2022-04-06 19:36:45 +02:00
Michiel Borkent
6eff4cc738 Add missing methods on iterator 2022-04-05 11:15:13 +02:00
Wes Morgan
211757d5a4
Add prepare subcommand (#1229)
* Add prepare subcommand

Downloads deps & pods, caches pod metadata, and then exits

* Add prepare subcommand to CHANGELOG

Co-authored-by: Michiel Borkent <michielborkent@gmail.com>
2022-04-05 11:04:38 +02:00
Stel Abrego
d2278835f1
Fix #1041: Improve error message when regex literal in EDN config (#1230)
* Improve error message when regex literal in EDN config (#1041)

Regex literal syntax (example: #"^foo") is not allowed in EDN. With the
ability to write tasks in the config file, users may mistakenly try to
include regex literals. This patch improves the error message by
informing the user that literal regex syntax is not allowed and
recommends using re-pattern instead.

* Update changelog

* Fixup main.clj

* Fixup changelog
2022-04-05 11:03:39 +02:00
Michiel Borkent
60df83b629 Version bump 2022-04-04 16:39:45 +02:00
Michiel Borkent
d4b9f5ed10 CHANGELOG 2022-04-04 16:22:45 +02:00
Michiel Borkent
9b19642039 CHANGELOG 2022-04-04 16:19:35 +02:00
Michiel Borkent
3b9cd12931 v0.8.0 2022-04-04 16:18:36 +02:00
Michiel Borkent
b102a4ae0e Upgrade tests to hugsql 0.5.3 2022-04-04 13:52:36 +02:00
Michiel Borkent
db9a8ff10c Add unchecked math 2022-04-03 21:39:08 +02:00
Michiel Borkent
f1db01aede Add ->Eduction 2022-04-03 21:39:08 +02:00
Wes Morgan
4886fe48ae
Link to declarative pods docs in changelog (#1228) [skip ci] 2022-04-03 20:28:00 +02:00
Michiel Borkent
5959ba99ec CHANGELOG [skip ci] 2022-04-03 15:06:37 +02:00
Michiel Borkent
f1adb99eff Revert "Bump Clojure"
This reverts commit fabb945f8c.
2022-04-03 15:06:22 +02:00
Michiel Borkent
fabb945f8c Bump Clojure 2022-04-03 14:58:32 +02:00
Michiel Borkent
7f7b66aeaf CHANGELOG [skip ci] 2022-04-03 14:55:10 +02:00
Michiel Borkent
76a57500af bb.curl: fix: last set-cookie headers on a page overwrites the ones before 2022-04-03 14:45:13 +02:00
Michiel Borkent
1063868554 fix #1211: return exit code 130 on sigint 2022-04-03 14:11:37 +02:00
Michiel Borkent
f09e085c75 Move bb.edn in uberjar to META-INF 2022-04-03 13:36:00 +02:00
Michiel Borkent
e81ef4aac0
Declarative pod support for uberscript (#1227) 2022-04-02 23:41:04 +02:00
Michiel Borkent
7af93adf15 Fix test 2022-04-02 17:47:27 +02:00
Michiel Borkent
ea4c4eae77 windows fix 2022-04-02 17:09:34 +02:00
Wes Morgan
963bd7957a
Feature: declarative pods support in uberjars (#1217)
* Store bb.edn in uberjar & load when run from there

* Sync resources deps.edn w/ root

* Throw error if --config arg doesn't exist

...instead of silently falling back on ./bb.edn

* Fix jar file arg parsing

Moving all arg parsing up above bb.edn ingestion made tasks turn into files to load. But this is a chicken-and-egg problem w/ uberjars b/c the bb.edn is inside the jar file, so we need that first. So I extracted the file parsing out into its own fn and put the full arg parsing back where it was after ingesting bb.edn.

* Fix local pod key in error message

* Ensure resources dir exists when copying bb.edn into it

* Copy bb.edn to temp dir when building uberjar

..and add that dir to the classpath for the jar

* Only put :pods in uberjar bb.edn

* Small readability fix

* Add ret val type hints for classpath/resource

Got a reflection warning on one of my calls

* Add a test for uberjars with bb.edn-declared pods

* Only run uberjar-with-pods-test on amd64 for now
2022-04-02 16:51:08 +02:00
Michiel Borkent
1cf914ad1c Bump Selmer 2022-04-01 18:22:56 +02:00
Michiel Borkent
ff54332977 Make java.util.Scanner available 2022-03-31 12:07:35 +02:00
Michiel Borkent
4d24cdca2a
Proxy support for PipedInputStream and PipedOutputStream
* Spire requires proxy support for java.io.PipedInputStream and java.io.PipedOutputStream

* proxy support for java.io.PipedInputStream and java.io.PipedOutputStream

* proxy tests for PipedInputStream and PipedOutputStream

Co-authored-by: Crispin Wellington <retrogradeorbit@gmail.com>
2022-03-31 10:00:16 +02:00
Michiel Borkent
bee5a88d16 Update fs: which improvements 2022-03-31 09:45:54 +02:00
Thiago Kenji Okada
a4a8ce5306
Unbump zlib to version 1.2.11 (#1222)
The newer 1.2.12 version is breaking the tests. The older version is not
available in the main download path, however it is still available in
the archive.
2022-03-28 18:07:42 +02:00
Michiel Borkent
bffc4bf00c Use old musl 2022-03-28 17:55:04 +02:00
Michiel Borkent
bef6d99740 Revert "Fix musl"
This reverts commit c7428da216.
2022-03-28 17:53:55 +02:00
Michiel Borkent
c7428da216 Fix musl 2022-03-28 17:14:09 +02:00
Michiel Borkent
b29a419bd0 deps.clj 2022-03-28 17:03:24 +02:00
Michiel Borkent
3bb54ee5e0 fix process pprint 2022-03-27 17:02:10 +02:00
Michiel Borkent
d786a5a9b2 process pprint 2022-03-27 17:01:13 +02:00
Michiel Borkent
6c568d62d4 Process: fix for pprint 2022-03-27 16:27:44 +02:00
Michiel Borkent
c0007e55c4 Revert "process: pprinting"
This reverts commit ba582d14a2.
2022-03-27 12:21:04 +02:00
Michiel Borkent
ba582d14a2 process: pprinting 2022-03-27 12:06:34 +02:00
Michiel Borkent
cd013227d5 Revert "Support sun.misc.Signal handlers (#1221)"
Shutdown code should be handled with a shutdown hook

This reverts commit 81a1fd4c86.
2022-03-27 12:04:50 +02:00
Michiel Borkent
81a1fd4c86
Support sun.misc.Signal handlers (#1221) 2022-03-26 22:45:49 +01:00
Michiel Borkent
72ae663842 fix #1220: add reflection on java.util.concurrent.Future 2022-03-25 12:07:30 +01:00
Michiel Borkent
586b2234aa SCI 2022-03-25 11:51:22 +01:00
Michiel Borkent
41703971b1 SCI 0.3.4 2022-03-24 21:46:17 +01:00
Michiel Borkent
450bddef20 Bump Clojure to 1.11 2022-03-23 23:50:54 +01:00
Michiel Borkent
1ad93077c1 fix #1216: fix core.async alts example with polyfill 2022-03-23 23:49:09 +01:00
Michiel Borkent
c3cae22541 pods: Rosetta2 fallback 2022-03-23 19:33:49 +01:00
Wes Morgan
e602286799
feat #863: Load pods from bb.edn (#1205)
Co-authored-by: Michiel Borkent <michielborkent@gmail.com>
2022-03-23 17:08:59 +01:00
Michiel Borkent
68bed0723c Update pods 2022-03-23 17:01:17 +01:00
Michiel Borkent
e83ef7a69f Bump timbre 2022-03-23 15:12:15 +01:00
Michiel Borkent
1e72562c9a Bump SCI 2022-03-23 13:09:22 +01:00
Michiel Borkent
8d1de7285e Update pods lib 2022-03-23 12:27:46 +01:00
Michiel Borkent
6305f7450d
Add compatibility with GraalVM 22.1 (#1215)
* do not init java net http classes at build time
2022-03-22 16:41:26 +01:00
Michiel Borkent
6d35314096 Revert pods change 2022-03-22 14:00:41 +01:00
Michiel Borkent
b6a3a9cdf5 Revert "pods: declarative pods prep"
This reverts commit d8d0a50625.
2022-03-22 14:00:05 +01:00
Michiel Borkent
d8d0a50625 pods: declarative pods prep 2022-03-22 12:47:37 +01:00
Michiel Borkent
b4b22bfe70 SCI: add let* 2022-03-19 22:32:16 +01:00
Michiel Borkent
25a57b483c
meander: interop on Iterator 2022-03-19 11:34:20 +01:00
Michiel Borkent
fc0bb83ca2 meander interop 2022-03-19 11:04:37 +01:00
Michiel Borkent
b395084d47 meander: nth interop 2022-03-19 10:27:45 +01:00
Michiel Borkent
ad8982d0c6 meander: unchecked-dec + disjoin interop 2022-03-19 10:14:01 +01:00
Michiel Borkent
152234937c meander interop 2022-03-19 00:25:59 +01:00
Michiel Borkent
dd6ca6e623 Fix and add reflections for vectors and maps 2022-03-19 00:02:08 +01:00
Michiel Borkent
c09ff9e61c Allow .indexOf on vector 2022-03-18 23:49:17 +01:00
Michiel Borkent
108665ebb9 SCI: loop doesn't expand in fully qualified let 2022-03-18 23:47:18 +01:00
Michiel Borkent
7bfab37077 Add specter tests 2022-03-18 19:35:44 +01:00
Rahuλ Dé
bd3adf029e
Add official bb compatible badge (#1212) [skip ci] 2022-03-16 17:57:52 +01:00
Michiel Borkent
b245b9c890 Add video by Daniel Amber [skip ci] 2022-03-15 11:10:35 +01:00
Michiel Borkent
b1f981799c Upgrade sub-projects: sci, deps.clj 2022-03-14 19:53:45 +01:00
Michiel Borkent
75860aad68 CHANGELOG [skip ci] 2022-03-13 20:31:00 +01:00
Michiel Borkent
694fe87ebd CHANGELOG [skip ci] 2022-03-13 20:29:34 +01:00
Michiel Borkent
9047660016 Version bump 2022-03-13 20:24:24 +01:00
Michiel Borkent
ea03cc09e4 v0.7.8 2022-03-13 20:03:39 +01:00
Michiel Borkent
701c719c78 Expose clojure.lang.PersistentHashMap/EMPTY 2022-03-13 16:16:03 +01:00
Michiel Borkent
238786df0b SCI: identical check on empty vec 2022-03-13 14:13:32 +01:00
Michiel Borkent
569f62c928 Add *compile-files* var 2022-03-13 13:15:50 +01:00
Michiel Borkent
158082e87e Support method of super 2022-03-13 13:09:23 +01:00
Michiel Borkent
2260e02963 SCI: support :sigs on protocol map 2022-03-13 13:08:41 +01:00
Michiel Borkent
daedd1e07c SCI: fix IRecord protocol extension 2022-03-13 11:40:59 +01:00
Joshua Davey
5f4c6e52d0
Add Deflater and DeflaterOutputStream (#1209)
Deflater allows one to control, for example, the level of compression
used. The DeflaterOutputStream is the parent of GZIPOutputStream
class, and allows raw zlib compressed stream (i.e. no gzip header/footer).
2022-03-12 23:12:01 +01:00
Michiel Borkent
0e744b1e2f SCI: fix fallback protocol method on records 2022-03-12 20:45:29 +01:00
Michiel Borkent
e444267428 SCI: omit dash in clojure-version when nil qualifier 2022-03-12 14:51:57 +01:00
Michiel Borkent
6320cddc74 Add lib tests for expectations.clojure-test 2022-03-12 14:40:52 +01:00
Michiel Borkent
315d58e7a1 fix #1202: add tests for hugsql 2022-03-12 14:01:14 +01:00
Michiel Borkent
3624de4a92 CHANGELOGS 2022-03-12 13:37:26 +01:00
Michiel Borkent
ef0a9f4177 SCI: add *clojure-version* and (clojure-version) 2022-03-12 13:35:29 +01:00
Michiel Borkent
153bdb1905 fs: add windows predicate 2022-03-12 13:34:56 +01:00
Michiel Borkent
cda02cd3a3 disable flaky test 2022-03-11 12:44:10 +01:00
Michiel Borkent
fff4bf779f
Docs [skip ci] (#1208) 2022-03-11 12:31:45 +01:00
Michiel Borkent
3759d14baf
Add clojure.data.priority-map as built-in, support aysylu/loom lib (#1207) 2022-03-11 12:23:31 +01:00
mknoszlig
f9451f5de0
feat #1204: add babashka.config property 2022-03-11 11:03:42 +01:00
Michiel Borkent
92ca3c6501 nrepl 2022-03-10 23:34:43 +01:00
Michiel Borkent
7c81443ae7 Add missing classes to support specter 2022-03-08 16:21:20 +01:00
Michiel Borkent
9d685d7f38 sci [skip ci] 2022-03-07 17:34:31 +01:00
Michiel Borkent
56c7bcd777
Add part of clojure.tools.reader.reader-types to support hugsql (#1201) 2022-03-07 16:55:14 +01:00
Michiel Borkent
630aadcb7d SCI: declare as macro 2022-03-06 16:25:30 +01:00
Michiel Borkent
0107288ec5 fix #938: drop location metadata from symbols, except top level 2022-03-05 21:08:45 +01:00
Michiel Borkent
3f49ad3b89
fix #1199: print-method impls on records (#1200) 2022-03-05 17:11:11 +01:00
Michiel Borkent
f0f87f0794 doc [skip ci] 2022-03-04 20:16:25 +01:00
Michiel Borkent
4b6d83ffb5 Version bump 2022-03-04 15:26:09 +01:00
Michiel Borkent
3d979ef964 v0.7.7 2022-03-04 14:50:24 +01:00
Michiel Borkent
4179b6e2ea CHANGELOGS [skip ci] 2022-03-04 12:43:49 +01:00
Michiel Borkent
dc5d756394
pprint: add get-pretty-writer (#1198)
Closes #1197
2022-03-04 12:42:27 +01:00
Michiel Borkent
638ae3aaeb CHANGELOGS [skip ci] 2022-03-03 14:48:51 +01:00
Michiel Borkent
f4cd6c2bf1
feat: compatibility with at-at 2022-03-03 11:24:52 +01:00
Michiel Borkent
9b9f4d8bfc
Readme [skip ci] 2022-03-02 17:01:12 +01:00
Michiel Borkent
f9c1e0b79d doc [skip ci] 2022-03-02 11:03:07 +01:00
Michiel Borkent
98d11acad9 libs doc updates [skip ci] 2022-03-02 10:55:09 +01:00
Michiel Borkent
76accde8da
Add clojure.instant/parse-timestamp 2022-03-01 20:33:49 +01:00
The Alchemist
0ac8495d28
minor typo (#1193) [skip ci] 2022-02-28 23:08:53 +01:00
Michiel Borkent
bbd8743894 tools jar 1.10.3.1087 2022-02-28 21:46:15 +01:00
Michiel Borkent
e7571119fb feat #1192: expose *assert* 2022-02-28 11:06:38 +01:00
Michiel Borkent
61e47555f9 feat #1187: Add :result key to (current-task) map that can be used in :leave task hook 2022-02-27 12:10:33 +01:00
Michiel Borkent
ba1c66585a CHANGELOGS [skip ci] 2022-02-27 11:50:46 +01:00
Michiel Borkent
141881376d
fix #1190: task dependencies resolve as core.async channels (#1191) 2022-02-27 11:49:40 +01:00
Michiel Borkent
5c6e2b5167 cli-matic Windows test 2022-02-25 11:27:58 +01:00
Michiel Borkent
3eace3278f Add cli-matic lib tests 2022-02-24 17:20:11 +01:00
Michiel Borkent
a99e681572 CHANGELOGS [skip ci] 2022-02-24 13:01:05 +01:00
Michiel Borkent
17cb349fd6 Version bump 2022-02-24 12:59:37 +01:00
Michiel Borkent
9e8bb78794 v0.7.6 2022-02-24 12:39:23 +01:00
Michiel Borkent
83c610ca0f fix #1180: limit bb tasks output to first line of docstring 2022-02-24 12:28:54 +01:00
Michiel Borkent
125e1c1412 fs 2022-02-24 12:20:40 +01:00
Michiel Borkent
d5cd5be675 fs/create-temp-file 2022-02-23 21:53:35 +01:00
Michiel Borkent
319c5174dd bb process: support appending to a file 2022-02-23 18:15:26 +01:00
Michiel Borkent
f620a3dde9 internal lib updates [skip ci] 2022-02-23 14:40:54 +01:00
Gabriel Horner
7126112cc3
Add latest datascript (#1185)
* Update datascript config

Add db ns, loads latest datascript and can load datascript-transit
library. All tests for pull.cljc and query.cljc pass except for queries
with fns as inputs

* Add datalog-parser to projects.md per #1171 comment
2022-02-22 14:17:58 +01:00
Michiel Borkent
1170e3cce7 SCI: constant node optimizations 2022-02-21 11:08:03 +01:00
Michiel Borkent
780f2e86ea Bump yaml lib 2022-02-21 10:46:09 +01:00
Michiel Borkent
c54d005419 SCI: protocol tweaks 2022-02-20 20:26:40 +01:00
Michiel Borkent
e365958526 SCI: constant optimimalizations 2022-02-20 17:37:51 +01:00
Michiel Borkent
cd285b9a19
SCI: refactored to protocols (#1183) 2022-02-20 12:02:08 +01:00
Michiel Borkent
44eb3625f9 CHANGELOG [skip ci] 2022-02-18 22:55:17 +01:00
Michiel Borkent
19e87a545d
fix #1181: clojure.test report does not respect *test-out* correctly (#1182) 2022-02-18 22:54:10 +01:00
Michiel Borkent
3c207e1a9b sci: JS fix 2022-02-18 21:19:38 +01:00
Michiel Borkent
e64db1028c SCI: get rid of EvalVar 2022-02-17 16:56:58 +01:00
Michiel Borkent
5dfe9c42ae SCI: simplify handling of metadata 2022-02-17 11:49:24 +01:00
Michiel Borkent
b6de3dee05 CHANGELOG [skip ci] 2022-02-16 14:18:13 +01:00
Michiel Borkent
d62e05c5f2 CHANGELOG [skip ci] 2022-02-16 11:18:44 +01:00
Michiel Borkent
665e4e12b2 Version bump 2022-02-16 11:17:46 +01:00
Michiel Borkent
dafb3ef77c v0.7.5 2022-02-16 10:48:10 +01:00
Michiel Borkent
6774757230 deps.clj: bump to 1.10.3.1082 2022-02-16 10:42:19 +01:00
Michiel Borkent
c047c6e2c5 sci [skip ci] 2022-02-15 16:50:39 +01:00
Michiel Borkent
14a8c0e0ec Add method to satisfy tests 2022-02-14 15:52:27 +01:00
Michiel Borkent
df91279967 Add clojure-msgpack to lib tests 2022-02-14 15:37:35 +01:00
Michiel Borkent
b461925981
SCI: use mutable arrays for bindings (#1177) 2022-02-14 11:52:32 +01:00
Roger Lam
9969b83341
Ensure leading zeros are not trimmed for algorithm "SHA-256", so that hash string size is always 64. (#1176) 2022-02-12 11:06:49 +01:00
Michiel Borkent
ddfdd72c73
Add 180seg to companies [skip ci] (#1173) 2022-02-11 13:26:41 +01:00
Gabriel Horner
ac6ad33fcb
Add 2 more compatible libs (#1171) 2022-02-10 13:45:15 +01:00
Michiel Borkent
a1007efdac SCI v0.2.9 [skip ci] 2022-02-09 16:32:26 +01:00
Michiel Borkent
8097019b7e Fix #1170: defmacro with a defrecord inside fails to resolve classname 2022-02-08 23:55:09 +01:00
Michiel Borkent
96a52d73d6 SCI: fix macroexpand on defrecord 2022-02-08 11:34:29 +01:00
Michiel Borkent
1718ab613b Bump transit 2022-02-05 10:36:50 +01:00
Lee Read
7c8272ab9e
Miniscule typo (#1169) [skip ci]
<foo> was interpreted as a tag and therefore disappeared when rendered
2022-02-04 16:03:33 +01:00
Michiel Borkent
fe2f0a76f6 deps.clj: bump to 1075 2022-02-02 23:11:46 +01:00
Michiel Borkent
5226d9cc0f Upgrade to clojure 11 beta1 2022-02-02 22:49:55 +01:00
Michiel Borkent
cd07a539f3
SCI: select fn env more accurately (#1168) 2022-02-02 22:47:13 +01:00
Michiel Borkent
21c121af32
SCI: select fn env earlier (#1165) 2022-02-02 13:48:59 +01:00
Michiel Borkent
8538a4aa10
Merge pull request #1162 from babashka/java_io_data_reflect_array
Adds compatibility with https://github.com/edma2/clojure-msgpack
2022-02-01 12:08:23 +01:00
Michiel Borkent
2cc7e36ec3 Add java.lang.reflect.Array#newInstance 2022-02-01 11:30:12 +01:00
Michiel Borkent
fe42f1e436 Add java.io.Data classes 2022-02-01 11:24:20 +01:00
Michiel Borkent
35ab5c8628 README [skip ci] 2022-01-31 16:32:41 +01:00
Michiel Borkent
46eb69e662
Update SCI: minor refactor for vararg recur (#1161) 2022-01-29 19:02:44 +01:00
Michiel Borkent
26cb47eac4
Update SCI: minor refactor for vararg recur (#1161) 2022-01-29 19:02:29 +01:00
Michiel Borkent
c9f4b51369 SCI: less locals 2022-01-28 17:16:55 +01:00
Michiel Borkent
d4712ad889 deps.clj: tools 1.10.3.1069 2022-01-28 14:24:08 +01:00
Michiel Borkent
c1a8c047b0 SCI: fix 15-arity + reflection 2022-01-27 14:52:22 +01:00
Michiel Borkent
63212a250b Add halt-when 2022-01-26 10:19:35 +01:00
Michiel Borkent
1c67d3e76a doc: CHANGELOGS [skip ci] 2022-01-25 18:15:10 +01:00
Michiel Borkent
8fc6074b42 doc: CHANGELOGS [skip ci] 2022-01-25 18:14:24 +01:00
Michiel Borkent
b7461756bf
chore: Upgrade to GraalVM 22.0.0.2 2022-01-25 18:04:38 +01:00
Michiel Borkent
816adaaad0 Version bump 2022-01-25 16:03:25 +01:00
Michiel Borkent
530177eefd Fix docker 🙏 2022-01-25 15:46:17 +01:00
Michiel Borkent
a02a89857b v0.7.4 2022-01-25 15:23:53 +01:00
Michiel Borkent
92dbd1be58 sci: as-alias 2022-01-25 13:39:55 +01:00
Michiel Borkent
e95c4dd37d More clojure 11 vars 2022-01-25 11:02:03 +01:00
Michiel Borkent
c7cc5663cb
feat #1158: add clojure.math namespace (#1159) 2022-01-25 10:30:22 +01:00
Michiel Borkent
9930eea62c
chore: bump deps (#1157) 2022-01-25 10:05:51 +01:00
Michiel Borkent
98668ef3b7 [babashka/sci#498] Cannot recur from non tail: and/or 2022-01-23 21:38:37 +01:00
Michiel Borkent
ee15ef1798 [#1152] Add algo.monads to libtests and projects.md 2022-01-23 20:11:26 +01:00
Michiel Borkent
d08b0d88d8
[babashka/sci#498] Can only recur from tail position (#1153) 2022-01-23 19:46:49 +01:00
Michiel Borkent
8a15a82f44
Add compatibility with algo.monad (#1151) 2022-01-23 11:09:52 +01:00
Michael Salihi
f8def7d797
add single page app example with Babashka + htmx (#1148) [skip ci] 2022-01-21 16:29:59 +01:00
Michael Glaesemann
ca59f3890e
fix #1143: allow optional (ignored) -- when using using --main (#1147)
Permits previously-accepted behavior broken in 19415f6363
2022-01-20 14:53:54 +01:00
James Carnegie
3602b89512 Add metabom jars to all built docker images 2022-01-18 07:34:36 +00:00
Michiel Borkent
eef4690ba4 sci: cannot take value of macro -> 2022-01-16 13:16:20 +01:00
Michiel Borkent
da31e9c61c
fix #1144: cannot create multidimensional arrays (#1145) 2022-01-16 12:42:10 +01:00
Michiel Borkent
cc728e5748 fix order of meta eval
Co-authored by: Janos Erdos <erdosj@gmail.com>
2022-01-16 11:57:50 +01:00
Michiel Borkent
6d849a4f6c sci [skip ci] 2022-01-16 11:57:47 +01:00
Gabriel Horner
093709386a
Add some additional libraries (#1138)
* Add some additional libraries to test

Also improved docs around add-libtest
Close #1137
Close #1128

* Add method needed for supporting pyramid

Pyramid tests passed locally but that was on jvm

* Remove pyramid tests and do in subsequent PR

* Revert "Add method needed for supporting pyramid"

This reverts commit 4d84a2a2ac.

* Skip exoscale tests for windows since most aren't windows compatible
2022-01-14 14:56:09 +01:00
Wes Morgan
b765ed3ec7
Fix: alpine docker builds in CI (follow-up) (#1142) 2022-01-13 21:35:55 +00:00
Wes Morgan
5ff1a04f10
Build alpine Docker images in CI when linux/amd64 is in platform list (#1141) 2022-01-13 20:26:31 +00:00
Rahul De
2f6d363ee8
Revert: Add metabom jar to docker image(9cf6a1ae71) 2022-01-11 21:34:36 +00:00
Rahul De
f453928f80
fix docker build script 2022-01-11 20:38:43 +00:00
James Carnegie
6e2c32ff84
Add opencontainers annotations to docker image (#1136)
Co-authored-by: Rahuλ Dé <lispyclouds@users.noreply.github.com>
2022-01-11 20:26:29 +01:00
James Carnegie
9cf6a1ae71 Add metabom jar to docker image 2022-01-11 19:03:51 +00:00
Michiel Borkent
e97f5f69b2 companies.md [skip ci] 2022-01-08 21:25:35 +01:00
Michiel Borkent
3bf5d0faf1 fs: create dirs in copy-tree 2022-01-08 16:13:56 +01:00
Michiel Borkent
dd5d3fe1a4 sci: add pop! 2022-01-07 23:17:28 +01:00
Michiel Borkent
061bc528ae this test wasn't supposed to be in master! 2022-01-05 20:21:19 +01:00
Michiel Borkent
d050e7d58d deps.clj: update to clojure CLI 1.10.3.1058 2022-01-05 20:11:23 +01:00
A Brooks
18cf24d35e
Fix broken link to source. (#1127) [skip ci] 2022-01-05 13:24:19 +01:00
Jakub Holý
7e2d69d0cb
fix typo in news (#1125) [skip ci] 2022-01-03 11:03:23 +01:00
Michiel Borkent
01b02f38d6 Update news.md [skip ci] 2021-12-31 16:44:17 +01:00
Michiel Borkent
221cbe1142 Version bump 2021-12-30 16:50:56 +01:00
Michiel Borkent
483bfca969 CHANGELOGS [skip ci] 2021-12-30 16:33:15 +01:00
Michiel Borkent
0f21c16f43 v0.7.3 2021-12-30 16:32:22 +01:00
Michiel Borkent
34f9997df4 [#1123, #1124] Do not require java for bb tasks without deps 2021-12-30 16:32:15 +01:00
Michiel Borkent
890877fcfd Version bump 2021-12-29 18:26:59 +01:00
Michiel Borkent
cde8bbc5ee v0.7.2 2021-12-29 18:11:09 +01:00
Michiel Borkent
5723fa2e67 Version bump 2021-12-29 18:10:56 +01:00
Michiel Borkent
d818930e0f process 2021-12-29 18:09:12 +01:00
Michiel Borkent
c8aebb3c2b v0.7.1 2021-12-29 17:10:42 +01:00
Michiel Borkent
ab470def54 BB test patches 2021-12-29 17:05:19 +01:00
Gabriel Horner
665ae4dd97
Finish up library tests (#1120)
* Add tests for markdown-clj and tools.namespace

See comment for why only one markdown test could be run.
Closes #1069 and #1064

* Convert 10 test libs using add-libtest

Also improved add-libtest to only require maven artifact
and rely on clojars for getting git-url most of the time

* Convert 8 more test libs using add-libtest

Also updated table and added comment for newline test

* Fix doric test

* Disable tools.namespace test that fails on windows

* Added dozen manual test libs and converted 2 test libs

add-libtest.clj supports manually-added and test-directories options

* Converts last tests to test namespaces and write libraries.csv

* Add a number of library tests from projects.md

Also add more docs around adding test libs and tweak add script

* Use :sha for gitlib and older clojure cli

* Revert "Use :sha for gitlib and older clojure cli"

This reverts commit c663ab8368.

* Fix and disable failing tests

Disabled tests that fail consistently and fixed windows one
2021-12-29 16:35:14 +01:00
Michiel Borkent
367cf7bf26 CHANGELOGS [skip ci] 2021-12-29 16:17:01 +01:00
Michiel Borkent
ddf03c50ae [#1116] Missing error message when exception happens in REPL print 2021-12-29 16:10:30 +01:00
Michiel Borkent
818f2a9931
Upgrade Clojure CLI (#1121) 2021-12-28 11:09:31 +01:00
Michiel Borkent
e56cb4a50f CHANGELOG [skip ci] 2021-12-27 23:21:34 +01:00
Michiel Borkent
53eb64e67d [#1119] Add equals method of java.util.Arrays 2021-12-27 22:03:30 +01:00
Michiel Borkent
1912b921df Fixes for issue reported by @thiagokokada 2021-12-27 21:31:13 +01:00
Michiel Borkent
ec7a6785d9 ignore SNAPSHOT when comparing number 2021-12-26 23:35:24 +01:00
Michiel Borkent
8c770b41ac oops 2021-12-26 23:24:48 +01:00
Michiel Borkent
8abf58112e Publish dev release 2021-12-26 23:11:58 +01:00
Michiel Borkent
e710c66dcb Publish dev builds 2021-12-26 21:15:36 +01:00
Michiel Borkent
fb7f984389
[#1110] Load tasks and deps from other bb.edn file (#1117)
Co-authored-by: Bob <highpressurecarsalesman@gmail.com>
2021-12-26 17:26:35 +01:00
Michiel Borkent
93fb4379ff
[#584, #1037] Uberscript in bb (#1115) 2021-12-23 21:23:11 +01:00
Gabriel Horner
3a30a11c1f
Add more library tests (#1114)
* Add environ and table tests

Also allow for directory option and fix nasty nil test-dir bug

* Add 7 libraries via add-libtest.clj

Added :branch option and saved additional info to bb-tested-libs.edn to
reproduce test fetching later

* Disable intermittent failing test
2021-12-22 21:27:29 +01:00
Michiel Borkent
86c67af49c
[#1105] Include native elements in printed stacktrace (#1113) 2021-12-22 13:04:29 +01:00
Michiel Borkent
697c03fa07 CHANGELOG [skip ci] 2021-12-21 22:53:11 +01:00
Michiel Borkent
04762fe68e CHANGELOG 2021-12-21 21:32:34 +01:00
Michiel Borkent
79cbe5b58a [#1087] Add spy macro from taoensso.timbre 2021-12-21 21:29:33 +01:00
Michiel Borkent
5b444995a0 edamame v0.0.19 2021-12-21 21:01:48 +01:00
Gabriel Horner
4e7d04f672
Add libtest (#1112)
* Add add-libtest script and add 2 libraries with it

* Add tests for 3 existing libraries
2021-12-21 19:25:10 +01:00
Michiel Borkent
becdabe100 pods [skip ci] 2021-12-19 20:26:37 +01:00
Michiel Borkent
fd080e76e2 SCI: better error for higher order fn arity mismatch 2021-12-19 16:31:21 +01:00
Gabriel Horner
4f8eb37704
Added specmonstah and dependency to tested libraries (#1109)
* Enable specmonstah tests now that it's merged

* Add dependency to tests and doc added libs

* Use the older :sha for compat with older clojure cli
2021-12-16 15:46:50 +01:00
Thiago Kenji Okada
4ed7cd5aea
Check shasum/sha256sum in PATH on install script (#1108)
* Check shasum/sha256sum in PATH on install script

* Fix typo in .github/pull_request_template.md
2021-12-16 15:26:33 +01:00
Michiel Borkent
1c217a7157 PR template [skip ci] 2021-12-15 16:53:38 +01:00
Wes Morgan
bc0ae17e64
Build arm64 docker image in CI (#1099) 2021-12-15 15:28:39 +00:00
Gabriel Horner
48a8f3ac18
Document babashka forks (#1106) [skip ci]
Also removed double nesting of Projects in toc
2021-12-14 15:37:44 +01:00
Michiel Borkent
a0ef27ad21 CHANGELOG [skip ci] 2021-12-10 13:33:51 +01:00
Michiel Borkent
6ce33dff90 Version bump 2021-12-10 11:36:52 +01:00
Michiel Borkent
823bc8ca22 0.7.0 2021-12-10 11:19:19 +01:00
Michiel Borkent
73d466e7d6
Fix SCI#649 aget reflection (#1100)
Fix issue with aget reported in babashka/sci#649 by @MrEbbinghaus
2021-12-09 22:38:38 +01:00
Michiel Borkent
48cf9671e1 Updated bb spec 2021-12-09 18:36:05 +01:00
Michiel Borkent
a3633faf3f test 2021-12-09 18:35:10 +01:00
Michiel Borkent
068cb6a97d update babashka spec dep 2021-12-09 18:32:04 +01:00
Michiel Borkent
b7ede11154 Bump spec for tests 2021-12-09 18:02:50 +01:00
Michiel Borkent
806517c2ba graal config 2021-12-09 17:52:51 +01:00
Michiel Borkent
efacc16e3b graal config 2021-12-09 17:50:41 +01:00
Michiel Borkent
fb0fbe87fc spec test 2021-12-09 17:43:06 +01:00
Michiel Borkent
b67d539ab0 fields 2021-12-09 17:42:55 +01:00
Michiel Borkent
713358dca8 SCI: instance field access // MultiFn interop 2021-12-09 17:28:04 +01:00
Michiel Borkent
b32b7d7de9 sci bump, memfn 2021-12-09 13:05:45 +01:00
Michiel Borkent
5d324dd201 Added integrant tests 2021-12-08 23:11:32 +01:00
Michiel Borkent
4f21669f6b Add orchestra tests 2021-12-08 22:57:16 +01:00
Michiel Borkent
19ad756261 Support applyTo interop for clojure.spec 2021-12-08 22:42:26 +01:00
Michiel Borkent
f754578075 Add coax tests 2021-12-08 21:31:58 +01:00
Michiel Borkent
6d14ed61f1 Add better-cond to CI tests 2021-12-08 18:46:53 +01:00
Michiel Borkent
9dd4941230 Add spec tests to CI 2021-12-08 18:26:17 +01:00
Michiel Borkent
54cd1fa85f Add core specs warning 2021-12-08 18:08:02 +01:00
Michiel Borkent
f5fd11fd78 Don't remove core specs when they are in deps map 2021-12-08 17:20:05 +01:00
Michiel Borkent
8b3e89fbcc Don't remove core specs 2021-12-08 17:11:29 +01:00
Michiel Borkent
76c9d633ff Warn on clojure.spec.alpha 2021-12-08 16:04:32 +01:00
Michiel Borkent
ef8e4f48b9 add StackTraceElement->vec 2021-12-08 15:00:24 +01:00
Michiel Borkent
e466f832b8
inst-ms + clojure.instant ns (#1098) 2021-12-08 13:51:31 +01:00
Michiel Borkent
e1f6f369cb PR template [skip ci] 2021-12-08 10:28:36 +01:00
Michiel Borkent
a061977523 PR template [skip ci] 2021-12-08 10:27:10 +01:00
Wes Morgan
bf51eeb26d
Allow building x86_64 or arm64 Docker images (#1095) 2021-12-07 22:15:57 +00:00
Wes Morgan
347816820c
Add .cpcache and target to .dockerignore (#1094)
These can leak host env stuff into Docker build context and break things
2021-12-06 23:06:29 +01:00
Michiel Borkent
e703669c79
Add java.util.StringTokenizer (#1092) 2021-12-06 11:31:30 +01:00
Michiel Borkent
d5c67deeca SCI PR template [skip ci] 2021-12-06 10:42:33 +01:00
Michiel Borkent
8127d00b89 fix metadata on declared var 2021-12-05 23:35:11 +01:00
Michiel Borkent
e434bdb8de Allow macroexpand on doseq and for 2021-12-05 21:07:46 +01:00
Michiel Borkent
de6d274993 sci with test 2021-12-05 14:18:00 +01:00
Michiel Borkent
e30b878206 edamame 0.0.18 2021-12-05 14:14:42 +01:00
Johannes Lötzsch
ec4f9f95fb
fix script/compile #1089 (#1090)
Co-authored-by: Johannes Lötzsch <git@johannesloetzsch.de>
2021-12-05 12:05:05 +01:00
Michiel Borkent
12dbbbb43f edamame v0.0.17 2021-12-05 00:00:30 +01:00
Grazfather
340b18dcf6
Force decimal version numbers in install script (#1088)
Co-authored-by: Alex Chen <Cnly@users.noreply.github.com>
2021-12-04 15:54:41 +01:00
Michiel Borkent
e99a3ca7d7 deprecate $ in process 2021-12-04 11:44:18 +01:00
Michiel Borkent
26336ed500 CHANGELOG [skip ci] 2021-12-02 21:08:54 +01:00
Michiel Borkent
692d3f879d CHANGELOG [skip ci] 2021-12-02 21:08:39 +01:00
Michiel Borkent
5608924de6 CHANGELOG [skip ci] 2021-12-02 21:08:35 +01:00
Michiel Borkent
b4cf195346 Version bump 2021-12-02 21:08:00 +01:00
Michiel Borkent
709e94f956 CHANGELOG [skip ci] 2021-12-02 21:07:53 +01:00
Michiel Borkent
d7ccd1d7c1 v0.6.8 2021-12-02 20:49:30 +01:00
Michiel Borkent
f761d84312 Add new functions from clojure 1.11 except clojure.java.math 2021-12-02 20:47:09 +01:00
Michiel Borkent
638354de56 sci: add clojure.core/test - nREPL: catch throwable 2021-12-02 20:35:05 +01:00
Michiel Borkent
c622a32a65 process: support deref with timeout 2021-12-01 21:39:46 +01:00
Michiel Borkent
9c28fd3eab bump to tools 1.10.3.1040 2021-12-01 17:24:04 +01:00
Michiel Borkent
22677d2832 sci [skip ci] 2021-12-01 09:46:49 +01:00
Michiel Borkent
2257bddbd8 sci: add reader-conditional? 2021-11-30 10:59:05 +01:00
Michiel Borkent
c177e682c7 Version bump 2021-11-30 00:00:13 +01:00
Michiel Borkent
dc77bc9638 v0.6.7 2021-11-29 23:42:52 +01:00
Michiel Borkent
2079f0a554 Add print-deps test 2021-11-29 23:42:36 +01:00
Michiel Borkent
42f12ba75b fs: which improvement on Windows 2021-11-29 23:04:59 +01:00
Michiel Borkent
f1103ae677 fs: which returns executable when program name contains extension 2021-11-29 21:46:36 +01:00
Michiel Borkent
0757abad17 deps.clj bump 2021-11-29 12:38:34 +01:00
Michiel Borkent
15e2430fea Version bump 2021-11-29 12:22:37 +01:00
Michiel Borkent
79678c57ea v0.6.6 2021-11-29 12:03:43 +01:00
Michiel Borkent
ee06576557 fs: enhance fs/which for Windows 2021-11-29 11:08:18 +01:00
Michiel Borkent
0ebbdcb84d CHANGELOG [skip ci] 2021-11-28 23:12:22 +01:00
Michiel Borkent
7baef947af Minor renaming 2021-11-28 23:03:31 +01:00
Michiel Borkent
ed19e202e8 Fix Windows 2021-11-28 22:53:07 +01:00
Michiel Borkent
7255f50beb [#1078] Resolve program in babashka.process on Windows using known extensions 2021-11-28 22:14:17 +01:00
Michiel Borkent
07667697ba [#1078] Resolve program in babashka.process on Windows using known extensions 2021-11-28 22:09:24 +01:00
Michiel Borkent
bfbfc912fe [#1078] Resolve program in babashka.process on Windows using known extensions 2021-11-28 21:45:20 +01:00
Michiel Borkent
1f5b06dc04 babashka.process: tokenize fix 2021-11-28 20:18:20 +01:00
Michiel Borkent
99262e7ce8 Add babashka.core 2021-11-28 15:56:26 +01:00
Michiel Borkent
2a2d4befe5 Add babashka.core 2021-11-28 15:56:17 +01:00
Michiel Borkent
4a8c7a12e0 Add core submodule 2021-11-28 15:48:00 +01:00
Nik
080c60c08e
[#1081] make next.jdbc's result-set namespace accessible from babashka (#1082) 2021-11-28 09:36:42 +01:00
Nik
f06a749249
Add support for SQLite via a BABASHKA_FEATURE_SQLITE feature flag (#1079)
* implement native sqlite support as a feature flag following [1]

([1] is mentioned as a checklist of sorts as to how to add a new 
feature flag in [2])

[1] 13f65f05ae
[2] https://github.com/babashka/babashka/blob/master/doc/build.md

* bump to latest sqlite-jdbc, remove some no longer needed config+libs

based on feedback from borkdude here [1], bump xerial/sqlite-jdbc
3.36.0.3, which includes the graalvm classes and resource config
previously implemented via ericdallo/sqlite-jni-graal-fix and a `-H`
flag in `script/compile`

[1]: https://github.com/babashka/babashka/pull/1079#issuecomment-980533178
2021-11-28 09:34:54 +01:00
Michiel Borkent
803eb33369 CHANGELOG [skip ci] 2021-11-27 16:02:30 +01:00
Michiel Borkent
cdfba7d420 CHANGELOG [skip ci] 2021-11-27 16:00:41 +01:00
Michiel Borkent
4566905a5c
Add compatibility with hato and clj-http-lite insecure feature (#1080)
Added classes:

- java.net.CookiePolicy
- java.net.http.HttpTimeoutException
- javax.net.ssl.HostnameVerifier
- javax.net.ssl.HttpsURLConnection
- javax.net.ssl.KeyManagerFactory
- javax.net.ssl.SSLSession
- javax.net.ssl.TrustManagerFactory
- java.security.KeyStore
- java.util.zip.Inflater
- java.util.zip.ZipException
2021-11-27 15:58:24 +01:00
Michiel Borkent
a50930fc14 PR template [skip ci] 2021-11-26 23:18:25 +01:00
Michiel Borkent
6918114b1b CHANGELOG [skip ci] 2021-11-26 16:48:59 +01:00
Michiel Borkent
a8b43475c1 babashka.curl [skip ci] 2021-11-24 23:07:56 +01:00
Michiel Borkent
d5a4361f4d babashka.curl - :as :bytes 2021-11-24 21:47:17 +01:00
Michiel Borkent
9dbc2a4734 Add classes to support xforms
+          java.util.ArrayDeque
+          java.util.ArrayList
+          java.util.Collections
+          java.util.Comparator
+          java.util.NoSuchElementException

See previous commit
2021-11-24 17:41:40 +01:00
Michiel Borkent
e419c569a8
Support satisfies? on protocol values (#1076) 2021-11-24 17:38:38 +01:00
Michiel Borkent
a95c51998f
limit space of InetAddress4/6 2021-11-23 11:34:30 +01:00
Michiel Borkent
ef232bd432 sci 2021-11-22 23:22:55 +01:00
Michiel Borkent
29b693181c Merge branch 'master' into reader-resolver 2021-11-22 22:02:02 +01:00
Michiel Borkent
ffbfdd7a29 [#1071] Fix --version option, don't read cp file. Thanks @bobisageek 2021-11-22 16:47:59 +01:00
Michiel Borkent
369ee94c90
Add java.net.Inet4Address and java.net.Inet6Address (#1072) 2021-11-22 10:42:50 +01:00
Michiel Borkent
d897baff28 reader-resolver 2021-11-21 23:51:21 +01:00
Michiel Borkent
7b403b8052 Bump SCI 2021-11-21 22:33:04 +01:00
Michiel Borkent
8ae4fc5128 sci: default-reader-fn 2021-11-21 21:19:52 +01:00
Michiel Borkent
e360a8666a Support read-eval 2021-11-21 17:38:56 +01:00
Michiel Borkent
d04e897ef4 clojure.core/read improvements: support :eof + :read-cond 2021-11-21 14:37:14 +01:00
Michiel Borkent
2a826ac432 Fix fs 2021-11-21 12:23:00 +01:00
Michiel Borkent
2e2f6205c3 fs: fs/home and fs/expand-home 2021-11-21 11:46:35 +01:00
Michiel Borkent
a9d1612316 sci 2021-11-20 21:37:59 +01:00
Michiel Borkent
ef5c2cee2e clj-kondo config 2021-11-19 21:49:39 +01:00
Michiel Borkent
0428d983d9 update to newest sci 2021-11-19 21:46:16 +01:00
Michiel Borkent
1ebe142655 use sci/copy-ns 2021-11-19 18:43:18 +01:00
Michiel Borkent
44e8ea36fd Update with fs/with-temp-dir 2021-11-19 18:43:18 +01:00
Michiel Borkent
923adab737 Update with fs/with-temp-dir 2021-11-19 18:43:18 +01:00
Michael Glaesemann
5940b95cd2
Add javax.crypto classes necessary for calculating hmac shas. (#1066)
* Add javax.crypto classes necessary for calculating hmac shas.

* Add hmac-256-sha test for javax.crypto.
2021-11-18 08:49:59 +01:00
Michiel Borkent
bd79e6344a [skip ci] 2021-11-15 20:43:20 +01:00
Michiel Borkent
c651f1f944 [skip ci] 2021-11-15 20:40:03 +01:00
Michiel Borkent
66faeabc18 README [skip ci] 2021-11-14 18:02:04 +01:00
Michiel Borkent
bc151116dc Version bump 2021-11-13 15:37:34 +01:00
Michiel Borkent
dbac5791ab v0.6.5 2021-11-13 14:50:49 +01:00
Michiel Borkent
547c338de9 deps.clj: bump tools jar 2021-11-13 13:12:45 +01:00
Michiel Borkent
aae5f75215 CHANGELOG [skip ci] 2021-11-13 13:10:19 +01:00
Michiel Borkent
a0d03427d9 CHANGELOG [skip ci] 2021-11-13 13:09:04 +01:00
Michiel Borkent
52f9dc8f28
Add various tools.build related classes (#1062)
Co-authored-by: Hugo Duncan <hugo@hugoduncan.org>
2021-11-13 11:11:42 +01:00
Michiel Borkent
948c38c035 Add support for BasicFileAttributes 2021-11-13 11:05:21 +01:00
Michiel Borkent
aaaab5f6eb [#1061] Calling close on DirectoryStream fails 2021-11-13 10:44:16 +01:00
Michiel Borkent
321c47297d [#1061] Calling close on DirectoryStream fails 2021-11-13 10:38:21 +01:00
Michiel Borkent
877700710a fs: fix for unzip 2021-11-12 12:50:58 +01:00
Bob
fb1a1cfbfb
[#1046] add PGProperty fields to reflection config 2021-11-07 21:44:10 +01:00
Michiel Borkent
2bb7499fd5 [#1055] Segfault when reifying FileVisitor with visitFileFailed 2021-11-07 12:05:16 +01:00
Michiel Borkent
c86b28a210 edamame v0.0.14 2021-11-06 20:43:39 +01:00
Michiel Borkent
1e5ab961c2 edamame 0.0.13 2021-11-06 20:01:44 +01:00
Michiel Borkent
7c7053119a Expose babashka.deps/clojure 2021-11-06 13:01:35 +01:00
Michiel Borkent
552bcc7931 README [skip ci] 2021-11-06 09:38:23 +01:00
Michiel Borkent
8ebb890b26 Bump core.async to 1.4.627 2021-11-05 20:22:18 +01:00
Michiel Borkent
fe2138e71e Bump deps.clj 2021-11-05 17:15:05 +01:00
Michiel Borkent
c48ae27da3
Disable some service loader features for smaller image size (#1054)
This also excludes `java.awt.Toolkit`.

```
     -H:ServiceLoaderFeatureExcludeServices=java.net.ContentHandlerFactory \
     -H:ServiceLoaderFeatureExcludeServices=java.nio.charset.spi.CharsetProvider
```
2021-11-05 10:39:48 +01:00
Michiel Borkent
73c9f3b3ba
Add alias for musl (#1053) 2021-11-04 11:27:41 +01:00
Michiel Borkent
a9cc6e301e Bump to GraalVM 21.3.0 JVM 11 2021-11-04 11:01:41 +01:00
Michiel Borkent
19415f6363 Fix remaining args when invoking -m 2021-11-02 13:46:51 +01:00
Michiel Borkent
73426de206 deps.clj: tools jar upgrade 2021-11-02 10:40:05 +01:00
Michiel Borkent
11379deca1
[#999] Support Object.toString override on defrecords (#1050) 2021-11-02 10:29:52 +01:00
Rahuλ Dé
5ba275395d
add contajners to libraries (#1049) [skip ci] 2021-11-01 18:50:18 +01:00
Karol Wójcik
147e12f041
Add clojure.lang.IPersistentList (#1048) 2021-11-01 13:58:53 +01:00
Michiel Borkent
71b8d7fd37 deps.clj: manifest staleness 2021-10-30 11:49:59 +02:00
Michiel Borkent
d06837bc68 CHANGELOG [skip ci] 2021-10-29 14:51:05 +02:00
Michiel Borkent
b7030fd629 CHANGELOG [skip ci] 2021-10-29 14:50:19 +02:00
Michiel Borkent
a60427ecd7 Version bump 2021-10-29 14:49:34 +02:00
Michiel Borkent
0e3d0d03f0 v0.6.4 2021-10-29 14:27:34 +02:00
Michiel Borkent
7b6075232a deps.clj: delay version to runtime 2021-10-29 14:27:30 +02:00
Michiel Borkent
50914da542 deps.clj 2021-10-29 12:33:45 +02:00
Michiel Borkent
b3083f2c1d Version bump 2021-10-29 12:05:48 +02:00
Michiel Borkent
b115a80181 v0.6.3 2021-10-29 11:44:04 +02:00
Michiel Borkent
b39a666d73 deps.clj [skip ci] 2021-10-29 11:37:24 +02:00
Michiel Borkent
c96668e402 deps.clj upgrade 2021-10-29 11:26:05 +02:00
Michiel Borkent
973938134b Add Dr. Evidence to sponsoring companies [skip ci] 2021-10-26 18:01:23 +02:00
Michiel Borkent
66197ae416 [#1040] build time, not run time 2021-10-25 12:07:34 +02:00
Michiel Borkent
bfd78e7c56 Bump rewrite-clj 2021-10-25 12:05:49 +02:00
Michiel Borkent
cbfb1b54b7 [#1040] Add java.sql.SQLException to init at build time 2021-10-25 11:37:27 +02:00
Michiel Borkent
11cf09b6f3 sci: org change 2021-10-25 11:37:27 +02:00
Yann Vanhalewyn
37ec9f4638
Bump rewrite-clj to v1.0.699-alpha (#1042)
There is a bug in rewrite-clj v644 causing users to be unable to use
`:track-position` and `:auto-resolve` options at the same time in
rewrite zippers. See:

https://github.com/clj-commons/rewrite-clj/issues/159

This makes, for example, building static code analysis tools with
babashka much harder. In fact when analysing code, the position is
relevant for the script output and resolving keywords and symbols might
be required for the analysis.
2021-10-25 11:33:21 +02:00
Wojciech Wojtyniak
3f5bbdf118
Fix URL for Fluent (#1039)
The url was missing a colon after 'https'.
2021-10-24 22:10:27 +02:00
Michiel Borkent
e819cd1fb5 Update babashka.fs 2021-10-20 21:31:34 +02:00
Michiel Borkent
588e56d4e5 Add Schnaq to companies [skip ci] 2021-10-20 11:57:10 +02:00
Michiel Borkent
d24d56d832 README [skip ci] 2021-10-19 19:31:44 +02:00
Michiel Borkent
ace7c80534 deps.clj: make Java 17 compatible 2021-10-19 17:54:33 +02:00
Bob
5a80e1603e
- correct --init to be a global option (#1036)
- test --init before subcommands and task names
2021-10-18 15:39:08 +02:00
Bob
8dad1fa473
ruuter and clj-digest tests (#1034)
* add lib tests for using ruuter with built-in httpkit server

* just to be safe, add a timeout to ruuter's HTTP requests

* add tests for clj-commons.digest

* add newly-tested libraries to the library list

* undo paren moves I missed that were done by parinfer

* typo
2021-10-17 23:12:28 +02:00
Bob
bf3b6d2dca
add support for --init as a file to be loaded before evaluation actions (#1033) 2021-10-17 10:44:31 +02:00
Michiel Borkent
b9396ac318 bb.curl: support :follow-redirects false 2021-10-15 22:15:03 +02:00
Michiel Borkent
fd41f96cb7 Pods: support metadata - thanks @quoll 2021-10-15 19:46:12 +02:00
Michiel Borkent
7112153c46 fs [skip ci] 2021-10-14 13:39:36 +02:00
Michiel Borkent
e2d4b815d0
Add fluent.to to companies [skip ci] (#1031) 2021-10-14 13:21:26 +02:00
Michiel Borkent
83f2441bfd [#1030] Add fs/unzip 2021-10-12 17:23:09 +02:00
Michiel Borkent
405c34b668
Add java.security.Provider and java.security.Security (#1028)
This adds about 80k to the binary.
2021-10-11 17:28:12 +02:00
Michiel Borkent
8b8ba47f65 sci 2021-10-09 15:27:20 +02:00
Michiel Borkent
ffd8125925 Version bump 2021-10-08 15:08:22 +02:00
Michiel Borkent
ce6d4aaf34 Fix test 2021-10-08 14:43:57 +02:00
Michiel Borkent
5d4568188e v0.6.2 2021-10-08 14:30:30 +02:00
Michiel Borkent
eebe6627d7 babashka.nrepl with middleware 2021-10-07 23:57:01 +02:00
Michiel Borkent
bc63da1612
babashka fs: add unzip function (#1027) 2021-10-07 12:39:33 +02:00
Michiel Borkent
7af56d73e4 bb.curl [skip ci] added test 2021-10-06 20:58:35 +02:00
Michiel Borkent
1d67ab02e5 companies [skip ci] 2021-10-06 09:40:36 +02:00
Michiel Borkent
23480a4eb4 bb.curl: add :err :inherit 2021-10-05 22:37:18 +02:00
Michiel Borkent
b11925bd02 bb.nrepl #45 2021-10-05 19:39:40 +02:00
Michiel Borkent
0d01083780 companies [skip ci] 2021-10-05 15:32:42 +02:00
Michiel Borkent
77b1e344e2 companies [skip ci] 2021-10-05 10:01:14 +02:00
Michiel Borkent
9409d21f74 companies [skip ci] 2021-10-05 10:00:36 +02:00
Michiel Borkent
70af222d9d companies [skip ci] 2021-10-05 09:19:43 +02:00
Michiel Borkent
bbb2907029 companies [skip ci] 2021-10-05 08:43:33 +02:00
Michiel Borkent
7fc03e4bb4 companies [skip ci] 2021-10-04 21:24:45 +02:00
Michiel Borkent
0b2f70247f companies [skip ci] 2021-10-04 21:23:50 +02:00
Michiel Borkent
1ea18a3771 companies [skip ci] 2021-10-04 21:04:36 +02:00
Michiel Borkent
d5b7524264 Companies [skip ci] 2021-10-04 18:57:51 +02:00
Michiel Borkent
d30782403e
Companies [skip ci] (#1025) 2021-10-04 17:57:35 +02:00
Bob
b799ac7897
add mysql pprint example and minimallist doc [skip ci] (#1024)
* add mysql pretty-printing example

* add minimallist to libraries list

* fix typos
2021-10-04 12:01:31 +02:00
Michiel Borkent
19e3e84e05 sci: more tests 2021-10-01 21:52:54 +02:00
Michiel Borkent
09ac438cc2 sci: more extend-with-meta ordering fixes 2021-10-01 21:41:14 +02:00
Michiel Borkent
629d795980 sci: prefer meta in extend 2021-10-01 20:34:59 +02:00
Michiel Borkent
36f1b30778 sci: protocol order 2021-10-01 11:54:36 +02:00
Bob
d4ac7365e0
[#1015] print locals only when debug option is enabled (#1021) 2021-09-29 09:24:51 +02:00
Michiel Borkent
20610687de SCI callstack change 2021-09-27 22:51:31 +02:00
Michiel Borkent
774e4739ba README [skip ci] 2021-09-27 14:22:56 +02:00
Michiel Borkent
7063021f19
SCI: use public stacktrace logic (#1017) 2021-09-26 23:48:36 +02:00
Bob
a39cdc7e8c
Component lib test (#1016)
* add lib test for component

* add example of using GZip
2021-09-26 23:47:39 +02:00
Michiel Borkent
17bb2f93ad deps.clj 2021-09-25 12:23:53 +02:00
Michiel Borkent
4880a3ebe6 deps.clj 2021-09-25 11:11:31 +02:00
Bob
7df81f1273
make core.async and rewrite-clj integral (#1014)
* make core.async integral (not a feature)

tasks (in particular, parallel tasks) require core.async

* make rewrite_clj integral (not a feature)

* cleanup mistakes
2021-09-23 18:15:01 +02:00
Michael Glaesemann
7cb972fdec
Include java.util.stream.BaseStream in classes. (#1013) 2021-09-23 16:01:42 +02:00
Bob
407bd74a00
[#1004] XML edn reading and populating *data-readers* for feature deps (#1012)
* add XML edn reading and make *data-readers* closer to Clojure

- initial value of *data-readers*: empty map
- add XML readers to feature-flagged edn-readers for parsing *input*
- add edn-readers to *data-readers* to emulate data_readers.clj handling

* add YAML round-trip testing

* set root val of *data-readers* at top level
2021-09-20 18:31:57 +02:00
Michiel Borkent
58cbfd987b Templates [skip ci] 2021-09-17 12:45:59 +02:00
Michiel Borkent
f37a61a848 Templates [skip ci] 2021-09-17 12:19:16 +02:00
Michiel Borkent
664d708f1c Templates [skip ci] 2021-09-17 12:17:00 +02:00
Michiel Borkent
c8e170bba2 Templates [skip ci] 2021-09-17 12:15:59 +02:00
Michiel Borkent
9bb200b193 README [skip ci] 2021-09-16 11:04:43 +02:00
Kimmo Koskinen
89d07602e8
Add ZipFile (#1010) 2021-09-15 14:34:58 +02:00
Thiago Kenji Okada
9ca3a3bd31
Use Debian bullseye on CI/CD/Dockerfile (#1005)
* Migrate `Dockerfile` to use a bullseye-based image

Also, some QoL changes on the `Dockerfile`:
- Parametrize GRAALVM_VERSION to make it easier to update
- Remove installing programs already included on base image
- Remove `deps.edn` from `.dockerignore` since it is necessary to build

* Migrate CircleCI to use a bullseye-based image

Also some modifications necessary to make it work:
- Migrate from `circleci` images to `clojure` since they're out-of-date
  and also seem to be considered legacy:
  https://circleci.com/docs/2.0/circleci-images/#legacy-language-images
- Remove unnecessary usage of `sudo`, since all commands runs as root
- Sync packages with `Dockerfile`. This will make easier to test locally
  if everything will work (of course, it is not 100% guarantee)

* Remove lsof

* Remove "Install {Clojure,Leiningen}" steps

Already included on the base image.

* Do not change directory when downloading GraalVM

* Move "Download GraalVM" to script/download-graalvm

* Set GRAALVM_HOME correctly

* Unbreak mac build

* Revert "Set GRAALVM_HOME correctly"

This reverts commit 5e2a6158dc.

* Set GRAALVM_HOME correctly, take 2

* Improve download-graalvm script

* Re-added "Install Clojure" steps

* Set amd64 as default GRAALVM_ARCH

* Unbreak linux-aarch64

* Ubreak jvm

* Do not change directory

* Fix yaml

* Fix mac/linux-aarch64

* Add missing Clojure

* Fix cache

* Move GraalVM installation to /tmp

* Use script/install-clojure

* Use /opt instead of /tmp to install GraalVM

* Revert "Use /opt instead of /tmp to install GraalVM"

This reverts commit 3cfad03c8e.

* Use CircleCI's Clojure images again

* Go back to installing GraalVM on $HOME
2021-09-13 23:28:13 +02:00
Michiel Borkent
29c2fbb86d Version bump 2021-09-12 14:45:31 +02:00
Michiel Borkent
14362cdf5f CHANGELOGS [skip ci] 2021-09-12 14:42:49 +02:00
Michiel Borkent
500a4f9f60 v0.6.1 2021-09-12 14:22:45 +02:00
Michiel Borkent
11f0e1a566 Get rid of single segment namespace 2021-09-12 12:39:58 +02:00
Michiel Borkent
13d38ba455
Clj easy graal build time (#1008) 2021-09-12 11:50:32 +02:00
Michiel Borkent
0f723a1e7c
Fix aarch64 test (#1007) 2021-09-11 18:13:12 +02:00
Michiel Borkent
4c075e07e4 CHANGELOGS [skip ci] 2021-09-11 00:20:06 +02:00
Michiel Borkent
8ca21887be [#1006] Self-referential function returns wrong binding
Also see https://github.com/borkdude/sci/issues/613
2021-09-10 23:32:43 +02:00
Michiel Borkent
149fc261fa sci 2021-09-10 18:27:05 +02:00
Victor Bjelkholm
031080bfba
Add docs badge to top of README (#1002)
Finding myself scrolling around the readme for some seconds trying to find the link to the docs, which is a couple of sections down from the top. In order to help people (and myself) to find the reference faster, I added a badge in the top that links to the book/docs.
2021-09-09 14:03:21 +02:00
Michiel Borkent
a43e75ffd6
Add PipedInput/OutputStream (#1001) 2021-09-07 11:30:52 +02:00
Michiel Borkent
943dc69c66 Fix test 2021-09-01 23:30:33 +02:00
Michiel Borkent
1a764f3120 [#997] Add smoke test 2021-09-01 23:14:35 +02:00
Michiel Borkent
f5cdf89608 [#997] Fix for schmee java-http-clj send-async 2021-09-01 23:09:02 +02:00
Michiel Borkent
f6dd96a281 CHANGELOGS [skip ci] 2021-09-01 19:48:26 +02:00
Michiel Borkent
09dcd58ee8 Version bump 2021-09-01 17:50:33 +02:00
Michiel Borkent
5d07faa051 CHANGELOGS [skip ci] 2021-09-01 17:38:21 +02:00
Michiel Borkent
e3d6e433b2 v0.6.0 2021-09-01 17:34:52 +02:00
Michiel Borkent
faec6aeced v0.5.2 2021-09-01 17:34:25 +02:00
Michiel Borkent
e915e14612 Upgrade deps.clj, fix flaky test 2021-09-01 17:34:19 +02:00
Michiel Borkent
4be3abdd81 docs [skip ci] 2021-09-01 14:49:28 +02:00
Michiel Borkent
c69852eb9f Update projects.md page [skip ci] 2021-09-01 14:07:48 +02:00
Michiel Borkent
5422946eee CHANGELOGS [skip ci] 2021-09-01 14:00:37 +02:00
Michiel Borkent
e55559f727 CHANGELOGS [skip ci] 2021-09-01 13:59:26 +02:00
Michiel Borkent
c832819a76 Fix test 2021-09-01 13:45:23 +02:00
Michiel Borkent
cddd4ce581 [#995] Add clojure.data.xml/alias-uri 2021-09-01 13:34:47 +02:00
Michiel Borkent
1da01203ce Fix test 2021-09-01 11:54:09 +02:00
Michiel Borkent
23ba52a813
[#979] More java net http tests and tweaks (#996) 2021-09-01 11:36:24 +02:00
Michael Glaesemann
125e227976
Java http insecure context (#994)
* Add support for creating insecure context.

* Add BABASHKA_FEATURE_JAVA_NET_HTTP flag.

* Clean up java.net.http tests
2021-08-31 17:37:11 +02:00
Michiel Borkent
b71278cc68
[#979] JDK 11 Http Client
Co-authored-by: Michael Glaesemann <grzm@seespotcode.net>
2021-08-31 11:13:11 +02:00
Michiel Borkent
cebdd19c00
Upgrade to GraalVM 21.2.0 2021-08-30 20:16:18 +02:00
Bob
242c3d442f
Logging feature flag and tools.logging.readable (#981) (#987)
* put tools.logging behind a feature flag

* add tools.logging.readable

- move logging namespace to feature folder
- add logging.readable namespace
- add tests for logging.readable

* cleanup logging changes

- add logging env var to compile script
- remove unconditional require of logging namespace

* move old-config capture to before alter

* remove feature check from logging tests
2021-08-29 23:43:53 +02:00
Michiel Borkent
ad73a09c0e sci [skip ci] 2021-08-28 12:32:18 +02:00
Bob
4ee84947c9
use tagged-literal for unknown EDN tags when creating *input* (#975) (#976)
* use tagged-literal as default for unknown tags when using -I (or --stream without -i)

* use tagged-literal as default for unknown tags
2021-08-25 17:57:17 +02:00
Bob
a85d593767
make the REPL requires available to command-line scripts (#972) 2021-08-22 23:20:41 +02:00
Eric Dallo
72d3afa698
Migrate GraalVM configuration to jar (#973) 2021-08-22 23:19:28 +02:00
Thiago Kenji Okada
ef0af1244d
script: use musl from bullseye instead of unstable (#974)
Now that bullseye was released, Debian is starting to make bigger
changes on unstable. To avoid breakage, let's use musl from bullseye
that is the correct version that we were using until now (1.22-1):
https://packages.debian.org/bullseye/musl-tools

Eventually a better solution would be to simply use Debian bullseye to
compile everything, however the official Clojure image from Docker is
still using stretch. So this is a temporary solution until them.
2021-08-22 19:54:12 +02:00
Michiel Borkent
078cab1199 [#960] Support :clojure.core/eval-file metadata 2021-08-17 16:43:22 +02:00
Michiel Borkent
d4f5e57866 [#959] Add *print-readably* and *flush-on-newline* 2021-08-16 22:57:59 +02:00
Michiel Borkent
6c1c33e9ac sci [skip ci] 2021-08-14 21:08:23 +02:00
Michiel Borkent
f1fa47837a
[#969] Add java.lang.reflect.Method (getName only) (#970) 2021-08-13 11:25:00 +02:00
Bob
83b6d1e662
add lib test and an example for multigrep (#461) (#968)
* fix lanterna constants ns name

* add multigrep lib test and example
2021-08-11 10:52:00 +02:00
Bob
bb57d220d0
test that var metadata matches containing ns (#967)
* - change namespace on 'quick-check' to match clojure version
- add test for var meta->namespace alignment

* - add ns to with-transaction macro
2021-08-08 21:23:58 +02:00
Bob
116d73f0b0
- add :ns meta to more vars (#966)
- add a couple more tests for Coercions
2021-08-08 15:38:56 +02:00
Michiel Borkent
12c66351b3 Bump sci 2021-08-08 15:36:07 +02:00
Michiel Borkent
ed5c958d76 Bump sci: varify more vars 2021-08-07 09:39:27 +02:00
Bob
05e963bb6f
varify some core dynamic vars (#957) (#965)
* refer clojure core ns from sci.impl.vars instead
of sci.impl.namespaces

* add :ns meta to dynamic vars in b.i.clojure.core
2021-08-06 13:11:10 +02:00
Michiel Borkent
f1ebc854fe Bump sci 2021-08-06 13:10:46 +02:00
Michiel Borkent
4f4e222d40 Bump sci 2021-08-05 12:56:52 +02:00
Bob
ffd66d514a
add META-INF resource to windows compilation (to mirror linux compilation) (fixes #963) (#964) 2021-08-04 14:20:59 +02:00
Michiel Borkent
64fc58cd80 Update deps.edn on uberjar [skip ci] 2021-08-03 16:49:35 +02:00
Michiel Borkent
985079371c CHANGELOGS [skip ci] 2021-08-03 12:35:07 +02:00
Michiel Borkent
df3130ec66 Version bump 2021-08-03 10:57:19 +02:00
Michiel Borkent
bda2017d0d Skip print-deps-test on Windows for now 2021-08-03 10:36:56 +02:00
Michiel Borkent
cc71e2884e v0.5.1 2021-08-03 09:36:42 +02:00
Michiel Borkent
ff8ad66350 CHANGELOGS [skip ci] 2021-08-02 23:41:15 +02:00
Michiel Borkent
be29d791a8 [#733] print-deps tests 2021-08-02 23:34:38 +02:00
Michiel Borkent
5a0f056a42 deps.clj 2021-08-02 22:52:50 +02:00
Michiel Borkent
768b0c4594 Fix deps.clj 2021-08-02 17:20:00 +02:00
Michiel Borkent
67b77c121a Update deps.clj to 1.10.3.933 2021-08-02 17:08:48 +02:00
Michiel Borkent
1235ad0f9a [#957]: more varify in SCI 2021-08-01 22:08:19 +02:00
Michiel Borkent
3f72507f77
[#957] Repair ns meta 2021-07-31 14:44:26 +02:00
Michiel Borkent
89695d8f7a babashka.nrepl#43 2021-07-27 13:46:53 +02:00
Michiel Borkent
f5125a6f37 nREPL server: get rid of SCI internals 2021-07-27 13:46:53 +02:00
Michiel Borkent
84430c60f8
[#720, #733] print-deps (#958) 2021-07-27 11:29:00 +02:00
Bob
a9e445e5a1
fix windows lib tests (#956)
- add lib-tests path to deps.edn and remove it from shell scripts
- change windows lib test batch script to write a bb.edn file
- re-enable native lib tests on windows
2021-07-25 23:49:01 +02:00
Michiel Borkent
2282b2922d process update 2021-07-23 17:21:39 +02:00
Michiel Borkent
8387109166 Fix flaky test on Windows 2021-07-23 11:51:39 +02:00
Michiel Borkent
294cfe403c Fix flaky bb-edn test 2021-07-23 11:15:03 +02:00
Michiel Borkent
d1b7c6edea CHANGELOGS [skip ci] 2021-07-23 11:01:41 +02:00
Michiel Borkent
25390103fd [#953] Support full reflection on printwriter 2021-07-23 10:59:28 +02:00
Michiel Borkent
f685d9d036 CHANGELOGS [skip ci] 2021-07-22 20:24:54 +02:00
Michiel Borkent
7e0b19ad43 Update babashka.fs 2021-07-22 20:17:46 +02:00
Bob
2863dce99c
add windows-specific clojure test (#950) 2021-07-22 12:34:07 +02:00
Michiel Borkent
7fac0f1eb9
[#947] Vault tests, part 1 (#949) 2021-07-21 12:35:38 +02:00
Michiel Borkent
9c338c9b7f Add timbre/merge-config! 2021-07-18 11:19:47 +02:00
Eugen Stan
d25dd17510
Added InterruptedExcpetion to bb (#943) 2021-07-16 09:52:08 +02:00
Eugen Stan
c1eb47a262
Added IllegalStateException to automatic imports (#942) 2021-07-16 09:48:13 +02:00
Eugen Stan
95a6bc0d54
Added IllegalStateException to bb (#941) 2021-07-15 22:16:25 +02:00
Michiel Borkent
1e4315d1b8 Cut down on Windows tests for now 2021-07-15 16:39:01 +02:00
Michiel Borkent
0df46ab8ff Fix Windows? 2021-07-15 13:52:32 +02:00
Michiel Borkent
7b76eaf956 Disable task test for Windows 2021-07-15 13:16:38 +02:00
Michiel Borkent
fabc0c6ccd Upgrade clj-yaml 2021-07-15 11:18:37 +02:00
Michiel Borkent
8eff166244 [skip ci] 2021-07-15 10:58:36 +02:00
Michiel Borkent
d525428f15 Bump deps 2021-07-15 10:52:29 +02:00
Michiel Borkent
f058463685 Thanks @justone for the better name [skip ci] 2021-07-15 10:36:07 +02:00
Michiel Borkent
403dd8fb3d CHANGELOG [skip ci] 2021-07-14 23:59:39 +02:00
Michiel Borkent
4058afd40e Version bump 2021-07-14 23:46:54 +02:00
Michiel Borkent
0f37149740 CHANGELOG [skip ci] 2021-07-14 23:43:41 +02:00
Michiel Borkent
051cae8b6e 0.5.0 for real 2021-07-14 23:16:26 +02:00
Michiel Borkent
2aa4d26df2 v0.4.7 2021-07-14 23:16:00 +02:00
Michiel Borkent
299ca0515b CHANGELOG [skip ci] 2021-07-14 22:54:54 +02:00
Michiel Borkent
2c7e559351 0.5.0 but with trace 2021-07-14 22:51:18 +02:00
Michiel Borkent
cdc4a4987d FIX THE BLOAT 2021-07-14 22:06:19 +02:00
Michiel Borkent
2932e24652 v0.5.0 2021-07-14 16:31:56 +02:00
Michiel Borkent
a888a340ae Update Slmer: include << macro 2021-07-14 16:30:27 +02:00
Michiel Borkent
3ec7ced8cd Fix Windows test 2021-07-14 16:03:15 +02:00
Michiel Borkent
a8eea0dfd7 Fix Windows test 2021-07-14 14:59:49 +02:00
Michiel Borkent
36ab5ab299 [#935] Fix logging test for windows 2021-07-14 14:25:32 +02:00
Michiel Borkent
3d45f62dd2 [#935] Add logging tests 2021-07-14 12:43:12 +02:00
Hans Bugge Grathwohl
c1a48443d4
Fix typo in CHANGELOG.md (#937) [skip ci] 2021-07-13 14:38:38 +02:00
Michiel Borkent
24d1de51a0 sci: add another self-ref test 2021-07-13 12:57:47 +02:00
Michiel Borkent
51b1fb58d2 Fix tests 2021-07-13 12:52:21 +02:00
Michiel Borkent
5b459da10a Fix tests 2021-07-13 11:47:35 +02:00
Michiel Borkent
588cda9eac [#934] Environment variables not picked up by tools.deps 2021-07-13 11:31:36 +02:00
Michiel Borkent
e996351dc9 Add clojure.tools.logging + timbre 2021-07-12 22:59:07 +02:00
Michiel Borkent
a359bd1746 Use data.json 2.4.0 2021-07-12 22:50:22 +02:00
Michiel Borkent
0a9d7cbc6f Add Dig Gashinsky to sponsors [skip ci] 2021-07-12 17:07:29 +02:00
Michiel Borkent
28f986e201 [#934] pick up env vars from :extra-env in deps step 2021-07-12 16:59:10 +02:00
Michiel Borkent
bb50b6a942 Update links in dev doc [skip ci] 2021-07-12 15:32:31 +02:00
Michiel Borkent
220037c681 borkdude/sci#589: fix stacktrace with invalid import 2021-07-12 12:12:31 +02:00
Bob
af6f94ef81
run lib tests in Windows CI (#933)
* run lib tests in Windows CI

- add batch scripts for invoking tests
- skip some tests on windows
- tweak a couple tests to run on linux and windows

* configure git to checkout with Windows line endings on Appveyor
2021-07-12 00:00:14 +02:00
Bob
b6e65c08a8
add cl-format tests for nil and Writer args (#931) 2021-07-10 21:39:23 +02:00
Michiel Borkent
6a76a73e18 Use direct linking in profiler [skip ci] 2021-07-10 20:34:38 +02:00
Michiel Borkent
8c37594006 Add clojure.data.json tests 2021-07-10 17:16:14 +02:00
Michiel Borkent
3deb154fca sci: function reference equality 2021-07-10 16:51:34 +02:00
Michiel Borkent
02237c47ce Fix windows tests 2021-07-10 14:00:14 +02:00
Michiel Borkent
0832b0a480 Fully support PushbackReader 2021-07-10 11:40:19 +02:00
Michiel Borkent
9b6929e745 CHANGELOG [skip ci] 2021-07-10 11:33:45 +02:00
Michiel Borkent
d47290e996
[#922,#927] pprint/formatter-out + cl-format with-out-str support (#930) 2021-07-10 11:32:21 +02:00
Bob
5430fee1fd
ffclj link and logger example (#839 and #806) (#924)
* add ffclj to libraries list

* add simple logger macro to examples

* add a missing link on projects page
2021-07-08 20:18:01 +02:00
Michiel Borkent
39e17f149b CHANGELOG [skip ci] 2021-07-07 21:20:21 +02:00
Michiel Borkent
46892580c2
[#921, #922] clojure.data.json support, first steps 2021-07-07 21:17:57 +02:00
Michiel Borkent
b95a40c4f2 sci docs [skip ci] 2021-07-07 16:16:29 +02:00
Bob
b53be25b94
[#817] add crispin to lib tests and projects.md (#918)
* add crispin to lib tests and projects.md

* add a missing line in crispin example
2021-07-07 10:01:36 +02:00
Michiel Borkent
4c0578c56c CHANGELOGS [skip ci] 2021-07-05 21:27:54 +02:00
Michiel Borkent
789b8f701e deps.clj update 2021-07-05 21:27:54 +02:00
Bob
097e45d180
[#877] add omniconf lib tests 2021-07-05 21:12:11 +02:00
Michiel Borkent
f47f8b9ad1 Catch up with clojure CLI 2021-07-05 18:45:16 +02:00
Michiel Borkent
277029caae [#914] Fix failing test 2021-07-05 18:26:29 +02:00
Michiel Borkent
2dd18e7cc6 Failing test, fix later 2021-07-05 00:05:48 +02:00
Michiel Borkent
a7d669b47b Fix tests 2021-07-04 22:27:14 +02:00
Michiel Borkent
432680b2f3 [#914] Fix cache dir 2021-07-04 22:18:16 +02:00
Michiel Borkent
1efed2c3c7 minor help edit [skip ci] 2021-07-04 20:41:09 +02:00
Michiel Borkent
3cf3a83c49 [#914] clojure with :dir option doesn't resolve deps in :dir (2) 2021-07-04 12:16:16 +02:00
Michiel Borkent
9eb3c8189c CHANGELOG [skip ci] 2021-07-04 11:47:28 +02:00
Michiel Borkent
b809dd55e8 [#914] clojure with :dir option doesn't resolve deps in :dir 2021-07-04 11:45:51 +02:00
Bob
a542227442
add examples for #324 and #369 [skip ci] (#911)
* add examples for:
- checking stdin for available input
- using data.xml lib

* fix some string contents left over from an XML change
2021-07-03 23:53:58 +02:00
Bob
47bcb4be5e
add heap size and 'expert' flags to help text (#908) 2021-06-30 18:21:35 +02:00
Michiel Borkent
42dffdad84 doc [skip ci] 2021-06-29 23:39:07 +02:00
Michiel Borkent
ac957dada4 doc [skip ci] 2021-06-29 23:38:21 +02:00
Michiel Borkent
9fa5b600d9 doc [skip ci] 2021-06-29 23:37:29 +02:00
Michiel Borkent
000e88f0c6 sci: minor cleanup 2021-06-28 18:19:59 +02:00
Michiel Borkent
c447bc3f2c Revert last cleanup 2021-06-27 23:46:04 +02:00
Michiel Borkent
9acf8145d0 sci: minor cleanup 2021-06-27 23:24:45 +02:00
Michiel Borkent
07c9f58cf8 sci: minor cleanups 2021-06-27 23:14:56 +02:00
Michiel Borkent
98ab1338ab sci: refactor error reporting structure 2021-06-27 16:31:14 +02:00
Michiel Borkent
4133c9f562 sci [skip ci] 2021-06-25 12:53:09 +02:00
Bob
16911a54f0
add more windows testing (#902)
- add default test selector to skip "windows only" tests
- in cases where the differences between *nix shell and windows shell
  make the test very messy, add a separate "windows only" test
- make more tests work on Windows
2021-06-24 22:34:57 +02:00
Michiel Borkent
6843eb6d2e sci: minor cleanup [skip ci] 2021-06-24 15:09:50 +02:00
Michiel Borkent
e42603dac0 example [skip ci] 2021-06-24 13:22:34 +02:00
Michiel Borkent
c7942badfb sci: issue 575 2021-06-24 10:35:06 +02:00
Michiel Borkent
b1992e028d sci: tests [skip ci] 2021-06-22 22:29:10 +02:00
Michiel Borkent
9df9566836 CHANGELOG [skip ci] 2021-06-21 22:41:24 +02:00
Michiel Borkent
ef64e93238 replikativ/hasch tests in CI 2021-06-21 21:58:41 +02:00
Michiel Borkent
e47e77c3d6 Add java.io.FileInputStream 2021-06-21 19:42:04 +02:00
Michiel Borkent
d90f4e7bac
sci: pull apart bindings in eval (#900) 2021-06-21 12:00:53 +02:00
Michiel Borkent
e143eb1cb1 [#899] Fix JVM test 2021-06-20 14:26:40 +02:00
Michiel Borkent
f27098f877 CHANGELOG [skip ci] 2021-06-20 13:33:04 +02:00
Michiel Borkent
af754d013f [#899] (read-line) is buggy in REPL 2021-06-20 13:32:33 +02:00
Michiel Borkent
13773d0104 sci: minor map eval 2021-06-20 12:42:28 +02:00
Bob
35e2cd9d05
make tests run on windows as the default (#235) (#898)
* make tests run on windows as the default

- change from selecting tests to run to selecting tests to skip (remove all :windows tags, add
  :skip-windows tag to tests that don't currently work on windows)
- handfuls of calls to `normalize` and `escape-file-paths` to handle platform differences
- split `task-test` to make most of the tests run on windows, and exclude just a couple of Unix-y tests

* make a binding name clearer

* skip nrepl-server-test on Windows

- test fails on CI, so disabling it for now

* unset bb environment vars after running tests

* unset bb environment var after running release-artifact

BABASHKA_EDN being set can interfere with some tests, so unset it before running the
native tests

* skip uberjar test on Windows

uberjar-test's 'throw on empty classpath' test failing on Windows native
 (but passes on JVM) - skip it for now
2021-06-20 09:23:58 +02:00
Michiel Borkent
55f9458f65 sci: minor map eval stuff 2021-06-19 23:02:24 +02:00
Michiel Borkent
f6cd060c83 doc [skip ci] 2021-06-19 16:39:55 +02:00
Michiel Borkent
99c01b7261 Add normalize-keywords example [skip ci] 2021-06-19 16:33:01 +02:00
Michiel Borkent
cacb516e48 sci: get rid of needs-ctx in evaluator 2021-06-19 14:00:12 +02:00
Bob
ce4702318a
add more windows testing (#894)
- just handling line endings and escaping backslashes in file paths
2021-06-18 23:51:46 +02:00
Bob
e056cb96aa
add more windows testing (#891)
- add `normalize` call to `bb-native` output
- add `escape-file-paths` function to double up backslashes for Windows paths
  passed as strings
- add :windows selector to about 10 more tests, along with various small changes
  for Windows testing
- update test.bat to more closely mirror the Linux/Mac test script
2021-06-17 19:43:43 +02:00
Michiel Borkent
dfbbd4fda5 sci [skip ci] 2021-06-17 18:19:40 +02:00
Michiel Borkent
23eaed140c CHANGELOG [skip ci] 2021-06-16 21:20:16 +02:00
Michiel Borkent
af036f9d3a
Passing form on Windows with question mark breaks evaluation #889 2021-06-16 21:18:31 +02:00
Michiel Borkent
7d696f0dc5 deps.clj [skip ci] 2021-06-16 17:37:43 +02:00
Bob
63619fd66b
add windows selector to a couple of tests (#235) (#888) 2021-06-16 16:40:02 +02:00
Michiel Borkent
90ac55d588
Start porting Windows tests (#235) (#887) 2021-06-16 11:01:17 +02:00
Michiel Borkent
f519c35823 doc [skip ci] 2021-06-13 22:52:32 +02:00
Michiel Borkent
535b70093d Version bump 2021-06-13 22:26:46 +02:00
Michiel Borkent
0dc4c59794 v0.4.6 2021-06-13 21:55:43 +02:00
Michiel Borkent
35103f40ef
Upgrade to graal 21.1, fixes #884 (#885) 2021-06-13 21:53:07 +02:00
Michiel Borkent
4492db289e CHANGELOG [skip ci] 2021-06-10 12:38:35 +02:00
Michiel Borkent
d382eb9fc9 Version bump 2021-06-10 12:37:16 +02:00
Michiel Borkent
1a4c627702 v0.4.5 2021-06-10 12:21:45 +02:00
Michiel Borkent
637f0bb757 CHANGELOG [skip ci] 2021-06-10 12:21:38 +02:00
Michiel Borkent
6e4044c623 Async is not optional 2021-06-10 12:10:47 +02:00
Michiel Borkent
732d2b5a8b
Allow .notify / .wait interop call #879 2021-06-10 12:04:23 +02:00
Michiel Borkent
12d6afc885 STM: add commute 2021-06-09 22:47:17 +02:00
Michiel Borkent
6e86e69010 minor [skip ci] 2021-06-09 20:19:44 +02:00
Michiel Borkent
bda6c0f36e borkdude/deps.clj#46: fix passing JVM opts 2021-06-09 20:15:32 +02:00
Michiel Borkent
9385805423
STM (#882) 2021-06-09 15:47:34 +02:00
Michiel Borkent
18f5c566cc Add doc [skip ci] 2021-06-09 10:49:34 +02:00
Michiel Borkent
daa8eb06d7 Add doc [skip ci] 2021-06-09 10:48:33 +02:00
Michiel Borkent
ac4867daf7 Add doc [skip ci] 2021-06-09 10:40:12 +02:00
Michiel Borkent
15e54ef0a1
Add support for slingshot #675 (#881)
* Add java.util.Arrays/copyOfRange for slingshot

* add exception for tests

* Add slingshot tests
2021-06-09 10:39:43 +02:00
Michiel Borkent
426e97d1df sci: get rid of eval-call 2021-06-08 17:40:58 +02:00
Michiel Borkent
267c478e58 sci: only case for CLJS 2021-06-08 15:40:23 +02:00
Michiel Borkent
d6ac0687d9 sci: Get rid of static via meta call 2021-06-08 15:31:23 +02:00
Michiel Borkent
c1f621930d sci: Get rid of static via meta call 2021-06-08 15:20:54 +02:00
Michiel Borkent
ac8f9b4f8f Sci: get rid of call via meta op 2021-06-08 11:36:31 +02:00
Michiel Borkent
9af436a0d4
Add java.net.InetSocketAddress (#878) 2021-06-07 20:20:28 +02:00
Michiel Borkent
cc21fcc9ef sci: more ctx-fn 2021-06-06 20:59:36 +02:00
Michiel Borkent
fcc57e08bc sci: return direct fn call 2021-06-06 13:56:21 +02:00
Michiel Borkent
f6e52b37d5 sci: emit error at analysis time for invalid keyword call 2021-06-06 12:59:52 +02:00
Michiel Borkent
e5a6c5b7a5 sci: clean 2021-06-03 11:33:40 +02:00
Michiel Borkent
3764b52f3a Implement custom deref outside of sci 2021-06-03 00:25:57 +02:00
Michiel Borkent
225c04d784 sci: minor 2021-06-02 23:34:59 +02:00
Michiel Borkent
957f97fd15 sci: revert optimizations 2021-06-02 21:39:44 +02:00
Michiel Borkent
5d89c623c3 sci: minor 2021-06-02 21:18:01 +02:00
Michiel Borkent
ef4bd8e5f6 sci: count at analysis time 2021-06-02 20:48:47 +02:00
Michiel Borkent
99475511e0 sci: fn destructure at analysis 2021-06-02 20:13:00 +02:00
Michiel Borkent
d8ea844058 sci: minor fn optimization 2021-06-02 18:01:22 +02:00
Michiel Borkent
c71beafcd3 sci: minor fn enhance 2021-06-02 16:18:00 +02:00
Michiel Borkent
d4bf1d1a1d sci: clean up symbol resolution 2021-06-02 12:02:31 +02:00
Michiel Borkent
dddc32adfd Version bump 2021-06-01 12:08:31 +02:00
Michiel Borkent
952af31296 doc [skip ci] 2021-06-01 11:58:53 +02:00
Michiel Borkent
6bd17bad98 CHANGELOG [skip ci] 2021-06-01 11:50:36 +02:00
Michiel Borkent
3a9022be04 v0.4.4 2021-06-01 11:47:04 +02:00
Michiel Borkent
e833fb2703 CHANGELOG [skip ci] 2021-06-01 11:46:53 +02:00
Michiel Borkent
beb7d8a9a8
Add java.lang.StackTraceElement 2021-06-01 11:45:12 +02:00
Michiel Borkent
e7bcb2170a Additional fix for borkdude/sci#567 2021-06-01 11:29:17 +02:00
Michiel Borkent
97298ab0f1 CHANGELOG [skip ci] 2021-06-01 11:13:30 +02:00
Michiel Borkent
fa82ec5087 sci: support trailing metadata in defn 2021-06-01 11:12:41 +02:00
Michiel Borkent
cc26984ab7 Update babashka.nrepl 2021-05-31 14:28:45 +02:00
Michiel Borkent
b0490a0161 CHANGELOG [skip ci] 2021-05-31 10:34:02 +02:00
Michiel Borkent
a8f5ef7287 CHANGELOG [skip ci] 2021-05-31 00:08:06 +02:00
Michiel Borkent
42bf790068
[#872] Add java.lang.ProcessHandle$Info (#873)
And java.util.Optional
2021-05-31 00:06:21 +02:00
Michiel Borkent
524a260c26 sci: minor cleanup 2021-05-30 23:24:31 +02:00
Michiel Borkent
4bb2ba8b2c sci: in-ns minor 2021-05-30 22:11:30 +02:00
Michiel Borkent
8efc710fb3 sci: interop refactor 2021-05-30 21:37:03 +02:00
Michiel Borkent
dceb3d7f10 sci: interop refactor 2021-05-30 21:35:52 +02:00
Michiel Borkent
d1cee42c9d CHANGELOG [skip ci] 2021-05-30 13:24:05 +02:00
Michiel Borkent
82625b57dd Tasks: fix edge case 2021-05-30 12:30:06 +02:00
Michiel Borkent
35874fa5ce babashka.nrepl#40 2021-05-30 12:23:41 +02:00
Michiel Borkent
ac576bd6e7 [#865] Stable namespace 2021-05-30 11:36:30 +02:00
Michiel Borkent
94fc8298e6 [#865] Use print-meta when emitting tasks 2021-05-30 11:27:11 +02:00
Michiel Borkent
9347bfd3d3 sci: new/constructor enhancement 2021-05-29 13:47:14 +02:00
Michiel Borkent
b731cf7f10 sci: lazy-seq enhancement 2021-05-29 11:07:07 +02:00
Thiago Kenji Okada
0a3149ae8a
Do not exit when --static is called on non-Linux [skip ci] (#871)
While creating [this gist](https://gist.github.com/thiagokokada/115b2588ff65a48d54b8832488801c92)
I realized that exiting if the --static flag is passed on non-Linux systems
just make more difficult to handle those cases.

Instead, let's just print a message informing the user of their mistake,
and keep running the script with the correct filename.
2021-05-28 23:43:31 +02:00
Michiel Borkent
fa410a7b5e sci: enhancement for throw 2021-05-28 19:03:02 +02:00
Michiel Borkent
f5deafffb8 sci: try / catch 2021-05-28 17:15:39 +02:00
Thiago Kenji Okada
e955926ee9
Improvements to install script [skip ci] (#870)
- Use `mktemp -d` to generate a temporary directory, only if user
  doesn't use `--download-dir`
- Clean-up the temporary directory using `trap`. Remove
  other `rm` calls from code since they're not necessary
  anymore
- Run download in a subshell, so after finishing it the
  script is still on the directory where the user ran
  the script. Fix `./install --dir .` usage
- Fix backup of old Babashka install
2021-05-28 17:07:52 +02:00
Michiel Borkent
1c1d4b531f Install script: default download dir to TMPDIR [skip ci] 2021-05-28 13:33:11 +02:00
Michiel Borkent
745e2b0848 sci minor [skip ci] 2021-05-28 11:50:48 +02:00
Michiel Borkent
1fe1e46e71 sci: minor improvements 2021-05-28 11:44:20 +02:00
Michiel Borkent
b9524e5d6e sci: case improvements 2021-05-28 11:30:16 +02:00
Michiel Borkent
7a3c30ab3f babashka.fs [skip ci] 2021-05-28 09:28:14 +02:00
Michiel Borkent
48a9ec6c0d Install script [skip ci] 2021-05-27 17:35:55 +02:00
Michiel Borkent
ec479f049a Example: xml-zip [skip ci] 2021-05-27 09:31:35 +02:00
Michiel Borkent
17f35b4d48 sci and tweak aot 2021-05-26 17:38:34 +02:00
Thiago Kenji Okada
4b4ada9617
Improve script/setup-musl (#867) 2021-05-25 18:52:30 +02:00
Michiel Borkent
3eafacac2b sci: set! for CLJS 2021-05-25 15:44:56 +02:00
Michiel Borkent
6bcc0e4a3f deps.clj 2021-05-25 15:44:56 +02:00
Michiel Borkent
5890238666 deps.clj 2021-05-25 15:44:56 +02:00
Jakub Holy
4a5972f15e
projects: + oidc-client (#862) [skip ci] 2021-05-21 19:35:51 +02:00
Thiago Kenji Okada
20cc3b4cdd
Use shasum instead of sha256sum [skip ci] (#861)
sha256sum is not available in macOS by default.

See: https://github.com/ESGF/esg-search/issues/84#issuecomment-213694850

However, shasum seems to be avaialble, so use that instead.
2021-05-21 16:52:38 +02:00
rng-dynamics
512a6f2220
feat: print data of uncaught ExceptionInfo to output (#854)
* feat: print data of uncaught ExceptionInfo to output

* println -> prn, add tests
2021-05-20 22:49:58 +02:00
Michiel Borkent
6f15b507c6 Version bump 2021-05-20 13:10:18 +02:00
Michiel Borkent
22f3464066 v0.4.3 2021-05-20 12:52:41 +02:00
Michiel Borkent
ab9d2a0c2c Version bump 2021-05-20 12:43:01 +02:00
Michiel Borkent
66e4d1936c CHANGELOG [skip ci] 2021-05-20 12:41:31 +02:00
Michiel Borkent
ce5fdcd564 v0.4.2 2021-05-20 12:09:41 +02:00
Michiel Borkent
add033324b 0.4.2 2021-05-20 12:09:35 +02:00
Michiel Borkent
47cc09908a Pods: minor 2021-05-20 12:04:41 +02:00
Michiel Borkent
ae9eaa4bc4 Pods: transit fns 2021-05-19 21:32:25 +02:00
Michiel Borkent
703b517718 Add transit read-handler-map and write-handler-map 2021-05-19 19:19:23 +02:00
Michiel Borkent
a4b97cb1e7 babashka.curl README 2021-05-19 15:55:47 +02:00
Michiel Borkent
a942befc65
Add more agent vars (#857) 2021-05-19 14:00:48 +02:00
Andrea Richiardi
7e3b1f58d5
Use sequential? for identifying if the script output needs splitting (#853) 2021-05-19 00:07:39 +02:00
Michiel Borkent
9f48048472 [#847] Better error handling for parallel tasks (2) 2021-05-18 13:19:09 +02:00
Michiel Borkent
e18f4302a8
[#847] Better error handling for parallel tasks 2021-05-18 12:39:21 +02:00
Michiel Borkent
00091136d3 CHANGELOGS [skip ci] 2021-05-18 10:56:48 +02:00
Michiel Borkent
5ce7f2d67d babashka.pods: transit read+write handlers 2021-05-17 11:45:11 +02:00
Michiel Borkent
454ed43ae4 Fix deps.edn 2021-05-16 23:13:10 +02:00
Michiel Borkent
42104a617d deps.edn [skip ci] 2021-05-16 23:00:16 +02:00
Thiago Kenji Okada
21fc124b1c
Fix link in README.md [skip ci] (#848) 2021-05-16 17:29:02 +02:00
Michiel Borkent
a832b85ab5 browse-url: Use open in macOS without specifying location 2021-05-15 23:22:02 +02:00
Thiago Kenji Okada
69e58440ab
Improve clojure.java.browse (#846)
* Remove xdg-open hardcoded path in impl.clojure.java.browse

Binaries in Linux are not guarantee to be located on /usr/bin.

For example, NixOS the binaries are located in
/run/current-system/sw/bin/xdg-open (that is actually just a symlink to
/nix/store). The distro may also not have xdg-open installed at /,
instead the user may put it somewhere else like $HOME/bin.

This commit fixes this by using not hardcoding the PATH of xdg-open,
instead relying on shell path to search it.

* Implement clojure.java.browse/*open-url-script*

This allows usage of a custom URL script, like:

```clojure
(binding [*open-url-script* (atom "my-browse-url-script")]
  (browse-url "https://google.com"))
```

*open-url-script* is an atom just to keep compatibility with Clojure.

Described here: https://clojuredocs.org/clojure.java.browse/*open-url-script*
2021-05-15 22:10:52 +02:00
Thiago Kenji Okada
e4d5988921
Document install new flags in README.md (#844) [skip ci] 2021-05-14 21:27:53 +02:00
Thiago Kenji Okada
c39d4bc320
Improve install script (#842)
* Add checksum to install script

This will allow someone to check if Babashka is correctly downloaded,
e.g.:

```
$ ./install --dir /tmp --checksum 3cb19f158b9f1655e0165b6c4067d35faaa05882bbdb230616c91085b02b5bf4
Downloading https://github.com/babashka/babashka/releases/download/v0.4.1/babashka-0.4.1-linux-amd64.tar.gz to /tmp
Failed checksum on babashka-0.4.1-linux-amd64.tar.gz
Got: 3cb19f158b9f1655e0165b6c4067d35faaa05882bbdb230616c91085b02b5bf3
Expected: 3cb19f158b9f1655e0165b6c4067d35faaa05882bbdb230616c91085b02b5bf4
```

There is no check by default. This makes this change backwards
compatible (e.g.: if the machine doesn't have sha256sum, this change
will not break installation).

* Add --static to install script

This will allow installation of static instead of dynamically binaries
on Linux.

* Add checksum to print_help

* Add check that --checksum and --options should be provided together
2021-05-14 21:05:38 +02:00
Michiel Borkent
e6a2fdbb45
Add HoneySql v2 tests (#841) 2021-05-14 12:04:56 +02:00
Michiel Borkent
17a7129595 README [skip ci] 2021-05-14 10:30:52 +02:00
Michiel Borkent
439a1b1053 Version bump 2021-05-13 13:46:44 +02:00
Michiel Borkent
4c816cbfba v0.4.1 2021-05-13 13:26:14 +02:00
Michiel Borkent
6aca41a48a
[#829] Allow thread-first in combination with shell 2021-05-13 13:10:56 +02:00
Michiel Borkent
11b066ae70 Include binary size in msg 2021-05-13 12:13:02 +02:00
Michiel Borkent
c01700c9c7 Update release link 2021-05-13 12:10:37 +02:00
Michiel Borkent
c8e6e7ad4c Update release link 2021-05-13 12:02:01 +02:00
Michiel Borkent
7462d86afd [#837] Add babashka.task System property 2021-05-13 11:53:28 +02:00
Michiel Borkent
5014012bd6 [#836] Add :error-fn option to shell 2021-05-13 11:45:27 +02:00
Michiel Borkent
5554619a9d Selmer: util/set-missing-value-formatter! 2021-05-11 22:13:50 +02:00
Michiel Borkent
00fd7820c3 Fix Windows httpkit config 2021-05-11 14:16:35 +02:00
Michiel Borkent
4ffd08f360 [#835] Expose escaping functions from selmer.util 2021-05-11 13:19:31 +02:00
Michiel Borkent
e3413600c6 Add thread-bound? 2021-05-11 11:42:38 +02:00
Michiel Borkent
c18be0a157 Import NullPointerException 2021-05-11 10:15:42 +02:00
Thiago Kenji Okada
14e053e0a3
Add BABASHKA_MUSL build variable (#834)
This allows building a Babashka binary using musl C libraries instead,
instead of hardcoding this accordingly to the CPU arch.
2021-05-11 00:10:11 +02:00
Michiel Borkent
43ba26e11a musl workaround 2021-05-10 23:31:08 +02:00
Michiel Borkent
f8944f1286 Another bash fix 2021-05-10 23:27:54 +02:00
Michiel Borkent
562922a586 Fix order in Dockerfile 2021-05-10 23:25:01 +02:00
Michiel Borkent
a8528e4a4a Fix bash 2021-05-10 23:16:59 +02:00
Michiel Borkent
f4fb27be98 Fix bash script 2021-05-10 23:08:11 +02:00
Michiel Borkent
3800245849 musl 2021-05-10 23:03:46 +02:00
Michiel Borkent
798ec2e3d4 musl 2021-05-10 23:03:39 +02:00
Michiel Borkent
34bbea0204
Move setup-musl to .circleci scripts (#833) 2021-05-10 22:46:32 +02:00
Michiel Borkent
7106c1554f docs [skip ci] 2021-05-10 20:06:30 +02:00
Michiel Borkent
6edc26c834
[#831] Workaround for musl stack size issues 2021-05-10 18:29:26 +02:00
Thiago Kenji Okada
73d454be46
Add sha256sum check to zlib (#830)
Just to make sure that we are using the correct source code.
2021-05-10 17:33:10 +02:00
Michiel Borkent
f4b9f8a59d Temporarily enable static build on master] 2021-05-09 23:48:30 +02:00
Thiago Kenji Okada
ddc900a656
Build BABASHKA_STATIC with musl C library (#828)
* Build BABASHKA_STATIC with musl C library

Based on https://github.com/babashka/pod-babashka-aws/pull/37.

This is the recommended way to build static binaries with GraalVM by the
documentation and multiple issues on GitHub. See:

- https://www.graalvm.org/reference-manual/native-image/StaticImages/
- oracle/graal#571 (comment)

The reason that building a statically binary with glibc is complicated
is explained in the glib documentation:

https://sourceware.org/glibc/wiki/FAQ#Even_statically_linked_programs_need_some_shared_libraries_which_is_not_acceptable_for_me.__What_can_I_do.3F

* Bring back zlib1g-dev

Seems it is necessary for the non-static build.
2021-05-09 23:30:27 +02:00
Michiel Borkent
36e50e0f0d Add help for tasks and run 2021-05-08 23:51:15 +02:00
Michiel Borkent
f8a18b56ec Version bump 2021-05-08 18:42:39 +02:00
Michiel Borkent
83925e432d 0.4.0 2021-05-08 18:09:15 +02:00
Michiel Borkent
7912aa764c v0.3.9 2021-05-08 18:04:36 +02:00
Michiel Borkent
d4ed910c22 Update selmer 2021-05-08 16:37:33 +02:00
Michiel Borkent
fe9370e04b Tasks: inherit parallel option 2021-05-08 16:21:54 +02:00
Michiel Borkent
b5a1dce4ec sci: better error msg for protocol not found or class 2021-05-08 11:59:21 +02:00
Michiel Borkent
f3a441ee3c minor 2021-05-08 11:06:34 +02:00
Michiel Borkent
9a8bf7d0c3 [#825] Handle uneval-ed expressions in bb tasks 2021-05-08 11:02:05 +02:00
Dirk Wetzel
69ee221eda
Add class java.util.zip.ZipOutputStream (#824) 2021-05-07 16:17:09 +02:00
Michiel Borkent
f6e3e81252 [#823] Add tests for jasentaa 2021-05-07 12:08:02 +02:00
Michiel Borkent
cab3307a07 [#823] Add tests for jasentaa 2021-05-07 11:58:18 +02:00
Michiel Borkent
d52ad92cb4 Add java.text.ParseException 2021-05-07 11:26:38 +02:00
Michiel Borkent
59cbfe43e0 Add java.text.ParserException 2021-05-07 11:22:37 +02:00
Michiel Borkent
b488c65d31 Bump Selmer to 1.12.39 2021-05-07 10:02:59 +02:00
Michiel Borkent
add7e7d216 Fix Selmer 2021-05-06 22:02:06 +02:00
Michiel Borkent
0a877f2976 Bump Selmer 2021-05-06 21:24:56 +02:00
Michiel Borkent
31f7732d4f Depend on selmer upstream 2021-05-06 18:09:36 +02:00
Michiel Borkent
4f70079f52 Version bump 2021-05-06 14:14:13 +02:00
Michiel Borkent
bf6f19dc97 Tasks: don't print context on shell error 2021-05-06 13:58:49 +02:00
Michiel Borkent
b779f45407 v0.3.8 2021-05-06 13:28:43 +02:00
Michiel Borkent
f49178786c [#818] Tasks: don't call System/exit 2021-05-06 13:28:24 +02:00
Michiel Borkent
87acecba52 CHANGELOG [skip ci] 2021-05-06 13:12:47 +02:00
Michiel Borkent
293dfbb8cb CHANGELOG [skip ci] 2021-05-06 13:12:30 +02:00
Michiel Borkent
cbd8a2d07d
[#821] Include Selmer 2021-05-06 12:53:59 +02:00
Michiel Borkent
29483d6740 Fix bug in deps.clj 2021-05-06 09:53:38 +02:00
Michiel Borkent
7b32287943 deps.clj: don't crash on nil PATH 2021-05-06 09:36:51 +02:00
Michiel Borkent
3e74aac4a5 Add NullPointerException class 2021-05-04 12:00:03 +02:00
Michiel Borkent
042934cc3c Ignore :min-bb-version when resolving deps 2021-05-04 11:11:55 +02:00
Michiel Borkent
e0e3aa422e [#770] Add test 2021-05-03 11:06:32 +02:00
Michiel Borkent
cf570cd913 Tasks: get rid of res local 2021-05-02 23:12:48 +02:00
Michiel Borkent
d0d18f9837 Tasks: integrate in doc subcommand 2021-05-02 20:48:40 +02:00
Michiel Borkent
76a6760516 Add some classes 2021-05-02 20:14:19 +02:00
Michiel Borkent
70e0566647 Tasks: detect cycles 2021-05-02 15:04:07 +02:00
Michiel Borkent
12c29eb308 Tasks: detect cycles 2021-05-02 14:51:51 +02:00
Michiel Borkent
fb3d24b23c Tasks: better error msg for unresolved task 2021-05-02 14:31:57 +02:00
Michiel Borkent
92dde5ce38 [#662] See commit 87b9d93911 2021-05-02 11:43:44 +02:00
Michiel Borkent
87b9d93911
[#622] with-precision 2021-05-02 11:41:57 +02:00
Michiel Borkent
6d540e2f06 Rename --verbose to --debug 2021-05-02 11:16:00 +02:00
Michiel Borkent
d1bbf844de Add --verbose to global opts 2021-05-02 11:00:44 +02:00
Michiel Borkent
cde72ebc45 sci: minor 2021-05-01 16:31:02 +02:00
Michiel Borkent
fed03289c4 sci minor [skip ci] 2021-05-01 15:39:02 +02:00
Michiel Borkent
d0abfefc9d sci minor 2021-05-01 12:32:58 +02:00
Michiel Borkent
a9502b1578 CHANGELOG [skip ci] 2021-04-30 12:16:12 +02:00
Michiel Borkent
bfcd2fefdc Version bump 2021-04-30 12:14:47 +02:00
Michiel Borkent
129131020d v0.3.7 2021-04-30 12:01:36 +02:00
Michiel Borkent
3bcc392760 Tasks: add explicit run function 2021-04-30 11:55:24 +02:00
Michiel Borkent
f0adfb450e Tasks: remove log-level 2021-04-30 11:17:48 +02:00
Michiel Borkent
06be620d71
[#805] Support :enter and :leave hooks + current-task fn (#813) 2021-04-30 11:11:12 +02:00
Thiago Kenji Okada
a8247c9762
Add examples/is_tty.clj (#812) [skip ci] 2021-04-29 16:39:13 +02:00
Michiel Borkent
e26f26c1ba [#811] Fix --classpath when no additional args are passed 2021-04-28 20:14:39 +02:00
Michiel Borkent
8deb96b931 sci: fix native tests [skip ci] 2021-04-28 13:16:01 +02:00
Michiel Borkent
567db4cf15 [#809] Use IllegalArgumentException in case 2021-04-28 12:50:33 +02:00
Michiel Borkent
66867e1ddb [#807] Ignore local and global deps.edn 2021-04-28 12:09:05 +02:00
Michiel Borkent
f2ec857c66 Add min-version tests 2021-04-28 11:26:49 +02:00
Michiel Borkent
514fc84cde [#810] Support :extra-paths and :extra-deps in tasks 2021-04-27 23:32:37 +02:00
Michiel Borkent
75ffb3867d sci [skip ci] 2021-04-27 12:33:54 +02:00
Michiel Borkent
3cb85851ad sci v0.2.5 2021-04-27 12:31:23 +02:00
Michiel Borkent
7ab0ccd19e minor [skip ci] 2021-04-27 11:13:57 +02:00
Michiel Borkent
d7075ffad0 Tasks: fix listing of tasks 2021-04-26 10:59:05 +02:00
Michiel Borkent
386cbd4ad6 Tasks: add clojure to logging 2021-04-25 23:47:42 +02:00
Michiel Borkent
6a4dd5cd26 Fix test 2021-04-25 23:31:39 +02:00
Michiel Borkent
c8c49f42fe Fix tests 2021-04-25 23:28:53 +02:00
Michiel Borkent
6da8fc99b8 Tasks: sort by occurence 2021-04-25 23:10:48 +02:00
Ben Brinckerhoff
e6e82906f4
Adds Expound to projects.md (#803) [skip ci] 2021-04-25 17:02:32 +02:00
Michiel Borkent
0c130b5a5d CHANGELOG [skip ci] 2021-04-25 14:32:23 +02:00
Michiel Borkent
131d1c5e8d CHANGELOG [skip ci] 2021-04-25 14:19:46 +02:00
Michiel Borkent
abd679292e CHANGELOG [skip ci] 2021-04-25 14:12:31 +02:00
Michiel Borkent
4c8c8c09f2 Version bump 2021-04-25 14:03:24 +02:00
Michiel Borkent
4ebd4c392a CHANGELOG [skip ci] 2021-04-25 13:51:32 +02:00
Michiel Borkent
71f5a3aae4 CHANGELOG [skip ci] 2021-04-25 13:48:11 +02:00
Michiel Borkent
c49ec83746 v0.3.6 2021-04-25 13:47:18 +02:00
Michiel Borkent
c5d61996d4 Tasks: support :continue in shell fn 2021-04-25 13:34:26 +02:00
Michiel Borkent
21bb768e9f Tasks: fix execution of fully qualified symbol 2021-04-25 11:42:11 +02:00
Michiel Borkent
647ef40250 Tasks: accept alias in fully qualified namespace 2021-04-25 11:27:34 +02:00
Michiel Borkent
f7e881479b Tasks: support :continue in shell 2021-04-25 00:24:33 +02:00
Michiel Borkent
a2f7bb835e Tasks: default log level = :error 2021-04-24 23:48:42 +02:00
Michiel Borkent
4f0795f522 Tasks: logging 2021-04-24 23:35:03 +02:00
Michiel Borkent
38d3d3784b CHANGELOG [skip ci] 2021-04-24 23:20:48 +02:00
Michiel Borkent
12cb5d637c [#802] Support resolving docstring from function 2021-04-24 23:19:37 +02:00
Michiel Borkent
bd08635793 Default log level :info 2021-04-24 18:10:31 +02:00
Michiel Borkent
ea62c99853 default log level 2021-04-24 17:47:28 +02:00
Michiel Borkent
4c5e7cc86d Tasks: simplify logging 2021-04-24 17:35:41 +02:00
Michiel Borkent
b71b5d2c50 Tasks: logging 2021-04-24 17:16:59 +02:00
Michiel Borkent
cb07196de9 Tasks: add :log option 2021-04-24 14:47:03 +02:00
Michiel Borkent
b7ebf9c915 CHANGELOG [skip ci] 2021-04-24 13:06:28 +02:00
Michiel Borkent
5ff9d8328a [#796] Support map literal in task 2021-04-24 13:05:27 +02:00
Michiel Borkent
3e9ddc55bb [#663] :min-bb-version 2021-04-24 12:54:41 +02:00
Michiel Borkent
3c6cf3f37e Fix test 2021-04-24 12:05:15 +02:00
Michiel Borkent
86d4a7319f CHANGELOG [skip ci] 2021-04-24 11:52:23 +02:00
Michiel Borkent
6806398722 [#800] Fix task priority 2021-04-24 11:51:03 +02:00
Michiel Borkent
c6beb03635 fs 0.0.5 2021-04-24 09:59:44 +02:00
Michiel Borkent
2852ef01cc fs: allow dir as dest in copy 2021-04-23 23:56:49 +02:00
Michiel Borkent
ad93155d4f sci: minor perf 2021-04-22 23:30:30 +02:00
Michiel Borkent
350066858c CHANGELOG [skip ci] 2021-04-22 22:58:08 +02:00
Michiel Borkent
5a2a756649 [#767] Add arg count check for clojure.core/for 2021-04-22 22:55:34 +02:00
Michiel Borkent
8011bb02bd docs [skip ci] 2021-04-22 19:32:07 +02:00
Michiel Borkent
d07c90bce3 docs [skip ci] 2021-04-22 19:31:24 +02:00
Michiel Borkent
657a88c348 [#780] Ignore empty classpath entries 2021-04-22 12:33:17 +02:00
Michiel Borkent
15e71b0807
[#780] Fix uberjar CLI parsing and throw when no classpath is provided 2021-04-22 11:56:13 +02:00
Michiel Borkent
3dfc15f5a4 README [skip ci] 2021-04-21 20:05:47 +02:00
Aleksander Madland Stapnes
5652dc7e7f
Add install instructions for asdf (#797) [skip ci] 2021-04-21 20:01:18 +02:00
Michiel Borkent
24c4c62ae3 Use correct branch on appveyor 2021-04-21 13:46:47 +02:00
Michiel Borkent
acd9c389f9 clean 2021-04-21 11:53:54 +02:00
Michiel Borkent
906d009fc0 Fix version 2021-04-21 11:49:35 +02:00
Michiel Borkent
eddb098947
Release artifacts to Github automatically (#795) 2021-04-21 11:47:46 +02:00
Michiel Borkent
c39fc76702
Automatically upload artifacts to Github release 2021-04-21 00:10:59 +02:00
Michiel Borkent
ff460f323d .gitignore 2021-04-20 18:02:13 +02:00
Michiel Borkent
1d2d155eaf More test fixes 2021-04-19 23:33:51 +02:00
Michiel Borkent
f9cea604ad Fix JVM tests 2021-04-19 23:30:33 +02:00
Michiel Borkent
0014840506 Tasks: don't tokenize when string refers to file 2021-04-19 23:18:00 +02:00
Michiel Borkent
cf1c8649c0 process tweaks 2021-04-19 23:06:06 +02:00
Michiel Borkent
8a7c740292 process tweaks 2021-04-19 16:54:34 +02:00
Michiel Borkent
625e062763 fs: modified-since lazy 2021-04-17 13:21:48 +02:00
Michiel Borkent
55f6577327 deps.clj: windows fixes 2021-04-16 20:52:46 +02:00
Michiel Borkent
db8e839de1 Remove set support in tasks 2021-04-16 16:14:01 +02:00
Michiel Borkent
2f1744cbc8 Version bump 2021-04-15 12:47:33 +02:00
Michiel Borkent
3d076b07cc CHANGELOGS [skip ci] 2021-04-15 12:30:58 +02:00
Michiel Borkent
b4984a5628 v0.3.5 2021-04-15 12:28:09 +02:00
Michiel Borkent
337096cde7 Tasks: set means parallel 2021-04-15 12:22:31 +02:00
Michiel Borkent
cc50b5f441 CHANGELOGS [skip ci] 2021-04-15 12:11:29 +02:00
Michiel Borkent
4925b51de7 [#788] Add bound-fn and bound-fn* 2021-04-15 12:09:52 +02:00
Michiel Borkent
76e2a241e7 sci: add aset-* fns 2021-04-15 10:46:08 +02:00
Michiel Borkent
330377bcd6 sci: add aset-byte 2021-04-15 10:34:59 +02:00
Michiel Borkent
adbe1a830e CHANGELOGS [skip ci] 2021-04-15 00:05:52 +02:00
Michiel Borkent
f3630d2fb3
[#790] Add java.security.SecureRandom 2021-04-15 00:04:19 +02:00
Michiel Borkent
970ab1bee9 CHANGELOGS [skip ci] 2021-04-14 23:36:54 +02:00
Michiel Borkent
1ee580e254 CHANGELOGS [skip ci] 2021-04-14 23:36:48 +02:00
Michiel Borkent
e0b1c1b01e
[#784] Support binf.cljc library by adding ByteBuffer and Charset-related classes (#789) 2021-04-14 23:27:31 +02:00
Michiel Borkent
0ecee5bf94 [#785] :requires option 2021-04-12 22:55:10 +02:00
Michiel Borkent
478dd780b7 Add shutdown-tree 2021-04-12 17:37:29 +02:00
Michiel Borkent
80a06a62f9 Tasks: fix parallel 2021-04-12 11:55:56 +02:00
Michiel Borkent
567b1b1c1f CHANGELOGS [skip ci] 2021-04-12 10:52:32 +02:00
Michiel Borkent
8286ebb689 Version bump 2021-04-12 10:51:04 +02:00
Michiel Borkent
e86aac02f9 Use pr-str in tasks 2021-04-12 10:35:41 +02:00
Michiel Borkent
d2e137d5d1 v0.3.4 2021-04-12 09:47:34 +02:00
Michiel Borkent
00b33dab4d CHANGELOG 2021-04-12 09:47:28 +02:00
Michiel Borkent
ac307708ba parallel 2021-04-12 00:02:52 +02:00
Michiel Borkent
f18ec3feeb Fix parallel tasks 2021-04-11 23:20:27 +02:00
Michiel Borkent
e1cfdc6e23 Fix parallel 2021-04-11 23:07:48 +02:00
Michiel Borkent
da27843544 shortcut static aarch build 2021-04-11 21:37:12 +02:00
Michiel Borkent
2b2e602eac bb tasks: support parallel via future 2021-04-11 21:25:15 +02:00
Michiel Borkent
ed17a190d2 CHANGELOG [skip ci] 2021-04-11 12:53:26 +02:00
Michiel Borkent
bd0495f88b tasks output test 2021-04-11 12:49:42 +02:00
Michiel Borkent
7194763c32 deps.clj#42 2021-04-11 12:37:41 +02:00
Michiel Borkent
9e59c65e5c deps.clj#42 2021-04-11 12:23:16 +02:00
Michiel Borkent
da6ba8a450 CHANGELOG [skip ci] 2021-04-10 17:55:35 +02:00
Michiel Borkent
2526c4d9f3 CHANGELOG [skip ci] 2021-04-10 17:55:09 +02:00
Michiel Borkent
225a68da06 CHANGELOG [skip ci] 2021-04-10 17:53:28 +02:00
Michiel Borkent
94a4550f3d Version bump 2021-04-10 17:33:41 +02:00
Michiel Borkent
b16de694b9 Fix Docker 2021-04-10 17:22:44 +02:00
Michiel Borkent
d5c51cf6ad CHANGELOG [skip ci] 2021-04-10 17:11:52 +02:00
Michiel Borkent
20f3da9db2 v0.3.3 2021-04-10 17:08:03 +02:00
Michiel Borkent
45109685e1 Get rid of :when for now 2021-04-10 16:50:20 +02:00
Michiel Borkent
6087b94d32 Clojure test 2021-04-10 16:12:30 +02:00
Michiel Borkent
36abd4152a List tasks test 2021-04-10 16:07:06 +02:00
Michiel Borkent
0ae56e7098 Fix bug in topological sorting 2021-04-10 15:57:03 +02:00
Michiel Borkent
cf55681114 Task tests 2021-04-10 15:16:12 +02:00
Michiel Borkent
1020a8c335
[#788] First cut of bb tasks 2021-04-10 14:42:58 +02:00
Michiel Borkent
4dac03da26 CHANGELOG [skip ci] 2021-04-10 11:17:02 +02:00
Michiel Borkent
5d84d75f80 Upgrade to Clojure 1.11.0-alpha1 2021-04-10 11:12:36 +02:00
Michiel Borkent
848a73c666 fs#22 2021-04-10 11:06:56 +02:00
Michiel Borkent
8bcb2ea0cc deps.clj: bump to 1.10.3.822 2021-04-10 09:51:36 +02:00
Michiel Borkent
53bd7cd0c0 [#782] rename 2021-04-09 17:40:01 +02:00
Michiel Borkent
322b30ad6f [#782] fix 2021-04-09 17:02:44 +02:00
Michiel Borkent
8add2d90b2 [#782] fix 2021-04-09 16:59:20 +02:00
Michiel Borkent
d968b96082 [#782] linux arm64 static 2021-04-09 16:56:26 +02:00
Michiel Borkent
076fa07b00 sci#558 2021-04-09 16:23:02 +02:00
Michiel Borkent
db85195991 sci#557 2021-04-08 21:20:24 +02:00
Andrea Richiardi
a0ace650f1
[#776] Use get-classpath when build an uberjar
It was previously using the classpath coming from the parameters/env. We need to use
cp/get-classpath for taking into consideration the classpath coming from bb.edn.
2021-04-07 10:21:09 +02:00
Michiel Borkent
8e30cd350e sci [skip ci] 2021-04-06 13:49:35 +02:00
Michiel Borkent
430cc6b187 news.md [skip ci] 2021-04-05 11:18:13 +02:00
Michiel Borkent
70fee2405c news.md [skip ci] 2021-04-05 11:16:32 +02:00
Michiel Borkent
8c6efbbb37 news.md [skip ci] 2021-04-05 11:14:42 +02:00
Michiel Borkent
bda38a384b news.md [skip ci] 2021-04-05 11:12:27 +02:00
Michiel Borkent
b8e95aeadc Version bump 2021-04-04 20:06:33 +02:00
Michiel Borkent
97ed35fb3e v0.3.2 2021-04-04 19:49:16 +02:00
Michiel Borkent
85dea47573 changelog [skip ci] 2021-04-04 16:48:39 +02:00
Michiel Borkent
1870e2729e
[#769] rewrite-clj support 2021-04-04 16:22:45 +02:00
Michiel Borkent
2aa8c88822 fix help text [skip ci] 2021-04-02 18:10:29 +02:00
Michiel Borkent
d25019aeaf sci: clean meta on nested map 2021-04-01 21:27:20 +02:00
Michiel Borkent
e898d1fea3 CHANGELOG [skip ci] 2021-03-30 19:29:24 +02:00
Michiel Borkent
bf4e4a0283 Version bump 2021-03-30 19:18:15 +02:00
Michiel Borkent
34a6960aad CHANGELOG [skip ci] 2021-03-30 18:12:53 +02:00
Michiel Borkent
95485ba8be CHANGELOG [skip ci] 2021-03-30 18:11:09 +02:00
Michiel Borkent
6a7baf2a90 v0.3.1 2021-03-30 18:06:56 +02:00
Michiel Borkent
02cecb259d help 2021-03-30 17:57:07 +02:00
Michiel Borkent
e95a10cf6b help 2021-03-30 11:41:12 +02:00
Michiel Borkent
c9826b9694 help 2021-03-30 11:32:30 +02:00
Michiel Borkent
6f133ed9f2 help 2021-03-30 11:31:58 +02:00
Michiel Borkent
093f9828f0 help 2021-03-30 11:29:46 +02:00
Michiel Borkent
69c1b65689 help 2021-03-30 11:27:23 +02:00
Michiel Borkent
4e667679a5 CHANGELOG [skip ci] 2021-03-29 23:57:13 +02:00
Michiel Borkent
86cb997def babashka.nrepl: fix arglists formatting 2021-03-29 10:05:52 +02:00
Michiel Borkent
76c7167d2b babashka.repl#30: info and lookup support 2021-03-28 23:42:03 +02:00
Michiel Borkent
c8e630ce75 babashka.repl#30: info and lookup support 2021-03-28 23:31:16 +02:00
Michiel Borkent
88c621c1ec sci: allow dynamic doc 2021-03-28 23:12:04 +02:00
Michiel Borkent
c1670e8670 Improve doc 2021-03-28 22:48:44 +02:00
Michiel Borkent
99f6cd6ed4 CHANGELOG [skip ci] 2021-03-28 20:57:15 +02:00
Michiel Borkent
66c0c8515f CHANGELOG [skip ci] 2021-03-28 20:56:28 +02:00
Michiel Borkent
f941b394f4 CHANGELOG [skip ci] 2021-03-28 20:52:48 +02:00
Michiel Borkent
642cea3e16 [#758] allow fully qualified symbol as --main opt [skip ci] 2021-03-28 17:38:57 +02:00
Michiel Borkent
722de8ec75 [#680] bb.edn [skip ci] 2021-03-28 17:38:22 +02:00
Michiel Borkent
40d34c27d7 help [skip ci] 2021-03-28 17:33:40 +02:00
Michiel Borkent
d71c3622ec
bb.edn: first iteration 2021-03-28 17:30:44 +02:00
Michiel Borkent
2bc935d3d8 deps.clj 2021-03-27 16:52:35 +01:00
Michiel Borkent
2c871dfd1d process [changelog] [skip ci] 2021-03-27 12:21:47 +01:00
Michiel Borkent
0ce64d83fb process: #40 2021-03-27 12:15:40 +01:00
Michiel Borkent
bfe139eacc add vars 2021-03-27 11:52:33 +01:00
Michiel Borkent
a026e1eeba process: #39 2021-03-27 11:33:34 +01:00
Joey Bloom
74ba198201
Update example notes app to use org.httpkit.server (#762) [skip ci] 2021-03-26 23:25:47 +01:00
Joey Bloom
1533a2d0b5
Fix cookie-parsing bug in the example note-taking app (#761) 2021-03-26 22:07:52 +01:00
Michiel Borkent
8936060d42 Upgrade deps.clj and fs 2021-03-22 20:32:47 +01:00
Michiel Borkent
ee3aae6316 sci readme [skip ci] 2021-03-22 17:27:06 +01:00
Michiel Borkent
ca056984ba [skip ci] 2021-03-21 10:53:04 +01:00
Grazfather
716d5ff94c
install: Use $download_url (#759)
We were only using this var in the echo, but it always said .zip, even
if we were using .tar.gz
2021-03-20 16:24:56 +01:00
Michiel Borkent
a8883bd5f2 clojure [skip ci] 2021-03-18 21:28:17 +01:00
Michiel Borkent
19b8e429bc sci#553: new kw-arg handling from clojure 1.11.0 2021-03-18 21:07:06 +01:00
Michiel Borkent
7652295d84 pods release v0.0.1 [skip ci] 2021-03-17 19:56:04 +01:00
Michiel Borkent
95c53a9e49 CHANGELOG [skip ci] 2021-03-15 23:23:34 +01:00
Michiel Borkent
8a22a11b8d README [skip ci] 2021-03-15 23:18:45 +01:00
Michiel Borkent
dc3da33749 Version bump 2021-03-15 23:16:39 +01:00
Michiel Borkent
be96692739 Fix aarch64 on CircleCI 2021-03-15 23:03:38 +01:00
Michiel Borkent
7e570bcfdd CHANGELOG [skip ci] 2021-03-15 22:59:36 +01:00
Michiel Borkent
7cf63245af v0.3.0 2021-03-15 22:55:17 +01:00
Michiel Borkent
0635e22810 v0.2.14 2021-03-15 22:51:23 +01:00
Michiel Borkent
ac2bc23365 Fix tests 2021-03-15 22:44:16 +01:00
Michiel Borkent
2d81c3a8e3 Add FileInputStream 2021-03-15 22:37:03 +01:00
Michiel Borkent
ede9ed3466 sci: :reload-all 2021-03-15 22:10:01 +01:00
Michiel Borkent
fbcfb9a118 Prepare install script [skip ci] 2021-03-15 21:46:03 +01:00
Michiel Borkent
2749eb7149 CHANGELOG [skip ci] 2021-03-15 17:24:15 +01:00
Michiel Borkent
126d2ff728 Fix release script 2021-03-15 17:21:17 +01:00
Michiel Borkent
6c8f9a1038 [#241] AArch64 linux binaries 2021-03-15 16:56:32 +01:00
Michiel Borkent
194fe2e2b2 CHANGELOG [skip ci] 2021-03-15 11:37:48 +01:00
Michiel Borkent
58532c76de Better fix for fs/copy 2021-03-15 11:37:18 +01:00
Michiel Borkent
14a1e83930 CHANGELOG [skip ci] 2021-03-14 22:16:14 +01:00
Michiel Borkent
e048b30d02 babashka.fs/copy-tree: create dir if needed 2021-03-14 22:15:43 +01:00
Michiel Borkent
ab674f8348 CHANGELOG [skip ci] 2021-03-14 22:02:47 +01:00
Michiel Borkent
4229cab9b4 Update version-clj tests 2021-03-14 21:04:55 +01:00
Michiel Borkent
db908004c7 Revert "Reduce size"
This reverts commit 1d3392e60e.
2021-03-14 18:43:06 +01:00
Michiel Borkent
1d3392e60e Reduce size 2021-03-14 18:34:12 +01:00
Michiel Borkent
aacbcc3602 Add java.util.regex.Matcher to increase compatibility with version-clj. 2021-03-14 17:38:04 +01:00
Michiel Borkent
d13f1295f1 CHANGELOG [skip ci] 2021-03-13 23:36:26 +01:00
Michiel Borkent
0737e951a0 fs: Windows updates 2021-03-13 23:35:35 +01:00
Michiel Borkent
0b332431d3 Fix proxy instance check 2021-03-13 18:08:36 +01:00
Michiel Borkent
c79d48cdde Fix proxy exception 2021-03-13 17:49:19 +01:00
Michiel Borkent
7262e1e709 note [skip ci] 2021-03-13 17:30:54 +01:00
Michiel Borkent
7c608452b5 clean [skip ci] 2021-03-13 17:30:08 +01:00
Michiel Borkent
a426cddd4a proxy + protocols 2021-03-13 17:25:24 +01:00
Michiel Borkent
c0e512e304 proxy 2021-03-13 17:04:35 +01:00
Wilker Lúcio
6a911fc54f
Augment proxy to fulfill custom maps interfaces (#755) 2021-03-13 16:37:51 +01:00
Michiel Borkent
ae047b5809 Support this in proxy 2021-03-13 14:59:44 +01:00
Michiel Borkent
a44f66e9a1 CHANGELOG [skip ci] 2021-03-13 12:51:34 +01:00
Michiel Borkent
ea88219ad6 Fix 2021-03-13 12:47:25 +01:00
Michiel Borkent
8551817724 Narrow scope of reify 2021-03-13 12:44:12 +01:00
Michiel Borkent
f58748ebbe Remove proxy-super 2021-03-13 11:18:53 +01:00
Michiel Borkent
5555ea4ede APersistentMap test 2021-03-12 20:31:58 +01:00
Michiel Borkent
fa92537bdf Preliminary proxy support 2021-03-12 14:47:18 +01:00
Michiel Borkent
6a47a4dc29 Preliminary proxy support 2021-03-12 14:47:03 +01:00
Michiel Borkent
02da9336c4 CHANGELOG [skip ci] 2021-03-12 11:00:11 +01:00
Michiel Borkent
04cd32b84b [#754] Fix interop with System/out 2021-03-12 10:57:43 +01:00
Michiel Borkent
686a72e1b4 CHANGELOG [skip ci] 2021-03-12 10:54:42 +01:00
Michiel Borkent
38c7bc1c17 [#667] Add test 2021-03-12 10:52:11 +01:00
Michiel Borkent
45faf1ec63
Add java.io.OutputStreamWriter and java.io.PrintStream 2021-03-12 10:24:29 +01:00
Grazfather
38d18acd4d
Update install to support future tar.gz releases (#752)
* Update install to support future tar.gz releases

* CI: Release as .tar.gz instead of .zip
2021-03-12 10:16:39 +01:00
Wilker Lúcio
39284ae707
Add IndexOutOfBoundsException and Map$Entry (#751)
* Add IndexOutOfBoundsException, IHashEq and Map$Entry

* Remove IHashEq interface
2021-03-10 23:21:35 +01:00
Toni Dahl
16e92fa581
Guess and add correct "Content-Type" headers for responses. (#750) [skip ci]
* A correct MIME type of a served file is guessed by file extension.
* For example, SVG images are now displayed correctly in a web browser.
2021-03-10 22:42:09 +01:00
Michiel Borkent
bb3e453f62 sci: add delay? 2021-03-10 22:41:12 +01:00
Michiel Borkent
e1408f2bfb Update examples [skip ci] 2021-03-09 10:58:27 +01:00
Michiel Borkent
6246e1e605 CHANGELOG [skip ci] 2021-03-09 09:49:39 +01:00
Michiel Borkent
20285cb677 CHANGELOG [skip ci] 2021-03-09 09:47:15 +01:00
Michiel Borkent
90d089e78b Version bump 2021-03-09 09:45:55 +01:00
Michiel Borkent
d69b8de80f v0.2.13 2021-03-09 09:33:57 +01:00
Michiel Borkent
333dc6bbf9 sci#546 2021-03-08 23:46:52 +01:00
Michiel Borkent
169f26e2b1 sci#546 2021-03-08 23:27:54 +01:00
Wilker Lúcio
2ad4d3342c
Map type extensions (#749) 2021-03-08 22:58:43 +01:00
Michiel Borkent
9e1cb2f9de babashka.curl#35 2021-03-08 22:21:38 +01:00
Michiel Borkent
515a78f979 CHANGELOG [skip ci] 2021-03-08 21:12:12 +01:00
Michiel Borkent
c6c1be0fa1 babashka.curl#35 2021-03-08 20:43:01 +01:00
Michiel Borkent
2d91171dd9 sci: master branch 2021-03-08 11:19:07 +01:00
Michiel Borkent
8235ec7afd CHANGELOG [skip ci] 2021-03-08 10:49:01 +01:00
Michiel Borkent
fcb2554ff3 CHANGELOG [skip ci] 2021-03-08 10:46:38 +01:00
Michiel Borkent
0d59c0f43b Reify improvements 2021-03-07 13:56:12 +01:00
Michiel Borkent
bc8739a57e sci: reify 2021-03-07 12:34:01 +01:00
Michiel Borkent
d72aa3158a sci#540: one reify to rule them all 2021-03-07 11:43:35 +01:00
Michiel Borkent
874593bae9 Add clojure.lang.Associative 2021-03-06 16:02:41 +01:00
Michiel Borkent
1391f028bf sci: update to new reify config 2021-03-06 11:17:39 +01:00
Michiel Borkent
0fae952d4d CHANGELOG [skip ci] 2021-03-06 11:12:08 +01:00
Michiel Borkent
ca7520b25d sci: allow combinations of classes and protocols in reify 2021-03-06 11:09:28 +01:00
Michiel Borkent
a3e1337111 NEWS [skip ci] 2021-03-05 14:30:40 +01:00
Michiel Borkent
63b7ed3dab Clean in first test step 2021-03-04 10:49:16 +01:00
Michiel Borkent
b81990cdee CHANGELOG [skip ci] 2021-03-04 10:38:34 +01:00
Michiel Borkent
45c2f23d42 babashka/fs#18 2021-03-03 23:38:08 +01:00
Michiel Borkent
7fc14aaf08 NEWS [skip ci] 2021-03-03 23:12:20 +01:00
Michiel Borkent
b3f90a81ce NEWS [skip ci] 2021-03-03 23:08:52 +01:00
Kamil Toman
bb3c95ea4e
Hint creating submodules using update --init in build.md [skip ci] (#745) 2021-03-03 13:49:14 +01:00
Michiel Borkent
7c380d0156 [skip ci] projects.md 2021-03-03 12:10:14 +01:00
Michiel Borkent
2eb27ae183 [skip ci] projects.md 2021-03-03 12:00:41 +01:00
Michiel Borkent
f335716d1d fs: add regular-file? 2021-03-01 23:54:47 +01:00
Michiel Borkent
f5d899bf6e Version bump 2021-03-01 12:28:40 +01:00
Michiel Borkent
2236203cbc v0.2.12 2021-03-01 12:18:38 +01:00
Michiel Borkent
19115df834 v0.2.12 2021-03-01 12:17:43 +01:00
Michiel Borkent
d0431b8bb6 [#741] Fix cyclic dep problem with doric lib 2021-03-01 12:17:04 +01:00
Michiel Borkent
0df893e081 CHANGELOG [skip ci] 2021-02-28 20:55:15 +01:00
Michiel Borkent
7c3ea37a00 Bump version again 2021-02-28 19:11:05 +01:00
Michiel Borkent
fbdbbcf1a9 Attempt to fix Docker 2021-02-28 18:54:17 +01:00
Michiel Borkent
9b705eeeea Version bump 2021-02-28 18:41:06 +01:00
Michiel Borkent
62207a101a v0.2.11 2021-02-28 18:28:35 +01:00
Michiel Borkent
937c2d1bd1 CHANGELOG [skip ci] 2021-02-28 18:27:26 +01:00
Michiel Borkent
f5e2e73638 v0.2.11 2021-02-28 18:25:50 +01:00
Michiel Borkent
e64dbc7691
Support reifying clojure.lang.IFn and clojure.lang.ILookup (#740) 2021-02-28 18:23:45 +01:00
Michiel Borkent
f59b0efab4 sci [skip ci] 2021-02-28 16:31:29 +01:00
Michiel Borkent
250b1e1c5f CHANGELOG [skip ci] 2021-02-28 10:50:09 +01:00
Michiel Borkent
8819e1dc46 tools.cli update to 1.0.206 2021-02-28 10:49:07 +01:00
Michiel Borkent
a5a0eb73d2 README [skip ci] 2021-02-27 21:38:41 +01:00
Michiel Borkent
94cd930d4f README [skip ci] 2021-02-27 21:18:11 +01:00
Michiel Borkent
5376acb80d CHANGELOG [skip ci] 2021-02-27 11:15:11 +01:00
Michiel Borkent
8733bcb795
Add classes for instance checks (#739) 2021-02-27 10:15:28 +01:00
Michiel Borkent
17694a328b CHANGELOG [skip ci] 2021-02-26 22:18:28 +01:00
Michiel Borkent
00e65f0416 [#738] upgrade to httpkit 2.5.3 2021-02-26 22:17:24 +01:00
Michiel Borkent
d31bcabeb2 Add force 2021-02-26 13:59:08 +01:00
Michiel Borkent
acc8972a40 sci: add force 2021-02-26 13:58:46 +01:00
Michiel Borkent
23704a7db6 sci: fix ns-unmap on referred var 2021-02-25 20:41:06 +01:00
Michiel Borkent
338fc2ac13 sci: fix instance on IAtom 2021-02-25 20:19:46 +01:00
Michiel Borkent
0b300c134a sci: add dissoc! 2021-02-25 14:51:01 +01:00
Michiel Borkent
d725499035 doc [skip ci] 2021-02-25 10:22:39 +01:00
Michiel Borkent
63c94fdd35 [skip ci] Add download_aliases.clj example 2021-02-25 10:19:53 +01:00
Michiel Borkent
dab1020622 [#736] Update link in nREPL server [skip ci] 2021-02-24 21:03:16 +01:00
Michiel Borkent
925271db01 [skip ci] feature template 2021-02-23 11:40:16 +01:00
Michiel Borkent
938ab9723b [skip ci] CHANGELOG 2021-02-21 21:35:40 +01:00
Michiel Borkent
97e933491c babashka/fs: add copy-link 2021-02-19 17:31:15 +01:00
Michiel Borkent
c143f9f716 Issue template 2021-02-18 12:45:24 +01:00
Michiel Borkent
abd551bb7d Issue template 2021-02-18 12:44:41 +01:00
Michiel Borkent
ac24efe5bd Simplify arg picking 2021-02-17 11:28:18 +01:00
Michiel Borkent
ae5943fc4b sci: pick arity independent of order 2021-02-17 10:40:23 +01:00
Michiel Borkent
9e7e0a28c2 sci: don't merge ex-data 2021-02-17 09:36:55 +01:00
Michiel Borkent
1736adb171 Use default print-right-margin 2021-02-15 14:09:43 +01:00
Michiel Borkent
9f9f04b626 [skip ci] news 2021-02-15 13:07:29 +01:00
alimak17
a5fbd80b06
Add concrete steps to install babashka on Windows. (#732) 2021-02-14 20:54:44 +01:00
Michiel Borkent
1f9ef4eab4 Sci: cyclic load deps improvement 2021-02-13 17:31:25 +01:00
Michiel Borkent
24fbe8a855 sci: cyclic load deps 2021-02-13 17:10:14 +01:00
Michiel Borkent
b61a65fb9e [skip ci] doc 2021-02-13 10:57:32 +01:00
Michiel Borkent
1dd20b0a0c Add failjure to libtests 2021-02-13 10:48:59 +01:00
Michiel Borkent
27198fe6bb babashka/babashka.nrepl#36 2021-02-12 14:53:56 +01:00
Michiel Borkent
e4a9660670 [#728] Update fs lib with split-paths 2021-02-10 10:07:28 +01:00
Michiel Borkent
2c2237ec4c Version bump 2021-02-09 20:49:42 +01:00
Michiel Borkent
8a562222e8 v0.2.10 2021-02-09 20:36:55 +01:00
Michiel Borkent
849b4a223c [skip ci] news 2021-02-09 11:34:28 +01:00
Michiel Borkent
1a3dc38d58 sci: prioritize referred var over current ns vars 2021-02-09 11:00:50 +01:00
Michiel Borkent
dd6d7624f2 [skip ci] doc 2021-02-08 19:47:13 +01:00
Michiel Borkent
6f95c82279 [skip ci] doc 2021-02-08 11:53:30 +01:00
Michiel Borkent
0e203e7bbb news [skip ci] 2021-02-07 20:22:51 +01:00
Michiel Borkent
368dfe2d83 doc [skip ci] 2021-02-07 18:00:39 +01:00
Michiel Borkent
b2a4e63e45 Version bump 2021-02-07 14:29:57 +01:00
Michiel Borkent
4cc4a7204d v0.2.9 2021-02-07 14:09:44 +01:00
Michiel Borkent
77daea7362
[#712] Upgrade to GraalVM 21.0.0 (#725) 2021-02-07 12:23:20 +01:00
Michiel Borkent
61ca2720fd fs 2021-02-07 11:17:57 +01:00
Michiel Borkent
304b242148 fs [skip ci] 2021-02-06 22:22:30 +01:00
Michiel Borkent
24032734e7 fs 2021-02-06 21:24:25 +01:00
Michiel Borkent
7cbcd4440a compile opts [skip ci] 2021-02-06 18:01:51 +01:00
Michiel Borkent
4daef2fbcc fs [skip ci] 2021-02-06 17:51:19 +01:00
Michiel Borkent
8326825494 dashboard [skip ci] 2021-02-06 16:32:27 +01:00
Michiel Borkent
4823b2d4e7 fs [skip ci] 2021-02-06 15:46:56 +01:00
Michiel Borkent
ba8b9e9f19 fs [skip ci] 2021-02-06 14:39:44 +01:00
Michiel Borkent
e7b1c2f0e5 [skip ci] fs 2021-02-06 14:13:15 +01:00
Michiel Borkent
52f2728735 fs update 2021-02-06 14:11:16 +01:00
Michiel Borkent
6c5f20f786 fs: fix delete-tree 2021-02-06 10:11:53 +01:00
Michiel Borkent
eb9c87b7fd CHANGELOG [skip ci] 2021-02-05 23:43:19 +01:00
Michiel Borkent
86fff7afa2 fs 2021-02-05 23:41:59 +01:00
Michiel Borkent
549c2166b4 fs 2021-02-05 23:29:23 +01:00
Michiel Borkent
6de95254e8 [skip ci] fs 2021-02-05 23:21:58 +01:00
Michiel Borkent
59cd1a76c5 fs 2021-02-05 11:41:54 +01:00
Michiel Borkent
d208a115fc [skip ci] changelog 2021-02-05 09:30:18 +01:00
Michiel Borkent
2d55ee8946 Bump submodules 2021-02-05 00:16:31 +01:00
Édipo Féderle
6351068f4a
Update README install command to work with Linux as well (#724) 2021-02-04 15:33:09 +01:00
Michiel Borkent
114e144c6c news [skip ci] 2021-02-04 10:55:07 +01:00
Michiel Borkent
9220b983c5 Fix gaka tests 2021-02-03 23:06:18 +01:00
Michiel Borkent
095dd0db99 sci 2021-02-03 22:47:57 +01:00
Michiel Borkent
a41eececfb sci 2021-02-03 17:17:24 +01:00
Michiel Borkent
2136c0a19b Add gaka lib tests 2021-02-03 14:50:58 +01:00
Michiel Borkent
d751976e30 [skip ci] news.md 2021-02-03 14:23:09 +01:00
Michiel Borkent
e1f21b044f [skip ci] news.md 2021-02-03 14:20:08 +01:00
Michiel Borkent
49bb63f0c0 sci 2021-02-03 14:02:11 +01:00
Michiel Borkent
79f8f92ef4 Move curl to normal deps [skip ci] 2021-02-02 23:10:05 +01:00
Michiel Borkent
6eaecc3df0 Bump sci 2021-02-02 22:51:23 +01:00
Michiel Borkent
44ed105432 sci issue 520: fix ns-publics 2021-02-02 12:36:06 +01:00
Michiel Borkent
8b9b132116 Add fs submodule 2021-01-31 20:19:43 +01:00
Michiel Borkent
23e12a11ee sci as local/root 2021-01-29 23:18:15 +01:00
Michiel Borkent
77a95cf778 Fix core.match test 2021-01-28 23:19:10 +01:00
Michiel Borkent
d81bcfcf76 fix sci 2021-01-28 20:11:27 +01:00
Michiel Borkent
b5c1b31cfc Bump yaml and httpkit deps 2021-01-28 19:53:34 +01:00
Michiel Borkent
e519d0ee36 [skip ci] minor 2021-01-27 21:42:08 +01:00
Michiel Borkent
ce26997d31 [skip ci] CHANGELOG 2021-01-27 21:04:44 +01:00
Michiel Borkent
34777e3d7a [#719] Fix error reporting in case of arity error 2021-01-27 20:56:46 +01:00
Michiel Borkent
16fff3736f [skip ci] Update portal example 2021-01-27 13:15:31 +01:00
Michiel Borkent
06123c78a8 [skip ci] Update portal example 2021-01-27 13:07:09 +01:00
Michiel Borkent
b95e826179 sci 2021-01-26 11:02:06 +01:00
Michiel Borkent
079f662e0c sci: minor 2021-01-25 16:11:01 +01:00
Michiel Borkent
47b973463a sci: shadow record field names 2021-01-25 16:03:42 +01:00
Michiel Borkent
51a1d92b97 [skip ci] CHANGELOG 2021-01-25 14:03:33 +01:00
Michiel Borkent
319f6ca4d2 [skip ci] doc 2021-01-25 13:41:58 +01:00
Michiel Borkent
a1b35bae8c [#718] Fix destructuring in protocol method of record 2021-01-25 11:06:19 +01:00
Michiel Borkent
11810916cc [skip ci] build.md 2021-01-24 23:34:22 +01:00
Michiel Borkent
a7bf3ccc41 [skip ci] WIP 2021-01-24 22:39:10 +01:00
Michiel Borkent
632cdea60a [skip ci] CHANGELOG 2021-01-24 22:34:33 +01:00
Michiel Borkent
fa47444c4e [skip ci] CHANGELOG 2021-01-24 22:05:26 +01:00
Michiel Borkent
3bda60d815 [skip ci] CHANGELOG 2021-01-24 22:04:57 +01:00
Michiel Borkent
66c732e0b6 Version bump 2021-01-24 22:03:22 +01:00
Michiel Borkent
d70fb04186 v0.2.8 2021-01-24 21:16:07 +01:00
Michiel Borkent
931fadabb2
[#487] Include clojure.test.check as preparation for clojure.spec 2021-01-24 21:07:07 +01:00
Michiel Borkent
c4bb42df3e
[#646] Add hiccup.core and hiccup2.core 2021-01-23 22:47:35 +01:00
Michiel Borkent
6dc6cbab12 Add clojure.lang.Ratio 2021-01-23 15:47:28 +01:00
Michiel Borkent
57497f850b [skip ci] Document feature flag 2021-01-23 14:04:21 +01:00
Michiel Borkent
497bfb01da
[#594] Include clojure.core.match 2021-01-23 14:02:00 +01:00
Michiel Borkent
0f97da2d9c Add IllegalArgumentException 2021-01-23 13:45:09 +01:00
Michiel Borkent
75ca9be7ce
sci: faster processing of colls 2021-01-23 11:30:31 +01:00
Michiel Borkent
a932ce3fa7 sci: prioritize current ns in syntax quote 2021-01-21 11:03:03 +01:00
Michiel Borkent
14c33625ec [skip ci] Changelog 2021-01-20 21:40:08 +01:00
Michiel Borkent
f46c844474 Version bump 2021-01-20 21:38:57 +01:00
Michiel Borkent
ccce015216 v0.2.7 2021-01-20 21:27:01 +01:00
Michiel Borkent
bd84a42d36 [skip ci] CHANGELOG 2021-01-20 21:25:57 +01:00
Michiel Borkent
bb4ef582d6 Add instance check for clojure.lang.Fn 2021-01-20 12:52:56 +01:00
Michiel Borkent
5305260fd4 rm classes [skip ci] 2021-01-20 00:30:26 +01:00
Michiel Borkent
c2938ebd0c Revert 2021-01-20 00:20:05 +01:00
Michiel Borkent
fd9c82050b Cut off more 2021-01-19 23:32:46 +01:00
Michiel Borkent
6efd927c67 Cut off more 2021-01-19 23:29:57 +01:00
Michiel Borkent
09fcd97b9d Cut off ObjectStreamClass 2021-01-19 23:24:23 +01:00
Michiel Borkent
55db949ca8 Also cut off on linux 2021-01-19 23:18:02 +01:00
Michiel Borkent
fecefc3f92 Note 2021-01-19 15:21:25 +01:00
Michiel Borkent
428b946f45 minor 2021-01-19 14:33:01 +01:00
Michiel Borkent
6a3594deeb core.match compat 2021-01-19 14:09:52 +01:00
Michiel Borkent
4c704da85b sci [skip ci] 2021-01-18 00:00:24 +01:00
Michiel Borkent
a7bdbdb8d0 sci [skip ci] 2021-01-17 23:55:50 +01:00
Michiel Borkent
888d743a51 [skip ci] 2021-01-17 23:50:22 +01:00
Michiel Borkent
1be2378e28 sci 2021-01-17 14:56:30 +01:00
Michiel Borkent
80b372e0b2 [#711] (.keySet {:a 1}) returns nil 2021-01-17 13:38:12 +01:00
Michiel Borkent
70292f2015
sci: resolve binding via ctx fn 2021-01-16 16:55:34 +01:00
Michiel Borkent
e039777935
sci: unroll more (#709) 2021-01-16 15:57:21 +01:00
Michiel Borkent
6b5850e92e babashka.curl: allow keyword as header name 2021-01-15 22:27:55 +01:00
Michiel Borkent
d8ac8756eb sci: unroll local binding calls 2021-01-15 19:51:48 +01:00
Michiel Borkent
280730cbac Doc environ [skip ci] 2021-01-15 13:10:17 +01:00
Michiel Borkent
73647b9f89 sci: minor 2021-01-14 16:28:30 +01:00
Michiel Borkent
e85ea4f013 Sci: fix needs-ctx fn 2021-01-14 14:49:56 +01:00
Michiel Borkent
f2b50e1f9d sci: unroll needs-ctx fns 2021-01-14 14:37:12 +01:00
Michiel Borkent
f4d6bebddd sci: unroll inlined fn calls 2021-01-14 11:28:43 +01:00
Michiel Borkent
8607fe64a1 sci: perf 2021-01-14 11:12:00 +01:00
Michiel Borkent
fd37e7ae36 sci: perf 2021-01-13 23:14:15 +01:00
Michiel Borkent
85e7988e08 sci: unroll recur 2021-01-13 22:14:01 +01:00
Michiel Borkent
693c6d90aa sci: unroll and and or 2021-01-13 13:18:29 +01:00
Michiel Borkent
2e025b0ee1 sci 2021-01-13 12:53:50 +01:00
Michiel Borkent
12a8e65078 sci: unroll do 2021-01-13 12:22:58 +01:00
Michiel Borkent
c6f2d36767 sci: minor perf 2021-01-13 10:59:43 +01:00
Michiel Borkent
f96fcc58b6 news [skip ci] 2021-01-11 14:57:58 +01:00
Michiel Borkent
bd241af705 CHANGELOG [skip ci] 2021-01-10 15:43:43 +01:00
Michiel Borkent
3d27677186 [#707] Add pp from clojure.pprint 2021-01-10 15:40:13 +01:00
Michiel Borkent
721e3a4fdb [#705] Tests cannot be defined conditionally 2021-01-10 13:24:22 +01:00
Michiel Borkent
ebb5adeafd sci: defrecord type improvements 2021-01-09 15:19:40 +01:00
Michiel Borkent
3f4e9b8283 news [skip ci] 2021-01-08 11:17:52 +01:00
Michiel Borkent
0f2ce84b42 news [skip ci] 2021-01-07 22:05:33 +01:00
Michiel Borkent
c135052a35 Document cljc.java-time [skip ci] 2021-01-04 12:20:30 +01:00
Michiel Borkent
075543d206 pod: minor 2021-01-03 18:32:41 +01:00
Rahul De
2314c82a1a
Revert "[#699] Test alpine builds"
This reverts commit f3deca41d7.
2021-01-03 15:57:30 +01:00
Rahul De
f3deca41d7
[#699] Test alpine builds 2021-01-03 15:47:00 +01:00
Rahul De
e05b6903ec
[#699] Remove redundant checks for snapshot, fix actions build 2021-01-03 14:53:52 +01:00
Rahul De
8b61d855a8
[#699] Build images only when non snapshot 2021-01-03 14:29:25 +01:00
Rahuλ Dé
7b1e9cbe62
[#699] Add alpine builds
* [#699] Add Dockerfile for alpine

* [#699] Add pod tests

* [#699] Add alpine image build

* [#699] Build images on CI

* [#699] Add actions

* [#699] Amend actions to the new flow
2021-01-03 14:18:34 +01:00
Michiel Borkent
cbe1210e62 [#695] Only build static image on non-SNAPSHOTs 2021-01-03 10:56:21 +01:00
Michiel Borkent
f4478769df [#695] Only build static image on non-SNAPSHOTs 2021-01-03 10:48:03 +01:00
Rahul De
6b6493c4d8
[#696] Use released zip as binary source 2021-01-02 17:43:33 +01:00
Rahul De
1f49e71964
[#696] Copy linux bin correctly into docker 2021-01-02 17:13:38 +01:00
Rahuλ Dé
922de495e1
[#696] Reuse linux binaries for docker builds
* Reuse linux binary in docker build

* Have a dedicated Dockerfile for CI

* Reuse linux binary in GH Actions

* Make docker action depend only on linux

* Run Actions only on master
2021-01-02 16:00:28 +01:00
Michiel Borkent
ee22efdb40
Carve 2021-01-02 15:03:06 +01:00
Michiel Borkent
4819a9b434 rm patreon [skip ci] 2021-01-01 12:02:07 +01:00
Michiel Borkent
bae7c8ad88 Test repo transfer (2) 2021-01-01 12:01:06 +01:00
Michiel Borkent
e3ee4d2119 sci 2021-01-01 11:33:39 +01:00
Michiel Borkent
e309b49e1b Rename 2021-01-01 11:26:31 +01:00
Michiel Borkent
bbf144fbce Test repo transfer 2021-01-01 11:13:37 +01:00
Michiel Borkent
b3942a2dde news [skip ci] 2020-12-31 21:54:17 +01:00
Michiel Borkent
25966e273f Add clj-commons/fs to projects [skip ci] 2020-12-29 23:54:45 +01:00
Michiel Borkent
e1f1fbdaff CHANGELOG [skip ci] 2020-12-29 16:15:16 +01:00
Michiel Borkent
647f0d46be CHANGELOG [skip ci] 2020-12-29 14:00:32 +01:00
Michiel Borkent
fa1421eb75 [babashka/pod-registry#4] Fix issue with unzipping file 2020-12-29 13:57:50 +01:00
Michiel Borkent
da30e30d7d Version bump 2020-12-29 13:07:15 +01:00
Michiel Borkent
3755b24601 CHANGELOG [skip ci] 2020-12-29 12:59:24 +01:00
Michiel Borkent
a194a2d720 v0.2.6 2020-12-29 12:57:04 +01:00
Michiel Borkent
b608277535 [#690] Pod resolver tests 2020-12-29 11:15:33 +01:00
Michiel Borkent
eb8b3f3aaf Babashka pods: registry 2020-12-29 10:35:20 +01:00
Michiel Borkent
10f6aa00a9 README [skip ci] 2020-12-27 16:33:57 +01:00
Michiel Borkent
6a89012660 doc [skip ci] 2020-12-27 16:10:17 +01:00
Michiel Borkent
ed2edc0d00 Changelog [skip ci] 2020-12-27 15:54:18 +01:00
Michiel Borkent
5e15150560 News [skip ci] 2020-12-27 14:36:39 +01:00
Michiel Borkent
b0be0db5af doc [skip ci] 2020-12-27 14:33:37 +01:00
Michiel Borkent
33cc3d0702
[#690] Download pods via pod-registry 2020-12-27 14:25:46 +01:00
Michiel Borkent
76096d3760 README [skip ci] 2020-12-26 21:54:10 +01:00
Eugen Stan
610763415d
Article about Passwordstore exporter w/ babashka (#691)
[skip ci]
2020-12-26 21:52:58 +01:00
Michiel Borkent
4c1a4fbbbc sci: minor 2020-12-25 20:14:57 +01:00
Michiel Borkent
4d686b8e5c sci: minor enhancement to def 2020-12-25 17:27:11 +01:00
Michiel Borkent
2c86f87c35 gitignore [skip ci] 2020-12-24 22:29:33 +01:00
Michiel Borkent
ad100cb4d4 sci 2020-12-24 21:48:26 +01:00
Michiel Borkent
c371e50a2b
Sci: get rid of end-line and end-col metadata 2020-12-24 16:22:09 +01:00
Michiel Borkent
19c497d6b8 Install script minor [skip ci] 2020-12-23 19:55:40 +01:00
Michiel Borkent
e520f4092d README [skip ci] 2020-12-23 19:35:15 +01:00
Michiel Borkent
85fde995f0 [#688] Add --download-dir to bb install script [skip ci] 2020-12-23 19:30:36 +01:00
Michiel Borkent
21e3e283c1 [#684] Auto-resolved map fix 2020-12-23 17:21:29 +01:00
Michiel Borkent
d55e972999
Sci: less meta (#686) 2020-12-23 16:07:58 +01:00
Michiel Borkent
41b6cfe0f7 News [skip ci] 2020-12-22 13:54:58 +01:00
Michiel Borkent
29fa0dd1df Edamame: handle whitespace after read-cond splice 2020-12-21 23:50:20 +01:00
Michiel Borkent
728e935973 fix test 2020-12-21 15:00:08 +01:00
Michiel Borkent
d1550794a3 sci: deref inlined vars 2020-12-21 14:48:22 +01:00
Michiel Borkent
697c5b6152 sci: rename error key 2020-12-20 23:25:03 +01:00
Michiel Borkent
00dd395f54 sci: letfn fix 2020-12-20 16:54:18 +01:00
Michiel Borkent
84834433c1 sci: add with-local-vars 2020-12-20 15:47:37 +01:00
Michiel Borkent
84932c6704 sci 2020-12-19 13:16:15 +01:00
Michiel Borkent
d5962419b0 sci: optimization for user-defined fns 2020-12-19 11:32:44 +01:00
Michiel Borkent
8c277bd10e sci 2020-12-18 18:37:41 +01:00
Michiel Borkent
3b60d2c6e2 sci 2020-12-18 18:23:17 +01:00
Michiel Borkent
e27b9a6410 sci 2020-12-18 18:05:15 +01:00
Michiel Borkent
4c4f7105e3 sci 2020-12-17 23:50:23 +01:00
Michiel Borkent
aefdd36868 [#682] Excluded clojure var in macro still gets resolved to in syntax-quote 2020-12-16 23:29:59 +01:00
Michiel Borkent
80dd1e99db sci: remove dead code 2020-12-16 17:23:16 +01:00
Michiel Borkent
391dec4a50 sci: optimization for if 2020-12-16 17:14:33 +01:00
Michiel Borkent
e88dc25709 sci: restructure internal ns 2020-12-16 13:03:35 +01:00
Michiel Borkent
663a2710dd sci: detect macro as val at analysis time 2020-12-14 23:22:23 +01:00
Michiel Borkent
98a53f8261 CHANGELOG [skip ci] 2020-12-13 21:10:09 +01:00
Michiel Borkent
f3d15b42aa CHANGELOG [skip ci] 2020-12-13 21:03:06 +01:00
Michiel Borkent
29414947f4 Version bump 2020-12-13 20:58:16 +01:00
Michiel Borkent
6323a47d62 CHANGELOG [skip ci] 2020-12-13 20:52:46 +01:00
Michiel Borkent
eee5d3218a CHANGELOG [skip ci] 2020-12-13 20:50:06 +01:00
Michiel Borkent
d6e5df659c v0.2.5 2020-12-13 20:48:13 +01:00
Michiel Borkent
7a8e8a1b9d CHANGELOG [skip ci] 2020-12-13 20:42:43 +01:00
Michiel Borkent
c3524d6156 CHANGELOG [skip ci] 2020-12-13 20:40:51 +01:00
Michiel Borkent
44d632718d Rename clojure to --clojure 2020-12-13 18:02:30 +01:00
Michiel Borkent
a95808bf9e [#677, #678] Correct namespace name 2020-12-13 15:56:24 +01:00
Michiel Borkent
7b8745806f
[#677, #678] babashka.deps add-deps + clojure + clojure subcommand 2020-12-13 11:41:20 +01:00
Michiel Borkent
af3128527a sci [skip ci] 2020-12-11 11:03:54 +01:00
Michael Salihi
83f16421c0
Add DigitalOcean util example [skip ci] (#673) 2020-12-08 15:54:10 +01:00
Michiel Borkent
661019e494 sci [skip ci] 2020-12-08 09:32:46 +01:00
Michiel Borkent
56a7f9d404 Update changelog [skip ci] 2020-12-07 11:12:56 +01:00
Michiel Borkent
d153c4d73e [#666] Binding does not throw on uneven bindings 2020-12-07 11:00:23 +01:00
Michiel Borkent
91f7344586 Doc [skip ci] 2020-12-06 23:07:43 +01:00
Michiel Borkent
0adfcd636b Doc [skip ci] 2020-12-06 23:06:06 +01:00
Michiel Borkent
d6de7a1298 Doc [skip ci] 2020-12-06 23:04:21 +01:00
Michiel Borkent
502a14b505 Survey outcome 2020-11 [skip ci] 2020-12-06 21:34:07 +01:00
Michiel Borkent
1489e003f2 [#670] Add split-classpath 2020-12-06 11:41:05 +01:00
Michiel Borkent
a04a09c018 [#670] Expose get-classpath 2020-12-06 11:01:37 +01:00
Kevin W. van Rooijen
b269b37ecf
Add babashka.classpath/classpath (#669) 2020-12-06 10:57:24 +01:00
Michiel Borkent
9a80a47cfa
[#653] Upgrade to GraalVM 20.3.0 2020-12-05 20:56:12 +01:00
Michiel Borkent
db5466d3c4 doc [skip ci] 2020-12-04 09:42:24 +01:00
Michiel Borkent
a6b9dd1969 doc [skip ci] 2020-12-03 20:51:46 +01:00
Michiel Borkent
537da71c6e doc [skip ci] 2020-12-03 20:48:34 +01:00
Michiel Borkent
4bbe1f642a doc [skip ci] 2020-12-03 20:35:34 +01:00
Michiel Borkent
f9f2147156 Use public interface for print-method of vars 2020-12-03 11:49:19 +01:00
Michiel Borkent
409380dbc3 Bind *print-level* in pREPL 2020-12-03 11:12:46 +01:00
Michiel Borkent
2fdc7cffbc sci 2020-12-03 11:10:51 +01:00
Michiel Borkent
88f0aada4b doc [skip ci] 2020-12-03 10:21:24 +01:00
Michiel Borkent
5ed66f0fe9 Remove survey from README [skip ci] 2020-12-02 14:28:33 +01:00
Michiel Borkent
62e8193b6d Docs [skip ci] 2020-12-02 14:25:45 +01:00
Michiel Borkent
569d44b498 Docs [skip ci] 2020-12-02 14:22:45 +01:00
Michiel Borkent
03bdbf65be sci: remove stale case keyword 2020-11-30 22:54:35 +01:00
Michiel Borkent
709e291a82 News [skip ci] 2020-11-30 12:35:12 +01:00
Michiel Borkent
9661d8e337 Babashka.curl README [skip ci] 2020-11-29 17:12:35 +01:00
Michiel Borkent
6b68f1aa58 babashka.curl [skip ci] 2020-11-29 13:47:49 +01:00
Michiel Borkent
8db51cd3ef Move babashka.curl repo 2020-11-29 11:08:34 +01:00
Michiel Borkent
5f31adb5da doc [skip ci] 2020-11-28 23:34:02 +01:00
Michiel Borkent
157d6dcdfc doc [skip ci] 2020-11-28 23:25:42 +01:00
Michiel Borkent
bbdac251ca doc [skip ci] 2020-11-28 23:21:12 +01:00
Michiel Borkent
b5f48cb00e doc [skip ci] 2020-11-28 23:20:32 +01:00
Michiel Borkent
57f1d03dea doc [skip ci] 2020-11-28 22:41:00 +01:00
Michiel Borkent
7c419de066 doc [skip ci] 2020-11-28 22:36:36 +01:00
Michiel Borkent
84f2fd2be0 doc [skip ci] 2020-11-28 22:34:34 +01:00
Michiel Borkent
f9d3c30166 doc [skip ci] 2020-11-28 21:41:52 +01:00
Michiel Borkent
39e59f2806 doc [skip ci] 2020-11-28 21:23:06 +01:00
Michiel Borkent
f23723abeb Clean up docs [skip ci] 2020-11-28 21:20:39 +01:00
Michiel Borkent
1e0887673a Update example [skip ci] 2020-11-28 15:43:30 +01:00
Michiel Borkent
5399f8b7cc doc [skip ci] 2020-11-28 15:33:59 +01:00
Michiel Borkent
66a92c55d5 Move available namespaces to book 2020-11-28 15:30:07 +01:00
Michiel Borkent
4dc2e8f278 doc [skip ci] 2020-11-28 13:05:21 +01:00
Michiel Borkent
0f522e9c4c doc [skip ci] 2020-11-27 20:33:35 +01:00
Michiel Borkent
2dfffa4c22 doc [skip ci] 2020-11-27 20:26:02 +01:00
Michiel Borkent
077d8b1ac8 doc 2020-11-27 10:52:08 +01:00
Michiel Borkent
9218a3e2b1 Version bump 2020-11-27 09:56:24 +01:00
Michiel Borkent
29e3fa00d4 docs [skip ci] 2020-11-27 09:54:29 +01:00
Michiel Borkent
42e3f44fcb 0.2.4 - tests 2020-11-27 09:48:31 +01:00
Michiel Borkent
fc11d6d0cb 0.2.4 2020-11-27 09:37:39 +01:00
Michiel Borkent
3f9e137df2 v0.2.4 2020-11-27 09:04:37 +01:00
Michiel Borkent
16673573b0 process [skip ci] 2020-11-26 23:47:09 +01:00
Michiel Borkent
c725c3be0b [babashka/process#31] Add tests to bb CI 2020-11-26 23:40:48 +01:00
Michiel Borkent
ec0275575a changelogs [skip ci] 2020-11-26 19:52:37 +01:00
Michiel Borkent
3ac53572a3 sci [skip ci] 2020-11-26 19:49:04 +01:00
Michiel Borkent
5bf36618ff Changelogs [skip ci] 2020-11-26 12:27:29 +01:00
Michiel Borkent
894d704092 Prepl docs [skip ci] 2020-11-26 12:17:14 +01:00
Michiel Borkent
67c33b2270
[#664] Prepl 2020-11-26 12:06:49 +01:00
Michiel Borkent
6ed33d259e sci: symbol on var works, reader conditional with trailing uneval works 2020-11-25 21:10:43 +01:00
Michiel Borkent
facb3b564a borkdude/sci#447 and borkdude/sci#432 2020-11-25 16:44:50 +01:00
Michiel Borkent
f00fcd66c1 [borkdude/sci#452] 2020-11-25 14:19:31 +01:00
Michiel Borkent
18f9a7e362 [borkdude/sci#448] Support evaluations in reader metadata on colls 2020-11-25 11:38:05 +01:00
Michiel Borkent
3ff7ae641f
README.md [skip ci] 2020-11-23 12:11:39 +01:00
Michiel Borkent
8376a5897f
Update README.md 2020-11-23 12:10:17 +01:00
Michiel Borkent
ba7237c0c6 Preliminary changelogs [skip ci] 2020-11-21 12:15:06 +01:00
Michiel Borkent
af2da59d05 Preliminary changelogs [skip ci] 2020-11-21 12:13:44 +01:00
Michiel Borkent
c35955010e [borkdude/babashka#28] Pass --compressed by default 2020-11-21 11:51:08 +01:00
Michiel Borkent
52f1296467
[#658] Remove cheshire smile functions 2020-11-20 17:36:06 +01:00
Michiel Borkent
69d4a4d1ed Add news [skip ci] 2020-11-20 12:25:51 +01:00
Michiel Borkent
e305990dff Add news [skip ci] 2020-11-20 11:54:37 +01:00
Michiel Borkent
1ebe7c6b4c Add news [skip ci] 2020-11-20 11:48:13 +01:00
Michiel Borkent
d156f20132 Add news [skip ci] 2020-11-20 11:47:33 +01:00
Michiel Borkent
3ae817a028 Add news [skip ci] 2020-11-20 11:46:44 +01:00
Michiel Borkent
6d35221881 Add news [skip ci] 2020-11-20 11:45:48 +01:00
Michiel Borkent
6516e97a58 Add news [skip ci] 2020-11-20 11:45:20 +01:00
Michiel Borkent
550071d350 Add news [skip ci] 2020-11-20 11:44:56 +01:00
Michiel Borkent
0b94dda97f Add news [skip ci] 2020-11-20 11:39:43 +01:00
Michiel Borkent
22604aa884 Add news [skip ci] 2020-11-20 11:39:05 +01:00
Michiel Borkent
e7d088d0b8 Add news [skip ci] 2020-11-20 11:34:39 +01:00
Michiel Borkent
95841dfed4 Add news [skip ci] 2020-11-20 11:08:42 +01:00
Michiel Borkent
7fbdd2ef77 sci: add var-get and var-set 2020-11-19 17:26:15 +01:00
Michiel Borkent
50fb631979 Expose get-thread-bindings 2020-11-19 17:26:15 +01:00
Nicolas Ha
aa0d8d1506
feat: add link to turtlequeue/setup-babashka (#655) [skip ci] 2020-11-19 12:33:23 +01:00
Michiel Borkent
82aab029c2 sci: support env in resolve 2020-11-19 09:36:44 +01:00
Michiel Borkent
04500f2448 Import Iterable 2020-11-19 09:22:25 +01:00
Michiel Borkent
86ea4bbc9a Add Iterable 2020-11-18 22:53:21 +01:00
Michiel Borkent
c94b4f9148 sci + nrepl using REPL variables 2020-11-18 22:49:51 +01:00
Michiel Borkent
a74cb810f5 Fix class 2020-11-18 21:46:24 +01:00
Michiel Borkent
76aa7f8f9b Add Seqable instance check 2020-11-18 21:16:29 +01:00
Michiel Borkent
1381f3e563 Fix pst 2020-11-18 21:09:26 +01:00
Michiel Borkent
e65457cf29 Use REPL variables from sci 2020-11-18 20:38:05 +01:00
Michiel Borkent
9cdd81c37b Get rid of :needs-ctx everywhere 2020-11-18 17:46:21 +01:00
Michiel Borkent
6ded59e6f1 sci [skip ci] 2020-11-18 16:42:47 +01:00
Michiel Borkent
ad03edba2c [#654] Preserve reader metadata 2020-11-18 16:20:07 +01:00
Michiel Borkent
c66696f4d0 sci 2020-11-18 15:57:18 +01:00
Michiel Borkent
1f3d366c0c Add link to talk by Nate Jones [skip ci] 2020-11-18 00:03:33 +01:00
Michiel Borkent
7bf2230f1b Revert "Add PipedInputStream and PipedOutputStream"
This reverts commit 51133263f2.
2020-11-17 21:50:39 +01:00
Russell Matney
8da8b3ffb8
Add rofi example [skip ci] (#651)
Rofi is a linux modal menu for fuzzy filtering, with a similar UX to
Alfred or Spotlight on OSX.

Borrows quite directly from the fzf example.
2020-11-17 17:54:02 +01:00
Michiel Borkent
14f452a904 Add fzf example [skip ci] 2020-11-17 11:12:59 +01:00
Burin Choomnuan
51133263f2 Add PipedInputStream and PipedOutputStream 2020-11-17 10:28:46 +01:00
Michiel Borkent
a152a44c87 sci update 2020-11-17 10:28:46 +01:00
Burin Choomnuan
bc47d858a0
Add cprop example (#648) [skip ci] 2020-11-16 12:16:39 +01:00
Michiel Borkent
99a747e951 Fix test 2020-11-15 17:10:09 +01:00
Michiel Borkent
333c0b4d60 Update sci 2020-11-15 17:00:14 +01:00
Michiel Borkent
536b2ed570 Update sci 2020-11-15 16:49:28 +01:00
Jakub Holy
41ede17be0
Docs: how to build in docker + features support (#643)
1. Explain how to build `bb` for linux using docker.
2. Add support for setting the various `BABASHKA_FEATURE_*`
   when doing docker build via `--build-arg`.
2020-11-14 23:05:08 +01:00
Michiel Borkent
d45430fbf1
Update httpkit_server.clj 2020-11-13 14:59:16 +01:00
Aleksandr Zhuravlёv
607c5530d2
Fix link to examples (#645) [skip ci] 2020-11-13 11:44:28 +01:00
Aleksandr Zhuravlёv
d8a16eeb1a
Add torrent-viewer script (#644) [skip ci] 2020-11-13 11:38:18 +01:00
Jakub Holy
3e66570596
BABASHKA_LEAN: keep some feature enabled 2020-11-12 19:59:21 +01:00
Michiel Borkent
42fb620703 [babashka/babashka.nrepl#32] Print actual port used 2020-11-12 09:44:51 +01:00
Jakub Holy
b73940861f
Add feature/oracledb (#638)
NOTE: Using the Oracle driver directly requires some GraalVM settings
while the helidon wrapper provides those and thus works out of the box.
2020-11-11 22:29:42 +01:00
Michiel Borkent
76dd775991 Protocol test 2020-11-11 00:00:17 +01:00
Michiel Borkent
db4c1d049d Test for defining protocol on potentially infinite data structures 2020-11-10 23:47:10 +01:00
Michiel Borkent
d4f9e89577
Add more interfaces to build protocols for 2020-11-10 23:40:28 +01:00
Michiel Borkent
0a2c7fd3f8 [borkdude/sci#440] Support aliases in protocol fns 2020-11-10 23:22:04 +01:00
Michiel Borkent
e5ee8adea1
[borkdude/sci#399] Nested libspecs 2020-11-10 23:01:24 +01:00
Michiel Borkent
8769616d27 README [skip ci] 2020-11-09 12:04:43 +01:00
Michiel Borkent
13fa72f1d1 README [skip ci] 2020-11-09 12:03:32 +01:00
Michiel Borkent
348e770ce6 README [skip ci] 2020-11-08 23:07:38 +01:00
Michiel Borkent
fec71fd984 README [skip ci] 2020-11-08 23:07:13 +01:00
Michiel Borkent
526a5daf5c README [skip ci] 2020-11-08 23:06:06 +01:00
Michiel Borkent
6c9006036a README [skip ci] 2020-11-08 22:54:21 +01:00
Michiel Borkent
7c43189715 README [skip ci] 2020-11-07 20:45:06 +01:00
Michiel Borkent
36cf1a8d70 README [skip ci] 2020-11-07 20:42:48 +01:00
Michiel Borkent
cb90445468 README [skip ci] 2020-11-07 20:32:44 +01:00
Michiel Borkent
222907f436 README [skip ci] 2020-11-07 20:31:55 +01:00
Michiel Borkent
ae0241be7d [#632] :or in destructuring broken for false case 2020-11-04 16:35:59 +01:00
Michiel Borkent
7be5a793af babashka.curl [skip ci] 2020-11-03 12:50:46 +01:00
Michiel Borkent
2d77fd6254 [#630] Fix stream example 2020-11-03 11:42:28 +01:00
Michiel Borkent
d8da037af9 [#627] Expose pprint/simple-dispatch 2020-11-01 20:15:14 +01:00
Michiel Borkent
9ff93d1c4e Note about org.httpkit.{client,server} [skip ci] 2020-10-30 20:25:49 +01:00
Michiel Borkent
99e6866794 sci update 2020-10-30 19:51:53 +01:00
Randy Stauner
4eba4be21f
Let image_viewer example take options for port and dir (#626) [skip ci]
and don't error when the browser requests /favicon.ico
2020-10-30 16:28:14 +01:00
Jeff Evans
aa906ada24
README.md links to borkdude/clj-http-lite instead of babashka/clj-http-lite - #541 (#625) [skip ci]
Fix link to clj-http-lite
2020-10-29 17:09:09 +01:00
Randy Stauner
40ac1675ee
Fix vim link in examples (#623) 2020-10-26 16:41:05 +01:00
Michiel Borkent
c2fe136744 [#622] Can't call symbol literal 2020-10-25 20:27:02 +01:00
Michiel Borkent
28a076c35c CHANGELOG [skip ci] 2020-10-25 19:20:23 +01:00
Michiel Borkent
71254e88e0 CHANGELOG [skip ci] 2020-10-25 16:16:06 +01:00
Michiel Borkent
66e0349660 Add image viewer example [skip ci] 2020-10-25 00:39:51 +02:00
Michiel Borkent
c0a674b034 doc [skip ci] 2020-10-22 23:16:20 +02:00
Michiel Borkent
e4391d8cf9 CHANGELOG [skip ci] 2020-10-22 23:07:27 +02:00
Michiel Borkent
a29855d48e [babashka/process#29] Support chaining of pb 2020-10-22 11:18:12 +02:00
Michiel Borkent
8f6157a291 CHANGELOG [skip ci] 2020-10-21 22:18:21 +02:00
Michiel Borkent
29ee572e44 CHANGELOG [skip ci] 2020-10-21 22:16:33 +02:00
Michiel Borkent
9cacce3558 CHANGELOG [skip ci] 2020-10-21 21:40:28 +02:00
Michiel Borkent
5aaa0ffe2c CHANGELOG [skip ci] 2020-10-21 21:39:47 +02:00
Michiel Borkent
2800acf173 Version bump 2020-10-21 21:37:55 +02:00
Michiel Borkent
d900368ef9 CHANGELOG [skip ci] 2020-10-21 21:29:16 +02:00
Michiel Borkent
30314b350e v0.2.3 2020-10-21 21:28:20 +02:00
Michiel Borkent
de137ddb11 CHANGELOG [skip ci] 2020-10-21 21:28:03 +02:00
Michiel Borkent
381215903c Pod tweak 2020-10-21 17:30:30 +02:00
Michiel Borkent
19757f604b Pods tweak 2020-10-21 16:54:12 +02:00
Michiel Borkent
7ef81a4708 Upgrade deps 2020-10-21 14:31:59 +02:00
Michiel Borkent
9a251998a9 Babashka pods 2020-10-21 14:25:54 +02:00
Michiel Borkent
5ec6915c45 Process tweaks 2020-10-21 13:47:04 +02:00
Michiel Borkent
756d25c6a6 [#619] Add more cheshire vars 2020-10-21 10:25:22 +02:00
Michiel Borkent
ec731a4d47 Process updates 2020-10-21 10:23:26 +02:00
Michiel Borkent
c69b64c61c babashka/process updates 2020-10-20 23:51:42 +02:00
Michiel Borkent
1c10221f86 babashka/process updates 2020-10-20 23:50:48 +02:00
Michiel Borkent
fcd30063f7 babashka/process: inherit 2020-10-20 11:15:03 +02:00
Michiel Borkent
bdd1e58922 babashka/process: opts via metadata 2020-10-20 10:57:08 +02:00
Michiel Borkent
8c73a02915 [babashka/process#2] *escape-fn* 2020-10-19 23:46:21 +02:00
Michiel Borkent
d045f774ea babashka/process tweak 2020-10-19 20:31:11 +02:00
Michiel Borkent
994d6b1a13 README [skip ci] 2020-10-19 16:29:15 +02:00
Michiel Borkent
9027055cc7 [#521] babashka.process 2020-10-19 16:15:54 +02:00
Michiel Borkent
200d444745
[#603] Partial support for multiple classes in reify 2020-10-18 17:15:16 +02:00
Michiel Borkent
5ba2c34794 [#607] Add clojure.pprint/write 2020-10-17 22:10:31 +02:00
Michiel Borkent
ab5a02ec30 [#601] Support clojure.java.io/Coercions 2020-10-17 21:13:27 +02:00
Michiel Borkent
b3fbe7e12e [#601] Support clojure.java.io/Coercions 2020-10-17 21:13:21 +02:00
Michiel Borkent
24f6f8f2a8 [#610] Import should return class 2020-10-17 20:28:19 +02:00
Michiel Borkent
eb3457a35e [#556] remove warning 2020-10-17 17:44:09 +02:00
Michiel Borkent
322157bed1 Fix test 2020-10-17 16:20:09 +02:00
Michiel Borkent
06b543ea32 Fix test 2020-10-17 16:11:32 +02:00
Michiel Borkent
1b3dabfcd2 [borkdude/sci#428] Add *print-namespace-maps* 2020-10-17 15:50:12 +02:00
Michiel Borkent
da870a7c67 [borkdude/sci#431] Support map-> constructor on defrecords 2020-10-17 15:05:28 +02:00
Michiel Borkent
44e51336a7 Portal example [skip ci] 2020-10-17 12:17:17 +02:00
Michiel Borkent
7db18749ac Portal example [skip ci] 2020-10-17 12:15:50 +02:00
Michiel Borkent
6c29ac66ed Portal example [skip ci] 2020-10-17 12:09:05 +02:00
Michiel Borkent
5543feeb2b Portal example [skip ci] 2020-10-17 12:06:33 +02:00
Michiel Borkent
b61002d5df Rename pom examples [skip ci] 2020-10-17 11:39:18 +02:00
Michiel Borkent
c6e0ba997a Move examples page [skip ci] 2020-10-17 11:31:17 +02:00
Michiel Borkent
5484db4f74 Add YAML inspector 2020-10-17 11:25:10 +02:00
Michiel Borkent
199fd46b5e doc [skip ci] 2020-10-17 00:23:29 +02:00
Michiel Borkent
d4f88ed21c [babashka/babashka.nrepl#31] Bind *file* 2020-10-16 18:41:11 +02:00
Michiel Borkent
a616ccdad4 [borkdude/sci#430] bound? 2020-10-15 22:55:44 +02:00
Michiel Borkent
2a9c2e69bd Fix NPE 2020-10-15 17:54:28 +02:00
Michiel Borkent
96aac811d0 [#615] Fix pod destroy function 2020-10-15 17:25:32 +02:00
Michiel Borkent
da81a244e4 [babashka/babashka.pods#21] transit+json support 2020-10-15 17:25:32 +02:00
Hans Bugge Grathwohl
284c55a295
Dockerfile: Install curl to support babashka.curl (#614)
With the current Ubuntu based docker image it is not possible to use
babashka.curl:

```
> docker run --rm -it borkdude/babashka:0.2.3-SNAPSHOT bb '(-> "https://httpstat.us/200" babashka.curl/get :status)'

----- Error --------------------------------------------------------------------
Type:     java.io.IOException
Message:  Cannot run program "curl": error=2, No such file or directory
Location: <expr>:1:1

----- Context ------------------------------------------------------------------
1: (-> "https://httpstat.us/200" babashka.curl/get :status)
   ^--- Cannot run program "curl": error=2, No such file or directory

----- Stack trace --------------------------------------------------------------
babashka.curl/get - <built-in>
user              - <expr>:1:1
```

After this change it works:

```
> docker run --rm -it hansbugge/babashka bb '(->
"https://httpstat.us/200" babashka.curl/get :status)'
200
```
2020-10-14 17:40:52 +02:00
Michiel Borkent
f734dfafec [babashka/babashka.pods#2] Experimental socket support 2020-10-14 16:52:47 +02:00
Michiel Borkent
24a4dfc292 [babashka/babashka.pods#2] Experimental socket support 2020-10-14 16:45:06 +02:00
Michiel Borkent
e20f5f2069 Update lanterna example 2020-10-14 13:51:23 +02:00
Michiel Borkent
834bd05ac2 Fix example 2020-10-13 23:09:53 +02:00
Michiel Borkent
e04a7af7ef [babashka/babashka.pods#2] Experimental socket support 2020-10-13 22:34:28 +02:00
Michiel Borkent
b00bc71c1c Example [skip ci] 2020-10-13 16:57:04 +02:00
Michiel Borkent
5fd975c312 Examples [skip ci] 2020-10-13 16:31:24 +02:00
Michiel Borkent
958944d785 [babashka/babashka.pods#2] Experimental socket support 2020-10-13 11:08:59 +02:00
Michiel Borkent
8137a413a4 doc [skip ci] 2020-10-12 17:47:28 +02:00
Kevin W. van Rooijen
13f65f05ae
Add optional clojure-lanterna feature 2020-10-12 17:42:18 +02:00
Michiel Borkent
b5f65e10a6 [#611] pprint/print-table should write to sci/out 2020-10-11 17:02:50 +02:00
Davide Taviani
e7d3a95d53
Add nextjournal/ssh-github-auth to projects [skip ci] 2020-10-09 12:57:18 +02:00
Michiel Borkent
a5c6945dab doc [skip ci] 2020-10-08 18:16:54 +02:00
Michiel Borkent
f06cb7f206 [babashka/babashka.nrepl#28] support for error output in nREPL 2020-10-08 17:14:46 +02:00
Michiel Borkent
864c30ef15 [#606] Fix System/exit in REPL 2020-10-05 22:11:21 +02:00
Michiel Borkent
5c7f8dedff [#605] add lazy-cat 2020-10-05 11:12:17 +02:00
Michiel Borkent
150fd27a76 README [skip ci] 2020-10-03 15:35:11 +02:00
Michiel Borkent
157b606d06 README [skip ci] 2020-10-03 15:34:09 +02:00
Michiel Borkent
f8e5e68144 README [skip ci] 2020-10-03 15:21:08 +02:00
Michiel Borkent
92d7892aa6 README [skip ci] 2020-10-03 15:19:47 +02:00
Michiel Borkent
da79d2ed82 README [skip ci] 2020-10-03 15:19:30 +02:00
Michiel Borkent
89d7313e5c README [skip ci] 2020-10-03 15:17:44 +02:00
Michiel Borkent
781a3a875c [#604] Move Docker image to Ubuntu 2020-10-01 20:06:49 +02:00
Michiel Borkent
bf38230bf3 pod-tzzh-mail [skip ci] 2020-10-01 18:08:47 +02:00
Michiel Borkent
db84ebd3e5 README [skip ci] 2020-10-01 14:21:40 +02:00
Michiel Borkent
bbe47904b0 CircleCI docker 2020-10-01 12:23:34 +02:00
Michiel Borkent
19e15743e4 CHANGELOG [skip ci] 2020-09-30 21:14:48 +02:00
Michiel Borkent
92dc874592 CHANGELOG [skip ci] 2020-09-30 21:14:24 +02:00
Michiel Borkent
0727781e60 CHANGELOG [skip ci] 2020-09-30 21:13:41 +02:00
Michiel Borkent
1a412bad8b [CHANGELOG] skip ci 2020-09-30 21:13:02 +02:00
Michiel Borkent
928f6f4c70 CHANGELOG [skip ci] 2020-09-30 21:09:41 +02:00
Michiel Borkent
4a5da838e6
Update CHANGELOG.md 2020-09-30 21:02:34 +02:00
Michiel Borkent
6cc8877481 Version bump 2020-09-30 20:54:44 +02:00
Michiel Borkent
a4f7e53ce7 CHANGELOG [skip ci] 2020-09-30 20:53:52 +02:00
Michiel Borkent
2b83f25389 v0.2.2 2020-09-30 20:36:45 +02:00
Michiel Borkent
079faf8106 [#600] Support java.io.FilenameFilter 2020-09-30 20:21:55 +02:00
Michiel Borkent
c078dc69e4 [#600] Support java.io.FileFilter 2020-09-30 17:14:42 +02:00
Michiel Borkent
4a45cd3fd7 [#600] Support for reifying java.nio.file.FileVisitor 2020-09-30 15:37:29 +02:00
Michiel Borkent
e54329d2a3 [babashka/babashka.pods#20] Ensure ns-map exists for code-only nss 2020-09-30 12:25:06 +02:00
Michiel Borkent
60ff9cf1bd rm java.util.regex.Pattern for now 2020-09-28 23:04:17 +02:00
Michiel Borkent
d3ebe97e95 rm java.util.regex.Pattern for now 2020-09-28 22:58:25 +02:00
Michiel Borkent
194c631fb7 Add java.util.regex.Matcher 2020-09-28 22:53:05 +02:00
Michiel Borkent
6e358ed20d Add java.util.zip.ZipEntry 2020-09-27 14:18:44 +02:00
Michiel Borkent
2c2b02a33d Add java.util.zip.ZipInputStream 2020-09-27 14:09:28 +02:00
Michiel Borkent
2c7ebdfddf README [skip ci] 2020-09-25 18:47:44 +02:00
Michiel Borkent
582cce905f README [skip ci] 2020-09-25 18:46:26 +02:00
Pradeep Bishnoi
d490536c3e
Adding custom version support in command line args (#598) 2020-09-25 18:37:38 +02:00
Michiel Borkent
9785046848 CHANGELOG [skip ci] 2020-09-25 18:19:22 +02:00
Michiel Borkent
3411d7ba5f Version bump 2020-09-25 15:23:13 +02:00
Michiel Borkent
1f8ea7c0cd v0.2.1 2020-09-25 15:12:08 +02:00
Michiel Borkent
706dbf6a97
[#571] Use real clojure.pprint, not fipp 2020-09-25 12:04:31 +02:00
Søren Sjørup
659353a3fb
Fix typos in Printing returned values (#596) [skip ci] 2020-09-25 10:31:39 +02:00
Michiel Borkent
5157c71f0a tweak warning [skip ci] 2020-09-23 14:47:03 +02:00
Michiel Borkent
bbed428f29 CHANGELOG [skip ci] 2020-09-23 14:44:49 +02:00
Michiel Borkent
b7a3936595
0.2.1 CHANGELOG.md [skip ci] 2020-09-23 14:32:11 +02:00
Michiel Borkent
2f445658bf [#583] round-trip YAML using *input* 2020-09-23 11:15:29 +02:00
Michiel Borkent
49c2661cf6 Fix tests 2020-09-23 10:52:10 +02:00
Michiel Borkent
6d2b026dd2 [#589] Fix REPL error locations 2020-09-23 10:40:43 +02:00
Chris Badahdah
72ec14349c
[#556] Add server-port and send! to org.httpkit.server 2020-09-23 09:32:07 +02:00
Michiel Borkent
985425cbfe [borkdude/sci#420] - add find-var 2020-09-22 23:18:00 +02:00
Michiel Borkent
2e51645b1e
Update libraries.md 2020-09-22 17:54:16 +02:00
Michiel Borkent
1f00387a39
Update libraries.md 2020-09-22 17:53:33 +02:00
Michiel Borkent
1efd3e6d3d [#587] Avoid NPE in error handling 2020-09-22 15:10:39 +02:00
Michiel Borkent
e531300bae Bump min macOS to 10.13 2020-09-22 13:13:45 +02:00
Michiel Borkent
cb2a719b09
Set macOS deployment target explicitly (10.11, El Capitan) (#588) 2020-09-22 12:36:53 +02:00
Michiel Borkent
007c182da7 Fix for borkdude/sci#421 2020-09-22 11:54:51 +02:00
Michiel Borkent
7b575b9fae sci [skip ci] 2020-09-21 22:36:33 +02:00
Michiel Borkent
d8e14c278d Libtest improvements 2020-09-21 10:56:33 +02:00
Michiel Borkent
8d53725439 Update README [skip ci] 2020-09-21 09:36:09 +02:00
Michiel Borkent
028e1bd162 [#556] Support disabling warning via *err* 2020-09-20 23:31:41 +02:00
Michiel Borkent
a1d34f5242
[#556] Add org.httpkit.server namespace (experimental) 2020-09-20 23:19:49 +02:00
Michiel Borkent
a248246a13 sci minor [skip ci] 2020-09-20 20:47:47 +02:00
Michiel Borkent
604dabec8c [#581] Add java.io.FileNotFoundException 2020-09-20 11:38:14 +02:00
Michiel Borkent
9df2e88d90 sci: some perf improvements 2020-09-19 21:18:39 +02:00
Michiel Borkent
ae841ab93e borkdude/babashka.curl#25 2020-09-19 15:23:42 +02:00
Michiel Borkent
9aec485913
[#561] Add tests + enhancements for org.httpkit.client 2020-09-19 14:30:48 +02:00
Michiel Borkent
67065d9d5a [#561] Docs [skip ci] 2020-09-18 21:47:01 +02:00
Michiel Borkent
f89da080c3
[#561] Add org.httpkit.client namespace
This also bumps GraalVM to 20.2.0 and XCode to version 12
2020-09-18 21:32:08 +02:00
Michiel Borkent
51dca73030 build.md [skip ci] 2020-09-17 13:05:05 +02:00
Michiel Borkent
31f4e396f8 sci tests [skip ci] 2020-09-16 21:59:28 +02:00
Michiel Borkent
ee6be90c67 borkdude/sci#410 2020-09-16 21:31:54 +02:00
Michiel Borkent
b7e57a76d7 README [skip ci] 2020-09-16 15:55:56 +02:00
Michiel Borkent
c4d05b4811 [#557] Fix namespace change in REPL 2020-09-16 15:54:39 +02:00
Michiel Borkent
a0da0d952b
[borkdude/sci#401] Support implementing IDeref/IAtom/IAtom2 2020-09-16 14:31:28 +02:00
Michiel Borkent
c3085f21c2 Windows build instructions [skip ci] 2020-09-15 22:38:09 +02:00
Michiel Borkent
a7577da746 Windows build instructions [skip ci] 2020-09-15 22:36:48 +02:00
Michiel Borkent
55c2fcfb75 Update edamame 2020-09-15 17:44:51 +02:00
Michiel Borkent
e53aae68c5 Update sci 2020-09-15 17:44:49 +02:00
Michiel Borkent
599ddc9fe5 README [skip ci] 2020-09-14 15:48:37 +02:00
Adam Hartley
3a06297e5c
Bump to Xcode 9.4.1 (#572) 2020-09-11 22:47:40 +02:00
David Harrigan
9f1d7e113c
Add in dharrigan/spotifyd-notification example (#570) [skip ci] 2020-09-10 13:22:54 +02:00
Lee Read
5d9027fe0a
Added lib tests for version-clj (#569)
The version-clj project uses `.cljx` so I hand-transcribed them to `.cljc`.

Tests are from from version-clj v1.0.2:
https://github.com/xsc/version-clj/tree/clojars-0.1.2

Added `version-clj.via-use-test` to verify loading version-clj via `use`.

Verification via: `./script/run_lib_tests`, I observed version-clj tests:
1. failing for `bb` native v0.2.0
2. passing for `./bb` native built from master
3. passing for `lein bb` from master

This should be the final change that closes #565.
2020-09-09 23:03:15 +02:00
Lee Read
43a1634d3b
Document version-clj as a library that works with babashka (#568)
* Document version-clj as a library that works with babashka

The `use` syntax relies on resolution of #565

* Switch to loading version-clj via require

In bb version <= 0.2.0 `use` does not work with `version-clj.core`,
so the example now provides usage that works with older versions of bb.
2020-09-09 20:25:38 +02:00
Michiel Borkent
e7946d1d55
Add java.security.DigestInputStream 2020-09-08 09:43:38 +02:00
Michiel Borkent
0c78a249f9
Add java.nio.file.FileVisitOption (#566) 2020-09-08 09:43:12 +02:00
Michiel Borkent
f4f15f9c95
Update README.md 2020-09-07 13:51:22 +02:00
Michiel Borkent
4c26b6bfbf [#565] fix use, don't pass via ctx 2020-09-06 23:40:56 +02:00
Michiel Borkent
1942869224 borkdude/sci#398 2020-09-06 23:30:08 +02:00
Michiel Borkent
95f8a917da README [skip ci] 2020-09-02 00:02:36 +02:00
Michiel Borkent
ae9fe1a212 README [skip ci] 2020-09-02 00:01:33 +02:00
Michiel Borkent
3442b8f043 README [skip ci] 2020-09-01 23:53:46 +02:00
Michiel Borkent
76fa9d8b81 README [skip ci] 2020-09-01 23:50:28 +02:00
Michiel Borkent
45e55ccf5c README [skip ci] 2020-09-01 23:46:01 +02:00
Michiel Borkent
f5468b6150 README [skip ci] 2020-09-01 23:28:16 +02:00
Michiel Borkent
84eb27a2a0 README [skip ci] 2020-09-01 23:27:24 +02:00
Michiel Borkent
3e874cbc02 README [skip ci] 2020-09-01 22:49:50 +02:00
Michiel Borkent
e0540ebefb README [skip ci] 2020-09-01 22:46:41 +02:00
Michiel Borkent
90345736fa sci minor 2020-09-01 15:42:38 +02:00
Michiel Borkent
3f8a1bc1c8
Bump clj-yaml library to 0.7.2 (#562) 2020-09-01 13:14:04 +02:00
Michiel Borkent
81b4010b54 README [skip ci] 2020-08-31 15:02:15 +02:00
Michiel Borkent
f1e861e455 README [skip ci] 2020-08-31 15:01:42 +02:00
Michiel Borkent
53f0cde022 README [skip ci] 2020-08-31 14:59:57 +02:00
Teodor Heggelund
6e8bb719b0
Fix spelling error in bb --help (#555) 2020-08-29 10:37:59 +02:00
Michiel Borkent
e3d10c03b9 CHANGELOG formatting [skip ci] 2020-08-29 09:10:41 +02:00
Michiel Borkent
93747d4359 CHANGELOG formatting [skip ci] 2020-08-28 23:18:13 +02:00
Michiel Borkent
ccda6c3b54 CHANGELOG formatting [skip ci] 2020-08-28 23:17:07 +02:00
Michiel Borkent
e8ff038972 Add portal to changelogs [skip ci] 2020-08-28 22:17:57 +02:00
Michiel Borkent
a74ff62239 Version bump 2020-08-28 20:59:07 +02:00
Michiel Borkent
8884a64fcc Changelog 2020-08-28 20:55:26 +02:00
Michiel Borkent
7b9e9eae80 v0.2.0 2020-08-28 20:40:57 +02:00
Michiel Borkent
66ae9fb7b8 Add clojure.walk/macroexpand-all 2020-08-27 16:47:00 +02:00
Michiel Borkent
007ebb918e Add java.time.format.DateTimeParseException 2020-08-27 15:45:33 +02:00
Michiel Borkent
4f87c41ba9 Release notes [skip ci] 2020-08-26 20:44:16 +02:00
Michiel Borkent
8d7bb09a2b Release notes [skip ci] 2020-08-26 20:43:16 +02:00
Michiel Borkent
de893ddc47 Release notes [skip ci] 2020-08-26 20:34:50 +02:00
Michiel Borkent
0922a5e95c sci [skip ci] 2020-08-26 20:32:19 +02:00
Michiel Borkent
98b028b1f4 Release notes [skip ci] 2020-08-26 20:31:05 +02:00
Michiel Borkent
bcdfb34b31 Sci: namespace not found in require error msg 2020-08-26 20:21:03 +02:00
Michiel Borkent
7cbaa36652
[#543] Stacktrace improvements 2020-08-26 18:16:11 +02:00
Michiel Borkent
2f04a63c8c Fix classpath in README 2020-08-26 10:22:45 +02:00
Michiel Borkent
3dedbb3b2d borkdude/sci#384 2020-08-25 11:15:22 +02:00
Michiel Borkent
5b0f54e576
[#508, #543] Improve error reporting with stack trace 2020-08-24 23:45:41 +02:00
Michiel Borkent
2c4ea30dea sci bumped version [skip ci] 2020-08-24 15:40:43 +02:00
Michiel Borkent
e54834426f sci 2020-08-24 10:32:56 +02:00
Michiel Borkent
81169854be Prepare release notes [skip ci] 2020-08-21 10:43:04 +02:00
Michiel Borkent
083b6feec5 Prepare release notes [skip ci] 2020-08-21 10:42:07 +02:00
Michiel Borkent
3ef00dbbd7 Prepare release notes [skip ci] 2020-08-21 10:40:54 +02:00
Michiel Borkent
46b5b523e0 Prepare release notes [skip ci] 2020-08-21 10:33:07 +02:00
Michiel Borkent
00a11ad31f
Prepare release notes [skip ci] 2020-08-21 10:31:54 +02:00
Michiel Borkent
7049b1b0bd README [skip ci] 2020-08-19 17:15:56 +02:00
Michiel Borkent
bed2a3dee0 README [skip ci] 2020-08-19 17:13:05 +02:00
Michiel Borkent
a4ecfd075e README [skip ci] 2020-08-19 17:12:14 +02:00
Michiel Borkent
ab0af85884
[#536] Support uberjars 2020-08-19 16:39:42 +02:00
c.p
4fc9271cd6
Fixes changelog path in README.md (#542) [skip ci] 2020-08-19 16:37:38 +02:00
j-cr
ed25e10d55
[doc] set classpath in the nrepl helper script (#539) [skip ci]
In the suggested helper script for starting the nrepl server, set the classpath to include `src` and `test` dirs, so that :require works correctly when the script is run from the project root.
2020-08-18 09:44:08 +02:00
Michiel Borkent
20171c59d3 docs [skip ci] 2020-08-17 23:05:13 +02:00
Michiel Borkent
5402a452cb docs [skip ci] 2020-08-17 23:04:11 +02:00
Michiel Borkent
9fffa80def [#538] support top-level requires 2020-08-17 23:01:28 +02:00
Michiel Borkent
4dd102ca19 [#538] make uberscript more accepting 2020-08-17 22:09:44 +02:00
Michiel Borkent
418f00eb64
[#535] Ignore unresolved symbol in uberscript 2020-08-17 20:02:07 +02:00
Michiel Borkent
60c73d21a6 [#535] use distinct instead of dedupe 2020-08-17 12:42:27 +02:00
Michiel Borkent
150b35e789 [#528] Allow reading resources from jar on Windows 2020-08-17 10:50:26 +02:00
Michiel Borkent
d98316a477 [#536] limit search for manifest to jar file 2020-08-16 20:35:38 +02:00
Michiel Borkent
916858e016 Add -jar option to run uberjar 2020-08-16 20:25:58 +02:00
Michiel Borkent
02032625ee [#535] fix order in --uberscript (2) 2020-08-16 18:00:39 +02:00
Michiel Borkent
0829ccbe2e [#535] fix order in --uberscript 2020-08-16 15:59:38 +02:00
Michiel Borkent
9d5f3337bc sci: expose realized? 2020-08-16 13:31:59 +02:00
Michiel Borkent
1761aac14a [babashka/babashka.nrepl#25] fix binding of *warn-on-reflection* in nREPL 2020-08-14 17:40:57 +02:00
Michiel Borkent
e2d801ef57 [borkdude/sci#379] Fix false dynamic binding 2020-08-14 17:19:07 +02:00
Michiel Borkent
9b68099543
[#532] Prefer .getAbsoluteFile over .getCanonicalFile for preserving 2020-08-14 11:39:48 +02:00
Michiel Borkent
6c5f7ef964 Add Babashka Clojure/NYC talk link [skip ci] 2020-08-13 23:27:12 +02:00
Michiel Borkent
88aa247536
[#468] Add clojure.core.protocols w Datafiable and Navigable 2020-08-13 11:20:32 +02:00
Michiel Borkent
c275e46a20 Fix doc [skip ci] 2020-08-13 10:37:21 +02:00
Michiel Borkent
5848837b9c Ignore .calva 2020-08-13 10:36:40 +02:00
Michiel Borkent
71e2957ecc [#468] fix ns name 2020-08-12 09:39:19 +02:00
Michiel Borkent
f091eeddd9
[#528] Allow reading resources from jar files 2020-08-12 09:34:38 +02:00
Michiel Borkent
4729fb1d8b
[#468] Add clojure.datafy namespace 2020-08-11 21:57:03 +02:00
Chris Badahdah
e4714bb18c
Expose tap>, add-tap and remove-tap (#527) 2020-08-11 18:07:56 +02:00
Gabriel Horner
901ea41f20
Add lib tests for bond (#524)
* Add lib-tests for bond

* Mention bond and add instructions for adding libtests

* Tweak lib test to detect exception that bb throws
2020-08-11 18:07:29 +02:00
Michiel Borkent
097ced0f14 sci: add remove-watch 2020-08-10 19:20:12 +02:00
Chris Badahdah
d37827bc1e
Expose more transit vars (#525) 2020-08-10 10:31:02 +02:00
Michiel Borkent
475e2829cb Update babashka.curl deps.edn / fix test 2020-08-09 23:01:14 +02:00
Michiel Borkent
efc2946b81 Update minimallist dep + tests 2020-08-09 22:13:14 +02:00
Michiel Borkent
eeabbb684f
borkdude/sci#375: allow re-binding of core vars in with-redefs 2020-08-08 21:14:29 +02:00
Gabriel Horner
106fd03e7b
Add java class to support circle/bond (#522) 2020-08-08 09:59:24 +02:00
Michiel Borkent
5a02faeb1f Better names 2020-08-01 20:00:27 +02:00
Michiel Borkent
04d30983be Explain test [skip ci] 2020-08-01 16:59:36 +02:00
Michiel Borkent
65eecdfc1c
Several improvements around destroying subprocesses
See test/babashka/scripts/child.bb
2020-08-01 16:47:10 +02:00
Michiel Borkent
864cf410ed sci: add iterator-seq 2020-07-31 17:54:05 +02:00
Michiel Borkent
8edda77054 Add BABASHKA_FAIL_FAST 2020-07-30 20:39:31 +02:00
Michiel Borkent
28d7dd4465 README [skip ci] 2020-07-28 10:44:56 +02:00
Gomotso Lilokoe
64367e8f58
add sudo to install command. (#515) [skip ci]
sudo is required to move "$download_dir/bb" to "$PWD/bb"
2020-07-28 10:42:21 +02:00
Graham Carlyle
01f2a94117
Describe non-printing of returned nil [skip ci] (#514) 2020-07-27 20:26:05 +02:00
Michiel Borkent
c180b5a717 Update submodules 2020-07-21 11:22:57 +02:00
Michiel Borkent
54424a5b9d sci 2020-07-21 11:21:34 +02:00
Michiel Borkent
945de0c5be sci: get rid of self-require 2020-07-19 22:54:15 +02:00
Michiel Borkent
b99416d0df sci: support multiple methods on protocol in defrecord 2020-07-17 16:21:24 +02:00
Michiel Borkent
9b2cc13a1f Add blog by Dave Martin [skip ci] 2020-07-17 16:21:24 +02:00
Lee Read
7b5e09e4e8
Compile script now follows symlinks when searching for svm.jar (#512)
Fixes #511
2020-07-16 09:40:34 +02:00
Michael Wood
8bdceada9b
Fix a couple of typos (#507) [skip ci] 2020-07-13 18:29:24 +02:00
Michiel Borkent
71004afd01 sci: add class? 2020-07-12 15:03:09 +02:00
Michiel Borkent
3386874f03 Add blog by Andrew Montalenti 2020-07-11 22:05:28 +02:00
Michiel Borkent
8e7d4d4bbf doc [skip ci] 2020-07-05 12:38:26 +02:00
Michiel Borkent
f262e0b4dc doc [skip ci] 2020-07-05 12:26:33 +02:00
Michiel Borkent
227b8a0e77 Fix BABASHKA_LEAN 2020-07-05 12:13:08 +02:00
Michiel Borkent
307b6dba0d sci [skip ci] 2020-07-04 22:21:59 +02:00
Michiel Borkent
b05c36da35 borkdude/sci#363 2020-07-03 09:31:15 +02:00
Michiel Borkent
1ee07bb1c5 borkdude/sci#361: eval metadata on var created with defn 2020-07-02 23:34:28 +02:00
Nate Jones
640ebce242
Add tabl to pod list (#503) 2020-07-01 20:22:05 +02:00
Michiel Borkent
018e011ee6 Update ls_jar.clj [skip ci] 2020-07-01 13:53:10 +02:00
Michiel Borkent
e667bb5d2f doc [skip ci] 2020-06-29 11:43:20 +02:00
Michiel Borkent
31b16d64c6 doc [skip ci] 2020-06-29 11:41:54 +02:00
Michiel Borkent
5608f935cd babashka.curl 2020-06-28 22:53:39 +02:00
Michiel Borkent
7e6d3130c0 babashka.curl 2020-06-28 13:24:17 +02:00
Michiel Borkent
ff97feab52
doc [skip ci] 2020-06-27 16:09:28 +02:00
Michiel Borkent
522dddb6c3 Fix version test 2020-06-27 13:55:58 +02:00
Michiel Borkent
e876ad0e3d doc [skip ci] 2020-06-27 13:52:48 +02:00
Michiel Borkent
3b59438e63 Version bump 2020-06-27 13:49:47 +02:00
Michiel Borkent
51e08b07fc doc [skip ci] 2020-06-27 13:42:55 +02:00
Michiel Borkent
003f4b0201 doc [skip ci] 2020-06-27 13:39:06 +02:00
Michiel Borkent
ba8116c898 doc [skip ci] 2020-06-27 13:38:02 +02:00
Michiel Borkent
917782999c doc [skip ci] 2020-06-27 13:37:33 +02:00
Michiel Borkent
14cbf5777e v0.1.3 2020-06-27 13:32:54 +02:00
Michiel Borkent
e8c3415925 CHANGELOG.md [skip ci] 2020-06-27 13:32:43 +02:00
Michiel Borkent
8a84ec0ac9 CHANGELOG.md [skip ci] 2020-06-27 13:31:29 +02:00
Michiel Borkent
d422cbb91a [#478] Add babashka.file property 2020-06-27 12:58:45 +02:00
Michiel Borkent
8a75a70bbe
[#498] Fix for invoking -f with empty file 2020-06-27 12:12:53 +02:00
Michiel Borkent
ede2916c6b Fix lib-tests 2020-06-27 11:31:05 +02:00
Michiel Borkent
3631dba590 sci: fix borkdude/sci#359 2020-06-27 11:23:30 +02:00
Michiel Borkent
36be2a8dc5 Add java.net.ConnectException 2020-06-26 11:56:04 +02:00
Michiel Borkent
f7accf1999 doc [skip ci] 2020-06-26 10:43:49 +02:00
Michiel Borkent
e095e1485a
[#479] Add babashka.version system property 2020-06-26 10:38:58 +02:00
André de Jager
475622f7f4
Changes needed for cli-matic (#499)
* Changes needed for cli-matic

- Added more clojure.lang classes
- Added tools.cli/make-summary-part

* Remove trailing empty line
2020-06-26 09:28:54 +02:00
Michiel Borkent
633264096d
[#495] add clojure.java.browse/browse-url 2020-06-23 15:14:26 +02:00
Nate Jones
665f7e0956
Add brisk to pod list (#494) 2020-06-22 20:42:10 +02:00
zhongxiao
5282755f8e
http-server example: Resolve access to subfolder 2020-06-22 20:11:25 +02:00
Michiel Borkent
834c78c044
[#491] fix binding of clojure.test/report 2020-06-22 11:36:08 +02:00
Michiel Borkent
b49a3047d0 sci doc [skip ci] 2020-06-21 23:14:56 +02:00
Michiel Borkent
7b4fdbb622 sci: allow parsing of Clojure code in data literals 2020-06-20 23:24:21 +02:00
miclill
54464bb13b
Clarify Readme.md (#488) 2020-06-17 19:58:36 +02:00
Michiel Borkent
4c735d8642 babashka.nrepl: eldoc try/catch (@llacom) 2020-06-17 15:20:37 +02:00
Michiel Borkent
b6a517b979 Make clojure.test/test-var dynamic 2020-06-17 13:50:47 +02:00
Michiel Borkent
d0939de548 [#482] make clojure.test/report a dynamic var 2020-06-17 13:40:56 +02:00
Michiel Borkent
ee8508d320
Merge testing of libs into one babashka process (#485) 2020-06-17 13:30:22 +02:00
Michiel Borkent
4a126be2c6 sci: fix new-macro-var API fn 2020-06-17 11:45:53 +02:00
Michiel Borkent
af760c8263
Test minimallist (#484) 2020-06-17 11:45:16 +02:00
Michiel Borkent
7a78672639 Update sci version 2020-06-16 21:41:31 +02:00
Michiel Borkent
54fd245c3f Add java.time.temporal.{TemportalAdjuster, TemporalAmount} classes 2020-06-16 16:40:17 +02:00
Michiel Borkent
64009de8e1 babashka.nrepl: eldoc support 2020-06-16 11:41:13 +02:00
Michiel Borkent
a80f4e96d5 Update CIDER link [skip ci] 2020-06-15 09:46:11 +02:00
Michiel Borkent
4497d6f107 CHANGELOG [skip ci] 2020-06-14 12:51:45 +02:00
Michiel Borkent
a2b5c5af96 libraries.md [skip ci] 2020-06-14 12:51:09 +02:00
Michiel Borkent
2cef5c7727 Version bump 2020-06-14 12:48:36 +02:00
Michiel Borkent
524a862efe v0.1.2 2020-06-14 12:29:34 +02:00
Michiel Borkent
6f128d6761 CHANGELOG [skip ci] 2020-06-14 12:27:35 +02:00
Michiel Borkent
326545cfb8 CHANGELOG [skip ci] 2020-06-14 12:25:38 +02:00
Michiel Borkent
be39ee7e27
Add compatibility with honeysql (#476) 2020-06-13 23:44:35 +02:00
Michiel Borkent
6bd3dc3d9f [#471] add version info to nrepl describe op 2020-06-12 23:47:38 +02:00
Michiel Borkent
7c4722d66e README [skip ci] 2020-06-12 19:47:44 +02:00
Jeroen van Dijk
0754975172
Add support for clojure.data.generators (#470) 2020-06-12 16:35:34 +02:00
Michiel Borkent
d88c034686 sci: support *print-level* 2020-06-12 16:06:35 +02:00
Michiel Borkent
fae5c86009
Add clojure.lang.BigInt (#472) 2020-06-12 11:37:55 +02:00
Michiel Borkent
a825cc85c1 sci: add double-array and short-array 2020-06-12 10:35:06 +02:00
Michiel Borkent
6ce94bdd86 [#469] Fix classpath on Windows for .jar files 2020-06-11 23:06:33 +02:00
Michiel Borkent
070ff2449e sci 2020-06-11 23:06:33 +02:00
Michiel Borkent
b87c26621b
Update libraries.md [skip ci] 2020-06-11 17:27:08 +02:00
Michiel Borkent
f3bf62127c sci: support :extend-via-metadata option in protocols 2020-06-11 11:17:38 +02:00
Michiel Borkent
71295354dc README [skip ci] 2020-06-11 09:29:22 +02:00
Michiel Borkent
a85fb16d50 CHANGELOG.md [skip ci] 2020-06-11 00:19:48 +02:00
Michiel Borkent
54b43c395f CHANGELOG.md [skip ci] 2020-06-11 00:19:08 +02:00
Michiel Borkent
7301df2d6c CHANGELOG.md [skip ci] 2020-06-11 00:16:25 +02:00
Michiel Borkent
ac04eb17ee CHANGELOG.md [skip ci] 2020-06-11 00:13:47 +02:00
Michiel Borkent
e114ebaafe Version bump 2020-06-11 00:09:58 +02:00
Michiel Borkent
c04fa89226 libraries [skip ci] 2020-06-10 23:59:31 +02:00
Michiel Borkent
cb0361f05e v0.1.1 2020-06-10 23:54:48 +02:00
Michiel Borkent
a26decfca8
aero tests 2020-06-10 23:52:30 +02:00
Michiel Borkent
26939ff677 io/resource should return nil for non-relative paths 2020-06-10 22:55:07 +02:00
Michiel Borkent
64f3d2cc7b sci: fix resolve var symbol from other ns 2020-06-10 21:04:11 +02:00
Michiel Borkent
42be1778c1 sci: fix record? for sci records 2020-06-10 16:55:41 +02:00
Michiel Borkent
cc4ac98795 Add default-data-readers. 2020-06-10 15:20:47 +02:00
Michiel Borkent
12a5b7b65a sci: fix instance? for defrecord 2020-06-10 15:15:59 +02:00
Mikko Harju
fa7f97b2f3
Update GraalVM version in build instructions. (#465)
* Update GraalVM version in build instructions.

* Update comment in bump_graal_version
2020-06-10 10:46:20 +02:00
Michiel Borkent
14cd18f50f
sci: defprotocol and defrecord 2020-06-09 23:11:09 +02:00
Michiel Borkent
cfc5eda725 Add java.io.Console 2020-06-09 16:40:20 +02:00
Michiel Borkent
204dc1b2f9 babashka.curl: fix quote escaping 2020-06-08 22:48:21 +02:00
Michiel Borkent
63e4a3a672 sci 2020-06-08 21:29:30 +02:00
Chowlz
480d613b62
Disable signal handlers on AWS lambdas via env var (#462)
* Disable handle-sigint! when BABASHKA_DISABLE_PIPE_SIGNAL_HANDLER is true

This allows babashka to be run in an AWS lambda.

* Rename BABASHKA_DISABLE_PIPE_SIGNAL_HANDLER to BABASHKA_DISABLE_SIGNAL_HANDLERS

Any signal handler used in AWS lambdas will not work. This simplifies/shortens
the naming of the env var.
2020-06-08 21:27:40 +02:00
Michiel Borkent
f15d609b45 Add vim example 2020-06-07 14:16:48 +02:00
Michiel Borkent
566eff4b94 [#460] fix interop with environment 2020-06-05 20:26:36 +02:00
Michiel Borkent
ed263b1089 babashka.pods: logging 2020-06-01 17:57:42 +02:00
Arne Brasseur
e9fb37a24b
Fix markdown link syntax [skip ci] 2020-06-01 12:09:06 +02:00
Michiel Borkent
e352b0ca1b libraries.md [skip ci] 2020-06-01 11:47:58 +02:00
Michiel Borkent
8c949dbe81 Move script 2020-06-01 11:03:56 +02:00
Michiel Borkent
6504ddfa45 CHANGELOG.md [skip ci] 2020-06-01 11:00:19 +02:00
Michiel Borkent
de9a489837 CHANGELOG.md [skip ci] 2020-06-01 10:57:43 +02:00
Michiel Borkent
41614ba717 Changelog 2020-06-01 10:56:00 +02:00
Michiel Borkent
8f24574403 Version bump 2020-06-01 10:50:47 +02:00
Michiel Borkent
e239bda855 v0.1.0 2020-06-01 10:01:48 +02:00
Michiel Borkent
4bb7fec0bc [#458] add clojure.data namespace (add test) 2020-05-31 23:15:39 +02:00
Michiel Borkent
cd6b76711d [#458] add clojure.data namespace (fix reflection warnings) 2020-05-31 23:12:38 +02:00
Michiel Borkent
c7b1d62b69 Fix Github workflow [skip ci] 2020-05-31 22:27:38 +02:00
Michiel Borkent
1011e06bd8 Fix Github workflow [skip ci] 2020-05-31 22:27:02 +02:00
Michiel Borkent
4403a477ab CHANGELOG.md [skip ci] 2020-05-31 22:23:55 +02:00
Michiel Borkent
388253bf95 [#458] add clojure.data namespace 2020-05-31 22:23:04 +02:00
Michiel Borkent
5c59b8fd5e Github actions: don't run when [skip ci] 2020-05-30 22:15:53 +02:00
Michiel Borkent
0aa0859d83 CHANGELOG.md [ci skip] 2020-05-30 22:12:29 +02:00
Michiel Borkent
6451c4e77a CHANGELOG.md [ci skip] 2020-05-30 22:03:26 +02:00
Michiel Borkent
053839dbfc CHANGELOG.md [ci skip] 2020-05-30 20:59:27 +02:00
Michiel Borkent
0389ed7127 [#457] Add java.nio.file.PathMatcher 2020-05-30 20:55:43 +02:00
Michiel Borkent
4d937406a8 Changelog 2020-05-30 17:57:04 +02:00
Michiel Borkent
860d0f3e38 Changelog 2020-05-30 17:56:10 +02:00
Michiel Borkent
64ac7dc25f sci: fix for interop and #454 2020-05-30 14:55:02 +02:00
Michiel Borkent
2e9224f986 Add Float to imports 2020-05-30 09:41:08 +02:00
Gabriel Horner
94337b52d4
Add Float class for use in scripts (#456) 2020-05-30 09:39:07 +02:00
Michiel Borkent
696d4102a7 Add more java.time classes, test with cljc.java-time tests 2020-05-29 20:30:06 +02:00
Martin Klepsch
d4492071b6
Make note about *input* only being available in user namespace (#453) 2020-05-29 16:03:34 +02:00
Michiel Borkent
d5d0c32a8b README 2020-05-29 15:48:08 +02:00
Michiel Borkent
7d5b56ed1b Move clj-http-lite repo 2020-05-28 22:51:58 +02:00
Michiel Borkent
58bac1477c docs 2020-05-28 11:54:15 +02:00
Michiel Borkent
ace522ae9f doc 2020-05-28 11:52:18 +02:00
Michiel Borkent
3b8e2ec5f7 Doc 2020-05-28 11:24:41 +02:00
Michiel Borkent
9d73d51460 README 2020-05-28 11:22:04 +02:00
Michiel Borkent
ebbefeb03b README [ci skip] 2020-05-26 22:47:05 +02:00
Michiel Borkent
3891efd472 Bump version 2020-05-26 19:29:49 +02:00
Michiel Borkent
76ffd80d0f Version bump 2020-05-26 19:29:11 +02:00
Michiel Borkent
cd0796255e v0.0.99 2020-05-26 19:16:06 +02:00
Michiel Borkent
28d7e89e56
babashka.pods: load-ns 2020-05-26 17:01:40 +02:00
Michiel Borkent
12b4b14f66 sci 2020-05-24 23:55:58 +02:00
Michiel Borkent
8ddf8cf858 sci: add clojure.core/intern 2020-05-24 23:08:03 +02:00
Michiel Borkent
24b5bd43c1 pods 2020-05-24 17:48:45 +02:00
Michiel Borkent
410ec6a59f pods 2020-05-24 17:03:06 +02:00
Michiel Borkent
80eabe2373 Version bump 2020-05-24 10:37:15 +02:00
Michiel Borkent
41b4590c8a v0.0.98 2020-05-24 09:44:18 +02:00
Michiel Borkent
1cb70d78bc sci, pods 2020-05-24 09:44:06 +02:00
Michiel Borkent
0a30d97693 sci: *print-meta* 2020-05-23 23:49:37 +02:00
Michiel Borkent
49cef4f39e babashka.nrepl tweaks 2020-05-23 22:13:54 +02:00
Michiel Borkent
6aeb0869f8 Print exception name 2020-05-23 21:23:57 +02:00
Michiel Borkent
5e051a2d6e Fix #446: NullPointer has no location information 2020-05-23 18:02:28 +02:00
Michiel Borkent
161aec1ada [#444] GraalVM 20.1.0 fixes timezone issue 2020-05-23 17:00:43 +02:00
Michiel Borkent
80ff2bd56e Sci: add bean 2020-05-23 16:53:22 +02:00
Michiel Borkent
6384e86b70 Doc 2020-05-23 11:27:02 -03:00
Michiel Borkent
4b7369a3b8 Fix bump graal script 2020-05-23 10:57:27 -03:00
Michiel Borkent
8085d93e7f Dockerfile 2020-05-23 10:44:17 -03:00
Michiel Borkent
c3f9480efe
[#449] move to GraalVM 20.1.0 java11 2020-05-23 14:53:28 +02:00
Michiel Borkent
03fba08e31
[#447] expose flatland.ordered.map/ordered-map 2020-05-22 18:18:42 +02:00
Sameer Kolhar
d92496faaa
Add bump graal version script (#443)
* Add bump graal version script

* Update script to bump graal version

* Update bump_graal script with java option
2020-05-22 16:13:00 +02:00
Michiel Borkent
9a55801b19 babashka.pods 2020-05-21 12:38:30 -03:00
Michiel Borkent
642783a3c5 babashka.pods: fix ordering of vars 2020-05-21 12:29:27 -03:00
Michiel Borkent
bd983d5c25 babashka.pods 2020-05-21 14:07:15 +02:00
Michiel Borkent
e75982a645 ls_jar.clj example 2020-05-20 23:40:52 +02:00
Michiel Borkent
05860ae96c ls_jar.clj example 2020-05-20 23:39:20 +02:00
Michiel Borkent
57301236c2 Version bump 2020-05-20 22:21:45 +02:00
Michiel Borkent
6f870f1375 v0.0.97 2020-05-20 22:11:54 +02:00
Sameer Kolhar
1961875c28
Update to GraalVM v19.3.2 (#442) 2020-05-20 22:04:41 +02:00
Michiel Borkent
0bc7b9918c babashka.pods: invoke is callable synchronously 2020-05-20 21:59:38 +02:00
Michiel Borkent
d509b2f986 babashka.pods: return map from load-pod 2020-05-20 20:23:30 +02:00
Michiel Borkent
6648a9aa0c babashka.pods: unload-pod 2020-05-20 20:14:28 +02:00
Michiel Borkent
1c26ff2844 Add babashka.curl/delete 2020-05-20 19:52:44 +02:00
Michiel Borkent
fffcc7db5c sci 2020-05-20 17:03:14 +02:00
Michiel Borkent
6b1451325d Move example to pods repo 2020-05-20 13:56:00 +02:00
Michiel Borkent
4df3e56557 Upgrade to pod callbacks (babashka/babashka.pods#6) 2020-05-20 13:52:11 +02:00
Michiel Borkent
9b966920a0 Delete CNAME 2020-05-19 11:37:09 +02:00
Sameer Kolhar
2075efcd49
Update README (#441) 2020-05-19 11:26:44 +02:00
Sameer Kolhar
44930248ff
Update projects and other docs (#440) 2020-05-19 11:13:31 +02:00
Sameer Kolhar
a28618387b
[#388] embedded postgresql tests 2020-05-18 17:08:34 +02:00
Michiel Borkent
8b84f42a9c babashka.nrepl: fix flushing issues 2020-05-18 14:50:02 +02:00
Michiel Borkent
2c84675be5 pod note 2020-05-17 17:22:45 +02:00
Michiel Borkent
be53851229 Version bump 2020-05-17 17:22:08 +02:00
Michiel Borkent
bb452c2c99 v0.0.96 2020-05-17 17:15:04 +02:00
Michiel Borkent
451d5211ed Pod :code field 2020-05-17 16:32:22 +02:00
Michiel Borkent
5f384d8540 Bump edamame: fix for line numbers when using shebang 2020-05-17 12:05:12 +02:00
Michiel Borkent
4528846e6c pods: allow nil as a return value 2020-05-17 11:20:58 +02:00
Rahuλ Dé
3a26f315a0
Add pod-lispyclouds-docker (#439) 2020-05-16 23:40:14 +02:00
Michiel Borkent
4a9aadf778 revert 2020-05-16 21:12:33 +02:00
Michiel Borkent
d563ad78e4
Update pods.md 2020-05-16 20:13:47 +02:00
Michiel Borkent
b83b814e55 doc 2020-05-16 15:42:33 +02:00
Michiel Borkent
d601330fe7 Version bump 2020-05-16 11:36:35 +02:00
Michiel Borkent
f0ee4bd26f v0.0.95 2020-05-16 11:27:54 +02:00
Michiel Borkent
e62592a452 babashka.nrepl: fix binding of sci vars 2020-05-16 10:28:10 +02:00
Michiel Borkent
3f39c6e9f5 Add Comparable to imports 2020-05-15 23:18:25 +02:00
Michiel Borkent
d34773ee63 Add JarFileEntry 2020-05-15 23:02:02 +02:00
Michiel Borkent
0c26285369 sci: add enumeration-seq 2020-05-15 22:27:00 +02:00
Michiel Borkent
0ff858f38c Add libs to pods doc 2020-05-15 15:52:06 +02:00
Michiel Borkent
6dc84315ac Classpath optimizations - thanks @mbjarland 2020-05-15 11:26:06 +02:00
Michiel Borkent
3f0cd93fc7
[#419] data readers 2020-05-15 11:12:45 +02:00
Michiel Borkent
ae1431d160 Notes 2020-05-15 10:37:17 +02:00
Michiel Borkent
be58b76675
Update pods.md 2020-05-15 09:33:58 +02:00
Michiel Borkent
4e1d5c03a7 Add clojure.data.zip test 2020-05-14 23:35:06 +02:00
Michiel Borkent
de5168adab
[#419] classpath optimizations / first step towards data_readers 2020-05-14 22:31:49 +02:00
Matias Bjarland
eef0b046cd
adding support for clojure.zip (#435) 2020-05-14 22:16:42 +02:00
Michiel Borkent
79cba0fbef Classpath speedup 2020-05-14 14:42:23 +02:00
Michiel Borkent
2ce178154d Update babashka.curl: add curl/delete 2020-05-14 13:52:24 +02:00
Michiel Borkent
9b5a7962bf sci: fix dynamic binding of function vars 2020-05-14 12:00:06 +02:00
Michiel Borkent
2683337194 sci 2020-05-14 11:01:47 +02:00
Michiel Borkent
fbbd2b8bdb babashka.nrepl 2020-05-13 16:43:39 +02:00
Michiel Borkent
7c24ad530a sci 2020-05-13 15:06:45 +02:00
Michiel Borkent
3d16e21510 nrepl docs 2020-05-13 14:34:02 +02:00
Michiel Borkent
73a01f89b5
[#432] use babashka.nrepl library 2020-05-13 14:13:57 +02:00
Michiel Borkent
1b58560127 sci: fix for repl doc: don't print when no var 2020-05-13 11:17:46 +02:00
Michiel Borkent
baa326e9ce varify tools.cli 2020-05-13 10:58:18 +02:00
Michiel Borkent
0839c9a429 sci 2020-05-13 00:07:29 +02:00
Michiel Borkent
2c8b575df9 Bump edamame 2020-05-12 18:21:10 +02:00
Michiel Borkent
a7984bf737 sci: fix for `unquote 2020-05-12 17:58:14 +02:00
Michiel Borkent
1a8750e2da hsqldb enhancement 2020-05-12 11:44:55 +02:00
Michiel Borkent
56f25ec4b4 Enhancement 2020-05-12 11:43:01 +02:00
Michiel Borkent
2d12c954a1 babashka.pods 2020-05-12 11:13:11 +02:00
Michiel Borkent
08aa75023b [#427] ns first arg should be symbol 2020-05-12 10:58:37 +02:00
Michiel Borkent
75148da63a Add import 2020-05-11 20:34:47 +02:00
Michiel Borkent
66b16d7d0a doc 2020-05-11 13:26:44 +02:00
Michiel Borkent
30f3e3c5f1 Add jsoup pod 2020-05-11 10:48:08 +02:00
Michiel Borkent
9a1547e25a
[#424] add jar classes 2020-05-11 09:45:32 +02:00
Michiel Borkent
eb2741ca7a doc 2020-05-10 13:41:07 +02:00
Michiel Borkent
ea220f36a8
Move filewatcher to own repo (#423) 2020-05-10 13:40:03 +02:00
Michiel Borkent
4e2bed4131 doc 2020-05-09 23:08:22 +02:00
Michiel Borkent
3f29858a07 Version bump 2020-05-09 21:14:41 +02:00
Michiel Borkent
e4fb77df8e v0.0.94 2020-05-09 20:58:54 +02:00
Michiel Borkent
c22bdf768c babashka.pods: BABASHKA_POD env var 2020-05-09 19:32:50 +02:00
Michiel Borkent
16b7d0ebc3 doc 2020-05-09 17:39:35 +02:00
Michiel Borkent
5ea85b97cb babashka.pods: RUN_AS_BABASHKA_POD env var 2020-05-09 17:35:59 +02:00
Michiel Borkent
de7ce6b319 babashka.pods 2020-05-09 14:31:58 +02:00
Michiel Borkent
a5d9b78af1 use babashka/babashka.pods library 2020-05-09 14:11:20 +02:00
Michiel Borkent
4d90bbf162 doc 2020-05-09 10:55:06 +02:00
Bob Herrmann
97c48193d7
Adds three lines of docs to example web server (#416) 2020-05-08 23:04:21 +02:00
Michiel Borkent
be6c6c1dd2 doc 2020-05-08 22:21:31 +02:00
Michiel Borkent
c78d873264 doc 2020-05-08 22:16:05 +02:00
Michiel Borkent
50c32d521c Version bump 2020-05-08 11:03:01 +02:00
Michiel Borkent
3a633713f8 v0.0.93 2020-05-08 10:52:26 +02:00
Michiel Borkent
9b70c13411 sci: with-redefs 2020-05-08 10:51:21 +02:00
Michiel Borkent
8445a5a4f7 doc 2020-05-08 00:13:36 +02:00
Michiel Borkent
1b2caf3742 doc 2020-05-08 00:04:32 +02:00
Michiel Borkent
67639183eb pods: ops value in describe 2020-05-07 23:56:03 +02:00
Michiel Borkent
859529b44b Implement shutdown op for examples 2020-05-07 23:26:11 +02:00
Michiel Borkent
4e70b92584 Add :shutdown op 2020-05-07 23:12:13 +02:00
Michiel Borkent
f25476e146 wip 2020-05-07 21:09:41 +02:00
Michiel Borkent
ebef6866e1 doc 2020-05-07 21:00:05 +02:00
Michiel Borkent
571d8aa2c8 doc 2020-05-07 20:59:25 +02:00
Michiel Borkent
66e85ff9e3 doc 2020-05-07 20:52:10 +02:00
Michiel Borkent
eac6052df4 doc 2020-05-07 20:25:11 +02:00
Michiel Borkent
ac18f967ec doc 2020-05-07 20:11:48 +02:00
Michiel Borkent
f3689c6cb5 doc 2020-05-07 20:11:06 +02:00
Michiel Borkent
e38cac792c doc 2020-05-07 20:09:52 +02:00
Michiel Borkent
d3fa2afbf1 doc 2020-05-07 20:07:55 +02:00
Michiel Borkent
1d46e68dda
Pod docs 2020-05-07 20:05:42 +02:00
Michiel Borkent
6163cf0cee Version bump 2020-05-07 12:30:10 +02:00
Michiel Borkent
0a27f96a85 Fix signal ns 2020-05-07 12:20:00 +02:00
Michiel Borkent
893d8921d0 v0.0.92 2020-05-07 12:15:57 +02:00
Michiel Borkent
1915c22ad0 Redirect stderr from pod 2020-05-07 11:42:44 +02:00
Michiel Borkent
787c13b304 test script 2020-05-07 09:46:05 +02:00
Michiel Borkent
08478d966e [#415] Add java.util.Arrays/copyOf 2020-05-07 09:15:49 +02:00
Michiel Borkent
68d329e318 Fix lispyclouds 2020-05-06 23:43:21 +02:00
Michiel Borkent
e3e8f82bcf doc 2020-05-06 22:43:04 +02:00
Michiel Borkent
efab1e28a4 README 2020-05-06 21:30:56 +02:00
Michiel Borkent
eb4f25f5c5
[#411] pods 2020-05-06 21:14:14 +02:00
Michiel Borkent
d5f9a1914e [#413]: fix associative destructuring with binding 2020-05-05 16:52:53 +02:00
Michiel Borkent
bab232a9f4 borkdude/sci#321: fix for variadic recur 2020-05-03 20:38:50 +02:00
Michiel Borkent
221b705afb Create CNAME 2020-05-02 23:27:02 +02:00
Michiel Borkent
d4324a33f7 doc 2020-05-02 22:33:13 +02:00
Michiel Borkent
91a2eebda1 doc 2020-05-02 22:29:17 +02:00
Michiel Borkent
b2be3179f2 Document doric library 2020-05-02 22:22:28 +02:00
Michiel Borkent
25831971d0 Version bump 2020-05-02 21:57:22 +02:00
Michiel Borkent
748ea4eadb v0.0.91 2020-05-02 21:28:02 +02:00
Michiel Borkent
1403aa9a4c sci 2020-05-02 21:10:33 +02:00
Michiel Borkent
54a4197ce7 Add tests for doric library 2020-05-02 21:06:28 +02:00
Michiel Borkent
b8be5286ab sci: add read and remove-ns 2020-05-02 20:51:05 +02:00
Michiel Borkent
38a4862d54 sci: fix for / add java.lang.Character 2020-05-02 18:31:36 +02:00
Michiel Borkent
2c1ce678da sci: add ns-resolve 2020-05-02 17:04:54 +02:00
Michiel Borkent
c3280c67f6 fix 2020-05-02 13:25:38 +02:00
Michiel Borkent
2b4d1d0210 doc 2020-05-02 10:44:41 +02:00
Michiel Borkent
0805efd27b
[#407] datascript feature 2020-05-01 20:37:31 +02:00
Michiel Borkent
1a8742af89 doc 2020-05-01 15:40:53 +02:00
Michiel Borkent
561611f067 doc 2020-05-01 13:46:19 +02:00
Michiel Borkent
8c1ec46b01 Version bump 2020-05-01 13:32:00 +02:00
Michiel Borkent
755884b38f v0.0.90 2020-05-01 13:17:20 +02:00
Michiel Borkent
4ac6e1ea2f doc 2020-05-01 13:16:38 +02:00
Michiel Borkent
9cf0815d8e doc 2020-05-01 13:15:11 +02:00
Michiel Borkent
dfeecd4db2 doc 2020-05-01 13:12:53 +02:00
Michiel Borkent
1f39847a23 doc 2020-05-01 11:53:00 +02:00
Michiel Borkent
a02f8e1c34 doc 2020-05-01 11:52:17 +02:00
Michiel Borkent
dbd3abc265 doc 2020-05-01 11:51:53 +02:00
Michiel Borkent
2253d37bab doc 2020-05-01 11:51:10 +02:00
Michiel Borkent
ecd26832b0 doc 2020-05-01 11:49:42 +02:00
Michiel Borkent
41a7987dc8 [#404] fix docstring of clojure.java.shell/sh 2020-05-01 11:26:27 +02:00
Michiel Borkent
67c9a34e7a [#405] add clojure.pprint/*print-right-margin* 2020-05-01 11:02:55 +02:00
Michiel Borkent
b7525c1616 sci: with-bindings 2020-05-01 10:40:51 +02:00
Michiel Borkent
137d39821f README 2020-04-30 23:18:37 +02:00
Michiel Borkent
b8240babfb README 2020-04-30 23:17:29 +02:00
Michiel Borkent
6c9cb2c684 README 2020-04-30 23:12:53 +02:00
Michiel Borkent
422baff333 [#403] --describe option 2020-04-30 23:06:56 +02:00
Michiel Borkent
d65bb61d7c [#394] fix --nrepl-server without port 2020-04-30 20:39:38 +02:00
Michiel Borkent
ced19281b1 doc 2020-04-30 18:47:43 +02:00
Michiel Borkent
22e2fa7d3d Document flags 2020-04-30 18:44:32 +02:00
Michiel Borkent
b0b85fe8db Dev note 2020-04-30 15:05:54 +02:00
Michiel Borkent
daf28e4502 Dev note 2020-04-30 15:00:21 +02:00
Michiel Borkent
e8ab72f111 [#389] java.nio flag 2020-04-30 14:27:59 +02:00
Michiel Borkent
2451dc893c Dev note 2020-04-30 13:19:18 +02:00
Michiel Borkent
b6342d2d89 Dev note 2020-04-30 13:18:10 +02:00
Michiel Borkent
d1b8b06b07 Dev note 2020-04-30 13:16:20 +02:00
Michiel Borkent
6744d1752c Dev note 2020-04-30 13:15:14 +02:00
Michiel Borkent
01f59096f8 Dev note 2020-04-30 13:07:38 +02:00
Michiel Borkent
c90c72f4b8 Dev note 2020-04-30 13:04:46 +02:00
Michiel Borkent
22eb5e0665 Dev note 2020-04-30 13:01:36 +02:00
Michiel Borkent
2a44b9f9dd [#389] feature flag for java.time 2020-04-30 12:39:44 +02:00
Michiel Borkent
6f14479749 BABASHKA_LEAN variable 2020-04-30 12:20:00 +02:00
Michiel Borkent
9ec14eb56b
[#389] feature flag for transit 2020-04-30 12:18:46 +02:00
Michiel Borkent
e565890f1d
[#389] csv feature flag 2020-04-30 11:39:25 +02:00
Bob Herrmann
823866e000
add mysql commandline example (#399) 2020-04-30 09:33:20 +02:00
Gabriel Horner
8c1c4d1e3b
Add my project - close #392 (#400) 2020-04-30 09:30:59 +02:00
Michiel Borkent
02c7c51ad4
[#389] core.async feature flag 2020-04-29 17:50:38 +02:00
Michiel Borkent
0d1cabd4dc
[#389] SQL feature flags 2020-04-29 14:50:25 +02:00
Michiel Borkent
249abdb6ad Enable pipe test 2020-04-29 11:04:23 +02:00
Michiel Borkent
00a4fd4855 Add more clojure.data.xml vars 2020-04-28 23:18:25 +02:00
Michiel Borkent
cd96a380ba
[#389] YAML feature flag 2020-04-28 17:39:47 +02:00
Michiel Borkent
6c255a702e
Merge windows branch to master 2020-04-28 15:32:34 +02:00
Michiel Borkent
4e42729663 Fix docker 2020-04-28 12:12:56 +02:00
Michiel Borkent
ab008870b8
[#389] XML feature flag (#390) 2020-04-28 12:03:01 +02:00
Michiel Borkent
cac8273277 doc 2020-04-27 20:37:23 +02:00
Michiel Borkent
39024ef270 Add java.nio.file.OpenOption 2020-04-27 13:01:26 +02:00
Michiel Borkent
35d4085d98 doc 2020-04-27 11:55:58 +02:00
Michiel Borkent
6116b34b74 rm postgres test in circleci 2020-04-27 11:47:45 +02:00
Michiel Borkent
88eb4c569d Add postgres test 2020-04-27 11:45:11 +02:00
Michiel Borkent
94f9bce08c Goals 2020-04-27 11:01:41 +02:00
Michiel Borkent
863f2d6e46 wip 2020-04-26 21:30:31 +02:00
Michiel Borkent
573d384366 wip 2020-04-26 21:26:16 +02:00
Michiel Borkent
99571e59f1 wip 2020-04-26 21:25:48 +02:00
Michiel Borkent
db0cccc25e doc 2020-04-26 21:22:06 +02:00
Michiel Borkent
e4fa316116 doc 2020-04-26 21:21:41 +02:00
Michiel Borkent
c6c71c679c dev note 2020-04-26 21:19:49 +02:00
Michiel Borkent
f66d11cd3c Fix compile script 2020-04-26 19:43:33 +02:00
Michiel Borkent
738c52189d doc 2020-04-26 13:13:51 +02:00
Michiel Borkent
ac24abbbfb [#382] add optional support for hsqldb 2020-04-26 13:11:38 +02:00
Michiel Borkent
9b631a2427 borkdude/babashka.curl#16 2020-04-26 11:41:09 +02:00
Michiel Borkent
9baa2aa392 babashka.curl: accept stream input 2020-04-25 23:22:55 +02:00
Michiel Borkent
411e338a18 Fix ns 2020-04-25 11:31:17 +02:00
Michiel Borkent
7fc33dcb21 Up the -Xmx 2020-04-25 11:29:26 +02:00
Michiel Borkent
915727bce9 sci 2020-04-25 11:29:05 +02:00
Michiel Borkent
fd96a6e2cf Fix Github docker 2020-04-24 17:44:45 +02:00
Michiel Borkent
793a60c907 Tweak docker memory 2020-04-24 16:39:17 +02:00
Michiel Borkent
4ca43e19c8 Version bump 2020-04-24 16:23:36 +02:00
Michiel Borkent
3b53971c5d doc 2020-04-24 16:12:34 +02:00
Michiel Borkent
ce36b2a69b v0.0.89 2020-04-24 16:10:17 +02:00
Michiel Borkent
d57d20e297 Upgrade deps 2020-04-24 15:12:34 +02:00
Michiel Borkent
6cd384c215
[#372] add support for jdbc + postgres 2020-04-24 15:08:26 +02:00
Marten Sytema
2fef8a793e
tweak example by thread a bit more. (#379)
it's a taste thing, probably, dismiss if it conflicts with yours ;-)
2020-04-24 13:24:27 +02:00
Michiel Borkent
3ae3abf2e6 doc 2020-04-24 11:15:43 +02:00
Michiel Borkent
c17136b052 doc 2020-04-24 11:13:08 +02:00
Michiel Borkent
9a66561fa5 doc 2020-04-24 11:12:10 +02:00
Michiel Borkent
ad5b08c76a Style 2020-04-24 11:08:28 +02:00
Marten Sytema
9b7bf0c345
fix incorrect filename in usage instructions of example (#378) 2020-04-24 10:32:37 +02:00
Michiel Borkent
8b78c047c8 tweak example 2020-04-23 23:45:24 +02:00
Marten Sytema
b599042d47
add whatsapp chat histogram example (#377) 2020-04-23 23:06:02 +02:00
Michiel Borkent
d95fa631cd [#375] add clojure.pprint/print-table 2020-04-23 22:44:25 +02:00
Michiel Borkent
a5a62a9d6d doc 2020-04-23 10:55:34 +02:00
Michiel Borkent
cb1d774e68 Add BigDecimal and ClassNotFoundException 2020-04-23 10:14:40 +02:00
Michiel Borkent
ff2381a17c sci: use public vars 2020-04-22 21:30:41 +02:00
Michiel Borkent
62e4a53c90 simplify 2020-04-22 18:09:16 +02:00
Michiel Borkent
22c218bcce sci: fix load-string 2020-04-22 18:06:23 +02:00
Michiel Borkent
b34ec4959e doc 2020-04-22 12:11:43 +02:00
Michiel Borkent
04c34d24e5 deps.clj docs 2020-04-22 12:06:11 +02:00
Michiel Borkent
83ebeaf96f doc: fix link 2020-04-22 12:02:32 +02:00
Michiel Borkent
67331fe379 Examples 2020-04-22 12:01:22 +02:00
Michiel Borkent
b490df94a2 doc 2020-04-22 11:58:10 +02:00
Michiel Borkent
137c2f2804 Update babashka.curl: error stream 2020-04-22 11:47:56 +02:00
Michiel Borkent
ec552a9cf0
[#317] add clojure.repl/pst 2020-04-21 23:38:16 +02:00
Michiel Borkent
045226ac54 [#371] fix arg parsing 2020-04-21 15:08:20 +02:00
Michiel Borkent
f2b7aaaaea sci: loop optimization 2020-04-21 12:38:03 +02:00
Michiel Borkent
7a4256ad5f doc 2020-04-21 12:07:12 +02:00
Michiel Borkent
c305e42352 README 2020-04-21 12:06:43 +02:00
Michiel Borkent
a46d864e97 Bump version 2020-04-21 12:01:36 +02:00
Michiel Borkent
cb711f2734 v0.0.88-2 2020-04-21 11:48:24 +02:00
Michiel Borkent
96deaf3206 [#370] fix for clojure.math.combinatorics 2020-04-21 11:41:29 +02:00
Michiel Borkent
aa7dd4391d babashka.curl 2020-04-20 18:50:15 +02:00
Michiel Borkent
247e3d4adb babashka.curl 2020-04-20 18:33:15 +02:00
Michiel Borkent
c3a0645159 babashka.curl 2020-04-20 13:53:10 +02:00
Michiel Borkent
d9a6d544c0 babashka.curl: curl-command is private 2020-04-20 11:38:26 +02:00
Michiel Borkent
4a015a3a67 Update babashka.curl with debugging option 2020-04-20 11:34:35 +02:00
Michiel Borkent
df08fbafb1 Update script to babashka.curl 2020-04-20 09:59:49 +02:00
Michiel Borkent
8770c42a82 doc 2020-04-19 20:05:57 +02:00
Michiel Borkent
4508acb664 Version bump 2020-04-19 12:24:34 +02:00
Michiel Borkent
fede3cf221 v0.0.88 2020-04-19 12:15:52 +02:00
Michiel Borkent
92222c6339 [#368] loop binding can refer to previous binding (2) 2020-04-19 12:10:02 +02:00
Michiel Borkent
4f9f7cfd3f [#368] loop binding can refer to previous binding 2020-04-19 11:16:41 +02:00
Michiel Borkent
d67cd4596e Version bump 2020-04-19 11:04:16 +02:00
Michiel Borkent
6e4af06f37 Reduce Docker memory 2020-04-19 09:50:02 +02:00
Michiel Borkent
5c197c0621 v0.0.87 2020-04-19 09:36:44 +02:00
Michiel Borkent
eceb4e77c1 [#367] varize cheshire.core namespace 2020-04-19 09:36:15 +02:00
Michiel Borkent
4411ae6eca fix 2020-04-18 23:52:19 +02:00
Michiel Borkent
d1a2a4705b fix 2020-04-18 23:45:49 +02:00
Michiel Borkent
254aa73a48 wip 2020-04-18 23:28:02 +02:00
Michiel Borkent
48fbd08608 add test 2020-04-18 23:21:51 +02:00
Michiel Borkent
5bc59dc692 Add dev note 2020-04-18 21:05:24 +02:00
Michiel Borkent
32dc498261 Merge branch 'master' into clojure.data.xml 2020-04-18 20:54:05 +02:00
Michiel Borkent
8072df2b97 Dynamically find svm.jar 2020-04-18 18:10:51 +02:00
Michiel Borkent
14dca029d3 sci: add clojure.core/load-string 2020-04-18 12:06:07 +02:00
Michiel Borkent
7270970a0d sci 2020-04-18 10:33:19 +02:00
Michiel Borkent
94ae3ba0ca [#364] better error for invalid interop 2020-04-18 10:28:01 +02:00
Michiel Borkent
d4eac5f725 Add clojure.core/memoize 2020-04-18 10:05:24 +02:00
Michiel Borkent
eac3cea725 doc 2020-04-18 09:23:04 +02:00
Michiel Borkent
255c400e0a [#362] bump edamame: preserve location metadata in fn literal 2020-04-18 00:09:22 +02:00
Michiel Borkent
b8d916c5e7 docs 2020-04-17 22:05:22 +02:00
jess
99c152c8f5
Added financial contributors to the README (#360) 2020-04-17 21:16:45 +02:00
Michiel Borkent
4021f1bf91 Version bump 2020-04-17 20:20:50 +02:00
Michiel Borkent
d5dda0d26e v0.0.86 2020-04-17 20:10:46 +02:00
Michiel Borkent
789f321e04 borkdude/babashka.curl#17 2020-04-17 20:10:12 +02:00
Michiel Borkent
023a027772 Add note 2020-04-17 11:19:32 +02:00
Michiel Borkent
b9b8db4502 Fix tests 2020-04-16 23:24:20 +02:00
Michiel Borkent
7fa410b404 [#263] add more clj-yaml functions, run tests from source 2020-04-16 22:43:37 +02:00
Michiel Borkent
26473b8a42 [#317] add clojure.repl/source 2020-04-16 20:57:59 +02:00
Michiel Borkent
1c4014f7f9 sci: resolve as fn, clojure.repl/source 2020-04-16 20:39:42 +02:00
Michiel Borkent
228020f2e8 minor 2020-04-16 16:43:06 +02:00
Michiel Borkent
bc4fab37cd Enable jar protocol 2020-04-16 15:33:25 +02:00
Michiel Borkent
da0f4a6fe3 sci 2020-04-16 11:22:47 +02:00
Michiel Borkent
1dd387323c borkdude/sci#306 2020-04-16 09:44:57 +02:00
Michiel Borkent
88d2ca0b39 borkdude/babashka#317: add apropos 2020-04-16 09:24:24 +02:00
Michiel Borkent
9be4c7e9a9 Improve statsd test 2020-04-15 23:08:30 +02:00
Michiel Borkent
2241ce67dd babashka.curl: add streaming test 2020-04-15 21:09:20 +02:00
Michiel Borkent
84cd8c7e9d Version bump 2020-04-15 13:02:55 +02:00
Michiel Borkent
66ba9007ac v0.0.85 2020-04-15 12:52:01 +02:00
Michiel Borkent
5f914cedd1 [#263] add yaml library 2020-04-15 12:24:00 +02:00
Michiel Borkent
c9c359e251 borkdude/babashka.curl#4 2020-04-15 12:09:57 +02:00
Michiel Borkent
a9c50b1a39 Comment 2020-04-14 22:54:31 +02:00
Michiel Borkent
a8b7059ccc [#355] Add test for arrangement library 2020-04-14 22:24:46 +02:00
Michiel Borkent
a623790443 [#355] Add test for arrangement library 2020-04-14 22:24:39 +02:00
Michiel Borkent
31c9481fda Add statsd test 2020-04-14 22:17:36 +02:00
Michiel Borkent
cd13e4420d Add statsd test 2020-04-14 22:17:20 +02:00
Michiel Borkent
c3ee37e8c1
Add classes for statsd client 2020-04-14 22:08:37 +02:00
Michiel Borkent
36c163a444 Add java.lang.Comparable 2020-04-14 18:02:38 +02:00
Michiel Borkent
ffcbfa02b8
[#351] exit REPL on ctrl-D 2020-04-14 13:12:33 +02:00
Michiel Borkent
3ec5e1806d Use clojure.repl at REPL startup 2020-04-13 21:57:21 +02:00
Michiel Borkent
da05097d93 doc 2020-04-13 21:49:27 +02:00
Michiel Borkent
475b1a9807 doc 2020-04-13 21:48:40 +02:00
Michiel Borkent
cda52fd364 doc 2020-04-13 21:16:55 +02:00
Michiel Borkent
da8714805e doc 2020-04-13 21:16:13 +02:00
Michiel Borkent
d07522723c Version bump 2020-04-13 20:50:32 +02:00
Michiel Borkent
88ab267604 v0.0.84 2020-04-13 20:37:07 +02:00
Michiel Borkent
6d80a412e9 [#317] add clojure.repl/find-doc 2020-04-13 20:36:26 +02:00
Michiel Borkent
b7d8edf23e borkdude/sci#303 2020-04-13 18:11:03 +02:00
Michiel Borkent
cc7da5c495 borkdude/sci#303 2020-04-13 17:20:39 +02:00
Michiel Borkent
3c2e17844d [#353] set babashka.main property 2020-04-13 16:49:28 +02:00
Michiel Borkent
e80fc1dee9 [#318] support :refer :all 2020-04-13 15:25:21 +02:00
Michiel Borkent
db2281659c doc 2020-04-12 21:19:22 +02:00
Michiel Borkent
865f724f56 doc 2020-04-12 21:16:53 +02:00
Michiel Borkent
20b1c56300 doc 2020-04-12 21:16:30 +02:00
Michiel Borkent
3bf9ccd530 Add which example 2020-04-12 21:13:47 +02:00
Michiel Borkent
61b7cb8321 Add which example 2020-04-12 21:13:33 +02:00
Michiel Borkent
ed4fb6cd34 doc 2020-04-12 20:47:31 +02:00
Michiel Borkent
af1c8fd4d8 Bump sci version 2020-04-12 17:30:26 +02:00
Michiel Borkent
fe0aec3bee doc 2020-04-12 17:13:09 +02:00
Michiel Borkent
71c3f9ad5c doc 2020-04-12 17:05:17 +02:00
Michiel Borkent
0657cfd13f doc 2020-04-12 17:04:33 +02:00
Michiel Borkent
79ac081161 Version bump 2020-04-12 16:59:13 +02:00
Michiel Borkent
553115c56a v0.0.83 2020-04-12 16:49:44 +02:00
Michiel Borkent
8266349df8 [#344] print link to nREPL docs 2020-04-12 16:41:48 +02:00
Michiel Borkent
eaf8da5853 [#344] add nREPL docs 2020-04-12 16:37:28 +02:00
Michiel Borkent
ddb2498664 [#344] add nREPL docs 2020-04-12 16:36:47 +02:00
Michiel Borkent
4dd008434b [#344] add nREPL docs 2020-04-12 16:34:54 +02:00
Michiel Borkent
658f115bfb [#344] add nREPL docs 2020-04-12 16:33:20 +02:00
Michiel Borkent
cca63e913f [#344] add nREPL docs 2020-04-12 16:30:39 +02:00
Michiel Borkent
4318fc0192 [#346] nrepl: fix close 2020-04-12 14:25:36 +02:00
Michiel Borkent
f1c1a3db8e [#349] nrepl: write to output while evaluating 2020-04-12 13:50:49 +02:00
Michiel Borkent
b0a3549bab [#346] nrepl: implement close and ls-sessions 2020-04-12 13:14:24 +02:00
Michiel Borkent
50fa881153
Update CHANGES.md 2020-04-11 23:25:22 +02:00
Michiel Borkent
bf958b03bb sci 2020-04-11 21:45:55 +02:00
Michiel Borkent
e2bdd7eae2 [#348] nrepl: support multiple top level expressions 2020-04-11 21:36:33 +02:00
Michiel Borkent
56a798135c [#345] test for .deleteOnExit 2020-04-11 21:10:21 +02:00
Michiel Borkent
4109aa5264 Bump edamame, fixes #347 2020-04-11 20:47:24 +02:00
Michiel Borkent
9396258d3e Version bump 2020-04-11 12:35:18 +02:00
Michiel Borkent
01f5d01aa2 v0.0.82 2020-04-11 12:25:23 +02:00
Michiel Borkent
fb53e05ba7
[#340] fix interop with PushbackInputStream 2020-04-11 12:24:56 +02:00
Maurício Szabo
9f199ddef7
Send bencode using BufferedOutputStream (#342)
This new implementation is faster because you only flush when you issue `.flush`, or until the buffer is full. Some simple experiments with Chlorine confirmed that small messages are being received in a whole block, instead of fragmented.
2020-04-11 09:47:06 +02:00
Michiel Borkent
1c467080fa
borkdude/babashka.curl#13 2020-04-10 23:39:04 +02:00
Michiel Borkent
7e30c40dd9 nREPL server cleanup 2020-04-10 14:29:10 +02:00
Michiel Borkent
dc68b5fa4f babashka.curl: fix borkdude/babashka.curl#11 2020-04-10 11:52:26 +02:00
Michiel Borkent
84fddd8766 README: adapt quickstart 2020-04-10 09:06:00 +02:00
Michiel Borkent
6a2fc4a7d8 sci 2020-04-09 22:11:55 +02:00
Michiel Borkent
3994dd0a94 README 2020-04-09 22:02:54 +02:00
Michiel Borkent
8c6f972727 README 2020-04-09 22:00:53 +02:00
Michiel Borkent
4aa71236e8 sci: readme 2020-04-09 21:58:02 +02:00
Michiel Borkent
822bae9de3 Print test names 2020-04-08 23:12:16 +02:00
Michiel Borkent
1e865d5c11 Version bump 2020-04-08 22:49:46 +02:00
Michiel Borkent
fa24ea1408 v0.0.81 2020-04-08 22:17:12 +02:00
Michiel Borkent
2a1ad4e84f Shutdown hooks docs 2020-04-08 21:19:04 +02:00
Michiel Borkent
110f6d7644
[#336] Add java.lang.Runtime to support shutdown hooks (#338) 2020-04-08 21:18:25 +02:00
Will
e89782686e
correct medley deps in README (#335) 2020-04-07 19:44:51 +02:00
Rovanion Luckey
fab7fedfea
Added two examples on how to construct a classpath to README.md (#334) 2020-04-07 17:13:05 +02:00
Michiel Borkent
74d3cf4140 docker xmx 2020-04-06 22:11:09 +02:00
Michiel Borkent
8c1077af00 README 2020-04-06 21:53:54 +02:00
Michiel Borkent
2f28804ea6 README 2020-04-06 21:53:11 +02:00
Michiel Borkent
5b81a20916 README 2020-04-06 21:51:53 +02:00
Michiel Borkent
fa918c8b2a README 2020-04-06 21:50:59 +02:00
Michiel Borkent
e389413f6e README 2020-04-06 20:33:50 +02:00
Michiel Borkent
ddfce6ab12 README 2020-04-06 11:05:54 +02:00
Michiel Borkent
9dbc916b3a Version bump 2020-04-06 10:59:06 +02:00
Michiel Borkent
fe981608e7 v0.0.80 2020-04-06 09:59:23 +02:00
Michiel Borkent
972bb77b3d sci: add while macro 2020-04-06 09:51:31 +02:00
Michiel Borkent
b522531e79 [#329] create non-existing ns in nREPL message 2020-04-06 00:04:30 +02:00
Michiel Borkent
3499310944
CircleCI config 2020-04-05 23:51:26 +02:00
Michiel Borkent
2272536026 [#329] ignore non-existing ns in nREPL message 2020-04-05 23:31:36 +02:00
Michiel Borkent
c785a1d1f6 [#331] make ns key optional in nREPL messages (see prev. commit) 2020-04-05 23:18:16 +02:00
Michiel Borkent
249fc0a5a5 [#19] make ns key optional in nREPL messages 2020-04-05 23:17:07 +02:00
Michiel Borkent
847f872df8 README 2020-04-05 11:54:10 +02:00
Michiel Borkent
3242e0dab3 README: bencode 2020-04-05 11:46:55 +02:00
Michiel Borkent
9b2bb96276 README 2020-04-05 11:32:20 +02:00
Michiel Borkent
abd5ca93f8 README 2020-04-05 10:03:17 +02:00
Michiel Borkent
250dbea296 Version bump 2020-04-04 16:38:17 +02:00
Michiel Borkent
648ca2479f minor 2020-04-04 16:34:57 +02:00
Michiel Borkent
86e4e1e893 v0.0.79 2020-04-04 16:12:34 +02:00
Michiel Borkent
322d3e123b Don't run bencode from source 2020-04-04 15:42:54 +02:00
Michiel Borkent
c738398eea Add java.lang.Byte, test bencode from source 2020-04-04 15:08:52 +02:00
Michiel Borkent
3bf27445f3 [#328] completions for clojure.test do not work 2020-04-04 14:26:02 +02:00
Michiel Borkent
62014c0e74 Fix babashka.curl test 2020-04-04 12:39:07 +02:00
Michiel Borkent
58de38c073 Document breaking change in babashka.curl 2020-04-04 12:25:27 +02:00
Michiel Borkent
77e4ef6dd6 Update babashka.curl: always return map with :status, :headers and :body 2020-04-04 12:23:29 +02:00
Michiel Borkent
8b90e40de4
[#301] Add nREPL server (#326) 2020-04-03 23:51:54 +02:00
Michiel Borkent
1c0e004f2f sci 2020-04-03 15:36:20 +02:00
Michiel Borkent
90eb43747b sci 2020-04-03 14:20:31 +02:00
Michiel Borkent
f89514f416 Fix test 2020-04-03 13:05:49 +02:00
Michiel Borkent
ba57862611 [#325] find-ns doesn't return nil for non-existing namespace 2020-04-03 12:56:17 +02:00
Michiel Borkent
27034effcc babasha.curl: add Github action 2020-04-03 11:09:57 +02:00
Victor Bjelkholm
3e0ea7ac3b
Add link to video from ClojureD 2020 (#323) 2020-04-03 11:01:30 +02:00
Michiel Borkent
85ef900153 babashka.curl: support :response option 2020-04-02 21:41:49 +02:00
Michiel Borkent
270b0acd71 sci: updated funding 2020-03-31 15:21:07 +02:00
Michiel Borkent
5eadd61bc8 Funding.yml 2020-03-31 15:19:52 +02:00
Michiel Borkent
63a7dd459f README 2020-03-31 11:05:44 +02:00
Michiel Borkent
548ffa851b
Github actions enhancements (#319) 2020-03-30 20:29:08 +02:00
Jeroen van Dijk
300b293fbc
GitHub Actions build script (#291) 2020-03-29 16:07:30 +02:00
Michiel Borkent
90fe853f15 notes app 2020-03-29 14:50:57 +02:00
Michiel Borkent
3fd6dbd1f5 notes example 2020-03-29 14:46:43 +02:00
Michiel Borkent
7837700452 notes example 2020-03-29 14:19:42 +02:00
Michiel Borkent
61939f88c9 notes example: add logging 2020-03-29 14:16:12 +02:00
Michiel Borkent
22ea488666 notes app: ensure file exists 2020-03-29 14:10:53 +02:00
Michiel Borkent
34d36d56ba Support multiple sessions 2020-03-29 14:01:30 +02:00
Michiel Borkent
313971d0d7 notes example: don't open browser 2020-03-29 13:51:45 +02:00
Michiel Borkent
af8c786c31 emit binary size to slack 2020-03-29 13:06:49 +02:00
Michiel Borkent
97144a0851 README 2020-03-29 12:13:14 +02:00
Michiel Borkent
3be93ed4f4 README 2020-03-29 11:59:50 +02:00
Michiel Borkent
308238d8d1 Add link to talk 2020-03-29 11:55:50 +02:00
Michiel Borkent
3c6c009096
Upgrade to GraalVM 19.3.1 (#316) 2020-03-29 11:00:07 +02:00
Michiel Borkent
1babeb0d3c README 2020-03-28 20:39:00 +01:00
Michiel Borkent
d73144bd4c
Add basic-auth to notebook example (#314) 2020-03-28 20:35:03 +01:00
Michiel Borkent
5f6b26e7f3 Notes app improvement 2020-03-28 15:47:28 +01:00
Michiel Borkent
6ab803f10c README 2020-03-28 14:40:45 +01:00
Michiel Borkent
34f58c554e Add pic 2020-03-28 14:39:49 +01:00
Michiel Borkent
1e6558d56f Add notes app example 2020-03-28 14:36:53 +01:00
Michiel Borkent
4263c19979 [#308] print exception name in REPL 2020-03-28 11:20:39 +01:00
Michiel Borkent
29ac221c20 README 2020-03-28 09:55:36 +01:00
Michiel Borkent
d0e7ad3fa1 README 2020-03-28 09:52:55 +01:00
Michiel Borkent
fe76cd352c
[#312 allow .getMessage on ex-info (#313) 2020-03-28 08:29:03 +01:00
Michiel Borkent
1105c4676e
[#310] add java.nio.file.FileSystem(s) (#311) 2020-03-28 00:27:32 +01:00
Michiel Borkent
492a26813f sci: *print-length* 2020-03-25 22:10:15 +01:00
Michiel Borkent
f6be5c72c8 sci: require as function 2020-03-25 22:10:04 +01:00
Michiel Borkent
ff181f0e1a
Update dev.md 2020-03-23 11:35:34 +01:00
Michiel Borkent
c5a61e4d2d
Update dev.md 2020-03-23 11:35:10 +01:00
Michiel Borkent
7977331a45
Update dev.md 2020-03-23 11:33:42 +01:00
Michiel Borkent
0b3a15cf81
Update dev.md 2020-03-23 11:31:47 +01:00
Michiel Borkent
e312639d04 Note about binary size 2020-03-22 11:49:14 +01:00
Michiel Borkent
d9b2610eae
Add java.io.FileReader (#307) 2020-03-22 11:47:02 +01:00
Michiel Borkent
ac027878a5 Version bump 2020-03-21 23:41:59 +01:00
Michiel Borkent
349083db3b v0.0.78 2020-03-21 23:18:47 +01:00
Michiel Borkent
bb311f5480 Rename env var 2020-03-21 23:15:02 +01:00
Michiel Borkent
962eefcc76 Move disabling pipe handler to pipe ns 2020-03-21 23:11:14 +01:00
Michiel Borkent
02f5a85db3 Fix bug with *input* when used in code from classpath 2020-03-21 22:49:14 +01:00
Dainius Jocas
b14d239ebb
Support AWS Lambda custom runtime (#305)
* environment variable to disable handling of SIGPIPE

* rename env variable to BABASHKA_DISABLE_PIPE_HANDLER
2020-03-21 20:17:57 +01:00
Michiel Borkent
ce028644fc comb 2020-03-21 17:27:41 +01:00
Michiel Borkent
6aa2389e6f README 2020-03-21 14:37:29 +01:00
Michiel Borkent
125340ba3d README 2020-03-21 11:50:40 +01:00
Michiel Borkent
41fe2b994f README: title 2020-03-21 11:49:45 +01:00
Michiel Borkent
fd61bb1a1c README: enhance sha1 example 2020-03-21 11:48:06 +01:00
Michiel Borkent
5b88953d05 README: highlighting 2020-03-21 11:43:14 +01:00
Michiel Borkent
4a0b3b9c65 README: add sha example 2020-03-21 11:41:26 +01:00
Michiel Borkent
d70d902901 Version bump 2020-03-21 00:11:30 +01:00
Michiel Borkent
c63b36a2f0 v0.0.77 2020-03-20 23:57:14 +01:00
Michiel Borkent
3122d8ebe7 v0.0.77 2020-03-20 23:53:17 +01:00
Michiel Borkent
5f0c0ebd7f Bring deps.edn up to date 2020-03-20 23:51:16 +01:00
Michiel Borkent
9835b02785
Fix exception handling 2020-03-20 23:44:21 +01:00
Michiel Borkent
adaef58f5e Version bump 2020-03-20 23:39:28 +01:00
Michiel Borkent
44471c97ec v0.0.76 2020-03-20 22:27:18 +01:00
Michiel Borkent
ef06175678
[#264] Add transit-clj (#298) 2020-03-20 17:16:42 +01:00
Michiel Borkent
d2ea4ee1bb Socket REPL docs 2020-03-20 15:52:30 +01:00
Michiel Borkent
64df0fd015 docs 2020-03-20 15:47:54 +01:00
Michiel Borkent
a18a5c345c Socket-REPL: default to port 1666 2020-03-20 15:37:02 +01:00
Michiel Borkent
4db28b45e8 [#293] reset ns after load-file 2020-03-20 15:12:15 +01:00
Michiel Borkent
4a3df13381 Add cprop to libs 2020-03-20 14:37:42 +01:00
Michiel Borkent
5b50ba760e
[#296] add support for cprops lib (#297) 2020-03-20 14:28:19 +01:00
Michiel Borkent
645cea071e README 2020-03-19 20:30:30 +01:00
Michiel Borkent
a6681ef38a sci 2020-03-19 20:25:37 +01:00
Michiel Borkent
7dc1fab976 sci: add ns-unmap 2020-03-13 12:03:57 +01:00
Michiel Borkent
bf8030f1f8 README 2020-03-12 11:01:45 +01:00
Michiel Borkent
26a799f54e babashka.curl 2020-03-09 10:58:43 +01:00
Michiel Borkent
e732817324 sci 2020-03-09 09:43:10 +01:00
Michiel Borkent
e3b075e3ab Docker: --no-cache 2020-03-08 17:53:24 +01:00
Michiel Borkent
3b42b9032c Fix Docker 2020-03-08 17:50:51 +01:00
Michiel Borkent
34be5b61f4 Include curl in Docker image 2020-03-08 17:38:08 +01:00
Michiel Borkent
07d71d0869 README: add 4bb 2020-03-08 12:05:34 +01:00
Michiel Borkent
4812f755fb babashka.curl 2020-03-07 15:19:36 +01:00
Michiel Borkent
4287ebd939 Version bump 2020-03-07 14:28:52 +01:00
Michiel Borkent
5660b76ab7 v0.0.75 2020-03-07 14:13:30 +01:00
Michiel Borkent
378b592ac7 Docs for babashka.curl 2020-03-07 14:10:58 +01:00
Michiel Borkent
1297084d53
Add babashka.curl (undocumented) 2020-03-07 14:02:37 +01:00
Michiel Borkent
8955431ee7 Add more docstrings 2020-03-06 22:33:58 +01:00
Michiel Borkent
5723206ca2
Fix for slow startup time on GraalVM 20 (#288) 2020-03-06 16:55:52 +01:00
Michiel Borkent
0b23dd0fdb eval + read-string are moved to sci 2020-03-06 11:08:53 +01:00
Michiel Borkent
86bc422cd6 sci: eval + read-string 2020-03-06 11:08:22 +01:00
Michiel Borkent
aa4139931e
[#284] Add read-string 2020-03-06 10:33:22 +01:00
Michiel Borkent
91a273034a clojure.stacktrace now works with GraalVM! 2020-03-05 22:01:47 +01:00
Michiel Borkent
e7cbc67b30 sci 2020-03-05 20:31:08 +01:00
Michiel Borkent
ce9fbcde50 Upgrade to clojure 1.10.2-alpha1 2020-03-05 20:19:02 +01:00
Michiel Borkent
f52b208b7e [#283] support writer arg in clojure.pprint 2020-03-04 21:14:59 +01:00
Michiel Borkent
35a2001ca8 ignore 2020-03-04 20:30:36 +01:00
Michiel Borkent
b8672a4fa7 Update regal sha 2020-03-03 18:26:34 +01:00
Michiel Borkent
e1a705ffba Update lib test for babashka.curl 2020-03-03 11:02:45 +01:00
Michiel Borkent
3e810bc2ed README 2020-03-02 14:21:57 +01:00
Michiel Borkent
1f48250cfd README 2020-03-02 14:19:51 +01:00
Michiel Borkent
b1c81c72ed README 2020-03-02 14:19:21 +01:00
Michiel Borkent
a81b7a9737 Add reflection script 2020-03-02 14:05:32 +01:00
Michiel Borkent
ae6d0bcda6 README 2020-03-02 13:53:28 +01:00
Michiel Borkent
b67e364145 README 2020-03-02 13:52:36 +01:00
Michiel Borkent
fa1bb35ee4 Update status 2020-03-02 13:49:23 +01:00
Michiel Borkent
01aa97847b Add babashka.curl test 2020-03-02 13:18:11 +01:00
Michiel Borkent
2fb4156d69 Doc 2020-03-02 13:00:50 +01:00
Michiel Borkent
5ed1994ea6 README 2020-03-02 10:02:36 +01:00
Michiel Borkent
1aa1abf292 README 2020-03-02 10:01:04 +01:00
Michiel Borkent
4c64214092 README 2020-03-02 10:00:28 +01:00
Michiel Borkent
c4a44aa7e6 README 2020-03-02 09:57:24 +01:00
Michiel Borkent
1b20fb1dcb README 2020-03-02 09:56:22 +01:00
Michiel Borkent
b55d5c2301 README 2020-03-02 09:55:50 +01:00
Michiel Borkent
6d9b2d0042 Update goals 2020-03-02 09:50:47 +01:00
Michiel Borkent
7ba228a32b Doc tweak 2020-03-01 22:45:55 +01:00
Michiel Borkent
167349981e Version bump 2020-03-01 19:57:17 +01:00
Michiel Borkent
30280ad0a8 v0.0.74 2020-03-01 19:43:39 +01:00
Michiel Borkent
fc3a229c65 README 2020-03-01 17:43:10 +01:00
Michiel Borkent
6fe7972952 sci 2020-03-01 17:41:02 +01:00
Michiel Borkent
2a49f61168 Fix [#280] 2020-03-01 17:19:43 +01:00
Michiel Borkent
1a5100ad32 Async docs 2020-03-01 16:56:28 +01:00
Michiel Borkent
24a469af65
[#255] support clojure.core.async/go macro by falling back on threads 2020-03-01 16:27:35 +01:00
Michiel Borkent
00420879be Update README 2020-03-01 12:06:19 +01:00
Michiel Borkent
6b93135ee2 Fix lein on CircleCI Mac 2020-02-29 13:37:02 +01:00
Michiel Borkent
1085e2591d Fix lein install on CircleCI 2020-02-29 13:33:50 +01:00
Michiel Borkent
6e11b7c0bc Install older version of lein 2020-02-29 13:24:16 +01:00
Michiel Borkent
8328a14183 Wipe CirleCI cache 2020-02-29 10:31:46 +01:00
Michiel Borkent
94559f7626 Add HTTP docs 2020-02-29 09:22:22 +01:00
Michiel Borkent
92e5c4a432 Base Docker image on busybox, at least it has cat and tail 2020-02-28 18:08:05 +01:00
Michiel Borkent
6bb2b530e1 sci: docs 2020-02-28 09:59:52 +01:00
sogaiu
7ef2cd3dc4
Support doc for file-seq (#277) 2020-02-26 20:27:35 +01:00
Michiel Borkent
42b2c924d3 sci: add re-groups 2020-02-26 09:54:49 +01:00
Michiel Borkent
bdd65aa6fe sci: add re-matcher 2020-02-26 09:42:36 +01:00
sogaiu
b744efd60b
Support doc for slurp and spit (#276) 2020-02-25 10:17:22 +01:00
Michiel Borkent
db32d61d60 Add thank yous 2020-02-23 23:20:16 +01:00
Michiel Borkent
91ffd38074 README: static binary 2020-02-23 22:56:47 +01:00
Michiel Borkent
f80542627b Version bump 2020-02-23 22:51:22 +01:00
Michiel Borkent
f4ab59831d v0.0.73 2020-02-23 22:16:10 +01:00
Michiel Borkent
2285c92e99 Add linux static build step 2020-02-23 22:05:53 +01:00
Rahuλ Dé
761e7995f7
Improve Dockerfile, add .dockerignore (#273) 2020-02-23 21:26:45 +01:00
Michiel Borkent
2024d09455 Version bump 2020-02-23 12:23:23 +01:00
Michiel Borkent
6f6e42ad2f v0.0.72 2020-02-23 12:05:06 +01:00
Michiel Borkent
b8469180f9
Linux builds are statically linked 2020-02-23 12:04:18 +01:00
Michiel Borkent
a4b4ce43a4
Add java.time.temporal.ChronoUnit class (#271)
* Adding java.time.temporal.ChronoUnit to classes.clj

This enables the two following kinds of calculations between
LocalDateTime, LocalTime, Instant and other Temporal descendants:

ChronoUnit.MILLIS.between(temporalOne, temporalTwo)
temporalOne.until(temporalTwo, Chronounit.HOURS)

and I assume a lot of other operations which require time
units.

* Add unit test

Co-authored-by: Matias Bjarland <matias@iteego.com>
2020-02-21 21:32:28 +01:00
Michiel Borkent
90d16fbb74 Merge branch 'master' into clojure.data.xml 2020-02-21 20:08:00 +01:00
Michiel Borkent
7b30927a12 sci: add when-some and if-some 2020-02-21 19:45:20 +01:00
Michiel Borkent
ee522ccecb Add link to juxt blog post 2020-02-21 12:15:47 +01:00
Michiel Borkent
f812868c2b Enhance docstring example 2020-02-20 12:45:44 +01:00
Michiel Borkent
b66c14fec6 doc 2020-02-20 12:40:18 +01:00
Michiel Borkent
576fe1176e Gallery 2020-02-20 12:20:55 +01:00
Michiel Borkent
60ca573397 docs 2020-02-20 11:06:03 +01:00
Michiel Borkent
868ee1ae54 Update docs 2020-02-20 10:56:07 +01:00
Michiel Borkent
133ee70e29 Version bump 2020-02-20 09:38:19 +01:00
Michiel Borkent
315db27969 v0.0.71 2020-02-20 00:29:49 +01:00
Michiel Borkent
453d66f0fb Document breaking change 2020-02-20 00:29:37 +01:00
Michiel Borkent
7ad6f3195f Lib tests 2020-02-19 23:58:58 +01:00
Michiel Borkent
847a2d1922 Add docs about binary size 2020-02-19 23:27:44 +01:00
Michiel Borkent
e43727955a [#133] add clojure.pprint/pprint backed by fipp 2020-02-19 23:22:49 +01:00
Michiel Borkent
643b3a00da Bump deps 2020-02-19 22:47:36 +01:00
Michiel Borkent
111f344219 sci: add ns-map, ns-refers 2020-02-19 22:37:52 +01:00
Michiel Borkent
67653802d6
sci: fix tag resolution (#269) 2020-02-19 17:29:53 +01:00
Michiel Borkent
02c53f7b44 Revert "sci: add ns-imports"
This reverts commit 9ac39dca8b.
2020-02-19 12:07:50 +01:00
Michiel Borkent
9ac39dca8b sci: add ns-imports 2020-02-19 11:48:46 +01:00
Michiel Borkent
41b3893056
sci: support metadata on namespaces 2020-02-18 16:25:04 +01:00
Michiel Borkent
29c0f20ead Fix tools.cli alias 2020-02-17 18:17:14 +01:00
Michiel Borkent
1c5ba28932 README 2020-02-17 12:11:07 +01:00
Michiel Borkent
945b2ab68e
Update README.md 2020-02-17 12:09:34 +01:00
Michiel Borkent
e98a92c283
Sci: reify core vars, implement repl/doc (#265) 2020-02-16 12:54:54 +01:00
Michiel Borkent
018371d90c sci: check if arity 2020-02-13 20:00:15 +01:00
Michiel Borkent
8abb8142b1 Version bump 2020-02-10 23:18:07 +01:00
Michiel Borkent
108567f74e v0.0.70 2020-02-10 22:58:39 +01:00
Haokang Den
192e2676fc Using ubuntu:bionic (#262) 2020-02-10 09:57:36 +01:00
Michiel Borkent
55d1d2faf8 Revert 2020-02-09 23:37:01 +01:00
Michiel Borkent
ffb92bc8db Docker 2020-02-09 23:28:18 +01:00
Michiel Borkent
f2084746b0 Checkout recursively in docker step 2020-02-09 23:08:46 +01:00
Michiel Borkent
804a7d10c4 Fix path in Dockerfile 2020-02-09 23:07:14 +01:00
Michiel Borkent
c598c4b4a8 Fix circleci config 2020-02-09 22:58:32 +01:00
Michiel Borkent
1d6987c867 Docker: fix java path 2020-02-09 22:56:58 +01:00
Michiel Borkent
148e3c9229 Docker 2020-02-09 22:55:12 +01:00
Michiel Borkent
794438b7c1 Binary size notes 2020-02-09 20:49:55 +01:00
Jeroen van Dijk
c8fd1c7931 Add Security classes in order to be able to generate signatures (#261) 2020-02-09 20:45:29 +01:00
Michiel Borkent
08ac36ebe1 sci: add clojure.core/prefers 2020-02-09 18:35:13 +01:00
Jeroen van Dijk
50f0630b38
Add promise and deliver (#260) 2020-02-08 23:43:15 +01:00
Michiel Borkent
9361fd6797 sci: promise and deliver 2020-02-08 23:30:42 +01:00
Michiel Borkent
cfc1b909a3
Update dev.md 2020-02-07 20:48:13 +01:00
Michiel Borkent
01714e4bbb Add note about rlwrap 2020-02-07 09:33:02 +01:00
Michiel Borkent
3240ecddc6 sci 2020-02-07 09:27:37 +01:00
Gabriel Horner
6f07f3af74
Fix typo (#256) 2020-02-06 23:03:32 +01:00
Michiel Borkent
debd180681 Fix previous commit 2020-02-04 22:15:59 +01:00
Michiel Borkent
1a9dc12c38 Add java.lang.Long to imports 2020-02-04 22:15:14 +01:00
Stijn Opheide
d5ff6f7308
add java.lang.Long to classes (#253) 2020-02-04 22:07:11 +01:00
Michiel Borkent
d3f1b05102 Make core.async.impl.protocols namespace reachable from within bb 2020-02-04 12:42:05 +01:00
Michiel Borkent
f588319ac1 Sci: add satisfies\? 2020-02-04 12:32:40 +01:00
Michiel Borkent
b38e73d33c Version bump 2020-02-04 11:42:18 +01:00
Michiel Borkent
300c72e43e v0.0.69 2020-02-04 11:29:43 +01:00
Michiel Borkent
ba3eac83b1 Fix preloads 2020-02-04 11:09:29 +01:00
Michiel Borkent
1d3eaae943 sci 2020-02-04 11:01:11 +01:00
Michiel Borkent
1224919bd1 sci: now includes clojure.edn 2020-02-02 18:24:58 +01:00
Michiel Borkent
00670bfafe Windows 2020-02-02 13:44:34 +01:00
Michiel Borkent
a87fc71821 README 2020-02-02 13:33:26 +01:00
Michiel Borkent
f124a8a2b1 README 2020-02-02 13:29:50 +01:00
Michiel Borkent
280a2a0016 README 2020-02-02 13:14:29 +01:00
Michiel Borkent
634084e592 [#251] Test for uberscript with System/exit 2020-01-31 22:31:16 +01:00
Michiel Borkent
e75475506c Version bump 2020-01-31 21:10:21 +01:00
Michiel Borkent
64ba1a5afb v0.0.68 2020-01-31 21:01:49 +01:00
Michiel Borkent
b931b98f4c Doc 2020-01-31 17:34:39 +01:00
Michiel Borkent
f27c706340 [#250] test 2020-01-31 17:33:01 +01:00
Michiel Borkent
ecf3caa251 Test for uberscript 2020-01-31 17:29:13 +01:00
Michiel Borkent
6abff1dbdd [#250] implement -- option 2020-01-31 17:23:22 +01:00
Michiel Borkent
c8d9c1ee5f Fix uberscript 2020-01-31 17:20:10 +01:00
Michiel Borkent
f652aa3f17 Fix uberscript 2020-01-31 17:20:10 +01:00
Michiel Borkent
f454d3e36d
Update FUNDING.yml 2020-01-31 09:14:58 +01:00
Michiel Borkent
43f879de2b README 2020-01-30 11:08:12 +01:00
Michiel Borkent
8570eef019 Fix reported file 2020-01-30 10:30:11 +01:00
Michiel Borkent
d8eb74a13b Version bump 2020-01-30 00:27:20 +01:00
Michiel Borkent
77cd68be1c v0.0.67 2020-01-30 00:07:29 +01:00
Michiel Borkent
6e8a2e2e9a [#245] add -iO and -Io 2020-01-29 23:55:21 +01:00
Michiel Borkent
8e36d3cf9a docs 2020-01-29 23:53:01 +01:00
Michiel Borkent
584666097b sci: minor 2020-01-29 23:44:52 +01:00
Michiel Borkent
710eee3e51 [#247] add clojure.test/report 2020-01-29 23:31:29 +01:00
Michiel Borkent
f86cc84303
[#247] add clojure.test as built-in lib 2020-01-29 23:22:26 +01:00
Michiel Borkent
9cd940428f sci 2020-01-29 11:08:35 +01:00
Michiel Borkent
923d229a5c sci: add multimethods 2020-01-28 22:14:52 +01:00
Michiel Borkent
8cf1dd71f1 Bump sci 2020-01-27 18:23:03 +01:00
Michiel Borkent
c3d594465f
Update README.md 2020-01-25 17:00:40 +01:00
Michiel Borkent
7843ed7716 Add dev note 2020-01-24 11:11:54 +01:00
Michiel Borkent
43eef7075f sci: add hierarchies 2020-01-24 10:26:13 +01:00
Michiel Borkent
485fef7df5 Bump edamame and sci 2020-01-23 20:36:18 +01:00
Michiel Borkent
bc62576152 Bump edamame and sci 2020-01-22 21:51:23 +01:00
Michiel Borkent
603e318f1b Add lib to README 2020-01-21 15:53:04 +01:00
Michiel Borkent
55ff698908 Add clojure_csv test 2020-01-21 15:48:39 +01:00
Michiel Borkent
aad41086f7 Minor 2020-01-21 15:39:03 +01:00
Michiel Borkent
736555bdb6 Add Writer, PrintWriter and PushbackReader 2020-01-21 15:27:38 +01:00
Michiel Borkent
e427060c0b Add java.io.Reader and StringBuilder 2020-01-21 15:14:33 +01:00
Michiel Borkent
55238b52ac Version bump 2020-01-20 11:19:19 +01:00
Michiel Borkent
00df495697 v0.0.66 2020-01-20 11:07:58 +01:00
Michiel Borkent
a442bde76a [#213] Allow -e argument to be repeated 2020-01-20 11:00:53 +01:00
Michiel Borkent
8f698894f6
[#234] *ns* should be controllable set per socket REPL connection 2020-01-20 10:41:11 +01:00
Michiel Borkent
9269f1087f [#243] ns form doesn't work with socket repl 2020-01-19 20:01:49 +01:00
Michiel Borkent
e2cf871dfa [#232] better error when requiring unknown namespace 2020-01-19 18:08:08 +01:00
Michiel Borkent
3f066210f2 sci: throw error when using special form not in call 2020-01-19 17:53:24 +01:00
Michiel Borkent
6c4a54745a Add time macro 2020-01-19 15:28:59 +01:00
Michiel Borkent
073fbcac20 Add Throwable to default imports 2020-01-19 14:18:52 +01:00
Michiel Borkent
37913fd012 sci bump 2020-01-19 14:04:56 +01:00
Michiel Borkent
e515018451 sci: rename :row and :col to :line and :column 2020-01-19 13:01:43 +01:00
Michiel Borkent
45da56a964 sci: support reload 2020-01-18 20:41:46 +01:00
Michiel Borkent
4008546ad7 sci: alter-meta and reset-meta are synchronous 2020-01-18 19:49:20 +01:00
Michiel Borkent
d1aaa97df6 sci: record file metadata on var 2020-01-18 18:25:38 +01:00
Michiel Borkent
ef7a75be5b sci: add alter-meta! and reset-meta! 2020-01-18 16:54:58 +01:00
Michiel Borkent
e43a7028cf Version bump 2020-01-18 11:53:01 +01:00
Michiel Borkent
37fa6dbf0c v0.0.65 2020-01-18 11:44:20 +01:00
Michiel Borkent
c3961c6dc5 sci: reset bindings when requiring file 2020-01-17 23:46:09 +01:00
Michiel Borkent
d7b9344158 Revert dotimes 2020-01-17 19:42:30 +01:00
Michiel Borkent
d9a75cf8cf dev 2020-01-17 17:26:03 +01:00
Michiel Borkent
8d0c03c8f6 Version bump 2020-01-17 11:00:48 +01:00
Michiel Borkent
751f76d067 v0.0.64 2020-01-17 10:12:40 +01:00
Michiel Borkent
e745da4be4 sci: minor 2020-01-16 22:41:39 +01:00
Michiel Borkent
b96919646f sci: more unrolls 2020-01-16 21:21:05 +01:00
Michiel Borkent
4cd85917ab sci: perf 2020-01-16 20:47:20 +01:00
Michiel Borkent
a5e88b0620 sci 2020-01-16 16:44:35 +01:00
Michiel Borkent
7deb1b91f9 sci: various perf improvements 2020-01-16 16:35:50 +01:00
Michiel Borkent
72fe4d1e01 Version bump 2020-01-16 10:58:57 +01:00
Michiel Borkent
79becbc727 v0.0.63 2020-01-16 10:29:14 +01:00
Michiel Borkent
0713038457
[#239] Fix issue with clj-http-lite 2020-01-16 10:28:17 +01:00
Michiel Borkent
6edb3b91f8
Performance improvement 2020-01-15 22:53:45 +01:00
Michiel Borkent
73ec6da56a
More optimizations 2020-01-15 20:11:44 +01:00
Michiel Borkent
aacc5c4811
sci: more performance optimizations 2020-01-15 11:57:50 +01:00
Michiel Borkent
3fb6a484ac sci 2020-01-14 17:37:38 +01:00
Michiel Borkent
bfa8b45e34
sci: performance improvement 2020-01-14 17:12:57 +01:00
Michiel Borkent
c71cfa637a Add appveyor.yml 2020-01-14 10:00:40 +01:00
Michiel Borkent
d23c9baa72 Version bump 2020-01-12 21:05:58 +01:00
Michiel Borkent
ad72e068f9 v0.0.62 2020-01-12 20:50:18 +01:00
Michiel Borkent
8e5b19c80b doc 2020-01-12 20:50:09 +01:00
Michiel Borkent
880ac26793 Doc 2020-01-12 20:46:00 +01:00
Michiel Borkent
f066e32494 Doc 2020-01-12 20:41:53 +01:00
Michiel Borkent
8c41237f7a sig -> signal 2020-01-12 20:18:37 +01:00
Michiel Borkent
5a63d37486 babashka.classpath 2020-01-12 20:02:48 +01:00
Michiel Borkent
b933610626 Add experimental add-classpath! 2020-01-12 18:15:34 +01:00
Michiel Borkent
19767b54a3 [#221] print name of exception 2020-01-12 17:40:41 +01:00
Michiel Borkent
8e24744d35 [#219] better error message for unrecognized cli option 2020-01-12 17:27:17 +01:00
Michiel Borkent
1268792b47 Refer 'clojure.repl/dir in user ns 2020-01-12 14:01:22 +01:00
Michiel Borkent
a3b3984f05 Upgrade sci 2020-01-12 13:35:03 +01:00
Michiel Borkent
06cccf1a14 Add ns-publics + clojure.repl/dir 2020-01-12 13:33:56 +01:00
Michiel Borkent
7b85863020 Bind current-ns to user 2020-01-12 11:51:40 +01:00
Michiel Borkent
d815c35f71 Sci: fix *ns* 2020-01-12 00:05:55 +01:00
Michiel Borkent
f3e51f9109 sci: add find-ns, the-ns, ns-aliases 2020-01-11 23:23:29 +01:00
Michiel Borkent
0446fd52ef sci: add some->> 2020-01-11 19:08:17 +01:00
Michiel Borkent
9b3954aa88 sci: add alias 2020-01-11 18:33:13 +01:00
Michiel Borkent
be0c573a0d sci: pre- and postconditions 2020-01-11 16:44:21 +01:00
Michiel Borkent
b130d28c5a Upgrade edamame 2020-01-11 11:45:27 +01:00
Michiel Borkent
68627a076f sci: upgrade edamame 2020-01-11 11:44:41 +01:00
Michiel Borkent
f1eb902f41 README 2020-01-09 14:58:03 +01:00
Michiel Borkent
c87e5f56c6 Version bump 2020-01-09 14:32:25 +01:00
Michiel Borkent
7c5c918990 v0.0.61 2020-01-09 14:19:09 +01:00
Michiel Borkent
c700f90ec1 Bash typo 2020-01-09 11:28:11 +01:00
Michiel Borkent
7a63c40a46 Add xmx flag 2020-01-09 11:19:48 +01:00
Michiel Borkent
a7940ad85c Deprecate NATIVE_IMAGE variable 2020-01-09 11:11:12 +01:00
Michiel Borkent
e23d41e5f0 Merge branch 'master' into clojure.data.xml 2020-01-09 10:47:38 +01:00
Michiel Borkent
11b4c15bd7 Add note about cheshire 2020-01-09 10:46:39 +01:00
Michiel Borkent
4a833e3c76 Add test 2020-01-08 22:42:58 +01:00
Michiel Borkent
6952ab16a3 wip 2020-01-08 22:38:03 +01:00
Michiel Borkent
56880b3093 doc 2020-01-08 22:16:00 +01:00
Michiel Borkent
8408b8245e Docs 2020-01-08 22:08:30 +01:00
Michiel Borkent
f1c6f27eaf xml 2020-01-08 22:04:59 +01:00
Michiel Borkent
241e578cc7 Merge branch 'master' into clojure.data.xml 2020-01-08 21:31:04 +01:00
Michiel Borkent
93a0d2b101 Docs 2020-01-08 21:30:50 +01:00
Michiel Borkent
90f10061b3 Merge branch 'master' into clojure.data.xml 2020-01-08 21:25:12 +01:00
Michiel Borkent
303ca9e825 sci issue 217: support list in case 2020-01-08 17:22:59 +01:00
Michiel Borkent
673e9eed22 sci: issue 232 2020-01-08 16:55:16 +01:00
Michiel Borkent
2b0cb6fb1c
Remove Unix-specific classes (#227) 2020-01-08 11:48:40 +01:00
Peter Nagy
6633d8b674 fixes clj-http-lite example in README (#226) 2020-01-08 08:45:41 +01:00
Michiel Borkent
c383051194 Fix 2020-01-07 16:43:48 +01:00
Michiel Borkent
bf481b76d1 Rewrite bash script in bb 2020-01-07 16:38:54 +01:00
Michiel Borkent
ece81e0a99 Sci: improve macroexpand and add .. macro 2020-01-07 15:44:59 +01:00
Michiel Borkent
fcc28657bc Publish artifact links to Slack 2020-01-07 12:58:27 +01:00
Michiel Borkent
115045c481 Sci: macroexpand 2020-01-07 11:19:30 +01:00
Michiel Borkent
56f21874b7 Sci: add macroexpand 2020-01-07 10:57:59 +01:00
Michiel Borkent
2c7a938621 Add lib tests 2020-01-07 09:33:37 +01:00
Michiel Borkent
51af94f70b Add deps.clj test 2020-01-07 09:20:42 +01:00
Michiel Borkent
aaf78a093d Bump edamame once more 2020-01-06 23:50:46 +01:00
Michiel Borkent
42e84d9dac Bump edamame 2020-01-06 22:58:25 +01:00
Michiel Borkent
15db79ac80
Sci: remove eval mark after evaluation 2020-01-06 20:40:02 +01:00
Michiel Borkent
f267adfe79 Add http server example 2020-01-06 13:22:43 +01:00
Michiel Borkent
82d4096dfb sci: add any? and inst? 2020-01-05 22:11:44 +01:00
Michiel Borkent
ab6ea2de08 add demunge 2020-01-05 19:01:55 +01:00
Michiel Borkent
193bbc2888
sci: preserve tag in let (#216) 2020-01-05 17:45:25 +01:00
Michiel Borkent
2bab1d826b sci: issue 222 2020-01-05 00:20:58 +01:00
Michiel Borkent
e425b835be v0.0.60 2020-01-04 20:30:43 +01:00
Michiel Borkent
8f005224ca Dev note 2020-01-04 20:28:17 +01:00
Michiel Borkent
1d3cd975ba Add constructors for Delay and MapEntry 2020-01-04 20:21:09 +01:00
Michiel Borkent
a5c2f62d38 Fix java build 2020-01-04 20:07:19 +01:00
Michiel Borkent
a14119c5d3 README 2020-01-04 20:06:11 +01:00
Michiel Borkent
5e2c2a7ba0 Add locking 2020-01-04 20:04:29 +01:00
Michiel Borkent
62f12e75ee sci: use public alter-var-root 2020-01-04 15:31:49 +01:00
Michiel Borkent
0dd0482eb9 sci: switch to edamame/fn parsing 2020-01-04 12:26:27 +01:00
Michiel Borkent
32d9f5bcc5 Add alter-var-root 2020-01-04 12:19:25 +01:00
Michiel Borkent
85da23bf82 Version bump 2020-01-02 17:03:14 +01:00
Michiel Borkent
4233e52d8f v0.0.59 2020-01-02 16:02:53 +01:00
Michiel Borkent
28b873700d Add class for clj-http.lite 2020-01-02 16:02:36 +01:00
Michiel Borkent
8a90eec5b4 README 2020-01-02 14:45:41 +01:00
Michiel Borkent
4800e80e5a README 2020-01-02 14:41:59 +01:00
Michiel Borkent
14db2bc0d6 README 2020-01-02 14:34:26 +01:00
Michiel Borkent
da66854f71 Alias 2020-01-02 14:31:17 +01:00
Michiel Borkent
277c693503 Version bump 2020-01-02 13:56:21 +01:00
Michiel Borkent
d12d9b9f70 README 2020-01-02 13:53:35 +01:00
Michiel Borkent
391fea562b README 2020-01-02 13:44:24 +01:00
Michiel Borkent
0646b8f64c README: medley 2020-01-02 13:42:59 +01:00
Michiel Borkent
1d1863eafe v0.0.58 2020-01-02 13:41:34 +01:00
Michiel Borkent
978278768f Add a bunch of classes 2020-01-02 13:39:22 +01:00
Michiel Borkent
a04b7d00b4 sci: allow metadata in defn 2020-01-02 12:53:16 +01:00
Nate Sutton
95a9e91244 Add FileTime and TimeUnit for working with times on file attributes (#211) 2020-01-02 09:31:03 +01:00
Nate Sutton
55e01c5b2c Add Throwable->map (#210) 2020-01-02 09:30:24 +01:00
Nate Sutton
b16e2812e0 Add clojure.stacktrace (#209) 2020-01-02 09:29:26 +01:00
Michiel Borkent
0362ecb7f6 Fix starting REPL when no expression is given 2020-01-01 23:27:25 +01:00
Michiel Borkent
a9758b6170 Version bump 2020-01-01 22:04:25 +01:00
Michiel Borkent
fd833204f3 Release uberjar 2020-01-01 21:57:46 +01:00
Michiel Borkent
7fb02e32ed v0.0.57 2020-01-01 21:23:38 +01:00
Michiel Borkent
ac789d07bc sci 2020-01-01 21:23:13 +01:00
Michiel Borkent
157ca481be Sci: add :name and :ns metadata to vars 2020-01-01 20:34:32 +01:00
Michiel Borkent
6d0531c26e Add clojure.lang.IOBj 2020-01-01 20:11:49 +01:00
Michiel Borkent
0aaa40c035 sci: defonce 2020-01-01 20:06:26 +01:00
Michiel Borkent
2447f68502 Add java.util.UUID 2020-01-01 18:02:08 +01:00
Michiel Borkent
3a987c3f51 Fix problem with declare 2020-01-01 17:56:20 +01:00
Michiel Borkent
c4ee44e884 Version bump 2019-12-31 14:30:32 +01:00
Michiel Borkent
a57d9f34bf v0.0.56 2019-12-31 14:23:54 +01:00
Michiel Borkent
a5f26aca3f Add test 2019-12-31 14:18:12 +01:00
Michiel Borkent
a9ac2cabbe Add java.net.Socket/Server 2019-12-31 14:13:22 +01:00
Michiel Borkent
40b0d36871 .carve_ignore 2019-12-30 23:13:16 +01:00
Michiel Borkent
e87d9aea82 Add .carve_ignore 2019-12-30 21:27:01 +01:00
Michiel Borkent
2ed19cef99 Cleanup 2019-12-30 18:06:13 +01:00
Michiel Borkent
426038c3cc
Update README.md 2019-12-30 13:38:05 +01:00
Michiel Borkent
f8b3256458 Version bump 2019-12-30 11:52:06 +01:00
Michiel Borkent
30178101cf v0.0.55 2019-12-30 11:39:57 +01:00
Michiel Borkent
24f4f7aafe [#200] add nio LinkOption 2019-12-30 11:33:23 +01:00
Michiel Borkent
9bdaafbca9 [#200] import IllegalArgumentException 2019-12-30 11:28:47 +01:00
Michiel Borkent
b6f484416b
[#200] add shell/with-sh-dir and shell/with-sh-env 2019-12-30 11:28:07 +01:00
Michiel Borkent
2ea28e41e1
Fix for #199 2019-12-30 10:29:54 +01:00
Michiel Borkent
8fc8571eb0
Icon 2019-12-30 09:51:20 +01:00
Michiel Borkent
0a35971aca Version bump 2019-12-30 00:17:23 +01:00
Michiel Borkent
cecc86d42c v0.0.54 2019-12-30 00:12:04 +01:00
Michiel Borkent
64844d9716 README 2019-12-29 23:37:57 +01:00
Michiel Borkent
16ca4098c8
add io/resource 2019-12-29 23:37:08 +01:00
Michiel Borkent
283783bdd3 Version bump 2019-12-29 15:50:45 +01:00
Michiel Borkent
80a8e9b475
Update README.md 2019-12-29 14:56:16 +01:00
Michiel Borkent
b02cc48d90 v0.0.53 2019-12-29 13:32:50 +01:00
Michiel Borkent
1ab393dfe2 Version bump 2019-12-29 13:32:41 +01:00
Michiel Borkent
ffd235caab sci: require evaluates arguments 2019-12-29 13:32:16 +01:00
Michiel Borkent
294911a85a v0.0.52 2019-12-29 12:15:36 +01:00
Michiel Borkent
9f0c6df4db sci: fix bug when using a class in syntax-quote 2019-12-29 12:10:55 +01:00
Michiel Borkent
216317909a
Update README.md 2019-12-29 00:15:07 +01:00
Michiel Borkent
926675d6cd
Update README.md 2019-12-28 23:50:05 +01:00
Michiel Borkent
407cd3aeb1
Update README.md 2019-12-28 23:21:15 +01:00
Michiel Borkent
5840706858
Update README.md 2019-12-28 23:19:38 +01:00
Michiel Borkent
4522345685
Update README.md 2019-12-28 23:18:44 +01:00
Michiel Borkent
c5ec930322
Update README.md 2019-12-28 23:11:25 +01:00
Michiel Borkent
0f5a399160
Update README.md 2019-12-28 23:06:48 +01:00
Michiel Borkent
e8606359b1
Update README.md 2019-12-28 23:04:38 +01:00
Michiel Borkent
21b4a0f68a Version bump 2019-12-28 23:03:30 +01:00
Michiel Borkent
f6e1284818
Update README.md 2019-12-28 22:55:01 +01:00
Michiel Borkent
db95d9b788
Update README.md 2019-12-28 22:53:20 +01:00
Michiel Borkent
ded6dd2355
--uberscript option (#197) 2019-12-28 22:52:56 +01:00
Michiel Borkent
c446dced0e Version bump 2019-12-25 16:32:43 +01:00
Michiel Borkent
68e061762c v0.0.50 2019-12-25 16:21:39 +01:00
Michiel Borkent
edecf87b67 [#194] *command-line-args* should be nil instead of empty list when no args are provided 2019-12-25 16:14:28 +01:00
João Santiago
5ad851d2ed Add missing functions from cheshire.core (#195) 2019-12-25 15:55:49 +01:00
Michiel Borkent
4788969b11
Update README.md 2019-12-25 14:49:29 +01:00
Nikita Prokopov
4ed7e7bf27 Logo 2019-12-24 14:46:51 +01:00
Michiel Borkent
c339f628ad libs 2019-12-24 11:31:31 +01:00
Michiel Borkent
9788093306 Enhance bump version script 2019-12-24 10:41:01 +01:00
Michiel Borkent
91a7b9a3c4 Version bump 2019-12-24 10:35:08 +01:00
Michiel Borkent
b5553f157a v0.0.49 2019-12-24 10:25:00 +01:00
Michiel Borkent
2041656583 [#154] minor 2019-12-24 10:24:41 +01:00
Michiel Borkent
acfc79660a
[#154] Expose clojure.main/repl to babashka 2019-12-24 10:01:32 +01:00
Michiel Borkent
1835d7d219
Get rid of Python in tests 2019-12-23 11:12:20 +01:00
Michiel Borkent
0462c0fd61 Bump version 2019-12-22 23:01:53 +01:00
Michiel Borkent
33975bc9c4 v0.0.48 2019-12-22 22:46:37 +01:00
Michiel Borkent
2ab73f2342 Add class to make (client/get "http://...") work 2019-12-22 22:10:22 +01:00
Michiel Borkent
b1e4e4297f Version bump 2019-12-22 20:52:07 +01:00
Michiel Borkent
d124288a56 v0.0.47 2019-12-22 20:30:53 +01:00
Michiel Borkent
3270d521d3 Support for clj-http-lite 2019-12-22 20:09:52 +01:00
Michiel Borkent
4ca9a81c1c sci: fix exclude 2019-12-22 19:43:13 +01:00
Michiel Borkent
5a13134c94 sci: add condp 2019-12-22 19:28:42 +01:00
Michiel Borkent
fc081bda8e Include file in error when set 2019-12-22 17:42:29 +01:00
Michiel Borkent
ebc9f6479d
Sci: remove ns when error while loading 2019-12-22 17:27:06 +01:00
Michiel Borkent
1c5cebb608 Add clojure.core/delay 2019-12-22 13:03:08 +01:00
Michiel Borkent
34249ad0b1
Add reflection info to support clj-http-lite 2019-12-22 09:40:12 +01:00
Michiel Borkent
fc20ed00a3 Version bump 2019-12-21 21:59:32 +01:00
Michiel Borkent
c200ec2d8b
Update README.md 2019-12-21 21:05:40 +01:00
Michiel Borkent
13aab1f7bc doc 2019-12-21 11:50:05 +01:00
Michiel Borkent
9d29c6f77d v0.0.46 2019-12-21 11:48:02 +01:00
Michiel Borkent
2eecdea571
[#179] Current file path: *file* 2019-12-21 11:39:28 +01:00
Michiel Borkent
66224bebca
Update README.md 2019-12-21 00:06:00 +01:00
Michiel Borkent
765318f440 Version bump 2019-12-21 00:03:11 +01:00
Michiel Borkent
a8fe403d44 v0.0.45 2019-12-20 23:55:42 +01:00
Michiel Borkent
479a08d73e [#173] <input> becomes *input* 2019-12-20 23:51:24 +01:00
Michiel Borkent
7c45baf008 Make *command-line-args* a dynamic var 2019-12-20 21:29:27 +01:00
Michiel Borkent
11eea4d1d2
Update README.md 2019-12-20 21:23:51 +01:00
Michiel Borkent
ae32f6e074
Update README.md 2019-12-20 21:20:37 +01:00
Michiel Borkent
794f0f654d
Update README.md 2019-12-20 21:19:48 +01:00
Michiel Borkent
c1b38bfd7b Input and output flags 2019-12-20 21:17:27 +01:00
Michiel Borkent
7ccbe1281a
Update README.md 2019-12-20 19:22:14 +01:00
Nate Sutton
c4f92e5b87 Fix java.nio.file.Files in README.md (#180) 2019-12-20 17:26:28 +01:00
Michiel Borkent
76749fbd17
Update README.md 2019-12-20 16:51:41 +01:00
Michiel Borkent
2fe5294256 doc 2019-12-20 10:46:31 +01:00
Michiel Borkent
586df3d583 articles 2019-12-20 10:45:21 +01:00
Michiel Borkent
8c56c9ad07
Update CHANGES.md 2019-12-20 10:36:23 +01:00
Michiel Borkent
9add363d07 doc 2019-12-20 10:34:56 +01:00
Michiel Borkent
d0212779d5 Changes 2019-12-20 10:33:39 +01:00
Michiel Borkent
9b4f31942d Changes 2019-12-20 10:32:43 +01:00
Michiel Borkent
2243c73377 Version bump 2019-12-20 10:24:07 +01:00
Michiel Borkent
d9420a91ba v0.0.44 2019-12-20 10:17:11 +01:00
Michiel Borkent
612b82e1b0 sci: fix re-quote-replacement 2019-12-20 09:07:00 +01:00
Michiel Borkent
6e99a7627b letfn tweak 2019-12-19 23:37:58 +01:00
Michiel Borkent
4f488ca684
[#159] set sci var roots to *in*, *out* and *err* 2019-12-19 23:34:27 +01:00
Michiel Borkent
a9231b7ecf
[#173] rename *in* to <input> (BREAKING!) 2019-12-19 21:41:57 +01:00
Michiel Borkent
5e10c913e0 [#174] Add edn/read 2019-12-19 18:43:55 +01:00
Michiel Borkent
725f2174d1
Update bug_report.md 2019-12-19 14:02:44 +01:00
Michiel Borkent
6ab9ff9b15
Update README.md 2019-12-19 14:01:14 +01:00
Michiel Borkent
d1d2db040b
Update README.md 2019-12-19 14:00:46 +01:00
Michiel Borkent
59748a5ce0 [#166] unit test: wait/wait-for-port closes connection 2019-12-18 23:06:51 +01:00
Michiel Borkent
58568c0b7a sci: letfn 2019-12-18 21:46:35 +01:00
Michiel Borkent
f205fea447 Version bump 2019-12-18 17:15:45 +01:00
Michiel Borkent
51c2c42853 v0.0.43 2019-12-18 17:10:23 +01:00
Michiel Borkent
3bcd4f1742 doc 2019-12-18 17:01:21 +01:00
Michiel Borkent
f8a19d2f46
[#162] add java.util.Base64 2019-12-18 17:01:00 +01:00
Michiel Borkent
1b1e564288
[#149] Add java.time.* classes 2019-12-18 16:38:21 +01:00
Michiel Borkent
316cce2b59
Add java.lang.Math 2019-12-18 13:46:07 +01:00
Michiel Borkent
d88c28ff50 Fix flaky wait for test 2019-12-18 09:38:45 +01:00
Michiel Borkent
96b04b50ef
Update README.md 2019-12-18 08:53:32 +01:00
Michiel Borkent
36c3a637f6
Update README.md 2019-12-18 08:52:14 +01:00
Michiel Borkent
a53cf43c0c
Update README.md 2019-12-18 08:51:40 +01:00
Michiel Borkent
c7a00f2c15
Update README.md 2019-12-17 15:37:05 +01:00
Arne Brasseur
16129a8db1 Add project.clj->deps.edn oneliner to gallery 2019-12-17 15:35:03 +01:00
Michiel Borkent
aa8e6b160b Close socket 2019-12-17 12:23:34 +01:00
Michiel Borkent
c2d9bbfab2
[#160] Add support for ProcessBuilder (#165) 2019-12-17 11:27:40 +01:00
Michiel Borkent
83b3aad920
[#158] Automate generation of reflection.json 2019-12-16 21:44:20 +01:00
Michiel Borkent
218f5e94da Merge branch 'master' into clojure.data.xml 2019-12-16 13:55:18 +01:00
Michiel Borkent
3ed5f69b20 clojure.data.xml 2019-12-13 21:58:56 +01:00
669 changed files with 70379 additions and 2402 deletions

6
.build/bb.edn Normal file
View file

@ -0,0 +1,6 @@
{:paths ["script"]
:deps {borkdude/gh-release-artifact
#_{:local/root "../gh-release-artifact"}
{:git/url "https://github.com/borkdude/gh-release-artifact"
:git/sha "4a9a74f0e50e897c45df8cc70684360eb30fce80"}}
:tasks {release-artifact babashka.release-artifact/release}}

3
.carve/.carve_ignore Normal file
View file

@ -0,0 +1,3 @@
babashka.impl.clojure.stacktrace/root-cause
babashka.impl.classes/generate-reflection-file
babashka.main/-main

4
.carve/ignore Normal file
View file

@ -0,0 +1,4 @@
babashka.impl.pipe-signal-handler/pipe-signal-received?
babashka.impl.pipe-signal-handler/handle-pipe!
babashka.impl.sigint-handler/handle-sigint!
babashka.impl.classes/generate-reflection-file

View file

@ -3,253 +3,38 @@
# Check https://circleci.com/docs/2.0/language-clojure/ for more details
#
version: 2.1
jobs:
jvm:
docker:
# specify the version you desire here
- image: circleci/clojure:lein-2.8.1
working_directory: ~/repo
environment:
LEIN_ROOT: "true"
# GRAALVM_HOME: /home/circleci/graalvm-ce-java8-19.3.0
steps:
- checkout
- run:
name: "Pull Submodules"
command: |
git submodule init
git submodule update
- restore_cache:
keys:
- v1-dependencies-{{ checksum "project.clj" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run:
name: Install Clojure
command: |
wget -nc https://download.clojure.org/install/linux-install-1.10.1.447.sh
chmod +x linux-install-1.10.1.447.sh
sudo ./linux-install-1.10.1.447.sh
- run:
name: Install lsof
command: |
sudo apt-get install lsof
# - run:
# name: Download GraalVM
# command: |
# cd ~
# if ! [ -d graalvm-ce-java8-19.3.0 ]; then
# curl -O -sL https://github.com/oracle/graal/releases/download/vm-19.2.0/graalvm-ce-linux-amd64-19.2.0.tar.gz
# tar xzf graalvm-ce-linux-amd64-19.2.0.tar.gz
# fi
# - run:
# name: Install GraalVM SSL libs
# command: |
# .circleci/script/graalvm_ssl
- run:
name: Run JVM tests
command: |
script/test
# - run:
# name: Run as tools.deps dependency
# command: |
# .circleci/script/tools.deps
- run:
name: Run as lein command
command: |
.circleci/script/lein
- save_cache:
paths:
- ~/.m2
key: v1-dependencies-{{ checksum "project.clj" }}
linux:
docker:
- image: circleci/clojure:lein-2.8.1
working_directory: ~/repo
environment:
LEIN_ROOT: "true"
GRAALVM_HOME: /home/circleci/graalvm-ce-java8-19.3.0
BABASHKA_PLATFORM: linux # used in release script
BABASHKA_TEST_ENV: native
steps:
- checkout
- run:
name: "Pull Submodules"
command: |
git submodule init
git submodule update
- restore_cache:
keys:
- linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- run:
name: Install Clojure
command: |
wget https://download.clojure.org/install/linux-install-1.10.1.447.sh
chmod +x linux-install-1.10.1.447.sh
sudo ./linux-install-1.10.1.447.sh
- run:
name: Install lsof
command: |
sudo apt-get install lsof
- run:
name: Install native dev tools
command: |
sudo apt-get update
sudo apt-get -y install gcc g++ zlib1g-dev
- run:
name: Download GraalVM
command: |
cd ~
if ! [ -d graalvm-ce-java8-19.3.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-19.3.0/graalvm-ce-java8-linux-amd64-19.3.0.tar.gz
tar xzf graalvm-ce-java8-linux-amd64-19.3.0.tar.gz
fi
# - run:
# name: Install GraalVM SSL libs
# command: |
# .circleci/script/graalvm_ssl
- run:
name: Build binary
command: |
script/compile
no_output_timeout: 30m
- run:
name: Run tests
command: |
script/test
# - run:
# name: Performance report
# command: |
# .circleci/script/performance
- run:
name: Release
command: |
.circleci/script/release
- save_cache:
paths:
- ~/.m2
- ~/graalvm-ce-java8-19.3.0
key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- store_artifacts:
path: /tmp/release
destination: release
mac:
macos:
xcode: "9.0"
environment:
GRAALVM_HOME: /Users/distiller/graalvm-ce-java8-19.3.0/Contents/Home
BABASHKA_PLATFORM: macos # used in release script
BABASHKA_TEST_ENV: native
steps:
- checkout
- run:
name: "Pull Submodules"
command: |
git submodule init
git submodule update
- restore_cache:
keys:
- mac-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- run:
name: Install Clojure
command: |
.circleci/script/install-clojure /usr/local
- run:
name: Install Leiningen
command: |
.circleci/script/install-leiningen
- run:
name: Download GraalVM
command: |
cd ~
ls -la
if ! [ -d graalvm-ce-java8-19.3.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-19.3.0/graalvm-ce-java8-darwin-amd64-19.3.0.tar.gz
tar xzf graalvm-ce-java8-darwin-amd64-19.3.0.tar.gz
fi
# - run:
# name: Install GraalVM SSL libs
# command: |
# .circleci/script/graalvm_ssl
- run:
name: Build binary
command: |
script/compile
no_output_timeout: 30m
- run:
name: Run tests
command: |
script/test
# - run:
# name: Performance report
# command: |
# .circleci/script/performance
- run:
name: Release
command: |
.circleci/script/release
- save_cache:
paths:
- ~/.m2
- ~/graalvm-ce-java8-19.3.0
key: mac-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- store_artifacts:
path: /tmp/release
destination: release
deploy:
docker:
- image: circleci/clojure:lein-2.8.1
working_directory: ~/repo
environment:
LEIN_ROOT: "true"
steps:
- checkout
- run:
name: "Pull Submodules"
command: |
git submodule init
git submodule update
- restore_cache:
keys:
- v1-dependencies-{{ checksum "project.clj" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run: .circleci/script/deploy
- save_cache:
paths:
- ~/.m2
key: v1-dependencies-{{ checksum "project.clj" }}
# docker:
# docker:
# - image: circleci/buildpack-deps:stretch
# steps:
# - checkout
# - setup_remote_docker:
# docker_layer_caching: true
# - run:
# name: Build Docker image
# command: .circleci/script/docker
# this allows you to use CircleCI's dynamic configuration feature
setup: true
# the continuation orb is required in order to use dynamic configuration
orbs:
continuation: circleci/continuation@0.1.2
# our defined job, and its steps
jobs:
setup:
docker:
- image: cimg/clojure:1.11.1
steps:
- checkout
- run:
name: Bootstrap Babashka
command: |
curl -sLO https://raw.githubusercontent.com/babashka/babashka/master/install
sudo bash install --dir /tmp
- run:
name: Rename bb binary
command: mv /tmp/bb /tmp/bbb
- run:
name: Generate config
command: |
/tmp/bbb .circleci/script/gen_ci.clj > generated_config.yml
- continuation/continue:
configuration_path: generated_config.yml
# our single workflow, that triggers the setup job defined above
workflows:
version: 2
ci:
setup:
jobs:
- jvm
- linux
- mac
- deploy:
filters:
branches:
only: master
requires:
- jvm
- linux
- mac
# - docker:
# filters:
# branches:
# only: master
# requires:
# - jvm
# - linux
# - mac
- setup

125
.circleci/script/docker.clj Normal file
View file

@ -0,0 +1,125 @@
(require '[babashka.fs :as fs]
'[babashka.process :as proc]
'[clojure.string :as str])
(import '[java.time Instant])
(defn read-env
([k]
(read-env k nil))
([k default]
(or (System/getenv k)
default)))
(def image-name "babashka/babashka")
(def ghcr-image-name "ghcr.io/babashka/babashka")
(def image-tag (str/trim (slurp "resources/BABASHKA_VERSION")))
(def latest-tag "latest")
(def platforms (read-env "PLATFORMS" "linux/amd64"))
(def circle-repository-url (read-env "CIRCLE_REPOSITORY_URL"))
(def label-args
["--label" "'org.opencontainers.image.description=Native, fast starting Clojure interpreter for scripting'"
"--label" "org.opencontainers.image.title=Babashka"
"--label" (str "org.opencontainers.image.created=" (Instant/now))
"--label" (str "org.opencontainers.image.url=" circle-repository-url)
"--label" (str "org.opencontainers.image.documentation=" circle-repository-url)
"--label" (str "org.opencontainers.image.source=" circle-repository-url)
"--label" (str "org.opencontainers.image.revision=" (read-env "CIRCLE_SHA1"))
"--label"
(format "org.opencontainers.image.ref.name=%s:%s"
(read-env "CIRCLE_TAG")
(read-env "CIRCLE_BRANCH"))
"--label" (str "org.opencontainers.image.version=" image-tag)])
(def snapshot? (str/includes? image-tag "SNAPSHOT"))
(defn exec
[cmd]
(-> cmd
(proc/process {:out :inherit :err :inherit})
(proc/check)))
(defn docker-login
[username password]
(exec ["docker" "login" "-u" username "-p" password]))
(defn docker-login-ghcr
[username password]
(exec ["docker" "login" "ghcr.io" "-u" username "-p" password]))
;; TODO: Remove this when Dockerhub goes off
(defn build-push
[image-tag platform docker-file]
(println (format "Building and pushing %s Docker image(s) %s:%s"
platform
image-name
image-tag))
(let [base-cmd ["docker" "buildx" "build"
"-t" (str image-name ":" image-tag)
"--platform" platform
"--progress" "plain"
"--push"
"-f" docker-file]]
(exec (concat base-cmd label-args ["."]))))
(defn build-push-ghcr
[image-tag platform docker-file]
(println (format "Building and pushing %s Docker image(s) %s:%s to GHCR"
platform
ghcr-image-name
image-tag))
(let [base-cmd ["docker" "buildx" "build"
"-t" (str ghcr-image-name ":" image-tag)
"--platform" platform
"--progress" "plain"
"--push"
"-f" docker-file]]
(exec (concat base-cmd label-args ["."]))))
(defn build-push-images
[]
(doseq [platform (str/split platforms #",")]
(let [tarball-platform (str/replace platform #"\/" "-")
tarball-platform (if (= "linux-arm64" tarball-platform)
"linux-aarch64-static"
tarball-platform)
tarball-path (format "/tmp/release/babashka-%s-%s.tar.gz"
image-tag
tarball-platform)]
(fs/create-dirs platform)
(exec ["tar" "zxvf" tarball-path "-C" platform])
; this overwrites, but this is to work around having built the uberjar/metabom multiple times
(fs/copy (format "/tmp/release/%s-metabom.jar" tarball-platform) "metabom.jar" {:replace-existing true})))
(build-push image-tag platforms "Dockerfile.ci")
(build-push-ghcr image-tag platforms "Dockerfile.ci")
(when-not snapshot?
(build-push latest-tag platforms "Dockerfile.ci")
(build-push-ghcr latest-tag platforms "Dockerfile.ci")))
(defn build-push-alpine-images
"Build alpine image for linux-amd64 only (no upstream arm64 support yet)"
[]
(exec ["tar" "zxvf" (str "/tmp/release/babashka-" image-tag "-linux-amd64-static.tar.gz")])
(build-push (str image-tag "-alpine") "linux/amd64" "Dockerfile.alpine")
(build-push-ghcr (str image-tag "-alpine") "linux/amd64" "Dockerfile.alpine")
(when-not snapshot?
(build-push "alpine" "linux/amd64" "Dockerfile.alpine")
(build-push-ghcr "alpine" "linux/amd64" "Dockerfile.alpine")))
(when (= *file* (System/getProperty "babashka.file"))
(if (and (nil? (read-env "CIRCLE_PULL_REQUEST"))
(= "master" (read-env "CIRCLE_BRANCH")))
(do
(if snapshot?
(println "This is a snapshot version")
(println "This is a non-snapshot version"))
(docker-login (read-env "DOCKERHUB_USER") (read-env "DOCKERHUB_PASS"))
(docker-login-ghcr (read-env "CONTAINER_REGISTRY_USER") (read-env "BB_GHCR_TOKEN"))
(build-push-images)
(build-push-alpine-images))
(println "Not publishing docker image(s).")))

281
.circleci/script/gen_ci.clj Normal file
View file

@ -0,0 +1,281 @@
(ns gen-ci
(:require
[babashka.tasks :as tasks]
[clj-yaml.core :as yaml]
[clojure.string :as str]
[flatland.ordered.map :refer [ordered-map]]))
(def graalvm-version "24")
(defn run
([cmd-name cmd]
(run cmd-name cmd nil))
([cmd-name cmd no-output-timeout]
(let [base {:run {:name cmd-name
:command cmd}}]
(if no-output-timeout
(assoc-in base [:run :no_output_timeout] no-output-timeout)
base))))
(defn gen-steps
[shorted? steps]
(if shorted?
[(run "Shorted" "echo 'Skipping Run'")]
steps))
(defn gen-job
[shorted? conf]
(if shorted?
(-> conf
(dissoc :machine :macos)
(assoc :resource_class "small" :docker [{:image "ubuntu:latest"}]))
conf))
(defn pull-submodules
[]
(run "Pull Submodules" "git submodule init\ngit submodule update"))
(defn deploy
[shorted?]
(gen-job shorted?
(ordered-map
:resource_class "large"
:docker [{:image "circleci/clojure:lein-2.9.8"}]
:working_directory "~/repo"
:environment {:LEIN_ROOT "true"}
:steps (gen-steps
shorted?
[:checkout
(pull-submodules)
{:restore_cache {:keys ["v1-dependencies-{{ checksum \"project.clj\" }}"
"v1-dependencies-"]}}
{:run ".circleci/script/deploy"}
{:save_cache {:paths ["~/.m2"]
:key "v1-dependencies-{{ checksum \"project.clj\" }}"}}]))))
(defn docker
[shorted?]
(gen-job
shorted?
(ordered-map
:machine {:image "ubuntu-2004:2024.05.1"}
:steps
(gen-steps
shorted?
[:checkout
(pull-submodules)
"setup-docker-buildx"
{:attach_workspace {:at "/tmp"}}
(run "Build uberjar" "script/uberjar")
{:run
{:name "Build Docker image"
:environment {:PLATFORMS "linux/amd64,linux/arm64"}
:command
"java -jar ./target/babashka-$(cat resources/BABASHKA_VERSION)-standalone.jar .circleci/script/docker.clj"}}]))))
(defn jvm
[shorted? graalvm-home]
(gen-job
shorted?
(ordered-map
:docker [{:image "circleci/clojure:openjdk-11-lein-2.9.8-bullseye"}]
:working_directory "~/repo"
:environment {:LEIN_ROOT "true"
:BABASHKA_PLATFORM "linux"
:GRAALVM_VERSION graalvm-version
:GRAALVM_HOME graalvm-home
:BABASHKA_TEST_ENV "jvm"
:BABASHKA_SHA (System/getenv "CIRCLE_SHA1")}
:resource_class "large"
:steps
(gen-steps
shorted?
[:checkout
(pull-submodules)
{:restore_cache {:keys ["v1-dependencies-{{ checksum \"project.clj\" }}-{{ checksum \"deps.edn\" }}"
"v1-dependencies-"]}}
(run "Install Clojure" "sudo script/install-clojure")
(run "Download GraalVM" "script/install-graalvm")
(run
"Run JVM tests"
"export BABASHKA_FEATURE_JDBC=true
export BABASHKA_FEATURE_POSTGRESQL=true
script/test\nscript/run_lib_tests")
(run
"Create uberjar"
"mkdir -p /tmp/release
script/uberjar
VERSION=$(cat resources/BABASHKA_VERSION)
jar=target/babashka-$VERSION-standalone.jar
cp $jar /tmp/release
export PATH=$GRAALVM_HOME/bin:$PATH
export JAVA_HOME=$GRAALVM_HOME
java -jar $jar script/reflection.clj
reflection=\"babashka-$VERSION-reflection.json\"
java -jar \"$jar\" --config .build/bb.edn --deps-root . release-artifact \"$jar\"
java -jar \"$jar\" --config .build/bb.edn --deps-root . release-artifact \"$reflection\"")
{:store_artifacts {:path "/tmp/release"
:destination "release"}}
{:save_cache {:paths ["~/.m2"]
:key "v1-dependencies-{{ checksum \"project.clj\" }}-{{ checksum \"deps.edn\" }}"}}]))))
(defn unix
[shorted? static? musl? arch executor-conf resource-class graalvm-home platform]
(let [env {:LEIN_ROOT "true"
:GRAALVM_VERSION graalvm-version
:GRAALVM_HOME graalvm-home
:BABASHKA_PLATFORM (if (= "mac" platform)
"macos"
platform)
:BABASHKA_TEST_ENV "native"
:BABASHKA_XMX "-J-Xmx6500m"
:BABASHKA_SHA (System/getenv "CIRCLE_SHA1")}
env (if (= "aarch64" arch)
(assoc env :BABASHKA_ARCH arch)
env)
env (if static?
(assoc env :BABASHKA_STATIC "true")
env)
env (if musl?
(assoc env :BABASHKA_MUSL "true")
env)
env (if (= "mac" platform)
(assoc env :MACOSX_DEPLOYMENT_TARGET 10.13)
env)
base-install-cmd "sudo apt-get update\nsudo apt-get -y install build-essential zlib1g-dev"
cache-key (format "%s-%s{{ checksum \"project.clj\" }}-{{ checksum \".circleci/config.yml\" }}"
platform
(if (= "aarch64" arch)
"aarch64-"
""))]
(gen-job shorted?
(merge
executor-conf
(ordered-map
:working_directory "~/repo"
:environment env
:resource_class resource-class
:steps (gen-steps shorted?
(filter some?
[:checkout
(when (contains? #{"linux" "linux-aarch64"} platform)
(run "Check max glibc version" "script/check_glibc.sh"))
{:attach_workspace {:at "/tmp"}}
(run "Pull Submodules" "git submodule init\ngit submodule update")
{:restore_cache
{:keys [cache-key]}}
(when (= "mac" platform)
(run "Install Rosetta" "sudo /usr/sbin/softwareupdate --install-rosetta --agree-to-license"))
(run "Install Clojure" "sudo script/install-clojure")
(when (= "mac" platform)
(run "Install Leiningen" "script/install-leiningen"))
(when (not= "mac" platform)
(run "Install native dev tools"
(if (and static? musl? (not= "aarch64" arch))
(str base-install-cmd "\nsudo -E script/setup-musl")
base-install-cmd)))
(run "Download GraalVM" "script/install-graalvm")
#_(run "Download iprof" "curl -sLO 'https://github.com/babashka/pgo-profiles/releases/download/2023.10.11/default.iprof'")
(run "Build binary" (if (= "aarch64" arch)
"script/uberjar\nscript/compile -H:PageSize=64K # --pgo=default.iprof"
"script/uberjar\nscript/compile # --pgo=default.iprof") "30m")
(run "Release" ".circleci/script/release")
{:persist_to_workspace {:root "/tmp"
:paths ["release"]}}
(run "Run tests" "script/test\nscript/run_lib_tests")
(run "Release + publish"
(str/join "\n" ["export BABASHKA_RELEASE=true"
".circleci/script/release"]))
{:save_cache
{:paths ["~/.m2" "~/graalvm"]
:key cache-key}}
{:store_artifacts {:path "/tmp/release"
:destination "release"}}
(run "Publish artifact link to Slack"
"./bb .circleci/script/publish_artifact.clj || true")])))))))
(defn make-config
[shorted?]
(let [docker-executor-conf {:docker [{:image "circleci/clojure:openjdk-11-lein-2.9.8-bullseye"}]}
machine-executor-conf {:machine {:image "ubuntu-2004:2024.05.1"}}
mac-executor-conf {:macos {:xcode "13.4.1"}}
linux-graalvm-home (str "/home/circleci/graalvm-" graalvm-version)
mac-graalvm-home (format "/Users/distiller/graalvm-%s/Contents/Home" graalvm-version)]
(ordered-map
:version 2.1
:commands
{:setup-docker-buildx
{:steps
[{:run
{:name "Create multi-platform capabale buildx builder"
:command
"docker run --privileged --rm tonistiigi/binfmt --install all\ndocker buildx create --name ci-builder --use"}}]}}
:jobs (ordered-map
:jvm (jvm shorted? linux-graalvm-home)
:linux (unix shorted? false false "amd64" docker-executor-conf "large" linux-graalvm-home "linux")
:linux-static
(unix shorted? true true "amd64" docker-executor-conf "large" linux-graalvm-home "linux")
:linux-aarch64-static
(unix shorted? true false "aarch64" machine-executor-conf "arm.large" linux-graalvm-home "linux")
:mac (unix shorted? false false "amd64" mac-executor-conf "macos.m1.medium.gen1" mac-graalvm-home "mac")
:deploy (deploy shorted?)
:docker (docker shorted?))
:workflows (ordered-map
:version 2
:ci {:jobs ["jvm"
"linux"
"linux-static"
"mac"
"linux-aarch64-static"
{:deploy {:filters {:branches {:only "master"}}
:requires ["jvm" "linux"]}}
{:docker {:filters {:branches {:only "master"}}
:requires ["linux" "linux-static" "linux-aarch64-static"]}}]}))))
(def skip-config
{:skip-if-only [#".*.md$"
#"^logo\/.*$"]})
(defn get-changes
[]
(-> (tasks/shell {:out :string} "git diff --name-only HEAD~1")
(:out)
(str/split-lines)))
(defn irrelevant-change?
[change regexes]
(some? (some #(re-matches % change) regexes)))
(defn relevant?
[change-set regexes]
(some? (some #(not (irrelevant-change? % regexes)) change-set)))
(defn main
[]
(let [{:keys [skip-if-only]} skip-config
changed-files (get-changes)
conf (make-config (not (relevant? changed-files skip-if-only)))]
(println (yaml/generate-string conf
:dumper-options
{:flow-style :block}))))
(when (= *file* (System/getProperty "babashka.file"))
(main))
(comment
(main)
(def regexes
[#".*.md$"
#".*.clj$" ; ignore clojure files
#"^logo\/.*$"])
(:out (tasks/shell {:out :string} "ls"))
(irrelevant-change? "src/file.png" regexes)
(re-matches #".*.clj$" "src/file.clj.dfff")
(re-matches #"^logo\/.*$" "logo/foo/bar.jpg")
(relevant? ["src/file.clj"] regexes))

View file

@ -1,6 +0,0 @@
#!/usr/bin/env bash
curl https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein > lein
sudo mkdir -p /usr/local/bin/
sudo mv lein /usr/local/bin/lein
sudo chmod a+x /usr/local/bin/lein

View file

@ -0,0 +1,45 @@
(require '[babashka.curl :as curl]
'[cheshire.core :refer [generate-string]]
'[clojure.java.io :as io]
'[clojure.string :as str])
(def channel "#babashka-circleci-builds")
#_(def channel "#_test")
(def babashka-version (str/trim (slurp (io/file "resources" "BABASHKA_VERSION"))))
(def slack-hook-url (System/getenv "SLACK_HOOK_URL"))
(defn slack! [text]
(when slack-hook-url
(let [json (generate-string {:username "borkdude"
:channel channel
:text text})]
(curl/post slack-hook-url {:headers {"content-type" "application/json"}
:body json}))))
(def platform
(str (System/getenv "BABASHKA_PLATFORM")
"-"
(or (System/getenv "BABASHKA_ARCH") "amd64")
(when (= "true" (System/getenv "BABASHKA_STATIC"))
"-static")))
(def release-text (format "[%s - %s@%s - %s]: https://%s-201467090-gh.circle-artifacts.com/0/release/babashka-%s-%s.tar.gz"
platform
(System/getenv "CIRCLE_BRANCH")
(System/getenv "CIRCLE_SHA1")
(slurp (io/file "/tmp/bb_size/size"))
(System/getenv "CIRCLE_BUILD_NUM")
babashka-version
platform
))
(slack! release-text)
#_#_(def binary-size-text
(format "[%s - %s@%s] binary size: %s"
platform
(System/getenv "CIRCLE_BRANCH")
(System/getenv "CIRCLE_SHA1")
(slurp (io/file "/tmp/bb_size/size"))))
(slack! binary-size-text)

View file

@ -3,16 +3,37 @@
rm -rf /tmp/release
mkdir -p /tmp/release
cp bb /tmp/release
# cp src-bash/bbk /tmp/release
VERSION=$(cat resources/BABASHKA_VERSION)
## release binary as tar.gz archive
arch=${BABASHKA_ARCH:-amd64}
if [ "$BABASHKA_STATIC" = "true" ]; then
arch="$arch-static"
fi
# because circle won't allow the same file to be saved/restored in the same workspace concurrently
cp metabom.jar "/tmp/release/$BABASHKA_PLATFORM-$arch-metabom.jar"
cd /tmp/release
mkdir -p /tmp/bb_size
./bb '(spit "/tmp/bb_size/size" (.length (io/file "bb")))'
## release binary as zip archive
archive="babashka-$VERSION-$BABASHKA_PLATFORM-$arch.tar.gz"
zip "babashka-$VERSION-$BABASHKA_PLATFORM-amd64.zip" bb # bbk
tar zcvf "$archive" bb # bbk
cd -
if [ "$BABASHKA_RELEASE" = "true" ]; then
./bb --config .build/bb.edn --deps-root . release-artifact "/tmp/release/$archive"
fi
## cleanup
cd /tmp/release
rm bb # bbk

42
.cirrus.yml Normal file
View file

@ -0,0 +1,42 @@
macos_instance:
image: ghcr.io/cirruslabs/macos-monterey-base:latest
task:
skip: "changesIncludeOnly('logo/*', '**.md')"
env:
LEIN_ROOT: "true"
GRAALVM_VERSION: "24"
GRAALVM_HOME: ${HOME}/graalvm-${GRAALVM_VERSION}/Contents/Home
BABASHKA_PLATFORM: macos # used in release script
BABASHKA_ARCH: aarch64
BABASHKA_TEST_ENV: native
BABASHKA_XMX: "-J-Xmx6500m"
GITHUB_TOKEN: ENCRYPTED[d6ff8cdc392157f211c754fa0763875434d1bfde0c00a05e48ba9470003a76c14c9213adb80623f81e13f2f0fa8fbd57]
script: |
git submodule init
git submodule update
sudo script/install-clojure
sudo script/install-leiningen
script/install-graalvm
export PATH=$GRAALVM_HOME/bin:$PATH
export JAVA_HOME=$GRAALVM_HOME
sudo /usr/sbin/softwareupdate --install-rosetta --agree-to-license
java -version
export BABASHKA_SHA=$(git rev-parse HEAD)
script/uberjar
# curl -sLO 'https://github.com/babashka/pgo-profiles/releases/download/2023.10.11/default.iprof'
script/compile # --pgo=default.iprof
# script/test
# script/run_lib_tests
VERSION=$(cat resources/BABASHKA_VERSION)
arch=${BABASHKA_ARCH:-amd64}
archive="babashka-$VERSION-$BABASHKA_PLATFORM-$arch.tar.gz"
tar zcvf "$archive" bb
./bb --config .build/bb.edn --deps-root . release-artifact "$archive" || true
binaries_artifacts:
path: "babashka-*.tar.gz"

View file

@ -0,0 +1 @@
{:lint-as {babashka.fs/with-temp-dir clojure.core/let}}

View file

@ -0,0 +1 @@
{:hooks {:macroexpand {sci.core/copy-ns sci.core/copy-ns}}}

View file

@ -0,0 +1,9 @@
(ns sci.core)
(defmacro copy-ns
([ns-sym sci-ns]
`(copy-ns ~ns-sym ~sci-ns nil))
([ns-sym sci-ns opts]
`[(quote ~ns-sym)
~sci-ns
(quote ~opts)]))

View file

@ -1,6 +1,9 @@
{:lint-as {me.raynes.conch/let-programs clojure.core/let
{:config-paths ["babashka/sci"]
:lint-as {me.raynes.conch/let-programs clojure.core/let
babashka.impl.File/gen-wrapper-fn clojure.core/def
babashka.impl.Pattern/gen-wrapper-fn clojure.core/def
babashka.impl.File/gen-wrapper-fn-2 clojure.core/def
babashka.impl.Pattern/gen-wrapper-fn-2 clojure.core/def
babashka.impl.Pattern/gen-constants clojure.core/declare}}
babashka.impl.Pattern/gen-constants clojure.core/declare}
:linters {:unsorted-required-namespaces {:level :warning}}
:hooks {:analyze-call {clojure.core/requiring-resolve hooks.mine/req-resolve}}}

View file

@ -0,0 +1,5 @@
{:lint-as
{rewrite-clj.zip/subedit-> clojure.core/->
rewrite-clj.zip/subedit->> clojure.core/->>
rewrite-clj.zip/edit-> clojure.core/->
rewrite-clj.zip/edit->> clojure.core/->>}}

2
.dir-locals.el Normal file
View file

@ -0,0 +1,2 @@
((clojure-mode
(cider-clojure-cli-aliases . "test")))

19
.dockerignore Normal file
View file

@ -0,0 +1,19 @@
.circleci/
.git/
.clj-kondo/
.github/
doc/
examples/
logo/
test-resources/
test/
.gitignore
.carve_ignore
.gitmodules
appveyor.yml
CHANGES.md
Dockerfile
LICENSE
README.md
.cpcache/
target/

5
.github/FUNDING.yml vendored
View file

@ -1,8 +1,7 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: borkdude
open_collective: # Replace with a single Open Collective username
github: borkdude # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
open_collective: babashka
ko_fi: borkdude
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry

View file

@ -7,9 +7,12 @@ assignees: ''
---
[ To keep development of this project going, consider sponsoring. If you are
already a sponsor, thank you! ]
**version**
[ Please specify which version of babashka you're using. You can find this with `babashka --version`. The documentation on the master branch may be ahead of the most released version. You can check the docs for your version by going to cljdoc. ]
[ Please specify which version of babashka you're using. You can find this with `babashka --version`. The documentation on the master branch may be ahead of the most released version. ]
**platform**

View file

@ -7,6 +7,9 @@ assignees: ''
---
[ To keep development of this project going, consider sponsoring. If you are
already a sponsor, thank you! ]
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

9
.github/pull_request_template.md vendored Normal file
View file

@ -0,0 +1,9 @@
Please answer the following questions and leave the below in as part of your PR.
- [ ] I have read the [developer documentation](https://github.com/babashka/babashka/blob/master/doc/dev.md).
- [ ] This PR corresponds to an [issue with a clear problem statement](https://github.com/babashka/babashka/blob/master/doc/dev.md#start-with-an-issue-before-writing-code).
- [ ] This PR contains a [test](https://github.com/babashka/babashka/blob/master/doc/dev.md#tests) to prevent against future regressions
- [ ] I have updated the [CHANGELOG.md](https://github.com/babashka/babashka/blob/master/CHANGELOG.md) file with a description of the addressed issue.

8
.github/script/deploy vendored Executable file
View file

@ -0,0 +1,8 @@
#!/usr/bin/env bash
if [ -z "$GITHUB_HEAD_REF" ] && [ "${GITHUB_REF##*/}" = "master" ]
then
lein deploy clojars
fi
exit 0;

View file

@ -1,10 +1,13 @@
#!/usr/bin/env bash
image_name="borkdude/clj-kondo"
image_tag=$(cat resources/CLJ_KONDO_VERSION)
set -eo pipefail
image_name="babashka/babashka"
image_tag=$(cat resources/BABASHKA_VERSION)
latest_tag="latest"
if [[ $image_tag =~ SNAPSHOT$ ]]; then
if [[ $image_tag =~ SNAPSHOT$ ]]
then
echo "This is a snapshot version"
snapshot="true"
else
@ -12,19 +15,31 @@ else
snapshot="false"
fi
if [ -z "$CIRCLE_PULL_REQUEST" ] && [ "$CIRCLE_BRANCH" = "master" ]; then
if [ -z "$GITHUB_HEAD_REF" ] && [ "${GITHUB_REF##*/}" = "master" ]
then
echo "Building Docker image $image_name:$image_tag"
echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USER" --password-stdin
docker build -t "$image_name" .
mv /tmp/release/bb .
docker build -t "$image_name" -f Dockerfile.ci .
docker tag "$image_name:$latest_tag" "$image_name:$image_tag"
if [[ $snapshot == "false" ]]; then
mv /tmp/release-static/bb .
docker build -t "$image_name:alpine" -f Dockerfile.alpine .
docker tag "$image_name:alpine" "$image_name:$image_tag-alpine"
fi
# we only update latest when it's not a SNAPSHOT version
if [ "false" = "$snapshot" ]; then
echo "Pushing image $image_name:$latest_tag"
docker push "$image_name:$latest_tag"
echo "Pushing image $image_name:alpine"
docker push "$image_name:alpine"
fi
# we update the version tag, even if it's a SNAPSHOT version
echo "Pushing image $image_name:$image_tag"
docker push "$image_name:$image_tag"
if [[ $snapshot == "false" ]]; then
docker push "$image_name:$image_tag-alpine"
fi
else
echo "Not publishing Docker image"
fi

99
.github/workflows/build-windows.yml vendored Normal file
View file

@ -0,0 +1,99 @@
name: build
on:
push:
paths-ignore:
- "**.md"
- "logo/**"
pull_request:
paths-ignore:
- "**.md"
- "logo/**"
# TODO: Add deploy if needed
jobs:
native:
if: "!contains(github.event.head_commit.message, 'skip ci')"
strategy:
matrix:
include:
- os: windows-2022
name: windows
static: false
runs-on: ${{ matrix.os }}
env:
LEIN_ROOT: "true"
GRAALVM_VERSION: "24"
BABASHKA_PLATFORM: ${{ matrix.name }} # used in release script
BABASHKA_TEST_ENV: native
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BABASHKA_SHA: ${{ github.sha }}
steps:
- name: Git checkout
uses: actions/checkout@v2
with:
fetch-depth: 1
submodules: 'true'
- name: Cache deps
uses: actions/cache@v4
id: cache-deps
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('project.clj') }}
restore-keys: ${{ runner.os }}-maven-
- name: Setup GraalVM
if: "matrix.static == false"
uses: graalvm/setup-graalvm@v1.3.3
with:
java-version: '24'
distribution: 'graalvm'
components: 'native-image'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install clojure tools
uses: DeLaGuardo/setup-clojure@13.2
with:
cli: latest
# lein: latest -- skipped because this uses some PS bullshit
- name: Babashka version
id: babashka-version
shell: bash
run: |
BABASHKA_VERSION=$(cat resources/BABASHKA_VERSION)
echo "##[set-output name=version;]${BABASHKA_VERSION}"
- name: Build
shell: cmd
run: |
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein.bat', 'lein.bat')"
call lein self-install
set GRAALVM_HOME=%JAVA_HOME%
call script/uberjar.bat
call script/compile.bat
echo Creating zip archive
set zip=babashka-%BABASHKA_VERSION%-windows-amd64.zip
jar -cMf %zip% bb.exe
bb --config .build/bb.edn --deps-root . release-artifact %zip%
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
path: bb.exe
name: babashka-${{ steps.babashka-version.outputs.version }}-${{ matrix.name }}-amd64
- name: Test binary and libs
shell: cmd
run: |
set BABASHKA_CLASSPATH=
set BABASHKA_TEST_ENV=native
call script/test.bat :windows
call script/run_lib_tests.bat

242
.github/workflows/build.yml vendored Normal file
View file

@ -0,0 +1,242 @@
name: build
on:
push:
paths-ignore:
- "**.md"
- "logo/**"
branches:
- master
pull_request:
paths-ignore:
- "**.md"
- "logo/**"
branches:
- master
# TODO: Add deploy if needed
jobs:
jvm:
if: ${{ false }} # Disabled
# if: "!contains(github.event.head_commit.message, 'skip ci')"
runs-on: ubuntu-latest
env:
LEIN_ROOT: "true"
BABASHKA_PLATFORM: linux # could be used in jar name
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BABASHKA_SHA: ${{ github.sha }}
steps:
- name: Git checkout
uses: actions/checkout@v2
with:
fetch-depth: 1
submodules: 'true'
- name: Cache deps
uses: actions/cache@v4
id: cache-deps
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('project.clj') }}
restore-keys: ${{ runner.os }}-maven-
- name: Prepare java
uses: actions/setup-java@v2
with:
distribution: 'adopt-hotspot'
java-version: '19'
- name: Install clojure tools
uses: DeLaGuardo/setup-clojure@5.0
with:
cli: 1.10.3.1040
lein: 2.9.8
- name: Run tests
env:
BABASHKA_FEATURE_JDBC: "true"
BABASHKA_FEATURE_POSTGRESQL: "true"
run: |
script/test
script/run_lib_tests
- name: Build uberjar
run: |
mkdir -p /tmp/release
script/uberjar
VERSION=$(cat resources/BABASHKA_VERSION)
jar=target/babashka-$VERSION-standalone.jar
cp $jar /tmp/release
java -jar $jar script/reflection.clj
reflection="babashka-$VERSION-reflection.json"
java -jar "$jar" --config .build/bb.edn --deps-root . release-artifact "$jar"
java -jar "$jar" --config .build/bb.edn --deps-root . release-artifact "$reflection"
- name: Babashka version
id: babashka-version
run: |
BABASHKA_VERSION=$(cat resources/BABASHKA_VERSION)
echo "##[set-output name=version;]${BABASHKA_VERSION}"
- uses: actions/upload-artifact@v4
with:
name: babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar
path: target/babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar
native:
if: "!contains(github.event.head_commit.message, 'skip ci')"
strategy:
matrix:
include:
- os: macos-13
name: macos
static: false
#- os: ubuntu-latest
# name: linux
# static: false
#- os: ubuntu-latest
# name: linux
# static: true
runs-on: ${{ matrix.os }}
env:
LEIN_ROOT: "true"
GRAALVM_VERSION: "24"
BABASHKA_PLATFORM: ${{ matrix.name }} # used in release script
BABASHKA_TEST_ENV: native
BABASHKA_XMX: "-J-Xmx6500m"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BABASHKA_SHA: ${{ github.sha }}
steps:
- name: Git checkout
uses: actions/checkout@v2
with:
fetch-depth: 1
submodules: 'true'
- name: Cache deps
uses: actions/cache@v4
id: cache-deps
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('project.clj') }}
restore-keys: ${{ runner.os }}-maven-
- name: Setup GraalVM
if: "matrix.static == false"
uses: graalvm/setup-graalvm@v1
with:
java-version: '24'
distribution: 'graalvm'
components: 'native-image'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup GraalVM+musl
if: "matrix.static == true"
uses: graalvm/setup-graalvm@v1
with:
version: '24'
distribution: 'graalvm'
components: 'native-image'
native-image-musl: true
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install clojure tools
uses: DeLaGuardo/setup-clojure@5.0
with:
cli: 1.10.3.1040
lein: 2.9.8
- name: Install native dev tools
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get -y install build-essential zlib1g-dev
- name: Babashka version
id: babashka-version
run: |
BABASHKA_VERSION=$(cat resources/BABASHKA_VERSION)
echo "##[set-output name=version;]${BABASHKA_VERSION}"
- name: Build uberjar
run: script/uberjar
- name: Build native image
if: "matrix.static == false"
run: script/compile
- name: Build static native image
if: "matrix.static == true"
env:
BABASHKA_STATIC: "true"
BABASHKA_MUSL: "true"
run: script/compile
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
path: bb
name: babashka-${{ steps.babashka-version.outputs.version }}-${{ matrix.name }}-amd64
- name: Upload static artifact
if: "matrix.static == true"
uses: actions/upload-artifact@v4
with:
path: bb
name: babashka-${{ steps.babashka-version.outputs.version }}-${{ matrix.name }}-static-amd64
- name: Test binary and libs
run: |
script/test
script/run_lib_tests
- name: Release
run: .circleci/script/release
docker:
if: ${{ false }} # Disabled
# if: "!contains(github.event.head_commit.message, 'skip ci') && github.event_name == 'push' && github.ref == 'refs/heads/master'"
needs:
- native
runs-on: ubuntu-latest
steps:
- name: Git checkout
uses: actions/checkout@v2
with:
fetch-depth: 1
submodules: 'true'
- name: Babashka version
id: babashka-version
run: |
BABASHKA_VERSION=$(cat resources/BABASHKA_VERSION)
echo "##[set-output name=version;]${BABASHKA_VERSION}"
- name: Make release dir
run: mkdir -p /tmp/release
- name: Download linux binary
uses: actions/download-artifact@v4.1.7
with:
name: babashka-${{ steps.babashka-version.outputs.version }}-linux-amd64.zip
path: /tmp/release
- name: Download static linux binary
uses: actions/download-artifact@v4.1.7
with:
name: babashka-${{ steps.babashka-version.outputs.version }}-linux-static-amd64.zip
path: /tmp/release-static
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
- name: Build uberjar
run: script/uberjar
- name: Docker build
env:
DOCKERHUB_USER: "${{ secrets.DOCKERHUB_USER }}"
DOCKERHUB_PASS: "${{ secrets.DOCKERHUB_PASS }}"
PLATFORMS: linux/amd64,linux/arm64
run: java -jar ./target/babashka-$(cat resources/BABASHKA_VERSION)-standalone.jar .circleci/script/docker.clj

25
.gitignore vendored
View file

@ -14,5 +14,28 @@ pom.xml.asc
.clj-kondo/.cache
!java/src/babashka/impl/LockFix.class
!test-resources/babashka/src_for_classpath_test/foo.jar
!test-resources/pom.xml
.cpcache
deps.edn
*reflect-config.json
/tmp
/reports
*.dylib
*.log
org_babashka*.h
/babashka-0.1.4-SNAPSHOT-windows-amd64.zip
/bb.exe
/bb.exp
/bb.lib
/bb.pdb
/bb.stripped.pdb
/.calva
!test-resources/divide_by_zero.jar
.envrc
.lsp
bb.build_artifacts.txt
target
.nrepl-port
.DS_Store
.portal
default.iprof
scratch.clj

24
.gitmodules vendored
View file

@ -2,3 +2,27 @@
path = sci
url = https://github.com/borkdude/sci
branch = master
[submodule "babashka.curl"]
path = babashka.curl
url = https://github.com/babashka/babashka.curl
[submodule "babashka.nrepl"]
path = babashka.nrepl
url = https://github.com/babashka/babashka.nrepl
[submodule "depstar"]
path = depstar
url = https://github.com/babashka/depstar
[submodule "process"]
path = process
url = https://github.com/babashka/process
[submodule "pods"]
path = pods
url = https://github.com/babashka/pods
[submodule "deps.clj"]
path = deps.clj
url = https://github.com/borkdude/deps.clj
[submodule "fs"]
path = fs
url = https://github.com/babashka/fs
[submodule "babashka.core"]
path = babashka.core
url = https://github.com/babashka/babashka.core.git

1655
CHANGELOG.md Normal file

File diff suppressed because it is too large Load diff

1
CONTRIBUTING.md Normal file
View file

@ -0,0 +1 @@
See [doc/dev.md](doc/dev.md).

81
Dockerfile Normal file
View file

@ -0,0 +1,81 @@
FROM clojure:openjdk-11-lein-2.9.6-bullseye AS BASE
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update
RUN apt install --no-install-recommends -yy build-essential zlib1g-dev
WORKDIR "/opt"
ENV GRAALVM_VERSION="24"
ARG TARGETARCH
# Do not set those directly, use TARGETARCH instead
ENV BABASHKA_ARCH=
ENV GRAALVM_ARCH=
RUN if [ "${TARGETARCH}" = "" ] || [ "${TARGETARCH}" = "amd64" ]; then \
export GRAALVM_ARCH=x64; export BABASHKA_ARCH=x86_64; \
elif [ "${TARGETARCH}" = "arm64" ]; then \
export GRAALVM_ARCH=aarch64; \
fi && \
echo "Installing GraalVM for ${GRAALVM_ARCH}" && \
curl -sLO https://download.oracle.com/graalvm/${GRAALVM_VERSION}/archive/graalvm-jdk-${GRAALVM_VERSION}_linux-${GRAALVM_ARCH}_bin.tar.gz && \
mkdir "graalvm-$GRAALVM_VERSION" && \
tar -xzf graalvm-jdk-${GRAALVM_VERSION}_linux-${GRAALVM_ARCH}_bin.tar.gz -C graalvm-$GRAALVM_VERSION --strip-components 1
ARG BABASHKA_XMX="-J-Xmx4500m"
ENV GRAALVM_HOME="/opt/graalvm-$GRAALVM_VERSION"
ENV JAVA_HOME="$GRAALVM_HOME/bin"
ENV PATH="$JAVA_HOME:$PATH"
ENV BABASHKA_XMX=$BABASHKA_XMX
# Make it possible to use Docker to build bb with a particular set of features
# by setting them at build time via `docker build --build-arg ARG_NAME=true ...`
ARG BABASHKA_LEAN=
ARG BABASHKA_MUSL=
ARG BABASHKA_FEATURE_CSV=
ARG BABASHKA_FEATURE_JAVA_NET_HTTP=
ARG BABASHKA_FEATURE_JAVA_NIO=
ARG BABASHKA_FEATURE_JAVA_TIME=
ARG BABASHKA_FEATURE_TRANSIT=
ARG BABASHKA_FEATURE_XML=
ARG BABASHKA_FEATURE_YAML=
ARG BABASHKA_FEATURE_HTTPKIT_CLIENT=
ARG BABASHKA_FEATURE_HTTPKIT_SERVER=
ARG BABASHKA_FEATURE_JDBC=
ARG BABASHKA_FEATURE_POSTGRESQL=
ARG BABASHKA_FEATURE_HSQLDB=
ARG BABASHKA_FEATURE_ORACLEDB=
ARG BABASHKA_FEATURE_DATASCRIPT=
ARG BABASHKA_FEATURE_LANTERNA=
ARG BABASHKA_STATIC=
ENV BABASHKA_LEAN=$BABASHKA_LEAN
ENV BABASHKA_FEATURE_CSV=$BABASHKA_FEATURE_CSV
ENV BABASHKA_FEATURE_JAVA_NET_HTTP=$BABASHKA_FEATURE_JAVA_NET_HTTP
ENV BABASHKA_FEATURE_JAVA_NIO=$BABASHKA_FEATURE_JAVA_NIO
ENV BABASHKA_FEATURE_JAVA_TIME=$BABASHKA_FEATURE_JAVA_TIME
ENV BABASHKA_FEATURE_TRANSIT=$BABASHKA_FEATURE_TRANSIT
ENV BABASHKA_FEATURE_XML=$BABASHKA_FEATURE_XML
ENV BABASHKA_FEATURE_YAML=$BABASHKA_FEATURE_YAML
ENV BABASHKA_FEATURE_HTTPKIT_CLIENT=$BABASHKA_FEATURE_HTTPKIT_CLIENT
ENV BABASHKA_FEATURE_HTTPKIT_SERVER=$BABASHKA_FEATURE_HTTPKIT_SERVER
ENV BABASHKA_FEATURE_JDBC=$BABASHKA_FEATURE_JDBC
ENV BABASHKA_FEATURE_POSTGRESQL=$BABASHKA_FEATURE_POSTGRESQL
ENV BABASHKA_FEATURE_HSQLDB=$BABASHKA_FEATURE_HSQLDB
ENV BABASHKA_FEATURE_ORACLEDB=$BABASHKA_FEATURE_ORACLEDB
ENV BABASHKA_FEATURE_DATASCRIPT=$BABASHKA_FEATURE_DATASCRIPT
ENV BABASHKA_FEATURE_LANTERNA=$BABASHKA_FEATURE_LANTERNA
ENV BABASHKA_STATIC=$BABASHKA_STATIC
ENV BABASHKA_MUSL=$BABASHKA_MUSL
COPY . .
RUN ./script/uberjar
RUN ./script/setup-musl
RUN ./script/compile
FROM ubuntu:latest
RUN apt-get update && apt-get install -y curl \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p /usr/local/bin
COPY --from=BASE /opt/target/metabom.jar /opt/babashka-metabom.jar
COPY --from=BASE /opt/bb /usr/local/bin/bb
CMD ["bb"]

35
Dockerfile.alpine Normal file
View file

@ -0,0 +1,35 @@
FROM alpine:3 AS tester
COPY bb /bin/bb
RUN chmod +x /bin/bb
# TODO: See https://github.com/sgerrand/alpine-pkg-glibc/issues/185 and remove the `--force-overwrite`s when resolved.
RUN apk --no-cache add curl ca-certificates tar && \
curl -Ls https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.28-r0/glibc-2.28-r0.apk > /tmp/glibc-2.28-r0.apk && \
apk add --allow-untrusted --force-overwrite /tmp/glibc-2.28-r0.apk
RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf
# TODO: Run actual native tests when they are ported
RUN curl --version
# RUN bb -e '(prn (java.io.File/createTempFile "babashka.curl" ".headers"))'
# RUN bb -e '(spit (java.io.File/createTempFile "babashka.curl" ".headers") "hello")'
# RUN bb -e "(curl/get \"https://clojure.org\")" # cURL http test
RUN bb -e "(require '[org.httpkit.client :as http]) (when-let [error (:error @(http/get \"https://clojure.org\"))] (throw error))" # JVM http test
RUN bb -e "(.length \"Hello, Babashka\")" # Java interop test
RUN bb -e "(require '[babashka.pods :as pods]) (pods/load-pod 'org.babashka/go-sqlite3 \"0.0.1\") (require '[pod.babashka.go-sqlite3 :as sqlite]) (sqlite/execute! \"/tmp/foo.db\" [\"SELECT 1 + 1\"])" # Pod test
FROM alpine:3
RUN apk --no-cache add curl ca-certificates tar && \
curl -Ls https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.28-r0/glibc-2.28-r0.apk > /tmp/glibc-2.28-r0.apk && \
apk add --allow-untrusted --force-overwrite /tmp/glibc-2.28-r0.apk && rm /tmp/glibc-2.28-r0.apk
RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf
COPY metabom.jar /opt/babashka-metabom.jar
COPY --from=tester /bin/bb /bin/bb
CMD ["bb"]

16
Dockerfile.ci Normal file
View file

@ -0,0 +1,16 @@
FROM ubuntu:latest
RUN apt-get update \
&& apt-get install -y curl \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p /usr/local/bin
ARG TARGETARCH
ARG TARGETOS
COPY metabom.jar /opt/babashka-metabom.jar
COPY ${TARGETOS}/${TARGETARCH}/bb /usr/local/bin/bb
RUN chmod +x /usr/local/bin/bb
CMD ["bb"]

897
README.md

File diff suppressed because it is too large Load diff

92
appveyor.yml Normal file
View file

@ -0,0 +1,92 @@
---
version: "v-{build}"
image: Visual Studio 2022
clone_folder: C:\projects\babashka
environment:
GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-jdk-24+36.1
JAVA_HOME: C:\projects\babashka\graalvm\graalvm-jdk-24+36.1
BABASHKA_XMX: "-J-Xmx5g"
skip_commits:
files:
- "logo/*"
- "**/*.md"
cache:
- C:\ProgramData\chocolatey\lib -> project.clj, appveyor.yml
- '%USERPROFILE%\.m2 -> project.clj'
- 'graalvm -> appveyor.yml'
clone_script:
- cmd: git config --global core.autocrlf true
- cmd: git config --global core.symlinks true
- ps: >-
if(-not $env:APPVEYOR_PULL_REQUEST_NUMBER) {
git clone -q --branch=$env:APPVEYOR_REPO_BRANCH https://github.com/$env:APPVEYOR_REPO_NAME.git $env:APPVEYOR_BUILD_FOLDER
cd $env:APPVEYOR_BUILD_FOLDER
git checkout -qf $env:APPVEYOR_REPO_COMMIT
} else {
git clone -q https://github.com/$env:APPVEYOR_REPO_NAME.git $env:APPVEYOR_BUILD_FOLDER
cd $env:APPVEYOR_BUILD_FOLDER
git fetch -q origin +refs/pull/$env:APPVEYOR_PULL_REQUEST_NUMBER/merge:
git checkout -qf FETCH_HEAD
}
- cmd: git submodule update --init --recursive
- cmd: git reset --hard
build_script:
# TODO: Extract the zip by removing the top level folder to remove the hardcoded path for GRAALVM_HOME
- cmd: >-
powershell -Command "if (Test-Path('graalvm')) { return } else { (New-Object Net.WebClient).DownloadFile('https://download.oracle.com/graalvm/24/archive/graalvm-jdk-24_windows-x64_bin.zip', 'graalvm.zip') }"
powershell -Command "if (Test-Path('graalvm')) { return } else { Expand-Archive graalvm.zip graalvm }"
- cmd: >-
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein.bat', 'lein.bat')"
call lein self-install
#- cmd: >-
# set BABASHKA_TEST_ENV=jvm
# call script/test.bat
# see https://github.com/quarkusio/quarkus/pull/7663
- cmd: >-
set BABASHKA_SHA=%APPVEYOR_REPO_COMMIT%
call script/uberjar.bat
call script/compile.bat
echo Creating zip archive
set zip=babashka-%BABASHKA_VERSION%-windows-amd64.zip
jar -cMf %zip% bb.exe
bb --config .build/bb.edn --deps-root . release-artifact %zip%
before_test:
- cmd: >-
set BABASHKA_CLASSPATH=
set BABASHKA_TEST_ENV=native
test_script:
- cmd: >-
call script/test.bat :windows
call script/run_lib_tests.bat
artifacts:
- path: babashka-*-windows-amd64.zip
name: babashka

1
babashka.core Submodule

@ -0,0 +1 @@
Subproject commit 52a6037bd4b632bffffb04394fb4efd0cdab6b1e

1
babashka.curl Submodule

@ -0,0 +1 @@
Subproject commit e936acd40544eb637b6041c7e89454b21eb7ee34

1
babashka.nrepl Submodule

@ -0,0 +1 @@
Subproject commit edd3d613bfb9bf3adabfd0bda5c3f5c6ee85ec20

1
deps.clj Submodule

@ -0,0 +1 @@
Subproject commit 976cf7b0e54901ada3f7e83f12a4c0aed039adc9

198
deps.edn Normal file
View file

@ -0,0 +1,198 @@
{:paths ["src" "feature-xml"
"feature-yaml" "feature-csv" "feature-transit"
"feature-java-time" "feature-java-nio"
"feature-httpkit-client" "feature-httpkit-server"
"feature-lanterna"
"feature-core-match"
"feature-hiccup"
"feature-test-check"
"feature-spec-alpha"
"feature-selmer"
"feature-logging"
"feature-priority-map"
"feature-rrb-vector"
"feature-jdbc"
"pods/src"
"babashka.nrepl/src"
"depstar/src" "process/src"
"deps.clj/src" "deps.clj/resources"
"resources" "sci/resources"
"impl-java/src"],
:deps {org.clojure/clojure {:mvn/version "1.12.0"},
org.babashka/sci {:local/root "sci"}
org.babashka/babashka.impl.java {:mvn/version "0.1.10"}
org.babashka/sci.impl.types {:mvn/version "0.0.2"}
babashka/babashka.curl {:local/root "babashka.curl"}
babashka/fs {:local/root "fs"}
babashka/babashka.core {:local/root "babashka.core"}
org.clojure/core.async {:mvn/version "1.8.741"},
org.clojure/tools.cli {:mvn/version "1.0.214"},
org.clojure/data.csv {:mvn/version "1.0.0"},
cheshire/cheshire {:mvn/version "6.0.0"}
org.clojure/data.xml {:mvn/version "0.2.0-alpha8"}
clj-commons/clj-yaml {:mvn/version "1.0.29"}
com.cognitect/transit-clj {:mvn/version "1.0.333"}
org.clojure/test.check {:mvn/version "1.1.1"}
nrepl/bencode {:mvn/version "1.2.0"}
seancorfield/next.jdbc {:mvn/version "1.1.610"}
org.postgresql/postgresql {:mvn/version "42.2.18"}
org.hsqldb/hsqldb {:mvn/version "2.5.1"}
datascript/datascript {:mvn/version "1.0.1"}
http-kit/http-kit {:mvn/version "2.8.0-RC1"}
babashka/clojure-lanterna {:mvn/version "0.9.8-SNAPSHOT"}
org.clojure/core.match {:mvn/version "1.0.0"}
hiccup/hiccup {:mvn/version "2.0.0-RC1"}
rewrite-clj/rewrite-clj {:mvn/version "1.1.49"}
selmer/selmer {:mvn/version "1.12.59"}
com.taoensso/timbre {:mvn/version "6.6.0"}
org.clojure/tools.logging {:mvn/version "1.1.0"}
org.clojure/data.priority-map {:mvn/version "1.1.0"}
insn/insn {:mvn/version "0.5.2"}
org.clojure/core.rrb-vector {:mvn/version "0.1.2"}
org.babashka/cli {:mvn/version "0.8.65"}
org.babashka/http-client {:mvn/version "0.4.22"}
org.flatland/ordered {:mvn/version "1.15.12"}
org.jsoup/jsoup {:mvn/version "1.20.1"}}
:aliases {:babashka/dev
{:main-opts ["-m" "babashka.main"]}
:profile
{:extra-deps
{com.clojure-goes-fast/clj-async-profiler {:mvn/version "0.5.0"}}
:extra-paths ["test"]
:jvm-opts ["-Djdk.attach.allowAttachSelf"
"-Dclojure.compiler.direct-linking=true"]
:main-opts ["-m" "babashka.profile"]}
:lib-tests
{:extra-paths ["process/src" "process/test" "test-resources/lib_tests"]
:extra-deps {org.clj-commons/clj-http-lite {:mvn/version "0.4.392"}
#_#_org.babashka/spec.alpha {:git/url "https://github.com/babashka/spec.alpha"
:sha "0dec1f88cbde74a0470b454396f09a03adb4ae39"}
lambdaisland/regal {:mvn/version "0.0.143"}
cprop/cprop {:mvn/version "0.1.16"}
comb/comb {:mvn/version "0.1.1"}
mvxcvi/arrangement {:mvn/version "2.0.0"}
org.clojure/data.zip {:mvn/version "1.0.0"}
clojure-csv/clojure-csv {:mvn/version "2.0.2"}
org.clojure/math.combinatorics {:mvn/version "0.1.6"}
doric/doric {:mvn/version "0.9.0"}
henryw374/cljc.java-time
{:git/url "https://github.com/henryw374/cljc.java-time.git"
:sha "e3d184b78e933322b3fcaa6ca66cbb8f42a6b35c"}
camel-snake-kebab/camel-snake-kebab {:mvn/version "0.4.2"}
aero/aero {:mvn/version "1.1.6"}
org.clojure/data.generators {:mvn/version "1.0.0"}
honeysql/honeysql {:mvn/version "1.0.461"}
com.github.seancorfield/honeysql {:mvn/version "2.2.840"}
minimallist/minimallist {:mvn/version "0.0.10"}
circleci/bond {:mvn/version "0.6.0"}
version-clj/version-clj {:mvn/version "2.0.2"}
gaka/gaka {:mvn/version "0.3.0"}
failjure/failjure {:mvn/version "2.2.0"}
io.helins/binf {:mvn/version "1.1.0-beta0"}
rm-hull/jasentaa {:mvn/version "0.2.5"}
slingshot/slingshot {:mvn/version "0.12.2"}
io.replikativ/hasch {:mvn/version "0.3.7"}
com.grammarly/omniconf {:mvn/version "0.4.3"}
crispin/crispin {:mvn/version "0.3.8"}
org.clojure/data.json {:mvn/version "2.4.0"}
clj-commons/multigrep {:mvn/version "0.5.0"}
amperity/vault-clj {:mvn/version "1.0.4"}
java-http-clj/java-http-clj {:mvn/version "0.4.3"}
com.stuartsierra/component {:mvn/version "1.0.0"}
org.clojars.askonomm/ruuter {:mvn/version "1.2.2"}
org.clj-commons/digest {:mvn/version "1.4.100"}
hato/hato {:mvn/version "0.8.2"}
better-cond/better-cond {:mvn/version "2.1.1"}
org.clojure/core.specs.alpha {:mvn/version "0.2.62"}
reifyhealth/specmonstah {:git/url "https://github.com/reifyhealth/specmonstah", :sha "a2b357009a3aa99a0c2d2361f3bbcd0b0e36505e"}
exoscale/coax {:mvn/version "1.0.0-alpha14"}
orchestra/orchestra {:mvn/version "2021.01.01-1"}
expound/expound {:mvn/version "0.8.10"}
integrant/integrant {:git/url "https://github.com/weavejester/integrant", :git/sha "a9fd7c02bd7201f36344b47142badc3c3ef22f88"}
com.stuartsierra/dependency {:mvn/version "1.0.0"}
listora/again {:mvn/version "1.0.0"}
org.clojure/tools.gitlibs {:mvn/version "2.4.172"}
environ/environ {:mvn/version "1.2.0"}
table/table {:git/url "https://github.com/cldwalker/table", :sha "f6293c5f3dac1dd6f525a80fc80930f8ccdf16b7"}
markdown-clj/markdown-clj {:mvn/version "1.10.8"}
org.clojure/tools.namespace {:git/sha "daf82a10e70182aea4c0716a48f3922163441b32",
:git/url "https://github.com/clojure/tools.namespace"}
medley/medley {:mvn/version "1.3.0"}
io.github.cognitect-labs/test-runner {:git/url "https://github.com/cognitect-labs/test-runner",
:git/sha "7284cda41fb9edc0f3bc6b6185cfb7138fc8a023"}
borkdude/missing.test.assertions {:git/url "https://github.com/borkdude/missing.test.assertions", :sha "603cb01bee72fb17addacc53c34c85612684ad70"}
dev.nubank/docopt {:mvn/version "0.6.1-fix7"}
testdoc/testdoc {:mvn/version "1.4.1"}
org.clojars.lispyclouds/contajners {:mvn/version "0.0.6"}
borkdude/rewrite-edn {:mvn/version "0.1.0"}
clojure-term-colors/clojure-term-colors {:mvn/version "0.1.0"}
io.aviso/pretty {:mvn/version "1.1.1"}
progrock/progrock {:mvn/version "0.1.2"}
djblue/portal {:mvn/version "0.19.0"}
com.wsscode/cljc-misc {:mvn/version "2021.10.16"}
edn-query-language/eql {:mvn/version "2021.07.18"}
meta-merge/meta-merge {:mvn/version "1.0.0"}
com.exoscale/lingo {:mvn/version "1.0.0-alpha14"}
io.github.swirrl/dogstatsd {:mvn/version "0.1.39"}
org.clojure/algo.monads {:mvn/version "0.1.6"}
io.lambdaforge/datalog-parser {:mvn/version "0.1.9"}
clj-stacktrace/clj-stacktrace {:mvn/version "0.2.8"}
clojure-msgpack/clojure-msgpack {:mvn/version "1.2.1"}
cli-matic/cli-matic {:git/url "https://github.com/l3nz/cli-matic.git", :git/sha "9cd53ba7336363e3d06650dbad413b6f8b06e471"}
aysylu/loom {:mvn/version "1.0.2"}
com.layerware/hugsql-core {:mvn/version "0.5.3"}
com.github.seancorfield/expectations {:mvn/version "2.0.157"}
com.rpl/specter {:mvn/version "1.1.4"}
com.github.askonomm/clarktown {:mvn/version "1.1.2"}
org.clojure/math.numeric-tower {:git/tag "math.numeric-tower-0.0.5", :git/sha "12eb9c5", :git/url "https://github.com/clojure/math.numeric-tower"}
prismatic/schema {:git/url "https://github.com/plumatic/schema"
:git/sha "6846dc7c3a9df5bfd718f68f183c683ce0f621ff"
:git/tag "schema-1.3.0"}
metosin/malli {:git/url "https://github.com/metosin/malli"
:git/sha "588147ef49b2e41c7d12a8aa994b39c1c6fedd99"
:git/tag "0.8.9"}
meander/epsilon {:git/url "https://github.com/noprompt/meander"
:git/sha "55f5ce70e6ef717e95c58260f6bc725d70c0cb6d"}
cc.qbits/auspex {:git/url "https://github.com/mpenet/auspex"
:git/sha "1a9d7427e60e1a434a764aa820d1c53f7e22504a"
:deps/manifest :deps}
exoscale/interceptor {:git/url "https://github.com/exoscale/interceptor"
:git/sha "ca115fe00a0abf3a2f78452ab309c3aa4c00fc4e"
:deps/manifest :deps}
lambdaisland/uri {:git/url "https://github.com/lambdaisland/uri"
:git/sha "ac4f1f9c8e4f45a088db1c6383ce2191c973987c"
:deps/manifest :deps}
clj-commons/fs {:mvn/version "1.6.310"}
postmortem/postmortem {:git/url "https://github.com/athos/Postmortem"
:git/sha "1a29775a3d286f9f6fe3f979c78b6e2bf298d5ba"}
com.github.rawleyfowler/sluj {:git/url "https://github.com/rawleyfowler/sluj"
:git/sha "4a92e772b4e07bf127423448d4140748b5782198"
:deps/manifest :deps}
net.cgrand/xforms {:git/url "https://github.com/cgrand/xforms"
:git/sha "550dbc150a79c6ecc148d8a7e260e10bc36321c6"
:deps/manifest :deps}
prismatic/plumbing {:git/url "https://github.com/plumatic/plumbing",
:git/sha "424bc704f2db422de34269c139a5494314b3a43b"}
org.clj-commons/hickory {:git/url "https://github.com/clj-commons/hickory"
:git/sha "9385b6708ef35f161732d8464b3a3aa57dd79f30"}
com.potetm/fusebox {:git/url "https://github.com/potetm/fusebox"
:git/sha "ac6d6a0a69510b009b3c1bb2247cd110fd9f7246"}
net.sekao/odoyle-rules {:git/url "https://github.com/oakes/odoyle-rules"
:git/sha "0b1d825ec45a998c4d3481dfb292e08ce6a47f0b"}}
:classpath-overrides {org.clojure/clojure nil
org.clojure/spec.alpha nil}}
:clj-nvd
{:extra-deps {clj-nvd/clj-nvd {:git/url "https://github.com/miikka/clj-nvd.git"
:sha "f2ec98699e057a379baf170cb49cf7ad76874a70"}}
:main-opts ["-m" "clj-nvd.core"]}
:test
{:extra-paths ["test"]
:extra-deps {io.github.cognitect-labs/test-runner
{:git/tag "v0.5.0" :git/sha "b3fd0d2"}
nubank/matcher-combinators {:mvn/version "3.6.0"}}
:main-opts ["-m" "cognitect.test-runner"]
:exec-fn cognitect.test-runner.api/test}
:test-pod
{:extra-paths ["test-resources"]
:main-opts ["-m" "babashka.main" "test-resources/pod.clj"]}}}
;; release

1
depstar Submodule

@ -0,0 +1 @@
Subproject commit 2bf9d3c9f15298d7dd9de033674a42f830e23d6f

176
doc/build.md Normal file
View file

@ -0,0 +1,176 @@
# Building babashka
## Prerequisites
- Install [lein](https://leiningen.org/) for producing uberjars
- Download [GraalVM](https://www.graalvm.org/downloads/). Currently we use *Oracle GraalVM 24*.
- For Windows, installing Visual Studio 2019 with the "Desktop development
with C++" workload is recommended.
- Set `$GRAALVM_HOME` to the GraalVM distribution directory. On macOS this can look like:
``` shell
export GRAALVM_HOME=~/Downloads/graalvm-jdk-21.0.0.1/Contents/Home
```
On linux:
``` shell
export GRAALVM_HOME=~/Downloads/graalvm-jdk-21.0.0.1
```
On Windows, from the [Visual Studio 2019 x64 Native Tools Command Prompt](https://github.com/oracle/graal/issues/2116#issuecomment-590470806) or `cmd.exe` (not Powershell):
```
set GRAALVM_HOME=%USERPROFILE%\Downloads\graalvm-ce-jdk-21.0.0.1
```
If you are not running from the x64 Native Tools Command Prompt, you will need to set additional environment variables using:
```
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
```
## Clone repository
NOTE: the babashka repository contains submodules. You need to use the
`--recursive` flag to clone these submodules along with the main repo.
``` shellsession
$ git clone https://github.com/babashka/babashka --recursive
```
To update later on:
``` shellsession
$ git submodule update --init --recursive
```
## Build
Run the `uberjar` and `compile` script:
``` shell
$ script/uberjar
$ script/compile
```
To configure max heap size you can use:
```
$ export BABASHKA_XMX="-J-Xmx6500m"
```
Note: setting the max heap size to a low value can cause the build to crash or
take long to complete.
### Alternative: Build inside Docker
To build a Linux version of babashka, you can use `docker build`, enabling the
desired features via `--build-arg` like this:
```shell
docker build --build-arg BABASHKA_FEATURE_JDBC=true --target BASE -t bb-builder .
container_id=$(docker create bb-builder)
docker cp $container_id:/opt/bb bb # copy to ./bb on the host file system
docker rm $container_id
```
NOTE: If you get _Error: Image build request failed with exit status 137_ then
check whether Docker is allowed to use enough memory (e.g. in Docker Desktop
preferences). If it is, then increase the memory GraalVM can use, for example
by adding `--build-arg BABASHKA_XMX="-J-Xmx8g"`
(or whatever Docker has available, bigger than the default).
## Windows
Run `script\uberjar.bat` followed by `script\compile.bat`.
## Static
To compile babashka as a static binary for linux, set the `BABASHKA_STATIC`
environment variable to `true`.
## Feature flags
Babashka supports the following feature flags:
| Name | Description | Default |
|--------|----------------------------------------------|----------|
| `BABASHKA_FEATURE_CSV` | Includes the [clojure.data.csv](https://github.com/clojure/data.csv) library | `true` |
| `BABASHKA_FEATURE_JAVA_NET_HTTP` | Includes commonly used classes from the `java.net.http` package | `true` |
| `BABASHKA_FEATURE_JAVA_NIO` | Includes commonly used classes from the `java.nio` package | `true` |
| `BABASHKA_FEATURE_JAVA_TIME` | Includes commonly used classes from the `java.time` package | `true` |
| `BABASHKA_FEATURE_TRANSIT` | Includes the [transit-clj](https://github.com/cognitect/transit-clj) library | `true` |
| `BABASHKA_FEATURE_XML` | Includes the [clojure.data.xml](https://github.com/clojure/data.xml) library | `true` |
| `BABASHKA_FEATURE_YAML` | Includes the [clj-yaml](https://github.com/clj-commons/clj-yaml) library | `true` |
| `BABASHKA_FEATURE_HTTPKIT_CLIENT` | Includes the [http-kit](https://github.com/http-kit/http-kit) client library | `true` |
| `BABASHKA_FEATURE_HTTPKIT_SERVER` | Includes the [http-kit](https://github.com/http-kit/http-kit) server library | `true` |
| `BABASHKA_FEATURE_CORE_MATCH` | Includes the [clojure.core.match](https://github.com/clojure/core.match) library | `true` |
| `BABASHKA_FEATURE_HICCUP` | Includes the [hiccup](https://github.com/weavejester/hiccup) library | `true` |
| `BABASHKA_FEATURE_TEST_CHECK` | Includes the [clojure.test.check](https://github.com/clojure/test.check) library | `true` |
| `BABASHKA_FEATURE_SPEC_ALPHA` | Includes the [clojure.spec.alpha](https://github.com/clojure/spec.alpha) library (WIP) | `false` |
| `BABASHKA_FEATURE_JDBC` | Includes the [next.jdbc](https://github.com/seancorfield/next-jdbc) library | `false` |
| `BABASHKA_FEATURE_SQLITE` | Includes the [sqlite-jdbc](https://github.com/xerial/sqlite-jdbc) library | `false` |
| `BABASHKA_FEATURE_POSTGRESQL` | Includes the [PostgresSQL](https://jdbc.postgresql.org/) JDBC driver | `false` |
| `BABASHKA_FEATURE_HSQLDB` | Includes the [HSQLDB](http://www.hsqldb.org/) JDBC driver | `false` |
| `BABASHKA_FEATURE_ORACLEDB` | Includes the [Oracle](https://www.oracle.com/database/technologies/appdev/jdbc.html) JDBC driver | `false` |
| `BABASHKA_FEATURE_DATASCRIPT` | Includes [datascript](https://github.com/tonsky/datascript) | `false` |
| `BABASHKA_FEATURE_LANTERNA` | Includes [clojure-lanterna](https://github.com/babashka/clojure-lanterna) | `false` |
| `BABASHKA_FEATURE_LOGGING` | Includes [clojure.tools.logging](https://github.com/clojure/tools.logging) with [taoensso.timbre](https://github.com/ptaoussanis/timbre) as the default implementation| `true` |
| `BABASHKA_FEATURE_PRIORITY_MAP` | Includes [clojure.data.priority-map](https://github.com/clojure/data.priority-map) | `true` |
Note that httpkit server is currently experimental, the feature flag could be toggled to `false` in a future release.
To disable all of the above features, you can set `BABASHKA_LEAN` to `true`.
Here is an [example
commit](https://github.com/babashka/babashka/commit/13f65f05aeff891678e88965d9fbd146bfa87f4e)
that can be used as a checklist when you want to create a new feature flag.
### HyperSQL
To compile babashka with the `next.jdbc` library and the embedded HyperSQL
database:
``` shell
$ export BABASHKA_FEATURE_JDBC=true
$ export BABASHKA_FEATURE_HSQLDB=true
$ script/uberjar
$ script/compile
```
Note: there is now a [pod](https://github.com/babashka/babashka-sql-pods) for working with HyperSQL.
### PostgresQL
To compile babashka with the `next.jdbc` library and a PostgresQL driver:
``` shell
$ export BABASHKA_FEATURE_JDBC=true
$ export BABASHKA_FEATURE_POSTGRESQL=true
$ script/uberjar
$ script/compile
```
Note: there is now a [pod](https://github.com/babashka/babashka-sql-pods) for working with PostgreSQL.
### Lanterna
To compile babashka with the [babashka/clojure-lanterna](https://github.com/babashka/clojure-lanterna) library:
``` shell
$ export BABASHKA_FEATURE_LANTERNA=true
$ script/uberjar
$ script/compile
```
Example program:
``` clojure
(require '[lanterna.terminal :as terminal])
(def terminal (terminal/get-terminal))
(terminal/start terminal)
(terminal/put-string terminal "Hello TUI Babashka!" 10 5)
(terminal/flush terminal)
(read-line)
```

View file

@ -1,2 +1,3 @@
{:cljdoc.doc/tree
[["Readme" {:file "README.md"}]]}
[["Readme" {:file "README.md"}]
["Developing Babashka" {:file "doc/dev.md"}]]}

77
doc/companies.md Normal file
View file

@ -0,0 +1,77 @@
# Companies using babashka
Is your company using babashka? Mention it in
[this](https://github.com/babashka/babashka/discussions/1026) discussion to get
yours listed!
If your company is using clj-kondo as well, mention it
[here](https://github.com/clj-kondo/clj-kondo/discussions/1397).
If your company is sponsoring, it will be listed first (in order of sponsorship
size) with a logo and hiring link (if applicable)!
## Sponsoring companies
### [Adgoji](https://www.adgoji.com/)
![adgoji](https://images.squarespace-cdn.com/content/v1/5e5f79dcaeba9e2b64132975/1585646545419-5DOZS4SVO5AU0MFA3ZB3/adgoji_logofull.png?format=300w)
### [Nubank](https://nubank.com.br/)
<img src="https://upload.wikimedia.org/wikipedia/commons/f/f7/Nubank_logo_2021.svg" width="200">
Sponsoring via [Cognitect](https://www.cognitect.com/).
### [Nextjournal](https://nextjournal.com/)
<img src="https://cdn.nextjournal.com/images/nextjournal-logo.svg" width="300">
### [ATA](https://ata-llc.com) - [hiring](https://www.ziprecruiter.com/c/ATA-LLC/Jobs)
<img width="250" alt="Screen Shot 2022-01-07 at 21 21 00" src="https://user-images.githubusercontent.com/284934/148602984-6c333501-505b-4692-ad7a-62383510fb9a.png">
### [Cognician](https://www.cognician.com)
<img src="https://avatars.githubusercontent.com/u/1450774?s=150&v=4">
### [Fluent](https://fluent.to)
<img src="https://uploads-ssl.webflow.com/600fdbbcf0cbfe02f1a48030/600fdf0fffe881c3e8e298f4_Fluent%20logotype-p-500.png" width="300">
### [180seg](https://www.180s.com.br)
<img src="https://avatars.githubusercontent.com/u/75583439?s=200&v=4">
### [Dr. Evidence](https://www.drevidence.com/)
<img src="https://user-images.githubusercontent.com/284934/138914250-f447ca3d-c1c1-4c60-bfaf-9000541d4a0d.png" width="325">
### [EnjoyHQ](https://getenjoyhq.com/)
<img src="https://getenjoyhq.com/wp-content/uploads/2021/07/EnjoyHQ_uz-blue_cropp.svg" width="300">
### [Epic Castle](https://epiccastle.io)
<img src="https://epiccastle.io/images/logo.png" width="100">
## Companies
- [AWS](https://aws.amazon.com/)
- [Barracuda](https://www.barracuda.com/)
- [Datil](https://datil.com/)
- [Deon Digital](https://www.deondigital.com/)
- [Fluent](https://fluent.to/)
- [Fluree](https://flur.ee/)
- [Hi](https://www.hi.group/)
- [Juxt](https://www.juxt.pro/)
- [Kleene](https://www.kleene.ai/)
- [Latacora](https://www.latacora.com/)
- [Metosin](https://www.metosin.fi/en/)
- [Nextdoc](https://www.nextdoc.io/)
- [PractiTest](https://www.practitest.com/)
- [Reify Health](https://www.reifyhealth.com/)
- [Schnaq](https://schnaq.com/)
- [Splash Financial](https://www.splashfinancial.com/)
- [TOYOKUMO, Inc.](https://toyokumo.co.jp/)
- [Xcoo](https://xcoo.com/)
- [Zero one group](https://zero-one-group.com/)

275
doc/dev.md Normal file
View file

@ -0,0 +1,275 @@
# Developing Babashka
## Workflow
### Start with an issue before writing code
Before writing any code, please create an issue first that describes the problem
you are trying to solve with alternatives that you have considered. A little bit
of prior communication can save a lot of time on coding. Keep the problem as
small as possible. If there are two problems, make two issues. We discuss the
issue and if we reach an agreement on the approach, it's time to move on to a
PR.
### Follow up with a pull request
Post a corresponding PR with the smallest change possible to address the
issue. Then we discuss the PR, make changes as needed and if we reach an
agreement, the PR will be merged.
### Tests
Each bug fix, change or new feature should be tested well to prevent future
regressions.
If possible, tests should use public APIs. If the bug is in private/internal
code, try to trigger it from a public API.
### Force-push
Please do not use `git push --force` on your PR branch for the following
reasons:
- It makes it more difficult for others to contribute to your branch if needed.
- It makes it harder to review incremental commits.
- Links (in e.g. e-mails and notifications) go stale and you're confronted with:
this code isn't here anymore, when clicking on them.
- CircleCI doesn't play well with it: it might try to fetch a commit which
doesn't exist anymore.
- Your PR will be squashed anyway.
## Requirements
You need [lein](https://leiningen.org/) for running JVM tests and/or producing uberjars. For building binaries you need GraalVM. Currently we use Oracle GraalVM 24.
## Clone repository
To work on Babashka itself make sure Git submodules are checked out.
``` shellsession
$ git clone https://github.com/babashka/babashka --recursive
```
To update later on:
``` shellsession
$ git submodule update --recursive
```
## REPL
`lein repl` will get you a standard REPL/nREPL connection. To work on tests use `lein with-profiles +test repl`.
## Adding classes
Add necessary classes to `babashka/impl/classes.clj`. For every addition, write
a unit test, so it's clear why it is added and removing it will break the
tests. Try to reduce the size of the binary by only adding the necessary parts
of a class in `:instance-check`, `:constructors`, `:methods`, `:fields` or
`:custom`.
The `reflection.json` file that is needed for GraalVM compilation is generated
as part of `script/uberjar`.
## Test
Test on the JVM (for development):
script/test
Test the native version:
BABASHKA_TEST_ENV=native script/test
## Tests for Libraries
Babashka runs tests of libraries that are compatible with it through
`script/run_lib_tests`.
You can check out [this
commit](https://github.com/babashka/babashka/commit/8d9ac4c4d18a5588a4a258a61a9db3835b4f4e5c)
for how to add tests for a library that needs no changes to its tests.
The library is cloned as a git dependency, which also includes the tests, that are then added to the test's classpath and ran.
If a library's tests needs changes, we copy the tests using the `add-libtest.clj` script. Examples:
```sh
# To add tests for a new library on clojars
script/add-libtest.clj com.exoscale/lingo -t
# To add tests for a new library that is git based only
script/add-libtest.clj '{borkdude/carve {:git/url "https://github.com/borkdude/carve" :sha "df552797a198b6701fb2d92390fce7c59205ea77"}}' -t
# There are a number of options for specifying how to copy tests
script/add-libtest.clj -h
```
If the library you want to add doesn't work automatically, you can manually do the following:
* Add an entry for the library in `deps.edn` under the `:lib-tests` alias.
* Create a directory for the library in `test-resources/lib_tests/` and copy its tests to there.
* Add a manual lib entry using `add-libtest.clj` e.g. `script/add-libtest.clj http-kit/http-kit -m '{:test-namespaces [httpkit.client-test]}'`.
* Run the tests `script/lib_tests/run_all_libtests NS1 NS2`
Note: If you have to modify any test file or configuration to have it work with
bb, add an inline comment with prefix `BB-TEST-PATCH:` explaining what you did.
## Windows
We have corresponding `.bat` scripts for Windows, examples from a CMD Shell:
```shell
script\test.bat
script\run_lib_tests.bat
set BABASHKA_TEST_ENV=native
script\run_lib_tests.bat
```
### Enable Windows Symbolic Links
You'll need to **enable symbolic links**.
You must do this before you git clone babashka otherwise some tests will fail.
There seems to be many ways to achieve this; I found the following worked from PowerShell:
```shell
Install-Module -Name Carbon -Force
Import-Module Carbon
Grant-CPrivilege -Identity lee -Privilege SeCreateSymbolicLinkPrivilege
```
You'll need to reboot:
```shell
shutdown /r /t 0
```
After reboot, verify the new privilege via:
```shell
whoami /priv
```
Test if you can create a symbolic link via:
```
mklink foofoo barbar
```
> **TIP**: Symbolic links are not supported in some folder-sharing technologies.
For example, if you are running Windows as a VirtualBox guest, sharing babashka
source folders from your host OS will not share the symbolic links as symbolic links.
One solution is to re-clone babashka to a non-shared folder on Windows.
### Git for Windows
Install [Git for Windows](https://gitforwindows.org/).
It includes a version of `cat` that babashka tests currently rely on.
## Build
See [build.md](build.md).
## JDBC
Findings from various experiments with JDBC drivers in babashka:
- Postgres: adds 3MB to the binary. It seems the maintainers have put in effort
to make the driver compatible with Graal. The driver is part of `bb` since
`v0.0.89`.
- Sqlite: I feel like I'm close to a working solution, but it hangs. It adds
20MB to the binary. Since sqlite has a nice CLI we could also just shell out
to it (there's an example in the examples dir). We could also build a
`babashka.sqlite` namespace around the CLI maybe similar to
`babashka.curl`. See [#385](https://github.com/babashka/babashka/issues/385)
for details.
- HSQLDB: easy to get going with Graalvm. Adds 10 MB to the binary. It's under a
feature flag right now on master. See [build.md](build.md) for details. Derby
and H2 are known to not work with GraalVM, so far this is the "best" embedded
option from a Graal perspective. Setting the -Xmx value for Docker to 4500m
got it to crash. 4800m did work, but it took 17 minutes (compared to 10
minutes without this feature).
- MySQL / MariaDB: can't get those to work yet. Work in progress in issue
[#387](https://github.com/babashka/babashka/issues/387).
To progress work on sqlite and mySQL, I need a working Clojure example. If you
want to contribute, consider making a an example Clojure GraalVM CLI that puts
something in a sqlite / mysql DB and reads something from it.
## Design decisions
Some design decisions:
### bb.edn
- We chose the name `bb.edn` (rather than `babashka.edn`) for the configuration
file based on this
[poll](https://twitter.com/borkdude/status/1374720217608302595). The name `bb`
combined with `.edn` is not likely to cause conflicts with other tools.
- We did not choose to put the babashka configuration in `deps.edn` to keep bb config isolated (and more flexible) and also support it in projects that do not use `deps.edn`
### .babashka
- Rather than naming the home config dir `~/.bb` we chose `~/.babashka` to
prevent conflicts with other global tools. We might introduce a project local
`~/.babashka` directory for storing caches or whatnot too.
### Tasks
Some of these design decisions were formed in [these discussions](https://github.com/babashka/babashka/discussions/779).
- Tasks do not allow passing arguments to dependent tasks, other than by rebinding `*command-line-args*` (see discussion).
- Does the list of dependencies need to be dynamic? No, see discussion (same reason as args)
- bb &lt;foo&gt; is resolved as file > task > bb subcommand. Shadowing future subcommand is a problem that a user can solve by renaming a task or file. (same as lein aliases). Also see Conflicts.
- It is a feature that tasks are defined as top-level vars (instead of local let-bound symbols). This plays well with the Gilardi scenario, e.g. here: https://github.com/babashka/babashka.github.io/blob/ad276625f6c41f269d19450f236cb54cab2591e1/bb.edn#L7.
- The parallel option trickles down into run calls. People who use parallel will be confused if its dropped magically, people who dont use parallel wont notice anything either way so it doesnt matter
## Binary size
Keep notes here about how adding libraries and classes to Babashka affects the binary size.
We're registering the size of the macOS binary (as built on CircleCI).
2021/06/13 Upgrading from GraalvM 21.0 to 21.1 added roughly 3mb. Issue [here](https://github.com/oracle/graal/issues/3280#issuecomment-846402115).
2020/10/30 Without httpkit client+server: 68113436. With: 69503316 = 1390kb added.
2020/05/01 Removed `next.jdbc` and postgres JDBC driver: 48304980
2020/04/23 Added `next.jdbc` and postgres JDBC driver:
(- 51019836 48099780) = 2920kb added
2020/04/23 Added BigDecimal
(- 48103868 47857732) = 246kb added
2020/04/18 Added clojure.data.xml
47808572 - 45923028 = 1886kb added.
2020/03/29 Added clj-yaml for parsing and generating yaml.
45196996 - 42626884 = 2570kb added.
2020/03/28 Added java.nio.file.FileSystem(s) to support extracting zip files
42562284 - 42021244 = 541kb added.
2020/03/22 Added java.io.FileReader
42025276 - 42008876 = 16kb added.
2020/03/20 Added transit write, writer, read, reader
42004796 - 41025212 = 980kb added (305kb zipped).
2020/03/19 Added java.lang.NumberFormatException, java.lang.RuntimeException,
java.util.MissingResourceException and java.util.Properties to support
[cprop](https://github.com/tolitius/cprop/).
41025180 - 40729908 = 295kb added.
2020/02/21
Added java.time.temporal.ChronoUnit
40651596 - 40598260 = 53kb added.
2020/02/19, e43727955a2cdabd2bb0189c20dd7f9a18156fc9
Added fipp.edn/pprint
40598268 - 39744804 = 853kb added.
2020/02/09, c8fd1c7931d7842ebaec1fa8faf06d4ab58573bd
Added java.lang.BigInteger and java.security.MessageDigest.
39281972 - 39072764 = 209kb added.
2020/04/02 v0.0.69 38883676
2020/01/24, 43eef7075f9dac038d8d28a5ee4e49b6affd9864: 38.3mb, 11.1mb zipped
Added hierarchies (derive, isa?, etc).
2020/01/23, 485fef7df54d6701936704573468a1ec4c66d221: 37.4mb / 10.9mb zipped
Added: StringBuilder, java.io.{Reader,Writer,PrinterWriter,PushbackReader}
2020/01/08, 303ca9e825d76a4a45bc4240a59139d342c13964: 36.9mb / 10.8mb zipped
Removing cheshire from bb: 36.2mb / 10.5mb zipped.

3
doc/examples.md Normal file
View file

@ -0,0 +1,3 @@
# Examples
This pages was moved [here](../examples/README.md).

5
doc/fly_io/Dockerfile Normal file
View file

@ -0,0 +1,5 @@
FROM babashka/babashka:0.8.2
COPY example.clj /
ENTRYPOINT bb /example.clj

19
doc/fly_io/README.md Normal file
View file

@ -0,0 +1,19 @@
# Deploying a babashka app to fly.io
[Fly.io](https://fly.io/) is a service that can run full stack apps with minimal
configuration. If you like the ease of Heroku, you might like fly.io and perhaps
even better! This document shows how to get a minimal babashka application up
and running on `fly.io`.
In `example.clj` we start an http-kit web server which spits out some HTML. You
can run this locally by invoking `bb example.clj` from the command line.
To get this site running on `fly.io`, you need to
[install](https://fly.io/docs/getting-started/installing-flyctl/) and [log
in](https://fly.io/docs/getting-started/log-in-to-fly/).
Then run `flyctl launch` to create a new application. After making changes, you
can re-deploy the site with `flyctl deploy`.
That's it! See this
[tweet](https://twitter.com/borkdude/status/1526175120825401344) for a demo.

21
doc/fly_io/example.clj Normal file
View file

@ -0,0 +1,21 @@
(ns example
(:require [hiccup2.core :refer [html]]
[org.httpkit.server :refer [run-server]]))
(def port (or (some-> (System/getenv "PORT")
parse-long)
8092))
(run-server
(fn [_]
{:body
(str (html
[:html
[:body
[:h1 "Hello world!"]
[:p (str "This site is running with babashka v"
(System/getProperty "babashka.version"))]]]))})
{:port port})
(println "Site running on port" port)
@(promise)

41
doc/fly_io/fly.toml Normal file
View file

@ -0,0 +1,41 @@
# fly.toml file generated for shy-sound-2847 on 2022-05-16T14:12:38+02:00
app = "shy-sound-2847"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []
[env]
PORT = "8092"
[experimental]
allowed_public_ports = []
auto_rollback = true
[[services]]
http_checks = []
internal_port = 8092
processes = ["app"]
protocol = "tcp"
script_checks = []
[services.concurrency]
hard_limit = 25
soft_limit = 20
type = "connections"
[[services.ports]]
force_https = true
handlers = ["http"]
port = 80
[[services.ports]]
handlers = ["tls", "http"]
port = 443
[[services.tcp_checks]]
grace_period = "1s"
interval = "15s"
restart_limit = 0
timeout = "2s"

99
doc/libraries.csv Normal file
View file

@ -0,0 +1,99 @@
maven-name,git-url
aero/aero,http://github.com/juxt/aero
amperity/vault-clj,https://github.com/amperity/vault-clj
aysylu/loom,https://github.com/aysylu/loom
babashka/babashka.curl,https://github.com/babashka/babashka.curl
better-cond/better-cond,https://github.com/Engelberg/better-cond
borkdude/deps,https://github.com/borkdude/deps.clj
borkdude/missing.test.assertions,https://github.com/borkdude/missing.test.assertions
borkdude/rewrite-edn,https://github.com/borkdude/rewrite-edn
camel-snake-kebab/camel-snake-kebab,https://github.com/clj-commons/camel-snake-kebab
cc.qbits/auspex,https://github.com/mpenet/auspex
cheshire/cheshire,https://github.com/dakrone/cheshire
circleci/bond,https://github.com/circleci/bond
cli-matic/cli-matic,https://github.com/l3nz/cli-matic.git
clj-commons/clj-yaml,https://github.com/clj-commons/clj-yaml
clj-commons/fs,https://github.com/clj-commons/fs
clj-commons/multigrep,https://github.com/clj-commons/multigrep
clj-stacktrace/clj-stacktrace,https://github.com/mmcgrana/clj-stacktrace
clojure-csv/clojure-csv,https://github.com/davidsantiago/clojure-csv
clojure-msgpack/clojure-msgpack,https://github.com/edma2/clojure-msgpack
clojure-term-colors/clojure-term-colors,https://github.com/trhura/clojure-term-colors
com.exoscale/lingo,https://github.com/exoscale/lingo
com.github.askonomm/clarktown,https://github.com/askonomm/clarktown
com.github.rawleyfowler/sluj,https://github.com/rawleyfowler/sluj
com.github.seancorfield/expectations,https://github.com/clojure-expectations/clojure-test
com.github.seancorfield/honeysql,https://github.com/seancorfield/honeysql
com.grammarly/omniconf,https://github.com/grammarly/omniconf
com.layerware/hugsql-core,
com.rpl/specter,https://github.com/redplanetlabs/specter
com.stuartsierra/component,https://github.com/stuartsierra/component
com.stuartsierra/dependency,https://github.com/stuartsierra/dependency
com.wsscode/cljc-misc,https://github.com/wilkerlucio/cljc-misc
comb/comb,https://github.com/weavejester/comb
cprop/cprop,https://github.com/tolitius/cprop
crispin/crispin,https://github.com/dunaj-project/crispin
dev.nubank/docopt,https://github.com/nubank/docopt.clj
djblue/portal,https://github.com/djblue/portal
doric/doric,https://github.com/joegallo/doric
douglass/clj-psql,https://github.com/DarinDouglass/clj-psql
edn-query-language/eql,https://github.com/edn-query-language/eql
environ/environ,https://github.com/weavejester/environ
exoscale/coax,https://github.com/exoscale/coax
exoscale/interceptor,https://github.com/exoscale/interceptor
expound/expound,https://github.com/bhb/expound
failjure/failjure,https://github.com/adambard/failjure
ffclj/ffclj,https://github.com/luissantos/ffclj
gaka/gaka,https://github.com/cdaddr/gaka
hato/hato,https://github.com/gnarroway/hato
henryw374/cljc.java-time,https://github.com/henryw374/cljc.java-time
hiccup/hiccup,http://github.com/weavejester/hiccup
honeysql/honeysql,https://github.com/seancorfield/honeysql
http-kit/http-kit,https://github.com/http-kit/http-kit
integrant/integrant,https://github.com/weavejester/integrant
io.aviso/pretty,https://github.com/AvisoNovate/pretty
io.github.cognitect-labs/test-runner,https://github.com/cognitect-labs/test-runner
io.github.swirrl/dogstatsd,https://github.com/swirrl/dogstatsd
io.github.technomancy/limit-break,https://github.com/technomancy/limit-break
io.helins/binf,https://github.com/helins/binf.cljc
io.lambdaforge/datalog-parser,https://github.com/lambdaforge/datalog-parser
io.replikativ/hasch,https://github.com/replikativ/hasch
java-http-clj/java-http-clj,http://www.github.com/schmee/java-http-clj
lambdaisland/regal,https://github.com/lambdaisland/regal
listora/again,https://github.com/liwp/again
markdown-clj/markdown-clj,https://github.com/yogthos/markdown-clj
meander/epsilon,https://github.com/noprompt/meander
medley/medley,https://github.com/weavejester/medley
meta-merge/meta-merge,https://github.com/weavejester/meta-merge
metosin/malli,https://github.com/metosin/malli
minimallist/minimallist,https://github.com/green-coder/minimallist
mvxcvi/arrangement,https://github.com/greglook/clj-arrangement
net.cgrand/xforms,https://github.com/cgrand/xforms
orchestra/orchestra,https://github.com/jeaye/orchestra
org.babashka/spec.alpha,https://github.com/babashka/spec.alpha
org.clj-commons/clj-http-lite,https://github.com/clj-commons/clj-http-lite
org.clj-commons/digest,https://github.com/clj-commons/clj-digest
org.clojars.askonomm/ruuter,https://github.com/askonomm/ruuter
org.clojars.lispyclouds/contajners,https://github.com/lispyclouds/contajners
org.clojure/algo.monads,https://github.com/clojure/algo.monads
org.clojure/core.match,https://github.com/clojure/core.match
org.clojure/data.csv,https://github.com/clojure/data.csv
org.clojure/data.generators,https://github.com/clojure/data.generators
org.clojure/data.json,https://github.com/clojure/data.json
org.clojure/data.zip,https://github.com/clojure/data.zip
org.clojure/math.combinatorics,https://github.com/clojure/math.combinatorics
org.clojure/math.numeric-tower,https://github.com/clojure/math.numeric-tower
org.clojure/test.check,https://github.com/clojure/test.check
org.clojure/tools.gitlibs,https://github.com/clojure/tools.gitlibs
org.clojure/tools.namespace,https://github.com/clojure/tools.namespace
postmortem/postmortem,https://github.com/athos/Postmortem
prismatic/schema,https://github.com/plumatic/schema
progrock/progrock,https://github.com/weavejester/progrock
reifyhealth/specmonstah,https://github.com/reifyhealth/specmonstah
rewrite-clj/rewrite-clj,https://github.com/clj-commons/rewrite-clj
rm-hull/jasentaa,https://github.com/rm-hull/jasentaa
selmer/selmer,https://github.com/yogthos/Selmer
slingshot/slingshot,https://github.com/scgilardi/slingshot
table/table,https://github.com/cldwalker/table
testdoc/testdoc,https://github.com/liquidz/testdoc
version-clj/version-clj,https://github.com/xsc/version-clj
1 maven-name git-url
2 aero/aero http://github.com/juxt/aero
3 amperity/vault-clj https://github.com/amperity/vault-clj
4 aysylu/loom https://github.com/aysylu/loom
5 babashka/babashka.curl https://github.com/babashka/babashka.curl
6 better-cond/better-cond https://github.com/Engelberg/better-cond
7 borkdude/deps https://github.com/borkdude/deps.clj
8 borkdude/missing.test.assertions https://github.com/borkdude/missing.test.assertions
9 borkdude/rewrite-edn https://github.com/borkdude/rewrite-edn
10 camel-snake-kebab/camel-snake-kebab https://github.com/clj-commons/camel-snake-kebab
11 cc.qbits/auspex https://github.com/mpenet/auspex
12 cheshire/cheshire https://github.com/dakrone/cheshire
13 circleci/bond https://github.com/circleci/bond
14 cli-matic/cli-matic https://github.com/l3nz/cli-matic.git
15 clj-commons/clj-yaml https://github.com/clj-commons/clj-yaml
16 clj-commons/fs https://github.com/clj-commons/fs
17 clj-commons/multigrep https://github.com/clj-commons/multigrep
18 clj-stacktrace/clj-stacktrace https://github.com/mmcgrana/clj-stacktrace
19 clojure-csv/clojure-csv https://github.com/davidsantiago/clojure-csv
20 clojure-msgpack/clojure-msgpack https://github.com/edma2/clojure-msgpack
21 clojure-term-colors/clojure-term-colors https://github.com/trhura/clojure-term-colors
22 com.exoscale/lingo https://github.com/exoscale/lingo
23 com.github.askonomm/clarktown https://github.com/askonomm/clarktown
24 com.github.rawleyfowler/sluj https://github.com/rawleyfowler/sluj
25 com.github.seancorfield/expectations https://github.com/clojure-expectations/clojure-test
26 com.github.seancorfield/honeysql https://github.com/seancorfield/honeysql
27 com.grammarly/omniconf https://github.com/grammarly/omniconf
28 com.layerware/hugsql-core
29 com.rpl/specter https://github.com/redplanetlabs/specter
30 com.stuartsierra/component https://github.com/stuartsierra/component
31 com.stuartsierra/dependency https://github.com/stuartsierra/dependency
32 com.wsscode/cljc-misc https://github.com/wilkerlucio/cljc-misc
33 comb/comb https://github.com/weavejester/comb
34 cprop/cprop https://github.com/tolitius/cprop
35 crispin/crispin https://github.com/dunaj-project/crispin
36 dev.nubank/docopt https://github.com/nubank/docopt.clj
37 djblue/portal https://github.com/djblue/portal
38 doric/doric https://github.com/joegallo/doric
39 douglass/clj-psql https://github.com/DarinDouglass/clj-psql
40 edn-query-language/eql https://github.com/edn-query-language/eql
41 environ/environ https://github.com/weavejester/environ
42 exoscale/coax https://github.com/exoscale/coax
43 exoscale/interceptor https://github.com/exoscale/interceptor
44 expound/expound https://github.com/bhb/expound
45 failjure/failjure https://github.com/adambard/failjure
46 ffclj/ffclj https://github.com/luissantos/ffclj
47 gaka/gaka https://github.com/cdaddr/gaka
48 hato/hato https://github.com/gnarroway/hato
49 henryw374/cljc.java-time https://github.com/henryw374/cljc.java-time
50 hiccup/hiccup http://github.com/weavejester/hiccup
51 honeysql/honeysql https://github.com/seancorfield/honeysql
52 http-kit/http-kit https://github.com/http-kit/http-kit
53 integrant/integrant https://github.com/weavejester/integrant
54 io.aviso/pretty https://github.com/AvisoNovate/pretty
55 io.github.cognitect-labs/test-runner https://github.com/cognitect-labs/test-runner
56 io.github.swirrl/dogstatsd https://github.com/swirrl/dogstatsd
57 io.github.technomancy/limit-break https://github.com/technomancy/limit-break
58 io.helins/binf https://github.com/helins/binf.cljc
59 io.lambdaforge/datalog-parser https://github.com/lambdaforge/datalog-parser
60 io.replikativ/hasch https://github.com/replikativ/hasch
61 java-http-clj/java-http-clj http://www.github.com/schmee/java-http-clj
62 lambdaisland/regal https://github.com/lambdaisland/regal
63 listora/again https://github.com/liwp/again
64 markdown-clj/markdown-clj https://github.com/yogthos/markdown-clj
65 meander/epsilon https://github.com/noprompt/meander
66 medley/medley https://github.com/weavejester/medley
67 meta-merge/meta-merge https://github.com/weavejester/meta-merge
68 metosin/malli https://github.com/metosin/malli
69 minimallist/minimallist https://github.com/green-coder/minimallist
70 mvxcvi/arrangement https://github.com/greglook/clj-arrangement
71 net.cgrand/xforms https://github.com/cgrand/xforms
72 orchestra/orchestra https://github.com/jeaye/orchestra
73 org.babashka/spec.alpha https://github.com/babashka/spec.alpha
74 org.clj-commons/clj-http-lite https://github.com/clj-commons/clj-http-lite
75 org.clj-commons/digest https://github.com/clj-commons/clj-digest
76 org.clojars.askonomm/ruuter https://github.com/askonomm/ruuter
77 org.clojars.lispyclouds/contajners https://github.com/lispyclouds/contajners
78 org.clojure/algo.monads https://github.com/clojure/algo.monads
79 org.clojure/core.match https://github.com/clojure/core.match
80 org.clojure/data.csv https://github.com/clojure/data.csv
81 org.clojure/data.generators https://github.com/clojure/data.generators
82 org.clojure/data.json https://github.com/clojure/data.json
83 org.clojure/data.zip https://github.com/clojure/data.zip
84 org.clojure/math.combinatorics https://github.com/clojure/math.combinatorics
85 org.clojure/math.numeric-tower https://github.com/clojure/math.numeric-tower
86 org.clojure/test.check https://github.com/clojure/test.check
87 org.clojure/tools.gitlibs https://github.com/clojure/tools.gitlibs
88 org.clojure/tools.namespace https://github.com/clojure/tools.namespace
89 postmortem/postmortem https://github.com/athos/Postmortem
90 prismatic/schema https://github.com/plumatic/schema
91 progrock/progrock https://github.com/weavejester/progrock
92 reifyhealth/specmonstah https://github.com/reifyhealth/specmonstah
93 rewrite-clj/rewrite-clj https://github.com/clj-commons/rewrite-clj
94 rm-hull/jasentaa https://github.com/rm-hull/jasentaa
95 selmer/selmer https://github.com/yogthos/Selmer
96 slingshot/slingshot https://github.com/scgilardi/slingshot
97 table/table https://github.com/cldwalker/table
98 testdoc/testdoc https://github.com/liquidz/testdoc
99 version-clj/version-clj https://github.com/xsc/version-clj

1
doc/libraries.md Normal file
View file

@ -0,0 +1 @@
Moved to [projects.md](projects.md).

591
doc/news.md Normal file
View file

@ -0,0 +1,591 @@
# News
This page keeps track of babashka-related new items. Feel free to make a PR if
you have anything to add. Also see
[#babashka](https://twitter.com/hashtag/babashka?src=hashtag_click&f=live) on
Twitter.
## 2023-05 ([Twitter](https://twitter.com/search?q=(%23babashka%20OR%20babashka)%20since%3A2023-05-01%20until%3A2023-06-01&src=typed_query&f=live), [Mastodon](https://mastodon.social/tags/babashka))
### Releases
1.3.178
Mostly a boring maintenance release with lib upgrades!
### Events
- [Babashka-conf](https://babashka.org/conf/) is happening June 10th in
Berlin. Only a few tickets left! See the [schedule](https://babashka.org/conf/schedule.html). Also you can buy a [conf t-shirt](https://www.etsy.com/listing/1475981599/babashka-conf-berlin-2023-t-shirt) now! See Nikita wearing it [here](https://twitter.com/nikitonsky/status/1658066530800742400)!
Thanks to conference sponsors:
<img src="https://pbs.twimg.com/media/Fw5h-0_XwA4DTIj?format=jpg&name=medium" width="200px">
- Babashka is going to the [Strange Loop](https://www.thestrangeloop.com/) conference!
### Projects
- [beep-boop](https://github.com/pesterhazy/beep-boop): Audible and visual feedback for test runs
- [panas.example](https://github.com/keychera/panas.example): All htmx examples ported to babashka!
- [utility-scripts](https://github.com/somecho/utility-scripts): A collection of helper scripts for Clojure, Java, Ledger and Taskwarrior. Written in Clojure
- [bb-scripts](https://github.com/techconative/bb-scripts): Babashka scripts for common utilities
- [Launching bb tasks from emacs](https://mastodon.social/@mykhaylo@fosstodon.org/110456087708592838)
### Articles
- [Clojure in security: Docker](https://www.juxt.pro/blog/clojure-in-docker/): mentions babashka and clj-kondo
- [Changing my mind: Converting a script from bash to Babashka](https://blog.agical.se/en/posts/changing-my-mind--converting-a-script-from-bash-to-babashka/)
- [How to create a really simple ClojureCLR dependency tool](https://blog.agical.se/en/posts/how-to-create-a-really-simple-clojureclr-dependency-tool/) with babashka
- [Making a resume with Node.js babashka (nbb)](https://yogthos.net/posts/2023-05-12-nbb-resume.html)
## 2023-04 ([Twitter](https://twitter.com/search?q=(%23babashka%20OR%20babashka)%20since%3A2023-04-01%20until%3A2023-05-01&src=typed_query&f=live), [Mastodon](https://mastodon.social/tags/babashka))
[Babashka-conf](https://babashka.org/conf/) is happening June 10th in
Berlin. Save the date and/or submit your babashka/clojure-related talk or workshop
in the CfP!
### Releases
1.3.177
Biggest highlight: `bb.edn` is now respected relative of a script, no matter the directory you invoke it from! See [docs](https://book.babashka.org/#_script_adjacent_bb_edn).
### Projects
- [babashka-dl](https://github.com/mjhika/babashka-dl): simple install script for babashka on windows
- [instaparse-bb](https://github.com/babashka/instaparse-bb): Use instaparse from babashka, a new release
### Videos
- [Learning clojure w/ @lispyclouds](https://youtu.be/uBTRLBU-83A): a stream with teej_dv, a neovim core dev
## 2023-03 ([Twitter](https://twitter.com/search?q=(%23babashka%20OR%20babashka)%20since%3A2023-03-01%20until%3A2023-04-01&src=typed_query&f=top), [Mastodon](https://mastodon.social/tags/babashka))
### Releases
1.3.176, 1.3.175, 1.2.174:
Biggest highlight: Switch to GraalVM 19 and enable virtual threads!
### Videos
- [Blambda! The sound of babashka and AWS colliding](https://pitch.com/public/03fa9c7e-2b0e-45fb-8a22-d4a4d4d79d24), by Josh Glover from Pitch!
### Projects
- [babashka.json](https://github.com/babashka/json): JSON abstraction library
- [martian](https://github.com/oliyh/martian) is now babashka compatible!
- [panas.reload](https://github.com/keychera/panas.reload): a hot reload for babashka serving html+css (or htmx)
- [cljs-exif-reader](https://git.sr.ht/~rwv/cljs-exif-reader): Extract information from TIFF and JPEG images (works in babashka, despite the name)
### Jobs
- Write babashka at [Cognician](https://twitter.com/RobStuttaford/status/1641694501793038336)!
## 2023-02 ([Twitter](https://twitter.com/search?q=(%23babashka%20OR%20babashka)%20since%3A2023-02-01%20until%3A2023-03-01&src=typed_query&f=live), [Mastodon](https://mastodon.social/tags/babashka))
## Releases
1.1.173: mostly bugfixes
### Articles
- [A technique for live coding simple web pages](https://github.com/whacked/cow/blob/main/a%20technique%20for%20live%20coding%20simple%20web%20pages.md) with babashka
### Videos
- [Stockholm Clojure Meetup Feb 23: Blambda! The sound of Babashka and Lambda colliding](https://www.youtube.com/watch?v=NfgYon96dsE)
### Projects
- [debux](https://github.com/philoskim/debux) is now babaskha-compatible
- [lines-of-code-bb](https://github.com/matthewdowney/linesofcode-bb): Babashka script to count lines of Clojure code, docs, comments, and more
- [deps-try](https://github.com/eval/deps-try): a babashka-script to try out Clojure libraries in rebel-readline
- [bb-dialog](https://github.com/pixelated-noise/bb-dialog) adds support for `--treeview`
- [A duckduck go CLI with babashka and (bbl)gum](https://mastodon.me.uk/@choffee/109845697304457129)
- [babashka http-client](https://github.com/babashka/http-client) now supports multipart uploads
- [sublime-pretty-edn](https://github.com/oakmac/sublime-pretty-edn): Format, Validate, Minify EDN files in Sublime Text
- [Play console tetris in babashka!](https://twitter.com/borkdude/status/1628473136969576449)
- [kaocha test runner](https://github.com/lambdaisland/kaocha) became babashka compatible!
## 2023-01 ([Twitter](https://twitter.com/search?q=%28%23babashka%20OR%20babashka%29%20until%3A2023-02-01%20since%3A2023-01-01&src=typed_query&f=live), [Mastodon](https://mastodon.social/tags/babashka))
### Releases
New releases in the past month: 1.0.170 - 1.1.173
Release highlights:
- Support for `data_readers.clj(c)`
- Include [http-client](https://github.com/babashka/http-client) as built-in library
- Compatibility with [clojure.tools.namespace.repl/refresh](https://github.com/clojure/tools.namespace)
- Compatibility with [clojure.java.classpath](https://github.com/clojure/java.classpath) (and other libraries which rely on `java.class.path` and `RT/baseLoader`)
- Compatibility with [eftest](https://github.com/weavejester/eftest) test runner (see demo)
- Compatibility with [cljfmt](https://github.com/weavejester/cljfmt)
- Support for `*loaded-libs*` and `(loaded-libs)`
- Support `add-watch` on vars (which adds compatibility with `potemkin.namespaces`)
- BREAKING: make printing of script results explicit with `--prn`
### Events
- [Babashka Workshop](https://clojure.stream/workshops/babashka) at ClojureStream with Rahul De
- [Blambda! The sound of Babashka and Lambda colliding](https://www.meetup.com/sthlm-clj/events/291204199/?utm_medium=referral&utm_campaign=share-btn_savedevents_share_modal&utm_source=twitter): sthlm.clj (Stockholm, Sweden)
### Articles
- [Babooka: write command line Clojure](https://www.braveclojure.com/quests/babooka/) by Daniel Higginbotham
- [Blambda analyses sites](https://jmglov.net/blog/2023-01-04-blambda-analyses-sites.html) by Josh Glover
- [Babashka: How GraalVM Helped Create a Fast-Starting Scripting Environment for Clojure](https://logico-jp.io/2023/01/07/babashka-how-graalvm-helped-create-a-fast-starting-scripting-environment-for-clojure/) in Japanese
- [The wizard of HOP - How we built the web based HOP CLI Settings Editor using Babashka and Scittle](https://www.gethop.dev/post/the-wizard-of-hop-how-we-built-the-web-based-hop-cli-settings-editor-using-babashka-and-scittle) by Bingen Galartza
- [Simple TUIs with Babashka and Gum](https://rattlin.blog/bbgum.html) by Rattlin.blog
- [Babashka And Dialog Part Ii: Announcing The Bb-Dialog Library](https://www.pixelated-noise.com/blog/2023/01/20/bb-dialog-announcement/index.html) by A.C. Danvers
- [Re-Writing a GlobalProtect OpenConnect VPN Connect script in Babashka](https://tech.toryanderson.com/2023/01/14/re-writing-a-globalprotect-openconnect-vpn-connect-script-in-babashka/) by Tory Anderson
### Projects
Projects that were new, had updates or were made compatible with babashka:
- [asdf-babashka](https://github.com/pitch-io/asdf-babashka): babashka plugin for the asdf version manager
- [babashka-htmx-todoapp](https://github.com/prestancedesign/babashka-htmx-todoapp): Quick example of a todo list SPA using Babashka and HTMX
- [bblgum](https://github.com/lispyclouds/bblgum): An extremely tiny and simple wrapper around charmbracelet/gum
- [bb-dialog](https://github.com/pixelated-noise/bb-dialog): A simple wrapper library for working with dialog from Babashka
- [carve](https://github.com/borkdude/carve): Remove unused Clojure vars
- [chr](https://github.com/ThaddeusJiang/chr): native commands history report for the default terminal users
- [clj-kondo-bb](https://github.com/clj-kondo/clj-kondo-bb): Invoke clj-kondo from babashka scripts!
- [cljfmt](https://github.com/weavejester/cljfmt): A tool for formatting Clojure code
- [drepl](https://github.com/claytn/drepl): Node JS dependency-repl. The node repl you already know with easy library installations
- [instaparse-bb](https://github.com/babashka/instaparse-bb): Wrapper library aroud pod-babashka-instaparse
- [lein2deps](https://github.com/borkdude/lein2deps): Lein project.clj to deps.edn converter
- [neil](https://github.com/babashka/neil): A CLI to add common aliases and features to deps.edn-based projects
- [obsidian-babashka](https://github.com/filipesilva/obsidian-babashka): Run Obsidian Clojure(Script) codeblocks in Babashka
- [pod-babashka-buddy](https://github.com/babashka/pod-babashka-buddy): A pod around buddy core (Cryptographic Api for Clojure)
- [quickblog](https://github.com/borkdude/quickblog): Light-weight static blog engine for Clojure and babashka
- [solenoid](https://github.com/adam-james-v/solenoid): A small clojure tool for making little control UIs while using the REPL!
- [tools.bbuild](https://github.com/babashka/tools.bbuild): babashka version of tools.build
- [weather](https://gist.github.com/yogthos/f86e63b856e1413180b2262024ece977): command line util for grabbing current weather for a city using OpenWeather API
## [2022-12](https://twitter.com/search?q=%28%23babashka%20OR%20babashka%29%20until%3A2023-01-01%20since%3A2022-12-01&src=typed_query&f=live)
- Releases: [1.0.168](https://github.com/babashka/babashka/blob/master/CHANGELOG.md).
- [How GraalVM Helped Create a Fast-Starting Scripting Environment for Clojure](https://medium.com/graalvm/babashka-how-graalvm-helped-create-a-fast-starting-scripting-environment-for-clojure-b0fcc38b0746)
- [http-client](https://github.com/babashka/http-client): a new HTTP client library for babashka
- [How to Do Things With Babashka](https://presumably.de/how-to-do-things-with-babashka.html) by Paulus Esterhazy (2022-12)
- [Using Babashka to Get Electricity Prices](https://www.karimarttila.fi/clojure/2022/12/04/using-babashka-to-get-electricity-prices) by Kari Marttila
- [Adding prompts to your babashka scripts with dialog](https://www.pixelated-noise.com/blog/2022/12/09/dialog-and-babashka/index.html) by A.C. Danvers
- [Scraping an HTML dictionary with Babashka and Bootleg](https://blog.exupero.org/scraping-an-html-dictionary-with-babashka-and-bootleg/) by exupero
- [quickblog](https://github.com/borkdude/quickblog) v0.1.0: Light-weight static blog engine for Clojure and babashka
- [bb-excel](https://github.com/kbosompem/bb-excel): Read Excel Files in babashka scripts
- [Get paginated list of issues from gitlab with clojure/babashka](https://gist.github.com/MrGung/29d0547fe45316c3438032fd164d42c6) by Steffen Glückselig
- Install development builds: `bash <(curl https://raw.githubusercontent.com/babashka/babashka/master/install) --dev-build --dir /tmp`
- [JVM interop improvements in bb](https://twitter.com/borkdude/status/1606280110692352001)
- [A little trick to have conditional code for babashka in a .clj file without resorting to .cljc reader conditionals](https://twitter.com/borkdude/status/1599067149187764224)
- [Get Advent of Code input in babashka](https://gist.github.com/jeeger/6e39fea94ce49e33d1fa43f40cc36630) by Jan Seeger
- [Grabbing current weather for a city using OpenWeather API](https://gist.github.com/yogthos/f86e63b856e1413180b2262024ece977) by Dmitri Sotnikov
## [2022-11](https://twitter.com/search?q=%28%23babashka%29%20until%3A2022-12-01%20since%3A2022-11-01&src=typed_query&f=live)
- Releases: [1.0.165 - 1.0.167](https://github.com/babashka/babashka/blob/master/CHANGELOG.md).
- Registration for a [Babashka workshop](https://clojure.stream/workshops/babashka) with Rahul De at ClojureStream is now open!
- [Tutkain, a Sublime plugin for clojure based on socket REPL now with support for babashka](https://github.com/eerohele/Tutkain)
- [Manage git hooks in babashka](https://blaster.ai/blog/posts/manage-git-hooks-w-babashka.html) by Mykhaylo Bilyanskyy
- [Messing around with babashka](Messing around with Babashka) by Ian Muge
- [A babashka one liner to inspect data in portal](https://twitter.com/borkdude/status/1597505695800516609)
- [Using nREPL as a system interface](https://yogthos.net/posts/2022-11-26-nREPL-system-interaction.html) by Dmitri Sotnikov
- [deep-diff2](https://github.com/lambdaisland/deep-diff2) is now babashka-compatible!
- [A script to normalize auto-resolved keywords](https://github.com/babashka/babashka/blob/master/examples/normalize-keywords.clj)
- [Sum up page counts of books from Calibre library with babashka](https://gist.github.com/jeeger/d13159fefaee33c771be979639900ebc) by Jan Seeger
- [Tiny babashka script that returns a random clojure doc](https://gist.github.com/CarnunMP/c592cd3b6e711d56ddd4ca7832b9b251) by Carnun Marcus-Page
## [2022-10](https://twitter.com/search?q=%28%23babashka%29%20until%3A2022-11-01%20since%3A2022-10-01&src=typed_query&f=live)
- Releases: [1.0.164](https://github.com/babashka/babashka/blob/master/CHANGELOG.md).
- [bb-pod-racer](https://github.com/justone/bb-pod-racer): Speed up development of Babashka pods by Nate Jones
- [Babashka tasks VSCode plugin](https://marketplace.visualstudio.com/items?itemName=fbeyer.babashka-tasks) by Ferdinand Beyer
- A [PR](https://github.com/nextjournal/clerk/pull/232) to get Clerk working in babashka
- [lein2deps](https://github.com/borkdude/lein2deps): lein to deps.edn converter
- [awyeah-api](https://github.com/grzm/awyeah-api) by Michael Glaesemann v0.8.41 is now available! aws-api for Babashka. Aw yeah!
- [bbssh](https://github.com/epiccastle/bbssh/releases/tag/v0.2.0) by Crispin Wellington, v0.2.0 released
- [safely use rsync --archive --delete to backup a directory](https://gist.github.com/stelcodes/ddc8ff53de2192dca7d3fee1081ddb77) by Stel Abrego
## [2022-09](https://twitter.com/search?q=%28%23babashka%29%20until%3A2022-10-01%20since%3A2022-09-01&src=typed_query&f=live)
- Releases: [0.9.162 - 0.10.163](https://github.com/babashka/babashka/blob/master/CHANGELOG.md).
- Introducing [bbin](https://radsmith.com/bbin): a tool to install babashka scripts on your system by Radford Smith
- [bbssh](https://github.com/epiccastle/bbssh): Babashka pod for SSH support by [Epic Castle](https://github.com/epiccastle)
- [Loom virtual threads are coming to babashka](https://twitter.com/borkdude/status/1572222344684531717)
- [Tiny script to cycle through pulseaudio outputs (aka sinks)](https://gist.github.com/stelcodes/7d9136a5839b645b6cd5bc829a9fe541) by Stel Abrego
- [Tetris in the console via pod-babashka-lantera](https://twitter.com/borkdude/status/1569351199404576770)
- [org-mode gets support for babashka](https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=764642f55b7a9821acbabcfa1e2d354afab99be7)
- [docs for combining babashka process with promesa](https://github.com/babashka/process#promesa)
[exoscale/interceptor](https://github.com/exoscale/interceptor) became babashka-compatible!
- [Tutkain, socket REPL Sublime plugin, gets better support for babashka](https://twitter.com/borkdude/status/1568315151404924933)
- [babashka tweepy](https://github.com/davclark/babashka-tweepy): kicking the tires on using the tweepy library from a babashka task by Dav Clark
- [aoc helper](https://github.com/jjcomer/aoc-helper) by Josh Comer
- [Dogfooding blambda part 5](https://jmglov.net/blog/2022-09-02-dogfooding-blambda-logs.html) by Josh Glover
## [2022-08](https://twitter.com/search?q=%28%23babashka%29%20until%3A2022-09-01%20since%3A2022-08-01&src=typed_query&f=live)
- It's babashka's third birthday on August 9th 2022!
- [etaoin](https://github.com/clj-commons/etaoin), Pure Clojure Webdriver protocol implementation, is now babashka-compatible!
- [xforms](https://github.com/cgrand/xforms) is now babashka-compatible!
- [squint](https://github.com/squint-cljs/squint) and [cherry](https://github.com/squint-cljs/cherry) are CLJS-compilers that work with babashka!
## [2022-07](https://twitter.com/search?q=%28%23babashka%29%20until%3A2022-08-01%20since%3A2022-07-01&src=typed_query&f=live)
- Releases: [0.8.157 - 0.9.161](https://github.com/babashka/babashka/blob/master/CHANGELOG.md).
- [Recursive document transformations with Pandoc and Clojure](https://play.teod.eu/document-transform-pandoc-clojure/) by Teodor Heggelund
- [Babashka toolbox](https://babashka.org/toolbox/): A categorised directory of libraries and tools for Babashka
- [Quickblog](https://github.com/borkdude/quickblog): Light-weight static blog engine for Clojure and babashka
- Win a babashka t-shirt by participating in [this](https://twitter.com/borkdude/status/1547847843381030912) contest!
- [AWS Lambda, now with first class parentheses](https://www.juxt.pro/blog/nbb-lambda) by Ray McDermott (about nbb)
- [bb-github-app](https://github.com/brandonstubbs/bb-github-app): An example Babashka Script authenticating as a Github App and interacting with the Checks API
- [Ruuter](https://github.com/askonomm/ruuter#setting-up-with-babashka) is a routing library which works very well with bb
- [Blambda!](https://jmglov.net/blog/2022-07-03-blambda.html) by Josh Glover
- Files with the `.bb` extension are now correctly highlighted as Clojure code on Github! See [this](https://twitter.com/borkdude/status/1543937735429431298) tweet.
- Encode and decode files as kroki url diagrams, a [gist](https://gist.github.com/henryw374/070845dbd8cfb4672a3c0d06cf8b00e4) by Henry Widd
- Customized bb builds with clj-nix: [tweet](https://twitter.com/jlesquembre/status/1543686641461694470)
- Expose Clojure functions in the CLI with babashka and nix: [tweet](https://twitter.com/jlesquembre/status/1546777332471455745)
- [Meander](https://github.com/noprompt/meander) is now compatible with bb: [tweet](https://twitter.com/borkdude/status/1542881167338250242)
- [Deleting AWS Glacier vaults with babashka](https://javahippie.net/clojure/2022/07/23/deleting-aws-glacier-vaults-with-babashka.html) by Tim Zöller
## [2022-06](https://twitter.com/search?q=%28%23babashka%29%20until%3A2022-07-01%20since%3A2022-06-01&src=typed_query&f=live)
- Releases: [0.8.156](https://github.com/babashka/babashka/blob/master/CHANGELOG.md).
- [AWS wiki page](https://github.com/babashka/babashka/wiki/AWS)
- [blambda](https://github.com/jmglov/blambda): Blambda! is a custom runtime for AWS Lambda that lets you write functions using Babashka
- [Babashka CLI](https://blog.michielborkent.nl/babashka-cli.html): turn Clojure functions into CLIs!
- [Http-server](https://github.com/babashka/http-server#babashka): Serve static assets
- [Deps-bundler](https://github.com/MrGung/deps-bundler): Bundle dependencies on
a computer that has access to maven and clojars (PC-A) and bring these over to
a computer with limited access (PC-L).
- [Prismatic/schema](https://github.com/plumatic/schema/blob/master/CHANGELOG.md#130-2022-06-10) and babashka are now compatible
- [Logseq bb tasks](https://github.com/logseq/bb-tasks): Reusable babashka tasks used by logseq team
- [Breakneck Babashka on K8s](Breakneck Babashka on K8s) by Heow Goodman
## [2022-05](https://twitter.com/search?q=%28%23babashka%29%20until%3A2022-06-01%20since%3A2022-05-01&src=typed_query&f=live)
- Releases: [0.8.2](https://github.com/babashka/babashka/blob/master/CHANGELOG.md).
- [Etaoin](https://github.com/clj-commons/etaoin) moved to clj-commons and now works with babashka as well.
- [Nix docs for babashka](https://github.com/babashka/babashka/blob/master/doc/nix.md)
- [Fly.io docs for babashka](https://github.com/babashka/babashka/tree/master/doc/fly_io)
- [Babashka survey results](https://blog.michielborkent.nl/babashka-survey-q1-2022.html)
- [Quickdoc](https://github.com/borkdude/quickdoc): (Quick and minimal API doc generation for Clojure
- [Awyeah-api](https://github.com/grzm/awyeah-api) - Cognitect's aws-api for babashka
## [2022-04](https://twitter.com/search?q=%28%23babashka%29%20until%3A2022-05-01%20since%3A2022-04-01&src=typed_query&f=live)
- Releases: [0.8.0 - 0.8.1](https://github.com/babashka/babashka/blob/master/CHANGELOG.md).
- [Babashka and Clojure](https://youtu.be/ZvOs5Ele6VE) by Rahul Dé at North Virginia Linux Users Group
- [Setup-Clojure](https://github.com/DeLaGuardo/setup-clojure/releases/tag/5.0) Github action is now able to install babashka!
- Control Chrome via devtools using [clj-chrome-devtools](https://github.com/tatut/clj-chrome-devtools/blob/master/bb.clj) which runs with bb!
- Use pods directly in `bb.edn`: [tweet](https://twitter.com/borkdude/status/1510995356229767172)
## [2022-03](https://twitter.com/search?q=%28%23babashka%29%20until%3A2022-04-01%20since%3A2022-03-01&src=typed_query&f=live)
- Releases: [0.7.7 - 0.7.8](https://github.com/babashka/babashka/blob/master/CHANGELOG.md).
- [Create a password manager with Clojure using Babashka, sqlite, honeysql and stash](https://youtu.be/jm0RXmyjRJ8) by Daniel Amber
- [Detecting inconsistent aliases in a clojure codebase](https://www.youtube.com/watch?v=bf8KLKkCH2g) by Oxalorg
- [Clj-konmari](https://github.com/oxalorg/clj-konmari/) by Oxalorg
- [Logseq-query](https://github.com/cldwalker/logseq-query) by Gabriel Horner [(announcement tweet with video)](https://twitter.com/cldwalker/status/1506991213030871041)
- The [loom](https://github.com/aysylu/loom) library is now compatible [(tweet)](https://twitter.com/borkdude/status/1502237220811550723)
- The [at-at](https://github.com/overtone/at-at) library is now compatible
## [2022-02](https://twitter.com/search?q=%28%23babashka%29%20until%3A2022-03-01%20since%3A2022-02-01&src=typed_query&f=live)
- Releases: [0.7.5 - 0.7.6](https://github.com/babashka/babashka/blob/master/CHANGELOG.md).
- [Spire is available as a babashka pod](https://twitter.com/epic_castle/status/1496784352256008194)
- Babashka Clojure template on [Repl.it](https://replit.com/@eccentric-j/Babashka-Clojure-Template?v=1#replit.nix) by Eccentric J
- Create a self-contained executable with [caxa](https://github.com/babashka/babashka/wiki/Self-contained-executable)
- Cli-matic is now compatible due to this [PR](https://github.com/l3nz/cli-matic/pull/145)
- [I, too, Wrote Myself a Static Site Generator](https://dawranliou.com/blog/i-too-wrote-myself-a-static-site-generator/) by Daw-Ran Liou
- [Staplegun](https://github.com/escherize/staplegun): Single file clipboard-manager
- [Bbb](https://github.com/nikvdp/bbb): make executable CLI tools from bb scripts
- [Apptemplate](https://github.com/redstarssystems/apptemplate): Application project template for Clojure featuring bb tasks
## [2022-01](https://twitter.com/search?f=live&q=%28%23babashka%29%20until%3A2022-02-01%20since%3A2022-01-01&src=typed_query)
- Releases: [0.7.4](https://github.com/babashka/babashka/blob/master/CHANGELOG.md).
- [Babashka dev builds](https://github.com/babashka/babashka-dev-builds)
- [Writing Clojure-living-cookbooks](https://www.loop-code-recur.io/live-clojure-cookbooks/) by Cyprien Pannier
- [HTMX Todo App](https://github.com/prestancedesign/babashka-htmx-todoapp)
- [Better linting for `bb.edn`](https://twitter.com/borkdude/status/1484100071134220291)
- [Unwordle](https://github.com/mknoszlig/unwordle): solver for wordle puzzles
- [Using babashka with PHP](https://blog.michielborkent.nl/using-babashka-with-php.html) by Michiel Borkent
## 2021-12
- Releases: [0.6.8 - 0.7.3](https://github.com/babashka/babashka/blob/master/CHANGELOG.md).
- [Scripting with Babashka on Alfred](https://blog.wsscode.com/babashka-and-alfred/) by Wilker Lucio
- [babashka/spec.alpha](https://github.com/babashka/spec.alpha): a fork of spec.alpha that works with babashka.
- Several people are doing [Advent of Code puzzles with babashka](https://twitter.com/search?q=%23babashka%20%20%23AdventOfCode&src=typed_query&f=live)
- Compatibility with a [fork of tools.namespace](https://github.com/babashka/tools.namespace). This allows
running the Cognitect [test-runner](https://github.com/cognitect-labs/test-runner) (Cognitest) from source.
- [bb-components](https://github.com/vedang/bb-scripts#bb-components): A script to find all the components that you should deploy your code to.
- [Babashka workshop at JavaLand](https://github.com/ijug-ev/JavaLand/tree/main/Community-Aktivit%C3%A4ten#bash-war-gestern-shell-scripting-mit-babashka-clojure-ug-d%C3%BCsseldorf-christian-meter-rheinjug-jens-bendisposto)
- Install babashka [dev builds](https://twitter.com/borkdude/status/1475234968146227203)
- [Combine babashka and PHP](https://gist.github.com/borkdude/843548cba14ae9d283191e31bc483959)
- [System wide babashka tasks](https://twitter.com/borkdude/status/1476656022282551300)
- [Run an http file server as a babashka task](https://twitter.com/borkdude/status/1476870516233445377)
## 2021-11
- Releases: [0.6.5 - 0.6.7](https://github.com/babashka/babashka/blob/master/CHANGELOG.md).
- [Contajners](https://github.com/lispyclouds/contajners): An idiomatic,
data-driven, REPL friendly clojure client for OCI container engines.
- [deps-modules](https://github.com/exoscale/deps-modules#babashka): a clojure "tool" that attempts to solve one of the "multi module" project problems with tools.deps in a minimalistic way.
- [Moldable Emacs: a Clojure Playground with Babashka](https://ag91.github.io/blog/2021/11/05/moldable-emacs-a-clojure-playground-with-babashka/)
- [aws pod 0.1.0](https://twitter.com/borkdude/status/1459117378441261056)
- [tools.bbuild](https://github.com/babashka/tools.bbuild): a fork of tools.build that runs with babashka and [tools-deps-native](https://github.com/babashka/tools-deps-native)
- [Making markdown-clj babashka compatible](https://blog.michielborkent.nl/markdown-clj-babashka-compatible.html) by Michiel Borkent
- [radiale](https://github.com/xlfe/radiale): radiale: home automation project written using #babashka and Python
- [Writing a Clojure shell script with Babashka](https://www.youtube.com/watch?v=D-_Mz7rz1po), a video by Max Weber
- [makejack](https://github.com/hugoduncan/makejack): A clojure CLI build tool, and build library which can run with babashka.
- [I wrote myself a static site generator](https://freeston.me/posts/2021-11-29-new-site-generator/) (in babashka) by Dominic Freeston.
- [bipe](https://gist.github.com/borkdude/82dcdd36a1e61ef36f19221876e7b1b6): vipe for babashka
## 2021-10
- Releases: [0.6.2-0.6.4](https://github.com/babashka/babashka/blob/master/CHANGELOG.md).
- Babashka on the [Thoughtworks Technology Radar](https://www.thoughtworks.com/radar/platforms/babashka)
- [ruuter](https://github.com/askonomm/ruuter#setting-up-with-babashka) is a
routing library compatible with babashka.
- A list of [companies](https://github.com/babashka/babashka/blob/master/doc/companies.md) using babashka
- Ilshat Sultanov shares his [babashka tasks](https://twitter.com/just_sultanov/status/1446118161258987534)
- [Slack the music](https://github.com/javahippie/slack-the-music), a babashka script to update your slack status with your current Apple Music track by Tim Zöller.
- [Finding my inner Wes Anderson](https://javahippie.net/clojure/2021/10/18/finding-my-inner-wes-anderson.html) by Tim Zöller.
- [Run a local babashka script in a remote server](https://twitter.com/borkdude/status/1451110414062870528)
- [Replacing my Octopress blog with 200 lines of Babashka](https://blog.michielborkent.nl/migrating-octopress-to-babashka.html) by Michiel Borkent
- The babashka wiki now has a [GNU Emacs](https://github.com/babashka/babashka/wiki/GNU-Emacs) section
- Invoke babashka tasks in a [monorepo](https://github.com/babashka/babashka/discussions/1044#discussioncomment-1544956)
- [Speeding up builds with fs/modified-since](https://blog.michielborkent.nl/speeding-up-builds-fs-modified-since.html) by Michiel Borkent
## 2021-09
- New babashka 0.6.0 released. Highlight: support for `java.net.http` which
enables running [java-http-clj](https://github.com/schmee/java-http-clj) from
source. The raw interop is the first part of a multi-stage plan to move all
http related scripting towards `java.net.http` in favor of the other two
solutions currently available in `bb`: `babashka.curl` and
`org.httpkit.client`.
- [rss-saver](https://github.com/adam-james-v/rss-saver): Simple Clojure (Babashka) script that saves articles from world.hey.com RSS feeds.
- [babashka-docker-action-example](https://github.com/borkdude/babashka-docker-action-example)
- [script](https://gist.github.com/rutenkolk/dbd970d03a0d012b671db38434ccbfa7) to upgrade zig lang to the latest dev release
- [Cursive](https://twitter.com/CursiveIDE/status/1439022267187433472) adds support for babashka in 1.11.0
- How to filter tail output with babashka on [StackOverflow](https://stackoverflow.com/questions/69241046/how-to-filter-output-of-tail-with-babashka/69241911?stw=2#69241911)
- [Awesome Babashka: Parse & produce HTML and SQLite](https://blog.jakubholy.net/2021/awesome-babashka-dash/) by Jakub Holy
- [Neil](https://github.com/babashka/neil): an installable babashka script to add common aliases and features to deps.edn-based projects.
## 2021-08
- New babashka 0.5.1 released. Highlight: new `print-deps` command for printing
a `deps.edn` map and classpath which includes all built-in deps. This can be
used for editor tooling like Cursive and clojure-lsp, but also for migrating a
babashka project to a Graal native-image project.
- Babashka receives long term funding from [Clojurists Together](https://www.clojuriststogether.org/news/long-term-funding-selections/). Thanks!
- Babashka is 2 years old this month: the [first commit](https://github.com/babashka/babashka/commit/6dee50b0face0b890a7f628a63b21d5d706a48ee) was on 9 August 2019!
- [nbb](https://github.com/borkdude/nbb): babashka's Node.js cousin
- [Cursive](https://twitter.com/CursiveIDE/status/1422540023207915520) adds
support for babashka in the latest EAP
- [clojure-lsp](https://twitter.com/ericdallo/status/1422559744712138753) adds support for babashka scripts
- [bb guestbook](https://github.com/SVMBrown/bb-guestbook) by Scot Brown.
- [bb htmx todo app](https://github.com/prestancedesign/babashka-htmx-todoapp) by Michael Sahili.
- [bb aws lambda runtime](https://github.com/tatut/bb-lambda) by Tatu Tarvainen.
## 2021-07
- New babashka 0.5.0 released. Highlights: `clojure.tools.logging` + `taoensso.timbre` added, source compatibility with `clojure.data.json`.
- [Babashka tasks](https://youtu.be/u5ECoR7KT1Y), talk by Michiel Borkent
- [Rewriting a clojure file with rewrite-clj and babashka](https://youtu.be/b7NPKsm8gkc), video by Oxalorg
- [Babashka tasks for PostgreSQL](https://github.com/babashka/babashka/discussions/929) by Stel Abrego
- [String interpolation](https://twitter.com/yogthos/status/1415324124361154561) with Selmer in bb
- [Jirazzz](https://github.com/rwstauner/jirazzz): a babashka JIRA client by Randy Stauner
- [Babashka + scittle guestbook](https://github.com/kloimhardt/babashka-scittle-guestbook) by Kloimhardt
- [Paillier cryptosystem](https://github.com/babashka/babashka/discussions/948) by litteli
- [csv-to-yaml.clj](https://github.com/babashka/babashka/discussions/939) by Cora
## 2021-06
- New babashka 0.4.4 - 0.4.5 released.
- Share your babashka creations on the [Show and tell](https://github.com/babashka/babashka/discussions/categories/show-and-tell) forum on Github.
- [Integrating Babashka into Bazel](https://timjaeger.io/20210627-integrating-babashka-with-bazel.html) by Tim Jäger
- [Babashka + scittle guestbook example](https://github.com/kloimhardt/babashka-scittle-guestbook)
- [Slingshot works with babashka](https://twitter.com/borkdude/status/1402547783295504387)
- [Spire gets a babashka pod](https://twitter.com/epic_castle/status/1402212817533431808)
- [Text to speech AWS example](https://twitter.com/FieryCodDev/status/1401843357555511301) with scittle and babashka.
- [Game of Life](https://gist.github.com/mmzsource/655b9dcfe56eed8a045022837186ed84)
- [ob-babashka](https://gist.github.com/adam-james-v/f4d2b75a70b095d14a351a1eff96b4b0): Emacs org-babel functions for babashka.
- [Normalize auto-resolved keywords](https://github.com/babashka/babashka/tree/master/examples#normalize-keywordsclj)
- [Create PostgreSQL backups](https://twitter.com/stelstuff/status/1400559261025980418) using babashka.
- [Change flutter SDK](https://gist.github.com/ampersanda/aac70cc0644df12199ea32988f3c4d73) using babashka.
## 2021-05
- Babashka 0.3.7 - 0.4.3 released. Highlights:
- New [task runner feature](https://book.babashka.org/#tasks).
- Add [Selmer](https://github.com/yogthos/Selmer) to built-in libraries.
- Add compatibility with [jasentaa](https://github.com/rm-hull/jasentaa).
- New [website](https://babashka.org).
- [Talk](https://youtu.be/Yjeh57eE9rg): Babashka: a native Clojure interpreter for scripting — The 2021 Graal Workshop at CGO
- [Blog](https://savo.rocks/posts/playing-new-music-on-old-car-stereo-with-clojure-and-babashka/): Playing New Music On Old Car Stereo With Clojure And Babashka
- [Homoiconicity and feature flags](https://martinklepsch.org/posts/homoiconicity-and-feature-flags.html) by Martin Klepsch.
- [Manage your macOS setup](https://github.com/cldwalker/osx-setup) using babashka.
- [Localizing a Ghost theme](https://martinklepsch.org/posts/localizing-a-ghost-theme.html) by Martin Klepsch.
- [Babashka SQL pods 0.0.8](https://twitter.com/borkdude/status/1396136828479188997) including a MySQL pod
## 2021-04
- Babashka 0.3.2 - 0.3.6 released. See [CHANGELOG.md](https://github.com/babashka/babashka/blob/master/CHANGELOG.md). Highlights:
- Add [rewrite-clj](https://github.com/clj-commons/rewrite-clj).
- Support for the [binf](https://github.com/helins/binf.cljc) library.
- [Sort requires and imports](https://gist.github.com/laurio/01530ea7700752885df21e92bb926f75) using rewrite-clj
- Babashka [tasks proposal](https://github.com/babashka/babashka/issues/778), available in babashka 0.3.5
- A new useful function in `babashka.fs`: [modified-since](https://babashka.org/fs/babashka.fs.html#var-modified-since)
- Using babashka [for animations](https://twitter.com/RustyVermeer/status/1385269161106972673)
- [rewrite-edn](https://github.com/borkdude/rewrite-edn) is now compatible with babashka
## 2021-03
- Babashka 0.3.0 - 0.3.1 released. See [CHANGELOG.md](https://github.com/babashka/babashka/blob/master/CHANGELOG.md). Highlights: Raspberry Pi support, bb.edn, more flexible main invocation.
- [Babashka shebang](https://github.com/borkdude/deps.clj/blob/master/deps.bat#L1-L7) for Windows .bat files
- [Datalevin](https://twitter.com/huahaiy/status/1371689142585753604) now works as a babashka pod
- [Babashka sql pods](https://github.com/babashka/babashka-sql-pods/blob/master/CHANGELOG.md) update
- [JPoint](https://jpoint.ru/en/2021/talks/3nr1czuok3dvtewtcdjalm/) is going to have a talk on babashka
- A `python -m http.server` [replacement in babashka](https://gist.github.com/holyjak/36c6284c047ffb7573e8a34399de27d8)
- A [PR](https://github.com/ring-clojure/ring-codec/issues/26) to make `ring-codec` compatible with babashka
- The [stuartsierra/component](https://github.com/stuartsierra/component) library [seems to work with babashka](https://github.com/babashka/babashka/issues/742)
- [pathom3](https://pathom3.wsscode.com/docs/tutorials/babashka/) works with babashka!
- [VPN Connect](https://tech.toryanderson.com/2021/03/06/re-writing-an-openconnect-vpn-connect-script-in-babashka/) script
- [Github code search](https://gist.github.com/ertugrulcetin/4f35557962fac3d159d8c931e94873e9) script
## 2021-02
- Babashka 0.2.9 - 0.2.12 released
- [babashka.fs](https://github.com/babashka/fs): utility library for dealing with files (based on java.nio). Bundled with bb 0.2.9.
- New [Youtube channel](https://www.youtube.com/channel/UCRCl_R1ihLJt7IOgICdb9Lw) with babashka related videos
- MS SQL support for the [babashka sql pods](https://github.com/babashka/babashka-sql-pods/)
- [Clojure like its PHP](https://eccentric-j.com/blog/clojure-like-its-php.html): run babashka scripts as CGI scripts
- [Automating Video Edits with Clojure and ffmpeg](https://youtu.be/Tmgy57R9HZM) by Adam James
- [Gaka](https://github.com/cdaddr/gaka), a CSS-generating library that works with babashka.
- [Deploy babashka script to AWS Lambda](https://www.jocas.lt/blog/post/babashka-aws-lambda/) by Dainius Jocas.
- [Elisp](https://gist.github.com/llacom/f391f41cbf4de91739b52bf8bb1a6d54) and cider commands to spawn a babashka repl and connect to it
- [klein](https://gist.github.com/borkdude/c34e8e44eb5b4a6ca735bf8a86ff64fa), a
lein imitation script built on deps.edn
- [failjure](https://github.com/adambard/failjure) works with babashka.
- A [script](https://gist.github.com/borkdude/58f099b2694d206e6eec18daedc5077b) to solve our mono-repo problem with deps.edn at work.
- [Single-script vega-lite plotter](https://gist.github.com/vdikan/6b6063d6e1b00a3cd79bc7b3ce3853d6/)
- [Find vars with the clj-kondo pod](https://gist.github.com/borkdude/841d85d5ad04c517337166b3928697bd). Also see [video](https://youtu.be/TvBmtGS0KJE).
- [Another setup babashka Github action](https://github.com/marketplace/actions/setup-babashka)
- [AWS Lambda + babashka + minimal container image](https://gist.github.com/lukaszkorecki/a1fe27bf08f9b98e9def9da4bcb3264e)
- [football script](https://gist.github.com/mmzsource/a732950aa43d19c5a9b63bbb7f20b7eb)
- [ffclj](https://github.com/luissantos/ffclj): Clojure ffmpeg wrapper
- [clj-lineart](https://github.com/eccentric-j/clj-lineart): Generative line art from a clojure-cgi script
- [bunpack](https://github.com/robertfw/bunpack): remembers how to unpack things, so you don't have to
- A script to download deps for [all `deps.edn` aliases](https://github.com/babashka/babashka/blob/master/examples/download-aliases.clj)
## 2021-01
- Babashka [0.2.8](https://github.com/babashka/babashka/blob/master/CHANGELOG.md#v028) released. This includes new libraries: hiccup, core.match and clojure.test.check.
- On 27th of February, Michiel (a.k.a. @borkdude) will do a talk about babashka at the [2021 GraalVM workshop](https://graalworkshop.github.io/2021/).
- First release of the [aws pod](https://github.com/babashka/pod-babashka-aws).
- A [script](https://gist.github.com/borkdude/ba372c8cee311e31020b04063d88e1be) to print API breakage warnings.
- A [script](https://gist.github.com/lgouger/2262e2d2503306f2595e48a7888f4e73) to lazily page through AWS results using the new [aws pod](https://github.com/babashka/pod-babashka-aws).
- [Environ](https://github.com/weavejester/environ) works with babashka.
- [Expound](https://github.com/bhb/expound) now works with [spartan.spec](https://github.com/borkdude/spartan.spec/blob/master/examples/expound.clj)
- A basic [logger](https://gist.github.com/borkdude/c97da85da67c7bcc5671765aef5a89ad) that works in babashka scripts
- A basic [router](https://gist.github.com/borkdude/1627f39d072ea05557a324faf5054cf3) based on core.match
- A minimal [Github GraphQL client](https://gist.github.com/lagenorhynque/c1419487965c0fa3cf34862852825483)
- New developments around babashka on [Raspberry Pi](https://github.com/babashka/babashka/issues/241#issuecomment-763976749)
## 2020-12
- A new babashka talk: [Babashka and sci
internals](https://youtu.be/pgNp4Lk3gf0). Also see
[slides](https://speakerdeck.com/babashka/babashka-and-sci-internals-at-london-clojurians-december-2020)
and [REPL
session](https://gist.github.com/borkdude/66a4d844668e12ae1a8277af10d6cc4b).
- Babashka 0.2.6 released. See [release
notes](https://github.com/babashka/babashka/blob/master/CHANGELOG.md#v026).
- Babashka 0.2.5 released. See [release
notes](https://github.com/babashka/babashka/blob/master/CHANGELOG.md#v025).
- First release of the [sqlite pod](https://github.com/babashka/pod-babashka-sqlite3)
- First release of the [buddy pod](https://github.com/babashka/pod-babashka-buddy)
- The data from the babashka survey is now available
[here](https://nl.surveymonkey.com/results/SM-8W8V36DZ7/). I have provided a
summary [here](surveys/2020-11.md).
- Blog article: [exporter for passwordstore.org](https://www.ieugen.ro/posts/2020/2020-12-26-export-passwords-with-babashka/) by Eugen Stan
- [weavejester/progrock](https://github.com/weavejester/progrock) is a babashka-compatible library
for printing progress bars.
- A [maze animation](https://gist.github.com/mmzsource/e8c383f69244ebefde058004fee72a8a) babashka script by [mmz](https://gist.github.com/mmzsource)
## 2020-11
- Babashka [survey](https://nl.surveymonkey.com/r/H2HK3RC). Feedback will be used
for future development.
- Babashka 0.2.4 released. See [release
notes](https://github.com/babashka/babashka/blob/master/CHANGELOG.md#v024).
- [Gaiwan.co](https://github.com/lambdaisland/gaiwan_co#tech-stack) are building their static HTML with babashka and [bootleg](https://github.com/retrogradeorbit/bootleg#babashka-pod-usage).
- [sha-words](https://github.com/ordnungswidrig/sha-words): A clojure program to
turn a sha hash into list of nouns in a predictable jar.
- [Stash](https://github.com/rorokimdim/stash): a CLI for encrypted text storage
written in Haskell, accessible as pod from babashka and Python!
- NextJournal released a babashka [notebook environment](http://nextjournal.com/try/babashka?cm6=1).
- [Interdep](https://github.com/rejoice-cljc/interdep) manages interdependent
dependencies using Clojure's tools.deps and babashka.
- LA Clojure Meetup [presentation](https://youtu.be/RogyxI-GaGQ) by Nate Jones. Recorded in April 2020.
- [Github action](https://github.com/turtlequeue/setup-babashka) for babashka by Nicolas Ha.
- Oracle DB [feature flag](https://github.com/babashka/babashka/blob/master/doc/build.md#feature-flags) by Jakub Holy added.
- Torrent viewer [gist](https://gist.github.com/zelark/49ffbc0cd701c9299e35421ac2e3d5ab) by Aleksandr Zhuravlёv.
- Clone all repositories from a Gitlab group:
[gist](https://gist.github.com/MrGung/81bee21eb52cb9307f336705d5ab08ad) by
Steffen Glückselig.
- [Matchete](https://github.com/xapix-io/matchete), a pattern matching library,
works with babashka. See
[example](https://github.com/babashka/babashka/issues/631).
## 2020-10
- Babashka 0.2.3 released. See [release
notes](https://github.com/babashka/babashka/blob/master/CHANGELOG.md#v023-2020-10-21).
- [Malcolm Sparks](https://twitter.com/malcolmsparks/status/1320274099952848896) posted a
[script](https://gist.github.com/malcolmsparks/61418b6bbcd0962536add1ccb07033b5) that
sorts his photo collection.
- [Image viewer](https://github.com/babashka/babashka/tree/master/examples#image-viewer) example
- SQL Server [pod](https://github.com/xledger/pod_sql_server) by Isak Sky
- [SSH Auth Github](https://github.com/nextjournal/ssh-auth-github) by
NextJournal.
- [pod-tzzh-mail](https://github.com/tzzh/pod-tzzh-mail): a pod to send mail.
- NextJournal [replaces bash with a babashka script](https://twitter.com/kommen/status/1311574776834666496)
## 2020-09
- Babashka
[0.2.1](https://github.com/babashka/babashka/blob/master/CHANGELOG.md#v021-2020-09-25)
and 0.2.2 released.
- Code Quality report for Clojure projects in Gitlab using babashka and clj-kondo. See [gist](https://gist.github.com/hansbugge/4be701d771057e8ef6bbbb0912656355). By Hans Bugge.
- [pod-tzzh-aws](https://github.com/tzzh/pod-tzzh-aws): a pod to interact with AWS.
- [spotifyd-notification](https://github.com/dharrigan/spotifyd-notification) by
David Harrigan.
## 2020-08
- Babashka [0.2.0](https://github.com/babashka/babashka/blob/master/CHANGELOG.md#v020-2020-08-28) released.
- Maarten Metz
[blogs](https://www.mxmmz.nl/blog/building-a-website-with-babashka.html) about
how he rebuilt his blog using babashka.
## 2020-07
- Blake Miller published [https://gitlab.com/blak3mill3r/emacs-ludicrous-speed](emacs-ludicrous-speed).
- [babashka-clojure](https://github.com/marketplace/actions/babashka-clojure) Github action.
- [testdoc](https://github.com/liquidz/testdoc) works with babashka.
- [babashka-test-action](https://github.com/liquidz/babashka-test-action)
- New release of [tabl](https://github.com/justone/tabl)
which also can be used as a pod from babashka.
## 2020-06
- Babashka [0.1.3](https://github.com/babashka/babashka/blob/master/CHANGELOG.md#v013-2020-06-27) and 0.1.2 released.
- New release of [brisk](https://github.com/justone/brisk), a CLI around nippy which can be used as a pod from babashka.
- [passphrase.clj](https://gist.github.com/snorremd/43c49649d2d844ee1e646fee67c141bb) script by Snorre Magnus Davøen

87
doc/nix.md Normal file
View file

@ -0,0 +1,87 @@
# Using Babashka with Nix
Babashka is [packaged](https://search.nixos.org/packages?type=packages&query=babashka) in nixpkgs and can be easily used from the Nix package manager.
The following assumes a recent installation of nix and uses the unstable [nix cli](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix.html) and [Flakes](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-flake.html).
To enable the unstable cli and flakes add the following to `/etc/nix/nix.conf`:
```
extra-experimental-features flakes nix-command
```
## Imperative install on Nix
To imperatively install nix for the current user, run `nix profile install babashka`.
## Declarative global install on NixOS
To install babashka for all users on a NixOS system, place it in `environment.systemPackages` in your `configuration.nix`:
```nix
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
babashka
];
}
```
Then run `nixos-rebuild switch`, to activate the new configuration.
## Declarative per-user install with home-manager
You can install babashka for a specific user using [home-manager](https://github.com/nix-community/home-manager). Add the following to your `~/.config/nixpkgs/home.nix`:
```nix
{ pkgs, ... }:
{
home.packages = with pkgs; [
babashka
];
}
```
Then run `home-manager switch`, to activate the new configuration.
## Per project install with direnv
To make babashka available on a per-project basis, you can use [direnv](https://direnv.net/).
Create a file `.envrc` in the project directory with the following contents:
```
use flake
```
Create a file `flake.nix` in the project directory with the following contents:
```nix
{
outputs = {nixpkgs, ...}: let
supportedSystems = ["x86_64-linux" "x86_64-darwin"];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
nixpkgsFor = system: import nixpkgs {inherit system;};
in {
devShell = forAllSystems (system: let
pkgs = nixpkgsFor system;
in
pkgs.mkShell {
packages = with pkgs; [
babashka
];
});
};
}
```
After running `direnv allow`, babashka should be available on the `$PATH`, when you are inside the project directory.
## Write Babashka Application
You can write babashka scripts with native dependencies using [WriteBabashkaApplication](https://github.com/sohalt/write-babashka-application).
The WriteBabashkaApplication repository has an [example](https://github.com/Sohalt/write-babashka-application/tree/main/example) `flake.nix` using `cowsay` as an external dependency.
You can download that example, and then build the application using `nix build` or run it using `nix run`.

972
doc/projects.md Normal file
View file

@ -0,0 +1,972 @@
# Projects
The following libraries and projects are known to work with babashka.
- [Projects](#projects)
- [Libraries](#libraries)
- [tools.namespace](#toolsnamespace)
- [test-runner](#test-runner)
- [spec.alpha](#specalpha)
- [clj-http-lite](#clj-http-lite)
- [spartan.spec](#spartanspec)
- [missing.test.assertions](#missingtestassertions)
- [medley](#medley)
- [limit-break](#limit-break)
- [clojure-csv](#clojure-csv)
- [regal](#regal)
- [cprop](#cprop)
- [comb](#comb)
- [nubank/docopt](#nubankdocopt)
- [arrangement](#arrangement)
- [clojure.math.combinatorics](#clojuremathcombinatorics)
- [testdoc](#testdoc)
- [doric](#doric)
- [clojure.data.zip](#clojuredatazip)
- [clj-psql](#clj-psql)
- [camel-snake-kebab](#camel-snake-kebab)
- [aero](#aero)
- [clojure.data.generators](#clojuredatagenerators)
- [honeysql](#honeysql)
- [bond](#bond)
- [portal](#portal)
- [version-clj](#version-clj)
- [matchete](#matchete)
- [progrock](#progrock)
- [clj-commons/fs](#clj-commonsfs)
- [cljc.java-time](#cljcjava-time)
- [environ](#environ)
- [gaka](#gaka)
- [failjure](#failjure)
- [pretty](#pretty)
- [clojure-term-colors](#clojure-term-colors)
- [binf](#binf)
- [rewrite-edn](#rewrite-edn)
- [expound](#expound)
- [omniconf](#omniconf)
- [slingshot](#slingshot)
- [hasch](#hasch)
- [crispin](#crispin)
- [ffclj](#ffclj)
- [multigrep](#multigrep)
- [java-http-clj](#java-http-clj)
- [component](#component)
- [minimallist](#minimallist)
- [ruuter](#ruuter)
- [clj-commons.digest](#clj-commonsdigest)
- [contajners](#contajners)
- [dependency](#dependency)
- [specmonstah](#specmonstah)
- [markdown-clj](#markdown-clj)
- [algo.monads](#algomonads)
- [datalog-parser](#datalog-parser)
- [at-at](#at-at)
- [aysylu/loom](#aysyluloom)
- [Clarktown](#clarktown)
- [Malli](#malli)
- [Meander](#meander)
- [Schema](#schema)
- [Sluj](#sluj)
- [malli-cli](#malli-cli)
- [Pods](#pods)
- [Projects](#projects-1)
- [babashka-test-action](#babashka-test-action)
- [deps.clj](#depsclj)
- [4bb](#4bb)
- [babashka lambda layer](#babashka-lambda-layer)
- [Release on push Github action](#release-on-push-github-action)
- [justone/bb-scripts](#justonebb-scripts)
- [nativity](#nativity)
- [cldwalker/bb-clis](#cldwalkerbb-clis)
- [krell template](#krell-template)
- [wee-httpd](#wee-httpd)
- [covid19-babashka](#covid19-babashka)
- [bb-spotify](#bb-spotify)
- [lambdaisland/open-source](#lambdaislandopen-source)
- [dharrigan/spotifyd-notification](#dharriganspotifyd-notification)
- [nextjournal/ssh-github-auth](#nextjournalssh-github-auth)
- [turtlequeue/setup-babashka](#turtlequeuesetup-babashka)
- [interdep](#interdep)
- [sha-words](#sha-words)
- [adam-james-v/scripts](#adam-james-vscripts)
- [oidc-client](#oidc-client)
- [jirazzz](#jirazzz)
- [Babashka + scittle guestbook](#babashka--scittle-guestbook)
- [bb htmx todo app](#bb-htmx-todo-app)
- [bb aws lambda runtime](#bb-aws-lambda-runtime)
- [bb-github-app](#bb-github-app)
Also keep an eye on the [news](news.md) page for new projects, gists and other
developments around babashka.
## Libraries
For a full list of libraries, see [libraries.csv](./libraries.csv). To add a
library, see [these instructions](./dev.md#tests-for-libraries).
### [tools.namespace](https://github.com/babashka/tools.namespace)
A fork of `tools.namespace`. This is used by other libraries and enables them to
be supported by babashka.
### [test-runner](https://github.com/cognitect-labs/test-runner)
This library works with the
[tools.namespace](https://github.com/babashka/tools.namespace) fork. See its
readme for an example task for running tests.
### [spec.alpha](https://github.com/babashka/spec.alpha)
A fork of `clojure.spec.alpha` that includes support for generation and
instrumentation! Its readme also contains instructions on how to use
`clojure.core.specs.alpha`.
<!-- ### [tools.bbuild](https://github.com/babashka/tools.bbuild) -->
<!-- A fork of `tools.build`. -->
### [clj-http-lite](https://github.com/clj-commons/clj-http-lite)
Example:
``` shell
$ export BABASHKA_CLASSPATH="$(clojure -Sdeps '{:deps {org.clj-commons/clj-http-lite {:mvn/version "0.4.392"}}}' -Spath)"
$ bb "(require '[clj-http.lite.client :as client]) (:status (client/get \"https://www.clojure.org\"))"
200
```
### [spartan.spec](https://github.com/borkdude/spartan.spec/)
An babashka-compatible implementation of `clojure.spec.alpha`. See
[spec.alpha](#specalpha) for a more complete implementation.
### [missing.test.assertions](https://github.com/borkdude/missing.test.assertions)
This library checks if no assertions have been made in a test:
``` shell
$ export BABASHKA_CLASSPATH=$(clojure -Spath -Sdeps '{:deps {borkdude/missing.test.assertions {:git/url "https://github.com/borkdude/missing.test.assertions" :sha "603cb01bee72fb17addacc53c34c85612684ad70"}}}')
$ lein bb "(require '[missing.test.assertions] '[clojure.test :as t]) (t/deftest foo) (t/run-tests)"
Testing user
WARNING: no assertions made in test foo
Ran 1 tests containing 0 assertions.
0 failures, 0 errors.
{:test 1, :pass 0, :fail 0, :error 0, :type :summary}
```
### [medley](https://github.com/weavejester/medley/)
Example:
``` shell
$ export BABASHKA_CLASSPATH=$(clojure -Spath -Sdeps '{:deps {medley/medley {:mvn/version "1.3.0"}}}')
$ bb -e "(require '[medley.core :as m]) (m/index-by :id [{:id 1} {:id 2}])"
{1 {:id 1}, 2 {:id 2}}
```
### [limit-break](https://github.com/technomancy/limit-break)
A debug REPL library.
Latest coordinates checked with with bb:
``` clojure
{:git/url "https://github.com/technomancy/limit-break" :sha "050fcfa0ea29fe3340927533a6fa6fffe23bfc2f" :deps/manifest :deps}
```
Example:
``` shell
$ export BABASHKA_CLASSPATH="$(clojure -Sdeps '{:deps {limit-break {:git/url "https://github.com/technomancy/limit-break" :sha "050fcfa0ea29fe3340927533a6fa6fffe23bfc2f" :deps/manifest :deps}}}' -Spath)"
$ bb "(require '[limit.break :as lb]) (let [x 1] (lb/break))"
Babashka v0.0.49 REPL.
Use :repl/quit or :repl/exit to quit the REPL.
Clojure rocks, Bash reaches.
break> x
1
```
### [clojure-csv](https://github.com/davidsantiago/clojure-csv)
A library for reading and writing CSV files. Note that babashka already comes
with `clojure.data.csv`, but in case you need this other library, this is how
you can use it:
``` shell
export BABASHKA_CLASSPATH="$(clojure -Sdeps '{:deps {clojure-csv {:mvn/version "RELEASE"}}}' -Spath)"
./bb -e "
(require '[clojure-csv.core :as csv])
(csv/write-csv (csv/parse-csv \"a,b,c\n1,2,3\"))
"
```
### [regal](https://github.com/lambdaisland/regal)
Example:
``` shell
$ export BABASHKA_CLASSPATH=$(clojure -Spath -Sdeps '{:deps {lambdaisland/regal {:mvn/version "0.0.143"}}}')
$ bb -e "(require '[lambdaisland.regal :as regal]) (regal/regex [:* \"ab\"])"
#"(?:\Qab\E)*"
```
### [cprop](https://github.com/tolitius/cprop/)
A clojure configuration library. Latest test version: `"0.1.16"`.
### [comb](https://github.com/weavejester/comb)
Simple templating system for Clojure. Latest tested version: `"0.1.1"`.
``` clojure
(require '[babashka.deps :as deps])
(deps/add-deps '{:deps {comb/comb {:mvn/version "0.1.1"}}})
(require '[comb.template :as template])
(template/eval "<% (dotimes [x 3] %>foo<% ) %>") ;;=> "foofoofoo"
```
### [nubank/docopt](https://github.com/nubank/docopt.clj#babashka)
Docopt implementation in Clojure, compatible with babashka.
### [arrangement](https://github.com/greglook/clj-arrangement)
A micro-library which provides a total-ordering comparator for Clojure
values. Tested with version `1.2.0`.
### [clojure.math.combinatorics](https://github.com/clojure/math.combinatorics)
``` clojure
$ bb --classpath "$(clojure -Spath -Sdeps '{:deps {org.clojure/math.combinatorics {:mvn/version "0.1.6"}}}')" \
-e "(use 'clojure.math.combinatorics) (permutations [:a :b])"
((:a :b) (:b :a))
```
### [testdoc](https://github.com/liquidz/testdoc)
Yet another doctest implementation in Clojure.
``` clojure
$ export BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {testdoc {:mvn/version "1.2.0"}}}' -Spath)
$ bb '(ns foo (:use clojure.test testdoc.core))
(defn foo "
=> (foo)
:foox"
[] :foo)
(deftest footest
(is (testdoc (var foo))))
(test-var (var footest))'
FAIL in (footest) (:1)
(= (foo) :foox)
expected: :foox
actual: :foo
```
### [doric](https://github.com/joegallo/doric)
Library for printing tables.
``` clojure
$ export BABASHKA_CLASSPATH=$(clojure -Spath -Sdeps '{:deps {doric {:mvn/version "0.9.0"}}}')
$ bb "(use 'doric.core) (println (table [:a :b :c] [{:a 1 :b 2 :c 3} {:a 4 :b 5 :c 6}]))"
|---+---+---|
| A | B | C |
|---+---+---|
| 1 | 2 | 3 |
| 4 | 5 | 6 |
|---+---+---|
```
### [clojure.data.zip](https://github.com/clojure/data.zip)
Utilities for clojure.zip, among other things a more fluent way to work
with xml.
Small sample:
``` clojure
$ export BABASHKA_CLASSPATH=$(clojure -Spath -Sdeps '{:deps {org.clojure/data.zip {:mvn/version "1.0.0"}}}')
$ cat data_zip_xml.clj
(require '[clojure.data.xml :as xml])
(require '[clojure.zip :as zip])
(require '[clojure.data.zip.xml :refer [text attr attr= xml-> xml1-> text=]])
(def data (str "<root>"
" <character type=\"person\" name=\"alice\" />"
" <character type=\"animal\" name=\"march hare\" />"
"</root>"))
(let [xml (-> data java.io.StringReader. xml/parse zip/xml-zip)]
(prn :alice-is-a (xml1-> xml :character [(attr= :name "alice")] (attr :type)))
(prn :animal-is-called (xml1-> xml :character [(attr= :type "animal")] (attr :name))))
$ bb data_zip_xml.clj
:alice-is-a "person"
:animal-is-called "march hare"
```
(see for exaple [this article](https://blog.korny.info/2014/03/08/xml-for-fun-and-profit.html#datazip-for-zipper-awesomeness)
for more on clojure.data.zip).
### [clj-psql](https://github.com/DarinDouglass/clj-psql)
A small Clojure wrapper for interacting with `psql`.
```clojure
user> (psql/query conn "select name, subject from grades where grade = 100")
=> ({:name "Bobby Tables", :subject "Math"}
{:name "Suzy Butterbean", :subject "Math"})
```
### [camel-snake-kebab](https://github.com/clj-commons/camel-snake-kebab)
A library for word case conversions.
``` clojure
(require '[babashka.deps :as deps])
(deps/add-deps '{:deps {camel-snake-kebab/camel-snake-kebab {:mvn/version "0.4.2"}}})
(require '[camel-snake-kebab.core :as csk])
(csk/->camelCase 'flux-capacitor) ;;=> 'fluxCapacitor
```
### [aero](https://github.com/juxt/aero/)
A small library for explicit, intentful configuration.
### [clojure.data.generators](https://github.com/clojure/data.generators)
Random data generators
### [honeysql](https://github.com/seancorfield/honeysql)
Turn Clojure data structures into SQL
### [bond](https://github.com/circleci/bond)
Spying and stubbing library, primarily intended for tests.
### [portal](https://github.com/djblue/portal/)
A clojure tool to navigate through your data. This example will launch a browser to view your `deps.edn`:
``` clojure
$ cat deps.edn | bb -e "(babashka.deps/add-deps '{:deps {djblue/portal {:mvn/version \"0.9.0\"}}})" \
-e "(require 'portal.main)" \
-e '(portal.main/-main "edn")'
```
Also see [examples](https://github.com/babashka/babashka/tree/master/examples#portal).
### [version-clj](https://github.com/xsc/version-clj)
Analysis and comparison of artifact version numbers.
``` clojure
> export BABASHKA_CLASSPATH=$(clojure -Spath -Sdeps '{:deps {version-clj/version-clj {:mvn/version "0.1.2"}}}')
> bb --repl
...
user=> (require '[version-clj.core :as ver])
nil
user=> (ver/version->seq "1.0.0-SNAPSHOT")
[(1 0 0) ["snapshot"]]
user=> (ver/version-compare "1.2.3" "1.0.0")
1
user=> (ver/version-compare "1.0.0-SNAPSHOT" "1.0.0")
-1
user=> (ver/version-compare "1.0" "1.0.0")
0
```
### [matchete](https://github.com/xapix-io/matchete.git)
Pattern matching library:
``` clojure
$ rlwrap bb -cp "$(clojure -Spath -Sdeps '{:deps {io.xapix/matchete {:mvn/version "1.2.0"}}}')"
user=> (require '[matchete.core :as mc])
nil
user=> (mc/matches '{?k 1} {:x 1 :y 1})"
({?k :y} {?k :x})
```
### [progrock](https://github.com/weavejester/progrock)
A functional Clojure progress bar for the command line.
Tested version: 0.1.2.
### [clj-commons/fs](https://github.com/clj-commons/fs)
File system utilities for Clojure.
``` clojure
(require '[babashka.deps :as deps])
(deps/add-deps '{:deps {clj-commons/fs {:mvn/version "1.5.2"}}})
(require '[me.raynes.fs :as fs])
(fs/link? "/tmp") ;; true
```
### [cljc.java-time](https://github.com/henryw374/cljc.java-time)
``` clojure
(require '[babashka.deps :as deps])
(deps/add-deps '{:deps {cljc.java-time/cljc.java-time {:mvn/version "0.1.12"}}})
(require '[cljc.java-time.local-date :as ld])
(def a-date (ld/parse "2019-01-01"))
(ld/plus-days a-date 99)
```
### [environ](https://github.com/weavejester/environ)
Library for managing environment variables in Clojure.
``` clojure
(require '[babashka.deps :as deps])
(babashka.deps/add-deps '{:deps {environ/environ {:mvn/version "1.2.0"}}})
(require '[environ.core :refer [env]])
(prn (:path env))
```
### [gaka](https://github.com/cdaddr/gaka)
``` clojure
(ns script
(:require [babashka.deps :as deps]))
(deps/add-deps '{:deps {gaka/gaka {:mvn/version "0.3.0"}}})
(require '[gaka.core :as gaka])
(def rules [:div#foo
:margin "0px"
[:span.bar
:color "black"
:font-weight "bold"
[:a:hover
:text-decoration "none"]]])
(println (gaka/css rules))
```
Output:
``` css
div#foo {
margin: 0px;}
div#foo span.bar {
color: black;
font-weight: bold;}
div#foo span.bar a:hover {
text-decoration: none;}
```
### [failjure](https://github.com/adambard/failjure)
Working with failed computations in Clojure.
``` clojure
(require '[babashka.deps :as deps])
(deps/add-deps '{:deps {failjure/failjure {:mvn/version "2.1.1"}}})
(require '[failjure.core :as f])
(f/fail "foo")
```
### [pretty](https://github.com/AvisoNovate/pretty)
The `io.aviso.ansi` namespace provides ANSI font and background color support.
``` clojure
(require '[babashka.deps :as deps])
(deps/add-deps
'{:deps {io.aviso/pretty {:mvn/version "0.1.36"}}})
(require '[io.aviso.ansi :as ansi])
(println
(str "The following text will be "
ansi/bold-red-font "bold and red "
ansi/reset-font "but this text will not."))
```
### [clojure-term-colors](https://github.com/trhura/clojure-term-colors)
Clojure ASCII color formatting for terminal output.
``` clojure
(require '[babashka.deps :as deps])
(deps/add-deps
'{:deps {clojure-term-colors/clojure-term-colors {:mvn/version "0.1.0"}}})
(require '[clojure.term.colors :as c])
(println
(c/yellow "Yellow")
(c/red "Red")
"No color")
```
### [binf](https://github.com/helins/binf.cljc)
Handling binary formats in all shapes and forms.
### [rewrite-edn](https://github.com/borkdude/rewrite-edn)
Rewrite EDN with preservation of whitespace, based on rewrite-clj.
Example:
``` clojure
#!/usr/bin/env bb
(require '[babashka.deps :as deps])
(deps/add-deps '{:deps {borkdude/rewrite-edn {:mvn/version "0.0.2"}}})
(require '[borkdude.rewrite-edn :as r])
(def edn-string (slurp "deps.edn"))
(def nodes (r/parse-string edn-string))
(println (str (r/assoc-in nodes [:deps 'my-other-dep] {:mvn/version "0.1.2"})))
```
### [expound](https://github.com/bhb/expound)
Formats `spartan.spec` error messages in a way that is optimized for humans to read.
Example:
``` clojure
#!/usr/bin/env bb
(ns expound
(:require [babashka.deps :as deps]))
(deps/add-deps
'{:deps {borkdude/spartan.spec {:git/url "https://github.com/borkdude/spartan.spec"
:sha "bf4ace4a857c29cbcbb934f6a4035cfabe173ff1"}
expound/expound {:mvn/version "0.8.9"}}})
;; Loading spartan.spec will create a namespace clojure.spec.alpha for compatibility:
(require 'spartan.spec)
(alias 's 'clojure.spec.alpha)
;; Expound expects some vars to be there, like `fdef`. Spartan prints warnings that these are used, but doesn't implement them yet.
(require '[expound.alpha :as expound])
(s/def ::a (s/cat :i int? :j string?))
(expound/expound ::a [1 2])
```
### [omniconf](https://github.com/grammarly/omniconf)
script.clj:
``` clojure
#!/usr/bin/env bb
(ns script
(:require [babashka.deps :as deps]))
(deps/add-deps
'{:deps {com.grammarly/omniconf {:mvn/version "0.4.3"}}})
(require '[omniconf.core :as cfg])
(cfg/define {:foo {}})
(cfg/populate-from-env)
(cfg/get :foo)
```
``` text
FOO=1 script.clj
Populating Omniconf from env: 1 value(s)
"1"
```
### [slingshot](https://github.com/scgilardi/slingshot)
Enhanced try and throw for Clojure leveraging Clojure's capabilities.
``` clojure
$ export BABASHKA_CLASSPATH=$(clojure -Spath -Sdeps '{:deps {slingshot/slingshot {:mvn/version "0.12.2"}}}')
$ bb -e "(require '[slingshot.slingshot :as s]) (s/try+ (s/throw+ {:type ::foo}) (catch [:type ::foo] [] 1))"
1
```
NOTE: slingshot's tests pass with babashka except one: catching a record types
by name. This is due to a difference in how records are implemented in
babashka. This may be fixed later if this turns out to be really useful.
### [hasch](https://github.com/replikativ/hasch)
Cross-platform (JVM and JS atm.) edn data structure hashing for Clojure.
``` clojure
$ export BABASHKA_CLASSPATH=$(clojure -Spath -Sdeps '{:deps {io.replikativ/hasch {:mvn/version "0.3.7"}}}')
$ bb -e "(use 'hasch.core) (edn-hash (range 100))"
(168 252 48 247 180 148 51 182 108 76 20 251 155 187 66 8 124 123 103 28 250 151 26 139 10 216 119 168 101 123 130 225 66 168 48 63 53 99 25 117 173 29 198 229 101 196 162 30 23 145 7 166 232 193 57 239 226 238 240 41 254 78 135 122)
```
NOTE: hasch's tests pass with babashka except the test around hashing
records. This is due to a difference in how records are implemented in
babashka. This may be fixed later if this turns out to be really useful.
### [crispin](https://github.com/dunaj-project/crispin)
Populate a configuration map from multiple sources (environment variables,
system variables, config files, etc.)
Example:
script.clj
``` clojure
#!/usr/bin/env bb
(ns script
(:require [babashka.deps :as deps]))
(deps/add-deps
'{:deps {crispin/crispin {:mvn/version "0.3.8"}}})
(require '[crispin.core :as crispin])
(def app-cfg (crispin/cfg))
(app-cfg :foo)
```
``` text
FOO=1 script.clj
"1"
```
### [ffclj](https://github.com/luissantos/ffclj)
A wrapper around executing `ffmpeg` and `ffprobe`. Supports progress reporting via core.async channels.
### [multigrep](https://github.com/clj-commons/multigrep)
Regex-based file grepping and/or text substitution.
Example:
- find the words that are exactly four letters long in some strings:
```clj
(ns multigrep-demo
(:require [babashka.deps :as deps]
[clojure.pprint :refer [pprint]])
(:import (java.io StringReader)))
(deps/add-deps '{:deps {clj-commons/multigrep {:mvn/version "0.5.0"}}})
(require '[multigrep.core :as grep])
; the StringReaders could be anything that clojure.java.io/reader will accept (files, URLs, etc.)
(let [sentence1 (StringReader. "the quick brown fox jumps over the lazy dog")
sentence2 (StringReader. "Lorem ipsum dolor sit amet")]
(pprint (grep/grep #"\b[a-z]{4}\b" [sentence1 sentence2])))
```
outputs:
```
({:file
#object[java.io.StringReader...],
:line "the quick brown fox jumps over the lazy dog",
:line-number 1,
:regex #"\b[a-z]{4}\b",
:re-seq ("over" "lazy")}
{:file
#object[java.io.StringReader...],
:line "Lorem ipsum dolor sit amet",
:line-number 1,
:regex #"\b[a-z]{4}\b",
:re-seq ("amet")})
```
### [java-http-clj](https://github.com/schmee/java-http-clj)
Http client based on `java.net.http`.
### [component](https://github.com/stuartsierra/component)
A tiny Clojure framework for managing the lifecycle and dependencies of software components which have runtime state.
### [minimallist](https://github.com/green-coder/minimallist)
A minimalist data-driven data model library, inspired by Clojure Spec and Malli.
Example partially borrowed from [minimallist's cljdoc](https://cljdoc.org/d/minimallist/minimallist/CURRENT/doc/usage-in-babashka)
```clj
(require '[babashka.deps :refer [add-deps]])
(add-deps '{:deps {minimallist/minimallist {:git/url "https://github.com/green-coder/minimallist"
:sha "b373bb18b8868526243735c760bdc67a88dd1e9a"}}})
(require '[minimallist.core :as m])
(require '[minimallist.helper :as h])
(def contact (h/map [:name (h/fn string?)]
[:phone (h/fn string?)]))
(m/valid? contact {:name "Lucy" :phone "5551212"}) ;=> true
(m/valid? contact {:name "Lucy" :phone 5551212}) ;=> false
(m/describe contact {:name "Lucy" :phone "5551212"}) ;=> {:valid? true, :entries {...}}
(m/describe contact {:name "Lucy" :phone 5551212}) ;=> {:valid? false, :entries {... :phone {:valid? false...}}}
;; Does not work for now.
;(require '[clojure.test.check.generators :as tcg])
;(require '[minimallist.generator :as mg])
;(tcg/sample (mg/gen (h/fn int?)))
```
### [ruuter](https://github.com/askonomm/ruuter)
A zero-dependency router where each route is a map. Works with the httpkit server built into babashka.
### [clj-commons.digest](https://github.com/clj-commons/digest)
A message digest library, providing functions for MD5, SHA-1, SHA-256, etc.
### [contajners](https://github.com/lispyclouds/contajners)
An idiomatic, data-driven, REPL friendly clojure client for OCI container engines.
Example:
``` clojure
#!/usr/bin/env bb
(require '[babashka.deps :as deps])
(deps/add-deps '{:deps {org.clojars.lispyclouds/contajners {:mvn/version "0.0.6"}}})
(require '[contajners.core :as c])
(def images-docker (c/client {:engine :docker
:category :images
:version "v1.41"
:conn {:uri "unix:///var/run/docker.sock"}}))
; Pull an image
(c/invoke images-docker {:op :ImageCreate
:params {:fromImage "busybox:musl"}})
; list all images
(c/invoke images-docker {:op :ImageList})
```
### [dependency](https://github.com/stuartsierra/dependency)
Represent dependency graphs as a directed acylic graph.
### [specmonstah](https://github.com/reifyhealth/specmonstah)
Write concise, maintainable test fixtures with clojure.spec.alpha.
### [markdown-clj](https://github.com/yogthos/markdown-clj)
Markdown parser that translates markdown to html.
### [algo.monads](https://github.com/clojure/algo.monads)
Macros for defining monads, and definition of the most common monads.
### [datalog-parser](https://github.com/lambdaforge/datalog-parser)
Datalog parser that is compliant with datomic, datascript and datahike.
### [at-at](https://github.com/overtone/at-at)
Ahead-of-time function scheduler. Compatible with babashka 0.7.7+.
### [aysylu/loom](https://github.com/aysylu/loom)
Graph library for Clojure. Compatible with babashka 0.7.8+.
### [Clarktown](https://github.com/askonomm/clarktown)
An extensible and modular zero-dependency, pure-Clojure Markdown parser.
### [Malli](https://github.com/metosin/malli#babashka)
Data-Driven Schemas for Clojure/Script
### [Meander](https://github.com/noprompt/meander)
Tools for transparent data transformation
### [Schema](https://github.com/plumatic/schema)
Clojure(Script) library for declarative data description and validation
### [Sluj](https://github.com/rawleyfowler/sluj)
Sluj is a very small library for converting strings of UTF-16 text to slugs. A slug is a piece of text that is URL safe.
### [malli-cli](https://github.com/piotr-yuxuan/malli-cli)
Configuration and CLI powertool with `metosin/malli`.
## Pods
[Babashka pods](https://github.com/babashka/babashka.pods) are programs that can
be used as Clojure libraries by babashka. See
[pod-registry](https://github.com/babashka/pod-registry) for an overview of available pods.
Pods not available in the pod registry:
- [pod-janet-peg](https://github.com/sogaiu/pod-janet-peg): a pod for
calling [Janet](https://github.com/janet-lang/janet)'s PEG
functionality.
- [pod-jaydeesimon-jsoup](https://github.com/jaydeesimon/pod-jaydeesimon-jsoup):
a pod for parsing HTML using CSS queries backed by Jsoup.
- [pod.xledger.sql-server](https://github.com/xledger/pod_sql_server): pod for interacting with SQL Server.
## Projects
### [babashka-test-action](https://github.com/marketplace/actions/babashka-test-action)
Github Action to run clojure.test by Babashka.
### [deps.clj](https://github.com/borkdude/deps.clj)
A port of the [clojure](https://github.com/clojure/brew-install/) bash script to
Clojure / babashka.
Also see [deps.clj documentation](../doc/deps.clj.md).
### [4bb](https://github.com/porkostomus/4bb)
4clojure as a babashka script!
### [babashka lambda layer](https://github.com/dainiusjocas/babashka-lambda-layer)
Babashka Lambda runtime packaged as a Lambda layer.
### [Release on push Github action](https://github.com/rymndhng/release-on-push-action)
Github Action to create a git tag + release when pushed to master. Written in
babashka.
### [justone/bb-scripts](https://github.com/justone/bb-scripts)
A collection of scripts developed by [@justone](https://github.com/justone).
### [nativity](https://github.com/MnRA/nativity)
Turn babashka scripts into binaries using GraalVM `native-image`.
### [cldwalker/bb-clis](https://github.com/cldwalker/bb-clis)
A collection of scripts developed by [@cldwalker](https://github.com/cldwalker).
### [krell template](https://github.com/ampersanda/krell-template-runner)
Babashka script for creating React Native (Krell) project
### [wee-httpd](https://github.com/bherrmann7/bb-common/blob/master/wee_httpd.bb)
A wee multi-threaded web server
### [covid19-babashka](https://github.com/agrison/covid19-babashka)
A babashka script to obtain covid-19 related information.
### [bb-spotify](https://github.com/kolharsam/bb-spotify)
Control your spotify player using babashka.
### [lambdaisland/open-source](https://github.com/lambdaisland/open-source)
[Internal
tooling](https://github.com/babashka/babashka/issues/457#issuecomment-636739415)
used by Lambda Island projects. Noteworthy: a [babashka-compatible hiccup
script](https://github.com/lambdaisland/open-source/blob/2cfde3dfb460e72f047bf94e6f5ec7f519c6d7a0/src/lioss/hiccup.clj).
There's also
[subshell](https://github.com/lambdaisland/open-source/blob/master/src/lioss/subshell.clj)
which is like sh/sh, but it inherits stdin/stdout/stderr, so that the user sees
in real time what the subprocess is doing, and can possibly interact with
it. More like how shelling out in a bash script works.
### [dharrigan/spotifyd-notification](https://github.com/dharrigan/spotifyd-notification)
An example of using babashka to show spotifyd notifications via dunst.
### [nextjournal/ssh-github-auth](https://github.com/nextjournal/ssh-github-auth)
A babashka script which uses github auth to fetch SSH public keys. It can be useful to ensure only a certain team of people can access machines with SSH.
### [turtlequeue/setup-babashka](https://github.com/turtlequeue/setup-babashka)
Github Action to install Babashka in your workflows. Useful to run bb scripts in your CI.
### [interdep](https://github.com/rejoice-cljc/interdep)
Manage interdependent dependencies using Clojure's tools.deps and babashka.
### [sha-words](https://github.com/ordnungswidrig/sha-words)
A clojure program to turn a sha hash into list of nouns in a predictable jar.
### [adam-james-v/scripts](https://github.com/adam-james-v/scripts)
A collection of useful scripts. Mainly written with Clojure/babashka
### [oidc-client](https://gist.github.com/holyjak/ad4e1e9b863f8ed57ef0cb6ac6b30494)
Tired of being forced to use the browser every time you need to refresh an OIDC token to authenticate with a backend service? Finally there is a CLI tool for that - the babashka and Docker powered oidc_client.clj.
Upon first invocation it opens up a browser for the OIDC provider login, thereafter it caches the refresh token and uses it as long as it remains valid.
### [jirazzz](https://github.com/rwstauner/jirazzz)
A babashka JIRA client by Randy Stauner
### [Babashka + scittle guestbook](https://github.com/kloimhardt/babashka-scittle-guestbook)
Luminus guestbook example for Babashka + Scittle.
### [bb htmx todo app](https://github.com/prestancedesign/babashka-htmx-todoapp)
Quick example of a todo list SPA using Babashka and htmx.
### [bb aws lambda runtime](https://github.com/tatut/bb-lambda)
AWS Lambda custom runtime for Babashka scripts.
### [bb-github-app](https://github.com/brandonstubbs/bb-github-app)
An example Babashka script that can authenticate as a Github Application,
this example focuses on the checks api.

267
doc/surveys/2020-11.md Normal file
View file

@ -0,0 +1,267 @@
## Survey November 2020
The raw data from the babashka survey held in November 2020 is now available
[here](https://nl.surveymonkey.com/results/SM-8W8V36DZ7/).
We had about 100 respondents (just below the free tier of SurveyMonkey). Next
time I'll probably switch to Google forms and add an optional contact field,
since I would have liked to go deeper into some of the answers.
Here are the ten questions from the survey followed by the summarized outcome
and my commentary.
Thank you all for taking the time. This provides useful input for the future
development of babashka.
### Q1 What are you using babashka for? Work / hobby
*Outcome:* 75% work, 76% hobby
*My comment:* Most people use it both at work and for their hobby
programming. This is more than I could have hoped for when I started babashka.
### Q2 What features or namespaces in babashka do you use most?
*Outcome:*
```
- clojure.java.shell *******************************
- cheshire.core (json) ****************************
- babashka.curl ************************
- clojure.java.io *********************
- clojure.string ******************
- babashka.process **************
- clojure.edn *******
- clojure.tools.cli *****
- http (in general) ******
- clojure.data.xml ****
- clojure.data.csv ****
- clj-yaml.core ****
- dates / java.time ****
- nREPL server ****
- sql / jdbc ****
- org.httpkit.client ***
- i/o flags ***
- clojure.pprint **
- org.httpkit.server *
- babashka.wait *
- multi-file project *
- docopt *
- ProcessBuilder *
- java.util *
- transit *
- core.async *
- clojure.data *
- aero *
- clojure.zip *
```
*My comment:* Shelling out is a popular thing to do in babashka:
`clojure.java.shell` is the most widely used namespaces. The `babashka.process`
namespace is already used quite a lot despite its recent appearance.
Other popular ways to use babashka:
- http (`babashka.curl` or other)
- JSON (cheshire)
- file interaction (`clojure.java.io`)
- string manipulation (`clojure.string`)
Nothing surprising there for a scripting tool. Closely following is `tools.cli`,
and several other data formats (edn, csv, xml, yaml). The transit format isn't
that widely used from babashka.
Some people are using babashka for interacting with SQL databases. There are two
ways to do this: compile babashka with extra [feature
flags](https://github.com/babashka/babashka/blob/master/doc/build.md#feature-flags)
enabled or use
[babashka-sql-pods](https://github.com/babashka/babashka-sql-pods/).
According to the above outcome, babaska isn't that widely used for small web
applications yet. The `core.async` library had only had one mention although
nobody mentioned it as redundant in question 5.
### Q3 Which babashka pods are you using, if any?
*Outcome:*
```
- sql (mostly postgres) ***************
- file watcher ****
- clj-kondo ***
- kafka **
- tabl **
- tzzh-aws **
- etaoin **
- brisk *
- lanterna *
- tzzh-mail *
- bootleg *
- parcera *
```
*My comment:*
The [sql](https://github.com/babashka/babashka-sql-pods) and
[filewatcher](https://github.com/babashka/pod-babashka-filewatcher) pods are the
most popular, closely followed by the
[clj-kondo](https://github.com/borkdude/clj-kondo/#babashka-pod) pod.
The pod concept isn't widely understood yet. In 2021 I might give a talk, if the
opportunity arises, on babashka pod usage and how to develop them. Pods are an
extra thing to install which may be a barrier for adoption for some. This ties
into the next question.
### Q4 What functionality is currently missing in babashka?
*Outcome:*
```
- easy usage of libs and pods ***********
- java.nio bindings / fs lib ****
- clojure.spec (+ gen) ****
- database / jdbc ***
- raspberry pi support ***
- hiccup **
- compile script to native **
- spire as pod *
- docs and examples *
- packaging *
- ssh *
- nrepl *
- http server *
- easier creation of pods *
- sqlite *
- java-time lib *
- better REPL *
```
*My comment:*
Clearly users want an easier way to include libraries and pods. We are thinking
about that in [this](https://github.com/babashka/babashka/issues/473) issue.
The second most mentioned missing feature was a library around files. This is
work in progress [here](https://github.com/babashka/fs).
### Q5 What features or namespaces in babashka are redundant and could be left out?
Most people did not suggest anything should be removed, maybe also related to
the most given answer to Q9. A few people expressed confusion about multiple
ways of making http requests.
*My comment:* If have attempted to write about HTTP request in babashka
[here](https://book.babashka.org/#_choosing_the_right_client) and
[here](https://github.com/babashka/babashka/wiki/HTTP-client-and-server-considerations).
The summary is that both `babashka.curl` and `org.httpkit.client` have different
optimal use cases. In most small scripting scenarios `babashka.curl` will
do. For making many small requests `org.httpkit.client` is more optimal since it
won't create an OS process. For downloading big files, `babashka.curl` is more
optimal, since there is no way to prevent `org.httpkit.client` from holding the
response into memory all at once.
In the future both of these clients may be superseded by a client based on
`java.net.http` (probably exposed as `babashka.http-client`), but this client
isn't there yet and it may take a while before the Java 11 client space has
crystallized. Meanwhile you will have to do it with either of these
clients. Luckily both clients accept and return Ring-like maps, so upgrading to
the future client should not be hard, unless you are depending on something very
specific. I plan on keeping `babashka.curl` in babashka no matter what, since
it's a very thin layer over `curl` and doesn't complicate the compilation
process of babashka much. There will be a transition period of having both
`org.httpkit.client` and the `java.net.http` client after which
`org.httpkit.client` will be phased out and `babashka.http-client` will be the
recommended HTTP client in babashka.
### Q6 Babashka prints the last value of an expression or script. Should this change?
*Outcome:*
```
- Yes: 7.8%
- No: 69%
- It depends: 23%
```
*My comment:*
The most given answer is: no, keep it this way. Most of the "it depends" answers
said: I don't really care. Some suggested that printing should always be
explicit and maybe should be controlled using a flag.
The reason babashka always prints the list value of a script, unless it is
`nil`, is that in the very beginning, babashka was intended as a Clojure-in-bash
one-liner utility. We only had the `-e` option and not the `-f` option for
executing scripts from disk. When the `-f` option got added, it was handled
exactly the same as `-e`, with the difference that the expression was read from
a file.
Since the majority of people expressed that this should not change, we will keep
it this way. This will also avoid breakage for scripts that depend on
this. Stylistically it might be better to use explicit printing in scripts. If a
script returns `nil`, nothing will get printed for you, which aligns nicely with
how `println` and `prn` behave.
### Q7 When would you use babashka instead of JVM Clojure?
*Outcome:*
The majority of people use babashka as a replacement for `bash`, `python` or
`jq`. The fast startup is the main reason they favor it over the JVM when
writing small and short-running scripts that are cross-platform. In this
scenario babashka is used for CLI utilities, ETL (data processing) scripts,
automation / CI / devops and scripts ran from editors like emacs and vim. Some
people use it in places where they want to avoid or can't have a JVM
installation or in memory constrained environments. Some people answered:
whenever I can.
*My comment:*
Babashka's original goal was to be a Clojure replacement for shell scripting and
based on the answers, it seems to have pulled that off.
### Q8 What operating system do you run babashka on?
*Outcome:*
```
- Linux: 80%
- macOS: 58%
- Windows: 16%
- Other: 2% (raspberry if possible, AWS Lambda)
```
*My comment:*
It's interesting to compare the outcome of this question with the answers to
"what is your primary development OS" in the Clojure 2020 survey
[here](https://clojure.org/news/2020/02/20/state-of-clojure-2020#_deep_dives).
Note that I didn't ask about the development OS but where scripts are run and
multiple answers were allowed.
### Q9 Is the binary size of the bb executable important to you?
*Outcome:*
```
- Yes: 13%
- No: 87%
```
*My comment:*
The people who care about binary size report that it should not grow beyond the
range of 10mb and 512mb. But most people don't care about it.
I do personally care about it from the perspective of not cluttering babashka
unnecessarily during its lifetime. Related, adding more stuff challenges GraalVM
compile time and memory usage during compilation. Hitting the limit on free CI
might mean I will have to charge for building binaries in the future or come up
with some business model to finance the builds.
### Q10 Any other feedback on babashka?
*Outcome:*
Lots of encouraging words. Thank you all!

570
examples/README.md Normal file
View file

@ -0,0 +1,570 @@
# Examples
- [Examples](#examples)
- [Delete a list of files returned by a Unix command](#delete-a-list-of-files-returned-by-a-unix-command)
- [Calculate aggregate size of directory](#calculate-aggregate-size-of-directory)
- [Shuffle the lines of a file](#shuffle-the-lines-of-a-file)
- [Fetch latest Github release tag](#fetch-latest-github-release-tag)
- [Generate deps.edn entry for a gitlib](#generate-depsedn-entry-for-a-gitlib)
- [View download statistics from Clojars](#view-download-statistics-from-clojars)
- [Portable tree command](#portable-tree-command)
- [List outdated maven dependencies](#list-outdated-maven-dependencies)
- [Convert project.clj to deps.edn](#convert-projectclj-to-depsedn)
- [Print current time in California](#print-current-time-in-california)
- [Tiny http server](#tiny-http-server)
- [Print random docstring](#print-random-docstring)
- [Cryptographic hash](#cryptographic-hash)
- [Package script as Docker image](#package-script-as-docker-image)
- [Extract single file from zip](#extract-single-file-from-zip)
- [Note taking app](#note-taking-app)
- [which](#which)
- [pom.xml version](#pomxml-version)
- [Whatsapp frequencies](#whatsapp-frequencies)
- [Find unused vars](#find-unused-vars)
- [List contents of jar file](#list-contents-of-jar-file)
- [Invoke vim inside a script](#invoke-vim-inside-a-script)
- [Portal](#portal)
- [Image viewer](#image-viewer)
- [HTTP server](#http-server)
- [Torrent viewer](#torrent-viewer)
- [cprop.clj](#cpropclj)
- [fzf](#fzf)
- [digitalocean-ping.clj](#digitalocean-pingclj)
- [download-aliases.clj](#download-aliasesclj)
- [Is TTY?](#is-tty)
- [normalize-keywords.clj](#normalize-keywordsclj)
- [Check stdin for data](#check-stdin-for-data)
- [Using org.clojure/data.xml](#using-orgclojuredataxml)
- [Simple logger](#simple-logger)
- [Using GZip streams (memo utility)](#using-gzip-streams-to-make-a-note-utility)
- [Pretty-printing mySQL results](#pretty-printing-mysql-results)
- [Single page application with Babashka + htmx](#single-page-application-with-babashka--htmx)
- [Wikipedia translation](#wikipedia-translation)
Here's a gallery of useful examples. Do you have a useful example? PR welcome!
## Delete a list of files returned by a Unix command
```
find . | grep conflict | bb -i '(doseq [f *input*] (.delete (io/file f)))'
```
## Calculate aggregate size of directory
``` clojure
#!/usr/bin/env bb
(as-> (io/file (or (first *command-line-args*) ".")) $
(file-seq $)
(map #(.length %) $)
(reduce + $)
(/ $ (* 1024 1024))
(println (str (int $) "M")))
```
``` shellsession
$ dir-size
130M
$ dir-size ~/Dropbox/bin
233M
```
## Shuffle the lines of a file
``` shellsession
$ cat /tmp/test.txt
1 Hello
2 Clojure
3 Babashka
4 Goodbye
$ < /tmp/test.txt bb -io '(shuffle *input*)'
3 Babashka
2 Clojure
4 Goodbye
1 Hello
```
## Fetch latest Github release tag
``` shell
(require '[clojure.java.shell :refer [sh]]
'[cheshire.core :as json])
(defn babashka-latest-version []
(-> (sh "curl" "https://api.github.com/repos/babashka/babashka/tags")
:out
(json/parse-string true)
first
:name))
(babashka-latest-version) ;;=> "v0.0.73"
```
## Generate deps.edn entry for a gitlib
``` clojure
#!/usr/bin/env bb
(require '[clojure.java.shell :refer [sh]]
'[clojure.string :as str])
(let [[username project branch] *command-line-args*
branch (or branch "master")
url (str "https://github.com/" username "/" project)
sha (-> (sh "git" "ls-remote" url branch)
:out
(str/split #"\s")
first)]
{:git/url url
:sha sha})
```
``` shell
$ gitlib.clj nate fs
{:git/url "https://github.com/nate/fs", :sha "75b9fcd399ac37cb4f9752a4c7a6755f3fbbc000"}
$ clj -Sdeps "{:deps {fs $(gitlib.clj nate fs)}}" \
-e "(require '[nate.fs :as fs]) (fs/creation-time \".\")"
#object[java.nio.file.attribute.FileTime 0x5c748168 "2019-07-05T14:06:26Z"]
```
## View download statistics from Clojars
Contributed by [@plexus](https://github.com/plexus).
``` shellsession
$ curl https://clojars.org/stats/all.edn |
bb -o '(for [[[group art] counts] *input*] (str (reduce + (vals counts)) " " group "/" art))' |
sort -rn |
less
14113842 clojure-complete/clojure-complete
9065525 clj-time/clj-time
8504122 cheshire/cheshire
...
```
## Portable tree command
See [examples/tree.clj](https://github.com/babashka/babashka/blob/master/examples/tree.clj).
``` shellsession
$ clojure -Sdeps '{:deps {org.clojure/tools.cli {:mvn/version "0.4.2"}}}' examples/tree.clj src
src
└── babashka
├── impl
│ ├── tools
│ │ └── cli.clj
...
$ examples/tree.clj src
src
└── babashka
├── impl
│ ├── tools
│ │ └── cli.clj
...
```
## List outdated maven dependencies
See [examples/outdated.clj](https://github.com/babashka/babashka/blob/master/examples/outdated.clj).
Inspired by an idea from [@seancorfield](https://github.com/seancorfield).
``` shellsession
$ cat /tmp/deps.edn
{:deps {cheshire {:mvn/version "5.8.1"}
clj-http {:mvn/version "3.4.0"}}}
$ examples/outdated.clj /tmp/deps.edn
clj-http/clj-http can be upgraded from 3.4.0 to 3.10.0
cheshire/cheshire can be upgraded from 5.8.1 to 5.9.0
```
## Convert project.clj to deps.edn
Contributed by [@plexus](https://github.com/plexus).
``` shellsession
$ cat project.clj |
sed -e 's/#=//g' -e 's/~@//g' -e 's/~//g' |
bb '(let [{:keys [dependencies source-paths resource-paths]} (apply hash-map (drop 3 *input*))]
{:paths (into source-paths resource-paths)
:deps (into {} (for [[d v] dependencies] [d {:mvn/version v}]))}) ' |
jet --pretty > deps.edn
```
A script with the same goal can be found [here](https://gist.github.com/swlkr/3f346c66410e5c60c59530c4413a248e#gistcomment-3232605).
## Print current time in California
See [examples/pst.clj](https://github.com/babashka/babashka/blob/master/examples/pst.clj)
## Tiny http server
This implements an http server from scratch. Note that babashka comes with `org.httpkit.server` now, so you don't need to build an http server from scratch anymore.
See [examples/http_server_from_scratch.clj](https://github.com/babashka/babashka/blob/master/examples/http_server_from_scratch.clj)
Original by [@souenzzo](https://gist.github.com/souenzzo/a959a4c5b8c0c90df76fe33bb7dfe201)
## Print random docstring
See [examples/random_doc.clj](https://github.com/babashka/babashka/blob/master/examples/random_doc.clj)
``` shell
$ examples/random_doc.clj
-------------------------
clojure.core/ffirst
([x])
Same as (first (first x))
```
## Cryptographic hash
`sha1.clj`:
``` clojure
#!/usr/bin/env bb
(defn sha1
[s]
(let [hashed (.digest (java.security.MessageDigest/getInstance "SHA-1")
(.getBytes s))
sw (java.io.StringWriter.)]
(binding [*out* sw]
(doseq [byte hashed]
(print (format "%02X" byte))))
(str sw)))
(sha1 (first *command-line-args*))
```
``` shell
$ sha1.clj babashka
"0AB318BE3A646EEB1E592781CBFE4AE59701EDDF"
```
## Package script as Docker image
`Dockerfile`:
``` dockerfile
FROM babashka/babashka
RUN echo $'\
(println "Your command line args:" *command-line-args*)\
'\
>> script.clj
ENTRYPOINT ["bb", "script.clj"]
```
``` shell
$ docker build . -t script
...
$ docker run --rm script 1 2 3
Your command line args: (1 2 3)
```
## Extract single file from zip
``` clojure
;; Given the following:
;; $ echo 'contents' > file
;; $ zip zipfile.zip file
;; $ rm file
;; we extract the single file from the zip archive using java.nio:
(import '[java.nio.file Files FileSystems CopyOption])
(let [zip-file (io/file "zipfile.zip")
file (io/file "file")
fs (FileSystems/newFileSystem (.toPath zip-file) nil)
file-in-zip (.getPath fs "file" (into-array String []))]
(Files/copy file-in-zip (.toPath file)
(into-array CopyOption [])))
```
## Note taking app
See
[examples/notes.clj](https://github.com/babashka/babashka/blob/master/examples/notes.clj). This
is a variation on the
[http-server](https://github.com/babashka/babashka/#tiny-http-server)
example. If you get prompted with a login, use `admin`/`admin`.
## which
The `which` command re-implemented in Clojure. See
[examples/which.clj](https://github.com/babashka/babashka/blob/master/examples/which.clj).
Prints the canonical file name.
``` shell
$ examples/which.clj rg
/usr/local/Cellar/ripgrep/11.0.1/bin/rg
```
## pom.xml version
A script to retrieve the version from a `pom.xml` file. See
[pom_version_get.clj](pom_version_get.clj). Written by [@wilkerlucio](https://github.com/wilkerlucio).
See [pom_version_get_xml_zip.clj](pom_version_get_xml_zip.clj) for how to do the same using zippers.
Also see [pom_version_set.clj](pom_version_set.clj) to set the pom version.
## Whatsapp frequencies
Show frequencies of messages by user in Whatsapp group chats.
See [examples/whatsapp_frequencies.clj](whatsapp_frequencies.clj)
## Find unused vars
[This](hsqldb_unused_vars.clj) script invokes clj-kondo, stores
returned data in an in memory HSQLDB database and prints the result of a query
which finds unused vars. It uses
[pod-babashka-hsqldb](https://github.com/borkdude/pod-babashka-hsqldb).
``` shell
$ bb examples/hsqldb_unused_vars.clj src
| :VARS/NS | :VARS/NAME | :VARS/FILENAME | :VARS/ROW | :VARS/COL |
|----------------------------|--------------------------|------------------------------------|-----------|-----------|
| babashka.impl.bencode.core | read-netstring | src/babashka/impl/bencode/core.clj | 162 | 1 |
| babashka.impl.bencode.core | write-netstring | src/babashka/impl/bencode/core.clj | 201 | 1 |
| babashka.impl.classes | generate-reflection-file | src/babashka/impl/classes.clj | 230 | 1 |
| babashka.impl.classpath | ->DirectoryResolver | src/babashka/impl/classpath.clj | 12 | 1 |
| babashka.impl.classpath | ->JarFileResolver | src/babashka/impl/classpath.clj | 37 | 1 |
| babashka.impl.classpath | ->Loader | src/babashka/impl/classpath.clj | 47 | 1 |
| babashka.impl.clojure.test | file-position | src/babashka/impl/clojure/test.clj | 286 | 1 |
| babashka.impl.nrepl-server | stop-server! | src/babashka/impl/nrepl_server.clj | 179 | 1 |
| babashka.main | -main | src/babashka/main.clj | 485 | 1 |
```
## List contents of jar file
For the code see [examples/ls_jar.clj](ls_jar.clj).
``` shell
$ ls_jar.clj borkdude/sci 0.0.13-alpha.24
META-INF/MANIFEST.MF
META-INF/maven/borkdude/sci/pom.xml
META-INF/leiningen/borkdude/sci/project.clj
...
```
## Invoke vim inside a script
See [examples/vim.clj](vim.clj).
## Portal
This script uses [djblue/portal](https://github.com/djblue/portal/) for inspecting EDN, JSON, XML or YAML files.
Example usage:
``` shell
$ examples/portal.clj ~/git/clojure/pom.xml
```
See [portal.clj](portal.clj).
## Image viewer
Opens browser window and lets user navigate through images of all sub-directories.
Example usage:
``` shell
$ examples/image-viewer.clj
```
See [image-viewer.clj](image-viewer.clj).
## HTTP Server
Opens browser window and lets user navigate through filesystem, similar to
`python3 -m http.server`.
Example usage:
``` shell
$ examples/http-server.clj
```
See [http-server.clj](http-server.clj).
## Torrent viewer
Shows the content of a torrent file. Note that pieces' content is hidden.
Example usage:
``` shell
$ examples/torrent-viewer.clj file.torrent
```
See [torrent-viewer.clj](torrent-viewer.clj).
## [cprop.clj](cprop.clj)
This script uses [tolitius/cprop](https://github.com/tolitius/cprop) library.
See [cprop.clj](cprop.clj)
Example usage:
```shell
$ ( cd examples && bb cprop.clj )
```
## [fzf](fzf.clj)
Invoke [fzf](https://github.com/junegunn/fzf), a command line fuzzy finder, from babashka.
See [fzf.clj](fzf.clj)
Example usage:
``` shell
$ cat src/babashka/main.clj | bb examples/fzf.clj
```
## [digitalocean-ping.clj](digitalocean-ping.clj)
The script allows to define which DigitalOcean cloud datacenter (region) has best network performance (ping latency).
See [digitalocean-ping.clj](digitalocean-ping.clj)
Example usage:
``` shell
$ bb digitalocean-ping.clj
```
## [download-aliases.clj](download-aliases.clj)
Download deps for all aliases in a deps.edn project.
## [Is TTY?](is_tty.clj)
An equivalent of Python's `os.isatty()` in Babashka, to check if the
`stdin`/`stdout`/`stderr` is connected to a TTY or not (useful to check if the
script output is being redirect to `/dev/null`, for example).
Only works in Unix systems.
``` shell
$ bb is-tty.clj
STDIN is TTY?: true
STDOUT is TTY?: true
STDERR is TTY?: true
$ bb is-tty.clj </dev/null
STDIN is TTY?: false
STDOUT is TTY?: true
STDERR is TTY?: true
$ bb is-tty.clj 1>&2 >/dev/null
STDIN is TTY?: true
STDOUT is TTY?: false
STDERR is TTY?: true
$ bb is-tty.clj 2>/dev/null
STDIN is TTY?: true
STDOUT is TTY?: true
STDERR is TTY?: false
```
## [normalize-keywords.clj](normalize-keywords.clj)
Provide a Clojure file to the script and it will print the Clojure file with
auto-resolved keywords normalized to fully qualified ones without double colons:
`::set/foo` becomes `:clojure.set/foo`.
``` clojure
$ cat /tmp/test.clj
(ns test (:require [clojure.set :as set]))
[::set/foo ::bar]
$ bb examples/normalize-keywords.clj /tmp/test.clj
(ns test (:require [clojure.set :as set]))
[:clojure.set/foo :test/bar]
```
## Check stdin for data
```shell
# when piping something in, we get a positive number
$ echo 'abc' | bb '(pos? (.available System/in))'
true
# even if we echo an empty string, we still get the newline
$ echo '' | bb '(pos? (.available System/in))'
true
# with nothing passed in, we finally return false
$ bb '(pos? (.available System/in))'
false
```
## Using org.clojure/data.xml
[xml-example.clj](xml-example.clj) explores some of the capabilities provided
by the `org.clojure/data.xml` library (required as `xml` by default in Babashka).
While running the script will show some output, reading the file shows the library
in use.
```shell
$ bb examples/xml-example.clj
... some vaguely interesting XML manipulation output
```
## Simple logger
[logger.clj](logger.clj) is a simple logger that works in bb.
``` clojure
$ bb "(require 'logger) (logger/log \"the logger says hi\")"
<expr>:1:19 the logger says hi
```
## Using GZip streams to make a note utility
[memo.clj](memo.clj) creates zip files in /tmp for stashing notes (possibly the most inefficient KV store ever)
```shell
$ echo "8675309" | memo.clj put jenny
ok
$ memo.clj get jenny
8675309
```
## Pretty-printing mySQL results
[db_who.clj](db_who.clj) will query mysql for all the connected sessions and pretty-print the user and what program they're using.
```
$ bb db_who.clj
| user | program_name |
|------------------+----------------|
| root@localhost | mysql |
| fred@192.168.1.2 | workbench |
| jane@192.168.1.3 | Toad for mySQL |
```
## Single page application with Babashka + htmx
Example of a todo list SPA using Babashka and htmx
See [htmx_todoapp.clj](htmx_todoapp.clj)
Contributed by [@prestancedesign](https://github.com/prestancedesign).
## Wikipedia translation
[wiki-translate.clj](wiki-translate.clj) uses Wikipedia to translate words from English to Dutch (other languages are available).
``` shell
$ bb wiki-translate.clj window
"Venster (muur) Dutch"
```
Shared by Janne Himanka on Clojurians Slack

View file

@ -0,0 +1,12 @@
datomic.url=datomic:sql://?jdbc:postgresql://localhost:5432/datomic?user=datomic&password=datomic
source.account.rabbit.host=localhost
aws.access-key=super secret key
aws.secret_key=super secret s3cr3t!!!
aws.region=us-east-2
io.http.pool.conn_timeout=42
io.http.pool.max_per_route=42
other_things=1,2,3,4,5,6,7

56
examples/cprop.clj Executable file
View file

@ -0,0 +1,56 @@
#!/usr/bin/env bb
(require '[babashka.classpath :refer [add-classpath]])
(require '[clojure.java.shell :refer [sh]])
(require '[clojure.pprint :refer [pprint]])
(def deps '{:deps {cprop {:mvn/version "0.1.17"}}})
(def cp (:out (sh "clojure" "-Spath" "-Sdeps" (str deps))))
(add-classpath cp)
(require '[cprop.core :refer [load-config]])
(require '[cprop.source :refer [from-props-file]])
;; Load sample configuration from the file system
(def conf (load-config :file "cprop.edn"))
;; Print the configuration we just read in
(pprint conf)
;;=>
#_{:datomic {:url "CHANGE ME"}
:aws {:access-key "AND ME"
:secret-key "ME TOO"
:region "FILL ME IN AS WELL"
:visiblity-timeout-sec 30
:max-conn 50
:queue "cprop-dev"}
:io {:http {:pool {:socket-timeout 600000
:conn-timeout :I-SHOULD-BE-A-NUMBER
:conn-req-timeout 600000
:max-total 200
:max-per-route :ME-ALSO}}}
:other-things ["I am a vector and also like to place the substitute game"]}
(let [conf (load-config
:file "cprop.edn"
:merge [(from-props-file "cprop-override.properties")])]
(pprint conf))
;;=>
#_{:datomic
{:url "datomic:sql://?jdbc:postgresql://localhost:5432/datomic?user=datomic&password=datomic"},
:aws
{:access-key "super secret key",
:secret-key "super secret s3cr3t!!!",
:region "us-east-2",
:visiblity-timeout-sec 30,
:max-conn 50,
:queue "cprop-dev"},
:io
{:http
{:pool
{:socket-timeout 600000,
:conn-timeout 42,
:conn-req-timeout 600000,
:max-total 200,
:max-per-route 42}}},
:other-things ["1" "2" "3" "4" "5" "6" "7"]}

26
examples/cprop.edn Normal file
View file

@ -0,0 +1,26 @@
#_
{:datomic
{:url "datomic:sql://?jdbc:postgresql://localhost:5432/datomic?user=datomic&password=datomic"}
:source
{:account
{:rabbit
{:host "127.0.0.1"
:port 5672
:vhost "/z-broker"
:username "guest"
:password "guest"}}}
:answer 42}
{:datomic {:url "CHANGE ME"}
:aws {:access-key "AND ME"
:secret-key "ME TOO"
:region "FILL ME IN AS WELL"
:visiblity-timeout-sec 30
:max-conn 50
:queue "cprop-dev"}
:io {:http {:pool {:socket-timeout 600000
:conn-timeout :I-SHOULD-BE-A-NUMBER
:conn-req-timeout 600000
:max-total 200
:max-per-route :ME-ALSO}}}
:other-things ["I am a vector and also like to place the substitute game"]}

11
examples/db_who.clj Normal file
View file

@ -0,0 +1,11 @@
(ns db-who
(:require [clojure.java.shell :as shell]
[clojure.string :as str]
[clojure.pprint :as pp]))
(defn tsv->maps [tsv]
(let [lines (str/split-lines tsv)
[headers & rows] (map #(str/split % #"\t") lines)]
(map #(zipmap headers %) rows)))
(-> (shell/sh "mysql" "--column-names" "-e" "select user, program_name from sys.session;")
:out tsv->maps pp/print-table)

View file

@ -0,0 +1,30 @@
#!/usr/bin/env bb
(require '[babashka.curl :as curl]
'[clojure.java.shell :as shell]
'[clojure.string :as str])
(def url "http://speedtest-ams2.digitalocean.com/")
(def get-endpoints
(let [{:keys [body]} (curl/get url)]
(re-seq #"speedtest\-.+.digitalocean.com" body)))
(defn get-average [result]
(-> result
str/split-lines
last
(str/split #"/")
(get 4)))
(def mac? (str/starts-with? (System/getProperty "os.name") "Mac"));; TODO: test on Windows
(def timeout-arg (if mac? "-t3" "-w3"))
(defn ping-result [endpoint]
(let [{:keys [out]} (shell/sh "ping" "-c5" timeout-arg endpoint)
msg (str endpoint " => " (get-average out) "ms")]
(println msg)))
(doseq [endpoint get-endpoints]
(ping-result endpoint))

16
examples/download-aliases.clj Executable file
View file

@ -0,0 +1,16 @@
#!/usr/bin/env bb
(require '[clojure.edn :as edn]
'[clojure.string :as str])
(def edn (edn/read-string (slurp "deps.edn")))
(def aliases (keys (:aliases edn)))
(require '[babashka.deps :as deps])
(def cmd ["-P" (str "-A" (str/join aliases))])
(println "Downloading deps using:" cmd)
(deps/clojure cmd)

9
examples/fzf.clj Normal file
View file

@ -0,0 +1,9 @@
(require '[babashka.process :as p])
(defn fzf [s]
(let [proc (p/process ["fzf" "-m"]
{:in s :err :inherit
:out :string})]
(:out @proc)))
(fzf (slurp *in*))

88
examples/hsqldb_unused_vars.clj Executable file
View file

@ -0,0 +1,88 @@
#!/usr/bin/env bb
;; $ examples/hsqldb_unused_vars.clj src
;; | :VARS/NS | :VARS/NAME | :VARS/FILENAME | :VARS/ROW | :VARS/COL |
;; |----------------------------+--------------------------+------------------------------------+-----------+-----------|
;; | babashka.impl.bencode.core | read-netstring | src/babashka/impl/bencode/core.clj | 162 | 1 |
;; | babashka.impl.bencode.core | write-netstring | src/babashka/impl/bencode/core.clj | 201 | 1 |
;; | babashka.impl.classes | generate-reflection-file | src/babashka/impl/classes.clj | 230 | 1 |
;; | babashka.impl.classpath | ->DirectoryResolver | src/babashka/impl/classpath.clj | 12 | 1 |
;; | babashka.impl.classpath | ->JarFileResolver | src/babashka/impl/classpath.clj | 37 | 1 |
;; | babashka.impl.classpath | ->Loader | src/babashka/impl/classpath.clj | 47 | 1 |
;; | babashka.impl.clojure.test | file-position | src/babashka/impl/clojure/test.clj | 286 | 1 |
;; | babashka.impl.nrepl-server | stop-server! | src/babashka/impl/nrepl_server.clj | 179 | 1 |
;; | babashka.main | -main | src/babashka/main.clj | 485 | 1 |
(ns hsqldb-unused-vars
(:require
[babashka.pods :as pods]
[clojure.pprint :refer [print-table]]))
(pods/load-pod "pod-babashka-hsqldb")
(require '[pod.babashka.hsqldb :as jdbc]
'[pod.babashka.hsqldb.sql :as sql])
(pods/load-pod "clj-kondo")
(require '[pod.borkdude.clj-kondo :as clj-kondo])
(def db "jdbc:hsqldb:mem:testdb;sql.syntax_mys=true")
(defn query [q]
(jdbc/execute! db [q]))
(defn create-db! []
(query "create table vars (
ns text
, name text
, filename text
, row int
, col int )")
(query "create table var_usages (
\"from\" text
, \"to\" text
, name text
, filename text
, row int
, col int )"))
(defn parse-int [^String x]
(when x
(Integer. x)))
(defn insert-vars! [var-definitions]
(sql/insert-multi! db :vars [:ns :name :filename :row :col]
(map (juxt (comp str :ns)
(comp str :name)
:filename
(comp parse-int :row)
(comp parse-int :col))
var-definitions)))
(defn insert-var-usages! [var-usages]
(sql/insert-multi! db :var_usages ["\"from\"" "\"to\"" :name :filename :row :col]
(map (juxt (comp str :from)
(comp str :to)
(comp str :name)
:filename
(comp parse-int :row)
(comp parse-int :col))
var-usages)))
(defn analysis->db [paths]
(let [results (clj-kondo/run! {:lint paths
:config {:output {:analysis true}}})
analysis (:analysis results)
{:keys [:var-definitions :var-usages]} analysis]
(insert-vars! var-definitions)
(insert-var-usages! var-usages)))
(create-db!)
(analysis->db *command-line-args*)
(def unused-vars "
select distinct * from vars v
where (v.ns, v.name) not in
(select vu.\"to\", vu.name from var_usages vu)")
(print-table (query unused-vars))

240
examples/htmx_todoapp.clj Normal file
View file

@ -0,0 +1,240 @@
#!/usr/bin/env bb
;; Source: https://github.com/prestancedesign/babashka-htmx-todoapp
(require '[org.httpkit.server :as srv]
'[clojure.java.browse :as browse]
'[clojure.core.match :refer [match]]
'[clojure.pprint :refer [cl-format]]
'[clojure.string :as str]
'[hiccup.core :as h])
(import '[java.net URLDecoder])
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Config
;;;;;;;;;;;;;;;;;;;;;;;;;;
(def port 3000)
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Mimic DB (in-memory)
;;;;;;;;;;;;;;;;;;;;;;;;;;
(def todos (atom (sorted-map 1 {:id 1 :name "Taste htmx with Babashka" :done true}
2 {:id 2 :name "Buy a unicorn" :done false})))
(def todos-id (atom (count @todos)))
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; "DB" queries
;;;;;;;;;;;;;;;;;;;;;;;;;;
(defn add-todo! [name]
(let [id (swap! todos-id inc)]
(swap! todos assoc id {:id id :name name :done false})))
(defn toggle-todo! [id]
(swap! todos update-in [(Integer. id) :done] not))
(defn remove-todo! [id]
(swap! todos dissoc (Integer. id)))
(defn filtered-todo [filter-name todos]
(case filter-name
"active" (remove #(:done (val %)) todos)
"completed" (filter #(:done (val %)) todos)
"all" todos
todos))
(defn get-items-left []
(count (remove #(:done (val %)) @todos)))
(defn todos-completed []
(count (filter #(:done (val %)) @todos)))
(defn remove-all-completed-todo []
(reset! todos (into {} (remove #(:done (val %)) @todos))))
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Template and components
;;;;;;;;;;;;;;;;;;;;;;;;;;
(defn todo-item [{:keys [id name done]}]
[:li {:id (str "todo-" id)
:class (when done "completed")}
[:div.view
[:input.toggle {:hx-patch (str "/todos/" id)
:type "checkbox"
:checked done
:hx-target (str "#todo-" id)
:hx-swap "outerHTML"}]
[:label {:hx-get (str "/todos/edit/" id)
:hx-target (str "#todo-" id)
:hx-swap "outerHTML"} name]
[:button.destroy {:hx-delete (str "/todos/" id)
:_ (str "on htmx:afterOnLoad remove #todo-" id)}]]])
(defn todo-list [todos]
(for [todo todos]
(todo-item (val todo))))
(defn todo-edit [id name]
[:form {:hx-post (str "/todos/update/" id)}
[:input.edit {:type "text"
:name "name"
:value name}]])
(defn item-count []
(let [items-left (get-items-left)]
[:span#todo-count.todo-count {:hx-swap-oob "true"}
[:strong items-left] (cl-format nil " item~p " items-left) "left"]))
(defn todo-filters [filter]
[:ul#filters.filters {:hx-swap-oob "true"}
[:li [:a {:hx-get "/?filter=all"
:hx-push-url "true"
:hx-target "#todo-list"
:class (when (= filter "all") "selected")} "All"]]
[:li [:a {:hx-get "/?filter=active"
:hx-push-url "true"
:hx-target "#todo-list"
:class (when (= filter "active") "selected")} "Active"]]
[:li [:a {:hx-get "/?filter=completed"
:hx-push-url "true"
:hx-target "#todo-list"
:class (when (= filter "completed") "selected")} "Completed"]]])
(defn clear-completed-button []
[:button#clear-completed.clear-completed
{:hx-delete "/todos"
:hx-target "#todo-list"
:hx-swap-oob "true"
:hx-push-url "/"
:class (when-not (pos? (todos-completed)) "hidden")}
"Clear completed"])
(defn template [filter]
(str
"<!DOCTYPE html>"
(h/html
[:head
[:meta {:charset "UTF-8"}]
[:title "Htmx + Babashka"]
[:link {:href "https://unpkg.com/todomvc-app-css@2.4.1/index.css" :rel "stylesheet"}]
[:script {:src "https://unpkg.com/htmx.org@1.5.0/dist/htmx.min.js" :defer true}]
[:script {:src "https://unpkg.com/hyperscript.org@0.8.1/dist/_hyperscript.min.js" :defer true}]]
[:body
[:section.todoapp
[:header.header
[:h1 "todos"]
[:form
{:hx-post "/todos"
:hx-target "#todo-list"
:hx-swap "beforeend"
:_ "on htmx:afterOnLoad set #txtTodo.value to ''"}
[:input#txtTodo.new-todo
{:name "todo"
:placeholder "What needs to be done?"
:autofocus ""}]]]
[:section.main
[:input#toggle-all.toggle-all {:type "checkbox"}]
[:label {:for "toggle-all"} "Mark all as complete"]]
[:ul#todo-list.todo-list
(todo-list (filtered-todo filter @todos))]
[:footer.footer
(item-count)
(todo-filters filter)
(clear-completed-button)]]
[:footer.info
[:p "Click to edit a todo"]
[:p "Created by "
[:a {:href "https://twitter.com/PrestanceDesign"} "Michaël Sλlihi"]]
[:p "Part of "
[:a {:href "http://todomvc.com"} "TodoMVC"]]]])))
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Helpers
;;;;;;;;;;;;;;;;;;;;;;;;;;
(defn parse-body [body]
(-> body
slurp
(str/split #"=")
second
URLDecoder/decode))
(defn parse-query-string [query-string]
(when query-string
(-> query-string
(str/split #"=")
second)))
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Handlers
;;;;;;;;;;;;;;;;;;;;;;;;;;
(defn app-index [{:keys [query-string headers]}]
(let [filter (parse-query-string query-string)
ajax-request? (get headers "hx-request")]
(if (and filter ajax-request?)
(h/html (todo-list (filtered-todo filter @todos))
(todo-filters filter))
(template filter))))
(defn add-item [{body :body}]
(let [name (parse-body body)
todo (add-todo! name)]
(h/html (todo-item (val (last todo)))
(item-count))))
(defn edit-item [id]
(let [{:keys [id name]} (get @todos (Integer. id))]
(h/html (todo-edit id name))))
(defn update-item [{body :body} id]
(let [name (parse-body body)
todo (swap! todos assoc-in [(Integer. id) :name] name)]
(h/html (todo-item (get todo (Integer. id))))))
(defn patch-item [id]
(let [todo (toggle-todo! id)]
(h/html (todo-item (get todo (Integer. id)))
(item-count)
(clear-completed-button))))
(defn delete-item [id]
(remove-todo! id)
(h/html (item-count)))
(defn clear-completed []
(remove-all-completed-todo)
(h/html (todo-list @todos)
(item-count)
(clear-completed-button)))
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Routes
;;;;;;;;;;;;;;;;;;;;;;;;;;
(defn routes [{:keys [request-method uri] :as req}]
(let [path (vec (rest (str/split uri #"/")))]
(match [request-method path]
[:get []] {:body (app-index req)}
[:get ["todos" "edit" id]] {:body (edit-item id)}
[:post ["todos"]] {:body (add-item req)}
[:post ["todos" "update" id]] {:body (update-item req id)}
[:patch ["todos" id]] {:body (patch-item id)}
[:delete ["todos" id]] {:body (delete-item id)}
[:delete ["todos"]] {:body (clear-completed)}
:else {:status 404 :body "Error 404: Page not found"})))
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Server
;;;;;;;;;;;;;;;;;;;;;;;;;;
(when (= *file* (System/getProperty "babashka.file"))
(let [url (str "http://localhost:" port "/")]
(srv/run-server #'routes {:port port})
(println "serving" url)
(browse/browse-url url)
@(promise)))

196
examples/http-server.clj Executable file
View file

@ -0,0 +1,196 @@
#!/usr/bin/env bb
#_" -*- mode: clojure; -*-"
;; Source: https://gist.github.com/holyjak/36c6284c047ffb7573e8a34399de27d8
;; Based on https://github.com/babashka/babashka/blob/master/examples/image-viewer.clj
(ns http-server
(:require [babashka.fs :as fs]
[clojure.java.browse :as browse]
[clojure.string :as str]
[clojure.tools.cli :refer [parse-opts]]
[hiccup2.core :as html]
[org.httpkit.server :as server])
(:import [java.net URLDecoder URLEncoder]))
(def cli-options [["-p" "--port PORT" "Port for HTTP server" :default 8090 :parse-fn #(Integer/parseInt %)]
["-d" "--dir DIR" "Directory to serve files from" :default "."]
["-h" "--help" "Print usage info"]])
(def parsed-args (parse-opts *command-line-args* cli-options))
(def opts (:options parsed-args))
(cond
(:help opts)
(do (println "Start a http server for static files in the given dir. Usage:\n" (:summary parsed-args))
(System/exit 0))
(:errors parsed-args)
(do (println "Invalid arguments:\n" (str/join "\n" (:errors parsed-args)))
(System/exit 1))
:else
:continue)
(def port (:port opts))
(def dir (fs/path (:dir opts)))
(assert (fs/directory? dir) (str "The given dir `" dir "` is not a directory."))
;; A simple mime type utility from https://github.com/ring-clojure/ring/blob/master/ring-core/src/ring/util/mime_type.clj
(def ^{:doc "A map of file extensions to mime-types."}
default-mime-types
{"7z" "application/x-7z-compressed"
"aac" "audio/aac"
"ai" "application/postscript"
"appcache" "text/cache-manifest"
"asc" "text/plain"
"atom" "application/atom+xml"
"avi" "video/x-msvideo"
"bin" "application/octet-stream"
"bmp" "image/bmp"
"bz2" "application/x-bzip"
"class" "application/octet-stream"
"cer" "application/pkix-cert"
"crl" "application/pkix-crl"
"crt" "application/x-x509-ca-cert"
"css" "text/css"
"csv" "text/csv"
"deb" "application/x-deb"
"dart" "application/dart"
"dll" "application/octet-stream"
"dmg" "application/octet-stream"
"dms" "application/octet-stream"
"doc" "application/msword"
"dvi" "application/x-dvi"
"edn" "application/edn"
"eot" "application/vnd.ms-fontobject"
"eps" "application/postscript"
"etx" "text/x-setext"
"exe" "application/octet-stream"
"flv" "video/x-flv"
"flac" "audio/flac"
"gif" "image/gif"
"gz" "application/gzip"
"htm" "text/html"
"html" "text/html"
"ico" "image/x-icon"
"iso" "application/x-iso9660-image"
"jar" "application/java-archive"
"jpe" "image/jpeg"
"jpeg" "image/jpeg"
"jpg" "image/jpeg"
"js" "text/javascript"
"json" "application/json"
"lha" "application/octet-stream"
"lzh" "application/octet-stream"
"mov" "video/quicktime"
"m3u8" "application/x-mpegurl"
"m4v" "video/mp4"
"mjs" "text/javascript"
"mp3" "audio/mpeg"
"mp4" "video/mp4"
"mpd" "application/dash+xml"
"mpe" "video/mpeg"
"mpeg" "video/mpeg"
"mpg" "video/mpeg"
"oga" "audio/ogg"
"ogg" "audio/ogg"
"ogv" "video/ogg"
"pbm" "image/x-portable-bitmap"
"pdf" "application/pdf"
"pgm" "image/x-portable-graymap"
"png" "image/png"
"pnm" "image/x-portable-anymap"
"ppm" "image/x-portable-pixmap"
"ppt" "application/vnd.ms-powerpoint"
"ps" "application/postscript"
"qt" "video/quicktime"
"rar" "application/x-rar-compressed"
"ras" "image/x-cmu-raster"
"rb" "text/plain"
"rd" "text/plain"
"rss" "application/rss+xml"
"rtf" "application/rtf"
"sgm" "text/sgml"
"sgml" "text/sgml"
"svg" "image/svg+xml"
"swf" "application/x-shockwave-flash"
"tar" "application/x-tar"
"tif" "image/tiff"
"tiff" "image/tiff"
"ts" "video/mp2t"
"ttf" "font/ttf"
"txt" "text/plain"
"webm" "video/webm"
"wmv" "video/x-ms-wmv"
"woff" "font/woff"
"woff2" "font/woff2"
"xbm" "image/x-xbitmap"
"xls" "application/vnd.ms-excel"
"xml" "text/xml"
"xpm" "image/x-xpixmap"
"xwd" "image/x-xwindowdump"
"zip" "application/zip"})
;; https://github.com/ring-clojure/ring/blob/master/ring-core/src/ring/util/mime_type.clj
(defn- filename-ext
"Returns the file extension of a filename or filepath."
[filename]
(if-let [ext (second (re-find #"\.([^./\\]+)$" filename))]
(str/lower-case ext)))
;; https://github.com/ring-clojure/ring/blob/master/ring-core/src/ring/util/mime_type.clj
(defn ext-mime-type
"Get the mimetype from the filename extension. Takes an optional map of
extensions to mimetypes that overrides values in the default-mime-types map."
([filename]
(ext-mime-type filename {}))
([filename mime-types]
(let [mime-types (merge default-mime-types mime-types)]
(mime-types (filename-ext filename)))))
(defn index [f]
(let [files (map #(str (.relativize dir %))
(fs/list-dir f))]
{:body (-> [:html
[:head
[:meta {:charset "UTF-8"}]
[:title (str "Index of `" f "`")]]
[:body
[:h1 "Index of " [:code (str f)]]
[:ul
(for [child files]
[:li [:a {:href (URLEncoder/encode (str child))} child
(when (fs/directory? (fs/path dir child)) "/")]])]
[:hr]
[:footer {:style {"text-aling" "center"}} "Served by http-server.clj"]]]
html/html
str)}))
(defn body [path]
{:headers {"Content-Type" (ext-mime-type (fs/file-name path))}
:body (fs/file path)})
(server/run-server
(fn [{:keys [:uri]}]
(let [f (fs/path dir (str/replace-first (URLDecoder/decode uri) #"^/" ""))
index-file (fs/path f "index.html")]
(cond
(and (fs/directory? f) (fs/readable? index-file))
(body index-file)
(fs/directory? f)
(index f)
(fs/readable? f)
(body f)
:else
{:status 404 :body (str "Not found `" f "` in " dir)})))
{:port port})
(println "Starting http server at " port "for" (str dir))
(browse/browse-url (format "http://localhost:%s/" port))
@(promise)

View file

@ -0,0 +1,63 @@
#!/usr/bin/env bb
;; This example creates a file serving web server from scratch.
;; It accepts a single connection from a browser and serves content to the connected browser
;; after the connection times out, this script will serve no more.
;; Also see notes.clj for another web app example.
;; Note that babashka comes with org.httpkit.server now, so you don't need to
;; build an http server from scratch anymore. We leave this script here for educational purposes.
(import (java.net ServerSocket))
(require '[clojure.java.io :as io]
'[clojure.string :as string])
(with-open [server-socket (new ServerSocket 8080)
client-socket (.accept server-socket)]
(loop []
(let [out (io/writer (.getOutputStream client-socket))
in (io/reader (.getInputStream client-socket))
[req-line & _headers] (loop [headers []]
(let [line (.readLine in)]
(if (string/blank? line)
headers
(recur (conj headers line)))))
[_ _ path _] (re-find #"([^\s]+)\s([^\s]+)\s([^\s]+)" req-line)
f (io/file (format "./%s" path))
status (if (.exists f)
200
404)
html (fn html-fn [tag & body]
(let [attrs? (map? (first body))
attrs-str (str (when attrs?
(format " %s" (string/join " " (for [[k v] (first body)]
(format "%s=%s" (name k) (name v)))))))]
(format "<%s%s>%s</%s>"
(name tag)
attrs-str
(string/join (if attrs? (rest body) body))
(name tag))))
body (cond
(not (.exists f)) (str path " not exist")
(.isFile f) (slurp f)
(.isDirectory f) (format "<!DOCTYPE html>\n%s"
(html :html
(html :head
(html :title path))
(html :body
(html :h1 path)
(html :tt
(apply html :pre
(for [i (.list f)]
(html :div
(html
:a
{:href
(str (when (> (count path) 1) path) "/" i)} i)))))))))]
(prn path)
(.write out (format "HTTP/1.1 %s OK\r\nContent-Length: %s\r\n\r\n%s"
status
(count body)
body))
(.flush out))
(recur)))

View file

@ -0,0 +1,15 @@
(ns examples.httpkit-server
(:require [clojure.pprint :refer [pprint]]
[org.httpkit.server :as server]))
(defn handler [req]
(let [reply (str (slurp "examples/httpkit_server.clj")
"---\n\n"
(with-out-str (pprint (dissoc req
:headers
:async-channel))))]
{:body reply}))
(server/run-server handler {:port 8090})
@(promise) ;; wait until SIGINT

81
examples/image-viewer.clj Executable file
View file

@ -0,0 +1,81 @@
#!/usr/bin/env bb
(ns image-viewer
(:require [clojure.java.browse :as browse]
[clojure.java.io :as io]
[clojure.string :as str]
[clojure.tools.cli :refer [parse-opts]]
[org.httpkit.server :as server])
(:import [java.net URLDecoder URLEncoder]))
(def cli-options [["-p" "--port PORT" "Port for HTTP server" :default 8090 :parse-fn #(Integer/parseInt %)]
["-d" "--dir DIR" "Directory to scan for images" :default "."]])
(def opts (:options (parse-opts *command-line-args* cli-options)))
(def port (:port opts))
(def dir (:dir opts))
(def images
(filter #(and (.isFile %)
(let [name (.getName %)
ext (some-> (str/split name #"\.")
last
str/lower-case)]
(contains? #{"jpg" "jpeg" "png" "gif" "svg"} ext)))
(file-seq (io/file dir))))
(def image-count (count images))
(defn page [n]
(let [prev (max 0 (dec n))
next (min (inc n) (dec image-count))
file-path (.getCanonicalPath (nth images n))
encoded-file-path (URLEncoder/encode file-path)]
{:body (format "
<!DOCTYPE html>
<html>
<head>
<meta charset=\"utf-8\"/>
<script>
window.onkeydown=function(e) {
switch (e.key) {
case \"ArrowLeft\":
window.location.href=\"/%s\"; break;
case \"ArrowRight\":
window.location.href=\"/%s\"; break;
}
}
</script>
</head>
<body>
Navigation: use left/right arrow keys
<p>%s</p>
<div>
<img style=\"max-height: 90vh; margin: auto; display: block;\" src=\"assets/%s\"/>
</div>
<div>
</div>
</body>
</html>" prev next file-path encoded-file-path)}))
(server/run-server
(fn [{:keys [:uri]}]
(cond
;; serve the file
(str/starts-with? uri "/assets")
(let [f (io/file (-> (str/replace uri "assets" "")
(URLDecoder/decode)))]
{:body f})
;; serve html
(re-matches #"/[0-9]+" uri)
(let [n (-> (str/replace uri "/" "")
(Integer/parseInt))]
(page n))
;; favicon.ico, etc
:else
{:status 404}))
{:port port})
(browse/browse-url (format "http://localhost:%s/0" port))
@(promise)

21
examples/is_tty.clj Executable file
View file

@ -0,0 +1,21 @@
#!/usr/bin/env bb
(ns is-tty
(:require [babashka.process :as p]))
(defn- is-tty
[fd key]
(-> ["test" "-t" (str fd)]
(p/process {key :inherit :env {}})
deref
:exit
(= 0)))
(defn in-is-tty? [] (is-tty 0 :in))
(defn out-is-tty? [] (is-tty 1 :out))
(defn err-is-tty? [] (is-tty 2 :err))
(when (= *file* (System/getProperty "babashka.file"))
(println "STDIN is TTY?:" (in-is-tty?))
(println "STDOUT is TTY?:" (out-is-tty?))
(println "STDERR is TTY?:" (err-is-tty?)))

11
examples/logger.clj Normal file
View file

@ -0,0 +1,11 @@
(ns logger)
(defmacro log [& msgs]
(let [m (meta &form)
_ns (ns-name *ns*) ;; can also be used for logging
file *file*]
`(binding [*out* *err*] ;; or bind to (io/writer log-file)
(println (str ~file ":"
~(:line m) ":"
~(:column m))
~@msgs))))

19
examples/ls_jar.clj Executable file
View file

@ -0,0 +1,19 @@
#!/usr/bin/env bb
;; usage: ls_jar.clj borkdude/sci 0.0.13-alpha.24
(require '[clojure.java.io :as io]
'[clojure.string :as str])
(let [file (if (= 1 (count *command-line-args*))
(io/file (first *command-line-args*))
(let [lib (first *command-line-args*)
[_org lib-name] (str/split lib #"/")
version (second *command-line-args*)]
(io/file (System/getProperty "user.home")
(format ".m2/repository/%s/%s/%s-%s.jar"
(str/replace lib "." (System/getProperty "file.separator"))
version
lib-name version))))]
(doseq [e (enumeration-seq
(.entries (java.util.jar.JarFile. file)))]
(println (.getName e))))

16
examples/memo.clj Normal file
View file

@ -0,0 +1,16 @@
#!/usr/bin/env bb
(defn stash [file-name]
(with-open [os (java.util.zip.GZIPOutputStream. (io/output-stream (str "/tmp/" file-name ".zip")))]
(.write os (.getBytes (slurp *in*)))
(.finish os))
'ok)
(defn unstash [file-name]
(print (slurp (java.util.zip.GZIPInputStream. (io/input-stream (str "/tmp/" file-name ".zip"))))))
(let [[action stash-name] *command-line-args*]
(case action
"put" (stash stash-name)
"get" (unstash stash-name)
(println "Invalid op:" action)))

44
examples/mysql_cmdline.clj Executable file
View file

@ -0,0 +1,44 @@
#!/usr/bin/env bb
;; Simple example of accessing mysql's data via the command line, then turnning around and dumping that data as a table.
;; (map2arg-- mdb "-h" :host) => "-hlocalhost"
(defn map2arg-
"Create mysql command line argument from connection map"
[mdb arg key]
(str arg (get mdb key)))
(defn make-mysql-command-
"Create mysql command line using connection map and statement"
[mdb statement]
["mysql" (map2arg- mdb "-h" :host) (map2arg- mdb "-u" :user) (map2arg- mdb "-p" :password) (:dbname mdb) "--column-names" "-e" statement ])
(defn query
"Executes a query agatinst the command line mysql. Return is a vector of maps with populated with each row."
[ mdb statement ]
(let [
mysql-command (make-mysql-command- mdb statement)
table-as-str (:out (apply shell/sh mysql-command))
table-as-lines (str/split-lines table-as-str)
table-headers (str/split (first table-as-lines) #"\t")
table-as-maps (map #(zipmap table-headers (str/split %1 #"\t")) (rest table-as-lines))
]
table-as-maps
))
;; Typical connection specifier
(def mdb {:dbtype "mysql" :dbname "corp" :host "localhost" :user "dba" :password "dba"})
;; extracted rows
(def rows (query mdb "select TABLE_NAME, ENGINE from information_schema.tables limit 3"))
;; display the data!
(clojure.pprint/print-table rows)
;; Tells emacs to jump into clojure mode.
;; Local Variables:
;; mode: clojure
;; End:

View file

@ -0,0 +1,43 @@
(ns normalize-keywords
(:require [babashka.pods :as pods]
[clojure.java.io :as io]
[rewrite-clj.node :as node]
[rewrite-clj.zip :as z]))
(pods/load-pod 'clj-kondo/clj-kondo "2022.11.02")
(require '[pod.borkdude.clj-kondo :as clj-kondo])
(def code (first *command-line-args*))
(defn findings [file-path]
(->> (clj-kondo/run! {:lint [file-path]
:config {:output {:analysis {:keywords true}}}})
:analysis
:keywords
(filter (some-fn :alias :auto-resolved))))
(defn finding->keyword [{:keys [:ns :name]}]
(keyword (str ns) (str name)))
(defn remove-locs [zloc findings]
(loop [zloc zloc
findings (seq findings)]
(if findings
(let [{:keys [:row :col] :as finding} (first findings)
node (z/node zloc)
m (meta node)]
(if (and (= row (:row m))
(= col (:col m)))
(let [k (finding->keyword finding)
zloc (z/replace zloc (node/coerce k))]
(recur zloc (next findings)))
(recur (z/next zloc) findings)))
(str (z/root zloc)))))
(doseq [f (file-seq (io/file code))
:when (re-find #"\.clj[cdsx]?$" (str f))
:let [file-path (str f)]]
(when-let [findings' (findings file-path)]
(prn (format "Rewriting %s" file-path))
(spit f (remove-locs (z/of-file file-path) findings'))))

115
examples/notes.clj Executable file
View file

@ -0,0 +1,115 @@
#!/usr/bin/env bb
(require '[clojure.java.io :as io]
'[clojure.pprint :refer [pprint]]
'[clojure.string :as str]
'[org.httpkit.server :as server])
(def debug? true)
(def user "admin")
(def password "admin")
(def base64 (-> (.getEncoder java.util.Base64)
(.encodeToString (.getBytes (str user ":" password)))))
(def notes-file (io/file (System/getProperty "user.home") ".notes" "notes.txt"))
(def file-lock (Object.))
(defn write-note! [note]
(locking file-lock
(io/make-parents notes-file)
(spit notes-file (str note "\n") :append true)))
;; hiccup-like
(defn html [v]
(cond (vector? v)
(let [tag (first v)
attrs (second v)
attrs (when (map? attrs) attrs)
elts (if attrs (nnext v) (next v))
tag-name (name tag)]
(format "<%s%s>%s</%s>\n" tag-name (html attrs) (html elts) tag-name))
(map? v)
(str/join ""
(map (fn [[k v]]
(format " %s=\"%s\"" (name k) v)) v))
(seq? v)
(str/join " " (map html v))
:else (str v)))
;; the home page
(defn home-response [session-id]
{:status 200
:headers {"Set-Cookie" (str "notes-id=" session-id)}
:body (str
"<!DOCTYPE html>\n"
(html
[:html
[:head
[:title "Notes"]]
[:body
[:h1 "Notes"]
[:pre (when (.exists notes-file)
(slurp notes-file))]
[:form {:action "/" :method "post"}
[:input {:type "text" :name "note"}]
[:input {:type "submit" :value "Submit"}]]]]))})
(def known-sessions
(atom #{}))
(defn new-session! []
(let [uuid (str (java.util.UUID/randomUUID))]
(swap! known-sessions conj uuid)
uuid))
(def authenticated-sessions
(atom #{}))
(defn authenticate! [session-id headers]
(or (contains? @authenticated-sessions session-id)
(when (= (headers "authorization") (str "Basic " base64))
(swap! authenticated-sessions conj session-id)
true)))
(defn parse-session-id [cookie]
(when cookie
(when-let [notes-id (first (filter #(str/starts-with? % "notes-id")
(str/split cookie #"; ")))]
(str/replace notes-id "notes-id=" ""))))
(defn basic-auth-response [session-id]
{:status 401
:headers {"WWW-Authenticate" "Basic realm=\"notes\""
"Set-Cookie" (str "notes-id=" session-id)}})
;; run the server
(defn handler [req]
(when debug?
(println "Request:")
(pprint req))
(let [body (some-> req :body slurp java.net.URLDecoder/decode)
session-id (parse-session-id (get-in req [:headers "cookie"]))
_ (when (and debug? body)
(println "Request body:" body))
response (cond
;; if we didn't see this session before, we want the user to
;; re-authenticate
(not (contains? @known-sessions session-id))
(basic-auth-response (new-session!))
(not (authenticate! session-id (:headers req)))
(basic-auth-response session-id)
:else (do (when-not (str/blank? body)
(let [note (str/replace body "note=" "")]
(write-note! note)))
(home-response session-id)))]
(when debug?
(println "Response:")
(pprint (dissoc response :body))
(println))
response))
(server/run-server handler {:port 8080})
(println "Server started on port 8080.")
@(promise) ;; wait until SIGINT

27
examples/pom_version_get.clj Executable file
View file

@ -0,0 +1,27 @@
#!/usr/bin/env bb
(ns pom-version-get
{:author "Wilker Lucio"}
(:require [clojure.data.xml :as xml]
[clojure.string :as str]))
(defn tag-name? [tag tname]
(some-> tag :tag name #{tname}))
(defn tag-content-str [tag]
(->> tag :content (filter string?) (str/join "")))
(defn pom-version
([] (pom-version "pom.xml"))
([path]
(->>
(slurp path)
(xml/parse-str)
(xml-seq)
(filter #(tag-name? % "version"))
first
tag-content-str)))
(if-let [arg (first *command-line-args*)]
(pom-version arg)
(pom-version))

View file

@ -0,0 +1,15 @@
(require '[babashka.deps :as deps])
(deps/add-deps '{:deps {org.clojure/data.zip {:mvn/version "RELEASE"}}})
(require '[clojure.data.xml :as xml]
'[clojure.data.zip.xml :as xmlz]
'[clojure.zip :as zip])
(def xml "<pom><version>1.0.0</version></pom>")
(-> xml
xml/parse-str
zip/xml-zip
(xmlz/xml1-> :pom :version zip/down zip/node))
;; => 1.0.0

36
examples/pom_version_set.clj Executable file
View file

@ -0,0 +1,36 @@
#!/usr/bin/env bb
;; usage: version.clj pom.xml 1.0.1
;; pom.xml:
;; <project>
;; <version></version>
;; </project>
;; prints to stdout:
;; <project>
;; <version>1.0.1</version>
;; </project>
(ns pom-version-set
{:author "Michiel Borkent"}
(:require [clojure.data.xml :as xml]))
(def pom-xml (first *command-line-args*))
(def version (second *command-line-args*))
(def xml (xml/parse-str (slurp pom-xml)))
(defn update-version [elt]
(if-let [t (:tag elt)]
(if (= "version" (name t))
(assoc elt :content version)
elt)
elt))
(println
(xml/emit-str
(update xml :content
(fn [contents]
(map update-version contents)))))

54
examples/portal.clj Executable file
View file

@ -0,0 +1,54 @@
#!/usr/bin/env bb
(ns portal
(:require [babashka.deps :as deps]
[cheshire.core :as json]
[clj-yaml.core :as yaml]
[clojure.data.xml :as xml]
[clojure.edn :as edn]
[clojure.string :as str]))
(deps/add-deps '{:deps {djblue/portal {:mvn/version "0.9.0"}}})
(require '[portal.api :as p])
(.addShutdownHook (Runtime/getRuntime)
(Thread. (fn [] (p/close))))
(def file (first *command-line-args*))
(when-not file
(binding [*out* *err*]
(println "Usage: portal.clj <file.(edn|json|xml|yaml)>"))
(System/exit 1))
(defn xml->hiccup [xml]
(if-let [t (:tag xml)]
(let [elt [t]
elt (if-let [attrs (:attr xml)]
(conj elt attrs)
elt)]
(into elt (map xml->hiccup (:content xml))))
xml))
(def extension (last (str/split file #"\.")))
(def contents (slurp file))
(def data (case extension
("edn")
(edn/read-string contents)
("json")
(json/parse-string contents)
("yml" "yaml")
(yaml/parse-string contents)
("xml")
(-> (xml/parse-str contents
:skip-whitespace true
:namespace-aware false)
(xml->hiccup))))
(p/open)
(p/tap)
(tap> data)
@(promise)

19
examples/process_builder.clj Executable file
View file

@ -0,0 +1,19 @@
#!/usr/bin/env bb
(require '[clojure.java.io :as io])
(import '[java.lang ProcessBuilder$Redirect])
(defn grep [input pattern]
(let [proc (-> (ProcessBuilder. ["grep" pattern])
(.redirectOutput ProcessBuilder$Redirect/INHERIT)
(.redirectError ProcessBuilder$Redirect/INHERIT)
(.start))
proc-input (.getOutputStream proc)]
(with-open [w (io/writer proc-input)]
(binding [*out* w]
(print input)
(flush)))
(.waitFor proc)
nil))
(grep "hello\nbye\n" "bye")

7
examples/pst.clj Executable file
View file

@ -0,0 +1,7 @@
#!/usr/bin/env bb
(def now (java.time.ZonedDateTime/now))
(def LA-timezone (java.time.ZoneId/of "America/Los_Angeles"))
(def LA-time (.withZoneSameInstant now LA-timezone))
(def pattern (java.time.format.DateTimeFormatter/ofPattern "HH:mm"))
(println (.format LA-time pattern))

11
examples/random_doc.clj Executable file
View file

@ -0,0 +1,11 @@
#!/usr/bin/env bb
(require '[clojure.repl])
(defmacro random-doc []
(let [sym (-> (ns-publics 'clojure.core) keys rand-nth)]
(if (:doc (meta (resolve sym)))
`(clojure.repl/doc ~sym)
`(random-doc))))
(random-doc)

View file

@ -0,0 +1,19 @@
#!/usr/bin/env bb
(require '[clojure.java.io :as io])
(require '[bencode.core :refer [read-bencode]])
(require '[clojure.walk :refer [prewalk]])
(require '[clojure.pprint :refer [pprint]])
(import 'java.io.PushbackInputStream)
(defn bytes->strings [coll]
(prewalk #(if (bytes? %) (String. % "UTF-8") %) coll))
(defn read-torrent [src]
(with-open [in (io/input-stream (io/file src))]
(-> in PushbackInputStream. read-bencode bytes->strings)))
(when-let [src (first *command-line-args*)]
(-> (read-torrent src)
(assoc-in ["info" "pieces"] "...") ; binary data
pprint))

17
examples/vim.clj Executable file
View file

@ -0,0 +1,17 @@
#!/usr/bin/env bb
(require '[clojure.java.io :as io])
(defn vim [file]
(->
(ProcessBuilder. ["vim" file])
(.inheritIO)
(.start)
(.waitFor)))
(def readme
(let [f (io/file "README.md")]
(when (not (.exists f))
(vim (.getPath f)))
(slurp f)))
(println readme)

View file

@ -0,0 +1,32 @@
;; USAGE: in whatsapp group chat, export your chat _without_ media, and store somewhere.
;; Then
;; $ cat chatfile.txt | bb -i -f whatsapp_frequencies.clj
(ns whatsapp-frequencies
{:author "Marten Sytema"}
(:require [clojure.java.io :as io]
[clojure.pprint :refer [print-table]]
[clojure.string :refer [trim] :as string]))
(defn parse-line
"Returns the name of the message, or nil if it can't be found"
[l]
(->> (string/replace l #"\p{C}" "")
trim
(re-find #"\[.*\] (.+?):")
second))
(defn chats-by-user
([lines]
(chats-by-user lines parse-line))
([lines keep-fn]
(->> lines
(keep keep-fn)
frequencies
(sort-by second >)
(map (fn [[name amount]]
{:name name
:amount amount}))
(print-table [:name :amount]))))
(chats-by-user (line-seq (io/reader *in*)))

17
examples/which.clj Executable file
View file

@ -0,0 +1,17 @@
#!/usr/bin/env bb
(require '[clojure.java.io :as io])
(defn which [executable]
(let [path (System/getenv "PATH")
paths (.split path (System/getProperty "path.separator"))]
(loop [paths paths]
(when-first [p paths]
(let [f (io/file p executable)]
(if (and (.isFile f)
(.canExecute f))
(.getCanonicalPath f)
(recur (rest paths))))))))
(when-let [executable (first *command-line-args*)]
(println (which executable)))

View file

@ -0,0 +1,11 @@
#!/usr/bin/env bb
;; by Janne Himanka shared on Clojurians Slack
(require '[babashka.curl :as curl])
(let [url (str "https://en.wikipedia.org/wiki/" (first *command-line-args*))
page (:body (curl/get url))]
(cond
(re-find #"Disambiguation" page)
(doseq [item (map last (re-seq #"<li><a href...wiki/([^\"]+)" page))]
(println item))
:else (last (re-find #"nl.wikipedia.org/.+?title..([^\"]+)" page))))

78
examples/xml-example.clj Normal file
View file

@ -0,0 +1,78 @@
; let's build up a little data structure to play with
(def pet-store-sexp
[:pet-store
[:family
[:owners
[:name "Terry Smith"]
[:name "Sam Smith"]
[:phone "555-1212"]]
[:animals
[:animal {:type "dog"} "Sparky"]]]
[:family
[:owners
[:name "Pat Jones"]
[:phone "555-2121"]]
[:animals
[:animal {:type "hamster"} "Oliver"]
[:animal {:type "cat"} "Kat"]]]])
; we can build XML from this
(def xml-str (xml/indent-str (xml/sexp-as-element pet-store-sexp)))
(println "Our XML as a string is:")
(println xml-str)
(comment xml-str is
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<pet-store>
<family>
<owners>
<name>Terry Smith</name>...")
; and then we can parse that XML back into a data structure
(def xml-tree (xml/parse-str xml-str))
#_"xml-tree is a nested associative structure:
{:tag :pet-store,
:attrs {},
:content
({:tag :family,
:attrs {},
:content ...})}"
; with a couple of quick helper functions...
(defn get-by-tag
"takes a seq of XML elements (or a 'root-ish' element) and a tag, filters by tag name, and gets the content of each"
[elems tag-name]
; if we get (presumably) a root element, wrap it in a vector so we can still
; filter by its tag
(if (xml/element? elems)
(recur [elems] tag-name)
(->> (filter #(= (:tag %) tag-name) elems)
(mapcat :content))))
(defn get-in-by-tag
"takes a seq of XML elements and a vector of tags, and drills into each
element by the tags, sort of like a mash-up of core/get-in and an XPath
lookup"
[elems tag-vec]
(reduce get-by-tag elems tag-vec))
; we can do things like...
(println "all the owner names:" (get-in-by-tag
xml-tree
[:pet-store :family :owners :name]))
(println "all the animal names:" (get-in-by-tag
xml-tree
[:pet-store :family :animals :animal]))
(println "all the phone numbers:" (get-in-by-tag
xml-tree
[:pet-store :family :owners :phone]))

View file

@ -0,0 +1,16 @@
(ns babashka.impl.match
{:no-doc true}
(:require [clojure.core.match :as match]
clojure.core.match.array ;; side effecting
clojure.core.match.debug ;; side effecting
clojure.core.match.protocols ;; side effecting
clojure.core.match.regex ;; side effecting
[sci.core :as sci :refer [copy-var]]))
(def mns (sci/create-ns 'clojure.core.match nil))
(def core-match-namespace
{'match (copy-var match/match mns)
'backtrack (copy-var match/backtrack mns)
'val-at* (copy-var match/val-at* mns)
'defpred (copy-var match/defpred mns)})

View file

@ -0,0 +1,10 @@
(ns babashka.impl.csv
{:no-doc true}
(:require [clojure.data.csv :as csv]
[sci.core :as sci]))
(def cns (sci/create-ns 'clojure.data.csv nil))
(def csv-namespace
{'read-csv (sci/copy-var csv/read-csv cns)
'write-csv (sci/copy-var csv/write-csv cns)})

View file

@ -0,0 +1,26 @@
(ns babashka.impl.datascript
{:no-doc true}
(:require [datascript.core :as d]
[datascript.db :as db]
[sci.core :as sci :refer [copy-var]]))
(def datascript-ns (sci/create-ns 'datascript.core nil))
(def datascript-db-ns (sci/create-ns 'datascript.db nil))
(def datascript-namespace
{'create-conn (copy-var d/create-conn datascript-ns)
'transact! (copy-var d/transact! datascript-ns)
'q (copy-var d/q datascript-ns)
'empty-db (copy-var d/empty-db datascript-ns)
'db-with (copy-var d/db-with datascript-ns)
'filter (copy-var d/filter datascript-ns)
'init-db (copy-var d/init-db datascript-ns)
'datom (copy-var d/datom datascript-ns)
'pull (copy-var d/pull datascript-ns)
'pull-many (copy-var d/pull-many datascript-ns)})
(def datascript-db-namespace
{'db-from-reader (copy-var db/db-from-reader datascript-db-ns)
'datom-from-reader (copy-var db/datom-from-reader datascript-db-ns)
'datom-added (copy-var db/datom-added datascript-db-ns)
'datom-tx (copy-var db/datom-tx datascript-db-ns)})

View file

@ -0,0 +1,76 @@
(ns babashka.impl.hiccup
{:no-doc true}
(:require [hiccup.compiler :as compiler]
[hiccup.util :as util]
[sci.core :as sci :refer [copy-var]]))
(def hns (sci/create-ns 'hiccup.core nil))
(def hns2 (sci/create-ns 'hiccup2.core nil))
(def uns (sci/create-ns 'hiccup.util nil))
(def cns (sci/create-ns 'hiccup.compiler nil))
(defmacro html-2
"Render Clojure data structures to a compiled representation of HTML. To turn
the representation into a string, use clojure.core/str. Strings inside the
macro are automatically HTML-escaped. To insert a string without it being
escaped, use the [[raw]] function.
A literal option map may be specified as the first argument. It accepts two
keys that control how the HTML is outputted:
`:mode`
: One of `:html`, `:xhtml`, `:xml` or `:sgml` (defaults to `:xhtml`).
Controls how tags are rendered.
`:escape-strings?`
: True if strings should be escaped (defaults to true)."
{:added "2.0"}
[options & content]
;; (prn :escape-strings util/*escape-strings?*)
(if (map? options)
(let [mode (:mode options :xhtml)
escape-strings? (:escape-strings? options true)]
`(binding
[util/*html-mode* ~mode
util/*escape-strings?* ~escape-strings?]
(util/raw-string (compiler/render-html (list ~@content)))))
`(util/raw-string (compiler/render-html (list ~@(cons options content))))))
(defmacro html-1
"Render Clojure data structures to a string of HTML. Strings are **not**
automatically escaped, but must be manually escaped with the [[h]] function.
A literal option map may be specified as the first argument. It accepts the
following keys:
`:mode`
: One of `:html`, `:xhtml`, `:xml` or `:sgml` (defaults to `:xhtml`).
Controls how tags are rendered."
;; {:deprecated "2.0"}
[options & content]
(if (map? options)
`(str (hiccup2.core/html ~(assoc options :escape-strings? false) ~@content))
`(str (hiccup2.core/html {:escape-strings? false} ~options ~@content))))
(def ^{:added "2.0"} raw
"Short alias for [[hiccup.util/raw-string]]."
util/raw-string)
(def hiccup-namespace
{'html (copy-var html-1 hns {:name 'html})})
(def hiccup2-namespace
{'html (copy-var html-2 hns2 {:name 'html})
'raw (copy-var util/raw-string hns2 {:name 'raw})})
(def html-mode (copy-var util/*html-mode* uns))
(def escape-strings? (copy-var util/*escape-strings?* uns))
(def hiccup-util-namespace
{'*html-mode* html-mode
'*escape-strings?* escape-strings?
'raw-string (copy-var util/raw-string uns)
'to-uri (copy-var util/to-uri uns)})
(defn render-html [& contents]
(binding [util/*html-mode* @html-mode
util/*escape-strings?* @escape-strings?]
(apply compiler/render-html contents)))
(def hiccup-compiler-namespace
{'render-html (copy-var render-html cns)})

View file

@ -0,0 +1,81 @@
(ns babashka.impl.httpkit-client
{:no-doc true
:clj-kondo/config '{:lint-as {babashka.impl.httpkit-client/defreq clojure.core/declare}}}
(:refer-clojure :exclude [get])
(:require [clojure.string :as str]
[org.httpkit.client :as client]
[org.httpkit.sni-client :as sni-client]
[sci.core :as sci :refer [copy-var]]))
(def sni-client (delay (client/make-client {:ssl-configurer sni-client/ssl-configurer})))
(def sns (sci/create-ns 'org.httpkit.sni-client nil))
(def cns (sci/create-ns 'org.httpkit.client nil))
(def default-client (sci/new-dynamic-var '*default-client* sni-client {:ns cns}))
(alter-var-root #'client/*default-client* (constantly sni-client))
(defn request
([req]
(binding [client/*default-client* @default-client]
(client/request req)))
([req cb]
(binding [client/*default-client* @default-client]
(client/request req cb))))
(defmacro ^:private defreq [method]
`(defn ~method
~(str "Issues an async HTTP " (str/upper-case method) " request. "
"See `request` for details.")
~'{:arglists '([url & [opts callback]] [url & [callback]])}
~'[url & [s1 s2]]
(if (or (instance? clojure.lang.MultiFn ~'s1) (fn? ~'s1) (keyword? ~'s1))
(request {:url ~'url :method ~(keyword method)} ~'s1)
(request (merge ~'s1 {:url ~'url :method ~(keyword method)}) ~'s2))))
(defreq get)
(defreq delete)
(defreq head)
(defreq post)
(defreq put)
(defreq options)
(defreq patch)
(defreq propfind)
(defreq proppatch)
(defreq lock)
(defreq unlock)
(defreq report)
(defreq acl)
(defreq copy)
(defreq move)
(def httpkit-client-namespace
{'request (sci/new-var 'request request {:doc (:doc (meta #'client/request))
:name 'request
:ns cns})
'get (copy-var get cns)
'options (copy-var options cns)
'put (copy-var put cns)
'lock (copy-var lock cns)
'report (copy-var report cns)
'proppatch (copy-var proppatch cns)
'copy (copy-var copy cns)
'patch (copy-var patch cns)
'make-ssl-engine (copy-var client/make-ssl-engine cns)
'move (copy-var move cns)
'delete (copy-var delete cns)
'make-client (copy-var client/make-client cns)
'head (copy-var head cns)
'propfind (copy-var propfind cns)
'max-body-filter (copy-var client/max-body-filter cns)
'post (copy-var post cns)
'acl (copy-var acl cns)
'unlock (copy-var unlock cns)
'default-client (copy-var client/default-client cns)
'*default-client* default-client
'query-string (copy-var client/query-string cns)
'url-encode (copy-var client/url-encode cns)})
(def sni-client-namespace
{'ssl-configurer (copy-var sni-client/ssl-configurer sns)
'default-client (sci/new-var 'default-client sni-client {:ns sns})})

View file

@ -0,0 +1,22 @@
(ns babashka.impl.httpkit-server
(:require [org.httpkit.server :as server]
[sci.core :as sci :refer [copy-var]]))
(def sns (sci/create-ns 'org.httpkit.server nil))
(def httpkit-server-namespace
{:obj sns
'server-stop! (copy-var server/server-stop! sns)
'server-port (copy-var server/server-port sns)
'server-status (copy-var server/server-status sns)
'run-server (copy-var server/run-server sns)
'sec-websocket-accept (copy-var server/sec-websocket-accept sns)
'websocket-handshake-check (copy-var server/websocket-handshake-check sns)
'send-checked-websocket-handshake! (copy-var server/send-checked-websocket-handshake! sns)
'send-websocket-handshake! (copy-var server/send-websocket-handshake! sns)
'as-channel (copy-var server/as-channel sns)
'send! (copy-var server/send! sns)
'with-channel (copy-var server/with-channel sns)
'on-close (copy-var server/on-close sns)
'close (copy-var server/close sns)}
)

View file

@ -0,0 +1,48 @@
(ns babashka.impl.jdbc
{:no-doc true}
(:require
[next.jdbc :as njdbc]
[next.jdbc.result-set :as rs]
[next.jdbc.sql :as sql]
[sci.core :as sci]))
(def next-ns (sci/create-ns 'next.jdbc nil))
(defn with-transaction
"Given a transactable object, gets a connection and binds it to `sym`,
then executes the `body` in that context, committing any changes if the body
completes successfully, otherwise rolling back any changes made.
The options map supports:
* `:isolation` -- `:none`, `:read-committed`, `:read-uncommitted`,
`:repeatable-read`, `:serializable`,
* `:read-only` -- `true` / `false`,
* `:rollback-only` -- `true` / `false`."
[_ _ [sym transactable opts] & body]
(let [con (vary-meta sym assoc :tag 'java.sql.Connection)]
`(njdbc/transact ~transactable (^{:once true} fn* [~con] ~@body) ~(or opts {}))))
(def njdbc-namespace
{'get-datasource (sci/copy-var njdbc/get-datasource next-ns)
'execute! (sci/copy-var njdbc/execute! next-ns)
'execute-one! (sci/copy-var njdbc/execute-one! next-ns)
'get-connection (sci/copy-var njdbc/get-connection next-ns)
'plan (sci/copy-var njdbc/plan next-ns)
'prepare (sci/copy-var njdbc/prepare next-ns)
'transact (sci/copy-var njdbc/transact next-ns)
'with-transaction (sci/copy-var with-transaction next-ns)})
(def sns (sci/create-ns 'next.jdbc.sql nil))
(def next-sql-namespace
{'insert-multi! (sci/copy-var sql/insert-multi! sns)})
(def rsns (sci/create-ns 'next.jdbc.result-set nil))
(def result-set-namespace
{'as-maps (sci/copy-var rs/as-maps rsns)
'as-unqualified-maps (sci/copy-var rs/as-unqualified-maps rsns)
'as-modified-maps (sci/copy-var rs/as-modified-maps rsns)
'as-unqualified-modified-maps (sci/copy-var rs/as-unqualified-modified-maps rsns)
'as-lower-maps (sci/copy-var rs/as-lower-maps rsns)
'as-unqualified-lower-maps (sci/copy-var rs/as-unqualified-lower-maps rsns)
'as-maps-adapter (sci/copy-var rs/as-maps-adapter rsns)})

View file

@ -0,0 +1,52 @@
(ns babashka.impl.lanterna
{:no-doc true}
(:require
[lanterna.constants]
[lanterna.screen]
[lanterna.terminal]
[sci.core :as sci :refer [copy-var]]))
(def tns (sci/create-ns 'lanterna.terminal nil))
(def sns (sci/create-ns 'lanterna.screen nil))
(def cns (sci/create-ns 'lanterna.constants nil))
(def lanterna-terminal-namespace
{'add-resize-listener (copy-var lanterna.terminal/add-resize-listener tns)
'remove-resize-listener (copy-var lanterna.terminal/remove-resize-listener tns)
'get-terminal (copy-var lanterna.terminal/get-terminal tns)
'start (copy-var lanterna.terminal/start tns)
'stop (copy-var lanterna.terminal/stop tns)
'get-size (copy-var lanterna.terminal/get-size tns)
'move-cursor (copy-var lanterna.terminal/move-cursor tns)
'put-character (copy-var lanterna.terminal/put-character tns)
'put-string (copy-var lanterna.terminal/put-string tns)
'clear (copy-var lanterna.terminal/clear tns)
'flush (copy-var lanterna.terminal/flush tns)
'set-fg-color (copy-var lanterna.terminal/set-fg-color tns)
'set-bg-color (copy-var lanterna.terminal/set-bg-color tns)
'set-style (copy-var lanterna.terminal/set-style tns)
'get-key (copy-var lanterna.terminal/get-key tns)
'get-key-blocking (copy-var lanterna.terminal/get-key-blocking tns)})
(def lanterna-screen-namespace
{'terminal-screen (copy-var lanterna.screen/terminal-screen sns)
'add-resize-listener (copy-var lanterna.screen/add-resize-listener sns)
'remove-resize-listener (copy-var lanterna.screen/remove-resize-listener sns)
'start (copy-var lanterna.screen/start sns)
'stop (copy-var lanterna.screen/stop sns)
'get-size (copy-var lanterna.screen/get-size sns)
'redraw (copy-var lanterna.screen/redraw sns)
'move-cursor (copy-var lanterna.screen/move-cursor sns)
'get-cursor (copy-var lanterna.screen/get-cursor sns)
'put-string (copy-var lanterna.screen/put-string sns)
'put-sheet (copy-var lanterna.screen/put-sheet sns)
'clear (copy-var lanterna.screen/clear sns)
'get-key (copy-var lanterna.screen/get-key sns)
'get-key-blocking (copy-var lanterna.screen/get-key-blocking sns)})
(def lanterna-constants-namespace
{'charsets (copy-var lanterna.constants/charsets cns)
'colors (copy-var lanterna.constants/colors cns)
'styles (copy-var lanterna.constants/styles cns)
'key-codes (copy-var lanterna.constants/key-codes cns)
'sgr (copy-var lanterna.constants/sgr cns)})

View file

@ -0,0 +1,233 @@
(ns babashka.impl.logging
(:require [clojure.tools.logging]
[clojure.tools.logging.impl :as impl]
[clojure.tools.logging.readable]
[sci.core :as sci]
[taoensso.encore :as encore :refer [have]]
[taoensso.timbre :as timbre]))
;;;; timbre
(def tns (sci/create-ns 'taoensso.timbre nil))
(defn- fline [and-form] (:line (meta and-form)))
(defonce callsite-counter
(encore/counter))
(defmacro log! ; Public wrapper around `-log!`
"Core low-level log macro. Useful for tooling/library authors, etc.
* `level` - must eval to a valid logging level
* `msg-type` - must eval to e/o #{:p :f nil}
* `args` - arguments seq (ideally vec) for logging call
* `opts` - ks e/o #{:config ?err ?base-data spying?
:?ns-str :?file :?line :?column}
Supports compile-time elision when compile-time const vals
provided for `level` and/or `?ns-str`.
Logging wrapper examples:
(defn log-wrapper-fn [& args] (timbre/log! :info :p args))
(defmacro log-wrapper-macro [& args] (timbre/keep-callsite `(timbre/log! :info :p ~args)))"
([{:as opts
:keys [loc level msg-type args vargs
config ?err ?base-data spying?]
:or
{config 'taoensso.timbre/*config*
?err :auto}}]
(have [:or nil? sequential? symbol?] args)
(let [callsite-id (callsite-counter)
{:keys [line column]} (merge (meta &form) loc)
{:keys [ns file line column]} {:ns @sci/ns :file @sci/file :line line :column column}
ns (or (get opts :?ns-str) ns)
file (or (get opts :?file) file)
line (or (get opts :?line) line)
column (or (get opts :?column) column)
elide? (and #_(enc/const-forms? level ns) (timbre/-elide? level ns))]
(when-not elide?
(let [vargs-form
(or vargs
(if (symbol? args)
`(taoensso.timbre/-ensure-vec ~args)
`[ ~@args]))]
;; Note pre-resolved expansion
`(taoensso.timbre/-log! ~config ~level ~ns ~file ~line ~column ~msg-type ~?err
(delay ~vargs-form) ~?base-data ~callsite-id ~spying?
~(get opts :instant)
~(get opts :may-log?))))))
([level msg-type args & [opts]]
(let [{:keys [line column]} (merge (meta &form))
{:keys [ns file line column]} {:ns @sci/ns :file @sci/file :line line :column column}
loc {:ns ns :file file :line line :column column}
opts (assoc (conj {:loc loc} opts)
:level level, :msg-type msg-type, :args args)]
`(taoensso.timbre/log! ~opts))))
(defn make-ns [ns sci-ns ks]
(reduce (fn [ns-map [var-name var]]
(let [m (meta var)
doc (:doc m)
arglists (:arglists m)]
(assoc ns-map var-name
(sci/new-var (symbol var-name) @var
(cond-> {:ns sci-ns
:name (:name m)}
(:macro m) (assoc :macro true)
doc (assoc :doc doc)
arglists (assoc :arglists arglists))))))
{}
(select-keys (ns-publics ns) ks)))
(defn println-appender
"Returns a simple `println` appender for Clojure/Script.
Use with ClojureScript requires that `cljs.core/*print-fn*` be set.
:stream (clj only) - e/o #{:auto :*out* :*err* :std-err :std-out <io-stream>}."
;; Unfortunately no easy way to check if *print-fn* is set. Metadata on the
;; default throwing fn would be nice...
[& [{:keys [stream] :or {stream :auto}}]]
(let [stream
(case stream
:std-err timbre/default-err
:std-out timbre/default-out
stream)]
{:enabled? true
:async? false
:min-level nil
:rate-limit nil
:output-fn :inherit
:fn
(fn [data]
(let [{:keys [output_]} data
stream
(case stream
:auto (if (:error-level? data) @sci/err @sci/out)
:*out* @sci/out
:*err* @sci/err
stream)]
(binding [*out* stream]
(encore/println-atomic (force output_)))))}))
(def default-config (assoc-in timbre/*config* [:appenders :println]
(println-appender {:stream :auto})))
(def config (sci/new-dynamic-var '*config* default-config
{:ns tns}))
(defn swap-config! [f & args]
(apply sci/alter-var-root config f args))
(defn set-level! [level] (swap-config! (fn [m] (assoc m :min-level level))))
(defn merge-config! [m] (swap-config! (fn [old] (encore/nested-merge old m))))
(defmacro -log-and-rethrow-errors [?line & body]
`(try (do ~@body)
(catch Throwable e#
(do
#_(error e#) ; CLJ-865
(timbre/log! :error :p [e#] ~{:?line ?line})
(throw e#)))))
(def timbre-namespace
(assoc (make-ns 'taoensso.timbre tns ['trace 'tracef 'debug 'debugf
'info 'infof 'warn 'warnf
'error 'errorf
'-log! 'with-level
'spit-appender '-spy 'spy
'color-str])
'log! (sci/copy-var log! tns)
'*config* config
'swap-config! (sci/copy-var swap-config! tns)
'merge-config! (sci/copy-var merge-config! tns)
'set-level! (sci/copy-var set-level! tns)
'println-appender (sci/copy-var println-appender tns)
'-log-and-rethrow-errors (sci/copy-var -log-and-rethrow-errors tns)
'-ensure-vec (sci/copy-var encore/ensure-vec tns)))
(def enc-ns (sci/create-ns 'taoensso.encore))
(def encore-namespace
{'catching (sci/copy-var encore/catching enc-ns)
'try* (sci/copy-var encore/try* enc-ns)})
(def timbre-appenders-namespace
(let [tan (sci/create-ns 'taoensso.timbre.appenders.core nil)]
{'println-appender (sci/copy-var println-appender tan)
'spit-appender (sci/copy-var #_:clj-kondo/ignore timbre/spit-appender tan)}))
;;;; clojure.tools.logging
(defn- force-var "To support dynamic vars, etc."
[x] (if (instance? clojure.lang.IDeref x) (deref x) x))
(deftype Logger [logger-ns-str timbre-config]
clojure.tools.logging.impl/Logger
(enabled? [_ level]
;; No support for per-call config
(timbre/may-log? level logger-ns-str
(force-var timbre-config)))
(write! [_ level throwable message]
(log! level :p
[message] ; No support for pre-msg raw args
{:config (force-var timbre-config) ; No support for per-call config
:?ns-str logger-ns-str
:?file nil ; No support
:?line nil ; ''
:?err throwable})))
(deftype LoggerFactory [get-logger-fn]
clojure.tools.logging.impl/LoggerFactory
(name [_] "Timbre")
(get-logger [_ logger-ns] (get-logger-fn logger-ns)))
(alter-var-root
#'clojure.tools.logging/*logger-factory*
(fn [_]
(LoggerFactory.
(encore/memoize (fn [logger-ns] (Logger. (str logger-ns) config))))))
(def lns (sci/create-ns 'clojure.tools.logging nil))
(defmacro log
"Evaluates and logs a message only if the specified level is enabled. See log*
for more details."
([level message]
`(clojure.tools.logging/log ~level nil ~message))
([level throwable message]
`(clojure.tools.logging/log ~(deref sci/ns) ~level ~throwable ~message))
([logger-ns level throwable message]
`(clojure.tools.logging/log clojure.tools.logging/*logger-factory* ~logger-ns ~level ~throwable ~message))
([logger-factory logger-ns level throwable message]
`(let [logger# (impl/get-logger ~logger-factory ~logger-ns)]
(if (impl/enabled? logger# ~level)
(clojure.tools.logging/log* logger# ~level ~throwable ~message)))))
(def tools-logging-namespace
(assoc (make-ns 'clojure.tools.logging lns ['debug 'debugf 'info 'infof 'warn 'warnf 'error 'errorf
'logp 'logf '*logger-factory* 'log*
'trace 'tracef])
'log (sci/copy-var log lns)))
(def lins (sci/create-ns 'clojure.tools.logging.impl nil))
(def tools-logging-impl-namespace
(make-ns 'clojure.tools.logging.impl lins ['get-logger 'enabled?]))
(def tlr-ns (sci/create-ns 'clojure.tools.logging.readable nil))
(def tools-logging-readable-namespace
(make-ns 'clojure.tools.logging.readable tlr-ns ['trace 'tracef 'debug 'debugf 'info 'infof
'warn 'warnf 'error 'errorf 'fatal 'fatalf
'logf 'logp 'spyf]))

View file

@ -0,0 +1,11 @@
(ns babashka.impl.priority-map
(:require [clojure.data.priority-map :as pm]
[sci.core :as sci]))
(def pmns (sci/create-ns 'clojure.data.priority-map))
(def priority-map-namespace
{'priority-map (sci/copy-var pm/priority-map pmns)
'priority-map-keyfn (sci/copy-var pm/priority-map-keyfn pmns)
'subseq (sci/copy-var pm/subseq pmns)
'rsubseq (sci/copy-var pm/rsubseq pmns)})

View file

@ -0,0 +1,7 @@
(ns babashka.impl.rrb-vector
(:require [clojure.core.rrb-vector :as rrb]
[sci.core :as sci]))
(def rrbns (sci/create-ns 'clojure.core.rrb-vector))
(def rrb-vector-namespace {'catvec (sci/copy-var rrb/catvec rrbns)})

Some files were not shown because too many files have changed in this diff Show more