Skip to content

Releases: conda/conda-build

25.1.2

05 Feb 17:10
a54844e
Compare
Choose a tag to compare

Enhancements

Contributors

Full Changelog: 25.1.1...25.1.2

25.1.1

15 Jan 08:37
6873259
Compare
Choose a tag to compare

Deprecations

  • Remove conda_build.exceptions.UnableToParseMissingJinja2. (#5587)
  • Remove conda_build.index.get_build_index(locking). (#5587)
  • Remove conda_build.index.get_build_index(timeout). (#5587)

Contributors

Note

The previous release (25.1.0) had some deprecated code that wasn't deleted as scheduled leading to DeprecatedError showing up. This is now resolved in 25.1.1.

Full Changelog: 25.1.0...25.1.1

25.1.0

14 Jan 16:26
b713677
Compare
Choose a tag to compare

Enhancements

  • Add SHA224, SHA384 and SHA512 support for validating downloaded sources. (#4793)
  • Add new hashing methods (content_sha256, content_sha384, content_sha512) to calculate the
    checksum of the extracted contents of the downloaded source artifacts. (#4821 via #5277)
  • Make .conda the new default package format. .tar.bz2 files can still be generated with --package-format=1 and/or conda_build.pkg_format: 1 in your .condarc file. (#5183 via #5527)
  • Add compatibility for LIEF=0.15. (#5564 via #5565)

Bug fixes

  • Verify all source hashes when multiple are defined (not just the first one). (#4793)
  • Fix a bug where some CondaBuildUserError exceptions that were formally SystemExit exceptions
    were not being caught properly. (#5538)
  • Fix a bug where bad match specs from intermediate parsing results would cause parsing to fail. (#5555)
  • Fix KeyError when an inconsistent build.pkg_type value is specified in meta.yaml. (#5560)

Other

  • Demote logging message about glob finding no matches from error to warning (#5472)

Contributors

Full Changelog: 24.11.2...25.1.0

24.11.2

26 Nov 22:18
07a10e2
Compare
Choose a tag to compare

Bug fixes

  • Fix bug where .copy() was used on a string instead of copy() when processing variants. (#5417)

Contributors

Full Changelog: 24.11.1...24.11.2

24.11.1

22 Nov 02:38
1d4235a
Compare
Choose a tag to compare

Bug fixes

  • Fix TypeError when no CLI arguments are passed. (#5549 via #5550)

Contributors

24.11.0

20 Nov 14:51
e70a6d0
Compare
Choose a tag to compare

Enhancements

  • Introduce --package-format as a command line argument. (#4890 via #5209)
    • This takes precedence over default value and condarc.
    • Normalization occurs so 1, "1", tar.bz2,.tar.bz2, 2, "2", conda, .conda are all recognized and mapped appropriately.
    • Other options are rejected.
  • Add support for CEP-17 that allows specifying the location of the site-packages directory with the python_site_packages_path build option for any packages named python. (#5502)

Bug fixes

  • Fix regex for Jinja2 set / for statements to be more specific. (#5514)
  • Fix ruamel.yaml usage to use supported APIs. (#5517)
  • Fix bug variant variables were not defined for the first parsing pass of a recipe. (#5528)
  • Fix a bug where variants were incorrectly found as being used when they matched a leading substring of
    another variant. (#5535)
  • Fix a bug where variants were not found when variables were used in pin_* statements. (#5535)

Deprecations

  • Deprecate conda_build.exceptions.UnableToParseMissingJinja2. (#5497)
  • Deprecate conda_build.index.get_build_index(locking). (#5508)
  • Deprecate conda_build.index.get_build_index(timeout). (#5508)
  • Require Python 3.9 or greater. (#5525)
  • The default value for --package-format and conda_pkg_format will become .conda in 25.1. (#5534)

Docs

  • Better document run_test.r. (#5479)
  • Fix bug in docs build by pinning conda-sphinx-theme version to 0.2.2. (#5518)

Contributors

24.9.0

18 Sep 16:09
9133820
Compare
Choose a tag to compare

Enhancements

  • Reduce render time when there is a large number of unused variants. (#5392)

Bug fixes

  • Ensure variables mentioned in script_env are undefined in the multi-output build environment
    if they are undefined in the environment that conda-build is invoked from. (#5322)
  • Variables used in single-line jinja2 for and set statements are now properly included in the variant
    matrix for some edge cases. (#5447)
  • Allow undefined jinja variables when a particular metadata block evaluates as skipped. (#5458)

Deprecations

  • Remove conda_build.build.check_external. patchelf is an explicit conda-build dependency on Linux, so it will always be installed. (#5441)
  • Remove conda_build.metadata._get_env_path. Use conda.base.context.locate_prefix_by_name instead. (#5441)
  • Remove conda_build.build._construct_metadata_for_test_from_recipe. Test built packages instead, not recipes (e.g., conda build --test package instead of conda build --test recipe/). (#5478)

Contributors

Full Changelog: 24.7.1...24.9.0

24.7.1

30 Jul 13:30
e0944e8
Compare
Choose a tag to compare

Bug fixes

  • Check for WSL existence before calling os.stat. (#5433 via #5434)

Contributors

Full Changelog: 24.7.0...24.7.1

24.7.0

22 Jul 14:15
0ab6288
Compare
Choose a tag to compare

Enhancements

  • Skip generating repodata.json.bz2 for local index; generate repodata.json
    only; require conda-package-handling >=2.2.0 matching conda. (#5231)
  • Add new include/exclude sections for glob expressions in multi-output outputs/files. (#4196 via #5216)
  • Increase performance by using pickle instead of copy.deepcopy. (#5281)
  • Report fully rendered recipe to stdout before the build process starts. (#3798 via #5344)
  • Validate run_constrained dependencies to prevent faulty specs reaching final repodata. (#5047 via #5359)
  • PIP_* env variables are set when building outputs in multi-output recipes. (#3993 via #5368)
  • Reduce performance overhead of logging. (#5384)

Bug fixes

  • Include file path in addition to the content when generating the file hash to avoid unwanted caching during linkage analysis. (#4821)
  • Error handling when LIEF fails is now consistent with patchelf. (#5176)
  • Ensure cross-building recipes select the correct noarch package variants. (#5341 via #5350)
  • On Linux platforms, prefer the sysroot matching the target_platform when cross-compiling (#5403).

Deprecations

  • Mark conda_build.build._construct_metadata_for_test_from_recipe as deprecated. Test built packages instead, not recipes (e.g., conda build --test package instead of conda build --test recipe/). (#3192 via #5352)
  • Mark conda_build.build.check_external for deprecation. patchelf is an explicit conda-build dependency on Linux so it will always be installed. (#5355)
  • Remove the following deprecations:
    • conda_build.config.Config.override_channels (use conda.base.context.context.channels instead). (#5333)
    • conda_build.config.noarch_python_build_age_default. (#5333)
    • conda_build.conda_interface.add_parser_channels (use conda.cli.helpers.add_parser_channels instead). (#5333)
    • conda_build.conda_interface.add_parser_prefix (use conda.cli.helpers.add_parser_prefix instead). (#5333)
    • conda_build.conda_interface.ArgumentParser (use conda.cli.conda_argparse.ArgumentParser instead). (#5333)
    • conda_build.conda_interface.binstar_upload (use conda.base.context.context.binstar_upload instead). (#5333)
    • conda_build.conda_interface.cc_conda_build (use conda.base.context.context.conda_build instead). (#5333)
    • conda_build.conda_interface.cc_platform (use conda.base.context.context.platform instead). (#5333)
    • conda_build.conda_interface.Channel (use conda.models.channel.Channel instead). (#5333)
    • conda_build.conda_interface.Completer. (#5333)
    • conda_build.conda_interface.configparser (use configparser instead). (#5333)
    • conda_build.conda_interface.CondaError (use conda.exceptions.CondaError instead). (#5333)
    • conda_build.conda_interface.CondaHTTPError (use conda.exceptions.CondaHTTPError instead). (#5333)
    • conda_build.conda_interface.CondaSession (use conda.gateways.connection.session.CondaSession instead). (#5333)
    • conda_build.conda_interface.CONDA_VERSION (use conda.__version__ instead). (#5333)
    • conda_build.conda_interface.context (use conda.base.context.context instead). (#5333)
    • conda_build.conda_interface.create_default_packages (use conda.base.context.context.create_default_packages instead). (#5333)
    • conda_build.conda_interface.default_python (use conda.base.context.context.default_python instead). (#5333)
    • conda_build.conda_interface.determine_target_prefix (use conda.base.context.determine_target_prefix instead). (#5333)
    • conda_build.conda_interface.download (use conda.gateways.connection.download.download instead). (#5333)
    • conda_build.conda_interface.env_path_backup_var_exists. (#5333)
    • conda_build.conda_interface.envs_dirs (use conda.base.context.context.envs_dirs instead). (#5333)
    • conda_build.conda_interface.EntityEncoder (use conda.auxlib.entity.EntityEncoder instead). (#5333)
    • conda_build.conda_interface.FileMode (use conda.models.enums.FileMode instead). (#5333)
    • conda_build.conda_interface.get_conda_build_local_url (use conda.models.channel.get_conda_build_local_url instead). (#5333)
    • conda_build.conda_interface.get_conda_channel (use conda.models.channel.Channel.from_value instead). (#5333)
    • conda_build.conda_interface.get_prefix (use conda.base.context.context.target_prefix instead). (#5333)
    • conda_build.conda_interface.get_rc_urls (use conda.base.context.context.channels instead). (#5333)
    • conda_build.conda_interface.human_bytes (use conda.utils.human_bytes instead). (#5333)
    • conda_build.conda_interface.import_module (use importlib.import_module instead). (#5333)
    • conda_build.conda_interface.input (use input instead). (#5333)
    • conda_build.conda_interface.InstalledPackages. (#5333)
    • conda_build.conda_interface.lchmod (use conda.gateways.disk.link.lchmod instead). (#5333)
    • conda_build.conda_interface.LinkError (use conda.exceptions.LinkError instead). (#5333)
    • conda_build.conda_interface.LockError (use conda.exceptions.LockError instead). (#5333)
    • conda_build.conda_interface.MatchSpec (use conda.models.match_spec.MatchSpec instead). (#5333)
    • conda_build.conda_interface.non_x86_linux_machines (use conda.base.context.non_x86_machines instead). (#5333)
    • conda_build.conda_interface.NoPackagesFound (use conda.exceptions.ResolvePackageNotFound instead). (#5333)
    • conda_build.conda_interface.NoPackagesFoundError (use conda.exceptions.NoPackagesFoundError instead). (#5333)
    • conda_build.conda_interface.normalized_version (use conda.models.version.normalized_version instead). (#5333)
    • conda_build.conda_interface.os (use os instead). (#5333)
    • conda_build.conda_interface.PackageRecord (use conda.models.records.PackageRecord instead). (#5333)
    • conda_build.conda_interface.PaddingError (use conda.exceptions.PaddingError instead). (#5333)
    • conda_build.conda_interface.partial (use functools.partial instead). (#5333)
    • conda_build.conda_interface.PathType (use conda.models.enums.PathType instead). (#5333)
    • conda_build.conda_interface.pkgs_dirs (use conda.base.context.context.pkgs_dirs instead). (#5333)
    • conda_build.conda_interface.prefix_placeholder (use conda.base.constants.PREFIX_PLACEHOLDER instead). (#5333)
    • conda_build.conda_interface.ProgressiveFetchExtract (use conda.core.package_cache_data.ProgressiveFetchExtract instead). (#5333)
    • conda_build.conda_interface.reset_context (use conda.base.context.reset_context instead). (#5333)
    • conda_build.conda_interface.Resolve (use conda.resolve.Resolve instead). (#5333)
    • conda_build.conda_interface.rm_rf (use conda_build.utils.rm_rf instead). (#5333)
    • conda_build.conda_interface.root_dir (use conda.base.context.context.root_prefix instead). (#5333)
    • conda_build.conda_interface.root_writable (use conda.base.context.context.root_writable instead). (#5333)
    • conda_build.conda_interface.spec_from_line (use conda.cli.common.spec_from_line instead). (#5333)
    • conda_build.conda_interface.specs_from_args (use conda.cli.common.specs_from_args instead). (#5333)
    • conda_build.conda_interface.specs_from_url (use conda.cli.common.specs_from_url instead). (#5333)
    • conda_build.conda_interface.StringIO (use io.StringIO instead). (#5333)
    • conda_build.conda_interface.subdir (use conda.base.context.context.subdir instead). (#5333)
    • conda_build.conda_interface.symlink_conda. (#5333)
    • conda_build.conda_interface.TemporaryDirectory (use conda.gateways.disk.create.TemporaryDirectory instead). (#5333)
    • conda_build.conda_interface.TmpDownload (use conda.gateways.connection.download.TmpDownload instead). (#5333)
    • conda_build.conda_interface._toposort (use conda.common.toposort._toposort instead). (#5333)
    • conda_build.conda_interface.unix_path_to_win (use conda.utils.unix_path_to_win instead). (#5333)
    • conda_build.conda_interface.untracked (use conda.misc.untracked instead). (#5333)
    • conda_build.conda_interface.Unsatisfiable (use conda.exceptions.UnsatisfiableError instead). (#5333)
    • conda_build.conda_interface.UnsatisfiableError (use conda.exceptions.UnsatisfiableError instead). (#5333)
    • conda_build.conda_interface.url_path (use conda.utils.url_path instead). (#5333)
    • conda_build.conda_interface.VersionOrder (use conda.models.version.VersionOrder instead). (#5333)
    • conda_build.conda_interface.walk_prefix (use conda.misc.walk_prefix instead). (#5333)
    • conda_build.conda_interface.win_path_to_unix (use conda.common.path.win_path_to_unix instead). (#5333)
    • conda_build.index.channel_data; conda_build.index.get_build_index return value for channel_data is now always None. (#5333)
    • conda_build.metadata.check_circular_dependencies (use conda_build.metadata._check_circular_dependencies instead). (#5406)
    • conda_build.metadata.toposort (use conda_build.metadata.toposort_outputs instead). (#5406)
    • conda_build.utils._convert_lists_to_sets (use frozendict.deepfreeze instead). (#5333)
    • conda_build.utils.HashableDict (use frozendict.deepfreeze instead). (#5333)
    • conda_build.utils.represent_hashabledict (use frozendict.deepfreeze instead). (#5333)
    • conda_build.utils.rm_rf(config). (#5333)
    • conda_build.variants.get_vars(loop_only). (#5333)

Other

  • Do not generate conda error reports for common exceptions. (#5264)
  • Add CondaBuildUserError exception to replace sys.exit calls. (#5353)
  • Updated the CI to download the MacOSX 10.15 SDK. (#5387)

Contributors

Read more

24.5.1

24 May 00:26
4818581
Compare
Choose a tag to compare

Bug fixes

  • Fix issue with modifying a frozendict when specifying outputs/files in meta.yaml. (#5342 via #5345)
  • Fix excessive memory use in inspect_linkages_lief. (#5267 via #5348)

Deprecations

  • Mark conda_build.metadata.toposort as deprecated. Use conda_build.metadata.toposort_outputs instead. (#5342 via #5345)
  • Mark conda_build.metadata.check_circular_dependencies as deprecated. Use conda_build.metadata._check_circular_dependencies instead. (#5342 via #5345)

Contributors

Full Changelog: 24.5.0...24.5.1