We'd like to use a consistent checksum scheme everywhere so that we can:
a) incorporate archive checksums into our specs and have a
consistent hashing algorithm across all specs.
b) index mirrors with a consistent type of checksum, and not one that
is dependent on how spack packages are written.
- [x] convert existing md5, sha224, sha512, sha1 checksums to sha256
* Update R CRAN packages
This PR update R CRAN packages. It also ensures that spack built
packages that correspond to R recommended packages are specified in the
dependency list. This is needed for #12015.
* Add more updates to packages
* Updated dependencies of CRAN R packages
Also, use cloud.r-project.org rather than cran.r-project.org to use
automatic redirection to mirrors. This minimizes the load on the cran
server.
* Update to latest versions of CRAN R packages
* Fix flake8 issues
Some blank lines at the end of a coupple of package files crept in.
* Adjust r-animation dependencies
The r-magick package depends on image-magick, so r-animation should as
well. Also, add in texlive for LaTeX support.
* New package: r-magick
* Adjust line spaces in r-magick
* Add swftools dependenct to r-animation
* New package: swftools
This is needed bt r-animation
* Add 'when' clause to some package dependencies
- r-animation
- r-coin
- r-dt
- r-openssl
* New package: r-ellipsis
* New package: r-vctrs
* New package: r-zeallot
* New package: r-generics
* New package: r-cardata
* Add r-progress dependency to r-readxl
* New package: r-askpass
* New package: r-openxlsx
* New package: r-rio
* New package: r-sys
* New package: r-zip
* Add more updated packages
These are updates that have happened while working on this PR as well as
catching the ones from the cran.rstudio.com URL that were missed before.
* New package: r-gower
* New package: r-recipes
* New package: r-squarem
* New package: r-libcoin
* New package: r-rcmdcheck
* New package: r-remotes
* New package: r-sessioninfo
* New package: r-xopen
* New package: r-rgexf
* New package: r-rook
* New package: r-later
* New package: r-promises
* New package: r-xfun
* New package: r-urca
* New package: r-ggsignif
* New package: r-polynom
* New package: r-ucminf
* New package: r-ordinal
* New package: r-inum
* New package: r-debugme
* New package: r-fs
* New package: r-shinyfiles
* New package: r-gsa
* New package: r-nmof
* New package: r-dosnow
* New package: r-rann
* New package: r-reticulate
* New package: r-future
* New package: r-globals
* New package: r-listenv
* New package: r-future-apply
* New package: r-rsvd
* New package: r-sctransform
* New package: r-mitools
* Remove a stray FIXME line
* Fix typo in dependency for r-rcmdcheck
* Remove the dependency on r-splines
The r-splines package never existed in spack, but it does not exist on
CRAN either. There is an archive version from 1999 but it does not have
the proper extension format for modern R packages. The latest version
does not depend on r-splines, and apparently previous versions at least
built without it. Also, bump the required R version.
* Fix typo in r-rcpp dependency
* Fix typos in dependencies
- r-diagrammer
- r-janitor
- r-seurat
Also, bump minimum R version for r-rngtools.
* New package: r-clisymbols
* New package: r-fitdistrplus
* New package: r-gbrd
* New package: r-gh
* New package: r-ini
* New package: r-metap
* New package: r-npsurv
* New package: r-rdpack
* New package: r-snakecase
* New package: r-tinytex
* New package: r-usethis
* Make recommended changes
Made the changes that were recommended in the initial review.
- change cran.rstudio.com to cloud.r-project.org
- change R-project to r-project
- for packages with no listed homepage use the canonical link to the
package page
- for packages with a dependency constraint on R itself, specify the
dependency type
- add `list_url` where missing from package
* New package: r-hdf5r
This is needed for some older versions of r-seurat.
* Set R versions in packages
If the R version is specified in the DESCRIPTION file then set it in the
respective spack package.py file.
* Update var/spack/repos/builtin/packages/r-aer/package.py
Change dependency version of r-car.
Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>
* Set constraint of mlbench dependency of r-adabag
* Set constraint on r-rcpp dependency of r-ape
* Removed "suggested" r-testthat from r-bibtex
* Update var/spack/repos/builtin/packages/r-bindrcpp/package.py
Fix dependency spec of r-bindr in r-bindrcpp.
Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>
* Update var/spack/repos/builtin/packages/r-blob/package.py
Add r-vctrs version constraint.
Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>
* Remove r-base64enc dependency from r-callr
* Update var/spack/repos/builtin/packages/r-car/package.py
Set constraint on r-cardata dependency.
Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>
* Remove unneeded dependencies from r-clipr
* Add gmake dependency to r-construct
* Set the proper homepage for r-crayon
* Add r-jsonlite as a dependency for r-crul
The jsonlite package moved from "suggests" to "imports" with 0.8.4.
* Remove accidental colon after package name
* Add version constraint to r-fpc dependency in r-dendextend
* Additional constraints for R version with r-digest
* Add r-jsonlite dependency for latest verion of r-dt
* Add r-htmltools dependency in r-dygraphs package
* Removed unneeded dependencies from r-fnn
* Remove unneeded dependencies from r-formatr
* Add version constraint for r-mvtnorm dependency in r-fpc
* Added gmake dependency to r-fs
* Add r-globals dependency in r-future-apply
* Add perl dependency to r-gdata
* Add openssl dependency for r-ggally
* Removed unneeded dependencies from r-globaloptions
* Update r-haven
- Add version constraint on r-forcats
- Add gmake build dependency
* Fixed gmake dependency
Gmake is a build only dependency.
* Apply suggestions from code review
Apply a batch of suggestions from Adam Stewart.
Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>
* Remove unneeded dependencies from r-hoardr
* Fix r-htmlwidgets homepage
* Add gmake build dependency to r-httpuv
* Remove unneeded dependency from r-log4r
* Remove unneeded dependency from r-maldiquant
* Add gmake build dependency to r-minqa
* Remove unneeded dependency from r-mlbench
* Set constraint on R6 dependenvy of r-pbdzmq
* Set constraints on r-callr dependency of r-pkgbuild
* Remove unneeded dependency from r-nloptr
* Remove unneeded dependencies from r-pkgmaker
* Set R version constraint for r-raster
* Set version constraint on rcpp for r-rcppprorgess
* Added gmake build dependency
* Remove unneeded dependencies from r-rematch
* Remove unneeded dependency from r-plogr
* Add gmake build dependency for r-rcurl
* Apply suggestions from code review
Bring in more suggestions from Adam Stewart.
Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>
* Remove cnpy dependency from r-rcppcnpy
The r-rcppcnpy package has its own modified copy of the cnpy source and
will build from that internal source. The cnpy dependency is therefore
unnecessary.
* Add comment to reconcile dependencies
The CRAN site lists Perl, Getopt::Long as a dependency. The Spack Perl
will have the Getopt::Long package installed so just depend on Perl.
* Add dependency on udunits2 with newer versions of r-units
* Set additional proj constraint for r-sf
Support for PROJ6 was added in r-sf-0.7-4.
* New package: pandoc
This package installs the pandoc and pandoc-citeproc binaries in order
to satisfy dependencies on pandoc until the Haskell framework is in
Spack.
* Add pandoc dependency to r-bookdown
* Add comment about MPI in r-ergm
* Add pandoc dependency for r-reprex
* Add proj constraints to r-rgdal dependencies
Support for PROJ6 was added in version 1.4-2.
* Modifications to r-rgl
- Rearranged the dependencies to be more consistent with other packages
- put the type last on the depends_on lines to be consistent with other
packages
- Added version constraints for some dependencies
- Added pandoc build dependency
* Be more accurate with rjsonio constraint for r-rgooglemaps
* Remove unneeded dependencies from r-rhmmer
* Tweak constraints for r-rjava
- Set java version constraint
- add gmake build dependency
* Add pandoc dependency to r-markdown
* Remove unneeded dependencies from r-rrcov
* Tweak r-rstan package
- remove duplicate specifications
- remove unneeded when conditions
- add version constraints
- arrange to follow order on CRAN page more closely
- add gmake build dependency
- add pandoc build dependency
* Add pandoc build dependency for r-rstantools
* Remove unneeded dependency from r-runit
* Remove unneeded dependencies from r-selectr
* Remove example R code from description
The example would module loading to break, at least in the case of Lmod
using TCL module files. It could be during the TCL to Lua conversion but
the module fails due to interpreting ipart of the example as a command.
* Update r-seurat
New version of r-seurat with new dependencies.
* New package: r-dqrng
* New package: r-leiden
* New package: r-rcppannoy
* New package: r-rcppparallel
* New package: r-rspectra
* New package: r-sitmo
* New package: r-uwot
* Remove unneeded dependency from r-snow
* Remove unneeded dependency from r-sourcetools
* Added pandoc build dependency for r-stanheaders
* Remove unneeded dependencies from r-taxizedb
* Remove unneeded dependencies from r-tclust
* Add dependency constraints for r-threejs
The following are needed for version 0.2.2:
- r-matrix
- r-jsonlite
* Remove unneeded dependencies from r-vfs
* Remove unneeded dependencies from r-vgam
* Remove unneeded dependency from r-xlconnectjars
* Remove unneeded dependency from r-xlsxjars
* Remove unneeded dependency from r-xnomial
* Remove ~mpi from fftw dependency of swftools
* Apply suggestions from code review
Add latest round of suggestions from Adam Stewart.
Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>
* Fix rjsonio spec for r-rgooglemaps
The r-rjsonio spec is a when conditional.
* Rename 3 R.* packages
- r-utils --> r-r-utils (R.utils)
- r-oo --> r-r-oo (R.oo)
- r-methodss3 --> r-r-methodss3 (R.methodsS3)
Also, renamed dependencies in packages that depend on these three.
* Loosen version constraint on mariadb for r-rmysql
Make the mariadb constraint on mariadb-5.5 rather than the more
specific, and limiting, mariadb-5.5.56. This will allow an external
mariadb, such as mariadb-5.5.60 on CentOS-7.5 to be used. It also allows
for r-rmysql to be built against newer versions of the mariadb-5.5
series that might be added to spack.
- remove the old LGPL license headers from all files in Spack
- add SPDX headers to all files
- core and most packages are (Apache-2.0 OR MIT)
- a very small number of remaining packages are LGPL-2.1-only
* r-igraph: find old packages in the archive
Fixes#6104.
* r-irlba: find old packages in the archive
Fixes#6101.
* r-lazyeval: find old packages in the archive
Fixes#6102.
* packages: set list_url for all packages hosted on CRAN
* packages: consistently use the CRAN archive URLs
* Module files now are generated using a template engine refers #2902#3173
jinja2 has been hooked into Spack.
The python module `modules.py` has been splitted into several modules
under the python package `spack/modules`. Unit tests stressing module
file generation have been refactored accordingly.
The module file generator for Lmod has been extended to multi-providers
and deeper hierarchies.
* Improved the support for templates in module files.
Added an entry in `config.yaml` (`template_dirs`) to list all the
directories where Spack could find templates for `jinja2`.
Module file generators have a simple override mechanism to override
template selection ('modules.yaml' beats 'package.py' beats 'default').
* Added jinja2 and MarkupSafe to vendored packages.
* Spec.concretize() sets mutual spec-package references
The correct place to set the mutual references between spec and package
objects at the end of concretization. After a call to concretize we
should now be ensured that spec is the same object as spec.package.spec.
Code in `build_environment.py` that was performing the same operation
has been turned into an assertion to be defensive on the new behavior.
* Improved code and data layout for modules and related tests.
Common fixtures related to module file generation have been extracted
in `conftest.py`. All the mock configurations for module files have been
extracted from python code and have been put into their own yaml file.
Added a `context_property` decorator for the template engine, to make
it easy to define dictionaries out of properties.
The default for `verbose` in `modules.yaml` is now False instead of True.
* Extendable module file contexts + short description from docstring
The contexts that are used in conjunction with `jinja2` templates to
generate module files can now be extended from package.py and
modules.yaml.
Module files generators now infer the short description from package.py
docstring (and as you may expect it's the first paragraph)
* 'module refresh' regenerates all modules by default
`module refresh` without `--module-type` specified tries to
regenerate all known module types. The same holds true for `module rm`
Configure options used at build time are extracted and written into the
module files where possible.
* Fixed python3 compatibility, tests for Lmod and Tcl.
Added test for exceptional paths of execution when generating Lmod
module files.
Fixed a few compatibility issues with python3.
Fixed a bug in Tcl with naming_scheme and autoload + unit tests
* Updated module file tutorial docs. Fixed a few typos in docstrings.
The reference section for module files has been reorganized. The idea is
to have only three topics at the highest level:
- shell support + spack load/unload use/unuse
- module file generation (a.k.a. APIs + modules.yaml)
- module file maintenance (spack module refresh/rm)
Module file generation will cover the entries in modules.yaml
Also:
- Licenses have been updated to include NOTICE and extended to 2017
- docstrings have been reformatted according to Google style
* Removed redundant arguments to RPackage and WafPackage.
All the callbacks in `RPackage` and `WafPackage` that are not build
phases have been modified not to accept a `spec` and a `prefix`
argument. This permits to leverage the common `configure_args` signature
to insert by default the configuration arguments into the generated
module files. I think it's preferable to handling those packages
differently than `AutotoolsPackage`. Besides only one package seems
to override one of these methods.
* Fixed broken indentation + improved resiliency of refresh
Fixed broken indentation in `spack module refresh` (probably a rebase
gone silently wrong?). Filter the writers for blacklisted specs before
searching for name clashes. An error with a single writer will not
stop regeneration, but instead will print a warning and continue
the command.