# FROM DATE AND BUILD
# This must be set as the reference point.
#
whatisfixed.since.date=2006-09-23 05:08:00 GMT
whatisfixed.fromBuildId=R-1.5.1-200609230508

# TO DATE AND BUILD
# This is calculated at the time of the build. Is not set 
#
whatisfixed.toBuildId=R-1.5.2-200610261841
whatisfixed.to.date=2006-10-26 18:41:00 GMT

# This is not used due to wierd behavior by cvs rlog 
#whatisfixed.to.branch

# The list will include bugs with these statuses
# - means ignore target (valid status - RESOLVED CLOSED NEW..)
whatisfixed.status=-

# What is fixed list will only include bugs targeted to these
#(seperate them by commas, blanks are significant in a name)
# - means ignore target
whatisfixed.targetMilestones=1.5.1 M151,1.5.2 M152

#BUILDER PROPERTIES
#
buildBranch=R1.5
wtp.cvsTag=R1_5_maintenance
buildType=R

# added build home and codir to be more like other
# scripts, and, do keep "working directory" out of releng.control directory

codir=${env.BUILD_HOME}/build-node/checkout/
whatisfixed.workdir=${codir}/tmp-wif

mapCvsRoot=:ext:aplatov@dev.eclipse.org:/cvsroot/technology
whatisfixed.dir=${whatisfixed.workdir}/results/whatisfixed



# These are the components under the cvs root to
# search for changes (seperate them by commas, blanks are significant in a name!)
whatisfixed.modules=wst,jst


buildRelease=${buildBranch}
build.distribution=wtp

wtpBuilder=${whatisfixed.workdir}/releng.wtpbuilder/distribution/${build.distribution}.whatisfixed/build.xml
build.whatIsFixed=true
build.trial=false

uploadUser=ndai
uploadPassword=This is not really used since ssh login is assumed (required)
uploadServer=download1.eclipse.org
uploadRemoteDirectory=/home/data/users/ndai/downloads/webtools/committers/drops/${buildBranch}/${whatisfixed.toBuildId}
