DMD Release Building

From D Wiki
Revision as of 21:27, 7 October 2015 by Dawg (talk | contribs) (Build steps)
Jump to: navigation, search

Requirements

Setup boxes

  • See the build script for how to setup the vagrant boxes.

https://github.com/D-Programming-Language/installer/blob/a01d9092a5409e507e1ea1c734f6336b8bfcd2f6/create_dmd_release/build_all.d#L14

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.