FLEx Bridge is an application that allows multiple FieldWorks users to collaborate remotely (i.e., not necessarily connected by a local network).
Switch branches/tags
v2.6.2 v2.3.9 closed/2.0 closed/1.4 closed/refactorContextGenerator closed/naylor closed/linux closed/gordon closed/fixContextGeneratorToFindGuidForOwnSeqParent closed/correctProjectNameURL closed/WIP_RR closed/UseRightBranch closed/UseNetSparkle closed/UseChorusHubInGetSharedProjectCode closed/UseByteArrays closed/TheTurtle closed/TestingElementStrategiesAndDataTypeMerging closed/TestContextEditDelete closed/StyleFontConflicts closed/Stable closed/SplittingOptimizations closed/SplitIntoMoreFiles closed/SmartWsLabels closed/SaveLocalizationsLinux closed/S/R_Multiple_Projects closed/RunFbStandAlone closed/RobustStyleConflicts closed/ReworkPipeNaming closed/ReviseFileWriterCode closed/ReversalEntryContextHandler closed/RestoreILMerge closed/RequireBasicPropertiesafterDM64 closed/ReportChangesOnOtherBranches closed/RemovesplitJoinProgressDlgsAndThreads closed/RemoveUseOfChorusXmlMergeService closed/RemoveUnusedStuffInFwLinkArgs closed/RemoveSecondProgressDlg closed/ReloadFlexProjOnChangeOnly closed/PrettyPrint closed/POSContextGeneratorFix closed/OptimizeFileLoading closed/Obtain_empty_repo_fix closed/_Net4 closed/NaturalClasses closed/MultipleLiftOnHub closed/MultipleFiles closed/MoreFileSplitting closed/MergeMagnet closed/MergeLimitedChildrenService closed/MVC_Overhaul closed/MVC_BasicRearchitecture closed/Localization closed/LinuxFixes closed/LT12721_mergeToRefactorContextGeneratorChange closed/LT12721_ConflictReportLabels_WfiWordform closed/LT-14388 closed/LT-13280 closed/LT-13187 closed/LT-13032 closed/LT-13026 closed/LT-12980/23982_Conflict_Report_work closed/LT-12978_FileHandler_Fix closed/LT-12887 closed/LT-12886 closed/LT-12877_Reusing_menu_command_should_restore_window_not_cause_problem closed/LT-12875 closed/LT-12872_Added_progress_bar_for_send/receive_project_splitting closed/LT-12758_better_text_labels closed/LBForFW6 closed/JohnT closed/InternationalizationTry2 closed/Internationalization closed/InstallerSript_For_FW8 closed/ImproveUniConflicts closed/ImprovePOSRefConflict closed/ImproveHandlerValidation closed/ImproveDefaultHtml closed/ImproveChecksumHandling closed/Improve_Receive_from_Colleague_dialog closed/HaveProjectFilterRemoveExtantLocalRepos closed/GetSharedProject closed/FsFeatStrucAtomic closed/FixRepoUtilConfig closed/FixMoveConflict closed/FixMergingTextWithSpans closed/FixGreenscreenCopy closed/FixFwDataCrashHandling closed/FeatureSpecsMerge closed/FLExWCFCommunicationWork closed/EnhanceProgressBar closed/EnhanceHistoryViewing closed/DontPushInvalidData closed/Detect_Duplicate_FLEx_Styles closed/DeleteUnusedRepo closed/DefaultMono closed/DM59Support closed/ContextLabelImprovements closed/ConsolidateAssemblies closed/CommunicateWithChorusHub closed/CombinedBridges
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
FLExBridge VS2010.sln
update-version Add update-version script Oct 5, 2016


