The Kivy team is happy to announce the release of Kivy 2.2.0.
Kivy is a full-featured framework for creating novel and performant user
interfaces, such as multi-touch applications, released under the MIT license.
The framework works on Windows, macOS, Linux, Android, iOS and Raspberry Pi.
Installation instructions and Kivy Docs are hosted on the Kivy Website
Currently supported Python versions are 3.7-3.11
Features marked as deprecated on 1.9.0 and prior versions will be removed in Kivy 2.3.0 (See: #8177)
Highlights
- [#7876]:
Line
/SmoothLine
: Fixes rendering issues related to corner radius and updates its order (rounded_rectangle
) + add getter methods forrounded_rectangle
,rectangle
,ellipse
,circle
. - [#7882]: Re-implements the Bubble widget.
- [#7908]: Speed up SmoothLine creation by ~2.5x
- [#7942]: Config unicode support on Windows
- [#7988]: Added support for KIVY_LOG_MODE
- [#8044]: Add support for Python 3.11
- [#8056]: New Feature: Add
BoxShadow
graphic instruction 🎉 - [#8115]: Use
font_direction
andfont_script_name
from SDL2_ttf - [#8144]: Added property for mouse draggable tab scrollbar to TabbedPanel
- [#8162]:
Label
: allow different values of left, top, right and bottom forpadding
. - [#8169]:
Image
: addfit_mode
feature - [#8096]: Introduce build script for SDL dependencies and
KIVY_DEPS_ROOT
Deprecated
- [#7882]: Re-implements the Bubble widget.
Breaking changes
- [#7876]:
Line
/SmoothLine
: Fixes rendering issues related to corner radius and updates its order (rounded_rectangle
) + add getter methods forrounded_rectangle
,rectangle
,ellipse
,circle
.
Kv-lang
- [#8021]: Update builder.py
Misc
- [#7906]: Replace deprecated logging.warn with logging.warning
- [#7913]: fix(UrlRequest): Add "on_finish" and add alternative implementation
- [#7943]: Fixes some E275 - assert is a keyword. + other minor PEP8 fixes
- [#7969]: Config is not available when generating docs + Use
getdefault
instead ofhas_option
+get
Widgets
- [#7626]: New Feature: Allow control how many lines to scroll at once using the mouse wheel on TextInput
- [#7882]: Re-implements the Bubble widget.
- [#7905]: Fix TextInputCutCopyPaste widget
- [#7925]: Qwerty VKeyboard button fix( z, Q and W and ] ) on Linux(Ubuntu Focal Fossa)
- [#8109]: Fix for changes of Splitter.strip_cls having no effect
- [#8144]: Added property for mouse draggable tab scrollbar to TabbedPanel
- [#8169]:
Image
: addfit_mode
feature - [#8202]: Migrate
allow_stretch
andkeep_ratio
in widgets/examples by correspondingfit_mode
Core-app
- [#7942]: Config unicode support on Windows
- [#7958]: Use AddLevelName in kivy.Logger to define TRACE
- [#7962]: Refactored logging.ColoredFormatter to avoid deepcopy.
- [#7971]: Support KivyLogMode environment variable for logging testing
- [#7973]: Bump KIVY_CONFIG_VERSION and add a warning for future changes.
- [#7975]: Light clean up of stderr handling code.
- [#7979]: #7978: Don't monkey-patch logging.root
- [#7985]: Handle non-strings in logs.
- [#7988]: Added support for KIVY_LOG_MODE
- [#7989]: Android Lifecycle convergence
- [#7994]: Use urlopen instead of build_opener when fetching files from 'internet'. Removes some PY2 compat.
- [#8062]: Use
find_spec
,module_from_spec
andexec_module
instead offind_module
andload_module
since are deprecated.
Core-providers
- [#7846]: Fix VKeyboard missing with custom keyboard class
- [#7857]: iOS camera provider enhancements
- [#7982]: Use
SDL_WINDOWEVENT_DISPLAY_CHANGED
to notice about window switching display to update_density
andpi
- [#7999]: Modify layout fix bug in how long text without space is cut
- [#8025]: Release the GIL when performing SDL_GL_SwapWindow call.
- [#8058]: Makes Windows DPI aware of scale changes
- [#8076]: New Feature: Always On Top
- [#8083]: Allow changing
Window.fullscreen
andWindow.borderless
options after setup on iOS - [#8115]: Use
font_direction
andfont_script_name
from SDL2_ttf - [#8142]: New Feature: Allows to hide the taskbar icon
- [#8146]: Fix memory issue on iOS 16.2 for AVMetadataObject (during QRCode scan)
- [#8147]: Detect High DPI on Linux Desktop
- [#8162]:
Label
: allow different values of left, top, right and bottom forpadding
. - [#8171]: Make VideoFFPy work with RTSP streams.
Core-widget
- [#8035]: Simplify Animation._unregister
Distribution
- [#7837]: Bump to 2.2.0.dev0
- [#7852]: Build python 3.9 wheels for RPi
- [#7974]: Bump SDL2, SDL_image, SDL_mixer, SDL_ttf versions to latest stable release
- [#8004]: Bump kivy_deps.sdl2 and kivy_deps.sdl2_dev to 0.5.0
- [#8006]: Use Platypus 5.4
- [#8043]: Bump SDL2 to
2.24.1
on Linux and macOS - [#8044]: Add support for Python 3.11
- [#8050]: Bump again SDL2 to 2.24.2 on Linux and macOS
- [#8070]: Remove usage of
distutils
module which is deprecated and slated for removal in 3.12 - [#8096]: Introduce build script for SDL dependencies and
KIVY_DEPS_ROOT
- [#8155]: Dependencies build tool: exit immediately on fail and allows to debug easier
- [#8173]: Bump macOS dependencies versions on
tools/build_macos_dependencies.sh
- [#8174]: Bump Linux dependencies versions on
tools/build_linux_dependencies.sh
- [#8176]: Bump Windows dependencies via
kivy_deps
packages - [#8178]: Bump
cython_max
version - [#8191]: XCode 14.3 fails to build SDL if
MACOSX_DEPLOYMENT_TARGET
<10.13
- [#8203]: Migrate from
autotools
tocmake
for SDL2 linux dependencies - [#8223]: Perform RPi builds on
balenalib/raspberrypi3-*
images and skipDISPMANX
API usage if can't be used [build wheel armv7l] - [#8231]: Bump version to
2.2.0rc1
Documentation
- [#7870]: Documentation: bump Gentoo install instructions
- [#7916]: Fixes NO DOCUMENTATION (module kivy.uix.recycleview)
- [#7927]: Fix minor typo in pong tutorial code comments
- [#7928]: Add missing closing paren in hint text
- [#7929]: Use consistent source code notes in pong tutorial
- [#7930]: Purge trailing whitespace in docs source files
- [#7946]: Add doc for
Canvas.add()
- [#8026]: Typo : missing coma in the doc
- [#8032]: doc: Initial remarks on BSD compatibility.
- [#8034]: Fix backticks typo in pong tutorial
- [#8039]: Link to buildozer installation instructions instead of duplicating them
- [#8041]: installation-osx.rst: Minor code formatting
- [#8088]: Add support for sphinx
6.0.0
- [#8089]: Add a warning about
keyboard_suggestions
usage on Android - [#8139]: Improve docs about
BoxShadow
behavior and usage. - [#8156]: Docs: Update the Ubuntu prerequisites to build Kivy and its dependencies
- [#8175]: Update Copyright and LICENSE dates
- [#8179]: Update Python supported versions
- [#8181]: 📖 Grammar tweaks to focus docstrings
- [#8183]: Docs: Fixes a typo (issue #7838)
- [#8229]: Sphinx
7.0.0
is incompatible, use<=6.2.1
for now - [#8234]: Docs review for
RPi
installation and build instructions
Graphics
- [#7860]: Ellipse: update angle_start, angle_end to explicit floats
- [#7876]:
Line
/SmoothLine
: Fixes rendering issues related to corner radius and updates its order (rounded_rectangle
) + add getter methods forrounded_rectangle
,rectangle
,ellipse
,circle
. - [#7908]: Speed up SmoothLine creation by ~2.5x
- [#8056]: New Feature: Add
BoxShadow
graphic instruction 🎉 - [#8098]: Fix
BoxShadow
shader crashing issue on Adreno GPUs - [#8132]:
BoxShadow
: Addinset
feature - [#8138]:
BoxShadow
: Accept values for vertical and horizontalspread_radius
- [#8163]:
Line
/SmoothLine
:ellipse
- fix behavior and add feature to allow closing line through center of ellipse - [#8164]:
Ellipse
: Handle the number of segments and avoid division by zero - [#8170]: Add svg rotation transform support
- [#8187]:
Line
/SmoothLine
-ellipse
: Handle the number of segments to matchEllipse
Input
- [#8027]: Typo : German Keyboard is QWERTZ
Tests/ci
- [#7847]: Tests: ffpyplayer now ships cp310-* and Apple Silicon compatible wheels, so tests on the full version can be re-introduced.
- [#7854]: Fixes 3.8.x pyenv install due to a recent change in clang [build wheel osx]
- [#7885]: Our self-hosted Apple Silicon runner now has been migrated to actions/runner v2.292.0 which now supports arm64 natively
- [#7903]: Migrate from probot/no-response to lee-dohm/no-response
- [#7917]: When using pytest_asyncio for tests, function should be decorated with
pytest_asyncio.fixture
- [#7972]: Fix trivial typo in workflow.
- [#7987]: Fix source typo in test_uix_bubbles.py
- [#8084]: Switch from
ubuntu-18.04
toubuntu-latest
as18.04
runners will be removed on 2023-01-12 - [#8093]: Add
gstreamer1.0-plugins-good
forautoaudiosink
availability during tests - [#8099]: Install twine only when needed [build wheel]
- [#8117]: Upgrade GitHub Actions
- [#8120]: [build wheel] Upgrade more GitHub Actions
- [#8121]: GitHub Actions: Use current Python instead of hardcoded v3.9
- [#8126]: Switch back to
macos-latest
instead ofmacos-11
- [#8129]: Remove remaining nosetest settings in favor of pytest
- [#8157]: Correct the flake8 pre-commit URL
- [#8217]:
Generate-sdist
needspackaging
as a dependency [build wheel win]
Thanks
A big thanks to all of the Contributors, especially those github usernames mentioned here:
Akshay Arora, Alsp, Anders, AnthonyZimmermann, CdrSonan, Cecil Curry, Chris Vincent, Christian Clauss, Danny Dawson, Dexer, Evgeniy Selezniov, Gabriel Pettier, Gabriel Vogel, Hugo van Kemenade, Johan Toft, Julian, Matt Einhorn, Mirko Galimberti, NomadDemon, Paul Cochrane, Peter Tripp, Richard Larkin, Robert Niederreiter, RobertF, Robin Picard, Romain Heller, SanAndreyas, Tom Dudley, Tomasz CEDRO, Vinayak Sachan, anand vibhuti, djogy, luzpaz, mp-007, 水戸う納豆齋(Nattōsai Mitō)