- _spider in web.py was actually failing to spider deeper than a certain
point.
- Fixed multiprocessing pools to not use daemons and to allow recursive
spawning.
- Added detailed tests for spidering and for finding archive versions.
- left some xfail URL finding exercises for the reader.
- Fix noqa annotations for some @when decorators
* add packages for EasyBuild and dependencies
* fix remarks w.r.t. docstrings & download urls, make dependency specs stricter w.r.t. required versions
* fix easybuild-* dep specs, should be open-ended
* correct dep specs for easybuild and easybuild-easyconfigs using @3.1.2[:]
- Clean up spec_syntax tests: don't dependend on DB order.
- spec_syntax hash parsing tests were strongly dependent on the order the
DB was traversed.
- Tests now specifically grab the specs they want from the mock DB.
- Tests are more readable as a result.
- Add Python3 versions to Travis tests.
1. Fix#2807: Can't depend on virtual and non-virtual package
- This is tested by test_my_dep_depends_on_provider_of_my_virtual_dep in
the concretize.py test.
- This was actually working in the test suite, but it depended on the
order the dependencies were resolved in. Resolving non-virtual then
virtual worked, but virtual, then non-virtual did not.
- Problem was that an unnecessary copy was made of a spec that already
had some dependencies set up, and the copy lost half of some of the
dependency relationships. This caused the "can'd depend on X twice
error".
- Fix by eliminating unnecessary copy and ensuring that dep parameter of
_merge_dependency is always safe to own -- i.e. it's a defensive copy
from somewhere else.
2. Fix bug and simplify concretization of deptypes.
- deptypes weren't being accumulated; they were being set on each
DependencySpec. This could cause concretization to get into an infinite
loop.
- Fixed by accumulating deptypes in DependencySpec.update_deptypes()
- Also simplified deptype normalization logic: deptypes are now merged in
constrain() like everything else -- there is no need to merge them
specially or to look at dpeendents in _merge_dependency().
- Add some docstrings to deptype tests.
- Get rid of pkgsort() usage for preferred variants.
- Concretization is now entirely based on key-based sorting.
- Remove PreferredPackages class and various spec cmp() methods.
- Replace with PackagePrefs class that implements a key function for
sorting according to packages.yaml.
- Clear package pref caches on config test.
- Explicit compare methods instead of total_ordering in Version.
- Our total_ordering backport wasn't making Python 3 happy for some
reason.
- Python 3's functools.total_ordering and spelling the operators out
fixes the problem.
- Fix unicode issues with spec hashes, json, & YAML
- Try to use str everywhere and avoid unicode objects in python 2.
- Remove ascii encoding assumption from spack_yaml
- proc.communicate() returns bytes; convert to str before adding.
- Fix various byte string/unicode issues for Python 2/3 support
- Need to decode subprocess output as utf-8 in from_sourcing_files.
- Fix comments in strify()
- convert print, StringIO, except as, octals, izip
- convert print statement to print function
- convert StringIO to six.StringIO
- remove usage of csv reader in Spec, in favor of simple regex
- csv reader only does byte strings
- convert 0755 octal literals to 0o755
- convert `except Foo, e` to `except Foo as e`
- fix a few places `str` is used.
- may need to switch everything to str later.
- convert iteritems usages to use six.iteritems
- fix urllib and HTMLParser
- port metaclasses to use six.with_metaclass
- More octal literal conversions for Python 2/3
- Fix a new octal literal.
- Convert `basestring` to `six.string_types`
- Convert xrange -> range
- Fix various issues with encoding, iteritems, and Python3 semantics.
- Convert contextlib.nested to explicitly nexted context managers.
- Convert use of filter() to list comprehensions.
- Replace reduce() with list comprehensions.
- Clean up composite: replace inspect.ismethod() with callable()
- Python 3 doesn't have "method" objects; inspect.ismethod returns False.
- Need to use callable in Composite to make it work.
- Update colify to use future division.
- Fix zip() usages that need to be lists.
- Python3: Use line-buffered logging instead of unbuffered.
- Python3 raises an error with unbuffered I/O
- See https://bugs.python.org/issue17404
- Update YAML version to support Python 3
- Python 3 support for ordereddict backport
- Exclude Python3 YAML from version tests.
- Vendor six into Spack.
- Make Python version-check tests work with Python 3
- Add ability to add version check exceptions with '# nopyqver' line
comments.
* Run python setup.py test if --run-tests
* Attempt to import the Python module after installation
* Add testing support to numpy and scipy
* Remove duplicated comments
* Update to new run-tests callback methodology
* Remove unrelated changes for another PR
* perl: make extendable and add Module::Build package
* perl: allow 'spack create' to identify perl packages from their contents
* perl-module-build: fix indenting of package docstring
* perl: split install() method for extensions into phases
* perl: auto-detect build method (Makefile.PL vs Build.PL) and define a 'check' method
* PerlPackage: use import statements similar to those in AutotoolsPackage
* PerlModule: fix detection of Build.PL
* PerlPackageTemplate: remove extraneous lines to avoid flake8 warnings
* PerlPackageTemplate: split into separate templates for Makefile.PL and Build.PL
* PerlPackage: add cross-references to docstrings
* AutotoolsPackage: fix ambiguous cross-references to avoid errors in doc tests
* PerlbuildPackageTemplate: depend on perl-module-build if Build.PL exists
* ENH: add package for building OpenFOAM (1612) from www.openfoam.com
- provide 'openfoam' as virtual package.
- package as openfoam-com to reflect the distribution point.
This initial spack packaging for OpenFOAM supports a number of possible
variants and should handle 64-bit labels properly now that the scotch
package has been updated accordingly.
* ENH: update package for foam-extend (extend-project.de)
- provide 'openfoam' as virtual package.
- much of the build is now aligned with how the openfoam-com package
looks, with the aim of future refactoring.
- avoid installing intermediate targets.
- contains its own environment sourcing script for the build, for more
flexibility and robustness (doesn't touch the python build environ)
* ENH: added package for building from openfoam.org
- provide 'openfoam' as a virtual package.
- this is largely a direct copy of the openfoam-com package.
It has been supplied as a courtesy for users and to ensure maximum
consistency in quality and naming between the foam-extend,
openfoam-com and openfoam-org packages.
* CONFIG: add openfoam into bash completion providers list
* ENH: have openfoam-com use spack as USERMPI
- also simplify the generation of mplib/compiler rules
* ENH: have openfoam-org use spack as SYSTEMMPI
- this setup requires more environment settings than USERMPI
(openfoam-com), but is currently the only means of integration
for openfoam-org
- simplify generation of mplib/compiler rules
* ENH: simplify generation of mplib/compiler rules (foam-extend)
- rename mpi rules from SPACK,SPACKMPI to USER,USERMPI for consistency
with openfoam-com and to generalize for any build system.
* STYLE: record spack tree as a log file (openfoam)
- can be useful for future diagnostics and general record keeping
* libint: updated version, ported to AutotoolsPackage
* elpa: updated version, ported to AutotoolsPackage
* wannier90: updated version, ported to MakefilePackage
* pexsi: updated version, ported to MakefilePackage
* cp2k: updated version, removed wannier 90 from dependencies if cp2k@4.1
* plumed: updated version
Modifications:
* modules has been turned into a single variant, as different versions
have different modules available
* added dictionaries for patches
* netlib-scalapack: ported to CMakePackage
* Add Blast+ package.
Adds support for NCBI's blast+@2.6.0. I'll be adding a few historical versions in the near future.
It's a fairly direct transliteration of the [Homebrew Science recipe][hbs].
I skipped the mysql support.
There is a problem with HDF5 support. Blast's configure script test program defines a macro 'HOST' to a string value and one of the HDF5 bits has an variable named 'HOST'. Fun things happen. I've disabled support for now.
I've run very very basic tests. I'll get this out to my users and ensure that it works and fine tune the options and etc....
[hbs]: https://github.com/Homebrew/homebrew-science/blob/master/blast.rb
* Flake8 fixes
* Update w.t.r. mamelara's PR and cleanup
Add paths to things in the --with-* config args
Add add'l config flags from #3394.
Update patch to no-op and add comment.
Add add'l dependencies after studying `configure --help`.
* Flake8 cleanup
* Add support for blast+@2.2.30
Need to work around a configure bug. See https://github.com/Homebrew/homebrew-science/issues/2337#issuecomment-170011511.
* Re-wrap comment, line length not a problem.
I'd broken a comment across to line in a fit of flake8
induced fear. Adam pointed out that it's ok.
* Remove explicit prefix config
Remove explicit prefix config, the autotools package does it for us.