Skip to content

Releases: IDML/idml

v2.0.0-RC2: Revamp the `apply` tool to add tracing, do a few bugfixes (#16)

19 Jul 16:52
055c5a5
Compare
Choose a tag to compare
* Revamp the `apply` tool to add tracing, do a few bugfixes

* Let the user pick non-existent files to trace into

* remove debug printlns

* Hook up idml tutor

* ignore empty lines in apply

2.0.0-RC1: 2.0 Breaking Release (#15)

19 Jul 09:36
c1f05fe
Compare
Choose a tag to compare
This is a large set of changes intended to be released as a breaking release.

* All keys are now alphabetically sorted all the time
* We now support pluggable JSON parsing, Jackson and Circe are the initial modules (you will need to pick one of these to use IDML now, if in doubt, pick Jackson)
* Triple quoted strings can be used for multiline literals
* There is now a `tutor` command inside the main `idml` tool for walking through lessons
* Anything that mentioned `Ptolemy` has become `Idml`
* The Java API has been reimagined to be easier to use from java and kotlin, including declared exceptions and a focus on using `java.util.Map` and `java.util.List`
  * `JIdmlValue` can be used to instantiate PtolemyValues from Java easily
  * `IdmlBuilder` can be used to make Idml engines from Java easily
  * `Idml` (the new `Ptolemy`) has a revamped java-friendly API
* Big performance improvements in server, test and idmldoc due to using the Circe module

2.0.0 Release Candidate 1

19 Jul 09:30
c1f05fe
Compare
Choose a tag to compare
Pre-release
  • All keys are now alphabetically sorted all the time
  • We now support pluggable JSON parsing, Jackson and Circe are the initial modules (you will need to pick one of these to use IDML now, if in doubt, pick Jackson)
  • Triple quoted strings can be used for multiline literals
  • There is now a tutor command inside the main idml tool for walking through lessons
  • Anything that mentioned Ptolemy has become Idml
  • The Java API has been reimagined to be easier to use from java and kotlin, including declared exceptions and a focus on using java.util.Map and java.util.List
    • JIdmlValue can be used to instantiate PtolemyValues from Java easily
    • IdmlBuilder can be used to make Idml engines from Java easily
    • Idml (the new Ptolemy) has a revamped java-friendly API
  • Big performance improvements in server, test and idmldoc due to using the Circe module

v1.0.34

16 Apr 14:46
84f3b82
Compare
Choose a tag to compare
Make stripTags decode html entities again (#13)

v1.0.33: Fix conflicting cats-effect and fs2 versions in tools (#12)

16 Apr 14:09
ac76919
Compare
Choose a tag to compare
Update libraries in tools, and fix jsoup thread safety

v1.0.32

16 Apr 10:48
4c017e3
Compare
Choose a tag to compare
Swap to using jsoup's clean mode with whitespace preserved (#11)

v1.0.31: Merge pull request #10 from IDML/feature/add-log-and-abs

16 Apr 09:59
1dbd670
Compare
Choose a tag to compare

v1.0.30: Align circe versions across the tools (#9)

11 Apr 09:24
f734ab0
Compare
Choose a tag to compare
Bump cats and associated libraries

v1.0.29: Make geo module log errors (#8)

08 Apr 13:42
813c05f
Compare
Choose a tag to compare
Make geo module log errors

Tooling Update: `idml test` and `--dynamic-plugins`

05 Apr 11:18
88f7e2d
Compare
Choose a tag to compare

Dynamic Plugins

Every command under idml now has an extra pair of arguments, --dynamic-plugins and --plugin-folder, the first flags to load extra plugins from the classpath, and the second allows you to provide an extra set of .jars to load plugins from. The dynamic mode will enable things like geo and jsoup, while --plugin-folder lets you bring in your own custom functions.

idml test

We now provide a set of testing tools which live under the test command.

This initial release is aimed at providing a snapshot testing workflow for building out regression tests.

Test Format

Tests are defined in JSON ,a test looks like this:

{
  "name" : "example test",
  "code" : "r = a + b",
  "input" : {
    "a" : 2,
    "b" : 2
  },
  "output" : {
    "r": 4
  }
}

You can make the code, input or output sections available in separate files by using JSON references, like so:

  "output": {
    "$ref": "./blah.json"
  }

Multiple tests can be defined in the same file by putting them in an array.

What is Snapshot Testing?

When you write tests you can omit defining the output object. The command has an --update flag which will create or update the output object based on what's currently produced by running the input through the code, this will either update the referenced file, or the main test's JSON file.

test command

Usage: idml test [--filter <string>] [--update] [--failed-only] [--dynamic-plugins] [--plugin-folder <URL>]... [--no-report] <test.json>...

run IDML tests

Options and flags:
    --help
        Display this help text.
    --filter <string>, -f <string>
        filter to run specific tests, use re2 compatible regex or a prefix
    --update, -u
        update test snapshots
    --failed-only, -x
        suppress successful output
    --dynamic-plugins, -d
        resolve plugins from the normal classpath
    --plugin-folder <URL>, -p <URL>, -f <URL>
        folder with IDML plugin jars
    --no-report, -n, -r
        disable the test reporter at the end of a run

sbt Plugin

There is now an sbt plugin which will automatically run tests inside idmlTestDirectory (configurable, default is src/main/test/idml/), which also inserts itself into the sbt test command.