Skip to content

v0.31.0

Compare
Choose a tag to compare
@rydrman rydrman released this 13 Apr 19:06

Features and Changes

  • package components: packages can now divide their files into different components, which helps to ensure that downstream consumers can get what they need in different contexts without also pulling in things that they don't. A great example of this is the default build and run components, which allow build-only files such as header files to be available at build time but not need to be pulled in at run-time.
  • package metadata: you can now add key metadata fields and arbitrary labels to package specs
  • allow requesting a specific compatibility level in package requests (eg python/API=2.7, or boost/Binary=1.70)
  • support compatibility level only in fromBuildEnv for package install requirements (eg - {pkg: python, fromBuildEnv: API}) which generates a request for something API compatible with whatever was used at build time.
  • support fromBuildEnv: true as simple alias for fromBuildEnv: Binary and the most reasonable canonical case
  • update pip conversion process to prefix generated packages with python- so that they do not conflict with non-python libraries of the same name
  • Formalize the package validation process. The new framework is extensible for the future and allows packages to opt-out of validators that are not relevant to them.
  • Support for specifying environment variables directly in package specs, and auto-generating spfs startup scripts (#17)
  • Convert the codebase to Rust milestone
  • Support for a server-based repository using the latest spfs grpc backend (this implementation is solid, but does not handle error states very well, contributions to help build this out in spfs are very welcome)

Bug Fixes

  • non-string scalars could not be provided on the command line (regression)
  • solver was not processing some options when version conflicts arose during the resolve (regression)
  • error messages sometimes ended up with repeated messages (from rust)
  • spk test command was not actually running tests (regression)
  • spk install with --save flag was not actually saving the change to the local spec file (regression)
  • solver state hashing was updated to be incremental, reducing the need to rehash as often (#236)
  • ensure that qualified var requests do not conflict with global ones (#284)
  • fix bug where invalid package names were being allowed

** most of these regressions were caused by untested areas of code that no longer functioned after the conversion to rust

Package Fixes

  • fix issue where perl could fail because sources come from a tarball
  • fix issue where python2 package could fail to build on distros where the default python command is python 3
  • update mpc version used for gcc
  • fix the make packages.docker target to succeed in building gnu gcc and necessary dependencies to get to a python build under centos7