Kivy Garden by kivy-garden

# Welcome to Kivy Garden

Note

This Page is under construction.

This is an organization for developers of Kivy widgets, add-ons and related software.

Join us by opening a new issue.

Memberships are granted for users who have contributed to existing garden flowers in the past year or have submitted their own flower in the application. Please note that memberships expire after a year of inactivity.

## General Usage Guidelines

1. Make sure you have `requests` installed:

       sudo pip install requests

2. Install `kivy-garden` if you don't have it:

       pip install kivy-garden

   Make sure you have the folder that contains `garden` file on your `PATH` (or `cd` to the folder).

       $ garden list

   To list all the installed garden packages

       $ garden search

   To search garden packages on GitHub

       $ garden install package_name

   To install a garden package

       $ garden uninstall package_name

   To uninstall a garden package

3. To use a installed garden package:

       from kivy.garden import package_name

4. By default the installation is done in `~/.kivy/garden/garden.widgetname` so that all kivy apps can use the widget once installed.

   To include the package in your mobile distribution, you should install the garden package with `--app` command line argument, this way the package is downloaded and installed in your app directory and thus included in your apk.

       cd my_app_dir
       /path/to/kivy_instalation/kivy/tools/garden install --app graph

   This should install the Graph Widget in `my_app_dir/libs/garden/garden.widgetname`

## Development Guidelines

1. Code added to the garden must be licensed under MIT (same as Kivy) and a LICENSE file must be added to every repository.
2. Keep the Widget and add-on simple. Do one task and do it well.

3. Your repository will be named "garden.widgetname". This will allow us to import your widget by using the following import statement:

       from kivy.garden.widgetname import WidgetName

4. Name your widget correctly. Don't put "Widget" in the widget name as this is obvious. (SliderWidget, ProgressBarWidget are wrong, keep it simple.)

5. Create adequate documentation that explains the functionality of your widget.

6. Follow the PEP8 guidelines for coding standards.

7. Follow the kivy guidelines for contributing. To install the pep8 checker into your git directory do

       cp path-to-kivy/kivy/tools/pep8checker/pre-commit.githook path-to-your-source/.git/hooks/pre-commit
       chmod +x path-to-garden-source/.git/hooks/pre-commit

   Then assuming you have kivy in your path, our style guide check will run whenever you do a commit, and if there are violations in the parts that you changed, your commit will be aborted. Fix & retry.

8. Use the `Monitor` module to ensure that your widget can maintain a FPS rate above 60, ensuring smooth interaction with the user.

9. Follow the performance guidelines for Python, like ensuring minimum lookups, avoiding lookups in loops...

10. As a way of self-organizing widgets, add a screenshot named "`screenshot.png`" to the root of your repo showcasing the widget.

11. Use tags instead of a directory structure to categorize your widgets in the documentation.

Note: you must have a GitHub account to open a ticket. You can create one for free here.

## Other issues

For all other issues, please open a ticket in the appropriate repository.

## Disabling notification spam

By default you are subscribed to all new Garden github repository notifications. Unless you disable this yourself, your inbox will soon contain only Github spam.

Go to https://github.com/watching
Select what to watch or uncheck Automatically watch. But attention: latter will disable watch for all organizations.

## Transferring repository

How to move your repository to Kivy Garden shared ownership?

About transferring the ownership of repositories. See Github instructions regarding transfers

Personally contact any of the Kivy Garden administrators. Make him/her the owner of the repository which needs to be transferred. If the repository is already part of Github organization then create a new team and make the garden admin person the sole member of this team. Then assign the ownership permission of the repository to the new team. Now the garden administrator can go to the repository settings and press Transfer Ownership button