Skip to content

Releases: binaryage/dirac

0.7.3

22 Oct 20:16
v0.7.3
Compare
Choose a tag to compare

A maintenance release

Rolling DevTools

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

Notable commits

NONE

All new work: v0.7.2...v0.7.3

0.7.2

16 Oct 15:38
v0.7.2
Compare
Choose a tag to compare

A maintenance release

Dirac is again compiled with :pseudo-names true to help troubleshooting issues.

Rolling DevTools

Merged commits 7f1d79e...5dea115 from official DevTools.
Should work best with Chrome ~56.0.2890.2.
Links to matching Chromium snapshots: Mac | Linux_x64 | Win | Win_x64.

Notable commits

cd3e01a scripts: compile release with :pseudo-names by default
90a4f69 nrepl: change behaviour of :match to be just a dry run of :join
106afaf implant: get-intercom should not fail on missing intercom key

All new work: v0.7.1...v0.7.2

0.7.1

10 Oct 20:05
v0.7.1
Compare
Choose a tag to compare

A hot-fix release

Unfortunately previous release is borked. Fortunately we have infinite number of version numbers available so I can bump version number and move on.

The problem was that chrome web store uploading/validation system silently removes all dot folders from the uploaded bundle. That sounds like a good idea to prevent noobs from uploading their .git folders and .DS_Store files but it prevented my "smart" idea to keep cljs-compiled files under .compiled folder.

Notable commits

ddd24d7 project: fix packaging, v0.7.0 release was borked

All new work: v0.7.0...v0.7.1

0.7.0

10 Oct 19:07
v0.7.0
Compare
Choose a tag to compare

Friends with Figwheel!

A lot of work went into this release. I have completely revamped nREPL implementation to add support for switching compilers. This enabled possibility to run Figwheel's sidecar inside nREPL server alongside Dirac nREPL middleware. With this setup you can switch Dirac to use Figwheel's ClojureScript compiler instead of creating a new (empty) one. With session joining I'm getting close to holy-grail-cljs-setup which has Dirac+Figwheel+Cursive playing well together as all-star team. Stay tuned, I will write an article about it.

TBD

Teaser

Rolling DevTools

Merged commits 09e13e1...7f1d79e from official DevTools.
Should work best with Chrome ~56.0.2886.2.
Links to matching Chromium snapshots: Mac | Linux_x64 | Win | Win_x64.

Notable commits

