diff --git a/DEVELOPER.md b/DEVELOPER.md index f06f564..5f9cb1f 100644 --- a/DEVELOPER.md +++ b/DEVELOPER.md @@ -13,6 +13,20 @@ Once you have downloaded this repository, open `PHP Monitor.xcodeproj`, and you If you'd like to create a production build, choose "Any Mac" as the target and select Product > Archive. +## 🚀 Release procedure + +1. Merge into `main` +2. Create tag +3. Add changes to changelog + update security document +4. Archive +5. Notarize and prepare for own distribution +6. After notarization, export .app +7. Create zipped version +8. Calculate SHA256: `openssl dgst -sha256 phpmon.zip` +9. Upload to GitHub and add to tagged release +10. Update Cask with new version + hash +11. Check new version can be installed via Cask + ## 🐛 Symbolication of crashes If you have an archived build of the app and exported the DSYM, it is possible to symbolicate .ips crash logs. diff --git a/PHP Monitor.xcodeproj/project.pbxproj b/PHP Monitor.xcodeproj/project.pbxproj index b14b8d6..782e608 100644 --- a/PHP Monitor.xcodeproj/project.pbxproj +++ b/PHP Monitor.xcodeproj/project.pbxproj @@ -309,7 +309,6 @@ C4F2E4392752F7D00020E974 /* PhpInstallation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhpInstallation.swift; sourceTree = ""; }; C4F30B02278E16BA00755FCE /* HomebrewService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomebrewService.swift; sourceTree = ""; }; C4F30B06278E195800755FCE /* brew-services.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "brew-services.json"; sourceTree = ""; }; - C4F7807425D7F7E5000DBC97 /* RELEASE.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = RELEASE.md; sourceTree = ""; }; C4F7807925D7F84B000DBC97 /* phpmon-tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "phpmon-tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; C4F7807D25D7F84B000DBC97 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; C4F7809B25D80344000DBC97 /* CommandTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandTest.swift; sourceTree = ""; }; @@ -420,7 +419,6 @@ children = ( C4F8C0A522D4FA41002EFE61 /* README.md */, C4E713562570150F00007428 /* SECURITY.md */, - C4F7807425D7F7E5000DBC97 /* RELEASE.md */, C4168F4427ADB4A3003B6C39 /* DEVELOPER.md */, C4E713572570151400007428 /* docs */, C41C1B3522B0097F00E7CF16 /* phpmon */, diff --git a/RELEASE.md b/RELEASE.md deleted file mode 100644 index 6db49da..0000000 --- a/RELEASE.md +++ /dev/null @@ -1,13 +0,0 @@ -# Release Procedure - -1. Merge into `main` -2. Create tag -3. Add changes to changelog + update security document -4. Archive -5. Notarize and prepare for own distribution -6. After notarization, export .app -7. Create zipped version -8. Calculate SHA256: `openssl dgst -sha256 phpmon.zip` -9. Upload to GitHub and add to tagged release -10. Update Cask with new version + hash -11. Check new version can be installed via Cask