Skip to content

Latest commit

 

History

History
169 lines (107 loc) · 7.97 KB

CHANGELOG.md

File metadata and controls

169 lines (107 loc) · 7.97 KB

Changelog

2.0.0 and beyond ...

  • fix missing cljs.spec.gen.alpha alias #74
  • run release/check/compile tasks in parallel
  • api/compile would dump all compiler state at the REPL. printing way too much data #71
  • added http: protocol prefix for file reloads since electron doesn't understand //
  • forgot to update thheller/shadow-client dependency which is required by the HUD
  • updated ClojureScript to 1.9.160
  • add :open-file-command
  • add --debug --source-maps --pseudo-names to CLI for shadow-cljs release debugging
  • add :preloads in :devtools, same as in CLJS
  • add new "listener" Websocket that just listens to build messages
  • add very basic (ugly) HUD based on the new Websocket, not enabled by default yet.
  • shadow-cljs help same as shadow-cljs -h
  • shadow-cljs package now ships with a default .babelrc to prevent processing the generated files with crazy presets (ie. react-native packager). It is already ES3, it should not need processing.
  • another AOT fix
  • server now generates one file per port, eg. target/shadow-cljs/nrepl.port
  • simple HTTP file server per build, configured via :devtools {:http-root "path-to-dir" :http-port 8080}. this is launched whenever watch is running for the given build.
  • added basic nREPL support with piggieback emulation [WIP]
  • rewrite CLI script to parse args instead of just passing them to the JVM. This allows the script to show -h without launching a JVM.
  • add --cli-info option to print some basic info about the CLI command (paths, versions, dependencies, ...)
  • hopefully resolve all AOT issues by deleting all AOT .class files when :dependencies change (or CLI version upgrade)
  • watch mode would never attempt recompiles when the first compile failed
  • basic shadow-cljs test command to run all cljs.test tests via node [WIP]
  • fix some AOT issues that caused weird errors
  • first pass making errors prettier as well
  • [BREAKING] refactor all CLI commands, see shadow-cljs -h
  • [BREAKING] http, socket-repl now use random ports by default, add :http {:port 12345} to get a fixed port.
  • experimental nREPL support, still work in progress.
  • fix broken node REPL require
  • add support for ns in REPL
  • add support for string requires in REPL (require '["fs" :as fs])
  • Closure warnings/errors are now pretty as well

Fixes

  • fix broken websocket in non-server mode #50

Features

  • remote mode. If a shadow-cljs --server is running the shadow-cljs script will now connect to that instead of launching a new JVM. Leading to much faster response times.
  • shadow-cljs --repl will just connect to the server and start a CLJ REPL

Fixes

  • long lines could break the warning printer #49

Features

  • --server mode for the CLI, starts a shared JVM process that can be used to run multiple builds in parallel.
  • Clojure Socket REPL started by --server (default at localhost:8201). rlwrap nc localhost 8201 is the simplest possible client.

Changes

  • Warning output with color

Changes

  • improved warning output, they now include a little source excerpt ala figwheel
  • no longer :verbose by default, now configured via :verbose true in shadow-cljs.edn
  • CLI script now scans parent directories when looking for config
  • reworked CLI script to AOT compile some code to improve startup time (done once per version)

Fixes

  • fixed that the :npm config was no longer optional, it still should be

Features

  • [BREAKING] a shadow-cljs.edn config file is now mandatory, the script can create on for you. It is now also expected to contain a map and supports :builds, :dependencies, :source-paths and probaly more in the future. If you had a vector before just wrap it in {:builds the-vector}.
  • [BREAKING] the package.json "shadow-cljs" entry is no longer used
  • the CLI script will now AOT-compile the CLJ sources to optimize startup speed. This only needs to be done once for each shadow-cljs version but reduces startup time from ~12s to ~3s.

Changes

  • refactored most the the CLI script. It is now written in CLJS.
  • refactored the dependency resolver/downloader to only do that and no longer launch the main process. It now only creates the classpath which is then used by another process. If the classpath is not modified this step is skipped.

Features

  • add support for "./foo" relative requires in the ns form. they are resolved relative to the source file, not the generated output file since that should be more obvious.

Fixes

  • properly output build warnings to the console, instead of just dumping the raw data.

Fixes

  • fix broken :node-script/:node-library :dev builds
  • fix source maps containing ``"lineCount":null` so closure doesn't blow up

Features

  • [WIP] REPL for webpack builds

Changes

  • refactor some code generation, always generates flat files now
  • $CLJS is now the name for the global in :advanced mode, barely makes a difference with gzip compared to just $. should avoid any potential naming conflicts.

Fixes

  • fixed :npm-module require order
  • the closure constants pass could sometimes move constants to invalid places (before cljs.core in the dependency order). also removed the deprecated API call.
  • can now call js requires as functions (:require ["npm-thing" :as thing]) (thing)" CLJS-1968
  • restructure file-reloading in the browser so it works with webpack builds

Features

  • [experimental] add support for :advanced in :npm-module target builds
  • add support for "output-dir" in package.json, defaults to node_modules/shadow-cljs
  • :output-dir and :asset-path (to match CLJS, same as :public-dir and :public-path)

Changes

  • Text format for Closure Compiler warnings/errors
  • refactored most of the internals shadow.cljs.closure namespace, no API changes

Fixes

  • write all cache files to target/shadow-cljs/... instead of 3 different places
  • Fix warning about missing goog.nodeGlobalRequire when using --check