-
Notifications
You must be signed in to change notification settings - Fork 244
Development
Note
This page is for those looking to make changes to MarkEdit (as a developer). To customize its appearance and behavior with your own scripts and style sheets (as a user), refer to Customization Guide.
After checking out the project, go to the root folder of the repository and run:
cd CoreEditor
yarn install
yarn build
Tip
To test the editor in a development environment, run yarn dev instead. Web interfaces are exposed through window.webModules.
After successfully building CoreEditor, open MarkEdit.xcodeproj and build the MarkEditMac target.
We recommend overriding build settings by adding a Local.xcconfig file to the root folder. You can use it to specify the code-signing identity, development team, and other local settings.
Note
Note that you should always use the latest stable release of Xcode.
Unit tests run automatically through GitHub Actions, but you can also run them on your machine.
Make sure dependencies are installed and run:
cd CoreEditor
yarn test
MarkEditMac consists of several targets. Here is an example of how to run MarkEditCoreTests:
xcodebuild test -project MarkEdit.xcodeproj -scheme MarkEditCoreTests -destination 'platform=macOS'
- NPM packages:
CoreEditor/package.json - Other 3rd-party code:
CoreEditor/src/@vendor - JavaScript libraries:
MarkEditMac/Modules/Sources/Previewer/ResourcesMarkEditMac/Modules/Sources/DiffKit/Resources
- SwiftLint:
MarkEditTools/Plugins/SwiftLint
- Archive and export a signed distribution (*.app), e.g., Developer ID distribution.
- Create an installer (*.dmg) with the create-dmg tool.
- Notarize the installer (*.dmg) with
notarytoolas below.
xcrun notarytool submit MarkEdit.dmg --keychain-profile "notarytool-password" --wait
xcrun notarytool log <request-id> --keychain-profile "notarytool-password" notarization-log.json
xcrun stapler staple MarkEdit.dmg
ditto -c -k --keepParent MarkEdit.app notarize.zip
xcrun notarytool submit notarize.zip --keychain-profile "notarytool-password" --wait
xcrun stapler staple MarkEdit.app
ditto -c -k --keepParent --sequesterRsrc MarkEdit.app UpdateArchive.zip
Beforehand, configure the credentials with xcrun notarytool store-credentials.
For more information, see Customizing the notarization workflow.
- Bump version number to something like
1.20.0 - Tag the main branch with name
v1.20.0(w/v) - Name the release
1.20.0(w/ov) - Upload
MarkEdit-1.20.0.dmgandReleaseInfo.jsonto assets - Upload
UpdateArchive.zipfor in-app updater - Provide a concise description, avoid using bullets
- Publish and test upgrading from an old build
(no longer needed as casks are now auto-bumped)
brew bump-cask-pr markedit --version <version>
For more information, see #447.