summaryrefslogtreecommitdiff
path: root/bin
AgeCommit message (Collapse)AuthorFilesLines
2017-05-08rework spack help (#3033)Todd Gamblin1-201/+21
- Full help is now only generated lazily, when needed. - Executing specific commands doesn't require loading all of them. - All commands are only loaded if we need them for help. - There is now short and long help: - short help (spack help) shows only basic spack options - long help (spack help -a) shows all spack options - Both divide help on commands into high-level sections - Commands now specify attributes from which help is auto-generated: - description: used in help to describe the command. - section: help section - level: short or long - Clean up command descriptions - Add a `spack docs` command to open full documentation in the browser. - move `spack doc` command to `spack pydoc` for clarity - Add a `spack --spec` command to show documentation on the spec syntax.
2017-05-03spack: no stacktrace if not in debug mode + fix emacs variant (#4098)Massimiliano Culpo1-0/+2
* spack: no stacktrace if not in debug mode + fix emacs variant * emacs: removed dead code
2017-05-01Allow user to specify profile sort column on the command line. (#4056)Todd Gamblin1-3/+42
- Add -P <STAT> argument so that caller can specify a sort column for cProfile. Can specify multiple columns with commas. e.g.: spack -P cumtime,module - Add --lines option to Spack spec to control number of profile lines displayed - Sort by time by default (because it works in all Python versions) - Show sort column options in command help. - Do a short profile run in the unit tests.
2017-03-31Spack works with Python 3Todd Gamblin1-2/+2
- Update version guard in spack script to allow python 3 - Update min required version in the docs
2017-03-31Convert Python 2 idioms to Python 2/3-compatible ones.Todd Gamblin1-2/+4
- 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
2017-03-31Update externals to work with Python 3Todd Gamblin1-0/+7
- 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.
2017-03-03Fix unexpected keyword error in Python 2.6 (#2954)Adam J. Stewart1-2/+1
2017-01-26Standardize argparse help messages (#2847)Adam J. Stewart1-7/+7
2016-12-29Fix issues related to the switchover to pytest. (#2685)Todd Gamblin1-8/+0
- Remove stale reference to `import nose` from `bin/spack` script. - Add `py` to externals (missing dependency for `pytest`)
2016-12-29unit tests: replace nose with pytest (#2502)Massimiliano Culpo1-18/+40
* Porting: substitute nose with ytest This huge commit substitutes nose with pytest as a testing system. Things done here: * deleted external/nose as it is no longer used * moved mock resources in their own directory 'test/mock/' * ported two tests (cmd/find, build_system) to pytest native syntax as an example * build_environment, log: used monkeypatch instead of try/catch * moved global mocking of fetch_cache to an auto-used fixture * moved global mocking from test/__init__.py to conftest.py * made `spack test` a wrapper around pytest * run-unit-tests: avoid running python 2.6 tests under coverage to speed them up * use `pytest --cov` instead of coverage run to cut down testing time * mock/packages_test: moved mock yaml configuration to files instead of leaving it in the code as string literals * concretize.py: ported tests to native pytest, reverted multiprocessing in pytest.ini as it was creating the wrong report for coveralls * conftest.py, fixtures: added docstrings * concretize_preferences.py: uses fixtures instead of subclassing MockPackagesTest * directory_layout.py: uses fixtures instead of subclassing MockPackagesTest * install.py: uses fixtures instead of subclassing MockPackagesTest * optional_deps.py: uses fixtures instead of subclassing MockPackagesTest optional_deps.py: uses fixtures instead of subclassing MockPackagesTest * packages.py: uses fixtures instead of subclassing MockPackagesTest * provider_index.py: uses fixtures instead of subclassing MockPackagesTest * spec_yaml.py: uses fixtures instead of subclassing MockPackagesTest * multimethod.py: uses fixtures instead of subclassing MockPackagesTest * install.py: now uses mock_archive_url * git_fetch.py: uses fixtures instead of subclassing MockPackagesTest * hg_fetch.py: uses fixtures instead of subclassing MockPackagesTest * svn_fetch.py, mirror.py: uses fixtures instead of subclassing MockPackagesTest repo.py: deleted * test_compiler_cmd.py: uses fixtures instead of subclassing MockPackagesTest * cmd/module.py, cmd/uninstall.py: uses fixtures instead of subclassing MockDatabase * database.py: uses fixtures instead of subclassing MockDatabase, removed mock/database * pytest: uncluttering fixture implementations * database: changing the scope to 'module' * config.py: uses fixtures instead of subclassing MockPackagesTest * spec_dag.py, spec_semantics.py: uses fixtures instead of subclassing MockPackagesTest * stage.py: uses fixtures instead of subclassing MockPackagesTest. Removed mock directory * pytest: added docstrings to all the fixtures * pytest: final cleanup * build_system_guess.py: fixed naming and docstrings as suggested by @scheibelp * spec_syntax.py: added expected failure on parsing multiple specs closes #1976 * Add pytest and pytest-cov to Spack externals. * Make `spack flake8` ignore externals. * run-unit-tests runs spack test and not pytest. * Remove all the special stuff for `spack test` - Remove `conftest.py` magic and all the special case stuff in `bin/spack` - Spack commands can optionally take unknown arguments, if they want to handle them. - `spack test` is now a command like the others. - `spack test` now just delegates its arguments to `pytest`, but it does it by receiving unknown arguments and NOT taking an explicit help argument. * Fix error in fixtures. * Improve `spack test` command a bit. - Now supports an approximation of the old simple interface - Also supports full pytest options if you want them. * Use external coverage instead of pytest-cov * Make coverage use parallel-mode. * change __init__.py docs to include pytest
2016-12-13Add a test to ensure package names have the right case. (#2562)Todd Gamblin1-2/+2
2016-12-05Use JSON for the database instead of YAML. (#2189)Todd Gamblin1-8/+0
* Use JSON for the database instead of YAML. - JSON is much faster than YAML *and* can preserve ordered keys. - 170x+ faster than Python YAML when using unordered dicts - 55x faster than Python YAML (both using OrderedDicts) - 8x faster than C YAML (with OrderedDicts) - JSON is built into Python, unlike C YAML, so doesn't add a dependency. - Don't need human readability for the package database. - JSON requires no major changes to the code -- same object model as YAML. - add to_json, from_json methods to spec. * Add tests to ensure JSON and YAML don't need to be ordered in DB. * Write index.json first time it's not found instead of requiring reindex. * flake8 bug.
2016-11-16-s now includes the file and line number with infoMatthew Krafczyk1-0/+3
The option -s now causes file and line number information to be printed along with any invocation of msg, info, etc... This will greatly ease debugging.
2016-10-30Bugfix: '::' only worked on top-level key in config.Todd Gamblin1-1/+2
- generalized and fixed to work with any key in YAML file - simplified schema writing, as well - add more unit tests for the config system - Rename test/yaml.py to test/spack_yaml.py - Add test/yaml.pyc to ignored pyc files.
2016-10-12Use cYAML if it is available in Python. (#2010)Todd Gamblin1-0/+10
2016-10-11Make `insecure` option work with curl AND git. (#1786)Todd Gamblin1-1/+1
2016-09-28Prohibit Python3 in Python version check. (#1872)Elizabeth Fischer1-2/+2
2016-09-22Fix sbang for perl (#1802)Eric1-2/+6
* Perform shebang fix for all files * Fix sbang for perl scripts Otherwise perl would look at the #! line and call sbang again, resulting in an infinite loop.
2016-08-30Keep dashes in command names, translate to underscoresAdam J. Stewart1-2/+3
2016-08-30Make subcommands importable, '-' -> '_', fixes #1642Adam J. Stewart1-2/+9
2016-08-29Change spack --profile sort key for 2.6 compatibility. (#1656)Todd Gamblin1-1/+1
2016-08-10Make Spack core PEP8 compliant.Todd Gamblin1-5/+10
2016-06-26Merge pull request #1030 from opoplawski/externalTodd Gamblin1-1/+1
Remove last two remaining from external imports
2016-06-23Make sbang handle luaTodd Gamblin1-0/+11
- use --! instead of #! for patched lua scripts.
2016-06-08Also remove from external from bin/spackOrion Poplawski1-1/+1
2016-05-26Fixed backwards compatibility for compilers.yaml config fileGregory Becker1-0/+3
2016-05-11Correct LLNL LGPL license template for clarity.Todd Gamblin3-16/+40
2016-04-12fix : proper update of config file (before it was discarding architectures ↵alalazo1-1/+1
that were not the current one) fixes #774
2016-03-05Fix #104, #54: issues with overlong shebang in deep directories.Todd Gamblin1-0/+84
This does several things: - Add `sbang`: a script to run scripts with long shebang lines. - Documentation for `sbang` is in `bin/sbang`. - Add an `sbang` hook that filters the `bin` directory after install and modifies any scripts wtih shebangs that are too long to use `sbang` instead. - `sbang` is at the top level, so it should be runnable (not much we can do if spack itself is too deep for shebang) - `sbang`, when used as the interpreter, runs the *second* shebang line it finds in a script. - shoud fix issues with too long shebang paths.
2016-01-25Fix variable name bugAdam J. Stewart1-4/+4
2016-01-19Merge branch 'mplegendre-multi_pkgsrc_roots' into developTodd Gamblin1-2/+2
- This moves var/spack/packages to var/spack/repos/builtin/packages. - Packages that did not exist in the source branch, or were changed in develop, were moved into var/spack/repos/builtin/packages as part of the integration. Conflicts: lib/spack/spack/test/unit_install.py var/spack/repos/builtin/packages/clang/package.py
2016-01-17Merge pull request #202 from scheibelp/features/unittest-xml-output-noseTodd Gamblin1-0/+8
Features/unittest xml output nose
2015-12-25Merge branch 'develop' into mplegendre-multi_pkgsrc_rootsTodd Gamblin2-3/+25
Conflicts: lib/spack/spack/cmd/create.py lib/spack/spack/cmd/extensions.py lib/spack/spack/cmd/fetch.py lib/spack/spack/cmd/uninstall.py lib/spack/spack/config.py lib/spack/spack/database.py lib/spack/spack/directory_layout.py lib/spack/spack/packages.py lib/spack/spack/spec.py
2015-12-21fix a few comment typosMike Nolta1-1/+1
2015-12-16added option to enable pdb debugGregory L. Lee1-0/+5
2015-12-09Change github.com/scalability-llnl to github.com/llnl everywhere.Todd Gamblin2-2/+2
2015-12-02Try to be more careful to only suppress the warning about nose already beingPeter Scheibel1-1/+1
imported. Other warnings should be output.
2015-11-28Fix spack.db -> spack.repo in bin/spackTodd Gamblin1-2/+2
2015-11-25On systems which have already installed nose (perhaps an older version)Peter Scheibel1-0/+8
importing nose (which is also in Spack's external/ directory) outputs a warning (since there is more than one nose package). This avoids printing the warning to the user.
2015-11-23Add a fix/warning so that stale .pyc files don't kill Spack.Todd Gamblin1-0/+15
- Can't think of a better way to do this. - The externals integration will cause spack to die in weird ways for users who just pull from develop.
2015-11-12Merge branch 'develop' into mplegendre-multi_pkgsrc_rootsTodd Gamblin1-1/+1
Conflicts: lib/spack/spack/__init__.py lib/spack/spack/directives.py lib/spack/spack/packages.py
2015-11-11Insert lib/spack/external into sys.path. This avoids cases where the systemPeter Scheibel1-0/+2
python install and lib/spack/external have the same library installed. This requires modifying the names of some modules in lib/spack/external in cases where both the system python and backported features of future python versions (i.e. after 2.6) are used (previously distinguished by "from external import X" and "import X").
2015-10-08update warning message for spack -k.Todd Gamblin1-1/+1
- warning said it didn't do checksums; really does.
2015-09-17WIP for Matt's branchTodd Gamblin1-2/+2
2015-06-06Cleanup and consolidate error handlingTodd Gamblin1-8/+1
2015-05-18Merge branch 'features/optional-deps' into developTodd Gamblin1-0/+4
This includes: - Much better variant support (+debug/-debug) - Optional dependency support (depends_on(... , when='<condition>') - New config file format (YAML in ~/.spack) - New Spec format (YAML in $prefix/.spack/spec.yaml)
2015-05-17Add help on specs to top of spack -hTodd Gamblin1-1/+15
2015-05-12Add debug handler to print a stacktrace on Ctrl-C in debug mode.Todd Gamblin1-0/+4
2015-04-07Allow spack install -j to throttle make jobs.Todd Gamblin1-5/+5
2015-02-15Add profile option to spack script.Todd Gamblin1-40/+49