summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2021-02-13Correct the reference to the staged examples files (#21557)Tamara Dahlgren1-3/+3
2021-02-12Introduce a SPACK_PYTHON environment variable (#21222)Chuck Atkins1-0/+8
The SPACK_PYTHON environment variable can be set to a python interpreter to be used by the spack command. This allows the spack command itself to use a consistent and separate interpreter from whatever python might be used for package building.
2021-02-11unit test: refactored bindist.py (#21497)Massimiliano Culpo1-353/+156
Modifications: - Make use of SpackCommand objects wherever possible - Deduplicated code when possible - Moved cleaning of mirrors to fixtures - Ensure mock configuration has a clear initialization order
2021-02-11database: don't create a date object in `query()` unless it's necessaryTodd Gamblin1-5/+6
`query()` calls `datetime.datetime.fromtimestamp` regardless of whether a date query is being done. Guard this with an if statement to avoid the unnecessary work.
2021-02-11version: precompile regexes in Version constructorTodd Gamblin1-6/+9
2021-02-11spack_json: _strify should be a no-op in Python 3Todd Gamblin1-3/+7
_strify traverses *all* of the read-in data and converts strings, but only for Python 2. Ignore it in Python 3.
2021-02-11database: do not redundantly mark specs concreteTodd Gamblin2-5/+9
Speed up reads by not traversing each spec recursively when marking them concrete.
2021-02-11spec performance: don't parse in from_node_dictTodd Gamblin1-1/+3
Constructing a spec from a name instead of setting name directly forces from_node_dict to call Spec.parse(), which is slow. Avoid this by using a zero-arg constructor and setting name directly.
2021-02-10Added a context manager to swap architecturesMassimiliano Culpo5-34/+88
This solves a few FIXMEs in conftest.py, where we were manipulating globals and seeing side effects prior to registering fixtures. This commit solves the FIXMEs, but introduces a performance regression on tests that may need to be investigated
2021-02-10Move context manager to swap the current configuration into spack.configMassimiliano Culpo3-64/+78
The context manager can be used to swap the current configuration temporarily, for any use case that may need it.
2021-02-10Move context manager to swap the current store into spack.storeMassimiliano Culpo3-15/+32
The context manager can be used to swap the current store temporarily, for any use case that may need it.
2021-02-10repo: generalize "swap" context manager to also accept pathsMassimiliano Culpo16-61/+71
The method is now called "use_repositories" and makes it clear in the docstring that it accepts as arguments either Repo objects or paths. Since there was some duplication between this contextmanager and "use_repo" in the testing framework, remove the latter and use spack.repo.use_repositories across the entire code base. Make a few adjustment to MockPackageMultiRepo, since it was stating in the docstring that it was supposed to mock spack.repo.Repo and was instead mocking spack.repo.RepoPath.
2021-02-10Fix: Add a space between -isystem and the directory (#21599)Scott McMillan2-15/+15
Some compilers, such as the NV compilers, do not recognize -isystem dir when specified without a space. Works: -isystem ../include Does not work: -isystem../include This PR updates the compiler wrapper to include the space with -isystem.
2021-02-10Bugfix: environments/views on separate mounts (#20720)Greg Becker1-4/+13
Environment views fail when the tmpdir used for view generation is on a separate mount from the install_tree because the files cannot by symlinked between the two. The fix is to use an alternative tmpdir located alongside the view.
2021-02-09Procedure to deprecate old versions of software (#20767)Adam J. Stewart12-11/+124
* Procedure to deprecate old versions of software * Add documentation * Fix bug in logic * Update tab completion * Deprecate legacy packages * Deprecate old mxnet as well * More explicit docs
2021-02-09Changed stages permissions to 750 (#21425)BenWeber421-3/+3
2021-02-09Fixed uninstall rm parent folder race condition (#21424)BenWeber421-3/+12
2021-02-09Fix typo (#21567)Mark Meredith1-1/+1
2021-02-08Restore verbosity of patching (#21233)Adam J. Stewart1-6/+6
2021-02-05let intel consider cray-mpich as mpich (#21512)albestro1-0/+1
2021-02-04Fix usage of PythonPackage.test outside of PythonPackage (#20555)Adam J. Stewart1-4/+50
2021-02-04Python: add maintainer(s) (#21125)Adam J. Stewart1-0/+2
* Python: add maintainer(s) * Fix unit tests
2021-02-04spack external find: allow to search by tags (#21407)Massimiliano Culpo5-9/+55
This commit adds an option to the `external find` command that allows it to search by tags. In this way group of executables with common purposes can be grouped under a single name and a simple command can be used to detect all of them. As an example introduce the 'build-tools' tag to search for common development tools on a system
2021-02-03concretizer: simplify "fact" method (#21148)Massimiliano Culpo1-23/+5
The "fact" method before was dealing with multiple facts registered per call, which was used when we were emitting grounded rules from knowledge of the problem instance. Now that the encoding is changed we can simplify the method to deal only with a single fact per call.
2021-02-02add intel oneapi to compiler/pkg translations (#21448)Greg Becker1-1/+2
2021-02-01PythonPackage: fewer phases (#20738)Adam J. Stewart2-109/+1
2021-02-01R: add maintainer(s) (#21119)Adam J. Stewart1-0/+2
* R: add maintainer(s) * Add maintainer to base class
2021-02-01Python 3.10 support: collections.abc (#20441)Adam J. Stewart19-42/+140
2021-01-29Print groups properly for spack find -d (#20028)Yang Zongze1-1/+1
2021-01-28Make git fetching even quieter (for git v1.7.2+)(#21013)Adam J. Stewart1-0/+6
2021-01-27Add a context wrapper for mtime preservation (#21258)Sergey Kosukhin2-1/+44
Sometimes we need to patch a file that is a dependency for some other automatically generated file that comes in a release tarball. As a result, make tries to regenerate the dependent file using additional tools (e.g. help2man), which would not be needed otherwise. In some cases, it's preferable to avoid that (e.g. see #21255). A way to do that is to save the modification timestamps before patching and restoring them afterwards. This PR introduces a context wrapper that does that.
2021-01-27Doc default behavior of install tests (#21309)Mark C. Miller1-2/+5
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-01-27spack setup: remove the command for v0.17.0 (#20277)Adam J. Stewart3-204/+0
spack setup was deprecated in 0.16 and will be removed in 0.17 Follow-up to #18240
2021-01-22use module and package flags to get more correct mypy behavior (#21225)Tom Scogland2-32/+25
The first of my two upstream patches to mypy landed in the 0.800 tag that was released this morning, which lets us use module and package parameters with a .mypy.ini file that has a files key. This uses those parameters to check all of spack in style, but leaves the packages out for now since they are still very, very broken. If no package has been modified, the packages are not checked, but if one has they are. Includes some fixes for the log tests since they were not type checking. Should also fix all failures related to "duplicate module named package" errors. Hopefully the next drop of mypy will include my other patch so we can just specify the modules and packages in the config file to begin with, but for now we'll have to live with a bare mypy doing a check of the libs but not the packages. * use module and package flags to check packages properly * stop checking package files, use package flag for libs The packages are not type checkable yet, need to finish out another PR before they can be. The previous commit also didn't check the libraries properly, this one does.
2021-01-22Added @property stdcxx_libs to return -lstdc++ for AOCC compiler (#21145)AMD Toolchain Support2-0/+6
2021-01-21docs: Update the CudaPackage (build system) description (#20742)Tamara Dahlgren1-16/+101
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-01-21Added ROCmPackage (build system) documentation (#20743)Tamara Dahlgren3-2/+127
2021-01-20store sbang_install_path in buildinfo, use for subsequent relocation (#20768)eugeneswalker1-0/+11
2021-01-20[WIP] relocate.py: parallelize test replacement logic (#19690)Nathan Hanford9-210/+281
* sbang pushed back to callers; star moved to util.lang * updated unit test * sbang test moved; local tests pass Co-authored-by: Nathan Hanford <hanford1@llnl.gov>
2021-01-18add required libs for sycl programs (#20728)Robert Cohn1-1/+2
2021-01-14improve documentation for Rocm (hip amd builds) (#20812)Danny Taller1-1/+6
* improve documentation
2021-01-12concretizer: require at least a dependency type to say the dependency holdsMassimiliano Culpo2-0/+11
fixes #20784 Similarly to the previous bug, here we were deducing conditions to be imposed on nodes that were not part of the DAG.
2021-01-12concretizer: dependency conditions cannot hold if package is externalMassimiliano Culpo3-2/+9
fixes #20736 Before this one line fix we were erroneously deducing that dependency conditions hold even if a package was external. This may result in answer sets that contain imposed conditions on a node without the node being present in the DAG, hence #20736.
2021-01-12restore ability of dev-build to skip patches (#20351)Robert Underwood1-0/+1
At some point in the past, the skip_patch argument was removed from the call to package.do_install() this broke the --skip-patch flag on the dev-build command.
2021-01-11Package Repositories docs: num packages has grown (#20735)Adam J. Stewart1-1/+1
2021-01-11Update the docs footer copyright (#20741)Tamara Dahlgren1-1/+1
2021-01-06fix gpg user rundir check (#20705)eugeneswalker1-1/+1
2021-01-05concretizer: make rules on virtual packages more linearMassimiliano Culpo1-11/+9
fixes #20679 In this refactor we have a single cardinality rule on the provider, which triggers a rule transforming a dependency on a virtual package into a dependency on the provider of the virtual.
2021-01-05spack python: allow use of IPython (#20329)Vanessasaurus2-12/+76
This adds a -i option to "spack python" which allows use of the IPython interpreter; it can be used with "spack python -i ipython". This assumes it is available in the Python instance used to run Spack (i.e. that you can "import IPython").
2021-01-05bugfix for target adjustments on target ranges (#20537)Greg Becker3-15/+20