babashka/CHANGELOG.md
2020-10-21 21:28:03 +02:00

15 KiB

Changelog

For a list of breaking changes, check here

v0.2.3 (2020-10-21)

Thanks to @tzzh, @Heliosmaster and @kwrooijen for contributing to this release. Thanks to Clojurists Together for sponsoring this release.

New

Fixed

Changed

  • The Docker image is now based on Ubuntu instead of Alpine.

v0.2.2 (2020-09-30)

This is a patch release for babashka/babashka.pods#20, but it also introduces new support around reify.

New

  • Support java.nio.file.FileVisitor and java.io.FilenameFilter with reify #600. Nice side effect: this makes babashka compatible with the fs library:
    $ 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"))'
    ("/Users/borkdude/Dropbox/dev/clojure/glam/README.md")
    
  • Add classes java.util.zip.ZipInputStream and java.util.zip.ZipEntry. This makes babashka compatible with glam, a work in progress package manager.

Fixed

v0.2.1 (2020-09-25)

Thanks to @RickMoynihan, @joinr, @djblue, @lread, @teodorlu, @tzzh and @zoren for contributing to this release. Thanks to Clojurists Together for sponsoring this release.

New

  • Include org.httpkit.client, a high performance async http client #561
  • Include org.httpkit.server, an HTTP server #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
  • Add java.io.FileNotFoundException, java.security.DigestInputStream, java.nio.file.FileVisitOption classes
  • Support implementing IDeref, IAtom and IAtom2 on records sci#401
  • Support compatibility with version-clj #565 @lread and @borkdude
  • Support YAML roundtrip through *input* #583
  • Support clojure.core/find-var sci#420 @RickMoynihan
  • Support clojure.pprint/cl-format #571
  • AWS pod

Fixed / enhanced

  • Fix location printing in REPL (--repl) #598
  • Babashka.curl sends form params incorrectly as multipart babashka.curl#25
  • Update Windows build instructions #574
  • Set minimum macOS version in build explicitly #588
  • Fix NPE in error handling logic #587
  • Fix namespace switch in REPL (--repl) #564
  • Fix location of errors in REPL (--repl) #589
  • Support multi-arity methods in defprotocol sci#406
  • Constructor call not recognized in protocol impl sci#419
  • Improve handling of top-level do in macro expansion sci#421
  • Performance improvements suggested by @joinr sci#415
  • Throw when trying to redefine referred var sci#398
  • pprint is now backed by clojure.pprint/pprint instead of fipp #571

v0.2.0 (2020-08-28)

Thanks to @cldwalker, @dehli, @djblue, @GomoSDG, @grahamcarlyle, @j-cr, @jeroenvandijk, @justone, @kwrooijen, @lread, @patrick-galvin and @wodin for contributing to this release. Thanks to Clojurists Together for sponsoring this release.

New

  • Add support for clojure.datafy, Datafiable and Navigable #468. To play with the new clojure.datafy support, you can use portal:
    $ bb -cp `clj -Spath -Sdeps '{:deps {djblue/portal {:mvn/version "0.4.0"}}}'`
    
  • Add support for building and running uberjars #536. See docs.
  • Print context, locals and stack trace on exception #543.
  • Expose more transit vars #525 (@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.
  • Add clojure.lang.ArityException and tests to support the circleci/bond library #524 (@cldwalker).
  • Add java.time.format.DateTimeParseException

Fixed

v0.1.3 (2020-06-27)

Thanks @llacom, @AndreTheHunterand @xingzheone for contributing to this release.

New

  • Add eldoc support in babashka.nrepl (@borkdude and @llacom)
  • Add java.time.temporal.{TemportalAdjuster, TemporalAmount} classes
  • Add clojure.java.browse/browse-url #495
  • Add classes for cli-matic library (@AndreTheHunter)
  • Add babashka.version system property #479
  • Add java.net.ConnectException class
  • Add babashka.file system property to support __name__ = "__main__" pattern (see docs) #478.

Fixed

  • Make clojure.test/report a dynamic var #482, #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)
  • 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

v0.1.2 (2020-06-14)

Thanks @jeroenvandijk for contributing to this release.

  • Support :extend-via-metadata option in protocols
  • Fix classpath issue for Windows #496
  • Add double-array, short-array and clojure.lang.BigInt for compatibility with clojure.data.generators
  • Add support for *print-level*
  • Add version info in :describe message of babashka.nrepl #471
  • Add compatibility for honeysql (most notable change: support import for records)

v0.1.1 (2020-06-10)

Thanks @Chowlz and @mharju for contributing to this release.

This release brings compatibility with the camel-snake-kebab and aero libraries due to the introduction of defprotocol, defrecord and other enhancements.

New

  • Add java.io.Console. This is useful for letting users type in passwords.
  • Add initial support for defprotocol and defrecord
  • Add default-data-readers

Enhancements / fixes

  • Fix interop with result of .environment method on ProcessBuilder #460
  • Disable signal handlers via environment variable for AWS Lambda #462 (@Chowlz). See README.md.
  • 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
  • Fix field access interop when wrapped in parens: (Integer/SIZE)

v0.1.0 (2020-06-01)

Thanks @martinklepsch and @cldwalker for contributing to this release.

  • Add more java.time classes. This makes babashka fully compatible with the cljc.java-time library.
  • Add java.lang.Float class
  • Add java.nio.file.PathMatcher class. This allows one to implement a glob function.
  • Support alternative interop form: (. Integer -SIZE) ;;=> 32
  • #454: syntax check on amount of arguments to def
  • #458: add clojure.data namespace

Prior to v0.1.0

Details about releases prior to v0.1.0 can be found here.

Breaking changes

v0.2.3

  • The Docker image 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.
  • borkdude/babashka.curl#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: Functions in babashka.curl like get, post, etc. now always return a map with :status, :body, and :headers.

v0.0.71

  • #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: 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: Add support for java.lang.ProcessBuilder. See docs. This replaces the conch namespace.