Difference between revisions of "DMD Release Building"

From D Wiki
Jump to: navigation, search
m (Build steps)
Line 30: Line 30:
  
 
* Tag a new version
 
* 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 [https://github.com/D-Programming-Language/installer/blob/e5c8c60295e5d83c086d98f08978273059dec24d/create_dmd_release/build_all.d#L336 cloneSources].
  
 
<code>
 
<code>

Revision as of 12:24, 14 October 2015

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

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
   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.