# Changelog

### 0.3.3 - 2024-02-16
- Add Python 3.12 and 3.13 to CI
- Can now be imported on Python 3.13

### 0.3.2 - 2024-01-13
- Performance improvements based on
  [Hypothesis 6.93.0](https://hypothesis.readthedocs.io/en/latest/changes.html#v6-93-0)

### 0.3.1 - 2023-09-06
- Hypothesis >= 6.89.0 made some internal changes which broke our `from_grammar()`.
  This patch restores compatibility, and requires the new Hypothesis.

### 0.3.0 - 2023-09-06
- Even more efficient generation of Python identifiers, using
  [Hypothesis 6.84.1](https://hypothesis.readthedocs.io/en/latest/changes.html#v6-84-1)
- Dropped support for Python 3.7, which is end-of-life and not supported by Hypothesis

### 0.2.3 - 2022-12-01
- Actually package up the renamed grammar file this time.

### 0.2.2 - 2022-11-29
- Correct the minimum required version of LibCST
- Use `importlib.resources` to load the Python grammar (zip-safe)

### 0.2.1 - 2022-11-25
- Use the `lark` package on PyPI, for Lark version 1.0+ (requires recent Hypothesis)
- Use updated Python grammar for `from_grammar()`, thanks to Lark updates
- Drop support for Python 3.6, add 3.10 and 3.11 to CI

### 0.2.0 - 2021-11-27
- More efficient generation of Python identifiers
- Workaround for [CPython parser bug in 3.9.8](https://bugs.python.org/issue45738) (#16)
  Yes, *yet another* one - still, that's why `hypothesmith` exists...

### 0.1.9 - 2021-08-19
- Fixed rare internal error when `from_node()` generated misplaced `except:` clauses

### 0.1.8 - 2021-01-10
- Now compatible with Hypothesis 5.46 and later
- Increased diversity of examples generated by `from_node()`

### 0.1.7 - 2020-11-15
- Adds a workaround for [BPO-42218](https://bugs.python.org/issue42218)
- Bumped Hypothesis requirement to version 5.41 or later (better internal error messages)
- Added `MANIFEST.in` so the sdist includes license, tests, etc.

### 0.1.6 - 2020-11-01
- Improved error messages from internal compiler errors *again*
  ([BPO-42218](https://bugs.python.org/issue42218) will be fixed in Python 3.9.1)
- Bumped Hypothesis requirement to version 5.39 or later

### 0.1.5 - 2020-10-12
- Emit additional debug info when Python fails to compile a string

### 0.1.4 - 2020-08-16
- Improve handling of identifiers
- Fix internal error in `from_grammar("single_input")`

### 0.1.3 - 2020-07-30
- Update to latest versions of LibCST and Hypothesis, for Python 3.9 support

### 0.1.2 - 2020-05-17
- Emit *more* debug info to diagnose a `compile()` issue in CPython nightly

### 0.1.1 - 2020-05-17
- Emit some debug info to help diagnose a possible upstream bug in CPython nightly

### 0.1.0 - 2020-04-24
- Added `auto_target=True` argument to the `from_node()` strategy.
- Improved `from_node()` generation of comments and trailing whitespace.

### 0.0.8 - 2020-04-23
- Added a `from_node()` strategy which uses [`LibCST`](https://pypi.org/project/libcst/)
  to generate source code.  This is a proof-of-concept rather than a robust tool,
  but IMO it's a pretty cool concept.

### 0.0.7 - 2020-04-19
- The `from_grammar()` strategy now takes an `auto_target=True` argument, to
drive generated examples towards (relatively) larger and more complex programs.

### 0.0.6 - 2020-04-08
- support for non-ASCII identifiers

### 0.0.5 - 2019-11-27
- Updated project metadata and started testing on Python 3.8

### 0.0.4 - 2019-09-10
- Depends on more recent Hypothesis version, with upstreamed grammar generation.
- Improved filtering rejects fewer valid examples, finding another bug in Black.

### 0.0.3 - 2019-08-08
Checks validity at statement level, which makes filtering much more efficient.
Improved testing, input validation, and code comments.

### 0.0.2 - 2019-08-07
Improved filtering and fixing of source code generated from the grammar.
This version found a novel bug: `"pass #\\r#\\n"` is accepted by the
built-in `compile()` and `exec()` functions, but not by `black` or `lib2to3`.

### 0.0.1 - 2019-08-06
Initial release.  This is a minimal proof of concept, generating from the
grammar and rejecting it if we get errors from `black` or `tokenize`.
Cool, but while promising not very useful at this stage.
