{"action":"created","issue":{"url":"https://api.github.com/repos/hpcugent/easybuild-framework/issues/1388","labels_url":"https://api.github.com/repos/hpcugent/easybuild-framework/issues/1388/labels{/name}","comments_url":"https://api.github.com/repos/hpcugent/easybuild-framework/issues/1388/comments","events_url":"https://api.github.com/repos/hpcugent/easybuild-framework/issues/1388/events","html_url":"https://github.com/hpcugent/easybuild-framework/pull/1388","id":106087614,"number":1388,"title":"add support for --extended-dry-run/-x (WIP)","user":{"login":"boegel","id":620876,"avatar_url":"https://avatars.githubusercontent.com/u/620876?v=3","gravatar_id":"","url":"https://api.github.com/users/boegel","html_url":"https://github.com/boegel","followers_url":"https://api.github.com/users/boegel/followers","following_url":"https://api.github.com/users/boegel/following{/other_user}","gists_url":"https://api.github.com/users/boegel/gists{/gist_id}","starred_url":"https://api.github.com/users/boegel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boegel/subscriptions","organizations_url":"https://api.github.com/users/boegel/orgs","repos_url":"https://api.github.com/users/boegel/repos","events_url":"https://api.github.com/users/boegel/events{/privacy}","received_events_url":"https://api.github.com/users/boegel/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/hpcugent/easybuild-framework/milestones/30","html_url":"https://github.com/hpcugent/easybuild-framework/milestones/v2.4.0","labels_url":"https://api.github.com/repos/hpcugent/easybuild-framework/milestones/30/labels","id":1192252,"number":30,"title":"v2.4.0","description":"","creator":{"login":"boegel","id":620876,"avatar_url":"https://avatars.githubusercontent.com/u/620876?v=3","gravatar_id":"","url":"https://api.github.com/users/boegel","html_url":"https://github.com/boegel","followers_url":"https://api.github.com/users/boegel/followers","following_url":"https://api.github.com/users/boegel/following{/other_user}","gists_url":"https://api.github.com/users/boegel/gists{/gist_id}","starred_url":"https://api.github.com/users/boegel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boegel/subscriptions","organizations_url":"https://api.github.com/users/boegel/orgs","repos_url":"https://api.github.com/users/boegel/repos","events_url":"https://api.github.com/users/boegel/events{/privacy}","received_events_url":"https://api.github.com/users/boegel/received_events","type":"User","site_admin":false},"open_issues":27,"closed_issues":11,"state":"open","created_at":"2015-07-03T10:24:57Z","updated_at":"2015-10-02T14:05:12Z","due_on":"2015-10-30T23:00:00Z","closed_at":null},"comments":46,"created_at":"2015-09-11T20:25:16Z","updated_at":"2015-10-05T18:18:18Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/hpcugent/easybuild-framework/pulls/1388","html_url":"https://github.com/hpcugent/easybuild-framework/pull/1388","diff_url":"https://github.com/hpcugent/easybuild-framework/pull/1388.diff","patch_url":"https://github.com/hpcugent/easybuild-framework/pull/1388.patch"},"body":"TODO:\r\n\r\n* [x] add warning that actual build procedure may diverge from output shown, due to conditional checks in the easyblock\r\n* [x] catch `EasyBuildError` for each method being called, simply report the error and continue?\r\n* [x] add `(DRY RUN)` tag for `== ` line printed for every step\r\n* [x] auto-enable `--force`?\r\n* [x] sort env vars + avoid `$EBVAR*` (see also #1219)\r\n* [x] verbose dry run of `sanity_check_step`\r\n* [x] verbose dry run of `make_module_step`\r\n* [x] more verbose dry run version of `fetch_step`\r\n* [x] avoid excessive output from `extensions_step`\r\n* [x] simulate `module load` for deps/toolchain if module is missing\r\n* [ ] update documentation\r\n\r\nExample output:\r\n\r\n```\r\n$ eb make-3.82-GCC-4.8.2.eb -x\r\n== temporary log file in case of crash /tmp/eb-UozKT1/easybuild-ZzMkzH.log\r\n\r\n== processing EasyBuild easyconfig /Users/kehoste/work/easybuild-easyconfigs/easybuild/easyconfigs/m/make/make-3.82-GCC-4.8.2.eb\r\n\r\nImportant note: the actual build & install procedure that will be performed may diverge\r\n(slightly) from what is outlined below, due to conditions in the easyblock which are\r\nincorrectly handled in a dry run.\r\nAny errors that may occur are ignored and reported as warnings, on a per-step basis.\r\nPlease be aware of this, and only use the information below for quick debugging purposes.\r\n\r\n*** DRY RUN using 'ConfigureMake' easyblock (from /Users/kehoste/work/easybuild-easyblocks/easybuild/easyblocks/generic/configuremake.pyc) ***\r\n\r\nUsing fake build directory: /tmp/eb-UozKT1/__ROOT__/Users/kehoste/.local/easybuild/build/make/3.82/GCC-4.8.2\r\nUsing fake software install directory: /tmp/eb-UozKT1/__ROOT__/Users/kehoste/.local/easybuild/software/make/3.82-GCC-4.8.2\r\nUsing fake modules install directory: /tmp/eb-UozKT1/__ROOT__/Users/kehoste/.local/easybuild/modules/all\r\n\r\n== building and installing make/3.82-GCC-4.8.2...\r\n== fetching files... [DRY RUN]\r\n\r\n[fetch_step method]\r\nAvailable download URLs for sources/patches:\r\n  * http://ftpmirror.gnu.org/make/$source\r\n\r\nList of sources:\r\n  * make-3.82.tar.bz2 downloaded to /Users/kehoste/.local/easybuild/sources/m/make/make-3.82.tar.bz2\r\n\r\nList of patches:\r\n(none)\r\n\r\n== creating build dir, resetting environment... [DRY RUN]\r\n\r\n[check_readiness_step method]\r\n\r\n[make_builddir method]\r\n\r\n[reset_changes method]\r\n\r\n[handle_iterate_opts method]\r\n\r\n== unpacking... [DRY RUN]\r\n\r\n[checksum_step method]\r\n\r\n[extract_step method]\r\n  running command \"tar xjf /Users/kehoste/.local/easybuild/sources/m/make/make-3.82.tar.bz2\"\r\n  (in /tmp/eb-UozKT1/__ROOT__/Users/kehoste/.local/easybuild/build/make/3.82/GCC-4.8.2)\r\n\r\n== patching... [DRY RUN]\r\n\r\n[patch_step method]\r\n\r\n== preparing... [DRY RUN]\r\n\r\n[prepare_step method]\r\nDefining build environment, based on toolchain (options) and specified dependencies...\r\n\r\nLoading toolchain module...\r\n\r\nmodule load GCC/4.8.2\r\n\r\nLoading modules for dependencies...\r\n\r\nDefining build environment...\r\n\r\n  export CC=\"gcc\"\r\n  export CFLAGS=\"-O2\"\r\n  export CXX=\"g++\"\r\n  export CXXFLAGS=\"-O2\"\r\n  export F77=\"gfortran\"\r\n  export F90=\"gfortran\"\r\n  export F90FLAGS=\"-O2\"\r\n  export FFLAGS=\"-O2\"\r\n  export FLIBS=\"-lgfortran\"\r\n  export LDFLAGS=\"-L/Users/kehoste/.local/easybuild/software/GCC/4.8.2/lib\"\r\n  export LIBS=\"-lm -lpthread\"\r\n  export OPTFLAGS=\"-O2\"\r\n  export PRECFLAGS=\"\"\r\n\r\nFull list of loaded modules:\r\n  1) GCC/4.8.2\r\n\r\n== configuring... [DRY RUN]\r\n\r\n[configure_step method]\r\n  running command \" ./configure --prefix=/tmp/eb-UozKT1/__ROOT__/Users/kehoste/.local/easybuild/software/make/3.82-GCC-4.8.2 \"\r\n  (in /tmp/eb-UozKT1/__ROOT__/Users/kehoste/.local/easybuild/build/make/3.82/GCC-4.8.2)\r\n\r\n== building... [DRY RUN]\r\n\r\n[build_step method]\r\n  running command \" make -j 4 \"\r\n  (in /tmp/eb-UozKT1/__ROOT__/Users/kehoste/.local/easybuild/build/make/3.82/GCC-4.8.2)\r\n\r\n== testing... [DRY RUN]\r\n\r\n[test_step method]\r\n\r\n== installing... [DRY RUN]\r\n\r\n[stage_install_step method]\r\n\r\n[make_installdir method]\r\n\r\n[install_step method]\r\n  running command \" make install \"\r\n  (in /tmp/eb-UozKT1/__ROOT__/Users/kehoste/.local/easybuild/build/make/3.82/GCC-4.8.2)\r\n\r\n== taking care of extensions... [DRY RUN]\r\n\r\n[extensions_step method]\r\n\r\n== postprocessing... [DRY RUN]\r\n\r\n[post_install_step method]\r\n\r\n== sanity checking... [DRY RUN]\r\n\r\n[sanity_check_step method]\r\nSanity check paths - files\r\n  * bin/make\r\nSanity check paths - dirs\r\n  (none)\r\nSanity check commands\r\n  (none)\r\n\r\n== cleaning up... [DRY RUN]\r\n\r\n[cleanup_step method]\r\n\r\n== creating module... [DRY RUN]\r\n\r\n[make_module_step method]\r\nGenerating module file /tmp/eb-UozKT1/__ROOT__/Users/kehoste/.local/easybuild/modules/all/make/3.82-GCC-4.8.2, with contents:\r\n\r\n    #%Module\r\n    proc ModulesHelp { } {\r\n        puts stderr { make-3.82: GNU version of make utility - Homepage: http://www.gnu.org/software/make/make.html\r\n        }\r\n    }\r\n    \r\n    module-whatis {Description: make-3.82: GNU version of make utility - Homepage: http://www.gnu.org/software/make/make.html}\r\n    \r\n    set root /tmp/eb-UozKT1/__ROOT__/Users/kehoste/.local/easybuild/software/make/3.82-GCC-4.8.2\r\n    \r\n    conflict make\r\n    \r\n    if { ![ is-loaded GCC/4.8.2 ] } {\r\n        module load GCC/4.8.2\r\n    }\r\n    \r\n    setenv\tEBROOTMAKE\t\t\"$root\"\r\n    setenv\tEBVERSIONMAKE\t\t\"3.82\"\r\n    setenv\tEBDEVELMAKE\t\t\"$root/easybuild/make-3.82-GCC-4.8.2-easybuild-devel\"\r\n    \r\n    # Built with EasyBuild version 2.4.0dev-r8c37cd76d0c68d8fcb6324cedd6f5822fbec1316\r\n    \r\n\r\n== permissions... [DRY RUN]\r\n\r\n[permissions_step method]\r\n\r\n== packaging... [DRY RUN]\r\n\r\n[package_step method]\r\n\r\n== COMPLETED: Installation ended successfully\r\n\r\nImportant note: the actual build & install procedure that will be performed may diverge\r\n(slightly) from what is outlined above, due to conditions in the easyblock which are\r\nincorrectly handled in a dry run.\r\nAny errors that may occur are ignored and reported as warnings, on a per-step basis.\r\nPlease be aware of this, and only use the information above for quick debugging purposes.\r\n\r\n== Build succeeded for 1 out of 1\r\n== Temporary log file(s) /tmp/eb-UozKT1/easybuild-ZzMkzH.log* have been removed.\r\n== Temporary directory /tmp/eb-UozKT1 has been removed.\r\n```"},"comment":{"url":"https://api.github.com/repos/hpcugent/easybuild-framework/issues/comments/145621118","html_url":"https://github.com/hpcugent/easybuild-framework/pull/1388#issuecomment-145621118","issue_url":"https://api.github.com/repos/hpcugent/easybuild-framework/issues/1388","id":145621118,"user":{"login":"hpcugentbot","id":4427971,"avatar_url":"https://avatars.githubusercontent.com/u/4427971?v=3","gravatar_id":"","url":"https://api.github.com/users/hpcugentbot","html_url":"https://github.com/hpcugentbot","followers_url":"https://api.github.com/users/hpcugentbot/followers","following_url":"https://api.github.com/users/hpcugentbot/following{/other_user}","gists_url":"https://api.github.com/users/hpcugentbot/gists{/gist_id}","starred_url":"https://api.github.com/users/hpcugentbot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hpcugentbot/subscriptions","organizations_url":"https://api.github.com/users/hpcugentbot/orgs","repos_url":"https://api.github.com/users/hpcugentbot/repos","events_url":"https://api.github.com/users/hpcugentbot/events{/privacy}","received_events_url":"https://api.github.com/users/hpcugentbot/received_events","type":"User","site_admin":false},"created_at":"2015-10-05T18:18:17Z","updated_at":"2015-10-05T18:18:17Z","body":"EasyBuild framework unit test suite **PASSed** (see https://jenkins1.ugent.be/job/easybuild-framework-pr-builder/2112/console for more details).\n\nThis pull request is now ready for review/testing.\n\nPlease try and find someone who can tackle this; contact @boegel if you're not sure what to do.\n"}}