# What's new in Gerrit v3.8

Gerrit v3.8 have been released in Spring 2023.

Luca gives an overview of the major improvements introduced,
including:

- Rebase _on behalf_ of other users
- Chain rebases from Gerrit UI
- Browser notifications
- Performance improvements

There is a lot going on in the pipeline of Gerrit v3.9
which is due before Christmas 2023; the talk will also
show the list of improvements and what is likely to be
merged as part of the forthcoming release.

*[Luca Milanesio, GerritForge](../speakers.md#luca)*
