Skip to content

Commit c0495e9

Browse files
committed
Bump version to 1.1.0 and update changelog
Update version in: - src/erlang_python.app.src - docs/getting-started.md Add changelog entries for all changes since 1.0.0: - Shared state API with atomic counters - Native Python import syntax for Erlang callbacks - Memory safety fixes - Worker resilience improvements - Code consolidation
1 parent 0809220 commit c0495e9

File tree

3 files changed

+34
-2
lines changed

3 files changed

+34
-2
lines changed

CHANGELOG.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,37 @@
11
# Changelog
22

3+
## 1.1.0 (Unreleased)
4+
5+
### Added
6+
7+
- **Shared State API** - ETS-backed storage for sharing data between Python workers
8+
- `state_set/get/delete/keys/clear` accessible from Python via `from erlang import ...`
9+
- `py:state_store/fetch/remove/keys/clear` from Erlang
10+
- Atomic counters with `state_incr/decr` (Python) and `py:state_incr/decr` (Erlang)
11+
- New example: `examples/shared_state_example.erl`
12+
13+
- **Native Python Import Syntax** for Erlang callbacks
14+
- `from erlang import my_func; my_func(args)` - most Pythonic
15+
- `erlang.my_func(args)` - attribute-style access
16+
- `erlang.call('my_func', args)` - legacy syntax still works
17+
18+
- **Documentation improvements**
19+
- Added shared state section to getting-started, scalability, and ai-integration guides
20+
- Added embedding caching example using shared state
21+
- Added hex.pm badges to README
22+
23+
### Fixed
24+
25+
- **Memory safety** - Added NULL checks to all `enif_alloc()` calls in NIF code
26+
- **Worker resilience** - Fixed crash in `py_subinterp_pool:terminate/2` when workers undefined
27+
- **Streaming example** - Fixed to work with worker pool design (workers don't share namespace)
28+
- **ETS table ownership** - Moved `py_callbacks` table creation to supervisor for resilience
29+
30+
### Changed
31+
32+
- Created `py_util` module to consolidate duplicate code (`to_binary/1`, `send_response/3`, `normalize_timeout/1-2`)
33+
- Consolidated `async_await/2` to call `await/2` reducing duplication
34+
335
## 1.0.0 (2026-02-14)
436

537
Initial release of erlang_python - Execute Python from Erlang/Elixir using dirty NIFs.

docs/getting-started.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Add to your `rebar.config`:
88

99
```erlang
1010
{deps, [
11-
{erlang_python, {git, "https://github.com/benoitc/erlang-python.git", {tag, "v1.0.0"}}}
11+
{erlang_python, {git, "https://github.com/benoitc/erlang-python.git", {tag, "v1.1.0"}}}
1212
]}.
1313
```
1414

src/erlang_python.app.src

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{application, erlang_python, [
22
{description, "Execute Python applications from Erlang using dirty NIFs"},
3-
{vsn, "1.0.0"},
3+
{vsn, "1.1.0"},
44
{registered, [py_pool]},
55
{mod, {erlang_python_app, []}},
66
{applications, [

0 commit comments

Comments
 (0)