a037828 nrepl: don't allow (dirac! :join) from within dirac nrepl session
d1ebdaa nrepl: remove deprecated dirac.nrepl.middleware namespace
8718014 nrepl: introduce dirac.nrepl.figwheel namespace
5a19e1a nrepl: update dirac! command to support compiler switching
64f1b66 nrepl: land piggieback overhaul to implement compiler switching
1e39877 devtools: land initial support for selected compiler display in the prompt
d9e1f87 nrepl: when listing compilers put current session compilers first
5fd913e nrepl: order session tags, current session should go first
37a9075 nrepl: teach dirac! :ls to mark current session and compiler
e5f42d3 runtime: put white gloves on when touching clojure.browser.repl/bootsrap
c7c4a65 nrepl: add initial implementation of dirac! :spawn sub-command
8605f6a nrepl: fix bencode quirks by hiding broken values behind a 'pile of poo'
613dfe3 nrepl: implement (dirac! :kill) special command
87a5d07 nrepl: joined dirac session displays target session state via ~> marker
573b996 nrepl: allow killing compilers in other dirac sessions
7ace669 nrepl: retarget :switch, :spawn and :kill if in joined session
e954583 nrepl: implement Figwheel REPL API bridge
335d1b9 runtime: implement support for ANSI formatting
51fdff6 implant: improve deporting internal errors
f253859 devtools: label anonymous functions as "λ"
cba5995 nrepl: implement dirac/sticky preferred compiler strategy
09a5cb9 devtools: fix invisible cursor with empty prompt for Dirac
cbb9fc6 project: remove clj-logging-config from library deps (#44)

All new work: v0.6.7...v0.7.0

0.6.7

21 Sep 15:20
v0.6.7
Compare
Choose a tag to compare

A maintenance release

In this release we switched to cljs-oops and Clojure 1.9.

Rolling DevTools

Embedded DevTools merged bc791ec...09e13e1.
Should work best with Chrome ~55.0.2863.2.

Notable commits

37ec8ba implement runtime api for requesting ad-hoc code evaluation (#38)
b74a4f7 project: switch to clojure 1.9 as default
f7e1403 switch to cljs-oops

All new work: v0.6.6...v0.6.7

0.6.6

07 Sep 23:28
v0.6.6
Compare
Choose a tag to compare

A maintenance release

Fixed :preloads

Including Dirac via :preloads didn't force inclusion of the root dirac.runtime namespace. Which caused Dirac DevTools to complain about missing Dirac runtime in the page. This has been fixed.

Rolling DevTools

Embedded DevTools merged 7c77174...bc791ec.
Should work best with Chrome ~55.0.2853.0.

Notable commits

6acedd3 runtime: add get-pref to public runtime api
41f057c runtime: fix preload namespace to include dirac.runtime
5aae5ca devtools: try to extract description from exceptions in evalInContext

All new work: v0.6.5...v0.6.6

0.6.5

03 Sep 13:23
v0.6.5
Compare
Choose a tag to compare

Handling page refresh / navigation

Main focus of this release was handling scenarios when you have Dirac REPL session open and page gets refreshed or browser navigates to another url.

REPL and page navigation

Old behaviour didn't reflect page navigation events and REPL stayed connected as if nothing happened. You had to refresh whole Dirac DevTools window to reconnect with a new REPL session.

Since 0.6.5 REPL disconnects and reconnects as a new fresh session reflecting (potentially) new Dirac Runtime config. I believe this should be proper behaviour - with a new Javascript context you want to open a clean REPL session with a clean ClojureScript compiler environment.

Please note that the command history in REPL stays intact, so you can easily access previously issued commands if needed.

Review your Dirac Extension Options

There was a bug which initialised newly added options to nil instead to their intended default values. This affected only existing extension installations. In v0.6.4 we have introduced options to use backend-supported API and CSS. Please open your Dirac Extension Options (=> chrome://extensions > Dirac DevTools > Options) and make sure those two options are enabled (which should be the default behaviour).

Rolling DevTools

Embedded DevTools merged 031c760...7c77174.
Should work best with Chrome ~55.0.2848.0.

Notable commits

2b6c28f options: honour newly added default options when upgrading options schema
0d7ae2f runtime: use "?" in get-tag-data when versions/info is unknown
1cb0a0c devtools: introduce ability to subscribe/unsubscribe debugger events
4170edb implant: land support for REPL reconnection on page refresh/navigation

All new work: v0.6.4...v0.6.5

0.6.4

25 Aug 16:15
v0.6.4
Compare
Choose a tag to compare

Support for preloads

We have added support for :preloads compiler option. Read the docs here.

This release should also deliver more resilient Dirac DevTools thanks to new Chrome API detection system and better error reporting system.

Stealing API definitions from internal Chrome DevTools

Chrome DevTools (frontend) needs to talk to Chrome Browser (backend) via a debugger protocol. Previous Dirac versions had a definition of this protocol baked-in as a snapshot extracted from chromium repo at the point of release. That is why Dirac had to be used with matching Chrome Canary otherwise the protocol definition could be out-of-sync.

Since this version we try to "steal" protocol definitions from internal DevTools embedded in Chrome you happened to connect to - internal DevTools have always matching protocol definitions because they are bundled inside Chrome. This should relax rigidity of our DevTools fork and work with more Chrome versions. But still you should not diverge too far from recommended Chrome version.

Better error reporting system

When Dirac DevTools frontend throws an unhandled exception, the exception gets printed into Dirac DevTools's console which is normally hidden. We have implemented a system which additionally prints such exceptions into your app's page console as "Dirac Internal Errors". In v0.6.4 this system was extended to properly print unhandled promise rejections and console.error logs as well. Additionally printed internal errors newly contain an info line with Dirac version and various useful state information which should help reporting and troubleshooting possible issues.

image

Rolling DevTools

Embedded DevTools merged 469ec16...031c760.
Should work best with Chrome ~54.0.2840.0.

Notable commits

2b72880 implant: subscribe "unhandledrejection" to report failed promises
28995a0 implement a subsystem for loading backend API specs from user's browser
2b8c5db implant: review eval code
d673fbb fix incorrect ns forms (#33)
3285648 runtime: land support for :preloads
d853110 implant: capture internal error logs and expose them via reporter
4fd4714 implant: render dirac info line when reporting errors
907df32 allow user to specify custom url params for DevTools frontend
01b6364 allow disabling error reporter via an url param
5e88664 devtools: allow toggling debug flags via url params

All new work: v0.6.3...v0.6.4

0.6.3

30 Jul 12:10
Compare
Choose a tag to compare

A maintenance release

This is a maintenance update to resolve compatibility with official DevTools (#30).

DevTools

Embedded DevTools merged 60101cd...469ec16.
Should work best with Chrome ~54.0.2813.0.

Notable commits

ab7c7ea devtools: do not call updateSuggestions when anchorBox is null (fixes #28)

All new work: v0.6.2...v0.6.3

0.6.2

11 Jul 15:22
Compare
Choose a tag to compare

A maintenance release

This is a maintenance update to resolve compatibility with official DevTools (#27).

DevTools

Embedded DevTools merged 2211786...60101cd which should work best with Chrome ~54.0.2793.0.

Notable commits

7bd6e44 devtools: fix keysim to follow a07e75f
37fbbcb implant: fix beautification of function names

All new work: v0.6.1...v0.6.2