All Versions
Latest Version
Avg Release Cycle
192 days
Latest Release
1282 days ago

Changelog History
Page 1

  • v2.0.0 Changes

    December 10, 2020

    πŸš€ The Kivy team is happy to announce the release of Kivy 2.0.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.

    • πŸš€ This is the first release to not support Python 2.7 - hence the increase in Kivy's major version to 2. Currently supported Python versions are 3.6 - 3.9.
    • πŸ‘€ Installation has been largely simplified and all platforms now support a simpler pip install (see below).

    πŸ“š Installation instructions and Kivy documentation is available on the Kivy website:

    πŸš€ or on GitHub.

    Installation notes

    🐧 Kivy can now be installed into your Virtual Environment on Windows, Linux, OSX, and RPi simply with:

    pip install kivy[base] kivy-examples
    # or to get the media dependecies as well
    pip install kivy[base,media] kivy-examples
    # or to get most kivy optional dependencies
    pip install kivy[full] kivy-examples

    * For the RPi, additional system dependencies should be pre-installed.

    πŸ“Œ These selectors allow specifying dependency categories, instead of having to pin Kivy's kivy_deps dependencies to specific versions. These selectors will install the proper dependency version to match Kivy's version.

    βž• Additionally, by default, Kivy will install the base dependencies even if base is not specified. In order to facilitate easier install for GUI installation users e.g. in PyCharm. However, this may change as pip evolves and base should be manually specified. Use pip's --no-deps flag to disable it.

    πŸ“š See the selector documentation for more details.

    πŸ‘€ Installation from source has also been simplified, relying on pip's pyproject.toml. See the simplified instructions.


    πŸ‘ [#6351]: Support for Python 2 has been dropped and Kivy source code is now incompatible with Python 2.

    πŸ‘ [#6368]: Support for async has been added to Kivy. Kivy can now run cooperatively, in the same process or thread as asynchronous code.

    πŸ‘€ We currently support the stdlib asyncio framework and the excellent trio framework. See the kivy examples for how to use it.

    πŸ’₯ Breaking changes

    • πŸ‘ [#6351]: Core: Drop Python 2 support.
    • πŸ‘ [#6368]: Core: Add async support to kivy App
    • [#6448]: EventDispatcher: Move __self__ from widget to EventDispatcher and fix tests.
    • [#6467]: Graphics: Change filename to source
    • ⚑️ [#6469]: ModalView: Updating ModalView to improve theming
    • [#6607]: Window: Fix SDL Keycode Typo
    • [#6650]: DropDown/ModalView: Make modal and dropdown consistent
    • 🚚 [#6677]: Widget: Remove id from Widget.
    • [#6678]: ScrollView: Add always_enable_overscroll property on scrollview
    • 🚚 [#6721]: Image: Remove gpl gif implementation
    • [#6918]: ColorProperty: Use ColorProperty instead of ListProperty for color property
    • [#6937]: Base: Rename slave to embedded
    • [#6950]: Cache: Raise KeyError if None is used as key in Cache

    πŸ”„ Changelog


    • πŸ— [#6442]: KV lang: Make it easy to copy Builder and Factory and make them all contexts.
    • [#6548]: Factory: Meaningful Error Message
    • 0️⃣ [#6880]: KV: Use utf-8 encoding by default on reading .kv files. Fixes #5154


    • [#6323]: Loader: User agent was not correctly resolved.
    • πŸ›  [#6658]: Garden: Fixes incorrect path to kivy garden libs on iOS
    • [#6703]: Network: Fix https in python3.x
    • [#6748]: Network: Extend certifi usage to ios
    • [#6922]: WeakMethod: Fx and cleanup WeakMethod usage
    • [#6931]: VIM: Fix and improve vim syntax highlighting for kv lang
    • ⏱ [#6945]: Cache: Don't double copy keys when purging cache by timeout
    • [#6950]: Cache: Raise KeyError if None is used as key in Cache
    • πŸ›  [#6954]: Network: Ignore ca_file on http scheme, fixes #6946
    • [#7054]: Networking: User Agent and Cookies added to UrlRequest


    • [#6359]: Packaging: Fix path by setting to bytes
    • πŸ‘€ [#6643]: PyInstaller: List kivy.weakmethod because pyinstaller doesn't see into cython files
    • [#6772]: PyInstaller: window_info is not included in x86 pyinstaller
    • [#7080]: OSX: Generate on the CI


    • [#6288]: TextInput: Cache text property in TextInput
    • [#6362]: Carousel: Let 'Carousel._curr_slide()' prepare for the situation where 'index' is None
    • 🚚 [#6365]: Carousel: Let 'Carousel.remove_widget()' remove the container of the widget
    • 🚚 [#6372]: Carousel: make 'Carousel.remove_widget()' not cause 'IndexError'
    • [#6374]: Carousel: Make 'Carousel' able to handle the case where 'loop == True' and 'len(slides) == 2'
    • 🚚 [#6436]: ColorWheel: Remove bug in algorithm to compute arcs of colorwheel (#6435)
    • ⚑️ [#6469]: ModalView: Updating ModalView to improve theming
    • [#6481]: ScreenManager: Make clear_widgets correctly iterate over screens
    • πŸ›  [#6542]: TextInput: Fixes TextInput Bubble from diseappering immediately after it appears
    • πŸ›  [#6543]: TextInput: Fixes TextInput cursor "rendering" issue
    • [#6574]: TreeViewNode: Fix arrow pos and size
    • [#6579]: Slider: Horizontal value track is offset from the center of Slider
    • [#6624]: Filechooser: Use full path
    • [#6650]: DropDown/ModalView: Make modal and dropdown consistent
    • [#6666]: TextInput: Fix for crashes caused by text selection outside of TextInput area
    • [#6678]: ScrollView: Add always_enable_overscroll property on scrollview
    • [#6741]: GridLayout: Add 'orientation' property to GridLayout
    • πŸ›  [#6815]: Image: Fixes for Image and AsyncImage
    • πŸ’… [#6859]: Slider: Adding allow_stretch to Slider in style.kv
    • [#6879]: VKeyboard: Fix key_background_color property not used
    • [#6897]: RecycleView: Add behavior to set RV data using kv ids
    • [#6905]: FileChooser: Add font property
    • 🚚 [#6912]: TextInput: Remove 'encode' argument from getter method of 'text' property of TextInput
    • [#6918]: ColorProperty: Use ColorProperty instead of ListProperty for color property
    • [#6942]: ScrollView: Don't crash when scrollview's content is the same size
    • πŸ“„ [#6971]: Camera: Fix an inconsistency between docs and code on Camera
    • [#6976]: ModalView: Prevent modalview dismissal without on_touch_down
    • [#6985]: ScrollView: Fix scrollview scroll/effect recursion
    • πŸ‘ [#7009]: TextInput: IME support for textinput
    • [#7021]: ColorProperty: Use ColorProperty for remaining color properites
    • [#7032]: ScreenManager: Fix typo in SlideTransition
    • [#7069]: ScrollView: Horizontal scrolling disabled if no overflow
    • [#7074]: Splitter: Fix handling offset
    • ⚑️ [#7118]: GridLayout : optimize GridLayout
    • [#7129]: TabbedPanel: Stop tab buttons from scrolling around
    • [#7196]: ScrollView: fix jumping to bottom when using scrollwheel.


    • πŸ‘ [#6351]: Core: Drop Python 2 support.
    • πŸ‘ [#6368]: Core: Add async support to kivy App
    • [#6376]: Cython: Set cython language_level to py3.
    • [#6381]: Inspector: Use sets to check if inspector should be activated.
    • [#6404]: App: Fix pausing without app instance
    • [#6458]: Core: Fix memory leaks by cleaning up after resources
    • [#6540]: Config: fix erroneous check of KIVY_NO_ENV_CONFIG
    • [#6581]: Dependencies: Bump max cython version
    • [#6729]: DDSFile: fix for string/bytes comparing for py3
    • [#6773]: Clock: Add correct value of CLOCK_MONOTONIC for OpenBSD
    • [#6798]: Platform: Corrected platform detection on Android
    • [#6910]: Logger: Add encoding
    • πŸ‘» [#6926]: Clock: Add clock lifecycle, better exception handling and other cleanup
    • [#6937]: Base: Rename slave to embedded
    • [#6994]: EventLoop: Don't do event loop stuff when stopped.
    • πŸ“‡ [#7083]: Core: Add and move updating version metadata to the CI
    • [#7112]: Python: Require python version >=3.6
    • πŸ‘ [#7132]: Python: Add support for Python 3.9.
    • [#7151]: Dependencies: Bump cython to 0.29.21
    • [#7178]: Dependencies: Add dependency selection varaibles
    • 🌲 [#7181]: Logging: Added color support for compatible terminals


    • [#6384]: Window: Allow window providers to indicate which gl backends they are compatible with
    • πŸ›  [#6422]: Label: Fixes multiline label w/ line_height < 1
    • 🍎 [#6433]: Window: Center cache problem on MacOS
    • [#6461]: Audio: Fix playing audio streams from ffpyplayer
    • βͺ [#6507]: Text: Revert "Fixes multiline label w/ line_height < 1"
    • β†ͺ [#6513]: Text: Fix issue #6508 Multiline label w/ line_height < 1 renders badly (workaround)
    • πŸ›  [#6515]: Text: Fixes positioning (valign) issue when using max_lines
    • 🐎 [#6578]: Window: Revert swap forced sync (#4219) as it causes performance issue
    • [#6589]: Window: Add the ability to show statusbar on iOS
    • πŸ‘ [#6603]: Audio: Native audio support for Android
    • [#6607]: Window: Fix SDL Keycode Typo
    • πŸ—„ [#6608]: Audio: Replace deprecated variables in audio providers
    • 🚚 [#6721]: Image: Remove gpl gif implementation
    • [#6743]: Clipboard: xclip less verbose Kivy startup
    • 🚩 [#6754]: Text: Properly raise errors reading a font
    • [#6947]: Image: Remove 'img_gif' entry from image_libs
    • [#6988]: Camera: Improve avfoundation camera implementation on iOS
    • πŸ”§ [#7071]: Camera: Fixes crash during camera configuration
    • [#7102]: Audio: Added loop functionality for SoundAndroidPlayer


    • [#5926]: Animation: Fix kivy.animation.Sequence and kivy.animation.Parallel consistency
    • [#6373]: Properties: Allow observable list and dict dispatch to propagate exceptions.
    • 🚚 [#6441]: EventDispatcher: Move Widget proxy_ref upwards to EventDispatcher
    • 0️⃣ [#6443]: Property: Initialize KV created property with default value
    • [#6448]: EventDispatcher: Move __self__ from widget to EventDispatcher and fix tests.
    • 🚚 [#6677]: Widget: Remove id from Widget.
    • ⚑️ [#6858]: Effects: Fix update_velocity
    • [#6917]: ColorProperty: Re-add ColorProperty to all list in properties.pyx module
    • [#6930]: Property: Use ObservableList as internal storage for ColorProperty
    • [#6941]: Property: Let ColorProperty accept arbitrary list types.
    • [#6965]: Property: Allow assignment of color names as values for ColorProperty
    • [#6993]: Property: Add kwargs to 'sort' method of ObservableList


    • 🚚 [#6354]: Dependecy: Move cython version info to setup.cfg.
    • [#6355]: Dependency: kivy_deps need to be imported before any modules.
    • πŸ— [#6356]: Dependency: Bump cython to 0.29.10 to fix CI building.
    • πŸ“¦ [#6397]: Install: Automatically discover kivy sub-packages
    • [#6562]: RPi: Autodetect when we are on a Raspberry Pi 4
    • [#6568]: CI: Cross compile wheel for armv7l (Raspberry Pi 4) using Github Actions CI
    • πŸ“‡ [#6642]: Install: Switch to using pyproject.toml and setup.cfg for metadata
    • πŸ“¦ [#6656]: Wheel: Don't package examples in the wheel
    • [#6662]: CI: Compile wheels for Raspberry Pi 1-3 using the CI
    • πŸ‘· [#6670]: Dependencies: Fix CI PyPI upload and pin to latest kivy_deps versions.
    • [#6674]: Sdist: Cannot handle carriage return in description.
    • [#6769]: RPi: Kivy now works on the Raspberry Pi 4 without X11
    • πŸ— [#6774]: Install: Build the extensions in parallel if the options has not been set
    • [#6852]: Platform: Fix android platform detection when using p4a
    • [#6854]: Install: Reuse kivy_build var (complements #6852)
    • ⚑️ [#6891]: Cython: Update to latest cython version
    • [#6990]: Installation: Make setuptools use its local distutils
    • [#7084]: Dependencies: Add min basic dependencies to install requirements.
    • πŸ‘ [#7110]: Makefile: Detect python verion and gracefully fail on unsupported version
    • πŸ— [#7152]: RPi: Stop building wheels for RPi stretch
    • [#7154]: Anconda: Respect SDKROOT and use_osx_frameworks
    • [#7157]: Makefile: Try python3 first as python may point to python2.
    • [#7159]: Makefile: Use python3 if it's present.
    • [#7195]: Inlcude doc in PR checklist

    πŸ“š Documentation

    • βͺ [#6352]: Docs: force to use sphinx 1.7.9 to restore search
    • πŸ“„ [#6377]: Docs: Embed func signatures in cython to help IDEs.
    • [#6383]: Doc: Create FUNDING.yml
    • ⚑️ [#6389]: Doc: Fix linux install docs and update garden instructions
    • ⚑️ [#6398]: Doc: Update - Corrected typo
    • [#6399]: Doc: Fix pip link
    • [#6427]: Doc: Add comment on required pip version
    • πŸ“„ [#6459]: Docs: fix wrong highlights
    • ⚑️ [#6466]: Docs: Config docs update
    • [#6478]: Examples: Fix lack of white-space after ":" in pong.kv
    • ✏️ [#6479]: Doc: Fix typos, grammar in install instructions
    • [#6485]: Doc: Fix KIVY_EVENTLOOP doc
    • [#6491]: Doc: Fix Widget.pos_hint doc
    • πŸ›  [#6510]: Doc: Few minor fixes in the doc.
    • ⚑️ [#6511]: Doc: Update note about kivy-ios python version
    • 🚚 [#6523]: Doc: Remove reference to Kivy Designer
    • [#6537]: Doc: fix GridLayout doc
    • πŸ›  [#6558]: Examples: Fixed depreciated option for twisted, and sys.exc_call is only run in py2
    • ⚑️ [#6625]: Doc: Update
    • [#6636]: Example: Missing directory replaced in colorpicker #6599
    • πŸ“„ [#6638]: Docs: Fix typo
    • ✏️ [#6641]: Doc: Fix TextInput typos cursor row/col
    • [#6683]: Doc: Fix spinner kv example
    • πŸ“„ [#6694]: Doc: Fix css on docs
    • 🏁 [#6712]: Doc: Revisit of the Windows installation instructions
    • [#6714]: Doc: Fix spelling errors
    • ⚑️ [#6750]: Doc: Update packaging-windows.rst
    • πŸ“š [#6775]: Doc: Fixed the gallery documentation
    • ⚑️ [#6778]: Doc: Updated Raspberry Pi 4 doc on HW acceleration
    • [#6780]: Doc: Make RPi SDL2 install instructions clear
    • πŸ›  [#6813]: Example: bugfix for 3D rendering example
    • πŸ“„ [#6821]: Doc: Expand on the current logger docs
    • [#6863]: Doc: Add missing hid input parameter
    • [#6868]: Doc: iOS - migrates to the new install procedure
    • [#6882]: Example: Improved ScreenManager example
    • [#6895]: Doc: Add annotations to proxies.
    • πŸ— [#6924]: Doc: Buildozer is now in Beta.
    • πŸ“„ [#6927]: Doc: Improvements to kv lang docs
    • πŸ“š [#6938]: Doc: trigger_action warning / documentation updates
    • [#6963]: Doc: Correct comments to use proportion, not percent
    • πŸ“„ [#6969]: Doc: Fix docs for on_dropfile
    • ⚑️ [#6975]: Doc: Update the dev installation instructions
    • [#6977]: Doc: Add some typing to clock
    • 🚚 [#6979]: Doc: Remove duplicate python3-pip
    • [#7002]: Doc: Print about KIVY_NO_ARGS when printing usage.
    • ⚑️ [#7022]: Doc: Update doc for all instances of ColorProperty
    • [#7038]: Doc: Fix on_ref_press documentation
    • πŸ›  [#7039]: Doc: fixed typo in hbar doc string
    • πŸ›  [#7043]: Doc: fixed doc string
    • [#7160]: Examples: Add Recycleview examples
    • πŸ“„ [#7179]: Docs: Switch to staging docs on kivy-website-docs
    • πŸ“„ [#7222]: Docs: minor typo fix in layout docs
    • πŸ“„ [#7240]: Docs: Re-write install docs.
    • πŸ“„ [#7241]: Docs: Add changelog to docs


    • [#6457]: Graphics: Fix "Error in sys.excepthook"
    • [#6467]: Graphics: Change filename to source
    • [#6472]: Graphics: Fix relative import for the egl backend
    • πŸ›  [#6533]: Graphics: Fixes fbo/renderbuffer freeze on iOS
    • πŸ‘ [#6702]: Graphics: Adding support for non-file SVGs
    • [#6777]: Graphics: Also set points _mode propery to LINE_MODE_POINTS
    • [#6808]: Graphics: Fix Svg consistency #6467
    • [#6844]: Graphics: Use GLES context when ES2 is forced
    • βͺ [#6846]: Graphics: Revert "Use GLES context when ES2 is forced"
    • [#6978]: Graphics: fix ignored alpha value in hsv mode


    • πŸ“¦ [#6319]: Mouse: Fix ctypes definition to work with other packages
    • πŸ‘ [#7065]: Mouse: Added support for the mouse4 and mouse5 buttons

    βœ… Tests/ci

    • πŸ‘· [#6375]: CI: Fix CI failure, 3.5.7 doesn't have compiled binaries.
    • πŸ‘€ [#6390]: CI: Python 3.5 doesn't seem to work anymore on travis bionic.
    • πŸ— [#6403]: CI: Remove osx workarounds as it breaks the build.
    • 🌐 [#6415]: Test: Add tests for coordinates translation
    • βœ… [#6417]: Test: Add preliminary support for coverage for kv files.
    • πŸ‘‰ [#6482]: CI: Remove usage of KIVY_USE_SETUPTOOLS
    • πŸ— [#6503]: CI: Fix rtd builds
    • βœ… [#6514]: Test: Add test method for touch to follow a widget's position
    • πŸ“„ [#6516]: CI: Don't use the Window when computing dp during docs generation
    • πŸ— [#6554]: CI: Build latest .DMG for osx app
    • ⚑️ [#6556]: CI: Update .travis.yml for osx app on master
    • βœ… [#6565]: Test: Add ability to specify offset from widget pos
    • [#6570]: CI: Enable Python 3.8 wheel generation for osx
    • βœ… [#6595]: Tests: Fix test failures in Python 3.8 (fixes #6594)
    • βœ… [#6618]: Test: Don't preset async_sleep
    • [#6622]: CI: Switch from Travis/Appveyor to GitHub Actions
    • πŸ— [#6659]: CI: Use pip to build wheel so it uses pyproject.toml.
    • βœ… [#6669]: CI: Test generated wheels and sdist
    • βœ… [#6673]: CI: Latest twine doesn't support py3.5
    • [#6681]: CI: Switch to flake8 and fix PEP8 issues
    • [#6682]: CI: Create all the wheels before doing any uploads
    • ⚑️ [#6771]: GitHub: Update issue templates to new format
    • βœ… [#6845]: Tests: Fix failing tests
    • ⬆️ [#6855]: CI: Upgrade to actions/checkout@v2 & actions/setup-python@v2
    • βœ… [#6892]: Test: Fix failing coverage
    • 🐧 [#6940]: CI: Fix linux SDL2
    • πŸ”¨ [#6951]: Tests: Refactors
    • 🚚 [#7115]: CI: Remove mcnotify integration
    • [#7147]: PEP8: Fix PEP8 issues
    • 🚚 [#7174]: Tests: Warn that async app test framewrok may be removed from kivy.
    • βœ… [#7201]: CI: Test all wheel versions, not just one per OS
    • βœ… [#7203]: Tests: Ensure Bubble uses it's superclass's valid private API


    ⚑️ The new stable branch is now derived from the 2.0.0 tag. The oldest stable branch has been renamed to stable-1.11.1. If you still want to compile on android with this branch, use "kivy==stable-1.11.1" as requirement. We do not support previous versions, so if things doesn't work anymore due to changes in python-for-android, please take time to update your application.


    A big thanks to all of the Contributors, especially those github usernames mentioned here:

    0x005c, Abenezer Adane, Akshay Arora, Alexander Taylor, Andre Miras, Andreas Ecker, Armin Sebastian, Asad Rauf, Cheaterman, Chris Hamberg, Christian Sirolli, CristiFati, D4SK, Daniel, ElliotGarbus, Evstifeev Roman, Felix Yan, Filip RadoviΔ‡, Franccisco, Francisco Bustos, Gabriel Pettier, Gabriel Vogel, Galland, Holger Badorreck, Howard Chang, Hudson Barkley, Ibrahim Cetin, Ivan Djuricic, Joao S O Bueno, Jordan Emerson, Joseph Kogut, Julian, Julian-O, Juraj Fiala, Kristian Sloth Lauszus, Lucas Samaruga, Ludwig Kraatz, Mathias LindstrΓΆm, Mathieu Virbel, Matthew Einhorn, Matthias Harrer, Michal SmrΕΎ, Mirko, Mirko Galimberti, Niklas Hasselmeyer, Nikolay Sedelnikov, Nils-Hero Lindemann, Olivier Boesch, Pol Canelles, Rafa, RafaΕ‚ KropidΕ‚owski, Richard Larkin, Sander Land, Sebastian Engel, Shashi Ranjan, Vibhakar Solanki, WutDuk?, Zachary Spector, Zen-CODE, akshauaurora, bajisci, chadys, comet, crigaut, eriksandberg, fluxrider, fruitbat, gottadiveintopython, ia7ck, luphord, matham, noEmbryo, pythonic64, quitegreensky, rafalou38, s0h3ck, salt-die, samize, sanderland, shreyash, snuq, td1803, vicendithas, wezu, yves-surrel, ζ°΄ζˆΈγ†η΄θ±†ι½‹(Nattōsai Mitō)

    Hope we mentioned them all.

    Kivy Team

  • v2.0.0.rc4

    October 15, 2020
  • v2.0.0.rc3

    June 15, 2020
  • v2.0.0.rc2

    April 29, 2020
  • v2.0.0.rc1

    December 29, 2019
  • v1.11.1

    June 20, 2019
  • v1.11.0 Changes

    June 01, 2019

    We are pleased to announce Kivy 1.11.0.

    Kivy is a full featured framework for creating novel and performant user
    πŸš€ interfaces, such as multitouch applications, released under the MIT license.
    🍎 The framework works on Windows, macOS, Linux, Android, iOS and Raspberry Pi.

    • πŸš€ This is the last release to support Python 2.7. The next release will only support Python 3.5+.
    • πŸš€ This is also the first release with Kivy wheels for Linux (3.5+ only, Windows and macOS already have wheels).
    • ⬆️ Windows dependencies are now under the namespace external to Kivy, rather than under Kivy. Whether you're upgrading Kivy, please pin the dependency versions when installing because Kivy binary dependencies are not generally backward compatible [#6312].
    • The namespace is similarly being transitioned to the kivy_garden.flower namespace.

    πŸ‘€ See below for more details.

    Downloads and installation instructions are available on the Kivy website:

    Installation notes

    🏁 Windows

    • [#6324]: We are transitioning the kivy Windows dependencies from the namespace stored under kivy/deps/xxx to the namespace stored under kivy_deps/xxx. Pip is sometimes not able to distinguish between these two formats, so follow the instructions below.
      • If you're not upgrading Kivy, please make sure to pin your dependencies to the versions that was on pypi when your Kivy was released so that you don't get newer incompatible dependencies.
      • If you're upgrading Kivy, manually uninstall all the dependencies because pip will not uninstall them when you're upgrading. Then re-install the dependencies as instructed on the Kivy website.
      • If you're installing the first time , simply follow the instructions on Kivy's website.

    🍎 Linux and macOS

    🍎 The new Linux wheels (#6248) can be installed with just pip install kivy, however, just like on macOS it comes without the Gstreamer dependencies so it has no video and minor audio support. For video/audio support, please install ffpyplayer and set KIVY_VIDEO=ffpyplayer in the environment, or install kivy using an alternative method that provides these dependencies.


    πŸ‘Œ Support

    πŸ”§ Configuration

    [#6192]: Support for environmental variables that control the config in the form of KCFG_SECTION_KEY has been added. E.g. setting KCFG_KIVY_LOG_LEVEL=warning in the environment is the same as calling Config.set("kivy", "log_level", "warning") or setting the log_level in the kivy section of the config to warning. Note that underscores are not allowed in the section names.

    Any key set this will way will take precedence on the loaded config.ini file. Support for this can be disabled by setting the enviornmental variable KIVY_NO_ENV_CONFIG=1 and the environment will not be read for configuration options.

    KV lang

    [#6257]: A new KV-Python integration event that fires when all the KV rules of the widget has been applied, on_kv_post, has been added to the Widget class. This event fires for a widget when all the KV rules it participates in has been applied and ids has been initialized. Binding to this event will let you execute code for your widget without having to schedule the code for the next clock cycle.

    Similarly, a new apply_class_lang_rules method was added to Widget that is called in order to apply the KV rules of that widget class. Inheriting and overwriting that method will give you the oppertunity to execute code before any KV rules are applied.


    We are transitioning the Kivy garden flowers from the namespace stored under kivy/garden/flower or ~/.kivy/garden to the normal python package format kivy_garden.flower namespace stored under kivy_garden/flower. With the new configuration, garden flowers will be pip installable, support cython flowers, and not require the custom garden tool.

    We're hoping to transition all flowers to the new format, however, for now many flowers still require installation by the garden tool.

    πŸ‘€ For users, see For developers, see for how to start a new flower, and for how to migrate existing flowers to the new format.


    • [#6186]: Live resizing has been added for desktop platforms that use the SDL2 window backend.

    πŸ—„ Deprecated

    πŸ—„ [#6313]: Pygame has been deprecated. We urge users who have been using pygame to try SDL2 and
    our other providers. If there are any reasons why Pygame is used instead of SDL2 please let
    us know so we can fix them.

    πŸ—„ Deprecation warnings have also been added to everything that has been deprecated in the past.

    πŸ’₯ Breaking changes

    • [#6095]: Changed the Android version to use App.user_data_dir for the configuration and added a missing dot to the config file name.
    • [#5340]: Removed DropDown.dismiss in on_touch_down so it is only dismissed in on_touch_up.
    • βœ… [#5990, #6169]: We now use pytest to run our tests rather than nose.
    • 🚚 [#5968]: Listview and all its associated modules has finally be removed in favor of RecycleView.

    πŸ”„ Changelog



    • [#5995]: : use Logger.trace to prevent the purge flooding terminal in debug
    • 🚚 [#5988]: Removed cache print statements


    • [#6333]: Properly chceck that KIVY_NO_ENV_CONFIG is not set to zero.


    • [#5919]: Let the Inspector browse into WeakProxy'd widgets


    • [#6322]: PermissionError is not defined in py2.


    • βœ… [#5821]: Increase timeout/sleep to increase test robustness


    • β†ͺ [#6256]: Set cookie header workaround
    • [#6083]: Added the ability to stop (kill) the UrlRequest thread
    • [#5964]: Allow setting url agent for async image and urlrequest


    • [#6223]: Fix handling None values in DictProperty and ListProperty
    • [#6055]: Cache values of AliasProperty where possible
    • [#5960]: Fix Cython properties syntax
    • ⚑️ [#5856]: Update AliasProperty to cache value only if "cache" argument is set to True
    • [#5841]: fix issues with disabled aliasproperty


    • ⚑️ [#6230]: Update


    • πŸ“œ [#6330]: Create
    • [#5797]: fix syntax table for emacs kivy-mode


    • [#6175]: kivy.utils.rgba function bug fix for python 3 (used to crash)


    • πŸ‘· [#6311]: Fix versioning in CI and in kivy.
    • πŸ— [#6295]: Add pep8 stage and name builds on travis
    • πŸ— [#6250]: Disable wheel building on osx by not watching travis cron status.
    • ⚑️ [#6187]: Make travis brew update more reliable
    • [#6148]: Fix some travis errors
    • 🚚 [#5985]: Remove notification webhook from travis
    • βœ… [#5978]: tell travis to use bionic instead of trusty for tests
    • βœ… [#5977]: Fix travis flaky test
    • [#5973]: try using xcode10 for travis, as we cannot reproduce the imageio issue locally
    • [#5934]: Fix repo path in github app config comment
    • [#5845]: fix osx wheels



    • ⚑️ [#6168]: fix broken update to avfoundation
    • πŸ›  [#6156]: Adding fixes to support ios camera
    • πŸ‘ [#6119]: Add support for opencv 4
    • ⚑️ [#6051]: Update; fixes camera for Python 3
    • [#6033]: adding division future import to prevent further fps bugs
    • [#6032]: ensure floating point math when calculating fps
    • [#6027]: Fix 5146
    • [#5940]: Set android camera to autofocus
    • ⚑️ [#5922]: Updated to use reshape(-1) instead of tostring()


    • πŸ›  [#6178]: Clipboard: fixes for nspaste


    • [#6194]: imageio: fix jpg/png saving
    • [#6193]: Image: don't force iteration if we reuse the cache
    • πŸ›  [#6142]: Fixes SDL2 image loading (jpg)
    • [#6122]: Allow saving a core Image into BytesIO
    • 🏁 [#5822]: AsyncImage test fix for Windows py2.7


    • 🏁 [#5951]: Add a warning about support for pyenchant on windows


    • πŸ’… [#5970]: fix styles from latests PR
    • [#5962]: Pango + fontconfig/freetype2 text provider


    • [#6270]: Suggest how to fix unable to create playbin error.
    • [#6246]: Disabled set_volume() in play() function. Fix for #6210
    • [#5959]: Issue 5945


    • [#6283]: Limit live resize to desktop
    • [#6179]: window: fix multiple resize sent, and always sent the GL size, never …
    • 🚚 [#6164]: Removed default orientation hints on Android
    • [#6138]: Fix android's sensor orientation
    • ⚑️ [#6133]: Make top/left of window dispatch events on updates
    • πŸ›  [#6107]: Fixed fullscreen and orientation handling to work with SDL-2.0.9 on Android
    • [#6092]: Fix sdl close inconsistencies. closes #4194


    • πŸš€ [#6343]: Fix docs for the release
    • 🐧 [#6334]: Add docs for linux wheels
    • ⚑️ [#6316]: Update doc of AliasProperty
    • 🚚 [#6296]: Remove duplicate installation instructions.
    • [#6282]: example for adding, background_color to Label
    • πŸ“„ [#6217]: add a few kv examples to widget docs
    • [#6215]: Added pillow as a required python library
    • [#6214]: Grammar tweaks
    • ⚑️ [#6204]: Update OSX Install instructions for MakeSymlinks
    • [#6199]: Replace "it's" with "its" in several places
    • [#6198]: Correct a grammar mistake in two places
    • ⚑️ [#6189]: Update docs referring the change from nose tests to pytest
    • [#6185]: Raises minimum OSX version for current DMG.
    • ⚑️ [#6180]: Updated version no. for SDL building
    • ⚑️ [#6159]: Update installation for RPI with notes for latest Raspian issues
    • [#6129]: typo in doc comments
    • 🚚 [#6124]: Removed doc note about Python 3 on Android being experimental
    • [#6069]: : explain mechanics of size property
    • [#6061]: Fix rpi instructions
    • [#6049]: Lang widgets need to be capitalized
    • πŸ“„ [#6047]: fix misspelling in docs
    • [#6031]: rewriting of installation instructions
    • πŸ“„ [#6023]: Fix docstring example for Vector.rotate
    • [#6016]: : Add doc for transform_point
    • [#5971]: fix doc generation
    • πŸ™‹ [#5953]: FAQ about the "Unable to get Window: abort"
    • πŸ›  [#5943]: Fixed bounce
    • [#5925]: Fix Doc 'Input Management'
    • 🍎 [#5912]: OS X to macOS in README
    • πŸš€ [#5911]: Maintain separate docs for different releases
    • πŸ“„ [#5910]: Versioned docs
    • πŸ“„ [#5908]: : corrected typo in docs
    • πŸ“„ [#5903]: Correct iOS docs, add ref links
    • πŸ“„ [#5900]: : fix typo in window docs
    • [#5896]: add missing versionadded to pagelayout's anim_kwargs
    • [#5895]: add an example for using UrlRequest
    • βœ… [#5887]: : Grammar tweaks to test docs
    • [#5879]: add instructions for Fedora dependencies
    • [#5869]: python basics
    • πŸ›  [#5858]: Fixed PEP8 in Pong examples
    • ⚑️ [#5850]: : Update for Python 3.7
    • [#5848]: Document the data parameter for add_json_panel()
    • πŸš€ [#5846]: Maintain separate docs for different releases
    • 🚚 [#5840]: : Remove py34 substitutions in nightly lists
    • 🏁 [#5839]: Docs: Fix Windows nightly wheel links
    • πŸ“¦ [#5833]: Docs: Add note about not yet available py3.7 packages
    • 🚚 [#5790]: Removed checkbox doc info about colours outside 0-1 range
    • πŸ“š [#5765]: Update documentation for Clock.triggered decorator


    • [#6269]: Add ability to specify dash offsets for Line
    • [#6267]: actually return value of wrapped gil_dbgGetAttribLocation
    • πŸ›  [#6247]: Fixes broken lines vertices
    • [#6232]: Respect the alpha value when setting rgb.
    • [#6112]: declare _filename in svg.pxd
    • πŸ— [#6026]: Support building against mesa video core drivers.
    • ⚑️ [#6003]: : fix invalid offset calculation if attribute is optimized out
    • [#6000]: : Prevent enabling vertex attribute that are not in the shader
    • [#5999]: : Fixes KIVY_GL_DEBUG=1
    • [#5980]: Issue #5956: Fix casts in texture.blit_buffer for ushort and uint types.
    • πŸ‘ [#5969]: Fix version number and supports ARGB/BGRA
    • [#5957]: Fix matrix transformation for orthographic projection
    • [#5952]: Change order of CGL backend to prefer dynamic GL symbol loading
    • πŸ‘ [#5907]: Better #4752 fix
    • πŸ‘ [#6145]: img_tools.pxi: Support pitch alignment in bgr->rgb conversion


    • [#6062]: Activating Open Collective


    • [#6286]: Add caps and numlock to the modifiers
    • [#6281]: SetWindowLongPtrW ctypes prototype bug
    • [#6264]: Fix the ctrl bug in hidinput (Issue #4007)
    • [#6153]: MTDMotionEventProvider, set thread name
    • [#6152]: HIDInputMotionEventProvider, set thread name
    • 🌲 [#6012]: Fix HIDMotionEvent log formatting
    • [#5870]: Provider matching for input postproc calibration
    • [#5855]: add missing mapping for numpaddecimal


    • [#5878]: Make available from within Kv lan…



    • πŸ“¦ [#5982]: Removed kivy.lib.osc from packages
    • 🚚 [#5967]: Since osc is now available through oscpy, remove old crappy oscapi code



    • [#6048]: screen: add definition for OnePlus 3t
    • [#5928]: Add definition for the HUAWEI MediaPad M3 Lite 10 tablet

    πŸ‘‰ Showborder

    • [#6005]: add modules/showborder


    • ⚑️ [#6303]: Update license file year.


    • [#6341]: Bump cython max version.
    • βœ… [#6329]: Add Pyinstaller tests
    • [#6310]: Only delete files in kivy, properly detect git.
    • πŸ›  [#6306]: Fixes for PPA and CI
    • πŸ— [#6305]: Re-enable building osx wheels and app
    • 🏁 [#6275]: Add windows gst support without pkg-config.
    • βœ… [#6268]: Tested with cython 0.29.7
    • ⚑️ [#6182]: Update OSX SDL2/Image/Mixer/TTF to latest version
    • πŸ“¦ [#6165]: Include GStreamer in PyInstaller package
    • πŸ— [#6130]: Removed python version specification from buildozer install
    • [#6128]: Fix reading description #6127
    • [#6054]: Add new "canonical" path for binary Mali driver
    • 🐧 [#6046]: Added Arch Linux (ARM)
    • [#6008]: Allow to override build date with SOURCE_DATE_EPOCH
    • πŸ‘ [#5998]: Change check for Cython to attempt fallback to setuptools on supporte…
    • ⚑️ [#5966]: Update with Cython 0.28.5
    • πŸ‘ [#5866]: Add support for cross-compiling for the raspberry pi
    • [#5834]: Fix missing requirements for Python 3.6 64bit
    • πŸ‘ [#5826]: Drop support for py3.3, which is EOL
    • [#5820]: automate .app/dmg creatio for both python2 and 3 on osx
    • πŸ”§ [#5793]: Improve Makefile debug configuration
    • ⚑️ [#5777]: Update Cython to 0.28.3



    • πŸ”§ [#6043]: Configure Bubble's BackgroundImage's auto scale property


    • [#5975]: fix missing touchModeChange renaming to touch_mode_change
    • [#5958]: Fix 5783 carousel looping
    • ⚑️ [#5837]: carousel - update add_widget with 'canvas' parameter


    • [#6317]: Fix checkbox state issues.
    • [#6287]: Fix CheckBox Python2 compatibility.
    • [#6273]: Fix "Object no attribute active" (Bug introduced via PR #4898)


    • πŸ”¨ [#5961]: ColorPicker refactor to prevent multiples event firing


    • [#6050]: correction of a malfunctioning with ..\ in Windows platforms (function _generate_file_entries)
    • [#6044]: Limited FileChooserProgress text size to widget size


    • [#5781]: Add 'on_pre_open' and 'on_pre_dismiss' events to ModalView


    • [#5868]: anim_kwargs in PageLayout


    • [#5963]: Fix 5913 recycle view steals data


    • [#5983]: Issue #5773: Ensure to dispatch on_transform_with_touch event when the angle change


    - [#6346]: Make switch_to accept already added screens.


    - [#6294]: [ScrollView] Touch is in wrong coordinates

    • [#6252]: Attempt to fix nested scrollviews
    • [#6020]: Add smooth_scroll_end


    • 🚚 [#6291]: Fix bug in TabbedPanel.remove_widget method


    • [#6309]: Fix TextInput shortcuts
    • [#6249]: Fix issues #6226 and #6227 in multiline-enabled TextInput
    • [#6120]: Corrected textinput key input detection to only use on_textinput
    • [#6113]: Made textinput ignore space keydown/keyup for space input


    • [#5844]: fix #5815 uncomplete node unselection in treeview


    • βœ… [#5972]: fix widget tests for python2
    • [#5954]: Scale export to png


    ⚑️ The new stable branch is now derived from the 1.11.0 tag. The oldest stable branch has been renamed to stable-1.10.1. If you still want to compile on android with this branch, use "kivy==stable-1.10.1" as requirement. We do not support previous versions, so if things doesn't work anymore due to changes in python-for-android, please take time to update your application.


    A big thanks to all of the Contributors, especially those github
    πŸ‘‰ usernames mentioned here:

    Akshay Arora, Albert Zeyer, Alexander Taylor, Andre Miras, Andres Vargas, Andrew McLeod, Armin Sebastian, Balazs OROSZI, Ben Saylor, Bernhard M. Wiedemann, Cheaterman, Christian Rishøj, Coen de Groot, CristiFati, Dominik Lang, Evstifeev Roman, Farley Lai, Filip Radović, Gabriel Pettier, Girts Folkmanis, GoBig87, Gunnar Strand, Guy Sheffer, Huyston, Jacob Gustafson, JakubBlaha, James Moore, Jess, Jim Morris, Jonas Schrâder, Justin Marsh (:flaviusb), Kjetil Andre Liknes, Kristian Sloth Lauszus, Lindstrâm Mathias, Luke Biddle, Mathieu Virbel, Mike Tran, Mirko, Mirko Galimberti, Narcisse Assogba, Peter Badida, Peter Dave Hello, Rafał Kaczor, Robert Niederreiter, Sean O'Donnell, Shai Avraham, Silas Gyger, Skaft, Terje Skjaeveland, Tom Ritchford, Vyacheslav Korneev, Zachary Spector, Zen-CODE, clach04, dolang, e-matteson, el3phanten, erm3nda, gottadiveintopython, jfrancoc, maddyaby, matham, opacam, pythonic64, richard, saqib1707, vchslv13, vmaillol

    Hope we mentioned them all.

    Kivy Team

  • v1.11.0.rc2

    May 29, 2019
  • v1.11.0.rc1

    May 16, 2019
  • v1.10.1 Changes

    July 09, 2018

    πŸ›  This was supposedly a bugfix releases, but a few new features have
    managed to get in, aside that, a lot of fixes are included.

    Highlighted changes:

    • It's now possible to query Window information with the SDL provider.
    • πŸ‘ SVG support improvements.
    • Export_to_png now preserves widget's alpha.
    • It's now possible to define a custom comparison for properties, to
      πŸ‘ manage dispatching better.
    • Layouts' add_widget method now accept the canvas argument that
      Widget's does.
    • πŸ›  Fix for infamous SDL window issue on Linux.
    • βͺ disabled property of widget now restores the previous value of
      disabled of children on unset.
    • The tuio implementation now uses the new oscpy library instead of
      the bundled oscAPI module, this solves a lot of issues with python3
      🐎 and massively increase performances. The old OSC package is still
      πŸš€ shipped, but will be removed in future releases.
    • 🐧 On Linux, probesysfs input detection doesn't depend on getconf
      anymore, which makes it more portable.

    πŸš€ This is the last release to officially support python 3.3 and 3.4.

    🏁 For technical reasons, there is no 3.7 wheels for Windows yet, they will
    come soon after our continuous integration infrastructure allows it.

    Many thanks to: Peter Badida, Gabriel Pettier, Richard Larkin, Matthew
    Einhorn, Mathieu Virbel, Armin Sebastian, germn, Akshay Arora, fruitbat,
    Terje Skjaeveland, Alexander Taylor, Joseph Kogut, Zachary Spector,
    DavidCaughell, ismailof, Atis, Boyan Hristov, The Cheaterman, Dominik
    Lang, Rasmus Pedersen, Pablo Mendoza, Jan Kantert, audryste, parabolize,
    0️⃣ Benoit HERVIER, DefaultUser, Emil Milanov, Eugene, GottaDiveIntoPython,
    Volker Gaibler, loa-in-, scoder, skall, sugarlata, Adachinski, Alberto
    Galera, Alexandre Esse, Andre Miras, Arien Tolner, Ashok Kumar P
    (ParokshaX), Charlie Yan, Christophe CHAUVET, David H. Bronke, Dev,
    EndilWayfare, Gleapsite, Kristian Sloth Lauszus, Leon Davison, Manthan
    Sharma, Nafis Abdullah Khan, Piotr Kasprzyk, RafaΕ‚ Kaczor, Ray Gomez,
    Robert Bradshaw, Robert Niederreiter, Shubham Tatvamasi, Sumit Madhwani,
    WillW, William Bernoudy, Yash Jain, brami, hajime, kinkoazc,
    mahomahomaho, onnlv, phunsukwangdu, pythonic64, saband, verderten, and
    πŸš€ ζ°΄ζˆΈγ†η΄θ±†ζ–Ž(Nattōsai Mitō), for their contributions to this release.

    πŸ‘ The Kivy team plans to drop support for python 2.7 before the end of
    πŸš€ 2018, but we hope to make multiple releases before that, as a lot of
    πŸš€ work to streamline our release process was done during this release.

    Full listing of changes by section (with pull request id when there was
    one, or commit id when it was directly done on master).

    ⚑️ #4974: Video: update 'loaded' on new video, unload previous video
    ⚑️ #5053: ffpyplayer video: update frame/position on seek if video paused
    #5109: Add textedit event for text editing by IME
    🏁 #5187: Fix Windows clipboard when pasting a file
    πŸ›  #5206: Touchscreen fixes
    πŸ‘» #5220: Redeclare Svg.reload as throwing an exception.
    #5222: Fix typo in SVG
    #5233: svg improvements
    🏁 #5252: Add support for shaped windows
    ⚑️ #5264: Remove double list copy in Animation._update
    🚚 #5265: Remove dead code for SDL2 windowresized event
    #5281: Make App.on_config_change an event
    πŸ‘ #5298: Add support for saving flipped Textures
    #5305: img_pygame: Fix loading of binary alpha formats
    0️⃣ #5312: ffpyplayer video: disable builtin subtitles by default
    πŸ‘€ #5313: ffpyplayer video: better video seek
    #5324: window_sdl2: Fix memory leak in screenshot
    #5325: text_sdl2: Fix very unlikely memory leak
    πŸ— #5328: Fix build with cython 0.26
    0️⃣ #5355: handle_exception defaults to RAISE, not STOP
    #5362: Raspbian stretch egl library fix
    #5377: Let dpi formatting exceptions in kv propagate out from cython.
    βœ… #5382: Fix Json+DictStore not raising error for non-existing folder + unittest
    #5387: _text_sdl2.pyx: Don't clear pixel memory twice
    #5389: Don t drop SDL_Dropfile event while in pause #5388
    πŸ“œ #5393: Forward kwargs to config parser.
    #5396: Actually display multitouch emulation if sim set to True.
    #5421: Fix host/port handling in UrlRequest
    #5423: Add probesysfs option to include devices that offer core pointer functionality
    ⚠ #5435: Changed Logger.error to Logger.warning on android import
    πŸ”Š #5437: Purge KV lang TRACE logs on demand with environment variable
    ⚑️ #5459: audio_sdl2: Update for mixer v2.0.2 support
    πŸ›  #5461: Monkey patch PIL frombytes & tobytes, fixes #5460
    #5470: Added 'frag_modelview_mat' uniform to address #180
    #5535: Fix FileNotFoundError when sys path doesn't exist
    #5539: Window info
    ⚑️ #5555: python3 package of Pillow needs a updated Import
    πŸ›  #5556: Fixed loading fonts with dot in name, fixed spelling in Russisn examle
    #5576: window_x11: implement get_window_info()
    #5577: window_x11: fix python3 TypeError
    #5579: Fix Ctypes Clipboard error with embeded null character
    #5593: Fix float division by zero
    πŸ‘» #5612: raise exception when trying to add Widget with a parent to Window
    #5621: do not use the clock in dealloc to prevent deadlock
    ⚑️ #5624: Update LICENSE
    πŸ›  #5664: Fixes renderbuffer leaking when creating Fbo
    #5693: PiCamera-based camera provider for Raspberry Pi
    πŸ›  #5703: Fixed format string mistake in Error Message
    #5705: Check for activation before attaching to window. references #5645
    #5716: Replace vendored lib/OSC and lib/oscAPI with oscpy.
    ⚑️ #5778: Update extensions for ImageLoaderPIL

    ⚑️ fc2c382: Update properties.pxd
    5bf0ff0: Properties: Allow custom comparator.
    cf7b55c: change opengl ids to unsigned ints
    87897c4: Add on_textedit event to SDL2 Window (#5597)
    4d9f19d: Expose "absolute" options in HIDInputMotionEventProvider class
    ae3665c: camera: fix all export
    53c2b4d: picamera: fix for python2. Closes #5698
    d3d517d: Re-add gi camera provider.
    d175cf8: Fix Inspector crash if shaped window is disabled
    4deb360: Add sdl2 system cursors (#5308)
    f5161a2: Clean hanging code (#5232)
    b7906e7: Fix py2/py3 iteritems (#5194)
    5961169: add versionadded tag for KIVY_BCM_DISPMANX_LAYER
    πŸ›  ebeb6c4: bug fixes (#5107)
    🚚 b4ab896: input: probesysfs: remove getconf dependency
    58b9685: @triggered: add cancel method
    βœ… f8194bb: Add test units to ClockTestCase
    0️⃣ dafc07c: @triggered: Set default timeout=0
    061891c: Add decorator for Clock.create_trigger()
    1c855eb: on_joy_ball is called with 2 position valuesc
    🐧 1a20a3a: Prioritize XClip for clipboard on Linux

    🚚 #4905: Removed textinput cursor bug #3237
    πŸ‘ #5167: Add support for RST replace
    #5200: Added abs_tol argument to isclose call to ensure no float edge cases
    #5212: fix #5184: ScrollView bar_margin affects also touch position
    πŸ‘ #5218: Add support for footnotes to RST
    #5243: Fix for crash when setting is_focusable property in issue #5242
    #5255: Fix race condition in AsyncImage
    #5260: Disable emacs bindings for Alt-Gr (Ctrl+Alt) key
    #5263: Avoid Animation.cancel_all(Window) that interfers with user animations
    #5268: Fix crash when instantiating ActionView(use_separator=True)
    πŸ‘» #5335: issue #5333 - actionbar throws exception when resized
    #5339: Rewrite ActionGroup from Spinner to Button+DropDown
    #5370: Fix all ScreenManagers sharing the same transition
    #5379: Allow negative values in textinput with filters.
    #5413: Don't pass touch to children when outside the ScrollView.
    #5418: Add text_validate_unfocus option to TextInput
    #5445: Resize treeview collapse. closes #5426
    #5455: Add TextInput cursor blinking control
    #5472: export widget canvas to png including alpha values
    #5484: DragBehavior: Transform window coordinates to parent coordinates befo…
    0️⃣ #5567: EffectWidget: Correct typo 'setdefaults' to 'setdefault'
    #5641: Fix LabelBase.register() to behave as documented
    #5715: Let Layout.add_widget use the canvas argument
    #5748: Add canvas argument to FloatLayout.add_widget
    #5764: Fix #5761 AsyncImage reload() doesn't invalidate Loader Cache
    πŸ›  #5632: Fixes #5632, typo of col instead of row.
    πŸš‘ 9a8603d: hotfix: Stop AccordionItem collapse animation
    a432e0d: Let BoxLayout.add_widget use the canvas argument
    37ccbfa: pass an empty list for "buttons" param to create_touch
    🚚 8da2272: Remove ineffective changes
    2faa6a9: doc: Added default value to Scatter 'do_collide_after_children' property
    faa03f7: Gridlayout min size bounds check (#5278)
    27e3b90: Fix touch passing down when overlapping TextInputs (#5189)
    5e2b718: Fix image size and comment handling in RST (#5197)
    b505b1d: Add on_load to AsyncImage (#5195)
    873427d: Add Slider.sensitivity (#5145)
    πŸ—„ d06ea4d: Deprecate the Widget's id property

    βœ… Tests
    βœ… #5226: Add test for ScrollView bars
    #5282: Add test for _init_rows_cols_sizes
    βœ… #5346: Add unittest for ActionBar
    βœ… #5368: Unittesting features
    βœ… #5372: Fix misleading class name
    βœ… #5374: Fix creating 'results' folder in GraphicUnitTest if not making screenshots
    βœ… #5378: Add test for Inspector module, fix children order for ModalView
    βœ… #5381: Add test for KV event/property + trailing space
    βœ… #5399: Add unittest for Mouse multitouch simulator
    βœ… #5433: Add simple guide for GraphicUnitTest
    βœ… #5446: Add unittest for AsyncImage + remote .zip sequence
    βœ… #5489: Add unittest for TextInput selection overwrite
    βœ… #5607: Add unittest for Vector.segment_intersection floatingpoint error
    6b93d8a: Fix unicode error
    βœ… c9ecb40: Add test for RST replace

    πŸ“„ Docs
    🏁 #5170: Fix typo in installation/windows.rst
    #5177: Fix comments for paste in
    🚚 #5221: Docs: Link methods, remove empty title
    #5227: Add gstreamer to ubuntu install
    #5240: Settings in example are faulty
    🐧 #5270: doc: add missing escape characters into Linux installation instructions
    πŸ“„ #5307: Docs: Explain handling Popup in KV
    πŸ“„ #5330: Docs: Rewrite system cursor
    #5424: Add notice about not being available for download
    ⚑️ #5439: OSX Install Instruction Update - Cython explicit version
    πŸ“„ #5458: Add docs for setting Window.shape_mode
    #5518: less renaming
    #5519: oxford
    πŸ“š #5520: Documentation consistency
    #5521: redundant 'as'
    #5522: widget's
    #5523: terser
    #5524: tighten
    πŸ“„ #5559: Docs: Add note about MemoryError for kivy.deps.gstreamer
    πŸ“š #5600: Fixed one letter documentation typo (in example)
    πŸ“„ #5626: Fix typo in docs.
    ⚠ #5695: Docs: Add warning about using Texture before application start
    🚚 12487a2: Remove tree; doesn't look good with website CSS
    🏁 bb07d95: Clarify Windows alternate location installation
    πŸ“œ d6d8a24: Doc: Fix parsed literal block in installation docs
    πŸ“„ 4d4ee41: Doc: added 18.04 to dev install docs
    πŸ›  5f6c66e: Doc: Fixed typo in
    285162b: Kivy is available on Macports directly
    πŸ“„ 94d623f: Doc: changed disabled state docs for widget to more standard form
    πŸ“„ e029bed: Doc: tweak to uix/ docs
    86b6e19: Doc: tweaks to cython version installation instructions
    🚚 ef745c2: Doc: remove specifying cython version, list working cython vs. kivy versions. references #5674
    0ccd8cc: Doc: tweaks to modules/
    90448cb: Doc: revisions to modules/
    πŸ— 73f9935: Doc: added explanation for Builder.unload filename parameter
    67fb972: Doc: refinements to
    πŸ“„ 96252c9: Doc: refinements to actionbar docs
    ⚑️ 917a1b4: Update installation-osx.rst
    a3251fd: Doc: clarified angle offering for python 3.5+
    πŸ“„ 0fbac3b: Doc: tweaks to actionbar docs
    πŸ“„ 0ec9530: Doc: additions to ActionBar docs
    πŸ“š 1aa4315: Fix stencil's documentation
    πŸ“„ 51d1725: Doc: corrected typo in recycleview layout docs
    6af68c4: Doc: Added link to toggle button image
    πŸ“„ e7d1713: Doc: Added togglebutton image to docs
    0ea6e95: Doc: Added 16.04 dependencies listing
    ⚑️ 0cc3a98: Update debian installation doc
    🚚 22aa73f: Docs: Remove "-dev" version in versionchanged
    πŸ“„ c07f971: Docs: Fetch cython version from (#5302)
    2ad58a9: Doc: cleanup, added doc strign for RecycleLayout to make linkable
    πŸ“„ 493a4a9: Doc: tweaks to the recycleview docs
    114c1a0: Doc: Grammer tweaks to /doc/sources/guide/graphics.rst and kivy/core/window/
    3d24362: Doc: petty grammar tweaks to kicy/core/window/
    7cdf9b3: Doc: corrected the kkivy/core/window/keyboard_anim_args docs to more accurately reflect defaults
    🚚 c5eb879: Docs: removed the 'None' default value as it is actualy ''
    c090c63: Doc: corrected path for AliasProperty in RecycleViewBehavior
    24647bd: Doc: added heirarchical namespacing to treeview items
    πŸ“„ 6f0639a: Docs: Fix note indentation after code block
    7daea78: Doc: added description of rotation property value for kivy.uix.scatter
    ac0d28f: Reorder osx packaging methods
    19d9d9d: Doc: tweaks to grammar for RoundedRectangle graphics instruction
    cdee22e: Doc: tweaks to grammar for RoundedRectangle graphics instruction
    c6b2fe3: Fix nightly links.
    πŸ“š 242beb3: Update android virtual machine documentation
    πŸ—„ fa1e0b2: Deprecate the vm.
    🚚 bd392ab: Remove vm link.
    a6ee760: Add info about kivy_examples.
    97f3096: Doc: remove leftover USE_OSX_FRAMEWORKS env var
    b4ce256: doc: setting KIVY_OSX_FRAMEWORKS=0 during installation is not needed anymore
    🍎 e5126af: doc: use latest Cython version for macOS and do not force reinstallation
    🏁 bd98d81: docs: remove warning about unavailable wheels on Windows
    πŸ“„ f1b412d: Docs: Fix examples PPA command; Cython for v1.10.0
    πŸ“„ 333f158: Doc: Fix Mesh docstring (#5806)

    ⚑️ #5026: Update Twisted Framework Example to Py3
    #5173: Fix shapecollisions example for py2
    #5486: Rotate monkey head smoothly
    ⚑️ #5487: Update codeinput.kv
    ⚑️ #5564: Update basic.rst
    πŸ“„ #5611: typo fix in docs example
    e658c65: Fix animation transition around the unit circle in Android compass example
    ⚑️ 4de0599: Update joystick example

    #4984: Allow changing kivy dispmanx layer in the Raspberry Pi
    #5285: fix install_twisted_reactor for python3 (_threadedselect is now inclu…
    πŸ›  #5350: tools/kviewer: Fixed it working on python3
    #5525: Switch to manual KV trace purging
    #5763: Add kivy/core/window/window_info.c to .gitignore
    ⚑️ 98e9442: Updated copyright year in doc index
    πŸ›  b39c84b: pep8 fixes
    8143c6b: Add -- to separate Atlas module options
    πŸ“š d054d56: Add -- to --use-path option in documentation
    38ed32f: Create
    ⚑️ fa01246: long overdue update to the kv syntax highlight for vim

    0c63c69 Fix licensing issues (#5786)

    #5366: Fix 'git' not found in
    #5392: Fix under python2
    πŸ‘ #5466: Introduce no support for Cython 0.27 - 0.27.2
    #5584: Added Python 3.6 to categories
    πŸ“¦ #5627: Add to packagedata
    ⚑️ #5747: Updated minimum cython version
    πŸ“¦ 10530bb: Added missing comma in package_data list
    f66f340: setup: fix error about gl_mock that doesn't exist anymore
    d462a70: setup: fix cython rebuilding all graphics even if it has been already done. Closes #4849
    aaca07b: Fix missing in (#5230)

    #5229: Appveyor: switch DO_WHEELS to True
    πŸ›  #5406: Fixes for Cython 0.27
    πŸ— d5e0ccc: comment out failing mingw appveyor builds
    πŸ— 71cbd4c: fixes for osx builders in travis
    βœ… 55200ee: workaround to make inspector tests pass without blocking window
    002e46f: travis.yml: add semi-colon
    f169386: travis.yml: add sudo to easy_install
    9f71b38: travis.yml: try easy_install pip to fix missing command error
    bae09d9: travis.yml: Make TRAVIS_OS_NAME detection consistent
    βœ… 94db03e: Prevented warnings for repeated loading for travis Inspector test cases
    πŸ— 61e05c1: Fix travis build error in, line 382
    πŸ— cd592c1: Fixed Pep8 violations (fix travis build 3676 moans)
    🚚 a736f28: Remove fixed version of cython from .travis.yml
    🚚 87ae214: Removed outdated line from .travis.yml
    πŸ— 30fd00f: Restore cython=-=0.26.1 for appveyor builds
    ⬇️ 5c4b8ed: Downgrade Cython to 0.26.1 for builds
    484b2f7: Upload wheels directly to server (#5175)
    e2c3094: travis.yml add back missing ";"
    πŸ— 2fc9cf5: add back pip installation in osx travis build
    7f5d9a4: use travis_retry for coveralls, in case it fails randomly
    πŸ— e12d216: fix again osx travis build (pip command not found)
    ⚑️ 3d41f1d: Update .travis.yml
    642e029: Add docutils to Travis deps
    🐧 ce6d54e: Add wheel generation support for osx and Linux.
    36e029a: Upload sdist and examples.
    πŸ— 2e400aa: Quote filenames [build wheel]
    πŸ— 04bfcff: Give better wheel upload path [build wheel win]
    πŸ— 8167ff4: Fix wheel building on all platforms (#5812)