-
Notifications
You must be signed in to change notification settings - Fork 70
Development
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
To test the editor in a dev environment, run
yarn dev
instead, web interfaces are exposed towindow.webModules
.
After successfully building CoreEditor
, open MarkEdit.xcodeproj
, and build the MarkEditMac
target.
It's recommended to override build settings by adding a Local.xcconfig
file under the root folder, including code signing identity, development team, etc.
Note that you should always use the latest stable release of Xcode.
Unit tests are run automatically by GitHub Actions, 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's an example of testing 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/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
notarytool
as 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
As a prerequisite, we need to config 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.dmg
andReleaseInfo.json
to assets - Provide a concise description, avoid using bullets
- Publish and test upgrading from an old build
(no longer needed as markedit is now auto-bumped)
brew bump-cask-pr markedit --version <version>
For more information, see #447.