forked from easybuilders/easybuild-framework
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELEASE_NOTES
2106 lines (1893 loc) · 135 KB
/
RELEASE_NOTES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
This file contains a description of the major changes to the easybuild-framework EasyBuild package.
For more detailed information, please see the git log.
These release notes can also be consulted at https://easybuild.readthedocs.io/en/latest/Release_notes.html.
v4.2.0 (April 14th 2020)
------------------------
feature release
- add support for --try-update-deps (experimental feature), to upgrade dependencies based on available easyconfigs (#2599)
- adding locking to prevent two parallel builds of the same installation directory (#3009)
- for more information, see https://easybuild.readthedocs.io/en/latest/Locks.html
- significantly speed up -D/--dry-run by avoiding useless 'module show' (#3203)
- add support for creating an index & using it when searching for easyconfigs (#3210)
- for more information, see https://easybuild.readthedocs.io/en/latest/Easyconfigs_index.html
- additional GitHub integration features:
- add support for targeting easyblocks and framework repositories in --new-pr (#1876, #3189)
- add support for --include-easyblocks-from-pr (#3206)
- for more information, https://easybuild.readthedocs.io/en/latest/Integration_with_GitHub.html
- various other enhancements, including:
- add a contrib/hooks dir with some examples of hooks used (#2777)
- also mention working directory + input passed via stdin (if any) in trace output of run_cmd (#3168)
- probe external modules for missing metadata that is not provided via extermal module metadata file (#3174)
- also update $CMAKE_PREFIX_PATH and $CMAKE_LIBRARY_PATH in generated module file (#3176)
- optionally call log.warning in print_warning (#3195)
- add an option to git_config to retain the .git directory (#3197)
- allow use of SYSTEM as --try-toolchain option (#3213)
- mention CPU arch name in comment for uploaded test report, if it's known by archspec (#3227)
- make --merge-pr take into account --pr-target-branch (#3236)
- make --check-contrib print a warning when None is used for checksums (#3244)
- update install-EasyBuild-develop.sh script and create script for 2020a merge sprint (#3245)
- add template for mpi_cmd_prefix (#3264)
- update copy_dir to include option to merge directories (#3270)
- support template name for CUDA version (#3274)
- various bug fixes, including:
- use correct module for errors_found_in_log (#3119)
- fix EasyConfig.update code to handle both strings and lists as input (#3170)
- fix removing temporary branch on --check-github (#3182)
- fix shebang even if first line doesn't start with '#!' (#3183)
- make boostrap script work with Python 3 (#3186)
- read patch files as bytestring to avoid UnicodeDecodeError for patches that include funky characters (#3191)
- fix online check in --check-github: try repeatedly and with different URLs to cater for HTTP issues (#3194)
- don't crash when GitPython is not installed when using Python 3 (#3198)
- fix os_name_map for RHEL8 (#3201)
- don't add shebang to binary files (#3208)
- use checkout@v2 in GitHub Actions to fix broken re-triggered tests (#3219)
- don't filter out None values in to_checksums, leave them in place (#3225)
- fix defining of $MPI_INC_* and $MPI_LIB_* environment variables for impi version 2019 and later (#3229)
- use correct target account/repo when creating test report & posting comment in PR (#3234)
- reorganize EasyBlock.extensions_step to ensure correct filtering of extensions (#3235)
- also support %(installdir)s and %(builddir)s templates for extensions (#3237)
- unset $GITHUB_TOKEN in Travis after installing token, to avoid failing test_from_pr_token_log (#3252)
- fix reporting when skipping extensions (#3254)
- avoid API rate limit errors on online check in --check-github (#3257)
- show easyconfig filenames for parallel build (#3258)
- make EasyConfig.dump aware of toolchain hierarchy, to avoid hardcoded subtoolchains in dependencies easyconfig parameters (#3261)
- fix use of --copy-ec with a single argument, assume copy to current working directory (#3262)
- fix posting of comment in PR with --upload-test-report (#3272)
- take into account dependencies marked as external modules when composing template values like %(pyver)s (#3273)
- other changes:
- increase timeout & use api.github.com for connectivity check in check_github (#3192)
- restore flake8 default ignores (#3193)
- enable tracking of test suite coverage using coveralls (#3204)
- make tests use easybuilders/testrepository rather than hpcugent/testrepository after it was moved (#3238)
- improve raised error in remove_dir and deprecate rmtree2 (#3228)
v4.1.2 (March 16th 2020)
------------------------
bugfix release
- fix gitdb dependency on Python 2.6 in test configuration (#3212)
- fix broken test for --review-pr by using different PR to test with (#3226)
- censor authorization part of headers before logging ReST API request (#3248)
- see also https://github.com/easybuilders/easybuild-framework/security/advisories/GHSA-2wx6-wc87-rmjm
v4.1.1 (January 16th 2020)
--------------------------
update/bugfix release
- various enhancements, including:
- add check_log_for_errors function (in easybuild.tools.run) to detect and handle multiple errors (#3118)
- implement support for 'eb --show-ec' to show contents of specified easyconfig file (#3132)
- also update $XDG_DATA_DIR (share/) and $GI_TYPELIB_PATH environment variables (lib*/girepository-*) in generated module files (#3133)
- add support for --copy-ec to copy easyconfig file to specified location (#3142)
- mention --disable-* option in --help output for boolean options enabled by default (#3151)
- add --cuda-compute-capabilities configuration option (#3161)
- various bug fixes, including:
- ignore imports from vsc namespace made from pkgutil.py (#3120)
- only actually change permissions using os.chmod in adjust_permissions if the current permissions are not correct already (#3125)
- use shutil.copyfile to just copy file contents if target path exists and is owned by someone else (#3127)
- fix or avoid warnings that commonly arise in build log (#3129)
- disable buffering in asyncprocess.Popen using bufsize=0, to fix run_cmd_qa missing output (#3130)
- update pip & install wheel package in generated Singularity container recipes (#3136)
- avoid crash in modify_env & unset unset_env_vars when using (older versions) of Python 3.5 & 3.6 by using list(...) (#3140)
- take into account that lib64 could be a symlink to lib (or vice versa) in get_software_libdir function (#3141)
- only parse docstring if it exists in gen_easyblock_doc_section_rst function (#3144)
- only add useful entries for $CPATH, $(LD_)LIBRARY_PATH and $PATH (non-empty directories) (#3145, #3152)
- fix --list-software=detailed when using Python 3 by leveraging sort_looseversions function from py2vs3 module (#3146)
- ensure subdirectories in software install directory have correct search (exec) permission (#3147)
- take into account that a checksum value may be a tuple of valid checksum in EasyBlock.check_checksums (#3153)
- other changes:
- bump to Lmod 8.2.9 in GitHub CI config (#3115)
- update copyright statements for 2020 (#3149)
- make Hound CI code style checker ignore "Black would make changes" produced by flake8-black (#3162)
v4.1.0 (December 4th 2019)
--------------------------
update/bugfix release
- various enhancements, including:
- performance improvements:
- skip validation when copying EasyConfig object for extension (#3071)
- correctly specify that ActiveMNS & co are singleton classes when using Python 3 (#3073)
- don't call out to prohibitively expensive getRootLoggerName in getLogger, just use 'root' instead (#3074)
- fix inconsistent module path usage that leads to repeated reloading in HMNS (#3099)
- add support for specifying different dependency version based on processor architecture (#3047)
- support use of glob patterns for paths to files with external modules metadata (#3075)
- take into account that external modules may not be visible directly (due to module hierarchy) (#3083)
- add support for including 'extensions' statement in Lua modules with Lmod 8.2.8+ (#3085, #3107, #3110)
- add support for --sync-pr-with-develop (#3087)
- add support for --new-branch-github, --new-pr-from-branch, --sync-branch-with-develop, --update-branch-github (#3103)
- fix typo in docstring for new_branch_github (#3106)
- various bug fixes, including:
- correctly handle iccifortcuda toolchain with standalone iccifort in det_toolchain_compilers (#3055)
- init git repo with git.repo.clone() instead of copy_dir() (#3062)
- fix regular expression so depends-on statements are recognized correctly in Tcl module files (#3065)
- update GitPython to latest version that supports Python 2.6 in requirements.txt to fix broken test_new_update_pr (#3066)
- imply --disable-pre-create-installdir with --inject-checksums (#3069)
- handle patches in extensions more like normal patches (#3067)
- take into account that platform.linux_distribution and platform.dist was removed in Python 3.8 (#3078)
- always include mandatory easyconfig parameters in dumped easyconfig (#3081)
- hide backup module file when using Lmod 6.x (fixes #9302) (#3089)
- add better error message when mandatory key is missing from a dictionary easyconfig parameter (#3092)
- also create symlinks for default modules in class module folders (#3093)
- fix semantics of --set-default-module: only set default for specified easyconfigs, not for the ones that are installed as dependencies via --robot (#3094)
- fix various issues in extracting comments from original easyconfig file and including them again in dumped easyconfig (#3095)
- don't use %(version)s template in exts_default_options in dumped easyconfig (#3096)
- fix generated module statements in case only a single version is listed in multi_deps (#3097)
- fix broken test_show_system_info on macOS due to 'Python' binary (#3105)
- take into account that dependency version could be a dict rather than a string value in template_constant_dict (#3111)
- other changes:
- deprecate running EasyBuild with Python 2.6 via new check_python_version() function (#3076)
- deprecate support for using Lmod 6.x (#3077)
- trim set of test configurations in Travis CI (#3086)
- flesh out env_vars_external_module from Toolchain._simulated_load_dependency_module (#3088)
v4.0.1 (October 15th 2019)
--------------------------
update/bugfix release
- various enhancements, including:
- add 'parallel' to list of config templates (#3036)
- add GitHub Actions workflow to run easybuild-framework test suite (#3039)
- add 'retest' as a reason to --close-pr, to close/re-open PRs to trigger re-test in Travis (#3040)
- define $EB_SCRIPT_PATH in 'eb' wrapper script, and consider it before location of 'eb' determined via $PATH in get_paths_for function (#3046)
- add support for --remove-ghost-install-dirs configuration option, and warn about (potential) ghost install dirs by default when --force/--rebuild is used (#3050)
- various bug fixes, including:
- update bootstrap script to support installing EasyBuild v4.0 (#3017)
- fix broken test_download_repo due to archiving of easyconfigs (#3019, #3023)
- avoid that --inject-checksums introduces list of patches for extensions as a single long line (#3025, #3034)
- enhance regex in fix_shebang method to fix more Python/Perl shebangs + avoid patching binary files (#3029)
- delete test gist that is created by --check-github (#3031)
- disable templates when defining easyconfig parameters in EasyConfig.set_keys() (#3037)
- avoid setting GC3Pie's max_in_flight to None if --job-max-jobs is not specified (#3038)
- fix use of obtain_file method for extensions (#3042)
- error out if some GC3Pie job failed (#3044)
v4.0.0 (September 20th 2019)
----------------------------
feature release (incl. backwards-incompatible changes)
A concise overview of major changes in EasyBuild v4.0 is available at https://easybuild.readthedocs.io/en/latest/EasyBuild4-overview-of-changes.html .
- fixed compatibility with Python 3.5+ (#2708, #2713, #2714, #2719, #2721, #2723, #2729, #2743, #2744, #2751, #2756, #2759, #2761, #2762, #2765, #2766, #2767, #2768, #2774, #2775, #2778, #2780, #2785, #2787, #2789, #2791, #2792, #2794, #2800, #2801, #2805, #2806, #2895, #2932, #2982, #2992, #3007, #3011)
- supported Python versions: 2.6, 2.7, 3.5, 3.6, 3.7
- some functionality from the Python standard library should be imported from the new easybuild.tools.py2vs3 package
- see https://easybuild.readthedocs.io/en/latest/Python-2-3-compatibility.html & https://easybuild.readthedocs.io/en/latest/EasyBuild4-overview-relocated-functions-constants.html for more information
- ingested relevant code from vsc-base & vsc-install (#2708, #2713, #2714, #2763, #2790, #2993)
- vsc-base & vsc-install are no longer required as dependencies
- the functionality that was provided by these packages is now (mostly) available from the easybuild.base package
- any import statements from the 'vsc' namespace will result in an error
- see also https://easybuild.readthedocs.io/en/latest/EasyBuild4-overview-of-changes.html#ingested-functionality-from-vsc-base-and-vsc-install and https://easybuild.readthedocs.io/en/latest/EasyBuild4-overview-relocated-functions-constants.html
- setuptools is longer required (neither for installing or using EasyBuild) (#2836, #2837, #2984, #2986, #2988)
- see also https://easybuild.readthedocs.io/en/latest/EasyBuild4-overview-of-changes.html#no-more-required-python-packages
- this required moving some classes and constants, see https://easybuild.readthedocs.io/en/latest/EasyBuild4-overview-relocated-functions-constants.html
- the 'dummy' toolchain is deprecated and replaced by the 'system' toolchain (#2877, #3001)
- if 'dummy' is still used as a toolchain in easyconfig files, a warning will be printed
- use "toolchain = SYSTEM" instead
- for more information, see https://easybuild.readthedocs.io/en/latest/System_toolchain.html
- a warning is printed when local variables in easyconfig file don't follow the recommended naming scheme (#2938, #2968)
- see also https://easybuild.readthedocs.io/en/latest/Easyconfig-files-local-variables.html
- names of software installation directories are independent of module naming scheme by enabling --fixed-installdir-naming-scheme by default (#2999)
- see https://easybuild.readthedocs.io/en/latest/EasyBuild4-overview-of-changes.html#fixed-installdir-naming-scheme-enabled-by-default for more information
- various other small enhancements, including:
- use requests instead of urllib2 for 403 errors (#2695)
- use pip requirements file in Travis (#2874)
- add support for --fix-deprecated-easyconfigs (#2881, 2898, #2938)
- add -L$EBROOTIMKL/lib/intel64 to $LDFLAGS for MKL (#2930)
- handle dict-type checksums in check_checksums_for (#2974)
- allow that icc & ifort are not actual dependencies in iccifort toolchain module (#2995)
- define mapping for iccifort->intel for iccifort compiler-only toolchain for HMNS (#2996)
- also consider concatenation of compiler module names to determine details of toolchain compiler component (#2997)
- update metadata for Cray-provided external modules (#3013)
- various bug fixes, including:
- update the PyPI trove classifiers in setup.py (#2875)
- reverse lists for $LDFLAGS and $CPPFLAGS (#2931)
- enhance/fix to_template_str function to do a better job at using template values in dumped easyconfigs (#2948)
- also take into account --filter-deps when finalizing parsed dependencies to fix problem with dependency filters using version ranges (#2983)
- fix broken --from-pr tests due to archiving of easyconfigs (#2985)
- fixes required to avoid breaking Cray support (#3008)
- fixes for --read-only-installdir: avoid crash with ModuleRC easyblock + also make log file in installdir read-only (#3012)
- other changes:
- add check to ensure that --robot argument specifies an existing directory (#2086)
- remove old scripts that are no longer useful (+ minor fixes to others) (#2897)
- use 'command -v' to avoid requiring 'which' in 'eb' command (#2979)
- add modluafooter & modtclfooter at the end of the generated module file (#3003)
- print warning when 'eb' command is not found in $PATH and for empty robot search path (#3006)
v3.9.4 (August 23rd 2019)
-------------------------
update/bugfix release
- various enhancements, including:
- add support for specifying checksum via dict providing a filename-to-checksum mapping (#2946)
- enhance 'completed' message with how much time was needed for the installation (#2956)
- add support for specifying tuple of alternative checksums (#2958)
- support using 'system' as alias for 'dummy' toolchain + SYSTEM constant (#2960)
- ensure 'docurls' easyconfig parameter value is a list of string values, not a single string value (#2963)
- automatically enable --ignore-osdeps when using --check-contrib or --check-style (#2965)
- various bug fixes, including:
- escape '+' in search queries + handle invalid search queries better (#2967)
- also consider extension patches when determining for which easyconfig a given patch file is intended in --new-pr/--update-pr (#2969)
- unset $CDPATH early on if it is defined (#2970)
- create specified temporary log directory if it doesn't exist yet in init_logging (#2972)
- don't indicate first multi_deps version as default in module help text when multi_deps_load_default=False (#2973)
- other changes:
- deprecate toolchains older than gompi/2016a and foss/2016a (#2951)
v3.9.3 (July 8th 2019)
----------------------
update/bugfix release
- various enhancements, including:
- add a URL whatis line to generated module files (#2933)
- various bug fixes, including:
- stick to Ubuntu Trusty when testing with Python 2.6 in Travis (#2928)
- honor --tmp-logdir when determining location of temporary log file (#2937)
v3.9.2 (June 9th 2019)
----------------------
update/bugfix release
- various enhancements, including:
- enhance (experimental) support for generating Singularity container recipes/images (#2884, #2900, #2902, #2903, #2907, #2909, #2910, #2913, #2915)
- add support for specifying container configuration via --container-config (--container-base option has been removed)
- add support for providing custom template for container recipe via --container-template-recipe
- add support for 'sif' Singularity 3.x container image format
- add support for specifying non-image based Singularity bootstrap agents
- install default set of OS packages in container recipes starting from scratch
- configure Lmod and update Lmod spider cache in generated Singularity container recipes
- configure EasyBuild via environment variables (to allow overriding configuration settings via options to 'eb' command)
- also consider /tmp/easybuild/sources in source path (to allow seeding in sources in container build environment)
- updated documentation is available at https://easybuild.readthedocs.io/en/latest/Containers.html
- various bug fixes, including:
- make sure that easyconfig file for EasyBuild version being bootstrapped is found in robot search path (#2899)
- remove interpreter options when fixing script shebang (#2905, #2906)
- fix crash on iterated installation when using Cray toolchains (#2914)
- disable checking of read/exec permissions when checking for availability of 'sudo' command (#2918)
- other changes:
- stick to vsc-base<2.9.0 in bootstrap script to avoid requiring 'future' dependency (#2892)
v3.9.1 (May 20th 2019)
----------------------
update/bugfix release
- various enhancements, including:
- add function to determine whether specified easyblock is generic or not (#2838)
- add support to apply_regex_substitutions function to skip creation of backup (#2844)
- add support for %(pymajver)s (& co) (#2850)
- add support for 'fix_python_shebang_for' and 'fix_perl_shebang_for' easyconfig parameters (#2878)
- add multi_deps information to generated module, help and whatis sections (#2882)
- add support for 'eb --missing' ('eb -M') (#2883)
- see also https://easybuild.readthedocs.io/en/latest/Using_the_EasyBuild_command_line.html#getting-an-overview-of-missing-installations-missing-m
- various bug fixes, including:
- only call 'scontrol release' when there's at least one job submitted (#2834)
- fix small bug in find_eb_script + various minor issues with tests (related to environment in which tests are run) (#2835)
- list build dependencies *before* runtime dependencies, so dependencies listed via multi_deps are loaded first in toolchain environment (#2839)
- allow setting parallel to 0 or False to disable adding the -j argument (#2842)
- be more careful when using single quotes for Tcl syntax (#2847)
- append to existing .modulerc file rather than overwriting it (if --force is used) (#2848)
- correctly resolve template values used for extensions (#2852)
- update template values after updating iterative easyconfig parameters (#2854)
- add top-level directories of hierarchical module naming scheme to $MODULEPATH before loading dependencies (#2857)
- inject dependencies specified via multi_deps before normal build dependencies (#2861)
- include Python version(s) in PR titles auto-generated by --new-pr (#2863, #2880)
- update HierarchicalMNS for GCCcore toolchain (#2870)
- bump iteration index counter at the correct time (#2886)
- don't specify --ntasks-per-node when submitting Slurm jobs (#2887)
- fix order of easyconfig parameters in output generated by 'eb --avail-easyconfig-params --output-format rst' (#2888)
- other changes:
- lower required version in Slurm job backend to 16.05 (#2833)
- add Lmod 8 to test suite (#2849)
- deprecate useless 'skip_lower' named argument in template_constant_dict, always define *lower templates (#2856)
- fix Python classifiers in setup.py, should be (only) Python 2.6 & 2.7 (#2876)
v3.9.0 (April 12th 2019)
------------------------
feature release
- various enhancements, including:
- add (pre)testopts easyconfig parameters (#2793)
- add support for multi_deps easyconfig parameter (#2741, #2810, #2811, #2812, #2813, #2825, #2826, #2827, #2828)
- various bug fixes, including:
- fix argument name in close_pr (#2752)
- fix undefined variable 'prefix' in Compiler._set_compiler_vars (#2757)
- fix test account for GitHub-related tests (#2760)
- make sure read permissions are always set in permissions_step (#2770)
- make test for dep_graph function robust against changing order of lines in resulting dot file (#2772)
- fix problem with import_available_modules when running from easybuild-framework directory (#2786)
- prepend location of test easyblocks to $PYTHONPATH to test_generate_software_list, rather than append (#2788)
- use pid in backup name candidate to reduce risk of two processes colliding (#2796)
- automatically enable --ignore-osdeps when using --preview-pr (#2799)
- use temporary checkout of repository as robot path for --new-pr and --update-pr to determine locations for patch files (#2803)
- avoid relying on order in which keys are processed in to_dependency (#2804)
- fix yeb format to work with PyYAML 5 (#2809)
- fix typo in error message for use of unknown easyconfig parameter (#2817)
- enhance log_file_format to fix problem when %(name)s template value is used for log directory (#2818)
- iterate over subdirectories in order in find_egg_dir_for of bootstrap script, to ensure oldest vsc-install is picked (#2819)
- replace -Wl,--enable-new-dtags compiler option with -Wl,--disable-new-dtags in RPATH wrapper script (#2821)
- updated COMPILER_F77 for PGI >= 19.1 (#2823)
- added FFTW_STATIC_LIBS_MT to FFTW_MAP_CLASS, otherwise FFTW_STATIC_LIBS_MT are incorrectly defined (#2822)
- sort available version list when selecting/generating easyconfig (#2732)
- other changes:
- use assertEqual rather than assertEquals (which is deprecated) (#2746)
- test with Tmod 4.1.4 (packaged in RHEL8) in Travis CI (#2747)
- replace deps by hidden deps instead of removing them from the lists (#2748)
- ensure non-zero exit code for all test subsuites (+ fix trivial style issues) (#2773)
- silence printed deprecation warnings for easyconfigs/toolchains while running (easyconfigs) test suite (#2781)
- avoid printing of messages/warnings in framework test suite (#2782)
- enable silent mode for --new-pr and --update-pr (#2802)
- update Travis config to reflect that PyYAML 5.x is no longer compatible with Python 2.6 (#2807)
v3.8.1 (January 29th 2019)
--------------------------
bugfix release
- various minor enhancements, including:
- speed up checking of OS dependencies (#2703)
- add support for 'eb --show-system-info' (#2722)
- add support for '%(arch)s' template value in easyconfig files (x86-64, aarch64, ppc64le, ...) (#2728)
- various bug fixes, including:
- add timestamp to reprod dir while in tmp space (#2705)
- avoid '+' in directory name for g++ rpath wrapper (#2710)
- pre-install vsc-install < 0.11.4 in bootstrap script to avoid requiring 'mock' Python package (#2717)
- fix check in --merge-pr whether PR is eligible for merging in to only consider the status of the last test report (#2720)
- don't recreate build directory when 'buildininstalldir' is enabled for iterative installations (#2724)
- filter (CUDA) lib*/stubs paths in RPATH wrapper script (#2725)
- other changes:
- replace 'except IOError, err:' pattern with 'except IOError as err:' for compatibility with Python 3.x (#2711)
- make all print statements compatible with Python 3 (#2715)
- avoid use of sys.maxint in dependencies_for (#2716)
v3.8.0 (December 18th 2018)
---------------------------
feature release
- various enhancements, including:
- support use of version ranges in --filter-deps (#2357)
- add support for --list-prs (#2400, #2668)
- add support for --close-pr (#2401)
- allow setting optarch compiler flags in the easyconfig via toolchainopts easyconfig parameter (#2595)
- add option to skip pre-creation of install directory: --disable-pre-create-installdir (#2629, #2637)
- flesh out setting up of configuration into dedicated 'set_up_configuration' function (#2638)
- clean error when 'eb' is cancelled by user (#2641)
- add support for using Slurm as backend for --job, via --job-backend=Slurm (#2642, #2666)
- save easyblocks along with easyconfig in 'reprod' subdirectory of install directory (#2653)
- add support for deprecating easyconfig files & toolchains (#2656)
- changed easyconfig.update to be able to specify not to allow duplicate values (#2657)
- move adding of dependencies to prepare step instead of check readiness step (#2674)
- add support for disabling mapping of (sub)toolchains when --try-toolchain is used, via --disable-map-toolchains (#2682)
- add 'astro' and 'quantum' module classes (#2693)
- various bug fixes, including:
- make --from-pr always try to apply PR patch on top of PR target branch (#2631)
- fix bug that could cause to silently overwrite an existing easyconfig when using --try-* (#2635)
- don't pass down specific environment variables into submitted jobs (#2643)
- update template constants for source URLs to use https (#2648)
- fix lib64 fallback for 'lib'/'lib64' dirs entry in sanity_check_paths (#2649)
- change PGI F90 Fortran compiler to pgf90 (#2650)
- use --set-upstream-to in install-EasyBuild-develop.sh script to deal with deprecated/no longer supported --set-upstream (#2651)
- fix order of keys in 'toolchain' value for dumped easyconfig file (name, version) + run style check on dumped easyconfigs in dump tests (#2660)
- ensure checksums beside sources in dumped easyconfigs (#2661)
- fix problems with easyconfig file saved in 'reprod' directory by copying it before running any installation steps (#2664)
- make print functions more robust w.r.t. arguments being passed to format the message to be printed (#2670)
- use 'git am' to apply patch for PRs in fetch_easyconfigs_from_pr (#2680)
- correctly define $LIBFFT_MT for Intel MKL (#2688)
- don't always require easyconfig files to resolve dependencies (#2690, #2692, #2697, #2698, #2699)
- fixes for Travis CI config:
- stop testing with Lmod 6.6.3, testing with Lmod 6.5.1 is sufficient (#2627)
- Python 2.6 requires python-daemon 1.x as dep for GC3Pie (#2673)
- stick to idna<2.8 with Python 2.6 in Travis + distable broken test for HgRepository (#2678)
- other changes:
- always skip symlinks in adjust_permissions (#2644)
- flesh out 'avail_easyblocks' function from support for --list-easyblocks (#2663)
- deprecate the ictce toolchain (#2667)
- deprecate goolf and goolfc toolchains (#2676)
- deprecate intel toolchains older than intel/2016a (+ iccifort & iimpi subtoolchains) (#2677)
- deprecate ancient gompi toolchain versions (#2684)
- use 'tar xzf' (gzip) rather than 'tar xZf' (ancient compress) to unpack *.tar.Z source files (#2686)
- flesh out 'set_parallel' method to it can be called separately (#2687)
v3.7.1 (October 18th 2018)
--------------------------
bugfix release
- various enhancements, including:
- generate .modulerc.lua when Lua syntax and Lmod >= 7.8 is used (#2597)
- allow --force to use regex if --try-toolchain can not map intelligently (#2605)
- add support for disabling modules tool version check (#2610)
- add support to ModuleGenerator.modulerc method to also write .modulerc file (#2611)
- check whether module file being wrapped exists in same directory as module wrapper when using Lmod 6.x (#2611)
- various bug fixes, including:
- stop relying on 'easy_install' in bootstrap script, use 'python -m easy_install' instead (#2590)
- fix templating of values in list_software function (#2591)
- fix composing of lib64 fallback paths in sanity check (#2602)
- determine file_info for all easyconfigs before any actual copying in copy_easyconfigs function (#2604)
- also check for module wrappers in 'ModulesTool.exist' method (#2606)
- add trailing newline to module load message if it's not there yet (#2613)
- retain all dependencies when determining dependency tree of a toolchain (#2617)
- protect exts_lists from templating in dump method (#2619)
- making CUDA capability detection more robust (#2621)
- other changes:
- lower required Lmod version to 6.5.1 (#2593)
v3.7.0 (September 25th 2018)
----------------------------
feature release
- minimal Lmod version requirement bumped to 6.6.3 (#2575)
- various enhancements, including:
- add support to bootstrap script to force install specific EasyBuild version (#2382, #2580)
- consider potential of multiple subtoolchains when resolving dependencies (#2464, #2465, #2466, #2585)
- fall back to downloading using the requests Python package (if installed) when urllib2 fails due to SSL error (#2538)
- make --try-toolchain more aware of subtoolchains (#2539)
- subtoolchain of original toolchains are now mapped to subtoolchains of target toolchain
- add support for BLIS and goblf toolchain that uses BLIS for BLAS (#2540)
- allow skipping of sanity check step via 'skipsteps' easyconfig parameter (#2549)
- add support for --check-contrib (#2551)
- equivalent with --check-style, but also verifies presence of SHA256 checksums (+ more checks in the future)
- added support to 'download' sources from git (#2555)
- see https://easybuild.readthedocs.io/en/latest/Writing_easyconfig_files.html#downloading-from-a-git-repository
- add 'parse' hook to add support for applying site-specific customisations to the 'raw' easyconfig (#2562, #2566)
- see https://easybuild.readthedocs.io/en/develop/Hooks.html
- lift invalidating of module caches into helper method that can be used by easyblocks (#2571)
- always dump a fully parsed easyconfig to the 'reprod' subdir of the installation directory (#2574)
- add 'modulerc' method to ModuleGenerator class (#2575)
- various bug fixes, including:
- make GC3Pie stop build process if a dependency failed (#2474)
- filter out patched files in test/ in fetch_easyconfigs_from_pr (#2547)
- check GC3pie version using the `pkg_resources` API rather than using __version__ (which was removed in GC3Pie 2.5.0) (#2554)
- fix enforcing of checksums for extensions (#2561, #2570, #2579)
- skip running of configuration checks while only a single configuration level is taken into account during --show-config (#2567)
- fix error statements in modules tool version checks (#2576)
- fix finding of software subdirectory for specified patch file in --new-pr/--update-pr (#2577)
- take into account dependency 'wrappers' in check_conflicts (#2583)
- stick to pycparser < 2.19 with Python 2.6 in Travis config (#2584)
- other changes:
- use namelower as default for 'github_account' easyconfig parameter (#2528)
- use .counts() rather than deprecated .stats() for GC3Pie (#2573)
v3.6.2 (July 11th 2018)
-----------------------
bugfix release
- various enhancements, including:
- add support for including environment variable that is resolved at "module load time" in user module path (#2395)
- {RUNTIME_ENV::EXAMPLE} is replaced by value of $EXAMPLE when module is loaded
- also support generating Docker container recipes & image via --containerize (still experimental) (#2479)
- add support for specifying source URLs directly in 'sources' (#2520)
- perform early 'raw' parse of provided easyconfig file to check for syntax error or faulty inputs (#2523)
- add 'bitbucket_account' easyconfig parameter and template, and let BITBUCKET* templates use it (#2525)
- various bug fixes, including:
- take into account --filter-deps when re-loading build dependencies in extensions_step (#2516)
- fix for offline use of bootstrap script: ignore errors when determining source URLs if source tarballs are provided (#2517)
- fix error message that is raised for incorrect type of value in sanity_check_paths (#2524)
- other changes:
- move flake8 config into setup.cfg + fix style issues in easybuild/tools/options.py (#2511)
- make test that verifies that BuildOptions does not support updating a bit more flexible (#2518)
v3.6.1 (May 28th 2018)
----------------------
bugfix release
- various enhancements, including:
- add support for enabling fallback in sanity check to consider lib64 equivalent for seemingly missing libraries (#2477)
- add GITHUB_LOWER_SOURCE constant (#2491)
- add 'exts_download_dep_fail' as known easyconfig parameter (#2493)
- add support for passing custom messages on failing sanity check for extensions (#2494)
- add definition for fosscuda toolchain (#2507)
- various bug fixes, including:
- make --inject-checksums always re-order source_urls/sources/patches/checksums (#2487)
- fix git remote url in CONTRIBUTING.md (#2490)
- make flake8 happy in easyblock.py (#2492)
- handle missing permissions for adding labels in --new-pr (#2497)
- restore tweaked $TMPDIR value after loading module (for sanity check) (#2498)
- enhance get_module_path function to auto-detect generic vs software-specific easyblock class names (#2502)
- don't blindly overwrite an existing easyconfig in tweak_one (#2504)
- take account that PlaintextKeyring may be provided via keyrings.alt (#2505)
- prepend location for temporary module file to $MODULEPATH with high priority + mark it as default in load_fake_module method (#2506)
v3.6.0 (April 26th 2018)
------------------------
feature release
- (experimental) support for generating Singularity container recipes & (optionally) images via 'sudo singularity' (#2332, #2480, #2481, #2482, #2483)
- see documentation at http://easybuild.readthedocs.io/en/latest/Containers.html
- include -ftree-vectorize and -fno-math-errno in default compiler optimisation flags for GCC (#2388)
- this significantly improves performance of generated binaries when building with a GCC-based toolchain
- can be disabled if needed via the 'vectorize' toolchain option
- several enhancements/fixes to GitHub integration support:
- loosen commit message requirements for --new-pr w.r.t. to patches as long as all easyconfigs are new (#2438)
- automatically add 'new' and/or 'update' labels in --new-pr (#2384)
- add force_in_dry_run=True to copy_file in copy_patch_files (#2442)
- test for custom commit message when deleting a file instead of when adding a patch (#2443)
- make diff_stat pattern also match output of older git versions in tests for --new/update-pr (#2444)
- remove duplicates from --new-pr title (#2478)
- add support for "eb --fetch" to only download sources (even without having a modules tool installed) (#2457)
- add definitions for a bunch of new toolchains:
- golf (#2458), gmkl (#2460), gomkl (#2455), pmkl (#2460)
- toolchains including CUDA: gmklc, gomklc, iimklc, iompic, iomklc (#2461)
- various minor enhancements, including:
- avoid that '--inject-checksums' adds lines longer than 120 characters (#2434)
- enable caching of $HOME/.cache/pip in Travis config (#2435)
- replace raw strings with bytes literal as iterator sentinels in checksum calculation (#2446)
- new command-line option '--job-max-jobs' to cap nr of submitted build jobs with GC3Pie (#2378)
- add configuration for houndci + flake8 (#2451)
- add Accept header when downloading file (#2437)
- include running of 'eb --check-github' in Travis config (#2449, #2454)
- flesh out common code blocks in test/framework/options.py (#2452)
- support 'depends_on' load statements in generated modules via --module-depends-on and module_depends_on easyconfig parameter (#2391)
- fix compatibility with Modules v4.1.x (#2470)
- add support to run_cmd to enable streaming output (#2476)
- various bug fixes, including:
- determine whether included easyblocks are generic or not based on class they define (#2432)
- make sure GitHub token is used in test for --preview-pr (#2436)
- take into account that toolchain components may be hidden when determining toolchain composition (#2440)
- stick to autopep8 1.3.4 when testing with Python 2.6 (#2462)
- strip off .lua extension when backing up modules to ensure Lmod 6.x doesn't pick up on them (#2463)
- check for modulecmd.tcl before modulecmd in bootstrap script to discriminate between Modules 4.1.x vs 3.2.10 (#2468)
- fix derive_alt_pypi_url after PyPI switching to sha256 in package URLs + fix broken test for pypi_source_urls + fix bootstrap script (#2471)
- make sure that both 'get_git_revision' and 'this_is_easybuild' return regular strings rather than Unicode strings (#2472)
v3.5.3 (March 7th 2018)
-----------------------
bugfix release
- various enhancements, including:
- re-enable testing against environment modules, bump Lmod to 7.7.16 (#2425)
- print which hook is being executed in the command line output (#2427)
- various bug fixes, including:
- fix order in result of gen_list_easyblocks and gen_easyblocks_overview_rst (#2421)
- fix target account for branch pushed when using --new-pr (#2426)
v3.5.2 (March 2nd 2018)
-----------------------
bugfix release
- various enhancements, including:
- add functionality to skip devel module with naming scheme (#2374)
- add pagination support in clean_gists.py (#2379)
- allow basic compiler modulenames to be specified as keys in optarch (#2387)
- initial set of OHPC module meta data for EasyBuild (#2392)
- allow different target account in post_comment_in_issue (#2399)
- declare support for RPATH linking stable (#2409)
- various bug fixes, including:
- update bootstrap script to be compatible with Modules v4 (#2390)
- avoid fatal error when determining glibc version on non-glibc Linux system (e.g. Alphine Linux) (#2398)
- exclude location of RPATH wrappers from $PATH to avoid fork bomb (#2410)
- fix target account for --update-pr in case it's different from GitHub account being used to push branch (#2419)
v3.5.1 (January 16th 2018)
--------------------------
bugfix release
- various enhancements, including:
- add definition of giolfc toolchain (#2359)
- add support for Environment Modules 4 (#2365)
- various bug fixes, including:
- install SQLAlchemy < 1.2.0 with Python 2.6 in Travis config (#2367)
- make code in easybuild/tools/job/gc3pie.py forward-compatible with GC3Pie 2.5 (#2373)
v3.5.0 (December 15th 2017)
---------------------------
feature release
- add support for implementing pre- and post-step hooks (#2343)
- documentation available at http://easybuild.readthedocs.io/en/latest/Hooks.html
- various enhancements, including:
- add support for foss-like toolchain with Spectrum MPI: gsolf (#2329)
- add support for --preview-pr (#2331, #2337, #2348)
- see also http://easybuild.readthedocs.io/en/latest/Integration_with_GitHub.html#previewing-easyconfig-pull-requests-preview-pr
- flesh out find_extension function, hoist dict with extract commands into a constant (#2336)
- add support for using self.start_dir rather than using self.cfg['start_dir'] (#2339)
- add support for 'exts_default_options' easyconfig parameter (#2345, #2346)
- allow use of 'start_dir' easyconfig parameter in extensions (#2353)
- various bug fixes, including:
- fix typo in 'giolf' toolchain definition (#2327)
- fix minor issues with --inject-checksums (#2333)
- fix error message when 'gv' Python package is not available (#2340)
- install paramiko version < 2.4.0 for Python 2.6 in Travis config (#2344)
- disable broken log rotation, avoid duplicate logging of output of executed commands under '--debug' (#2347)
- also include $ORIGIN and absolute paths to 'lib' and 'lib64' subdirectories in RPATH locations (#2358)
- fix repo references in install-EasyBuild-develop.sh script (#2360)
v3.4.1 (October 17th 2017)
--------------------------
bugfix release
- various enhancements, including:
- improve trace output for executed commands + drop requirement for --experimental for --trace (#2306)
- add giolf toolchain definition: GCC, IntelMPI, OpenBLAS, (Sca)LAPACK and FFTW (#2310)
- add support for --force-download and --ignore-checksums (#2313, #2314)
- flesh out pypi_source_urls from derive_alt_pypi_url (#2319)
- various bug fixes, including:
- also check for use of --rebuild next to --force to skip sanity check with --module-only (#2307)
- ensure $TMPDIR is set to a short path for OpenMPI v2.x (#2311)
- guard 'module load' commands in generated modules under --recursive-unload to avoid load storms (#2316)
- correctly deal with use of special characters in description & co (#2320)
- fix incorrect FFT_INC_DIR for Intel MKL (#2323)
v3.4.0 (September 10th 2017)
----------------------------
feature release
- various enhancements, including:
- add support for backing up modules via --backup-modules (#2134)
- enabled automatically with --module-only and --skip
- see also http://easybuild.readthedocs.io/en/latest/Backup_modules.html
- add support for --search-paths to extend list of locations considered by --search/-S (#2255)
- include userInGroup check in Lua modules when installation is group-restricted (#2274)
- add experimental support for 'eb --trace' (#2285)
- see also http://easybuild.readthedocs.io/en/latest/Tracing_progress.html
- add support for 'eb --inject-checksums' (#2286, #2292, #2293)
- see also http://easybuild.readthedocs.io/en/latest/Writing_easyconfig_files.html#adding-or-replacing-checksums-using-inject-checksums
- add support for append_paths in module generator (#2294)
- various bug fixes, including:
- strip provided GitHub token of spaces in --install-github-token (#2270)
- remove 'provides' line from setup.py (#2275)
- pass down stdin in 'import' check for extensions during sanity check (#2276)
- make sure location to 'eb' installed during stage 1 is included in $PATH during stage 2 of bootstrap procedure (#2281)
- make resolve_path robust against None path being provided (#2282)
- ensure clean error message on easyconfig file parse failure (#2290)
- fix regex to avoid sucking up additional lines prior to module file path in modulefile_path (#2291)
- fix error message when --use-ccache is used but ccache is not available in $PATH (#2295)
v3.3.1 (July 12th 2017)
-----------------------
bugfix release
- various enhancements, including:
- add support for 'allow_prepend_abs_path' easyconfig parameter (#2254)
- support for --merge-pr (#2266)
- various bug fixes, including:
- resolve symlinks to location of 'eb' in get_paths_for (#2248)
- fall back to checking location relative to 'eb' location in find_eb_script (#2249)
- respect --suffix-modules-path value for user-specific module path extensions (#2250)
- update EasyBuild bootstrap script to download distribute tarball from http://easybuilders.github.io/easybuild/files (#2256)
- fix default target GitHub account/organisation for --new-pr & co + fix tests that got broken by migration to github.com/easybuilders (#2258)
- fix checking for new easyconfigs in copy_easyconfigs, pick up specified commit message as PR title if none was provided (#2259)
- get rid of references to hpcugent after move to github.com/easybuilders (#2261)
- automatically enable --ignore-osdeps under --new-pr and --update-pr (#2262)
v3.3.0 (June 26th 2017)
-----------------------
feature release
- various enhancements, including:
- clean up easyconfigs that are copied for inclusion in pull request (#2197, #2227)
- use devel logging where relevant in easybuild.tools.toolchain (#2198)
- check exit code for executed module commands (#2200)
- also copy patches to installation directory & easyconfigs archive along with easyconfig file (#2202, #2241)
- add support for SHA256 checksums (#2215)
- also auto-detect whether provided checksum is MD5 or SHA256 based on length (if not checksum type is specified)
- add support for --enforce-checksums, to require availability of checksums for sources/patches
- see https://easybuild.readthedocs.io/en/latest/Writing_easyconfig_files.html#source-files-patches-and-checksums
- add support for renaming sources on download (#2223)
- also involves deprecating use of 2-tuple elements in list of sources, see https://easybuild.readthedocs.io/en/latest/Deprecated-functionality.html#depr-sources-2-element-tuple
- add support for --detect-loaded-modules (#2228)
- give extensions access to module_generator of parent (#2229)
- pass down additional arguments to copy_dir down to shutil.copytree (#2230)
- avoid reloading already loaded modules that extend $MODULEPATH (#2232)
- various bug fixes, including:
- make sure test account & accompanying token is used in tests for github.py (#2220, #2224)
- only use MPD for old versions of Intel MPI (<4.1) in mpi_cmd_for (#2221)
- escape dots in package filename to ensure correct match in derive_alt_pypi_url (#2225)
- fix GNU_SOURCE template by adding missing /gnu/ (#2235)
- catch exception shutil.Error in copy_file (#2239)
- report full error and traceback on unhandled exception in test report (#2240)
- fix --set-default-module flag (#2243)
v3.2.1 (May 12th 2017)
----------------------
bugfix release
- various enhancements, including:
- make hardcoded max ratio for failures in adjust_permissions configurable (#2213)
- allow https on direct download in sources (#2214)
- various bug fixes, including:
- bump version bootstrap script to sync with latest update (#2208)
- fix crash during module generation when '%' character is used in description (#2209)
v3.2.0 (May 5th 2017)
---------------------
feature release
- various enhancements, including:
- add support for marking installed module file as new default version using --set-default-module (#2110)
- additional easyconfig parameters for documentation: docpaths, examples, site_contacts, upstream_contacts, usage (#2113)
- add support for --allow-use-as-root-and-accept-consequences (#2123)
- enable extraction of patches from compressed files before applying them (#2128)
- alphabetically sort functions and methods in module_generator module (#2132)
- introduce function ensure_iterable_license_specs (#2157)
- bump Travis config to use Lmod 7.4 (#2176)
- implement copy_dir function in filetools (#2177)
- clarify error message when no software-specific easyblock was found (#2178)
- make log.deprecated more verbose by also printing deprecation warnings to stderr (#2179)
- add copy function to filetools for easy copying of lists of files/directories (#2180)
- add support for --verify-easyconfig-filenames (#2185)
- add support for --package-tool-options (#2187)
- take into account inline trailing comments in fetch_parameters_from_easyconfig (#2192)
- add support for customising easyconfig parameters on a per-extension basis (#2194)
- perform sanity check after stage 2 of EasyBuild bootstrap script, module file should be in place (#2199)
- change order in which module commands are checked, consider Lmod first (#2201)
- various bug fixes, including:
- fix use of compiler-specific --optarch value in combination with --job (#2183)
- call run_all_steps in regtest mode rather than running steps individually (#2203)
v3.1.2 (March 20th 2017)
------------------------
bugfix release
- fix broken packaging support by fixing ``run_cmd`` bug with ``shell=False`` (#2153)
- minor enhancements, including:
- implement change_dir function in filetools module (#2155)
- use checker_state in trailing whitespace style check + add dedicated test (#2160, #2169)
- consider both pycodestyle and pep8 Python modules in style checks (#2161)
- make bootstrap script aware various modules-related $EASYBUILD_* environment variables (#2170)
- various bug fixes, including:
- interpret statements that extend $MODULEPATH in modpath_extensions_for method (#2104)
- also fixes inclusion of superfluous load statements in modules installed in user HMNS module tree (cfr. #2172)
- take into account that $PATH or $PYTHONPATH may be empty when running tests (#2149)
- handle duplicates in --include-* (#2151)
- exclude dependencies of dependencies that extend $MODULEPATH (#2152)
- add ld.bfd to RPATH wrappers (#2156)
- fix test_vsc_location, vsc.__file__ may not be available when vsc is installed as a namespace package (#2159)
- fix reported problems with scripts & docs tests (#2164)
- fix --try-software-version using non-greedy matching + lookahead assertion, add test for tweak_one (#2166)
- avoid creating empty modulefile directories when using modaltsoftname (#2168)
- fix fftw_libs for MKL without interface libraries (#2171)
v3.1.1 (March 7th 2017)
-----------------------
bugfix release
- minor enhancements, including:
- print more useful error message when no compiler-specific optarch flag is defined (#1950)
- add ec parameter to expand_toolchain_load() (#2103)
- clarify unstable/closed PR warning message (#2129)
- various bug fixes, including:
- ensure that $EBEXTSLIST* is also included in generated module under --module-only (#2112)
- fix formatting issues in generated documentation for --list-software and --avail-easyconfig-licenses (#2121)
- fix problem with backticks in description breaking 'fpm' packaging command (#2124)
- replace --enable-new-dtags with --disable-new-dtags instead of removing it in RPATH wrapper script (#2131)
- only perform is_short_modname_for sanity check in det_short_module_name if modaltsoftname is available (#2138)
- fix logic in make_module_dep w.r.t. excluding loads for toolchain & toolchain components (#2140)
- skip test_check_style if pep8 is not available (#2142)
v3.1.0 (February 3rd 2017)
--------------------------
feature release
- various enhancements, including:
- ARM: GCC optimal/generic architecture compiler flags (#1974)
- add support for --check-style to check style in easyconfig files (#1618, #2038)
- add HOME and USER from envto available cfg file constants (#2063)
- --optarch can now be specified on a toolchain basis (#2071)
- implement get_cpu_features function in systemtools (#2074, #2078)
- support use of linalg without MPI, add iimkl toolchain definition (#2082)
- spoof HTTP request header with empty agent (#2083)
- exclude dependencies of dependencies that extend $MODULEPATH in make_module_dep (#2091)
- various bug fixes, including:
- make fetch_github_token more robust against RuntimeError from keyring (#2070)
- POWER: Fix `--optarch=GENERIC` for GCC (#2073)
- fix docstring in toolchain class (#2075)
- skip test cases involving .yeb if PyYAML is not installed, silence test in options subsuite (#2081)
- fix traceback with 'eb --check-github' if GitPython is not installed (#2085)
- fix regex for determining list of patched files in GitHub diff (#2088)
- modify robot so that it only appends dependencies of tweaked easyconfigs (#2090)
- escape metacharacters in paths passed to re.compile in dry_run_set_dirs (#2098)
- fix broken error message in get_toolchain_hierarchy + dedicated test case (#2099)
v3.0.2 (December 22nd 2016)
---------------------------
bugfix release
- various bug fixes, including:
- also skip dependencies of dependencies marked as external module in get_toolchain_hierarchy (#2042)
- disable verbose setvar in modules.py (#2044)
- force copying of easyconfigs in --new-pr/--update-pr, even when combined with -x (#2045)
- fix verification of filename for easyconfigs used to resolve deps (#2051)
- skip RPATH sanity check when toolchain did not use RPATH wrappers (#2052)
- check whether file-like paths are readable before reading them in systemtools module (#2065)
- various small enhancements, including:
- add 'rpath' toolchain option to selectively disable use of RPATH wrappers (#2047)
v3.0.1 (November 30th 2016)
---------------------------
bugfix release
- important changes
- always use Intel-specific MPI compiler wrappers (mpiicc, mpiicpc, mpiifort) for toolchains using
both Intel compilers and Intel MPI (#2005)
- various small enhancements, including:
- use setvar in modules.py to define environment variables (#2011)
- include output of sanity_check_commands in the build log (#2020)
- various bug fixes, including:
- fix testing of bootstrap script in Travis config (#2003)
- use correct module syntax in bootstrap script if Lmod is not used (i.e. Tcl) (#2007)
- fix packaging issue with non-Python scripts in easybuild/scripts (#2015)
- fixes issue where RPATH wrapper template script (rpath_wrapper_template.sh.in) was not included in v3.0.0 release
- make tests more robust against running headless (#2016)
- avoid rewrapping already wrapped compiler/linker command with RPATH wrapper script (#2022)
- fix log.error traceback due to 'raise EasyBuildError' involving a '%s' in error message (#2024)
- make sure 'modules_tool' attribute is also defined for extensions (#2026)
- only dump easyconfig with modified deps due to --minimal-toolchains to 'reprod' subdir of install dir (#2028)
- avoid appending '-h' to sanity check commands specified as a string (#2030)
- fix bug in list_software_rst: always include versionsuffix regardless of value (#2032)
v3.0.0 (November 16th 2016)
---------------------------
feature release
- backward-incompatible changes:
- make robot always consider subtoolchains, even without --minimal-toolchains (but in reverse order) (#1973)
- clean up behaviour that was deprecated for EasyBuild v3.0 (#1978)
- change default config to use Lmod/Lua for modules tool/syntax, GC3Pie as job backend (#1985)
- the minimal required version of Lmod was bumped to 5.8 (#1985)
- major new features:
- (experimental) support for RPATH linking via --rpath (#1942)
- see https://easybuild.readthedocs.io/en/latest/RPATH-support.html
- add support for --consider-archived-easyconfigs (#1972)
- see https://easybuild.readthedocs.io/en/latest/Archived-easyconfigs.html
- stabilize --new-pr and --update-pr (#1979)
- see https://easybuild.readthedocs.io/en/latest/Integration_with_GitHub.html
- various other small enhancements, including:
- add support for 'devel' log level (#1815)
- make remove_file aware of --extended-dry-run + add dedicated unit test (#1932)
- add support for filtering out setting/updating particular environment variables from generated modules (#1943)
- see --filter-env-vars
- clean up output of EasyBuild bootstrap script & add version (#1944)
- improved ARM platform/CPU detection (#1953)
- use '0' as letter dir for funky software names that don't start with a letter, e.g., 3to2 (#1954)
- make bootstrap script aware of vsc-install for offline installation (#1955)
- add support for blas_family() and lapack_family() methods in Toolchain instances (#1961)
- make copy_file dry-run aware (#1963)
- reorganise test easyconfigs to match structure in easyconfigs repo (#1970)
- add a toolchain compiler option for enforcing IEEE-754 conformance (#1975)
- support for intelcuda compiler toolchain (#1976)
- check that each glob pattern matches at least one file expand_glob_paths (important for --include-*) (#1980)
- enhance bootstrap to auto-skip stage 0 in case a suitable setuptools is already available (#1946, #1984)
- simplify GC3Pie version check (#1987)
- include suggestion on how to change configuration w.r.t. modules tool/syntax (#1989)
- various bug fixes, including:
- fix test for find_easybuild_easyconfig (#1931)
- remove existing module file under --force/--rebuild (#1933)
- fix combining --search and --try-* (#1937)
- fix appending to existing buildstats in FileRepository.add_easyconfig (#1948)
- fix handling of iterate easyconfig parameters, restore them during cleanup (#1949)
- fix filtering loads for (hidden) build deps from generated module (#1959)
- handle multi-flag compiler options on all types of options (#1966)
- fix --list-software by making letter_dir_for function aware of '*' wildcard name (#1969)
- skip dependencies of toolchain marked as external modules when determining module hierarchy (#1977)
- bump page limit in fetch_latest_commit_sha, spit out more meaningful error if too many branches were encountered (#1981)
- fix CUDA-related issues in HierarchicalMNS (#1986)
v2.9.0 (September 23rd 2016)
----------------------------
feature release
- note: vsc-base 2.5.4 or more recent is now required
- various small enhancements, including:
- change option `--color` choices to auto/always/never (#1701, #1898, #1911)
- add support for 'hidden' easyconfig parameter (#1837)
- add support for using ccache and f90cache compiler caching tools (#1844, #1912)
- see --use-ccache and --use-f90cache
- update Cray metadata for 16.06 CrayPE release (#1851)
- also include patch files in --new-pr and --update-pr (#1852)
- handle deleted files in --new-pr (#1853)
- add support for --install-latest-eb-release (#1861)
- add support for hiding toolchains, see --hide-toolchains and 'hidden' key in 'toolchain' spec (#1871)
- add template for GitHub source URL (#1872)
- add support for combining --new-pr/--update-pr and --robot (#1881)
- add support for --list-software and --list-installed-software (#1883, #1910, #1917)
- print message on which extension is being installed, incl. progress counter (#1886, #1914)
- add support for --github-org to specify GitHub organisation rather than GitHub user (#1894)
- add support for running Lmod in debug mode (#1895)
- avoid needless use of deepcopy, speed up support for templating in easyconfigs (#1897)
- convert all_dependencies to a property in EasyConfig class (#1909)
- add support for --mpi-cmd-template (#1918)
- add support for --disable-mpi-tests (#1920)
- various bug fixes, including:
- merge with develop when using --from-pr (#1838, #1867)
- ensure --new-pr doesn't open empty pull requests (#1846)
- better error handling for outdated GitPython module in --check-github (#1847)
- fix formatting for generated easyblocks documentation (#1860)
- make sure the robot ignores filtered dependencies (#1862)
- honor --filter-deps under --minimal-toolchains (#1863)
- correct format for 'param' and 'author' tags in docstrings (#1866)
- ignore failing bootstrap test in Travis config file (#1870)
- make sure all output of executed command is included in generated temporary log file (#1873, #1874)
- ensure --show_hidden is used in the correct location for 'avail' with Lmod (#1875)
- make sure self.path is passed down in copy method of EasyConfig object (#1884)
- take into account possible multi-line modloadmsg in ModuleGeneratorLua (#1885)
- fix extracting .bz2 source files (#1889)
- don't resolve path to Lmod command (#1892)
- fix skipping of stage 0 in bootstrap script (#1893)
- fix function signature of log.deprecated compared to fancylogger.deprecated (#1896, #1899)
- apply patch to Tcl/C environment modules tool for Tcl 8.6 support in Travis config (#1901)
- fix combining --extended-dry-run with --from-pr (#1902)
- also template dict keys (#1904)
- don't pass '--try-*' command-line options to EB instance running within job script (#1908)
- add workaround for incorrectly passing command line arguments with --job (#1915)
- fix issues with --module-only (#1919, #1924, #1925)
- correctly deal with specified start_dir
- do not remove installation directory when build-in-installdir is enabled
- make sure 'which' function returns path to a file (#1921)
- fix :param:, :return: tags in docstrings & add test for it (#1923)
v2.8.2 (July 13th 2016)
-----------------------
bugfix release
- various small enhancements, including:
- add support for rst output for --list-* and --avail-* (#1339)
- add support for 'eb --check-conflicts' (#1747, #1807, #1833)
- ensure nice error message when non-existing path is passed to apply_regex_substitutions (#1788)
- add check for module output, empty stdout is a sign of trouble with Lmod (#1793)
- add multi-threaded FFT to toolchain (#1802)
- avoid special characters like '[', ']' in path to temporary directory (#1808)
- add support for --zip-logs (#1820)