DMD Release Building
Requirements
- a linux (maybe osx) host
- virtualbox
- vagrant (https://www.vagrantup.com/)
- a Windows 7 license
- an OSX (currently 10.8) license
- a gpg key that is part of our keyring (http://dlang.org/gpg_keys.html)
- an S3 account for http://downloads.dlang.org
- an ssh account for http://ftp.digitalmars.com
- aws client tool
Setup boxes
- See the build script for how to setup the vagrant boxes.
Build steps
- Combining the changelog
- copy the changelog.dd parts from the dmd/druntime/phobos stable repos to a new dlang.org/changelog/2.068.1.dd
- use tools/changed to get the bugzilla changelog list
- Update prev/next navigation in changelogs
- Update dlang.org/win32.mak
- Test building the stable branch
- cd installer/create_dmd_release
- rdmd build_all v2.068.0 stable
- possibly fix build script, repos, or update patches
- Tag a new version
for proj in dmd druntime phobos tools dlang.org installer; do
pushd $proj
git fetch upstream
git tag -sm 'v2.068.1-b1' v2.068.1-b1
git push upstream v2.068.1-b1
popd
done
- Build binaries
- cd installer/create_dmd_release
- rm -rf build
- rdmd build_all v2.068.0 v2.068.1-b1
- Sign binaries
for file in build/*; do
gpg2 -b $file
done
- Upload binaries
rsync --progress -av --chmod=ug=rw build/ martin@digitalmars.com:/var/pub/digitalmars.com/
- Upload to releases or pre-releases
aws --profile ddo s3 sync build/ s3://downloads.dlang.org/pre-releases/2015/ --acl public-read --cache-control max-age=604800
aws --profile ddo s3 sync build/ s3://downloads.dlang.org/releases/2015/ --acl public-read --cache-control max-age=604800
- Make sure to check for errors during upload and probably repeat
- Update downloads.dlang.org
- cd downloads.dlang.org (https://github.com/braddr/downloads.dlang.org)
- ls create_dmd_release/build >> make-links
- edit 'make-links' and add symlinks for all the new files
- run make-links
- commit and push the make-links update
- make and run
src/build-gen-index
to regenerate the download pages to /tmp/ddo aws --profile ddo s3 sync /tmp/ddo/ s3://downloads.dlang.org/ --acl public-read --cache-control max-age=604800
- Merge stable branches into master
- Rebuild and sync dlang.org
- Write an announcement to digitalmars.D.announce and/or dmd-beta.