diff --git a/development-workflow.md b/development-workflow.md index 83150b4..aa337e0 100644 --- a/development-workflow.md +++ b/development-workflow.md @@ -1,35 +1,45 @@ -Branches +# 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 - * Rebase your branch if necessary to fix any merge conflicts + * Make sure **all** tests are passing + * Rebase your branch if necessary to fix any merge conflicts, e.g. `git pull origin master --rebase` * Use `git push -f` to overwrite the remote branch after rebasing - * Open a merge request + * [Open a merge request](https://code.briarproject.org/akwizgran/briar/merge_requests/new) * At least one other person must review your code before it's merged to master * Don't push directly to master unless it's an emergency and the change is very simple * Once your branch has been merged you can delete the remote branch -Issues +# Tests + +* before pushing any code, make sure the tests still complete sucessfully +* to run them in Android Studio + * right-click on the briar-tests folder and select 'run all tests' to create a run configuration + * go to run > edit configurations to change the vm options for the 'all in briar-tests' configuration + * add `-Djava.library.path=../briar-desktop/libs` to the run configuration's vm options +* to run tests on the command line, do `gradle test` + +# Issues * When you start working on a ticket, assign it to yourself -* Label your ticket 'in progress' while you're working on it, then 'in code review' while it's being reviewed -* When your branch is merged, label the ticket 'fixed' and close it +* Label your ticket '[in progress](https://code.briarproject.org/akwizgran/briar/issues?state=opened&label_name=In+progress)' while you're working on it, then '[in code review](https://code.briarproject.org/akwizgran/briar/issues?state=opened&label_name=In+code+review)' while it's being reviewed +* When your branch is merged, label the ticket 'fixed' and close it or alternatively include 'Closes #55' in your commit message to close the ticket automatically. * As a rule of thumb, if a ticket takes longer than a day, break it into smaller tickets (mention the parent in the description) -* Every ticket should be labelled 'bug', 'feature', 'feature request', 'task' or 'document' -* Bugs are mistakes that affect the user, e.g. potential crashes -* Features are work items that directly affect the user -* Feature requests are features that someone has asked for -- we might or might not implement them, but they're worth documenting -* Tasks are work items that don't directly affect the user, e.g. refactoring or research -* Documents are work items that produce text rather than software -Meetings +* Every ticket should be labelled 'bug', 'feature', 'feature request', 'task' or 'document' + * Bugs are mistakes that affect the user, e.g. potential crashes + * Features are work items that directly affect the user + * Feature requests are features that someone has asked for -- we might or might not implement them, but they're worth documenting + * Tasks are work items that don't directly affect the user, e.g. refactoring or research + * Documents are work items that produce text rather than software + +# 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 + * What you worked on yesterday/today? + * What you'll be working on today/tomorrow? + * Any blockers? * If you're online at 10am UTC, please post your update at that time so we can have a standup meeting