Greetings Farid.

The nightly testing infrastructure is primarily my domain. The mechanics of the system are such that a copy of the source tree is synced down from version control, and bundled into an archive. This archive is then retrieved by a build server, and built using a glue script which is provided with instructions on what to build using a build specification file.

The design of the infrastructure makes it difficult to inject a patch into the source tree, prior to the archive being created. It might be possible to apply the patch to the expanded archive prior to the start of the build process, but the presence of the patch utility on the build servers can't be assumed.

A different tactic that could have been taken would be to include the patched files as part of the files pulled from the local version control system (perforce), but the local repository is retrieved prior to the retrieval from subversion. I believe this would result in the files from subversion overwriting those from perforce.

The final tactic that could be taken is to manually build the archive, applying the patch prior to creating the archive and posting it to the automated build system. I will do this prior to going to lunch, but the next time the archive is rebuilt after a changes, this patch will be removed from the archive.

--Andrew Black

Farid Zaripov wrote:
  Attached is a patch to the windows build infrastructure.

Martin or Andrew: can someone apply that patch to the night build system to test the changes before I commit?

  ChangeLog:
  * build.wsf: New script file to build specified configuration
  * configure.wsf (configure): Check if the environment variable
  exist before removing; use MT DLL runtime instead of ST static
  runtime in ST DLL solution configurations
  * devenv_consts.js: Added new constants
  * generate.wsf: Removed unused BUILDTYPE option from usage text;
  by default don't generate projects for build and test locales;
  generate additional solution files (stdlib + examples;
  stdlib + rwtest + tests; stdlib + utils + locales;
  stdlib + utils + locale tests;
  stdlib + utils + run_examples + run_tests); use new build.wsf
  script in generated build batch file
  * makelog.wsf (makelog): Updated according to new directory structure
  * projectdef.js (InitVSObjects): Added freedte parameter, don't free
  dte object if freedte == false;
  (projectCreateVCProject): Use MT DLL runtime instead of ST static
  runtime in ST DLL solution configurations;
  (projectCreateProjectDefsFromFolder): Add name of subfolder to the
  OutDir only if shiftOutDir is true;
  (projectCreateTestLocalesDef): New function to generate project for
  perform all locale tests in one shot;
  * projects.js (CreateProjectDefs): Added generation of the 3 projects:
  .stdcxx_runexamples; .stdcxx_runtests; .stdcxx_testlocales. Now
  returns array of the sets of projects (configure, stdlib, rwtest,
  utils, examples, run_examples, tests, run_tests, locales,
  locale_tests)
  * run_locale_utils.wsf (Cleanup): New function to remove
  temporary folder
  (Exit): New function to exit from script with cleanup
  (CreateFolder): New function to create directory three
  (dump_charmap): New function to dump the charmap of a locale
  (dump_locale): On error exited script with the same non-zero
  exit status as the locale utility
  (generate_locale): Used Exit function
  (test_locale): Called dump_charmap to produce the charmap source
  from the locale database at each of the three stages. Used this
  charmap source to create a locale in each subsequent stage.
  Placed the files created at each stage in separate directories
  named stage.1 through stage.3.
  (run_locale_utils): Avoided deleting stage directories when
  the -n option is set
  * runall.wsf: Parameter INOUTDIR now is optional; removed unused
  parameter COPYRWTESTDLL;
  (readOutFile): check manual and tutorial subfolders when searching
  example requested output file;
  (runWithChecks, runNoChecks): Removed as unused;
  (runAllExamples): Rewritten to use exec utility in packet mode.
  * summary.js (saveBuildInfoTable): encode symbols in example output
  before saving them to HTML file
  (readBuildLog): Added temporary loop to check the run-time error
  "runall.wsf(59, 6) Microsoft JScript runtime error: Permission denied"

Farid.

Reply via email to