Skip to content

Commit 1502ea3

Browse files
authored
Merge pull request #950 from marionbarker/working-docs
Updates for Loop release v3.8.2
2 parents f56c66e + 7ba1b47 commit 1502ea3

File tree

8 files changed

+231
-99
lines changed

8 files changed

+231
-99
lines changed

docs/browser/automatic.md

Lines changed: 78 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,18 @@ The instructions provided for building with a browser include settings to automa
1212
* **inactive** means stable code (no new commit within the last 60 days)
1313
* **disables actions** means the Build Action shows up as disabled
1414

15+
!!! warning "Browser Build Disabled"
16+
We do not know why, but GitHub is disabling the Build Loop Action for LoopWorkspace even though the repository is not stale.
17+
18+
* We think it is associated with running too many builds at a busy time that requested too many runners (virtual computers)
19+
* The redesigned build action for v3.8.2 should alleviate this
20+
* We also plan to reach out to GitHub after people have transitioned to the v3.8.2 build schedule
21+
1522
### What Manual Action is Required?
1623

17-
For any repository that is stable, like the *Loop* app, you may need to take manual action to keep automatic builds flowing every month.
24+
For any repository that shows the build action disabled, you should enable the action and do a manual build.
1825

19-
* Put a calendar reminder to check every month on the 2nd day of the month (or later)
26+
* Put a calendar reminder to check every month on the 15th day of the month (or later)
2027
* Check that *TestFlight* has a new build of the *Loop* (or other) app
2128
* If not, go to your repository to see if the build action is disabled
2229
* If necessary, enable the build action at your repository as shown in the graphic below and then launch a manual build
@@ -27,6 +34,10 @@ This keeps the most recent version of your app available in *TestFlight* for you
2734

