<commit_before>Stb-tester release notes
========================

[Stb-tester](http://stb-tester.com) Python APIs for use in test scripts are
stable: Upgrading to a newer stb-tester version shouldn't affect any of your
test scripts. Occasionally we might break some rare edge cases, but we don't
expect them to affect most users, and we mention such changes under "Breaking
changes" in the release notes.

Similarly, the command-line interfaces of *stbt run*, *stbt auto-selftest*,
*stbt batch*, *stbt config*, *stbt control*, *stbt match*, *stbt power*, *stbt
record*, *stbt screenshot*, *stbt tv*, and *stbt virtual-stb* are stable. Other
command-line utilities are considered experimental.

For installation instructions see [Getting Started] if you're using the
open-source project, or [test_pack.stbt_version] if you're using the
[Stb-tester hardware].

[Getting Started]: https://github.com/stb-tester/stb-tester/wiki/Getting-started-with-stb-tester
[test_pack.stbt_version]: https://stb-tester.com/manual/advanced-configuration#stbt-conf
[Stb-tester hardware]: https://stb-tester.com/solutions

#### v28

_TODO: Summary.__

UNRELEASED

##### Breaking changes since v27

* Passing `region=None` to `stbt.ocr` raises a TypeError. Use
  `region=stbt.Region.ALL` instead. Note that passing `None` has printed a
  deprecation warning since v0.21 (two and a half years ago); raising an
  exception will force users to update their test scripts, allowing us to
  change the behaviour again in a future release to be consistent with
  `stbt.match_text` where `None` means an empty region.

##### New features

* New Android control mechanism to send taps, swipes, and key events. See the
  `stbt.android.AdbDevice` docstrings for usage instructions. You can capture
  video from an Android mobile device using HDMI video-capture via an "MHL"
  USB-to-HDMI cable, or with the
  [Stb-tester CAMERA](https://stb-tester.com/stb-tester-camera) pointed at the
  device's screen, or even by taking screenshots via `AdbDevice.get_frame` (but
  if you're using `AdbDevice.get_frame` the Android device wont be visible in
  the output video as this mechanism bypasses stb-tester's GStreamer pipeline).
  See
  <https://stb-tester.com/blog/2017/02/21/testing-video-playback-on-mobile-devices>
  for a discussion of the trade-offs of each video-capture mechanism.

* Python API: `stbt.wait_until` has a new parameter `stable_secs` to wait for
  the return value to stabilise.

* Python API: `stbt.ocr` and `stbt.match_text` have a new parameter
  `text_color`. Specifying this can improve OCR results when tesseract's
  default thresholding algorithm doesn't detect the text, for example for
  light-colored text or text on a translucent overlay.

##### Minor fixes and packaging fixes

* The `irnetbox` control now understands "double signals" in the irNetBox
  config file generated by the RedRat IR Signal Database Utility. Thanks to
  <NAME> for the fix.

* `stbt lint`: Catch & ignore pylint inference exceptions.

* Python API: `stbt.wait_until` will try one last time after the timeout is
  reached. This allows you to use a short `timeout_secs` with operations that
  can take a long time.
<commit_msg>docs: Add release note for wait_until's "predicate" parameter<commit_after>Stb-tester release notes
========================

[Stb-tester](http://stb-tester.com) Python APIs for use in test scripts are
stable: Upgrading to a newer stb-tester version shouldn't affect any of your
test scripts. Occasionally we might break some rare edge cases, but we don't
expect them to affect most users, and we mention such changes under "Breaking
changes" in the release notes.

Similarly, the command-line interfaces of *stbt run*, *stbt auto-selftest*,
*stbt batch*, *stbt config*, *stbt control*, *stbt match*, *stbt power*, *stbt
record*, *stbt screenshot*, *stbt tv*, and *stbt virtual-stb* are stable. Other
command-line utilities are considered experimental.

For installation instructions see [Getting Started] if you're using the
open-source project, or [test_pack.stbt_version] if you're using the
[Stb-tester hardware].

[Getting Started]: https://github.com/stb-tester/stb-tester/wiki/Getting-started-with-stb-tester
[test_pack.stbt_version]: https://stb-tester.com/manual/advanced-configuration#stbt-conf
[Stb-tester hardware]: https://stb-tester.com/solutions

#### v28

_TODO: Summary.__

UNRELEASED

##### Breaking changes since v27

* Passing `region=None` to `stbt.ocr` raises a TypeError. Use
  `region=stbt.Region.ALL` instead. Note that passing `None` has printed a
  deprecation warning since v0.21 (two and a half years ago); raising an
  exception will force users to update their test scripts, allowing us to
  change the behaviour again in a future release to be consistent with
  `stbt.match_text` where `None` means an empty region.

##### New features

* New Android control mechanism to send taps, swipes, and key events. See the
  `stbt.android.AdbDevice` docstrings for usage instructions. You can capture
  video from an Android mobile device using HDMI video-capture via an "MHL"
  USB-to-HDMI cable, or with the
  [Stb-tester CAMERA](https://stb-tester.com/stb-tester-camera) pointed at the
  device's screen, or even by taking screenshots via `AdbDevice.get_frame` (but
  if you're using `AdbDevice.get_frame` the Android device wont be visible in
  the output video as this mechanism bypasses stb-tester's GStreamer pipeline).
  See
  <https://stb-tester.com/blog/2017/02/21/testing-video-playback-on-mobile-devices>
  for a discussion of the trade-offs of each video-capture mechanism.

* Python API: `stbt.wait_until` has two new parameters: `predicate` and
  `stable_secs`. Together they allow waiting for something to stabilise (for
  example to wait for the position of a moving selection to stop moving).

* Python API: `stbt.ocr` and `stbt.match_text` have a new parameter
  `text_color`. Specifying this can improve OCR results when tesseract's
  default thresholding algorithm doesn't detect the text, for example for
  light-colored text or text on a translucent overlay.

##### Minor fixes and packaging fixes

* The `irnetbox` control now understands "double signals" in the irNetBox
  config file generated by the RedRat IR Signal Database Utility. Thanks to
  <NAME> for the fix.

* `stbt lint`: Catch & ignore pylint inference exceptions.

* Python API: `stbt.wait_until` will try one last time after the timeout is
  reached. This allows you to use a short `timeout_secs` with operations that
  can take a long time.

{'fraction_non_alphanumeric': 0.09276777540433323, 'fraction_numerical': 0.0045773573390296, 'mean_word_length': 4.569243840271878, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 10, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7447640', 'n_tokens_mistral': 2019, 'n_tokens_neox': 1927, 'n_words': 811}