mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-11 18:29:05 +01:00
Page:
development workflow
Pages
A Quick Overview of the Protocol Stack
Adding support for new architectures in Tor
Android Accessibility
Android Power Management
BDF
BSP
BTP
Blog Client
Blog Sharing Client
Client API Notes
Connect at a distance
Create Account
Design options for multi block messages
Development schedule for private message deletion
FAQ
Field Guide
Forum Client
Forum Sharing Client
Forums
Fundamental Problems
How Briar Connects to Contacts
Introduction Client
Mailbox Architecture
Mailbox Properties Client
Mailbox Scenarios
Mailbox cannot reach Briar
Messaging Client
Navigate away from sharing screen
Private Group Client
Private Group Sharing Client
Profile pictures
Quick Start Guide
RPC Notes
Release Test Plan
Roadmap
Self destructing messages tests
Software bill of materials for private message deletion
Sponsor 1
Testing
Translation Workflow
Transport Key Agreement Client
Transport Properties Client
add already added contact at distance
add contact after time out
add contact at distance one contact offline
add contact on biar received via hotspot
add contact whilst pending contacts
add nearby contact bluetooth off
add nearby contact that was already added at distance
add nearby contact then reconnect via BT
add nearby contact twice
app in background while do not kill me fragment displayed
application lifecycle
autostart mailbox on reboot when mailbox set up not completed yet
autostart mailbox on reboot when mailbox set up
blogs
bluetooth setup screen
briar connections opens from device view app settings
briar in background during sharing
briar mailbox test coverage
briar mailbox tests executed
cancel setup
changelog
code style
comparative test several devices location and wifi settings
connect multiple devices to hotspot
connect with nearby contact
create account on shared briar app
delete and recreate contact at distance
delete recreate nearby contact
deny briar access to location many times
deny briar access to location
development 101
development workflow
device offline warning
devices tested
disappearing messages sent to direct contacts
download app scan QR code
download type address manually
error handling mailbox uploads
feature workflow
first install do not kill me fragment
fresh install add contact distance reconnect via BT
fresh install add nearby contact BT reconnect BT
home
import somebody elses messages
install first time
interrupt scanning qr code
interrupt unlinking from briar side
introductions multiple contacts disapp msgs on off
invite multiple contacts to private group
location off during contact creation
mailbox in briar settings
mailbox is running
mailbox no internet
mailbox not reachable
mailbox notifications
mailbox onboarding screens scan QR Code
mailbox onboarding screens share link
mailbox strings translations
mailbox success screen
mailbox system clock in the future
mailbox system clock in the past
mailbox test coverage
mailbox wiping complete screen
main activity reset everything to initial state
make intro dis msgs on autodecline
make introductions disappearing messages on intro accepted
make introductions disappearing messages on intro declined by both
make introductions disappearing messages on intro declined by one
make introductions disappearing messages on
make introductions disappearing messages onoff intro accepted
make introductions disappearing messages onoff intro decl autodecl by both
manually change battery optimisation setting to ON
manually change battery optimisation setting to off
message upload both x and y have mailboxes
messages as expected no mailbox
messages removable media mailbox
messages uploaded Y knows x has mb
messages uploaded to mailbox correctly
mialbox not reachable
nearby contact
no mailbox autostart on reboot when QRcode scan canceled
no mailbox autostart on reboot when mailbox stopped by user
notes on testing
notification mailbox unreachable disappears after tapping
notification mailbox unreachable disappears when mailbox reachable
notification mailbox unreachable disappears when mailbox unlinked
notification mailbox unreachable
onboarding UI
open battery settings
open hotspot manually
open hotspot scan qr code
permissions
pre review checklist
private group invitations messages
product backlog
re add deleted contact reconnect via BT
reboot briar device after QR code scan
receive messages during contact creation
reconnect via BT when BT = OFF
reconnect via BT when Briar BT OFF and device BT OFF device location OFF Briar no access to location
reconnect via BT when Briar BT OFF and device BT OFF device location OFF
reconnect via BT when Briar BT OFF and device BT OFF
reconnect via BT
reimport imported messages
remove nearby devices permissions and start app
reopen mailbox after device goes to sleep
restart mailbox after wiping do not keep activities
rotate screen whilst adding contact at distance
scan incorrect qr code
scan qr code
scan valid QR code more than once
self destructing messages
share app briar access to location OFF
share app device location OFF
share app device wifi OFF
share app offline
share app wifi in briar OFF
signed commits
stop mailbox
stop sharing after download
stop sharing before download finished
threat model
time last connected
tor build process
tor port
transfer blog posts
transfer direct messages
transfer forum posts
transfer introductions
transfer messages with images
unlink from briar side mailbox already unlinked
unlink from briar side mailbox offline
unlink from briar side
unlink mailbox side when briar offline
unlink mailbox side when briar online
unlink mailbox
upload new contacts to mailbox
user allows connections and rotates screen
user allows connections
user leaves setup
Clone
19
development workflow
akwizgran edited this page 2018-06-20 15:27:34 +00:00
Tickets
Ticket lifecycle
- When we decide to work on a ticket, it should be assigned to a milestone
- Some tickets in the current milestone are given high priority
- High-priority tickets are eligible to be worked on
- When you start working on a ticket, assign it to yourself and label it
In progress - When you create a merge request, label the ticket
In code review - When your branch is merged, close the ticket if necessary, and label it
Fixed
Parent and child tickets
- If a ticket involves more than one person, or more than one week of work, divide it into child tickets
- Mention the parent ticket in the child tickets
- Close the parent ticket and label it
Fixedwhen all the child tickets have been fixed
Categories
- Every ticket should be labelled
Bug,Feature,Feature request,Task,DocumentorUX designBug: a defect that affects the user, e.g. a potential crashFeature: a user-visible improvementFeature request: a feature someone has asked for -- we might or might not implement it, but either way the request should be recordedTask: work that isn't visible to the user, e.g. refactoring or researchDocument: work that produces a documentUX design: work that produces a design mockup
- Before assigning the
UX designlabel, ask yourself whether the ticket can be closed when a mockup is produced. If the answer is yes, assign the label. If the answer is no, create a child ticket for the mockup and assign the label to the child. - Tickets like
UsabilityandSecuritycan be assigned to any ticket regardless of whether it's a bug, feature, etc.
Resolutions
- Every closed ticket should be labelled
Fixed,DuplicateorRejectedFixed: the issue described by the ticket was addressedDuplicate: another ticket describes the same issue -- add a comment mentioning which ticketRejected: the issue described by the ticket is obsolete, or we're not planning to address it -- add a comment explaining why not
Branches
- Always work on a branch
- Name your branch after the ticket you're working on, e.g.
55-key-manager-refactoring - Push your branch at least once a day so everyone knows what you're working on -- that will help us to avoid conflicts
When your branch is ready to merge
- Make sure all tests are passing
- Check the pre-review checklist
- Rebase your branch if necessary to fix any merge conflicts:
git rebase -i master - After rebasing, use
git push -fto overwrite the remote branch - Open a merge request
Code review
- At least one other person must review your code before it's merged to master
- You should respond to all the reviewer's comments before merging
- If an issue needs to be fixed before merging, push the fix to your branch and notify the reviewer
- If an issue is better dealt with after merging, create a ticket and reply with the ticket number
- Once your branch has been merged you can delete the remote branch
When reviewing a branch
- Check out and run the code as well as reading it
- Make sure you understand what the code is doing and why
- Ask plenty of questions
- The goal is to ensure that you and the developer have a shared understanding of the code
Tests
- To run the tests in Android Studio:
- Select
All testsfrom the run configuration dropdown
- Select
- To run the tests from the command line:
./gradlew test --continue
Meetings
- At the start of each week, let the team know what days you'll be working via the standup channel
- Post a daily update to the standup channel saying:
- What you worked on yesterday/today
- What you'll be working on today/tomorrow
- Any blockers
- If you're awake and online at 10am UTC, please post your update at that time so we can have a standup meeting
- We have a planning meeting in the town square channel each Monday at 2pm UTC
Dependencies
- If the ticket you're working on depends on an earlier ticket that's in code review, base your new branch on the branch that's awaiting review
- When the first branch is merged, rebase the second branch onto master
- You can put the second branch up for review by selecting the first branch as the target, instead of master
- The second merge request should be marked WIP until the first one is merged
- Mention the dependency in the second merge request
- Remember to update the target branch of the second merge request when the first branch is merged