diff --git a/.github/workflows/build_loop.yml b/.github/workflows/build_loop.yml index fab987e7b3..9dab27ff57 100644 --- a/.github/workflows/build_loop.yml +++ b/.github/workflows/build_loop.yml @@ -175,7 +175,7 @@ jobs: (vars.SCHEDULED_SYNC != 'false' && needs.check_status.outputs.NEW_COMMITS == 'true' ) steps: - name: Select Xcode version - run: "sudo xcode-select --switch /Applications/Xcode_26.2.app/Contents/Developer" + run: "sudo xcode-select --switch /Applications/Xcode_26.4.app/Contents/Developer" - name: Checkout Repo for building uses: actions/checkout@v5 diff --git a/.gitmodules b/.gitmodules index 1308e60c03..f3472ea060 100644 --- a/.gitmodules +++ b/.gitmodules @@ -31,9 +31,6 @@ [submodule "LogglyService"] path = LogglyService url = https://github.com/LoopKit/LogglyService.git -[submodule "OmniBLE"] - path = OmniBLE - url = https://github.com/LoopKit/OmniBLE.git [submodule "NightscoutRemoteCGM"] path = NightscoutRemoteCGM url = https://github.com/LoopKit/NightscoutRemoteCGM.git @@ -46,9 +43,6 @@ [submodule "TidepoolService"] path = TidepoolService url = https://github.com/LoopKit/TidepoolService.git -[submodule "OmniKit"] - path = OmniKit - url = https://github.com/LoopKit/OmniKit.git [submodule "MinimedKit"] path = MinimedKit url = https://github.com/LoopKit/MinimedKit.git @@ -58,3 +52,12 @@ [submodule "LibreTransmitter"] path = LibreTransmitter url = https://github.com/LoopKit/LibreTransmitter.git +[submodule "OmnipodKit"] + path = OmnipodKit + url = https://github.com/loopandlearn/OmnipodKit +[submodule "MedtrumKit"] + path = MedtrumKit + url = https://github.com/jbr7rr/MedtrumKit +[submodule "EversenseKit"] + path = EversenseKit + url = https://github.com/bastiaanv/EversenseKit diff --git a/EversenseKit b/EversenseKit new file mode 160000 index 0000000000..43b808002f --- /dev/null +++ b/EversenseKit @@ -0,0 +1 @@ +Subproject commit 43b808002ffb88f29dc628cb609ca06eca8c7aeb diff --git a/Gemfile b/Gemfile index f8b2b1e969..0eb90cb08b 100644 --- a/Gemfile +++ b/Gemfile @@ -1,2 +1,2 @@ source "https://rubygems.org" -gem "fastlane", "2.234.0" +gem "fastlane", "2.235.0" diff --git a/Gemfile.lock b/Gemfile.lock index ae7d7b3417..0089a8cdb4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -72,7 +72,7 @@ GEM faraday_middleware (1.2.1) faraday (~> 1.0) fastimage (2.4.0) - fastlane (2.234.0) + fastlane (2.235.0) CFPropertyList (>= 2.3, < 5.0.0) abbrev (~> 0.1) addressable (>= 2.8, < 3.0.0) @@ -81,7 +81,7 @@ GEM babosa (>= 1.0.3, < 2.0.0) base64 (~> 0.2) benchmark (>= 0.1.0) - bundler (>= 1.17.3, < 5.0.0) + bundler (>= 2.4.0, < 5.0.0) colored (~> 1.2) commander (~> 4.6) csv (~> 3.3) @@ -96,12 +96,12 @@ GEM gh_inspector (>= 1.1.2, < 2.0.0) google-apis-androidpublisher_v3 (~> 0.3) google-apis-playcustomapp_v1 (~> 0.1) - google-cloud-env (>= 1.6.0, <= 2.1.1) + google-cloud-env (>= 1.6.0, < 2.3.0) google-cloud-storage (~> 1.31) highline (~> 2.0) http-cookie (~> 1.0.5) json (< 3.0.0) - jwt (>= 2.1.0, < 3) + jwt (>= 2.1.0, < 4) logger (>= 1.6, < 2.0) mini_magick (>= 4.9.4, < 5.0.0) multipart-post (>= 2.0.0, < 3.0.0) @@ -230,7 +230,7 @@ PLATFORMS ruby DEPENDENCIES - fastlane (= 2.234.0) + fastlane (= 2.235.0) BUNDLED WITH - 4.0.6 + 4.0.12 diff --git a/Loop b/Loop index e3229270a2..1f71ec4fa9 160000 --- a/Loop +++ b/Loop @@ -1 +1 @@ -Subproject commit e3229270a2704a601ef69ed3f407195717d5b09e +Subproject commit 1f71ec4fa94941abdbd72fd5bd914770faa2e90b diff --git a/LoopWorkspace.xcworkspace/contents.xcworkspacedata b/LoopWorkspace.xcworkspace/contents.xcworkspacedata index a870f8b7c9..fed13e7d24 100644 --- a/LoopWorkspace.xcworkspace/contents.xcworkspacedata +++ b/LoopWorkspace.xcworkspace/contents.xcworkspacedata @@ -109,16 +109,19 @@ location = "group:TrueTime.swift/TrueTime.xcodeproj"> + location = "group:RileyLinkKit/RileyLinkKit.xcodeproj"> + location = "group:MinimedKit/MinimedKit.xcodeproj"> + location = "group:OmnipodKit/OmnipodKit.xcodeproj"> + location = "group:MedtrumKit/MedtrumKit.xcodeproj"> + + diff --git a/LoopWorkspace.xcworkspace/xcshareddata/xcschemes/LoopWorkspace.xcscheme b/LoopWorkspace.xcworkspace/xcshareddata/xcschemes/LoopWorkspace.xcscheme index e09bc55654..19f95ce326 100644 --- a/LoopWorkspace.xcworkspace/xcshareddata/xcschemes/LoopWorkspace.xcscheme +++ b/LoopWorkspace.xcworkspace/xcshareddata/xcschemes/LoopWorkspace.xcscheme @@ -140,10 +140,10 @@ buildForAnalyzing = "YES"> + BlueprintIdentifier = "3E767D422D67B790004B1971" + BuildableName = "MedtrumKitPlugin.loopplugin" + BlueprintName = "MedtrumKitPlugin" + ReferencedContainer = "container:MedtrumKit/MedtrumKit.xcodeproj"> + BlueprintIdentifier = "C1E34B5A29C7AD01009A50A5" + BuildableName = "MinimedKitPlugin.loopplugin" + BlueprintName = "MinimedKitPlugin" + ReferencedContainer = "container:MinimedKit/MinimedKit.xcodeproj"> + BlueprintIdentifier = "D889B2382D2B4BFE00C8E64C" + BuildableName = "OmnipodKitPlugin.loopplugin" + BlueprintName = "OmnipodKitPlugin" + ReferencedContainer = "container:OmnipodKit/OmnipodKit.xcodeproj"> + + + + - - - - - - - - + BlueprintIdentifier = "431CE7761F98564200255374" + BuildableName = "RileyLinkBLEKitTests.xctest" + BlueprintName = "RileyLinkBLEKitTests" + ReferencedContainer = "container:RileyLinkKit/RileyLinkKit.xcodeproj"> + + + + + BlueprintIdentifier = "B7D3A8D92C148CC4002EE003" + BuildableName = "MedtrumKitTests.xctest" + BlueprintName = "MedtrumKitTests" + ReferencedContainer = "container:MedtrumKit/MedtrumKit.xcodeproj"> diff --git a/MedtrumKit b/MedtrumKit new file mode 160000 index 0000000000..60607476f2 --- /dev/null +++ b/MedtrumKit @@ -0,0 +1 @@ +Subproject commit 60607476f2e27ad02b9fe25af4d93fe713eccacf diff --git a/OmniBLE b/OmniBLE deleted file mode 160000 index 4e212a81aa..0000000000 --- a/OmniBLE +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4e212a81aa30e3aedeb04cec6644c39463f9db8b diff --git a/OmniKit b/OmniKit deleted file mode 160000 index 2b4253b9fd..0000000000 --- a/OmniKit +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2b4253b9fd3ec167d8a6b198dae6b59606058808 diff --git a/OmnipodKit b/OmnipodKit new file mode 160000 index 0000000000..d68699c8cb --- /dev/null +++ b/OmnipodKit @@ -0,0 +1 @@ +Subproject commit d68699c8cbaa2623375d4ae8576634101c6850b9 diff --git a/Scripts/LocalizationInstructions.md b/Scripts/LocalizationInstructions.md index 17e0f450d5..d3ec622e94 100644 --- a/Scripts/LocalizationInstructions.md +++ b/Scripts/LocalizationInstructions.md @@ -19,10 +19,21 @@ Table of Contents: * [Prepare xliff_out folder](#prepare-xliff_out-folder) * [Update lokalise strings](#update-lokalise-strings) * [Utility Scripts](#utility-scripts) + * [Additional Utility Scripts](#additional-utility-scripts) * [Questions and notes](#questions-and-notes) ## Overview +> The translations for these repositories are added to lokalise +> * DanaKit +> * EversenseKit +> * MedtrumKit +> * OmnipodKit + +> In order to manage those localization strings, the translation work will be done in the feat/all-managers branch, which includes all repositories. + +> The Scripts needed to handle these new repositories are found on in this branch (for now). + Translations for Loop are performed by volunteers at [lokalise](https://app.lokalise.com/projects). Several scripts were added to assist in bringing those translations into the repositories and updating keys when strings are added or modified. @@ -305,6 +316,42 @@ The define_common.sh is used by other scripts to provide a single source for the If you need to start over but don't want to lose prior work, use archive_translations.sh. However, this is probably no longer necessary with the optional arguments available with the manual scripts. +### Additional Utility Scripts + +These scripts, currently found in feat/all-managers, are used for several purposes but are not part of the Localization process. + +They are documented here for convenience. The alphabetic list is provided here. + +* open_selected_url.sh +* reconfigure_remotes.sh +* update_loopandlearn_forks.sh +* update_submodule_refs.sh + +#### update_submodules_refs + +This is used to checkout the most recent branch for each submodule in the workspace. It is used as a final step after the translation is completed but also is used to bring in other updates from the submodules into the workspace. + +After running this script, use `git status` to determine which submodules were updated so the modifications can be tested and committed. + +#### reconfigure_remotes + +This is a helper script for a LoopWorkspace clone for use when the .gitmodules path name changes for any reason, and the local clone needs to be updated. + +This change was made because (2026 April 30) the translation work for feature branches and the submodule update work were using different paths and it was just too confusing and error prone. By using the upstream fork in .gitmodules and in the translations scripts, life is simpler. + +* The path for DanaKit, EversenseKit and MedtrumKit was changed from loopandlearn to the respective upstream repositories +* If a local clone has any submodules pointing to loopandlearn as the remote named `origin`, run this script to update it + +There is no harm running the script even if all submodules are properly configured. + +### Trio Utility Scripts + +These are Trio support utilities run within a LoopWorkspace clone to sync the loopandlearn forks for use with Trio. They require appropriate permissions. + +We support Trio with some of the submodules. To enable Trio to use a slightly modified version of the repositories, Trio uses loopandlearn, not the upstream repos in their `.gitmodule` list. In order to keep the loopandlearn forks up to date, the `update_loopandlearn_forks.sh` automatically updates all the submodules used by Trio so that loopandlearn forks match the upstream forks for the appropriate branches. + +When there are submodules where Trio uses a slightly different version of code, a `trio` branch is created. In that case, the update is done manually. To assist in the process, the script `open_selected_url.sh` is called from within the `update_loopandlearn_forks.sh` script. + ## Questions and notes Most of the questions were worked through while developing the new scripts. diff --git a/Scripts/define_common.sh b/Scripts/define_common.sh index 0c75a998e0..a1a8aa197a 100755 --- a/Scripts/define_common.sh +++ b/Scripts/define_common.sh @@ -34,7 +34,6 @@ MESSAGE_FILE="xlate_message_file.txt" # matches lokalise order, en plus alphabetical order by language name in English LANGUAGES=(en \ ar \ - ce \ zh-Hans \ cs \ da \ @@ -43,10 +42,10 @@ LANGUAGES=(en \ fr \ de \ he \ - hi \ hu \ it \ ja \ + ko \ nb \ pl \ pt-BR \ @@ -75,10 +74,11 @@ PROJECTS=( \ LoopKit:MinimedKit:main \ LoopKit:NightscoutRemoteCGM:dev \ LoopKit:NightscoutService:dev \ - LoopKit:OmniBLE:dev \ - LoopKit:OmniKit:main \ LoopKit:RileyLinkKit:dev \ LoopKit:TidepoolService:dev \ + loopandlearn:OmnipodKit:main \ + bastiaanv:EversenseKit:dev \ + jbr7rr:MedtrumKit:dev \ ) function section_divider() { diff --git a/Scripts/update_submodule_refs.sh b/Scripts/update_submodule_refs.sh index b9edba347a..3fb71658a0 100755 --- a/Scripts/update_submodule_refs.sh +++ b/Scripts/update_submodule_refs.sh @@ -2,13 +2,24 @@ source Scripts/define_common.sh +section_divider +echo "You are running ${0}" +echo +echo " This modifies your local clone, in whatever branch is currently selected," +echo " so that every submodule is at the tip of the appropriate branch." +echo +current_branch=$(git branch --show-current 2>/dev/null) +echo " The current LoopWorkspace branch is $current_branch" + +continue_or_quit ${0} + for project in ${PROJECTS}; do + echo echo "Updating to $project" IFS=":" read user dir branch <<< "$project" echo "Updating to $branch on $user/$project" cd $dir git checkout $branch - #git branch -D tidepool-sync git pull cd - done diff --git a/VersionOverride.xcconfig b/VersionOverride.xcconfig index 3b8a554641..5253477701 100644 --- a/VersionOverride.xcconfig +++ b/VersionOverride.xcconfig @@ -8,5 +8,5 @@ // Version [for DIY Loop] // configure the version number in LoopWorkspace -LOOP_MARKETING_VERSION = 3.14.1 +LOOP_MARKETING_VERSION = 3.14.2 CURRENT_PROJECT_VERSION = 57