yarn
npx pod-install
Open ios/Converse.xcworkspace in Xcode and Build
yarn
git submodule update
Open Android Studio press the top right gradle icon to sync gradle Click the play/build button to build and install the app
if running the backend locally
adb reverse tcp:9875 tcp:9875
yarn
yarn start
Once the expo server starts press W to launch the web app
Currently Groups and V3 Identity is not supported on Web at the SDK layer, but is actively being worked on by the team
Until then Converse web will only show 1 to 1 conversations and the majority of testing and development are native app focused.
Web support is an end goal and the team is happy to fix any issues that are reported
Once the app builds it will open the Expo App this will ask what server port you are targetting, if none are found, you probably need to start the expo server
yarn start
yarn lint
Before running the tests make sure that you have a .env
file setup with the variables variable set
# In the `converse-backend` repo
yarn dev
# Back in this repo
yarn test
Frames are expected to follow the Open Frames Standard https://github.com/open-frames/standard
Represents the current production code.
Each release branch is based off of main
or the release branch before it. It is used to prepare and stabilize the code for a specific release version (e.g., release/2.0.8
).
Feature branches are longer-lived features or refactors expected to take additional time. They should be based off of the targeted feature release branch.
This structure allows code to flow from main
to release branches to feature branches.
Assuming your branch is feature/scw
, and your feature is targeted for release 2.1.0
, follow these steps to rebase:
-
First, checkout the feature branch:
git fetch origin git branch feature/scw -D git checkout feature/scw origin/feature/scw
-
Then, rebase onto the targeted release branch:
git pull origin/release/2.1.0 --rebase git push origin feature/scw --force-with-lease
There are certain times where this flow does not work as intended. For example:
- Build scripts: These may need to be run off of the default main branch instead of feature or release branches.
- Read me updates: These are not required to be on a branch and can be committed directly to main.
- Bug fixes that can be OTA updated: These can be committed directly to main to perform an OTA update.