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

TRCL-2984 : Create 3P Suggested Release Instructions doc #23

Merged

Conversation

mike-dydx
Copy link
Collaborator

Links (dYdX Internal Use Only)

Linear Ticket: TRCL-2984 : Create 3P Suggested Release Instructions doc and get legal sign off


Description / Intuition

In order for a third party to deploy their own forked app, we must make it simpler to deploy. This PR creates fastlane lanes and Bitrise config files for deployment and release. A deployer can choose to use fastlane, Bitrise, or Xcode's built in tooling.

New lanes available:
update_bundle_identifier - Update PRODUCT_BUNDLE_IDENTIFIER in Xcode project with the app_identifier from the Appfile
dydx_increment_build_number - Increments the build number based on last build submitted to testflight
update_marketing_version - Update the marketing version in the Xcode project
generate_app_icons - Generate app icons
create_build_and_submit_for_review - Submit a new build for review

Also in this PR is a new readme describing our strategy for branching, releases, and hotfixes.

App Icons were generated by fastlane from a single 1024x1024 image. This will reduce file name conflict for 3rd parties using fastlane to generate app icons going forward.


Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Refactoring or Technical Debt
  • Documentation update
  • Other (please describe: )

Copy link

linear bot commented Nov 21, 2023

@mike-dydx mike-dydx changed the title add 3p deployment instructions TRCL-2984 : Create 3P Suggested Release Instructions doc Nov 21, 2023
@mike-dydx mike-dydx force-pushed the mike/trcl-2984-create-3p-suggested-release-instructions-doc branch 5 times, most recently from 445e737 to 82a3fdf Compare November 21, 2023 21:13
@mike-dydx mike-dydx force-pushed the mike/trcl-2984-create-3p-suggested-release-instructions-doc branch from 82a3fdf to c55d5e5 Compare November 21, 2023 21:17
Comment on lines +47 to +48
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

adding this prevents us from having to manually indicate the apps exemption for app store encryption policy

@@ -0,0 +1,80 @@
fastlane documentation
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

this is a generated file, can ignore

@mike-dydx mike-dydx marked this pull request as ready for review November 21, 2023 21:19
@mike-dydx mike-dydx self-assigned this Nov 21, 2023
git checkout -b release/1.0.2
```
3. Implement and test the fix rigorously on the hotfix branch.
4. Merge the hotfix branch into `main` and deploy to production.
Copy link
Contributor

Choose a reason for hiding this comment

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

Having the hotfix merged into 'main' can be confusing. For instance, if 'main' already contains the changes for version "1.1", and when a hotfix 1.0.2 is merged into 'main', it would be tagged after '1.1'.

I think it's better to just merging to 'develop' and let 'main' as-is. The change in the hotfix will be merged to 'main' when 'develop' gets merged to 'main' at some point in the future (i.e., when the next release happens).

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I see what your saying, but I am curious if that is actually a reachable scenario.

If main already has 1.1 tag merged in, then we should have a release/1.1 branch and the hotfix release branch should then be release/1.1.1 if the hotfix is coming after the 1.1 changes were merged in.

In the other case, if we begin the hotfix work before 1.1 is released, then the 1.1 release should be paused until after the 1.0.2 hotfix is merged into develop & main

Copy link
Contributor

Choose a reason for hiding this comment

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

Yeah.. I think there could be scenarios where we need to support multiple releases. Some deployer might want to stay with 1.0 but ask us to fix some issue on 1.0, and meanwhile we have already moved on to 1.1.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

My feeling is that if a deployer wants to persist an older version, they should cherry pick hotfix commits, or modify their own fork with the hot fix changes. Otherwise, we must apply all hotfixes in a backwards way and I think that would be a large drain on resources. If anything, we should encourage users of our code to stay up-to-date rather than support out-of-date versions.

Consider this example: if we're on version 5.0.0, but we realize that 1.0.0 has a issue we want to fix, that means all version between 5.0.0 and 1.0.0 need to have the fix applied so that we support all versions.

Copy link
Contributor

Choose a reason for hiding this comment

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

In my mind, having hotfixes implies that we support multiple release versions. Otherwise, if we only support the current version, then there is no need of hotfix or release branches. We can just apply the fix on 'main', and create a new release.

The hotfix should be a minimal change to address a specific issue on a release. The current version (on 'develop') should be our focus, so it makes sense to merge it there. We can merge it to other releases as see fit.

In any case, I think the chance of having to do a hotfix is pretty small since most deployer will stick with the latest version.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@ruixhuang 83ac400

Let me know what you think of this to support the scenario you originally mentioned

ruixhuang
ruixhuang previously approved these changes Nov 21, 2023
@mike-dydx mike-dydx merged commit a9d3886 into main Nov 22, 2023
2 checks passed
@mike-dydx mike-dydx deleted the mike/trcl-2984-create-3p-suggested-release-instructions-doc branch November 22, 2023 18:01
mike-dydx added a commit that referenced this pull request Aug 20, 2024
* add 3p deployment instructions

* address comments

* Update Info.plist

* Update marketing_url.txt
mike-dydx added a commit that referenced this pull request Aug 21, 2024
* add 3p deployment instructions

* address comments

* Update Info.plist

* Update marketing_url.txt
mike-dydx added a commit that referenced this pull request Aug 21, 2024
* add 3p deployment instructions

* address comments

* Update Info.plist

* Update marketing_url.txt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants