# Contributing guide When making changes to `package:dtd` and `package:dtd_impl` at the same time, you'll need to [build the Dart SDK](https://github.com/dart-lang/sdk/wiki/Building#building) to ensure that changes to `package:dtd_impl` are picked up in the DTD snapshot. ## Helpful aliases Consider adding these aliases to your `.zshrc` file for convenience. For non-macOS platforms, replace "xcodebuild" with "out". ``` # Builds the entire Dart SDK. Run from the sdk/ directory. alias build-dart='./tools/build.py -mrelease create_sdk' # The create_platform_sdk target will work exactly the same as the # `create_sdk` target but without building the web tooling. alias build-dart-fast='./tools/build.py -mrelease create_platform_sdk' # The dart exe that was built by running 'build-dart' or 'build-dart-fast' # will be located here. Create an alias for convenience of using the dart exe. alias sdkdart='/absolute_path_to/sdk/xcodebuild/ReleaseX64/dart-sdk/bin/dart' # The runtime target will only build what the VM needs to run, but will output # the compiled dart binary at `xcodebuild/ReleaseX64/dart` instead of # `xcodebuild/ReleaseX64/dart-sdk/bin/dart`. Runtime is a bit faster than # `create_platform_sdk`, but both are faster than `create_sdk`. alias build-dart-runtime='./tools/build.py -mrelease runtime' # The dart exe that was built by running `build-dart-runtime`. alias sdkruntime='/absolute_path_to/sdk/xcodebuild/ReleaseX64/dart' ``` After building the Dart SDK with your local changes, use the `dart` executable that you just built to run commands that you want your local changes applied to (e.g. `sdkdart run ...`, `sdkdart test ...`).