|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "reVISit 2.4: All About Speed and Stability!" |
| 4 | +authors: |
| 5 | + - team |
| 6 | +--- |
| 7 | + |
| 8 | +Version 2.4 of reVISit is out – and for once it doesn’t pack a lot of new features. Rather, it’s all about **quality of life**: we fixed bugs, improved stability, and, most importantly, made the documentation much much better! |
| 9 | + |
| 10 | +We also added a few new things here and there, but they’re just quality of life improvements for supporting studies currently under development by the community. |
| 11 | + |
| 12 | +### Should I Update Now? |
| 13 | + |
| 14 | +We recommend that all reVISit users update to version 2.4, since it should provide a better experience to both developers and participants. However, if you have a study implemented in 2.3 that you’ve tested and piloted already and want to run tomorrow, you should probably stick with 2.3. After updating, make sure to run pilots with 2.4 to see whether everything works as expected. |
| 15 | + |
| 16 | +So, let's dive into the details of what’s new in 2.4! |
| 17 | + |
| 18 | +### Assigning Conditions via URL Parameters |
| 19 | + |
| 20 | +Even with Latin squares, it can be [tricky to get the balance of participants between conditions](https://revisit.dev/docs/faq/#q-how-can-i-ensure-balanced-numbers-of-participants-between-conditions-in-my-study-design) in a between-subjects design right. To address this, we introduced conditions that can be passed into a study as a URL parameter. Check out the [demo](https://revisit.dev/study/demo-condition/) and the [documentation](https://revisit.dev/docs/designing-studies/sequences/url-conditions/). |
| 21 | + |
| 22 | +For example, in a study with three conditions, this URL: [https://revisit.dev/study/demo-condition?condition=shape](https://revisit.dev/study/demo-condition?condition=shape) will drop a participant in the `shape` condition. You can see this in the study browser. |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | +As always, the recorded data will contain the condition information allowing you to easily differentiate between cases in analysis. You can also see all of the defined conditions and jump right into them from the study card, as shown above. |
| 27 | + |
| 28 | +You can define conditionals like this: |
| 29 | + |
| 30 | +```json |
| 31 | +{ |
| 32 | + "sequence": { |
| 33 | + "order": "fixed", |
| 34 | + "components": [ |
| 35 | + "introduction", |
| 36 | + { |
| 37 | + "id": "color", |
| 38 | + "conditional": true, |
| 39 | + "components": ["color-trial-1", "color-trial-2"], |
| 40 | + "order": "random" |
| 41 | + }, |
| 42 | + { |
| 43 | + "id": "shape", |
| 44 | + "conditional": true, |
| 45 | + "components": ["shape-trial-1", "shape-trial-2"], |
| 46 | + "order": "fixed" |
| 47 | + } |
| 48 | + ] |
| 49 | + } |
| 50 | +} |
| 51 | +``` |
| 52 | + |
| 53 | +The key additions to get this functionality are the `conditional` flag and the `id` key. Make sure to make your ids unique! |
| 54 | + |
| 55 | +With this feature, you’ll be able to use dedicated links to recruit participants for each condition (for example, using two different Prolific studies), and keep recruiting until you have reached the desired number of participants for each. |
| 56 | + |
| 57 | +You can also assign multiple conditions at the same time, like this: [https://revisit.dev/demo-condition?condition=color,size](https://revisit.dev/demo-condition?condition=color,size) |
| 58 | + |
| 59 | + |
| 60 | +### Include the Same Component Multiple Times |
| 61 | + |
| 62 | +Sometimes you want to include the same component multiple times in your study. For example, you might want to measure task load after each task. This wasn’t possible in reVISit yet (you could hack it by using inheritance). Now, however, that’s easy to do: just include the same component multiple times. For example, if you include a component `nasa-tlx` after each task, you’ll have access to `nasa-tlx-1`, `nasa-tlx-2`, etc, in the data. |
| 63 | + |
| 64 | + |
| 65 | +### Changes to How Library Components are Included |
| 66 | + |
| 67 | +We previously supported referring to components of libraries as `$libraryName.co.componentName` as well as `$libraryName.component.componentName`, and similarly used `.se` or `.sequence` for sequence. The shorthand is now deprecated; new studies should only use `.component` and `.sequence`. |
| 68 | + |
| 69 | + |
| 70 | +### Performance |
| 71 | + |
| 72 | +We have **virtualized our study browser** so that it does not render information for every possible study component at once. For studies which had large amounts of components (think 1000+) this was causing slowdowns during development. |
| 73 | + |
| 74 | +We have also fixed a number of small bugs that impacted performance, especially for studies which contained large amounts of provenance data. Such studies should see a significant participant facing performance improvement in 2.4. |
| 75 | + |
| 76 | +### Testing |
| 77 | + |
| 78 | +A key focus of this update has been to improve the robustness of our infrastructure. Previously we had focused on using integration level tests using the playwright test framework. With this update we added more than 300 unit tests, which improves the quality of our tests, makes the run faster, and more specifically. |
| 79 | + |
| 80 | + |
| 81 | +### Better Errors and Warnings |
| 82 | + |
| 83 | +Good error messages are essential for the development experience, so we’ve improved how errors and warnings for specification problems look: |
| 84 | + |
| 85 | +![A comparison of before and after for error messages. The before shows a bullet list with no formatting, the after has nice formatting, highlighting and separation.][/img/blog_posts/2026-02-23-release-2.4/errors.png] |
| 86 | + |
| 87 | +### Bug fixes and Updating |
| 88 | +With this release, we closed over 80 issues on github. For details on the bugs that were fixed, take a look at the [release logs](https://github.com/revisit-studies/study/releases/tag/v2.4.0) |
| 89 | + |
| 90 | + |
| 91 | + |
| 92 | + |
| 93 | + |
| 94 | + |
| 95 | + |
| 96 | + |
| 97 | + |
| 98 | + |
| 99 | + |
0 commit comments