Skip to content

Releases: binaryage/dirac

0.8.7

17 Dec 20:47
v0.8.7
Compare
Choose a tag to compare

A maintenance release

Rolling DevTools

Merged commits b3e9857...5bb1331 from official DevTools.
Should work best with Chrome ~57.0.2954.2.
Links to matching Chromium snapshots: Mac | Linux_x64 | Win | Win_x64.

Notable commits

NONE

All new work: v0.8.6...v0.8.7

0.8.6

11 Dec 22:31
v0.8.6
Compare
Choose a tag to compare

A maintenance release

Rolling DevTools

Merged commits 2eee2aa...b3e9857 from official DevTools.
Should work best with Chrome ~57.0.2947.2.
Links to matching Chromium snapshots: Mac | Linux_x64 | Win | Win_x64.

Notable commits

7e5ce14 nrepl: fix default for port range

All new work: v0.8.5...v0.8.6

0.8.5

04 Dec 19:11
v0.8.5
Compare
Choose a tag to compare

A maintenance release

This release should fix occasional problem with REPL stuck with "Dirac Agent connected. Bootstrapping ClojureScript REPL..." (http-kit/http-kit#318).

Mostly worked on testing infrastructure again:

  • Tests should be less flaky.
  • Tests transcripts are streamed back to test runner.
  • Tests can newly run inside a Docker container.

Rolling DevTools

Merged commits e9aa9df...2eee2aa from official DevTools.
Should work best with Chrome ~57.0.2941.2.
Links to matching Chromium snapshots: Mac | Linux_x64 | Win | Win_x64.

Notable commits

79d8176 shared: fix that nasty options model race
e0a5482 shared: fix options model broken in 79d8176
2e6f85b lib: delay initial :ready response in web-socket client
a58111d automation: introduce simple streaming of transcripts to runner script

All new work: v0.8.4...v0.8.5

0.8.4

13 Nov 23:56
v0.8.4
Compare
Choose a tag to compare

A hot-fix release

This is a hot-fix for changes in chrome debugger protocol API.

Sorry, a lot of churn recently because of https://www.youtube.com/watch?v=HF1luRD4Qmk. The improvements in DevTools are great, but let's hope that protocol changes will be less frequent in the coming months.

I have introduced a new automated branch called health-check which runs tests from last released Dirac version against latest Chromium several times a day. This way travis CI will notify me when breakage occurs and I should go to pull latest changes from official DevTools and cut a new Dirac release.

Rolling DevTools

Merged commits dc60498...e9aa9df from official DevTools.
Should work best with Chrome ~56.0.2918.2.
Links to matching Chromium snapshots: Mac | Linux_x64 | Win | Win_x64.

Notable commits

NONE

All new work: v0.8.3...v0.8.4

0.8.3

10 Nov 11:22
v0.8.3
Compare
Choose a tag to compare

A maintenance release

Rolling DevTools

Merged commits 64149c4...dc60498 from official DevTools.
Should work best with Chrome ~56.0.2913.4.
Links to matching Chromium snapshots: Mac | Linux_x64 | Win | Win_x64.

Notable commits

f326adc devtools: apply lost fix for #4 again
7c619cf change terminology "target url" to "debugger url"
b53b4fd background: more robust resolve-backend-url with fine-grained errors

All new work: v0.8.2...v0.8.3

0.8.2

08 Nov 23:31
v0.8.2
Compare
Choose a tag to compare

A hot-fix release

This is a hot-fix for changes in chrome debugger protocol API.

Rolling DevTools

Merged commits 902dfb7...64149c4 from official DevTools.
Should work best with Chrome ~56.0.2913.4.
Links to matching Chromium snapshots: Mac | Linux_x64 | Win | Win_x64.

Notable commits

NONE

All new work: v0.8.1...v0.8.2

0.8.1

06 Nov 20:35
v0.8.1
Compare
Choose a tag to compare

A maintenance release

Rolling DevTools

Merged commits 6f8df8d...902dfb7 from official DevTools.
Should work best with Chrome ~56.0.2910.2.
Links to matching Chromium snapshots: Mac | Linux_x64 | Win | Win_x64.

Notable commits

e80b2b8 runtime: remove deprecated is-feature-available?
fdcf342 runtime: add some docstrings to repl API
99e7cbc implant: properly report errors back to server, also detect foreign code
b9b1d66 nrepl: add support for handling :error when evaluating js via weasel

All new work: v0.8.0...v0.8.1

0.8.0

30 Oct 21:11
v0.8.0
Compare
Choose a tag to compare

Source-mapped REPL errors

In this release I focused on properly applying source maps to REPL eval requests. Also I improved the way how REPL code is generated and presented in the DevTools UI.

Additionally I started using binaryage/env-config library for dirac configuration overrides via environmental variables. Some environmental variables to override config keys changed. This might cause incompatibility with previous versions in case you used environment to configure your dirac. That is why I bumped release version to v0.8.0.

Make sure you are using Chrome Canary 56.0.2902+

Chrome devs decided to significantly change debugger protocol API. Make sure you are running the latest Canary with Dirac 0.8.x before you start banging your head against the wall.

REPL source maps

Let's see some screenshots from my recent Dirac REPL session:

As you can see each REPL session gets own "virtual" folder ~repl/<compiler-id> with code snippets evaluated with that session and compiler. You can inspect generated javascript as well. The init.cljs is special. That is the initial code executed after opening session. As you can see it requires for you doc pp and some other commands in cljs.user namespace. If needed, you can redefine it here in Dirac's nREPL config.

Evaluating (+ 1 2) was straightforward. You can see that each Javascript code to be evaluated is wrapped in a function which is passed to dirac.runtime.repl.eval along with some other arguments controlling the evaluation. Runtime is (optionally) responsible for catching exceptions, capturing printed output, presenting results in cljs-devtools friendly way and also preparing nREPL response message.

Let's see the call of cljs.repl function (doc filter):

We've got a bunch of generated code back. DevTools feature for reformatting Javascript source code is pretty handy here.

Let's see our session id, just to double-check that we are looking at correct files:

The command (dirac! :ls) will list all nREPL sessions currently available. Indeed, we are the only session, our session id is 24c6c835 and we are using compiler dirac/24c6c835.1 which matches ~repl/dirac/24c6c835-1 virtual folder name.

And what if something goes wrong?

We get properly source-mapped error stack trace back. And it is even possible to click through dirac.runtime.repl calls and inspect what exactly went wrong.

Rolling DevTools

Merged commits e3da2b6...6f8df8d from official DevTools.
Should work best with Chrome ~56.0.2905.2.
Links to matching Chromium snapshots: Mac | Linux_x64 | Win | Win_x64.

Notable commits

c1942e1 nrepl: generate source maps associated with REPL evaluation jobs
bbebe95 nrepl: produce better call-stacks and UI presentations of repl evals
d5fb0e5 runtime: prepare for more repl responsibilities
97c5b1a nrepl: move more responsibilities to runtime
5e18bd8 nrepl: update standard-repl-init-code to match cljs.repl
dd96ff8 agent: switch to env-config
76cc30f nrepl: switch to env-config
17ba84d runtime: switch to env-config

All new work: v0.7.5...v0.8.0

0.7.5

28 Oct 09:04
v0.7.5
Compare
Choose a tag to compare

A compatibility release

The Chrome Debugger Protocol was changed significantly around version 56.0.2900. This requires a new Dirac release.

Rolling DevTools

Merged commits 1493049...e3da2b6 from official DevTools.
Should work best with Chrome ~56.0.2902.2.
Links to matching Chromium snapshots: Mac | Linux_x64 | Win | Win_x64.

Notable commits

fd87e17 nrepl: fix in-ns issue (#47)

All new work: v0.7.4...v0.7.5

0.7.4

23 Oct 20:13
v0.7.4
Compare
Choose a tag to compare

A hot-fix release

This is a hot-fix for bad Dirac prompt icon.

Notable commits

41d543f devtools: fix dirac prompt icon css

All new work: v0.7.3...v0.7.4