Various fixes around Companion trainer mode (#7116)
[opentx.git] / launchpad / readme.md
blobdde4d1b931661a4ca4c4daabbdfb51b0f509d727
1 # Launchpad instructions
3 ## General description
5 This directory contains files and scripts that help to prepare the files needed by the Launchpad.net server to build the Debian packages of OpentX Companion for Ubuntu.
7 Each supported release of Ubuntu has its own sub-directory, but most of the files reside in the common directory. When preparing a source for certain Ubuntu release always use its the directory name.
9 There are several step to release a new version of Companion on Launchpad:
10  * update the Debian changelog
11  * package the source
12  * upload the source to Launchpad
14 The steps above should be repeated for every Ubuntu release. The example below will work with Ubuntu `trusty`
16 ## Prerequisites
18  * you must have launchpad.net account and be a member of the team
19  * create and configure your GPG signing key
21 ## Prepare your GPG key
23 Create GPG key using **name** and **email* that will later appear in the changelog. This will be the key
24 that will be used to sign the package before uploading it to Launchpad.
25 ```
26 gpg --gen-key
27 ```
29 Upload your GPG key (public part) to the Ubuntu key-server. First get the KEY ID (8 characters) of your key:
30 ```
31 gpg --list-keys
32 ```
34 Then upload it (replace <KEY ID> with your key ID):
35 ```
36 gpg --send-keys --keyserver keyserver.ubuntu.com <KEY ID>
37 ```
39 ## Create a Launchpad account
40  * Go to https://launchpad.net/ and sign-in or register.
41  * Associate your GPG key with your launchpad account. You will need your keys fingerprint (<fingerprint looks like E448 37D6 EF6E F13C 30C0  415C E7A0 818F 4864 9459>), get it with:
42 ```
43 gpg --fingerprint
44 ```
45  * Join OpenTX team on launchpad (one of admins will add you to the team).
48 ## Step 1: update the Debian changelog
50 You can edit changelog manually, but it is simpler to use a script that creates a generic entry in the changelog. You can always edit it later if needed.
52 The script is `update-changelog.sh` and it takes 4 parameters:
53  * email address in the form of `name <email@address>`, since it contains a space it must be enclosed in quotation marks. The email addres must be the same as the one in your GPG key!
54  * Ubuntu release (directory name)
55  * OpenTX version
56  * OpenTX sub-version (Nxxx for nightly builds)
58 Example:
59 ```
60 cd opentx/launchpad
61 ./update-changelog.sh "projectkk2glider <projectkk2glider@gmail.com>" trusty 2.2.0 N363
62 ```
64 If there is an error and you need to build another version of the same OpenTX release, then just add `.n` to the sub-version like so:
65 ```
66 N363.1
67 N363.2
68 etc
69 ```
71 The script will append new section to the existing file in this case `trusty/changelog`. Now you have a chance to edit the file manually if needed.
73 ## Step 2: prepare files for upload (package the source)
75 First make sure you don't have any files that you don't want included in the opentx directory. Then use the script `prepare.sh` with the name of release as the first parameter:
77 ```
78 cd opentx/launchpad
79 ./prepare.sh trusty
80 ```
82 The result of this script are three files which are placed outside the OpenTX source tree at the same level as `opentx` directory:
83 ```
84 ls -1 ../../opentx-companion22_2.2.0~N363*
85 ../../opentx-companion22_2.2.0~N363~trusty.dsc
86 ../../opentx-companion22_2.2.0~N363~trusty_source.build
87 ../../opentx-companion22_2.2.0~N363~trusty_source.changes
88 ../../opentx-companion22_2.2.0~N363~trusty.tar.gz
89 ```
91 You should now make sure that the just build source archive `opentx-companion22_2.2.0~N363~trusty.tar.gz` does not contain any files or directories that you don;t want to share with the world, because this is one of the files that will be uploaded to the Launchpad server. Currently clean OpenTX tree produces this file with approximate size of 16.8MB.
93 ## Upload the source to the Launchpad
95 Last step it to upload the new release to the Launchpad server and wait for it to be built. Use `dput` command with two arguments:
96  * name of the PPA `ppa:opentx-test/ppa` (your public key must be associated with that PPA)
97  * name of the release file `<dsfsfggg>.changes`
99 Upload to nightly PPA:
101 dput ppa:opentx-test/ppa ../../opentx-companion22_2.2.0~N363~trusty_source.changes
104 Upload to release PPA:
106 dput ppa:opentx-test/rel ../../opentx-companion22_2.2.0~N363~trusty_source.changes