|
| 1 | +## git version |
| 2 | + |
| 3 | + |
| 4 | +- Make sure the code we generate can be typed without warning when `-principal` |
| 5 | + is passed to the compiler. |
| 6 | + |
| 7 | +## v0.14.1 |
| 8 | + |
| 9 | +- Update to be compatible with ppxlib 0.18.0 |
| 10 | + |
| 11 | +## v0.11 |
| 12 | + |
| 13 | +- Change `ppx_expect` so that when `-diff-cmd -` is passed, they write the |
| 14 | + .corrected file but don't diff it or exit with a non-zero exit code. |
| 15 | + |
| 16 | + This is to make expect tests work with jbuilder. Jbuilder uses a separate |
| 17 | + build tree, so the current behavior of `ppx_expect` doesn't work well with |
| 18 | + jbuilder, especially the in-place behavior. |
| 19 | + |
| 20 | + What is done instead in jbuilder is that after running the test runner, it |
| 21 | + checks whether a .corrected file was created. If yes, jbuilder does the |
| 22 | + diffing itself, and by default also replaces the source file by the |
| 23 | + correction.' |
| 24 | + |
| 25 | +- Regexp and glob matching in the output is now deprecated. This gets in the |
| 26 | + way of the "promote" workflow. |
| 27 | + People are instead encouraged to prefilter the output before displaying it. |
| 28 | + |
| 29 | +- Tell the build system via output metadata whether a file contains |
| 30 | + tests or not |
| 31 | + |
| 32 | +- Depend on ppxlib instead of (now deprecated) ppx\_core, ppx\_driver, |
| 33 | + ppx\_metaquot, ppx\_traverse and ppx\_type\_conv. |
| 34 | + |
| 35 | +## v0.10 |
| 36 | + |
| 37 | +- In `[%expect]` expressions, disallowed backtraces, which can vary across |
| 38 | + compilation configurations (X_LIBRARY_INLINING, flambda, etc.) |
| 39 | + |
| 40 | +- Improved `ppx_expect` to support simultaneous runs of `inline_tests_runner` on |
| 41 | + the same file. |
| 42 | + |
| 43 | +- Added expect-test support for reaching a single `[%expect]` multiple times, |
| 44 | + where the test only fails if the output was distinct |
| 45 | + |
| 46 | +- For expect tests, relaxed the rule for `%expects` that are reached multiple |
| 47 | + times. Instead of requiring all outputs to be identical, require only that |
| 48 | + each output individually match the `%expect`. |
| 49 | + |
| 50 | +- In synchronous expect tests, `[%expect]` now captures stderr in addition to |
| 51 | + stdout. Previously, there was code that did this for Async expect tests. Now, |
| 52 | + stderr is captured in all expect tests. |
| 53 | + |
| 54 | +- Improved expect tests to get the current file when the test runs, rather than |
| 55 | + when it is registered. |
| 56 | + |
| 57 | +## v0.9 |
| 58 | + |
| 59 | +## 113.43.00 |
| 60 | + |
| 61 | +- Always flush Pervasives.stdout in the ppx_expect runtime. |
| 62 | + |
| 63 | + We already do this, but it was missing in one place. |
| 64 | + |
| 65 | +- Made the test framework resilient to user changing the current working directory during the test. |
| 66 | + |
| 67 | +- Print newlines in `"`-strings as real newlines, not `\n` |
| 68 | + |
| 69 | +- The expect test runtime breaks any executable that wants to work even if |
| 70 | + cwd doesn't exist, like fe does. Fix that. |
| 71 | + |
| 72 | + It also brings expect tests in line with what ppx\_inline\_test does, and removes the diff |
| 73 | + due to absolute paths I was seeing in the output of `./inline_tests_runner -log` in some |
| 74 | + other features. Concretely, here is what changes: |
| 75 | + |
| 76 | +- Use the new context-free API |
| 77 | + |
| 78 | +- Change the check in ppx\_expect to be a dynamic check. Instead of |
| 79 | + checking that expect tests appears only at toplevel, we test that |
| 80 | + they are run in the library they appear. |
| 81 | + |
| 82 | + This has several consquence: |
| 83 | + |
| 84 | + - ppx\_expect can use `Context_free` as well and doesn't require two extra passes |
| 85 | + - expect tests can appear inside let%test_module |
| 86 | + |
| 87 | +## 113.33.01 |
| 88 | + |
| 89 | +- Add dependency on `re.emacs` |
| 90 | + |
| 91 | +## 113.33.00 |
| 92 | + |
| 93 | +- Don't remove trailing semicolons when producing a correction. |
| 94 | + |
| 95 | +- Corrected `%expect`s with double quoted strings don't have the single space padding. |
| 96 | + |
| 97 | +- In the ppx\_expect runtime, flush stdout before redirecting it |
| 98 | + This is to avoid capturing leftover of the stdout buffer. |
| 99 | + |
| 100 | +- Make sure the expect-test runtime doesn't generate |
| 101 | + `%collector_never_triggered`, which is not accepted by ppx\_expect. |
| 102 | + Instead generate: |
| 103 | + |
| 104 | + `%expect {| DID NOT REACH THIS PROGRAM POINT |}` |
| 105 | + |
| 106 | +- Make expect tests pass the user description to the inline test runtime |
| 107 | + |
| 108 | +- Fix a race condition in the ppx\_expect runtime |
| 109 | + |
| 110 | + |
| 111 | +- Change ppx\_expect be more permissive when matching whitespace in actual output. |
| 112 | + See `ppx/ppx_expect/README.org` for details. |
| 113 | + |
| 114 | + Changes to the implementation of ppx\_expect (including some refactoring): |
| 115 | + - factorized the common bits between the runtime and ppx rewriter |
| 116 | + into one library expect_test_common |
| 117 | + - factorized different structures representing the same thing using polymorphism |
| 118 | + - communicate data structures between the ppx rewriter and runtime |
| 119 | + using a generated lifter instead of hand-written lifters |
| 120 | + - splitted the matching and correction writing code: the .corrected is |
| 121 | + now only created when needed instead of all the time |
| 122 | + - added a concrete syntax tree to represent both the actual output and |
| 123 | + expectation in non-exact mode. |
| 124 | + This allow to keep the user formatting as much as possible |
| 125 | + - made various bits more re-usable |
| 126 | + |
| 127 | +- Change the default style of multi-line expectation to: |
| 128 | + |
| 129 | + `%expect {| |
| 130 | + abc |
| 131 | + def |}` |
| 132 | + |
| 133 | + More generally, try to preserve the formatting a bit more when |
| 134 | + correcting from empty or single to multi-line. |
| 135 | + |
| 136 | +- Arrange things so that when `open Async.Std` is opened, `%expect ...` |
| 137 | + expressions are of type `unit Deferred.t` and flush stdout before |
| 138 | + capturing the output. |
| 139 | + |
| 140 | +## 113.24.00 |
| 141 | + |
| 142 | +Initial release. |
0 commit comments