Changelog
Note
Tetra is still early in its development, and we can make no promises about API stability at this stage.
The intention is to stabilise the API prior to a v1.0 release, as well as implementing some additional functionality. After v1.0 we will move to using Semantic Versioning.
[0.1.0] - unreleased
Changes
- New package name: tetra
- add conditional block check within components
- Update Alpine.js to v3.13.8
- switch to pyproject.toml based python package
- improve demo project: TodoList component,- add django-environ for keeping secrets, use whitenoise for staticfiles
- give users more hints when no components are found
- MkDocs based documentation
- format codebase with Black
Added
- basic testing using pytest
Fixed
- correctly find components
[0.0.5] - unreleased
Changed
- This is the last package with the name "tetraframework", transition to "tetra"
- Provisional Python 3.8 support
Fixed
- Windows support
[0.0.4] - 2022-06-22
- Cleanup
[0.0.3] - 2022-05-29
Added
_parent
client attribute added, this can be used to access the parent component mounted in the client._redirect
client method added, this can be used to redirect to another url from the public server methods.self.client._redirect("/test")
would redirect to the/test
url._dispatch
client method added, this is a wrapper around the Alpine.jsdispatch
magic allowing you to dispatch events from public server methods. These bubble up the DOM and be captured by listeners on (grand)parent components. Example:self.client._dispatch("MyEvent", {'some_data': 123})
._refresh
public method added, this simply renders the component on the server updating the dom in the browser. This can be used in combination with_parent
to instruct a parent component to re-render from a child components public method such as:self.client._parent._refresh()
Changed
- Built in Tetra client methods renamed to be prefixed with an underscore so that they are separated from user implemented methods:
updateHtml
is now_updateHtml
updateData
is now_updateData
removeComponent
is now_removeComponent
replaceComponentAndState
is now_replaceComponent