

Journal 2019.10 - clj on windows, stable tests
source link: https://insideclojure.org/2019/03/08/journal/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Journal 2019.10 - clj on windows, stable tests
clj on Windows
As Windows users are painfully aware, we don’t have an official version of clj
for this platform right now. It’s hard for me to believe, but it was a year ago that Konrad Mrożek put together an initial port to Powershell in TDEPS-67. I did some work off and on bringing those scripts up to parity and trying to cover more of the installation pieces. And then I got busy with lots of other things getting 1.10 out the door.
I asked a few weeks ago for help from the community in pulling this thing over the line, as I just do not have the time or environment to make the best decisions about it. Since then, several people (like Tim Gilbert and Sean Corfield) have stepped forward with some testing and Andrew Oberstar has done a bunch of work pushing it forward. This morning I merged that in and did a build which you can try out now:
There are some known issues and questions about how we should provide this. If you are a possible user, would love to see your feedback on Sean’s question on twitter or go to the #clj-on-windows room in Clojurians Slack.
Making stable tests
Some tests I wrote were posted on Reddit this week, which was unexpected. The one thing in there that I think is worth thinking about is how to write tests that validate returns while also being open to accretion.
In this case, the tests are checking (among other things) the data maps returned by spec explain-data
. But I might not care to validate every attribute and importantly I don’t want these tests to fail when we enhance problem reporting by adding additional attributes, which is a non-breaking change. Having tests break due to non-breaking code changes is a drag on progress (and it drives Rich bonkers). In these tests, I use a custom function called submap?
that verifies that the values I’m looking for are a subset of what I get (in a set of nested maps and collections), rather than checking for equality. This kind of thing might be something we add something for in future Clojure (to mirror the changes we’re making in spec to be agnostic to return data enhancement).
Other stuff
- Continued work on spec 2
select
, just working on the nitty-gritty of gen. This is really interim work and will probably not be too satisfying for use in its first rev as it is embedding the keyset rather than getting it from a reusable spec (like akeys
orschema
spec). - Tracked down a (false) report report of a security issue with the data.zip contrib library from the OWASP dependency checker. Reported to them.
- Build box maintenance, doing the update dance
- Fixed the busted Clojure contributor agreement due to a CORS issue from a url change (thanks for nothing Adobe!)
- Merged and added some Clojure events for 2019 - https://clojure.org/community/events - conspicuously absent there is Clojure/conj which will almost certainly be in November, working on finalizing contracts for that.
- Bunch of other clojur-site updates
Shout out to Elana Hashman and the rest of the Debian Clojure team who have been working hard to upgrade all the Clojure stuff lately! We appreciate your (probably not too fun) efforts…
Other stuff I enjoyed this week…
I’ve posted some Vulfpeck on here before. Many of the guys in Vulf also play in other bands. I want to highlight this perfect little gem from Theo Katzmann: My Heart is Dead. And an alternate live take that’s great in its own way: My Heart is Dead (in the Attic).
Recommend
-
31
If you are already a user of clj-async-profiler , an embeddable low-overhead perf-based profiler for Clojure and Java, then the new
-
10
An example of clj execution Last week we released a new version of the Clojure tools with support for directly
-
17
Customizing your REPL in clj There was a question on Slack this evening about getting a similar effect to the injections feature of Leiningen in clj. There is no built-in feature for this, but you don’t really need one....
-
10
Testing clj-browserchannel10 Jul 2012 The clj-browserchannel project now also contains a test project. The
-
14
README I am tired of the heavy weight vimClojure plugin. Slimv is heavy w...
-
12
flycheck-clj-kondo This package integrates clj-kondo with Emacs via flycheck. Installation Before installing the Emacs packag...
-
12
clj exec A new development version of clj is now available (1.10.1.600) and it includes the first public release of several strands of work that have been ongoing over the last few months (with more to come). This ver...
-
9
clj exec update A new prerelease version of clj is now available (1.10.1.672) and it includes some important restructuring of how you use clj. This version has not yet been promoted to “stable” release. You can e...
-
4
Testing clj-browserchannel10 Jul 2012 The clj-browserchannel project now also contains a test project. The
-
10
clj-kondo
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK