1# Contributing 2 3This is Open Source Software. We realized that we didn't pass the Patch Test 4 5## What to contribute 6 7Here's a few places to start: 8 9- Report any bugs you find. 10- No, seriously! Most of the bugs don't even get reported, or the reporter only writes "Doesn't work for me" and then vanishes. 11- ["help wanted" issues](https://github.com/majn/telegram-purple/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+-label%3A%22in-pipeline%22), especially automated testing 12- ["secret chat" issues](https://github.com/majn/telegram-purple/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3A%22secret+chats%22+-label%3A%22in-pipeline%22+) 13- Portability (especially endianness) of tgl (external project) 14- [Issues of tgl](https://github.com/vysheng/tgl/issues) -- lots and lots of false or obsolete reports 15- Slim down the size of the generated files in `tgl/auto`, as this currently dominates the build time. Yuk! 16- Make sure that the libpurple-devs don't break libpurple any further. 17 18## How to contribute 19 20Write [an issue](https://github.com/majn/telegram-purple/issues/new), shoot us a mail (scrape the address from the git history), or contact us in dev chat (changing URL, see README for that). 21 22## How to release 23 24#### Translations 25 26Ideally, do a string freeze beforehand; however, this has proven to be too impractical for this project. 27 28Go to the [translation site](https://www.transifex.com/telegram-purple-developers/telegram-purple/content/), 29and close the current resource for new translations. Rename and re-prioritize it appropriately. 30Download the zip-file, extract it, remove the annoying prefix. Move all files to `po/`, except `en.po`. 31 32While waiting for the download link, create the new resource with the new potfile, 33then re-upload all the old translations there. 34 35Run `make po/*.po` to fix the filenames. Do not delete any files. Rationale see `Makefile`. 36 37Adjust `po/LINGUAS*` as you see fit. 38 39Also import the translations for `AppStream/po/`, and run `make -C Appstream translate`. 40 41#### Increment version 42 43Attempt to use semver. 44 45Adjust `configure.ac`, in macro `AC_INIT`. Remember to run `autoreconf`. 46 47Adjust `telegram-adium/telegram-adium/telegram-adium-Info.plist`. 48 49Adjust `rpm/purple-telegram.spec`, in version at the top and "changelog" below. 50 51Don't update debian: It's abandoned anyway. 52 53AppStream: Nothing to do. 54 55Update `CHANGELOG.md`. 56 57#### Run some tests 58 59First locally, then on Travis. 60Also, install it locally. Don't forget to `./configure` first. 61 62#### Prepare release files 63 64Fetch/pull recent changes. 65 66Merge into `master`. 67 68Make a tag: `git tag v1.something` 69Remember to push the tag to github. 70 71Make a dist-bundle: `make dist` 72Keep the resulting `telegram-purple_1.something.orig.tar.gz` safe. 73 74Make the windows installer: `./mkwindows.sh` 75Keep the resulting `telegram-purple-1.something+gcafebabe5.exe` safe. 76 77#### Create release on github 78 79See the [release page](https://github.com/majn/telegram-purple/releases/). 80Feel free to be inspired by the previous release-messages. 81 82Remember to upload the origtar *and* Windows installer. 83 84#### Close associated issues 85 86All relevant issues are marked with `in-pipeline`, but sadly too many are marked this way. 87 88#### Organize branches 89 90Create a new branch `dev-1.nextsomething`, delete the old branch. 91 92#### Create new translation goal on transifex 93 94Be pessimistic in the slug-name. 95 96Run `./autogen.sh` to make all string changes available. 97 98Also, create an announcement that yes there is a new resource, 99but this resource may change significantly until the next string freeze. 100