Difference between revisions of "DMD Release Building"
(→Build steps) |
(→Build steps) |
||
Line 37: | Line 37: | ||
pushd $proj | pushd $proj | ||
git fetch upstream | git fetch upstream | ||
− | git tag -sm 'v2.068.1-b1' v2.068.1-b1 | + | git tag -sm 'v2.068.1-b1' v2.068.1-b1 upstream/stable |
git push upstream v2.068.1-b1 | git push upstream v2.068.1-b1 | ||
popd | popd |
Revision as of 21:47, 26 October 2015
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
Push the tags to your private forks (origin) first to test whether the release builds cleanly as tags on upstream must not be changed later on. To build from your private forks you need to change the base url in cloneSources.
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 upstream/stable
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
cd dmd # repeat for every repo
git fetch upstream
git checkout -b merge_stable upstream/master
git merge upstream/stable
# fix any conflicts
git hub pull new -b master
- Rebuild and sync dlang.org
- Write an announcement to digitalmars.D.announce and/or dmd-beta.