1# Contributing to Littlev Graphics Library
2
3**Do you have some free time to spend with programming?
4Are you working on an Embedded GUI project with LittlevGL?
5See how can you help to improve the graphics library!**
6
7There are many ways to join the community. If you have some time to work with us I'm sure you will find something that fits you! You can:
8- help others in the [Forum](https://forum.littlevgl.com/)
9- improve and/or translate the documentation
10- write a blog post about your experiences
11- report and/or fix bugs
12- suggest and/or implement new features
13
14But first, start with the most Frequently Asked Questions.
15
16# FAQ about contributing
17
18## Where can I write my question and remarks?
19
20We use the [Forum](https://forum.littlevgl.com/) to ask and answer questions and [GitHub's issue tracker](https://github.com/littlevgl/lvgl/issues) for development-related discussion.
21
22But there are some simple rules:
23- Be kind and friendly.
24- Speak about one thing in one issue/topic.
25- Give feedback and close the issue or mark the topic as solved if your question is answered.
26- Tell what you experience or expect. _"The button is not working"_ is not enough info to get help.
27- If possible send an absolute minimal code example in order to reproduce the issue
28- Use [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) to format your post.
29
30## How can I send fixes and improvements?
31
32Merging new code happens via Pull Requests. If you are still not familiar with the Pull Requests (PR for short) here is a quick guide:
331. **Fork** the [lvgl repository](https://github.com/littlevgl/lvgl). To do this click the "Fork" button in the top right corner. It will "copy" the `lvgl` repository to your GitHub account (`https://github.com/your_name?tab=repositories`)
342. **Clone**  the forked repository and add your changes
353. **Create a PR** on GitHub from the page of your `lvgl` repository (`https://github.com/your_name/lvgl`) by hitting the "New pull request" button
364. **Set the base branch**. It means where you want to merge your update. Fixes go to `master`, new features to the actual `dev-x.y` branch.
375. **Describe** what is in the update. An example code is welcome if applicable.
38
39Some advice:
40- If you are not sure about your fix or feature it's better to open an issue first and discuss the details there.
41- Maybe your fix or update won't be perfect at first. Don't be afraid, just improve it and push the new commits. The PR will be updated accordingly.
42- If your update needs some extra work it's okay to say: _"I'm busy now and I will improve it soon"_ or _"Sorry, I don't have time to improve it, I hope it helps in this form too"_.
43So it's better to say don't have time to continue than saying nothing.
44- Please read and follow this [guide about the coding style](https://github.com/littlevgl/lvgl/blob/master/docs/CODING_STYLE.md)
45
46
47## Where is the documentation?
48
49You can read the documentation here: <https://docs.littlevgl.com/>
50You can edit the documentation here: <https://github.com/littlevgl/doc>
51
52## Where is the blog?
53
54You can read the blog here: <https://blog.littlevgl.com/>
55You can edit the blog here: <https://github.com/littlevgl/blog>
56
57# So how and where can you contribute?
58
59## Help others in the Forum
60
61It's a great way to contribute to the library if you already use it.
62Just go to [https://forum.littlevgl.com/](https://forum.littlevgl.com/) a register (Google and GitHub login also works).
63Log in, read the titles and if you are already familiar with a topic, don't be shy, and write your suggestion.
64
65## Improving and/or translating the documentation
66
67If you would like to contribute to LittlevGL the documentation is the best place to start.
68
69### Fix typos, add missing parts
70
71If you find a typo, an obscure sentence or something which is not explained well enough in the [English documentation](https://docs.littlevgl.com/en/html/index.html)
72click the *"Edit on GitHub"* button in the top right corner and fix the issue by sending a Pull Request.
73
74### Translate the documentation
75
76If you have time and interest you can translate the documentation to your native language or any language you speak.
77You can join others to work on an already existing language or you can start a new one.
78
79To translate the documentation we use [Zanata](https://zanata.org) which is an online translation platform.
80You will find the LittlevGL project here: [LittlevGL on Zanata](https://translate.zanata.org/iteration/view/littlevgl-docs/v6.0-doc1?dswid=3430)
81
82To get started you need to:
83- register at [Zanata](https://zanata.org) which is an online translation platform.
84- comment to [this post](https://forum.littlevgl.com/t/translate-the-documentation/238?u=kisvegabor)
85- tell your username at *Zanata* and your selected language(s) to get permission the edit the translations
86
87Note that a translation will be added to the documentation only if at least the [Porting section](https://docs.littlevgl.com/en/html/porting/index.html) is translated.
88
89
90## Writing a blog post about your experiences
91
92Have you ported LittlevGL to a new platform? Have you created a fancy GUI? Do you know a great trick?
93You can share your knowledge on LittlevGL's blog! It's super easy to add your own post:
94- Fork and clone the [blog repository](https://github.com/littlevgl/blog)
95- Add your post in Markdown to the `_posts` folder.
96- Store the images and other resources in a dedicated folder in `assets`
97- Create a Pull Request
98
99The blog uses [Jekyll](https://jekyllrb.com/) to convert the `.md` files to a webpage. You can easily [run Jekyll offline](https://jekyllrb.com/docs/) to check your post before creating the Pull request
100
101## Reporting and/or fixing bugs
102For simple bugfixes (typos, missing error handling, fixing a warning) is fine to send a Pull request directly. However, for more complex bugs it's better to open an issue first. In the issue, you should describe how to reproduce the bug and even add the minimal code snippet.
103
104## Suggesting and/or implementing new features
105If you have a good idea don't hesitate to share with us. It's even better if you have time to deal with its implementation. Don't be afraid if you still don't know LittlevGL well enough. We will help you to get started.
106
107During the implementation don't forget the [Code style guide](https://github.com/littlevgl/lvgl/blob/master/docs/CODING_STYLE.md).
108
109# Summary
110
111I hope you have taken a liking to contribute to LittlevGL. A helpful and friendly community is waiting for you! :)
112