Welcome to mirror list, hosted at ThFree Co, Russian Federation.

HACKING.md - github.com/majn/telegram-purple.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 5dab415dc4f9a7233d3dec04d1ca7e6187776383 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# Contributing

This is Open Source Software. We realized that we didn't pass the Patch Test

## What to contribute

Here's a few places to start:

- Report any bugs you find.
- No, seriously! Most of the bugs don't even get reported, or the reporter only writes "Doesn't work for me" and then vanishes.
- ["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
- ["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+)
- Portability (especially endianness) of tgl (external project)
- [Issues of tgl](https://github.com/vysheng/tgl/issues) -- lots and lots of false or obsolete reports
- Slim down the size of the generated files in `tgl/auto`, as this currently dominates the build time. Yuk!
- Make sure that the libpurple-devs don't break libpurple any further.

## How to contribute

Write [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).

## How to release

#### Translations

Ideally, do a string freeze beforehand; however, this has proven to be too impractical for this project.

Go to the [translation site](https://www.transifex.com/telegram-purple-developers/telegram-purple/content/),
and close the current resource for new translations.  Rename and re-prioritize it appropriately.
Download the zip-file, extract it, remove the annoying prefix.  Move all files to `po/`, except `en.po`.

While waiting for the download link, create the new resource with the new potfile,
then re-upload all the old translations there.

Run `make po/*.po` to fix the filenames.  Do not delete any files.  Rationale see `Makefile`.

Adjust `po/LINGUAS*` as you see fit.

Also import the translations for `AppStream/po/`, and run `make -C AppStream translate`.

#### Increment version

Attempt to use semver.

Adjust `configure.ac`, in macro `AC_INIT`.  Remember to run `autoreconf`.

Adjust `telegram-adium/telegram-adium/telegram-adium-Info.plist`.

Adjust `rpm/purple-telegram.spec`, in version at the top and "changelog" below.

Godspeed to the Debian maintainers. If you're reading this, check out [tdlip-purple](https://github.com/ars3niy/tdlib-purple/)!

AppStream: Nothing to do.

Update `CHANGELOG.md`.

#### Run some tests

First locally (`make check`), then on Travis.
Also, install it locally.  Don't forget to `./configure` first.

#### Prepare release files

Fetch/pull recent changes.

Merge into `master`.

Make a tag: `git tag v1.something`
Remember to push the tag to github.

Make a dist-bundle: `make dist`
Keep the resulting `telegram-purple_1.something.orig.tar.gz` safe.

Make the windows installer: `USE_PNG=n ./mkwindows.sh && USE_PNG=n USE_WEBP=n ./mkwindows.sh`
Keep the resulting `telegram-purple-1.something+gcafebabe5.exe` safe.

#### Create release on github

See the [release page](https://github.com/majn/telegram-purple/releases/).
Feel free to be inspired by the previous release-messages.

Remember to upload the origtar *and* Windows installer.

#### Close associated issues

All relevant issues are marked with `in-pipeline`, but sadly too many are marked this way.

#### Organize branches

Create a new branch `dev-1.nextsomething`, delete the old branch.

#### Create new translation goal on transifex

Be pessimistic in the slug-name.

Run `./autogen.sh` to make all string changes available.

Also, create an announcement that yes there is a new resource,
but this resource may change significantly until the next string freeze.