Start small. The PRs most likely to be merged are the ones that make small, easily reviewed changes with clear, and specific intentions. See below for more guidelines on pull requests.
Stick to issues that are on the roadmap. Issues that are not included in this milestone may be not yet triaged, unplanned, or not actionable for one reason or another.
If you start working on an issue, leave a comment to let others know. It is also a good idea to outline your approach to the problem in order to get feedback.
For development, you should always be using the staging server. Registrations on the staging server are completely partitioned from the production server that the mobile apps use. A production app from the Play store or iTunes is hard-coded to connect to the production server. If you wish to pair your phone and computer, or test sending between the browser and mobile, you must build a mobile client that targets the staging server (see below, under Linking).
TEXTSECURE_URL
to point
at textsecure-service-staging.whispersystems.org
. This task is 1% search and
replace, 99% setting up your build environment. Instructions are available for both
the Android
and iOS projects.NOTE: This is only for developers and will not be presented to users.
extension.install("standalone")
.You should now be able to use the extension.
Don't have any friends to help you test the extension? Make a couple of Chrome profiles. Each one will need its own Google account and Google Voice number. Each one will have to repeat the setup process documented above, including re-accepting the staging server cert under each profile. This is a tedious process, but once you are done you will be able to send messages back and forth between different profiles, allowing you to observe both endpoints of a conversation.
So you wanna make a pull request? Please observe the following guidelines.
_locales/en/messages.json
. Other locales are
generated automatically based on that file and then periodically uploaded to
Transifex for translation.Note: Unless you need to make changes to dependencies, you can skip this section and just use the checked in versions.
Dependencies are managed by bower and built with
grunt. To change them, you'll need to install node and
npm, then run npm install
to install bower, grunt, and related plugins.
Add the package name and version to bower.json under 'dependencies' or bower
install package-name --save
Next update the "preen" config in bower.json with the list of files we will actually use from the new package, e.g.:
"preen": {
"package-name": [
"path/to/main.js",
"directory/**/*.js"
],
...
}
If you'd like to add the new dependency to js/components.js to be included on
all html pages, simply append the package name to the concat.app list in
bower.json
. Take care to insert it in the order you would like it
concatenated.
Now, run grunt
to delete unused package files and build js/components.js
.
Finally, stage and commit changes to bower.json, js/components.js
,
and components/
. The latter should be limited to files we actually use.
Please write tests! Our testing framework is mocha and our assertion library is chai.
To run tests, use grunt dev
or grunt connect watch
to spin up a local
webserver, then point your browser to localhost:9999/test/index.html and
localhost:9999/libtextsecure/test/index.html