2835
> Builds in *TestFlight* are good for 90 days before they [expire](../operation/features/notifications.md#loop-app-expiration-notification){: target="_blank" }.
2936
37+
Your build may fail for other reasons - most common is forgetting to sign your updated license agreement or not adding the variable needed to get automatic annual certification renewal.
38+
39+
* Head over to [Errors with Browser](bb-errors.md){: target="_blank" }
40+
3041
## What is Automatic
3142

3243
These events are automatically scheduled:
@@ -50,11 +61,51 @@ You still need to **take these actions** to ensure a recent build of the *Loop*
5061
* Check your *GitHub* action if you ever get an email saying an automatic action failed
5162
* Look at your *TestFlight* app on the second of every month to make sure a new build is available for you to install when you are ready
5263

64+
### Modified Design for Build Action
65+
66+
The modified design for the build action found in `Loop v3.8.2` and newer is documented in this section.
67+
68+
#### Updated Build Features
69+
70+
The code that controls the build process was streamlined and enhanced. It runs every Sunday at a time when *GitHub* is not impacted. The portion of the action that decides whether to build or not completes in a few seconds.
71+
72+
**Build when**
73+
74+
* updates are detected
75+
* it is the second Sunday of the month
76+
77+
**Other features**
78+
79+
* remove the concept of alive branches
80+
* remove the requirement that your fork name match the upstream repository name
81+
* enable any branch in your fork to be updated if the upstream repository has the same branch
82+
* if you choose to have a special branch in your fork set to default, the automatic check for updates works for that special branch
83+
84+
85+
??? question "Do you want to know more? (Click to open/close)"
86+
**Build Action Redesign**
87+
88+
When GitHub allowed the use of alive branches with automatic addition of commits to the branch, there were extra steps in the build yml file and limitations to which branches would be updated.
89+
90+
* These steps kept your fork from getting stale
91+
* GitHub will disable your build actions if no commits have been added for 60 days
92+
93+
Because this trick is no longer allowed, the creation and use of alive branches was removed. That opened the door to streamline and enhance the build action capabilities.
94+
95+
If you want to follow the detailed design steps taken to reach this new version, see the following LoopFollow PR. (Most people do not need to know this).
96+
97+
* [LoopFollow PR 465: Shift GitHub to check for updates every Sunday and build 2nd Saturday of each month](https://github.com/loopandlearn/LoopFollow/pull/465)
98+
* [LoopFollow PR 470: Update the GitHub build schedule to every Sunday](https://github.com/loopandlearn/LoopFollow/pull/470)
99+
* [LoopFollow PR 477: Revise Browser Build to Remove Alive Branches](https://github.com/loopandlearn/LoopFollow/pull/477)
100+
* [LoopFollow PR 480: Expand and streamline build action](https://github.com/loopandlearn/LoopFollow/pull/480)
101+
53102
### Successful Weekly Action
54103

55-
Normally, you will see a successful `build action` once a week. This happens every Wednesday.
104+
Normally, you will see a successful `build action` once a week. This happens every Sunday (as soon as your version is 3.8.2 or newer).
105+
106+
> Previously the build action would run every Wed or the first of the month, when GitHub resources were impacted.
56107
57-
If there are no updates to the `main` branch, your actions show a very short, successful `build action` as shown in the graphic below. It only takes about a minute because the logic says - no update then skip the build.
108+
If there are no updates to the `main` branch, your actions show a very short, successful `build action` as shown in the graphic below. It only takes a few seconds because the logic says - if no update was detected and it is not the second Sunday, then skip checking the certificates and skip the build.
58109

59110
![normal weekly check for updates when there are no updates](img/normal-check-for-updates.png)
60111

@@ -64,7 +115,9 @@ In that case, you should check your favorite information site to find out what t
64115

65116
### Successful Monthly Action
66117

67-
On the first day of every month, you will see a successful `build action`. The purpose of this build is to provide a recent version of the app in *TestFlight* so you are never in a situation where you have no app on your phone.
118+
On the second Sunday of every month, you will see a longer `build action`. The purpose of this build is to provide a recent version of the app in *TestFlight* so you are never in a situation where you have no app on your phone.
119+
120+
> Previously the build action would run every Wed or the first of the month, when GitHub resources were impacted.
68121
69122
!!! important "You Get No Warning if Repository Build Action is Disabled"
70123
If your build action is disabled, no build actually happens, no warning email is sent and a green checkmark (✅) appears beside a very short build action in which the actual build was skipped.
@@ -75,35 +128,16 @@ You start getting [Notifications](../operation/features/notifications.md#loop-ap
75128

76129
### What are the `alive branches`?
77130

78-
The automatic update and build feature is embedded in the build_loop.yml code and uses the GitHub scheduling feature to trigger actions to run automatically.
79-
80-
One or more branches are added to your repository that start with the name `alive`. Don't worry about these. They are automatically created so GitHub will keep building your app automatically.
81-
82-
* GitHub keeps track of repositories
83-
* If there is no activity in a given repository in 60 days, GitHub disables Actions
84-
* If your Actions are disabled, you don't get automatic builds
85-
* Clever people developed a work around for this
86-
87-
You may see branches called `alive`, `alive-dev` or `alive-main` in your repository.
88-
89-
The `alive` branches are there so at least one commit per month is added to an `alive` branch in your repository. That keeps your repository active to allow the automatic update and build process.
90-
91-
The `alive` branches are only used for the keep-alive functions. Do not build using an `alive` branch. Most people will build using the default branch of `main`.
92-
93-
#### Automatic Creation of `alive branch`
131+
In April 2025, GitHub disallowed using the build action to automatically add commits to `alive branches`. This trick was previously used to keep your fork active even when the upstream repository was stable.
94132

95-
The `alive` branch you need is created automatically when you run the `Build Loop` action.
133+
Once you update to v3.8.2 or newer, references to `alive branches` are removed from the build action.
96134

97-
!!! warning "I got an error regarding a branch with `alive` in the name"
98-
* Sometimes you get an error about an `alive` branch
99-
* If you do get an error, simply delete the branch and run the `Build Loop` action again
100-
* Use this [GitHub link](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository#deleting-a-branch) or ask for help when deleting a branch
101-
* You can delete every branch that starts with the name `alive`
102-
* Leave the other branches alone unless a mentor directs you to take action
135+
> * If you have alive branches (`alive`, `alive-dev` or `alive-main`) you may delete them if you choose
136+
* Only delete alive branches after your default branch is updated to the new version
103137

104138
## Automatic Certificates
105139

106-
Automatic renewal of certificates is included in `Loop 3.6.0`.
140+
Automatic renewal of certificates is included in `Loop 3.6.0` and newer versions.
107141

108142
### Requirements
109143

@@ -134,22 +168,20 @@ Some Open-Source apps, in particular `Trio`, `LoopCaregiver`, `LoopFollow`, `Loo
134168

135169
### Open-Source App Schedule
136170

137-
!!! information "Changes are Coming"
138-
We are in process of modifying when **planned** builds happen.
171+
With the release of `Loop 3.8.2` and newer, the build schedule is updated.
139172

140-
The *LoopFollow* app and *Trio* app are already changed. This change will propagate to other apps in the Open-Source ecosystem.
173+
**New schedule - there will be one automatic run of the build action each week on Sunday.**
141174

142-
New method - there will be one automatic run of the build action each week on Sunday.
175+
* If no updated code is detected, the build will be skipped unless it is the **second Sunday** of the month
176+
* If updated code is detected, the new version of the app will be built and uploaded to TestFlight
143177

144-
* If it is the second Sunday of the month, the app will be built and uploaded to TestFlight
145-
* If updated code is detected, the new version of the app will be built and uploaded to TestFlight
146-
* If no updated code is detected, the build will be skipped (except for the second Sunday of the month)
178+
The table below indicates **planned** time for the automatic build schedule. GitHub will start the build action no earlier than the stated time but it can be delayed depending on activity at GitHub.
147179

148-
The table below indicates **planned** time for the automatic build schedule. For apps not yet changed to the new method, the weekly runs are on Wednesday and the monthly runs are on the 1st of each month.
180+
> For apps not yet changed to the new method, the weekly runs are on Wednesday and the monthly runs are on the 1st of each month.
149181
150182
| Open-Source App | AutoCerts? | Weekly<br>UTC | Once a Month<br>UTC |
151183
|:--|:-:|:-:|:-:|
152-
| <span translate="no">Loop</span> | &#x2705; | 09:33 | 07:33 |
184+
| <span translate="no">Loop</span> | &#x2705; | 07:33 | same |
153185
| <span translate="no">LoopCaregiver</span> | &#x2705; | 13:33 | 11:33 |
154186
| <span translate="no">LoopFollow</span> | &#x2705; | 10:17 | same |
155187
| <span translate="no">LoopFollow_Second</span> | &#x2705; | 10:27 | same |
@@ -202,7 +234,7 @@ This is an optional step. If you are happy with the automatic sync and update, y
202234

203235
Note that the weekly and monthly `Build Loop` actions will continue, but the actions are modified if one or more of these variables is set to false. **A successful Action Log will still appear, even if no automatic activity happens**.
204236

205-
* If you want to manually decide when to update your repository to the latest commit, but you want the monthly builds and keep-alive to continue:
237+
* If you want to manually decide when to update your repository to the latest commit, but you want the monthly builds to continue:
206238
* create the variable `SCHEDULED_SYNC` and set it to false
207239
* either do not create the variable `SCHEDULED_BUILD` or set it to true
208240
* If you are building the `dev branch` at a time when there is a lot of activity in that branch, you may want this configuration
@@ -214,10 +246,10 @@ This is an optional step. If you are happy with the automatic sync and update, y
214246

215247
| <div style="width:120px">`SCHEDULED_SYNC`</div> | <div style="width:120px">`SCHEDULED_BUILD`</div> | Automatic Actions |
216248
|---|---|---|
217-
| `true` (or N/A) | `true` (or N/A) | This is the default:<br>keep-alive, weekly update check (auto update/build), monthly build with auto update|
218-
| `false` | `true` (or N/A) | keep-alive, monthly build, no auto update |
219-
| `true` (or N/A) | `false` | keep-alive, weekly update check with auto update, only builds if update detected |
220-
| `false` | `false` | no automatic activity, no keep-alive|
249+
| `true` (or N/A) | `true` (or N/A) | This is the default:<br>weekly update check (auto update/build), monthly build with auto update|
250+
| `false` | `true` (or N/A) | monthly build, no auto update |
251+
| `true` (or N/A) | `false` | weekly update check with auto update, only builds if update detected |
252+
| `false` | `false` | no automatic activity|
221253

222254
### How to configure a variable
223255

@@ -241,10 +273,9 @@ Your build will run on the following conditions:
241273
- Default behaviour:
242274
- Run weekly, every Wednesday at 08:00 UTC to check for changes; if there are changes, it will update your repository and build
243275
- Run monthly, every first of the month at 06:00 UTC, if there are changes, it will update your repository; regardless of changes, it will build
244-
- Each time the action runs, it makes a keep-alive commit to the `alive` branch if necessary
245-
- If you disable any automation (both variables set to `false`), no updates, keep-alive or building happens when `Build Loop` runs
246-
- If you disabled just scheduled synchronization (`SCHEDULED_SYNC` set to`false`), it will only run once a month, on the first of the month, no update will happen; keep-alive will run
247-
- If you disabled just scheduled build (`SCHEDULED_BUILD` set to`false`), it will run once weekly, every Wednesday, to check for changes; if there are changes, it will update and build; keep-alive will run
276+
- If you disable any automation (both variables set to `false`), no updates or building happens when `Build Loop` runs
277+
- If you disable only scheduled synchronization (`SCHEDULED_SYNC` set to`false`), the build action runs weekly but your fork is not updated and the monthly build uses the current version of your fork
278+
- If you disable only scheduled build (`SCHEDULED_BUILD` set to`false`), the build action runs weekly to check for changes; if there are changes, it will update and build
248279

249280
### Disable Automatic Actions
250281

docs/browser/bb-errors.md

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -154,26 +154,6 @@ Ignore the warnings - this does not affect the build.
154154
155155
## Rebuild Errors: Quick Reference
156156
157-
### `Check Upstream and Keep Alive` Error
158-
159-
!!! important "`Check Upstream and Keep Alive` Error"
160-
**Error**: Your Browser Build fails and when you click on the link, you see
161-
162-
* **`Check Upstream and Keep Alive`** failed
163-
164-
**Consequence**: any required sync of your fork is skipped and build is skipped
165-
166-
**Solution**:
167-
168-
* Manually sync your fork of the repository: [Update `Fork`](bb-update.md#update-fork){: target="_blank" }
169-
* Manually start your build: [Build](bb-update.md#build-the-app){: target="_blank" }
170-
171-
**Details about what happened**:
172-
173-
On 21 April 2025, *GitHub* removed one of the third-party repositories that we used to keep automatic building going without action on your part. The repository was removed because it was in violation of the *GitHub* terms of service. *GitHub* disables automatic actions for repositories that have been inactive (no commits added in 60 days). For stable apps, like the *Loop* app, this third-party repository enabled a workaround to keep the builds happening.
174-
175-
This affected all the Open-Source apps in our community - Loop, LoopFollow, LoopCaregiver, Trio, iAPS and xDrip4iOS. The developers in our community have restored the ability to build using the Browser Build method. Stay tuned for updates to required actions in the documentation over the next few months, before we hit the 60 day limit.
176-
177157
### Manual Enable for Build Action May be Required
178158
179159
The automatic build actions continue to happen on schedule, but starting May 2025, you may find your build action disabled by *GitHub*. (This might happen every 60 days, but it might happen sooner.) In that case, no build actually happens, no warning email is sent and a green checkmark (&#x2705;) appears beside a very short build action in which the actual build was skipped.
@@ -223,9 +203,6 @@ These are some of the most common errors to date.
223203
1. You skipped running one of the actions
224204
1. You need to sign a program license agreement or update a credit card at&nbsp;<span translate="no">Apple Developer</span>
225205
* Be sure to read [Misleading Error Message](#misleading-error-message)
226-
1. You got an error regarding a branch with `alive` in the name
227-
* You can delete any branch that starts with the name `alive` and try again
228-
* See [Automatic Creation of `alive branch`](automatic.md#automatic-creation-of-alive-branch){: target="_blank" }
229206
230207
## Examine Annotation
231208

0 commit comments

Comments
 (0)