Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: create new dev-orange variant #855

Merged
merged 7 commits into from
Mar 31, 2025
Merged

feat: create new dev-orange variant #855

merged 7 commits into from
Mar 31, 2025

Conversation

boringcactus
Copy link
Member

@boringcactus boringcactus commented Mar 28, 2025

Summary

Ticket: iOS & Android dev orange apps

I’m really glad we worked on managing the Xcode project first; this was easy.

Deploys to Android won’t work until the Android console listing is created; I’ve filed the infra request for that.

iOS

  • [ ] If you added any user-facing strings on iOS, are they included in Localizable.xcstrings?
    • [ ] Add temporary machine translations, marked "Needs Review"

android

  • [ ] All user-facing strings added to strings resource in alphabetical order
  • [ ] Expensive calculations are run in withContext(Dispatchers.Default) where possible (ideally in shared code)

Testing

Checked that the new apps have the right name and icon, and that alerts shown in staging are not visible in dev-orange.

Checked that iOS deploys work now and Android deploys will probably work once the Google Play console is set up.

@boringcactus boringcactus requested a review from a team as a code owner March 28, 2025 20:10
@boringcactus boringcactus requested a review from KaylaBrady March 28, 2025 20:10
@boringcactus boringcactus added deploy to android dev-orange Automatically deploy this PR to Android dev-orange deploy to ios dev-orange Automatically deploy this PR to iOS dev-orange labels Mar 28, 2025
Copy link
Collaborator

@KaylaBrady KaylaBrady left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sweet!

- synchronize
- labeled
schedule:
- cron: "13 12 * * MON"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question (non-blocking): Why different cron than backend?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I picked these times arbitrarily, and then I picked the backend times with more attention to normal working hours just in case something goes wrong, and then I did not update these to match that.

@@ -38,7 +38,7 @@ fun MoreSectionView(section: MoreSection, toggleSetting: ((Settings) -> Unit)) {

val note = section.note

if (!(section.requiresStaging && appVariant != AppVariant.Staging)) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (non-blocking): Might be worth renaming requiresStaging at this point too. We could invert to requiresProd

track: 'internal'
).max
rescue Exception => e
unless e.message == "Google Api Error: Invalid request - Package not found: #{package_name}."
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question (non-blocking): Is this just temporary handling until the app is added?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This required a temporary workaround when we created the staging app, it requires a temporary workaround now, and it will require a temporary workaround in the not inconceivable future where we want dev-silver. I don’t think it increases the maintenance burden to leave it in long-term.

ipa: 'iosApp/build/iosApp.ipa',
distribute_external: true,
changelog: '',
groups: ['Dev Orange Users']
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question(non-blocking): Is there a reason we'd want to manage this group separately from our existing groups? Wondering if we only need one group with access to all non-prod apps for simplicity

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn’t look like TestFlight groups carry over from one app to another.

@boringcactus
Copy link
Member Author

I figured separate labels would be easier, but apparently adding two labels to a PR at the same time is simultaneously non-atomic (each workflow runs twice) and atomic (all four runs see both labels as having already been added). If we have a combined label, the logic for the scheduled deploys gets a lot more complicated, so it’s probably easier to make the second runs cancel the first runs.

@boringcactus boringcactus removed deploy to android dev-orange Automatically deploy this PR to Android dev-orange deploy to ios dev-orange Automatically deploy this PR to iOS dev-orange labels Mar 28, 2025
@boringcactus boringcactus merged commit e71ebff into main Mar 31, 2025
10 checks passed
@boringcactus boringcactus deleted the mth-dev-orange branch March 31, 2025 16:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants