Releases: membraneframework/membrane_core
Release list
v1.3.4
v1.3.3
What's Changed
- Macro escape default pad option. Use :httpc instead of Req in Mix task membrane.demo. Bump to v1.3.3 by @varsill in #1142
Full Changelog: v1.3.2...v1.3.3
v1.3.2
What's Changed
- Run claude /skills-creator on our SKILL.md by @FelonEkonom in #1136
- Add Pipeline name to callback context by @varsill in #990
Full Changelog: v1.3.1...v1.3.2
v1.3.1
What's Changed
- Mention SKILL.md in README, add plugin.json by @FelonEkonom in #1131
- Adjust SKILL.md to cursor by @FelonEkonom in #1133
- Postpone handle child terminated by @varsill in #1125
- Remove SKILL.md from the HexDocs sidebar by @FelonEkonom in #1134
- Migrate CI from CircleCI to GitHub Actions by @khamilowicz in #1113
- Fix typo in release.yml by @khamilowicz in #1135
New Contributors
- @khamilowicz made their first contribution in #1113
Full Changelog: v1.3.0...v1.3.1
v1.3.0
New guides
Recently, we gathered some feedback on what parts of Membrane are confusing and could use more learning materials. Here are some new guides covering these parts:
- What are timestamps in multimedia and their role in Membrane. https://hexdocs.pm/membrane_core/timestamps.html
- Everything you need to know about Pads - the things that connect components into actual pipelines. https://hexdocs.pm/membrane_core/pads.html
- Demystifying manual demands - the way you handle flow control when auto-demands aren't enough. https://hexdocs.pm/membrane_core/manual_demands.html
- What are crash groups and how to use them to manage crashes in a controlled manner. https://hexdocs.pm/membrane_core/crash_groups.html
- How to integrate Membrane into existing Elixir applications. https://hexdocs.pm/membrane_core/running_membrane_in_elixir_application.html
Tasks for code generation
All the big dog libraries in Elixir have Mix tasks for generating starter code - project skeletons, module templates, etc - and now Membrane has them too. We added tasks for creating templates for all the component types in Membrane. For example, if you call
$ mix membrane.gen.filter My.Filter
a lib/my/filter.ex file will be created with a My.Filter filter template. This template will have all the code required for a minimal working Filter, alongside commented out sections for optional functionalities.
See https://hexdocs.pm/membrane_core/Mix.Tasks.Membrane.Gen.html and other tasks for more.
AI skill
We've noticed that AI coding agents don't always use Membrane Framework correctly. They frequently reach for APIs from outdated versions, or miss out on recent improvements. The likely reason: today's models still draw heavily on training data scraped 3-4 years ago, when the Membrane Framework looked quite different.
To address this, we've shipped an official SKILL.md for AI agents, dedicated to anything involving the framework.
If you use Claude Code, install it via the plugin system:
/plugin marketplace add membraneframework/membrane_core
/plugin install membrane-framework@membrane
For a cross-agent install, get it using $ npx skills add membraneframework/membrane_core -g.
You can find more info about this topic in our README.
Membrane Actions upgrades
Version 1.3 provides the following improvements and upgrades in Membrane actions mechanism:
- new broadcast action - improved successor of forward. You can use it to send any type of a Membrane stream item, like buffer, event or stream format.
- now demand action also accepts buffers' timestamps. More info on how to use this functionality in the manual demands guide.
All changes
- Improve remove_link action docs by @mat-hek in #1048
- Timestamps guide by @Noarkhh in #1033
- Add section about support for Windows by @Noarkhh in #1049
- Add pads3.png guide asset by @Noarkhh in #1069
- Use Process.label() instead of Process.register(). by @varsill in #1071
- Handle removed pads properly in Membrane.Connector by @FelonEkonom in #1075
- "Running Membrane in Elixir application" guide by @varsill in #1070
- Write the crash group guide by @FelonEkonom in #1074
- Add skill.md describing how to use Membrane Core by @varsill in #1078
- Mix task for creating component templates by @Noarkhh in #1059
- Add task for downloading membrane demos by @Noarkhh in #1067
- Remove RTC engine from packages list by @mat-hek in #1107
- Add :broadcast action by @varsill in #1106
- Fix compilation warnings in test files by @FelonEkonom in #1095
- Upgrade docs and skills for LLMs in Membrane Core by @FelonEkonom in #1097
- Improve error messages by @Noarkhh in #1102
- Improve docs by @Noarkhh in #1103
- Fix bug in generated moduledocs by @FelonEkonom in #1122
- Make demand action accept timestamps & write manual timestamps guide by @FelonEkonom in #1079
- Bump version to 1.3.0 by @FelonEkonom in #1129
Full Changelog: v1.2.6...v1.3.0
v1.2.6
What's Changed
- Adjust to Elixir 1.19 by @Noarkhh in #1038
- Avoid division by 0 in stalker under weird timer behaviour by @mat-hek in #1035
- Improvements in Testing.Pipeline docs by @varsill in #997
- Put pages into groups, include tutorials by @Noarkhh in #1007
- Include plugins in docs by @Noarkhh in #1012
- Include demos in docs by @Noarkhh in #1013
- Allow for searching in all membrane packages by @Noarkhh in #1015
- Pads guide by @Noarkhh in #1031
This release obsoletes v1.2.5, which was broken and didn't compile
Full Changelog: v1.2.5...v1.2.6
v1.2.5
v1.2.4
v1.2.3
What's Changed
- Correct documentation for unsafely_name_processes_for_observer by @maslowalex in #960
- Fixed telemetry metadata bug of component_type and covered it by tests by @wende in #958
- Fix order of handle_child_terminated and handle_crash_group_down callback invocation by @varsill in #962
- More information in handle_child_terminated. Deprecate
nilchild group name by @varsill in #964
New Contributors
- @maslowalex made their first contribution in #960
Full Changelog: v1.2.2...v1.2.3
v1.2.2
What's Changed
- Improve conditions for generating compilation warnings by @FelonEkonom in #956
Full Changelog: v1.2.1...v1.2.2