com web/windows: Document how to set up development environment: .gitignore README.md dev/generate_fake_downloads.php

From: Date: Mon, 25 Jan 2021 14:12:15 +0000
Subject: com web/windows: Document how to set up development environment: .gitignore README.md dev/generate_fake_downloads.php
Groups: php.webmaster 
Request: Send a blank email to php-webmaster+get-29068@lists.php.net to get a copy of this message
Commit: 2af38e65cb90aa89274c68b3a53f90c4d295559e Author: Christoph M. Becker <cmbecker69@gmx.de> Mon, 25 Jan 2021 15:11:19 +0100 Parents: 895ee072f1e2a9f2625ccccb7adee7061fb93df8 Branches: master Link: http://git.php.net/?p=web/windows.git;a=commitdiff;h=2af38e65cb90aa89274c68b3a53f90c4d295559e Log: Document how to set up development environment We also add a generate_fake_downloads.php script, so the Website is usable for development without having to download all the required files. Changed paths: M .gitignore A README.md A dev/generate_fake_downloads.php Diff: diff --git a/.gitignore b/.gitignore index 612b0dd..f659036 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,9 @@ data/*.json +data/site_generate_listing.lock logs/*.log logs/*/*.log docroot/snapshot.html +docroot/web.config docroot/downloads/pecl/ docroot/downloads/php-sdk/ docroot/downloads/pickle/ @@ -9,4 +11,3 @@ docroot/downloads/qa/ docroot/downloads/releases/ docroot/downloads/snaps/ docroot/downloads/nano/ - diff --git a/README.md b/README.md new file mode 100644 index 0000000..5d25296 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# The sources of the PHP for Windows Website + +## Local development + +You need IIS and PHP. + +* git clone git@github.com:php/web-windows.git +* adapt the BASE_URL and APP_PATH in include\config.php to point to the current working directory +* php dev\generate_fake_downloads.php +* php script\generate_snap_page.php +* set up IIS PHP Website for APP_PATH with index.php as default document +* set up TLS for that Website or comment out the HTTPS redirection section in templates\web.config.tpl +* visit /listing.php; this generates web.config in the docroot, so the Website is fully usable. You have to make sure that your Website configuration is done in the global applicationHost.config, or you have to integrate the local setup into templates\web.config.tpl. diff --git a/dev/generate_fake_downloads.php b/dev/generate_fake_downloads.php new file mode 100644 index 0000000..243bd42 --- /dev/null +++ b/dev/generate_fake_downloads.php @@ -0,0 +1,162 @@ +<?php + +include __DIR__ . '/../include/config.php'; + +$versions = ['7.3.26', '7.4.14', '8.0.1']; + +/* + * releases + */ + +$dir = RELEASES_DIR; +@mkdir($dir); +foreach ($versions as $version) { + switch (true) { + case version_compare($version, '7.4.0') < 0: + $vc = 'VC15'; + break; + case version_compare($version, '8.0.0') < 0: + $vc = 'vc15'; + break; + default: + $vc = 'vs16'; + } + touch("{$dir}php-{$version}-nts-Win32-{$vc}-x64.zip"); + touch("{$dir}php-{$version}-nts-Win32-{$vc}-x86.zip"); + touch("{$dir}php-{$version}-src.zip"); + touch("{$dir}php-{$version}-Win32-{$vc}-x64.zip"); + touch("{$dir}php-{$version}-Win32-{$vc}-x86.zip"); + touch("{$dir}php-debug-pack-{$version}-nts-Win32-{$vc}-x64.zip"); + touch("{$dir}php-debug-pack-{$version}-nts-Win32-{$vc}-x86.zip"); + touch("{$dir}php-debug-pack-{$version}-Win32-{$vc}-x64.zip"); + touch("{$dir}php-debug-pack-{$version}-Win32-{$vc}-x86.zip"); + touch("{$dir}php-devel-pack-{$version}-nts-Win32-{$vc}-x64.zip"); + touch("{$dir}php-devel-pack-{$version}-nts-Win32-{$vc}-x86.zip"); + touch("{$dir}php-devel-pack-{$version}-Win32-{$vc}-x64.zip"); + touch("{$dir}php-devel-pack-{$version}-Win32-{$vc}-x86.zip"); + touch("{$dir}php-test-pack-{$version}.zip"); +} + +$sha256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'; +$sha_file = fopen("{$dir}sha256sum.txt", 'w'); +foreach (scandir($dir) as $filename) { + if (pathinfo($filename, PATHINFO_EXTENSION) !== 'zip') continue; + fwrite($sha_file, "{$sha256} *{$filename}\n"); +} +fclose($sha_file); + +/* + * qa + */ + +$dir = QA_DIR; +@mkdir($dir); +foreach ($versions as $version) { + switch (true) { + case version_compare($version, '7.4.0') < 0: + $vc = 'VC15'; + break; + case version_compare($version, '8.0.0') < 0: + $vc = 'vc15'; + break; + default: + $vc = 'vs16'; + } + touch("{$dir}php-{$version}RC1-nts-Win32-{$vc}-x64.zip"); + touch("{$dir}php-{$version}RC1-nts-Win32-{$vc}-x86.zip"); + touch("{$dir}php-{$version}RC1-src.zip"); + touch("{$dir}php-{$version}RC1-Win32-{$vc}-x64.zip"); + touch("{$dir}php-{$version}RC1-Win32-{$vc}-x86.zip"); + touch("{$dir}php-debug-pack-{$version}RC1-nts-Win32-{$vc}-x64.zip"); + touch("{$dir}php-debug-pack-{$version}RC1-nts-Win32-{$vc}-x86.zip"); + touch("{$dir}php-debug-pack-{$version}RC1-Win32-{$vc}-x64.zip"); + touch("{$dir}php-debug-pack-{$version}RC1-Win32-{$vc}-x86.zip"); + touch("{$dir}php-devel-pack-{$version}RC1-nts-Win32-{$vc}-x64.zip"); + touch("{$dir}php-devel-pack-{$version}RC1-nts-Win32-{$vc}-x86.zip"); + touch("{$dir}php-devel-pack-{$version}RC1-Win32-{$vc}-x64.zip"); + touch("{$dir}php-devel-pack-{$version}RC1-Win32-{$vc}-x86.zip"); + touch("{$dir}php-test-pack-{$version}RC1.zip"); +} + +$sha256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'; +$sha_file = fopen("{$dir}sha256sum.txt", 'w'); +foreach (scandir($dir) as $filename) { + if (pathinfo($filename, PATHINFO_EXTENSION) !== 'zip') continue; + fwrite($sha_file, "{$sha256} *{$filename}\n"); +} +fclose($sha_file); + +/* + * snaps + */ + +$versions = [ + 'php-7.3' => [ + "revision_last" => "65d7ade6842bcf06b3d2ed59a796bdd78d073df9", + "revision_previous" => null, + "revision_last_exported" => "65d7ade", + "build_num" => 5, + "builds" => [ + "nts-windows-vc15-x64", + "nts-windows-vc15-x86", + "ts-windows-vc15-x86", + "ts-windows-vc15-x64", + "nts-windows-vc15-x64-avx" + ] + ], + 'php-7.4' => [ + "revision_last" => "65d7ade6842bcf06b3d2ed59a796bdd78d073df9", + "revision_previous" => null, + "revision_last_exported" => "65d7ade", + "build_num" => 5, + "builds" => [ + "nts-windows-vc15-x64", + "nts-windows-vc15-x86", + "ts-windows-vc15-x86", + "ts-windows-vc15-x64", + "nts-windows-vc15-x64-avx" + ] + ], + 'php-8.0' => [ + "revision_last" => "65d7ade6842bcf06b3d2ed59a796bdd78d073df9", + "revision_previous" => null, + "revision_last_exported" => "65d7ade", + "build_num" => 5, + "builds" => [ + "nts-windows-vs16-x64", + "nts-windows-vs16-x86", + "ts-windows-vs16-x86", + "ts-windows-vs16-x64", + "nts-windows-vs16-x64-avx" + ] + ], + 'master' => [ + "revision_last" => "65d7ade6842bcf06b3d2ed59a796bdd78d073df9", + "revision_previous" => null, + "revision_last_exported" => "65d7ade", + "build_num" => 5, + "builds" => [ + "nts-windows-vs16-x64", + "nts-windows-vs16-x86", + "ts-windows-vs16-x86", + "ts-windows-vs16-x64", + "nts-windows-vs16-x64-avx" + ] + ], +]; +$json = '{"stats":{"warning":0,"error":0},"has_php_pkg":true,"has_debug_pkg":false,"has_devel_pkg":false,"has_test_pkg":false}'; +$dir = SNAPS_DIR; +@mkdir($dir); +foreach ($versions as $version => $snap_meta) { + @mkdir("{$dir}{$version}"); + file_put_contents("{$dir}{$version}/{$version}.json", json_encode($snap_meta)); + $rev = $snap_meta['revision_last_exported']; + $revdir = "{$dir}{$version}/r{$rev}"; + @mkdir($revdir); + touch("{$revdir}/{$version}-src-r{$rev}.zip"); + foreach ($snap_meta['builds'] as $build) { + file_put_contents("{$revdir}/{$build}.json", $json); + $prefix = strncmp($version, 'php', 3) ? "php-{$version}" : $version; + file_put_contents("{$revdir}/{$prefix}-{$build}-r{$rev}.zip", '*'); + } +}

« previous php.webmaster (#29068) next »