This commit is contained in:
Michiel Borkent 2021-01-01 11:26:31 +01:00
parent bbf144fbce
commit e309b49e1b
16 changed files with 126 additions and 124 deletions

View file

@ -2,7 +2,7 @@
set -eo pipefail
image_name="borkdude/babashka"
image_name="babashka/babashka"
image_tag=$(cat resources/BABASHKA_VERSION)
latest_tag="latest"

View file

@ -2,7 +2,7 @@
set -eo pipefail
image_name="borkdude/babashka"
image_name="babashka/babashka"
image_tag=$(cat resources/BABASHKA_VERSION)
latest_tag="latest"

View file

@ -14,15 +14,15 @@ For a list of breaking changes, check [here](#breaking-changes).
- Implement [pod registry](https://github.com/babashka/pod-registry) to
automatically obtain pods when used in
script. [#690](https://github.com/borkdude/babashka/issues/690)
- [Buddy pod](https://github.com/babashka/pod-babashka-buddy) [#656](https://github.com/borkdude/babashka/issues/656)
script. [#690](https://github.com/babashka/babashka/issues/690)
- [Buddy pod](https://github.com/babashka/pod-babashka-buddy) [#656](https://github.com/babashka/babashka/issues/656)
- [Etaoin pod 0.0.1 release](https://github.com/babashka/pod-babashka-etaoin)
- [Filewatcher pod 0.0.1 release](https://github.com/babashka/pod-babashka-filewatcher)
- [Fswatcher pod](https://github.com/babashka/pod-babashka-fswatcher) ([@lispyclouds](https://github.com/lispyclouds))
### Fixed / enhanced
- Auto-resolved map fix [#684](https://github.com/borkdude/babashka/issues/684)
- Auto-resolved map fix [#684](https://github.com/babashka/babashka/issues/684)
- Handle whitespace after read-cond splice
- Several performance improvements
@ -40,21 +40,21 @@ integration](https://clojure.org/guides/deps_and_cli). See
### New
- Add `get-classpath` and `split-classpath` to `babashka.classpath`
namespace. [#670](https://github.com/borkdude/babashka/issues/670). See
namespace. [#670](https://github.com/babashka/babashka/issues/670). See
[docs](https://book.babashka.org/#babashka_classpath).
- Expose `add-deps` in `babashka.deps`
[#677](https://github.com/borkdude/babashka/issues/677). See
[#677](https://github.com/babashka/babashka/issues/677). See
[docs](https://book.babashka.org/#_add_deps).
- Expose `clojure` in `babashka.deps`
[#678](https://github.com/borkdude/babashka/issues/678). See
[#678](https://github.com/babashka/babashka/issues/678). See
[docs](https://book.babashka.org/#_clojure).
- Implement `--clojure` option to invoke a JVM clojure process similar to the
official Clojure CLI. See [docs](https://book.babashka.org/#_invoking_clojure).
### Fixed / enhanced
- Add syntax checks to `binding` macro [#666](https://github.com/borkdude/babashka/issues/666)
- Upgrade to GraalVM 20.3.0 [#653](https://github.com/borkdude/babashka/issues/653)
- Add syntax checks to `binding` macro [#666](https://github.com/babashka/babashka/issues/666)
- Upgrade to GraalVM 20.3.0 [#653](https://github.com/babashka/babashka/issues/653)
## v0.2.4
@ -67,24 +67,24 @@ and code contributions. Thanks to sponsors on
### New
- pREPL implementation
[#664](https://github.com/borkdude/babashka/issues/664). See
[docs](https://github.com/borkdude/babashka/blob/master/doc/repl.md#prepl).
[#664](https://github.com/babashka/babashka/issues/664). See
[docs](https://github.com/babashka/babashka/blob/master/doc/repl.md#prepl).
The pREPL is used by NextJournal to expose a babashka [notebook
environment](http://nextjournal.com/try/babashka?cm6=1).
- [News page](doc/news.md) where you can follow the latest developments around babashka.
- Expose `pprint/simple-dispatch` [#627](https://github.com/borkdude/babashka/issues/627)
- Expose `pprint/simple-dispatch` [#627](https://github.com/babashka/babashka/issues/627)
- Support nested libspecs [borkdude/sci#399](https://github.com/borkdude/sci/issues/399)
- Add OracleDB feature flag [#638](https://github.com/borkdude/babashka/issues/638) ([@holyjak](https://github.com/holyjak))
- Docker build documentation improvements [#643](https://github.com/borkdude/babashka/issues/643) ([@holyjak](https://github.com/holyjak))
- Add OracleDB feature flag [#638](https://github.com/babashka/babashka/issues/638) ([@holyjak](https://github.com/holyjak))
- Docker build documentation improvements [#643](https://github.com/babashka/babashka/issues/643) ([@holyjak](https://github.com/holyjak))
- Implement `get-thread-bindings`, `var-get` and `var-set`
- Print used port when starting nREPL server ([@plexus](https://github.com/plexus))
### Fixed / enhanced
- Can't call symbol literal as function [#622](https://github.com/borkdude/babashka/issues/622)
- Can't call symbol literal as function [#622](https://github.com/babashka/babashka/issues/622)
- `:or` in destructuring broken for `false` case
- Support aliases in protocol fns [borkdude/sci#440](https://github.com/borkdude/sci/issues/440)
- Reader metadata preservation and evaluation fixes [#654](https://github.com/borkdude/babashka/issues/654), [borkdude/sci#447](https://github.com/borkdude/sci/issues/447), [borkdude/sci#448](https://github.com/borkdude/sci/issues/448)
- Reader metadata preservation and evaluation fixes [#654](https://github.com/babashka/babashka/issues/654), [borkdude/sci#447](https://github.com/borkdude/sci/issues/447), [borkdude/sci#448](https://github.com/borkdude/sci/issues/448)
- Optimization for constant colls [borkdude/sci#452](https://github.com/borkdude/sci/issues/452)
- `ns-unmap` doesn't work for imported classes [borkdude/sci#432](https://github.com/borkdude/sci/issues/432)
- Fix parsing of trailing uneval in reader conditional
@ -93,8 +93,8 @@ and code contributions. Thanks to sponsors on
### Changed
- Remove cheshire smile functions [#658](https://github.com/borkdude/babashka/issues/658)
- `babashka.curl` now calls curl with `--compressed` by default [borkdude/babashka.curl#28](https://github.com/borkdude/babashka.curl)
- Remove cheshire smile functions [#658](https://github.com/babashka/babashka/issues/658)
- `babashka.curl` now calls curl with `--compressed` by default [babashka/babashka.curl#28](https://github.com/babashka/babashka.curl)
## v0.2.3 (2020-10-21)
@ -106,33 +106,33 @@ Thanks to [@tzzh](https://github.com/tzzh), [@Heliosmaster](https://github.com/H
- [pod-tzzh-mail](https://github.com/tzzh/pod-tzzh-mail): a pod for sending mail by [@tzzh](https://github.com/tzzh)
- [pod-babashka-lanterna](https://github.com/babashka/pod-babashka-lanterna): a pod for creating TUI apps
- [pod.xledger.sql-server](https://github.com/xledger/pod_sql_server): a pod for interacting with SQL Server
- Add `lazy-cat` [#605](https://github.com/borkdude/babashka/issues/605)
- Add `lazy-cat` [#605](https://github.com/babashka/babashka/issues/605)
- Support error output in babashka.nrepl
[babashka.nrepl#28](https://github.com/babashka/babashka.nrepl/issues/28)
([@tzzh](https://github.com/tzzh))
- Add lanterna [feature flag](https://github.com/borkdude/babashka/commit/13f65f05aeff891678e88965d9fbd146bfa87f4e) ([@kwrooijen](https://github.com/kwrooijen))
- Add lanterna [feature flag](https://github.com/babashka/babashka/commit/13f65f05aeff891678e88965d9fbd146bfa87f4e) ([@kwrooijen](https://github.com/kwrooijen))
- Add socket support to pods [babashka/pods#2](https://github.com/babashka/pods/issues/2)
- Add `curl` to borkdude/babashka Docker image to support `babashka.curl` ([@hansbugge](https://github.com/hansbugge))
- Add `curl` to babashka/babashka Docker image to support `babashka.curl` ([@hansbugge](https://github.com/hansbugge))
- Add `transit+json` format support to pods [babashka/pods#21](https://github.com/babashka/pods/issues/21)
- Add `bound?` [borkdude/sci#430](https://github.com/borkdude/sci/issues/430)
- Add [portal](https://github.com/borkdude/babashka/tree/master/examples#portal) example
- Add [portal](https://github.com/babashka/babashka/tree/master/examples#portal) example
- Add `*print-namespace-maps*` [borkdude/sci#428](https://github.com/borkdude/sci/issues/428)
- Support `clojure.java.io/Coercions` protocol [#601](https://github.com/borkdude/babashka/issues/601)
- Add `clojure.pprint/write` [#607](https://github.com/borkdude/babashka/issues/607)
- Add pretty-printer vars from `cheshire.core` [#619](https://github.com/borkdude/babashka/issues/619)
- Support `clojure.java.io/Coercions` protocol [#601](https://github.com/babashka/babashka/issues/601)
- Add `clojure.pprint/write` [#607](https://github.com/babashka/babashka/issues/607)
- Add pretty-printer vars from `cheshire.core` [#619](https://github.com/babashka/babashka/issues/619)
### Fixed
- `pprint/print-table` should write to `sci/out` [#611](https://github.com/borkdude/babashka/issues/611)
- `System/exit` doesn't work in REPL [#605](https://github.com/borkdude/babashka/issues/606)
- Fix pod destroy function [#615](https://github.com/borkdude/babashka/issues/615)
- `pprint/print-table` should write to `sci/out` [#611](https://github.com/babashka/babashka/issues/611)
- `System/exit` doesn't work in REPL [#605](https://github.com/babashka/babashka/issues/606)
- Fix pod destroy function [#615](https://github.com/babashka/babashka/issues/615)
- Bind `*file*` in nREPL server [babashka/babashka.nrepl#31](https://github.com/babashka/babashka.nrepl/issues/31)
- Support `map->` constructor on defrecords [borkdude/sci#431](https://github.com/borkdude/sci/issues/431)
- Import should return class [#610](https://github.com/borkdude/babashka/issues/610)
- Import should return class [#610](https://github.com/babashka/babashka/issues/610)
### Changed
- The [Docker image](https://hub.docker.com/r/borkdude/babashka/) is now based
- The [Docker image](https://hub.docker.com/r/babashka/babashka/) is now based
on Ubuntu instead of Alpine.
## v0.2.2 (2020-09-30)
@ -143,7 +143,7 @@ but it also introduces new support around `reify`.
### New
- Support `java.nio.file.FileVisitor` and `java.io.FilenameFilter` with `reify` [#600](https://github.com/borkdude/babashka/issues/600). Nice side effect: this makes babashka compatible with the [fs](https://github.com/clj-commons/fs) library:
- Support `java.nio.file.FileVisitor` and `java.io.FilenameFilter` with `reify` [#600](https://github.com/babashka/babashka/issues/600). Nice side effect: this makes babashka compatible with the [fs](https://github.com/clj-commons/fs) library:
``` clojure
$ export BABASHKA_CLASSPATH=$(clojure -Spath -Sdeps '{:deps {clj-commons/fs {:mvn/version "1.5.2"}}}')
$ bb -e '(ns foo (:require [me.raynes.fs :as fs])) (map str (fs/glob "*.md"))'
@ -161,34 +161,34 @@ Thanks to [@RickMoynihan](https://github.com/RickMoynihan), [@joinr](https://git
### New
- Include `org.httpkit.client`, a high performance async http client [#561](https://github.com/borkdude/babashka/issues/561)
- Include `org.httpkit.client`, a high performance async http client [#561](https://github.com/babashka/babashka/issues/561)
- Include `org.httpkit.server`, an HTTP server
[#556](https://github.com/borkdude/babashka/issues/556). This namespace should
[#556](https://github.com/babashka/babashka/issues/556). This namespace should
be considered experimental and may stay or be removed in a future version of
babashka, depending on feedback from the community. See [example](examples/httpkit_server.clj)
- Add `java.io.FileNotFoundException`, `java.security.DigestInputStream`, `java.nio.file.FileVisitOption` classes
- Support implementing `IDeref`, `IAtom` and `IAtom2` on records [sci#401](https://github.com/borkdude/sci/issues/401)
- Support compatibility with [version-clj](https://github.com/xsc/version-clj) [#565](https://github.com/borkdude/babashka/issues/565) [@lread](https://github.com/lread) and [@borkdude](https://github.com/borkdude)
- Support YAML roundtrip through `*input*` [#583](https://github.com/borkdude/babashka/issues/583)
- Support compatibility with [version-clj](https://github.com/xsc/version-clj) [#565](https://github.com/babashka/babashka/issues/565) [@lread](https://github.com/lread) and [@borkdude](https://github.com/borkdude)
- Support YAML roundtrip through `*input*` [#583](https://github.com/babashka/babashka/issues/583)
- Support `clojure.core/find-var` [sci#420](https://github.com/borkdude/sci/issues/420) [@RickMoynihan](https://github.com/RickMoynihan)
- Support `clojure.pprint/cl-format` [#571](https://github.com/borkdude/babashka/issues/571)
- Support `clojure.pprint/cl-format` [#571](https://github.com/babashka/babashka/issues/571)
- [AWS pod](https://github.com/tzzh/pod-tzzh-aws)
### Fixed / enhanced
- Fix location printing in REPL (`--repl`) [#598](https://github.com/borkdude/babashka/issues/589)
- Babashka.curl sends form params incorrectly as multipart [babashka.curl#25](https://github.com/borkdude/babashka.curl/issues/25)
- Update Windows build instructions [#574](https://github.com/borkdude/babashka/issues/574)
- Set minimum macOS version in build explicitly [#588](https://github.com/borkdude/babashka/pull/588)
- Fix NPE in error handling logic [#587](https://github.com/borkdude/babashka/issues/587)
- Fix namespace switch in REPL (`--repl`) [#564](https://github.com/borkdude/babashka/issues/564)
- Fix location of errors in REPL (`--repl`) [#589](https://github.com/borkdude/babashka/issues/589)
- Fix location printing in REPL (`--repl`) [#598](https://github.com/babashka/babashka/issues/589)
- Babashka.curl sends form params incorrectly as multipart [babashka.curl#25](https://github.com/babashka/babashka.curl/issues/25)
- Update Windows build instructions [#574](https://github.com/babashka/babashka/issues/574)
- Set minimum macOS version in build explicitly [#588](https://github.com/babashka/babashka/pull/588)
- Fix NPE in error handling logic [#587](https://github.com/babashka/babashka/issues/587)
- Fix namespace switch in REPL (`--repl`) [#564](https://github.com/babashka/babashka/issues/564)
- Fix location of errors in REPL (`--repl`) [#589](https://github.com/babashka/babashka/issues/589)
- Support multi-arity methods in `defprotocol` [sci#406](https://github.com/borkdude/sci/issues/406)
- Constructor call not recognized in protocol impl [sci#419](https://github.com/borkdude/sci/issues/419)
- Improve handling of top-level do in macro expansion [sci#421](https://github.com/borkdude/sci/issues/421)
- Performance improvements suggested by [@joinr](https://github.com/joinr) [sci#415](https://github.com/borkdude/sci/issues/415)
- Throw when trying to redefine referred var [sci#398](https://github.com/borkdude/sci/issues/398)
- `pprint` is now backed by `clojure.pprint/pprint` instead of fipp [#571](https://github.com/borkdude/babashka/issues/571)
- `pprint` is now backed by `clojure.pprint/pprint` instead of fipp [#571](https://github.com/babashka/babashka/issues/571)
## v0.2.0 (2020-08-28)
@ -198,27 +198,27 @@ contributing to this release. Thanks to [Clojurists Together](https://www.clojur
### New
- Add support for `clojure.datafy`, `Datafiable` and `Navigable` [#468](https://github.com/borkdude/babashka/issues/468). To play with the new `clojure.datafy` support, you can use [portal](https://github.com/djblue/portal):
- Add support for `clojure.datafy`, `Datafiable` and `Navigable` [#468](https://github.com/babashka/babashka/issues/468). To play with the new `clojure.datafy` support, you can use [portal](https://github.com/djblue/portal):
``` clojure
$ bb -cp `clj -Spath -Sdeps '{:deps {djblue/portal {:mvn/version "0.4.0"}}}'`
```
- Add support for building and running uberjars [#536](https://github.com/borkdude/babashka/issues/536). See [docs](https://github.com/borkdude/babashka#uberjar).
- Print context, locals and stack trace on exception [#543](https://github.com/borkdude/babashka/issues/543).
- Expose more transit vars [#525](https://github.com/borkdude/babashka/issues/525) ([@djblue](https://github.com/djblue))
- Add support for building and running uberjars [#536](https://github.com/babashka/babashka/issues/536). See [docs](https://github.com/babashka/babashka#uberjar).
- Print context, locals and stack trace on exception [#543](https://github.com/babashka/babashka/issues/543).
- Expose more transit vars [#525](https://github.com/babashka/babashka/issues/525) ([@djblue](https://github.com/djblue))
- Add `add-tap`,`tap>`, `remove-tap`, `class?`, `iterator-seq`, `remove-watch`, `realized?`
- Add `clojure.walk/macroexpand-all`
- Add `java.lang.ProcessHandle` and better support for killing subprocesses via
Java interop. See [test script](https://github.com/borkdude/babashka/blob/7049b1b0bd582b717094703bcf299fb6363bb142/test/babashka/scripts/kill_child_processes.bb).
- Add `clojure.lang.ArityException` and tests to support the [circleci/bond](https://github.com/circleci/bond) library [#524](https://github.com/borkdude/babashka/issues/524) ([@cldwalker](https://github.com/cldwalker)).
Java interop. See [test script](https://github.com/babashka/babashka/blob/7049b1b0bd582b717094703bcf299fb6363bb142/test/babashka/scripts/kill_child_processes.bb).
- Add `clojure.lang.ArityException` and tests to support the [circleci/bond](https://github.com/circleci/bond) library [#524](https://github.com/babashka/babashka/issues/524) ([@cldwalker](https://github.com/cldwalker)).
- Add `java.time.format.DateTimeParseException`
### Fixed
- Fix order of namespaces in uberscript [#535](https://github.com/borkdude/babashka/issues/535)
- Fix reading resources from jar files [#528](https://github.com/borkdude/babashka/issues/528)
- Fix order of namespaces in uberscript [#535](https://github.com/babashka/babashka/issues/535)
- Fix reading resources from jar files [#528](https://github.com/babashka/babashka/issues/528)
- Switch from canonical to absolute paths in `:file` field on var metadata
[#532](https://github.com/borkdude/babashka/issues/532)
- Babashka shows wrong filename when error is from required ns [#508](https://github.com/borkdude/babashka/issues/508)
[#532](https://github.com/babashka/babashka/issues/532)
- Babashka shows wrong filename when error is from required ns [#508](https://github.com/babashka/babashka/issues/508)
- Eval metadata on var created with `defn` [borkdude/sci#36](https://github.com/borkdude/sci/issues/36)
- Metadata fn on var fails if calling the var itself [borkdude/sci#363](https://github.com/borkdude/sci/issues/363)
- Allow re-binding of core vars in with-redefs [borkdude/sci#375](https://github.com/borkdude/sci/issues/375)
@ -234,15 +234,15 @@ Thanks [@llacom](https://github.com/llacom), [@AndreTheHunter](https://github.co
- Add eldoc support in babashka.nrepl ([@borkdude](https://github.com/borkdude) and [@llacom](https://github.com/llacom))
- Add `java.time.temporal.{TemportalAdjuster, TemporalAmount}` classes
- Add `clojure.java.browse/browse-url` [#495](https://github.com/borkdude/babashka/issues/495)
- Add `clojure.java.browse/browse-url` [#495](https://github.com/babashka/babashka/issues/495)
- Add classes for cli-matic library ([@AndreTheHunter](https://github.com/AndreTheHunter))
- Add `babashka.version` system property [#479](https://github.com/borkdude/babashka/issues/479)
- Add `babashka.version` system property [#479](https://github.com/babashka/babashka/issues/479)
- Add `java.net.ConnectException` class
- Add `babashka.file` system property to support `__name__ = "__main__"` pattern (see [docs](https://github.com/borkdude/babashka#__name__--__main__-pattern)) [#478](https://github.com/borkdude/babashka/issues/478).
- Add `babashka.file` system property to support `__name__ = "__main__"` pattern (see [docs](https://github.com/babashka/babashka#__name__--__main__-pattern)) [#478](https://github.com/babashka/babashka/issues/478).
### Fixed
- Make `clojure.test/report` a dynamic var [#482](https://github.com/borkdude/babashka/issues/482), [#491](https://github.com/borkdude/babashka/issues/491)
- Make `clojure.test/report` a dynamic var [#482](https://github.com/babashka/babashka/issues/482), [#491](https://github.com/babashka/babashka/issues/491)
- Make `clojure.test/test-var` a dynamic var
- Allow arbitrary Clojure code in tagged literals (previously only EDN was allowed)
- Fix http-server example ([@xingzheone](https://github.com/xingzheone))
@ -254,11 +254,11 @@ Thanks [@llacom](https://github.com/llacom), [@AndreTheHunter](https://github.co
Thanks [@jeroenvandijk](https://github.com/jeroenvandijk) for contributing to this release.
- Support `:extend-via-metadata` option in protocols
- Fix classpath issue for Windows [#496](https://github.com/borkdude/babashka/issues/496)
- Fix classpath issue for Windows [#496](https://github.com/babashka/babashka/issues/496)
- Add `double-array`, `short-array` and `clojure.lang.BigInt` for compatibility with
[clojure.data.generators](https://github.com/clojure/data.generators)
- Add support for `*print-level*`
- Add version info in `:describe` message of babashka.nrepl [#471](https://github.com/borkdude/babashka/issues/471)
- Add version info in `:describe` message of babashka.nrepl [#471](https://github.com/babashka/babashka/issues/471)
- Add compatibility for [honeysql](https://github.com/seancorfield/honeysql)
(most notable change: support `import` for records)
@ -280,8 +280,8 @@ This release brings compatibility with the
### Enhancements / fixes
- Fix interop with result of `.environment` method on `ProcessBuilder` [#460](https://github.com/borkdude/babashka/issues/460)
- Disable signal handlers via environment variable for AWS Lambda [#462](https://github.com/borkdude/babashka/issues/462) ([@Chowlz](https://github.com/Chowlz)). See [README.md](https://github.com/borkdude/babashka#package-babashka-script-as-a-aws-lambda).
- Fix interop with result of `.environment` method on `ProcessBuilder` [#460](https://github.com/babashka/babashka/issues/460)
- Disable signal handlers via environment variable for AWS Lambda [#462](https://github.com/babashka/babashka/issues/462) ([@Chowlz](https://github.com/Chowlz)). See [README.md](https://github.com/babashka/babashka#package-babashka-script-as-a-aws-lambda).
- babashka.curl: fix double quote escaping issue on Windows
- Fix resolving var in syntax-quote from other namespace brought in via `:refer`
- `io/resource` should return `nil` for non-relative paths instead of throwing
@ -297,49 +297,49 @@ Thanks [@martinklepsch](https://github.com/martinklepsch) and [@cldwalker](https
- Add `java.nio.file.PathMatcher` class. This allows one to implement a
[glob](test-resources/babashka/glob.clj) function.
- Support alternative interop form: `(. Integer -SIZE) ;;=> 32`
- [#454](https://github.com/borkdude/babashka/issues/454): syntax check on amount of arguments to `def`
- [#458](https://github.com/borkdude/babashka/issues/458): add `clojure.data` namespace
- [#454](https://github.com/babashka/babashka/issues/454): syntax check on amount of arguments to `def`
- [#458](https://github.com/babashka/babashka/issues/458): add `clojure.data` namespace
## Prior to v0.1.0
Details about releases prior to v0.1.0 can be found
[here](https://github.com/borkdude/babashka/releases).
[here](https://github.com/babashka/babashka/releases).
## Breaking changes
### v0.2.4
- Remove cheshire smile functions [#658](https://github.com/borkdude/babashka/issues/658)
- Remove cheshire smile functions [#658](https://github.com/babashka/babashka/issues/658)
### v0.2.3
- The [Docker image](https://hub.docker.com/r/borkdude/babashka/) is now based on Ubuntu instead of Alpine.
- The [Docker image](https://hub.docker.com/r/babashka/babashka/) is now based on Ubuntu instead of Alpine.
### v0.0.90
- The `next.jdbc` namespace and PostgresQL driver, introduced in `v0.0.89`, are
no longer part of the standardly distributed `bb` binary. This is now
available behind a feature flag. See [feature flag
documentation](https://github.com/borkdude/babashka/blob/master/doc/build.md#feature-flags).
- [borkdude/babashka.curl#16](https://github.com/borkdude/babashka.curl/issues/16):
documentation](https://github.com/babashka/babashka/blob/master/doc/build.md#feature-flags).
- [babashka/babashka.curl#16](https://github.com/babashka/babashka.curl/issues/16):
Exceptional status codes or nonzero `curl` exit codes will throw exceptions by
default. You can opt out with `:throw false`.
### v0.0.79
- [babashka.curl#9](https://github.com/borkdude/babashka.curl/issues/9):
- [babashka.curl#9](https://github.com/babashka/babashka.curl/issues/9):
Functions in `babashka.curl` like `get`, `post`, etc. now always return a map
with `:status`, `:body`, and `:headers`.
### v0.0.71
- [#267](https://github.com/borkdude/babashka/issues/267) Change behavior of
- [#267](https://github.com/babashka/babashka/issues/267) Change behavior of
reader conditionals: the `:clj` branch is taken when it occurs before a `:bb`
branch.
### v0.0.44 - 0.0.45
- [#173](https://github.com/borkdude/babashka/issues/173): Rename `*in*` to
- [#173](https://github.com/babashka/babashka/issues/173): Rename `*in*` to
`*input*` (in the `user` namespace). The reason for this is that it shadowed
`clojure.core/*in*` when used unqualified.
### v0.0.43
- [#160](https://github.com/borkdude/babashka/issues/160): Add support for
- [#160](https://github.com/babashka/babashka/issues/160): Add support for
`java.lang.ProcessBuilder`. See docs. This replaces the `conch` namespace.

View file

@ -1,8 +1,8 @@
<img src="logo/babashka.svg" width="425px">
[![CircleCI](https://circleci.com/gh/borkdude/babashka/tree/master.svg?style=shield)](https://circleci.com/gh/borkdude/babashka/tree/master)
[![CircleCI](https://circleci.com/gh/babashka/babashka/tree/master.svg?style=shield)](https://circleci.com/gh/babashka/babashka/tree/master)
[![project chat](https://img.shields.io/badge/slack-join_chat-brightgreen.svg)](https://app.slack.com/client/T03RZGPFR/CLX41ASCS)
[![Financial Contributors on Open Collective](https://opencollective.com/babashka/all/badge.svg?label=financial+contributors)](https://opencollective.com/babashka) [![Clojars Project](https://img.shields.io/clojars/v/borkdude/babashka.svg)](https://clojars.org/borkdude/babashka)
[![Financial Contributors on Open Collective](https://opencollective.com/babashka/all/badge.svg?label=financial+contributors)](https://opencollective.com/babashka) [![Clojars Project](https://img.shields.io/clojars/v/babashka/babashka.svg)](https://clojars.org/babashka/babashka)
[![twitter](https://img.shields.io/badge/twitter-%23babashka-blue)](https://twitter.com/search?q=%23babashka&src=typed_query&f=live)
A Clojure [babushka](https://en.wikipedia.org/wiki/Headscarf) for the grey areas of Bash.
@ -40,15 +40,15 @@ As one user described it:
## Quickstart
For installation options check [Installation](https://github.com/borkdude/babashka#installation).
For installation options check [Installation](https://github.com/babashka/babashka#installation).
For quick installation use:
``` shell
$ bash <(curl -s https://raw.githubusercontent.com/borkdude/babashka/master/install)
$ bash <(curl -s https://raw.githubusercontent.com/babashka/babashka/master/install)
```
or grab a binary from [Github
releases](https://github.com/borkdude/babashka/releases) yourself and place it
releases](https://github.com/babashka/babashka/releases) yourself and place it
anywhere on the path.
Then you're ready to go:
@ -61,7 +61,7 @@ bb took 4ms.
### Babashka users
Are you using babashka in your company or personal projects? Let us know [here](https://github.com/borkdude/babashka/issues/254).
Are you using babashka in your company or personal projects? Let us know [here](https://github.com/babashka/babashka/issues/254).
### Setting expectations
@ -166,7 +166,7 @@ On Windows you can install using [scoop](https://scoop.sh/) and the
Install via the installer script:
``` shell
$ curl -sLO https://raw.githubusercontent.com/borkdude/babashka/master/install
$ curl -sLO https://raw.githubusercontent.com/babashka/babashka/master/install
$ chmod +x install
$ ./install
```
@ -194,12 +194,12 @@ $ ./install --dir . --version 0.2.5 --download-dir .
### Github releases
You may also download a binary from
[Github](https://github.com/borkdude/babashka/releases). For linux there is a
[Github](https://github.com/babashka/babashka/releases). For linux there is a
static binary available which can be used on Alpine.
## Docker
Check out the image on [Docker hub](https://hub.docker.com/r/borkdude/babashka/).
Check out the image on [Docker hub](https://hub.docker.com/r/babashka/babashka/).
## [News](doc/news.md)
@ -272,7 +272,7 @@ handling of SIGINT and SIGPIPE. This can be done by setting
- [The REPL podcast](https://www.therepl.net/episodes/36/) Michiel Borkent talks about [clj-kondo](https://github.com/borkdude/clj-kondo), [Jet](https://github.com/borkdude/jet), Babashka, and [GraalVM](https://github.com/oracle/graal) with Daniel Compton.
- [Implementing an nREPL server for babashka](https://youtu.be/0YmZYnwyHHc): impromptu presentation by Michiel Borkent at the online [Dutch Clojure Meetup](http://meetup.com/The-Dutch-Clojure-Meetup)
- [ClojureScript podcast](https://soundcloud.com/user-959992602/s3-e5-babashka-with-michiel-borkent) with Jacek Schae interviewing Michiel Borkent
- [Babashka talk at ClojureD](https://www.youtube.com/watch?v=Nw8aN-nrdEk) ([slides](https://speakerdeck.com/borkdude/babashka-and-the-small-clojure-interpreter-at-clojured-2020)) by Michiel Borkent
- [Babashka talk at ClojureD](https://www.youtube.com/watch?v=Nw8aN-nrdEk) ([slides](https://speakerdeck.com/babashka/babashka-and-the-small-clojure-interpreter-at-clojured-2020)) by Michiel Borkent
- [Babashka: a quick example](https://juxt.pro/blog/posts/babashka.html) by Malcolm Sparks
- [Clojure Start Time in 2019](https://stuartsierra.com/2019/12/21/clojure-start-time-in-2019) by Stuart Sierra
- [Advent of Random
@ -309,7 +309,7 @@ babashka is interesting to share with the world, they are free to distribute it
using a different binary name (like `bb-sql`, `bb-docker`, `bb-yourcompany`,
etc.). See the [feature flag documentation](doc/build.md#feature-flags) and the
implementation of the existing feature flags ([example
commit](https://github.com/borkdude/babashka/commit/02c7c51ad4b2b1ab9aa95c26a74448b138fe6659)).
commit](https://github.com/babashka/babashka/commit/02c7c51ad4b2b1ab9aa95c26a74448b138fe6659)).
## Related projects
@ -325,7 +325,7 @@ Thanks to all the people that contributed to babashka:
- [Adgoji](https://www.adgoji.com/) for financial support
- [CircleCI](https://circleci.com/) for CI and additional support
- [Nikita Prokopov](https://github.com/tonsky) for the logo
- [Contributors](https://github.com/borkdude/babashka/graphs/contributors) and
- [Contributors](https://github.com/babashka/babashka/graphs/contributors) and
other users posting issues with bug reports and ideas
- [Github sponsors](https://github.com/sponsors/borkdude)
- [OpenCollective sponsors](https://opencollective.com/babashka)
@ -334,7 +334,7 @@ Thanks to all the people that contributed to babashka:
### Code Contributors
This project exists thanks to all the people who contribute. [[Contribute](doc/dev.md)].
<a href="https://github.com/borkdude/babashka/graphs/contributors"><img src="https://opencollective.com/babashka/contributors.svg?width=890&button=false" /></a>
<a href="https://github.com/babashka/babashka/graphs/contributors"><img src="https://opencollective.com/babashka/contributors.svg?width=890&button=false" /></a>
### Financial Contributors

1
doc/.#dev.md Symbolic link
View file

@ -0,0 +1 @@
borkdude@MBP2019.local.17736

View file

@ -33,7 +33,7 @@ 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/borkdude/babashka --recursive
$ git clone https://github.com/babashka/babashka --recursive
```
To update later on:
@ -109,7 +109,7 @@ Note that httpkit server is currently experimental, the feature flag could be to
To disable all of the above features, you can set `BABASHKA_LEAN` to `true`.
Here is an [example
commit](https://github.com/borkdude/babashka/commit/13f65f05aeff891678e88965d9fbd146bfa87f4e)
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

View file

@ -9,15 +9,15 @@ Twitter.
A new babashka talk: [Babashka and sci
internals](https://youtu.be/pgNp4Lk3gf0). Also see
[slides](https://speakerdeck.com/borkdude/babashka-and-sci-internals-at-london-clojurians-december-2020)
[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/borkdude/babashka/blob/master/CHANGELOG.md#v026).
notes](https://github.com/babashka/babashka/blob/master/CHANGELOG.md#v026).
Babashka 0.2.5 released. See [release
notes](https://github.com/borkdude/babashka/blob/master/CHANGELOG.md#v025).
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)
@ -36,7 +36,7 @@ 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/borkdude/babashka/blob/master/CHANGELOG.md#v024).
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
@ -48,24 +48,24 @@ notes](https://github.com/borkdude/babashka/blob/master/CHANGELOG.md#v024).
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/borkdude/babashka/blob/master/doc/build.md#feature-flags) by Jakub Holy added.
- 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/borkdude/babashka/issues/631).
[example](https://github.com/babashka/babashka/issues/631).
## 2020-10
Babashka 0.2.3 released. See [release
notes](https://github.com/borkdude/babashka/blob/master/CHANGELOG.md#v023-2020-10-21).
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/borkdude/babashka/tree/master/examples#image-viewer) example
- [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.
@ -75,7 +75,7 @@ notes](https://github.com/borkdude/babashka/blob/master/CHANGELOG.md#v023-2020-1
## 2020-09
Babashka
[0.2.1](https://github.com/borkdude/babashka/blob/master/CHANGELOG.md#v021-2020-09-25)
[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.
@ -85,7 +85,7 @@ and 0.2.2 released.
## 2020-08
Babashka [0.2.0](https://github.com/borkdude/babashka/blob/master/CHANGELOG.md#v020-2020-08-28) released.
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
@ -102,7 +102,7 @@ Babashka [0.2.0](https://github.com/borkdude/babashka/blob/master/CHANGELOG.md#v
## 2020-06
Babashka [0.1.3](https://github.com/borkdude/babashka/blob/master/CHANGELOG.md#v013-2020-06-27) and 0.1.2 released.
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

View file

@ -427,7 +427,7 @@ Contol your spotify player using babashka.
### [lambdaisland/open-source](https://github.com/lambdaisland/open-source)
[Internal
tooling](https://github.com/borkdude/babashka/issues/457#issuecomment-636739415)
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).

View file

@ -73,7 +73,7 @@ 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/borkdude/babashka/blob/master/doc/build.md#feature-flags)
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/).
@ -139,7 +139,7 @@ into the next question.
*My comment:*
Clearly users want an easier way to include libraries and pods. We are thinking
about that in [this](https://github.com/borkdude/babashka/issues/473) issue.
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).
@ -152,7 +152,7 @@ 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/borkdude/babashka/wiki/HTTP-client-and-server-considerations).
[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

View file

@ -52,7 +52,7 @@ $ < /tmp/test.txt bb -io '(shuffle *input*)'
'[cheshire.core :as json])
(defn babashka-latest-version []
(-> (sh "curl" "https://api.github.com/repos/borkdude/babashka/tags")
(-> (sh "curl" "https://api.github.com/repos/babashka/babashka/tags")
:out
(json/parse-string true)
first
@ -105,7 +105,7 @@ less
## Portable tree command
See [examples/tree.clj](https://github.com/borkdude/babashka/blob/master/examples/tree.clj).
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
@ -127,7 +127,7 @@ src
## List outdated maven dependencies
See [examples/outdated.clj](https://github.com/borkdude/babashka/blob/master/examples/outdated.clj).
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
@ -157,17 +157,17 @@ A script with the same goal can be found [here](https://gist.github.com/swlkr/3f
## Print current time in California
See [examples/pst.clj](https://github.com/borkdude/babashka/blob/master/examples/pst.clj)
See [examples/pst.clj](https://github.com/babashka/babashka/blob/master/examples/pst.clj)
## Tiny http server
See [examples/http_server.clj](https://github.com/borkdude/babashka/blob/master/examples/http_server.clj)
See [examples/http_server.clj](https://github.com/babashka/babashka/blob/master/examples/http_server.clj)
Original by [@souenzzo](https://gist.github.com/souenzzo/a959a4c5b8c0c90df76fe33bb7dfe201)
## Print random docstring
See [examples/random_doc.clj](https://github.com/borkdude/babashka/blob/master/examples/random_doc.clj)
See [examples/random_doc.clj](https://github.com/babashka/babashka/blob/master/examples/random_doc.clj)
``` shell
$ examples/random_doc.clj
@ -205,7 +205,7 @@ $ sha1.clj babashka
`Dockerfile`:
``` dockerfile
FROM borkdude/babashka
FROM babashka/babashka
RUN echo $'\
(println "Your command line args:" *command-line-args*)\
'\
@ -244,15 +244,15 @@ Your command line args: (1 2 3)
## Note taking app
See
[examples/notes.clj](https://github.com/borkdude/babashka/blob/master/examples/notes.clj). This
[examples/notes.clj](https://github.com/babashka/babashka/blob/master/examples/notes.clj). This
is a variation on the
[http-server](https://github.com/borkdude/babashka/#tiny-http-server)
[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/borkdude/babashka/blob/master/examples/which.clj).
[examples/which.clj](https://github.com/babashka/babashka/blob/master/examples/which.clj).
Prints the canonical file name.
``` shell

View file

@ -56,7 +56,7 @@ do
done
if [[ "$version" == "" ]]; then
version="$(curl -sL https://raw.githubusercontent.com/borkdude/babashka/master/resources/BABASHKA_RELEASED_VERSION)"
version="$(curl -sL https://raw.githubusercontent.com/babashka/babashka/master/resources/BABASHKA_RELEASED_VERSION)"
fi
case "$(uname -s)" in
@ -64,14 +64,14 @@ case "$(uname -s)" in
Darwin*) platform=macos;;
esac
download_url="https://github.com/borkdude/babashka/releases/download/v$version/babashka-$version-$platform-amd64.zip"
download_url="https://github.com/babashka/babashka/releases/download/v$version/babashka-$version-$platform-amd64.zip"
mkdir -p "$download_dir"
cd "$download_dir"
echo -e "Downloading $download_url to $download_dir"
rm -rf "babashka-$version-$platform-amd64.zip"
rm -rf "bb"
curl -o "babashka-$version-$platform-amd64.zip" -sL "https://github.com/borkdude/babashka/releases/download/v$version/babashka-$version-$platform-amd64.zip"
curl -o "babashka-$version-$platform-amd64.zip" -sL "https://github.com/babashka/babashka/releases/download/v$version/babashka-$version-$platform-amd64.zip"
unzip -qqo "babashka-$version-$platform-amd64.zip"
rm "babashka-$version-$platform-amd64.zip"

View file

@ -1,10 +1,10 @@
(defproject borkdude/babashka
(defproject babashka/babashka
#=(clojure.string/trim
#=(slurp "resources/BABASHKA_VERSION"))
:description "babashka"
:url "https://github.com/borkdude/babashka"
:url "https://github.com/babashka/babashka"
:scm {:name "git"
:url "https://github.com/borkdude/babashka"}
:url "https://github.com/babashka/babashka"}
:license {:name "Eclipse Public License 1.0"
:url "http://opensource.org/licenses/eclipse-1.0.php"}
:source-paths ["src" "sci/src" "babashka.curl/src" "pods/src"

View file

@ -7,7 +7,7 @@
replaced (str/replace changelog
#" #(\d+)"
(fn [[_ issue after]]
(format " [#%s](https://github.com/borkdude/babashka/issues/%s)%s"
(format " [#%s](https://github.com/babashka/babashka/issues/%s)%s"
issue issue (str after))))
replaced (str/replace replaced
#" borkdude/sci#(\d+)"

View file

@ -10,9 +10,9 @@ lein install
echo "---- cljdoc preview: ingesting babashka"
docker run --rm -v "$PWD:/babashka" \
-v "$HOME/.m2:/root/.m2" -v /tmp/cljdoc:/app/data --entrypoint "clojure" \
cljdoc/cljdoc -A:cli ingest -p borkdude/babashka -v "$version" \
cljdoc/cljdoc -A:cli ingest -p babashka/babashka -v "$version" \
--git /babashka
echo "---- cljdoc preview: starting server on port 8000"
docker run --rm -p 8000:8000 -v /tmp/cljdoc:/app/data cljdoc/cljdoc
# go directly to http://localhost:8000/d/borkdude/babashka/0.0.10-SNAPSHOT, not via the search
# go directly to http://localhost:8000/d/babashka/babashka/0.0.10-SNAPSHOT, not via the search

View file

@ -344,7 +344,7 @@ Use -- to separate script command line args from bb command line args.
:thread-bind [reflection-var])]
(nrepl-server/start-server! ctx nrepl-opts)
(binding [*out* *err*]
(println "For more info visit https://github.com/borkdude/babashka/blob/master/doc/repl.md#nrepl.")))
(println "For more info visit https://github.com/babashka/babashka/blob/master/doc/repl.md#nrepl.")))
;; hang until SIGINT
@(promise))

View file

@ -0,0 +1 @@
borkdude@MBP2019.local.17736