2020-05-30 15:56:10 +00:00
# Changelog
For a list of breaking changes, check [here ](#breaking-changes )
2020-08-21 08:31:54 +00:00
## Unreleased
2020-08-26 18:43:16 +00:00
Thanks to [@cldwalker ](https://github.com/cldwalker ), [@dehli ](https://github.com/dehli ), [@djblue ](https://github.com/djblue ), [@GomoSDG ](https://github.com/GomoSDG ), [@grahamcarlyle ](https://github.com/grahamcarlyle ), [@j-cr ](https://github.com/j-cr ),
[@jeroenvandijk ](https://github.com/jeroenvandijk ), [@justone ](https://github.com/justone ), [@kwrooijen ](https://github.com/kwrooijen ), [@lread ](https://github.com/lread ), [@patrick-galvin ](https://github.com/patrick-galvin ) and [@wodin ](https://github.com/wodin ) for
2020-08-26 18:31:05 +00:00
contributing to this release.
2020-08-21 08:43:04 +00:00
2020-08-21 08:31:54 +00:00
### New
- Add support for `clojure.datafy` , `Datafiable` and `Navigable` [#468 ](https://github.com/borkdude/babashka/issues/468 )
2020-08-26 18:34:50 +00:00
- Add support for building and running uberjars [#536 ](https://github.com/borkdude/babashka/issues/536 ). See [docs ](https://github.com/borkdude/babashka#uberjar ).
2020-08-26 18:43:16 +00:00
- Print context, locals and stack trace on exception [#543 ](https://github.com/borkdude/babashka/issues/543 ).
2020-08-27 13:43:09 +00:00
- Expose more transit vars [#525 ](https://github.com/borkdude/babashka/issues/525 ) ([@djblue](https://github.com/djblue))
- Add `add-tap` ,`tap>`, `remove-tap` , `class?` , `iterator-seq` , `remove-watch` , `realized?`
2020-08-27 14:47:00 +00:00
- Add `clojure.walk/macroexpand-all`
2020-08-27 13:43:09 +00:00
- 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)).
- Add `java.time.format.DateTimeParseException`
2020-08-21 08:31:54 +00:00
### Fixed
2020-08-27 13:43:09 +00:00
- Fix order of namespaces in uberscript [#535 ](https://github.com/borkdude/babashka/issues/535 )
2020-08-21 08:31:54 +00:00
- Fix reading resources from jar files [#528 ](https://github.com/borkdude/babashka/issues/528 )
2020-08-21 08:40:54 +00:00
- Switch from canonical to absolute paths in `:file` field on var metadata
[#532 ](https://github.com/borkdude/babashka/issues/532 )
2020-08-27 13:43:09 +00:00
- Babashka shows wrong filename when error is from required ns [#508 ](https://github.com/borkdude/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 )
2020-08-21 08:31:54 +00:00
- Fix `false` dynamic binding value (which was read as `nil` ) [borkdude/sci#379 ](https://github.com/borkdude/sci/issues/379 )
- Fix setting of `*warn-on-reflection*` in nREPL session [babashka/babashka.nrepl#25 ](https://github.com/babashka/babashka.nrepl/issues/25 )
2020-08-26 18:43:16 +00:00
- Fix protocols with multiple methods on defrecords [borkdude/sci#367 ](https://github.com/borkdude/sci/issues/367 ) ([@patrick-galvin](https://github.com/patrick-galvin))
2020-08-21 08:31:54 +00:00
2020-06-27 11:31:29 +00:00
## v0.1.3 (2020-06-27)
2020-08-26 18:44:16 +00:00
Thanks [@llacom ](https://github.com/llacom ), [@AndreTheHunter ](https://github.com/AndreTheHunter )and [@xingzheone ](https://github.com/xingzheone ) for contributing to this release.
2020-06-27 11:31:29 +00:00
### New
- 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 classes for cli-matic library ([@AndreTheHunter](https://github.com/AndreTheHunter))
- Add `babashka.version` system property [#479 ](https://github.com/borkdude/babashka/issues/479 )
- Add `java.net.ConnectException` class
2020-06-27 11:52:48 +00:00
- 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 ).
2020-06-27 11:31:29 +00:00
2020-06-27 11:32:43 +00:00
### Fixed
2020-06-27 11:31:29 +00:00
- 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/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))
- Fix bug in `alter-var-root` : it used thread-local binding in updating root value
- Fix for invoking `bb -f file.clj` when `file.clj` was empty
2020-06-14 10:51:45 +00:00
## v0.1.2 (2020-06-14)
2020-06-14 10:25:38 +00:00
2020-06-14 10:27:35 +00:00
Thanks [@jeroenvandijk ](https://github.com/jeroenvandijk ) for contributing to this release.
2020-06-14 10:25:38 +00:00
- Support `:extend-via-metadata` option in protocols
2020-06-14 10:27:35 +00:00
- Fix classpath issue for Windows [#496 ](https://github.com/borkdude/babashka/issues/496 )
2020-06-14 10:25:38 +00:00
- 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*`
2020-06-14 10:27:35 +00:00
- Add version info in `:describe` message of babashka.nrepl [#471 ](https://github.com/borkdude/babashka/issues/471 )
2020-06-14 10:25:38 +00:00
- Add compatibility for [honeysql ](https://github.com/seancorfield/honeysql )
(most notable change: support `import` for records)
2020-06-10 21:54:48 +00:00
## v0.1.1 (2020-06-10)
2020-06-01 08:56:00 +00:00
2020-06-10 21:54:48 +00:00
Thanks [@Chowlz ](https://github.com/Chowlz ) and
[@mharju ](https://github.com/mharju ) for contributing to this release.
This release brings compatibility with the
[camel-snake-kebab ](https://github.com/clj-commons/camel-snake-kebab ) and
[aero ](https://github.com/juxt/aero/ ) libraries due to the introduction of
`defprotocol` , `defrecord` and other enhancements.
2020-06-10 22:13:47 +00:00
### New
2020-06-10 22:19:48 +00:00
- Add `java.io.Console` . This is useful for letting users type in passwords.
2020-06-10 21:54:48 +00:00
- Add initial support for `defprotocol` and `defrecord`
- Add `default-data-readers`
2020-06-10 22:13:47 +00:00
### Enhancements / fixes
2020-06-10 22:19:08 +00:00
- Fix interop with result of `.environment` method on `ProcessBuilder` [#460 ](https://github.com/borkdude/babashka/issues/460 )
2020-06-10 22:13:47 +00:00
- 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 ).
- babashka.curl: fix double quote escaping issue on Windows
2020-06-10 22:16:25 +00:00
- Fix resolving var in syntax-quote from other namespace brought in via `:refer`
2020-06-10 21:54:48 +00:00
- `io/resource` should return `nil` for non-relative paths instead of throwing
2020-06-10 22:19:08 +00:00
- Fix field access interop when wrapped in parens: `(Integer/SIZE)`
2020-06-10 21:54:48 +00:00
## v0.1.0 (2020-06-01)
2020-06-01 08:56:00 +00:00
Thanks [@martinklepsch ](https://github.com/martinklepsch ) and [@cldwalker ](https://github.com/cldwalker ) for contributing to this release.
2020-05-30 15:56:10 +00:00
- Add more `java.time` classes. This makes babashka fully compatible with the
[cljc.java-time ](https://github.com/henryw374/cljc.java-time ) library.
- Add `java.lang.Float` class
2020-06-01 09:00:19 +00:00
- Add `java.nio.file.PathMatcher` class. This allows one to implement a
2020-06-01 09:03:56 +00:00
[glob ](test-resources/babashka/glob.clj ) function.
2020-05-30 15:56:10 +00:00
- Support alternative interop form: `(. Integer -SIZE) ;;=> 32`
2020-05-30 20:12:29 +00:00
- [#454 ](https://github.com/borkdude/babashka/issues/454 ): syntax check on amount of arguments to `def`
2020-05-31 20:23:55 +00:00
- [#458 ](https://github.com/borkdude/babashka/issues/458 ): add `clojure.data` namespace
2020-05-30 15:56:10 +00:00
## Prior to v0.1.0
Details about releases prior to v0.1.0 can be found
[here ](https://github.com/borkdude/babashka/releases ).
2019-12-20 09:32:43 +00:00
## Breaking changes
2020-05-30 15:57:04 +00:00
### v0.0.90
2020-05-01 09:49:42 +00:00
2020-06-01 08:57:43 +00:00
- 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
2020-05-01 09:49:42 +00:00
documentation](https://github.com/borkdude/babashka/blob/master/doc/build.md#feature-flags).
2020-05-01 09:51:10 +00:00
- [borkdude/babashka.curl#16 ](https://github.com/borkdude/babashka.curl/issues/16 ):
Exceptional status codes or nonzero `curl` exit codes will throw exceptions by
2020-05-01 09:53:00 +00:00
default. You can opt out with `:throw false` .
2020-05-01 09:49:42 +00:00
2020-05-30 15:57:04 +00:00
### v0.0.79
2020-04-04 10:25:27 +00:00
- [babashka.curl#9 ](https://github.com/borkdude/babashka.curl/issues/9 ):
2020-06-01 08:57:43 +00:00
Functions in `babashka.curl` like `get` , `post` , etc. now always return a map
with `:status` , `:body` , and `:headers` .
2020-04-04 10:25:27 +00:00
2020-05-30 15:57:04 +00:00
### v0.0.71
2020-06-01 08:57:43 +00:00
- [#267 ](https://github.com/borkdude/babashka/issues/267 ) Change behavior of
reader conditionals: the `:clj` branch is taken when it occurs before a `:bb`
branch.
2020-02-19 23:29:37 +00:00
2020-05-30 15:57:04 +00:00
### v0.0.44 - 0.0.45
2020-06-01 08:57:43 +00:00
- [#173 ](https://github.com/borkdude/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.
2019-12-20 09:32:43 +00:00
2020-05-30 15:57:04 +00:00
### v0.0.43
2020-06-01 08:57:43 +00:00
- [#160 ](https://github.com/borkdude/babashka/issues/160 ): Add support for
`java.lang.ProcessBuilder` . See docs. This replaces the `conch` namespace.