FLExBridge is an add-on to FieldWorks (http://fieldworks.sil.org; https://github.com/sillsdev/FwDocumentation/wiki) that supports using Chorus (https://github.com/sillsdev/chorus) to allow multiple users to share data.

Build notes:

FLEx Bridge depends on several assemblies from Chorus and Palaso. Versions of these assemblies are no longer in the repo. Therefore, to build FLEx Bridge, you must get the latest versions of these assemblies by running this in a Bash window:

Windows download_dependencies_windows.sh

Linux download_dependencies_linux.sh

If necessary, both download_dependencies can be updated using the tool at https://github.com/chrisvire/BuildUpdate (requires Ruby).

If you plan to work on Chorus,

  • clone the Chorus and LibPalaso repos from https://github.com/sillsdev/chorus and https://github.com/sillsdev/libpalaso into the same parent directory as flexbridge without changing their repository names
  • run GetAndBuildThis.bat to: Download the latest commit on your branch of FLExBridge (if you have no uncommitted changes), GetAndBuild LibPalaso and Chorus recursively, copy dependencies from LibPalaso to Chorus to FLExBridge, and build FLExBridge

Special Mono dependencies:

$ cp ../libpalaso/lib/Debug/icu.net.dll* ../libpalaso/lib/DebugMono
$ PATH=/usr/bin:$PATH make [debug|release] #This will prefer the System Mono over fieldworks-mono


To run FLExBridge you must unzip chorus/lib/common/Mercurial.zip to the root of flexbridge. Then, edit the mercurial.ini file in the Mercurial folder. Add a line like this (with the appropriate path for your flexbridge folder):

fixutf8 = C:\Dev\flexbridge\MercurialExtensions\fixutf8\fixutf8.py

Note that this is in addition to unzipping this folder per the Chorus ReadMe.

Connecting FieldWorks to FLExBridge:

Add the following keys to your registry (32-bit OS: omit 'Wow6432Node', Mono: export env var FLEXBRIDGEDIR):

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SIL\Flex Bridge\9] "InstallationDir"="C:\Dev\flexbridge\output\Debug"

Also, if you are working on Chorus, set up the FieldWorks build to copy locally-built Chorus and Palaso artifacts (instructions are located in the FwDocumentation wiki)

Updating Release Notes for a new version

FLExBridge is following the gitflow model for branching

When releasing FLExBridge be sure to do the following:

  1. Update the version and changelogs / release notes.
    • If in Windows:

      1. If you are making a major or minor version number jump, update the the first two digits in version
      • Update the src/Installer/ReleaseNotes.md with the user-facing change information, adding another heading for the previous version

      • Run the following to update dependant Release Notes files:

          @REM this sets up the path to msbuild. Check GetAndBuildThis.bat for the latest path to vsvars32.bat
          @REM Replace Alpha here with Beta or Stable as appropriate.
          msbuild build/build.common.proj  /t:PreparePublishingArtifacts /p:UploadFolder=Alpha /p:RootDir=..
    • If in Linux:

      1. cd ~/fwrepo/flexbridge
      • Set new version number, such as:

        echo 2.5.1 > version

      • Create an entry atop ReleaseNotes.md:

        sed -i '1i ##\n* New version.' src/Installer/ReleaseNotes.md

      • Edit src/Installer/ReleaseNotes.md , replacing 'New version.'

      • CHANNEL=Alpha # or Beta or Stable. On 2016-12-16 we are using Alpha for Dictionary branch.

      • Fill in debian/changelog and ReleaseNotes.md, make html file:

        (source environ && cd build && xbuild build.common.proj /t:PreparePublishingArtifacts /p:RootDir=.. /p:UploadFolder=$CHANNEL)

  • The windows version is released through two jobs in TeamCity: "Installer-sans Publish" and "Publish Installer"; the final version number comes from the TC job on "Installer-sans Publish". If you need to make a fix before publishing, you can avoid incrementing the version number by setting the buid counter back on the Installer-sans Publish job and re-running it before running the publish job.

  • Make a Linux package for release by doing the following.

    1. Go to the Jenkins job for this branch of flexbridge.
    • Click Build with Parameters.
    • Change Suite to "main" (or maybe "updates" for a hotfix).
    • Unselect AppendNightlyToVersion.
    • Optionally set Committish to an older commit, such as where the changelog entry was updated.
    • Click Build.