Skip to content
Snippets Groups Projects
  1. Aug 13, 2020
    • Massimiliano Culpo's avatar
      Move Python 2.6 unit tests to Github Actions (#17279) · 1707448f
      Massimiliano Culpo authored
      * Run Python2.6 unit tests on Github Actions
      * Skip url tests on Python 2.6 to reduce waiting times
      * Skip foreground background tests on Python 2.6 to reduce waiting times
      * Removed references to Travis in the documentation
      * Deleted install_patchelf.sh (can be installed from repo on CentOS 6)
      1707448f
    • Patrick Gartung's avatar
      Buildcache: bindist test without invoking spack compiler wrappers. (#15687) · 4d254814
      Patrick Gartung authored
      * Buildcache:
         * Try mocking an install of quux, corge and garply using prebuilt binaries
         * Put patchelf install after ccache restore
         * Add script to install patchelf from source so it can be used on Ubuntu:Trusty which does not have a patchelf pat package. The script will skip building on macOS
         * Remove mirror at end of bindist test
         * Add patchelf to Ubuntu build env
         * Revert mock patchelf package to allow other tests to run.
         * Remove depends_on('patchelf', type='build') relying instead on
         * Test fixture to ensure patchelf is available.
      
      * Call g++ command to build libraries directly during test build
      
      * Flake8
      
      * Install patchelf in before_install stage using apt unless on Trusty where a build is done.
      
      * Add some symbolic links between packages
      
      * Flake8
      
      * Flake8:
      
      * Update mock packages to write their own source files
      
      * Create the stage because spec search does not create it any longer
      
      * updates after change of list command arguments
      
      * cleanup after merge
      
      * flake8
      4d254814
    • Massimiliano Culpo's avatar
      Moved flake8, shell and documentation tests to Github Action (#17328) · fc94dde3
      Massimiliano Culpo authored
      * Move flake8 tests on Github Actions
      
      * Move shell test to Github Actions
      
      * Moved documentation build to Github Action
      
      * Don't run coverage on Python 2.6
      
      Since we get connection errors consistently on Travis
      when trying to upload coverage results for Python 2.6,
      avoid computing coverage entirely to speed-up tests.
      fc94dde3
  2. Aug 10, 2020
    • Massimiliano Culpo's avatar
      Simplify the detection protocol for packages · c0d490ff
      Massimiliano Culpo authored
      Packages can implement “detect_version” to support detection
      of external instances of a package. This is generally easier
      than implementing “determine_spec_details”. The API for
      determine_version is similar: for example you can return
      “None” to indicate that an executable is not an instance
      of a package.
      
      Users may implement a “determine_variants” method for a package.
      When doing external detection, executables are grouped by version
      and each group results in a single invocation of “determine_variants”
      for the associated spec. The method returns a string specifying
      the variants for the package. The method may additionally return
      a dictionary representing extra attributes for the package.
      
      These will be stored in the spec yaml and can be retrieved
      from self.spec.extra_attributes
      
      The Spack GCC package has been updated with an implementation
      of “determine_variants” which adds the following extra
      attributes to the package: c, cxx, fortran
      c0d490ff
    • Massimiliano Culpo's avatar
      Update packages.yaml format and support configuration updates · 193e8333
      Massimiliano Culpo authored
      The YAML config for paths and modules of external packages has
      changed: the new format allows a single spec to load multiple
      modules. Spack will automatically convert from the old format
      when reading the configs (the updates do not add new essential
      properties, so this change in Spack is backwards-compatible).
      
      With this update, Spack cannot modify existing configs/environments
      without updating them (e.g. “spack config add” will fail if the
      configuration is in a format that predates this PR). The user is
      prompted to do this explicitly and commands are provided. All
      config scopes can be updated at once. Each environment must be
      updated one at a time.
      193e8333
  3. Jul 31, 2020
    • Massimiliano Culpo's avatar
      Move Python 2.6 unit tests to Github Actions (#17279) · 9dbad500
      Massimiliano Culpo authored
      * Run Python2.6 unit tests on Github Actions
      * Skip url tests on Python 2.6 to reduce waiting times
      * Skip foreground background tests on Python 2.6 to reduce waiting times
      * Removed references to Travis in the documentation
      * Deleted install_patchelf.sh (can be installed from repo on CentOS 6)
      9dbad500
  4. Jul 27, 2020
  5. Jul 23, 2020
  6. Jul 16, 2020
  7. Jul 15, 2020
  8. Jul 10, 2020
    • Todd Gamblin's avatar
      bugfix: no infinite recursion in setup-env.sh on Cray · 054e0d1d
      Todd Gamblin authored
      On Cray platforms, we rely heavily on the module system to figure out
      what targets, compilers, etc. are available. This unfortunately means
      that we shell out to the `module` command as part of platform
      initialization.
      
      Because we run subcommands in a shell, we can get infinite recursion if
      `setup-env.sh` and friends are in some init script like `.bashrc`.
      
      This fixes the infinite loop by adding guards around `setup-env.sh`,
      `setup-env.csh`, and `setup-env.fish`, to prevent recursive
      initializations of Spack. This is safe because Spack never shells out to
      itself, so we do not need it to be initialized in subshells.
      
      - [x] add recursion guard around `setup-env.sh`
      - [x] add recursion guard around `setup-env.csh`
      - [x] add recursion guard around `setup-env.fish`
      054e0d1d
  9. Jul 08, 2020
    • Patrick Gartung's avatar
      Buildcache: bindist test without invoking spack compiler wrappers. (#15687) · 8c411736
      Patrick Gartung authored
      * Buildcache:
         * Try mocking an install of quux, corge and garply using prebuilt binaries
         * Put patchelf install after ccache restore
         * Add script to install patchelf from source so it can be used on Ubuntu:Trusty which does not have a patchelf pat package. The script will skip building on macOS
         * Remove mirror at end of bindist test
         * Add patchelf to Ubuntu build env
         * Revert mock patchelf package to allow other tests to run.
         * Remove depends_on('patchelf', type='build') relying instead on
         * Test fixture to ensure patchelf is available.
      
      * Call g++ command to build libraries directly during test build
      
      * Flake8
      
      * Install patchelf in before_install stage using apt unless on Trusty where a build is done.
      
      * Add some symbolic links between packages
      
      * Flake8
      
      * Flake8:
      
      * Update mock packages to write their own source files
      
      * Create the stage because spec search does not create it any longer
      
      * updates after change of list command arguments
      
      * cleanup after merge
      
      * flake8
      8c411736
    • Adam J. Stewart's avatar
      207e4961
  10. Jul 06, 2020
    • Todd Gamblin's avatar
      bugfix: no infinite recursion in setup-env.sh on Cray · c00a05bf
      Todd Gamblin authored
      On Cray platforms, we rely heavily on the module system to figure out
      what targets, compilers, etc. are available. This unfortunately means
      that we shell out to the `module` command as part of platform
      initialization.
      
      Because we run subcommands in a shell, we can get infinite recursion if
      `setup-env.sh` and friends are in some init script like `.bashrc`.
      
      This fixes the infinite loop by adding guards around `setup-env.sh`,
      `setup-env.csh`, and `setup-env.fish`, to prevent recursive
      initializations of Spack. This is safe because Spack never shells out to
      itself, so we do not need it to be initialized in subshells.
      
      - [x] add recursion guard around `setup-env.sh`
      - [x] add recursion guard around `setup-env.csh`
      - [x] add recursion guard around `setup-env.fish`
      c00a05bf
  11. Jul 01, 2020
    • Massimiliano Culpo's avatar
      Moved flake8, shell and documentation tests to Github Action (#17328) · a5eabfad
      Massimiliano Culpo authored
      * Move flake8 tests on Github Actions
      
      * Move shell test to Github Actions
      
      * Moved documentation build to Github Action
      
      * Don't run coverage on Python 2.6
      
      Since we get connection errors consistently on Travis
      when trying to upload coverage results for Python 2.6,
      avoid computing coverage entirely to speed-up tests.
      a5eabfad
  12. Jun 30, 2020
  13. Jun 29, 2020
  14. Jun 26, 2020
    • Scott Wittenburg's avatar
      Use json for buildcache index (#15002) · dfac09ea
      Scott Wittenburg authored
      * Start moving toward a json buildcache index
      
      * Add spec and database index schemas
      
      * Add a schema for buildcache spec.yaml files
      
      * Provide a mode for database class to generate buildcache index
      
      * Update db and ci tests to validate object w/ new schema
      
      * Remove unused temporary upload-s3 command
      
      * Use database class to generate buildcache index
      
      * Do not generate index with each buildcache creation
      
      * Make buildcache index mode into a couple of constructor args to Database class
      
      * Use keyword args for  _createtarball 
      
      * Parse new json index when we get specs from buildcache
      
      Now that only one index file per mirror needs to be fetched in
      order to have all the concrete specs for binaries available on the
      mirror, we can just fetch and refresh the cached specs every time
      instead of needing to use the '-f' flag to force re-reading.
      dfac09ea
  15. Jun 25, 2020
  16. Jun 23, 2020
  17. Jun 22, 2020
    • Omar Padron's avatar
      Pre ci optimization (#16372) · 224dc951
      Omar Padron authored
      * add initial optimization script
      
      * integrate optimization in spack ci
      
      * make optimization opt-in
      
      * fix import error
      
      * flake8 fixes
      
      * update command completion
      
      * work around vermin errors
      
      * fix sphynx errors
      224dc951
  18. Jun 18, 2020
  19. Jun 16, 2020
  20. Jun 05, 2020
    • Massimiliano Culpo's avatar
      commands: use a single ThreadPool for `spack versions` (#16749) · 5b272e3f
      Massimiliano Culpo authored
      This fixes a fork bomb in `spack versions`. Recursive generation of pools
      to scrape URLs in `_spider` was creating large numbers of processes.
      Instead of recursively creating process pools, we now use a single
      `ThreadPool` with a concurrency limit.
      
      More on the issue: having ~10 users running at the same time spack
      versions on front-end nodes caused kernel lockup due to the high number
      of sockets opened (sys-admin reports ~210k distributed over 3 nodes).
      Users were internal, so they had ulimit -n set to ~70k.
      
      The forking behavior could be observed by just running:
      
          $ spack versions boost
      
      and checking the number of processes spawned. Number of processes
      per se was not the issue, but each one of them opens a socket
      which can stress `iptables`.
      
      In the original issue the kernel watchdog was reporting:
      
          Message from syslogd@login03 at May 19 12:01:30 ...
          kernel:Watchdog CPU:110 Hard LOCKUP
          Message from syslogd@login03 at May 19 12:01:31 ...
          kernel:watchdog: BUG: soft lockup - CPU#110 stuck for 23s! [python3:2756]
          Message from syslogd@login03 at May 19 12:01:31 ...
          kernel:watchdog: BUG: soft lockup - CPU#94 stuck for 22s! [iptables:5603]
      5b272e3f
  21. Jun 04, 2020
    • Peter Scheibel's avatar
      Mirrors: add option to exclude packages from "mirror create" (#14154) · 24775697
      Peter Scheibel authored
      * add an --exclude-file option to 'spack mirror create' which allows a user to specify a file of specs to exclude when creating a mirror. this is anticipated to be useful especially when using the '--all' option
      
      * allow specifying number of versions when mirroring all packages
      
      * when mirroring all specs within an environment, include dependencies of root specs
      
      * add '--exclude-specs' option to allow user to specify that specs should be excluded on the command line
      
      * add test for excluding specs
      24775697
  22. Jun 03, 2020
  23. May 15, 2020
    • Scott Wittenburg's avatar
      Pipelines: Support DAG scheduling and dynamic child pipelines · e0572a7d
      Scott Wittenburg authored
      This change also adds a code path through the spack ci pipelines
      infrastructure which supports PR testing on the Spack repository.
      Gitlab pipelines run as a result of a PR (either creation or pushing
      to a PR branch) will only verify that the packages in the environment
      build without error.  When the PR branch is merged to develop,
      another pipeline will run which results in the generated binaries
      getting pushed to the binary mirror.
      e0572a7d
  24. May 13, 2020
  25. May 12, 2020
    • Massimiliano Culpo's avatar
      travis: use bionic as default for Linux (#16521) · 11fa6166
      Massimiliano Culpo authored
      Modifications:
      
      - [x] Travis now uses `bionic` as a default (`xenial` used for Python 3.5, `trusty` for Python 2.6)
      - [x] Shell unit tests have been factored into their own run
      - [x] `kcov` is built only for tests that upload coverage results
      
      Overall with this we shave 3-4 mins. on each run and add an additional run of about 3 min. For some reason `kcov` 38 fails forwarding output when used with Python unit tests, so I used v34 for that and v38 (latest) for shell testing. Previously we were using v25.
      11fa6166
  26. May 11, 2020
  27. May 07, 2020
  28. May 06, 2020
    • Peter Scheibel's avatar
      Automatically find externals (#15158) · b030a81a
      Peter Scheibel authored
      Add a `spack external find` command that tries to populate
      `packages.yaml` with external packages from the user's `$PATH`. This
      focuses on finding build dependencies. Currently, support has only been
      added for `cmake`.
      
      For a package to be discoverable with `spack external find`, it must define:
        * an `executables` class attribute containing a list of
          regular expressions that match executable names.
        * a `determine_spec_details(prefix, specs_in_prefix)` method
      
      Spack will call `determine_spec_details()` once for each prefix where
      executables are found, passing in the path to the prefix and the path to
      all found executables. The package is responsible for invoking the
      executables and figuring out what type of installation(s) are in the
      prefix, and returning one or more specs (each with version, variants or
      whatever else the user decides to include in the spec).
      
      The found specs and prefixes will be added to the user's `packages.yaml`
      file. Providing the `--not-buildable` option will mark all generated
      entries in `packages.yaml` as `buildable: False`
      b030a81a
Loading