# 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}/projectBuilders/
whatisfixed.workdir=${codir}/tmp-wif

mapCvsRoot=:pserver:anonymous@dev.eclipse.org:/cvsroot/webtools
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}/${env.RELENGWTPBUILDER}/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}
