Skip to content

Releases: conda/conda-build

3.28.0

01 Dec 04:50
91d10fc
Compare
Choose a tag to compare

Special announcement

In the upcoming January 2024 release of conda-build, significant changes are underway. We're set to transition to the CalVer versioning system. Additionally, we'll be formally embracing CEP 8 to manage our release schedule. Moreover, an expedited version of CEP 9 will be adopted for deprecation handling, omitting the pending deprecation phase and streamlining the period from deprecation to removal to a mere 2 months.

Enhancements

  • Add stblib jinja function similar to compiler to explicitly define sysroot dependencies. (#4999)
  • Utilize conda-known subdirs for selector definitions, enabling conda_build to support new architectures with only an updated conda version. New OS support requires additional information for proper conda_build functionality, including UNIX-like platform designation, shared library prefix, and binary archive format for the platform. (#5009)
  • Eliminate unnecessary cache clearing from conda_build.build.test. (#5031)
  • Consolidate which_package implementations and replace conda.models.dist.Dist usage with conda.models.records.PrefixRecords. (#5041)

Bug fixes

  • Display package file name in get_hash_input. (#5021)
  • Fall back to solved record filename to locate the downloaded tarball in get_upstream_pins. (#4991 via #5037)
  • Prevent overwriting of variants in high priority cbc.yaml entries when absent in lower priority cbc.yamls. (#5039)
  • Correct the check for a missing anaconda-client to display a useful error message. (#5050)
  • Fix conda_index.index verbose DEBUG/INFO message logging. (#5066)

Deprecations

  • Mark conda_build.environ.clean_pkg_cache for pending deprecation. (#5031)
  • Mark conda_build.conda_interface.IndexRecord for pending deprecation. Use conda.models.records.PackageRecord instead. (#5032)
  • Mark conda_build.os_utils.pyldd.is_string for pending deprecation. Use isinstance(value, str) instead. (#5040)
  • Mark conda_build.os_utils.pyldd.is_codefile for pending deprecation. Use conda_build.os_utils.pyldd.codefile_class instead. (#5040)
  • Mark conda_build.os_utils.pyldd.codefile_type for pending deprecation. Use conda_build.os_utils.pyldd.codefile_class instead. (#5040)
  • Mark conda_build.inspect_pkg.dist_files for pending deprecation. (#5041)
  • Mark conda_build.inspect_pkg.which_package(avoid_canonical_channel_name) for pending deprecation. (#5041)
  • Mark conda_build.inspect_pkg._installed for pending deprecation. (#5041)
  • Mark conda_build.os_utils.ldd.get_package_files for pending deprecation. (#5041)
  • Mark conda_build.os_utils.pyldd.mach_o_change for pending deprecation. (#5041)
  • Mark conda_build.os_utils.pyldd.inspect_rpath for pending deprecation. (#5041)
  • Mark conda_build.os_utils.pyldd.get_runpaths for pending deprecation. (#5041)
  • Mark conda_build.os_utils.pyldd.otool_sys for pending deprecation. (#5041)
  • Mark conda_build.os_utils.pyldd.ldd_sys for pending deprecation. (#5041)
  • Mark conda_build.post.determine_package_nature for pending deprecation. Use conda_build.post.get_dsos and conda_build.post.get_run_exports instead. (#5041)
  • Mark conda_build.post.library_nature(subdir, bldpkgs_dirs, output_folder, channel_urls) for pending deprecation. (#5041)
  • Mark conda_build.post.dist_from_names for pending deprecation. Query conda.core.prefix_data.PrefixData instead. (#5041)
  • Mark conda_build.post.FakeDist for pending deprecation. Use conda.models.records.PrefixRecord instead. (#5041)
  • Mark conda_build.post._get_fake_pkg_dist for pending deprecation. Use conda.models.records.PrefixRecord instead. (#5041)
  • Mark conda_build.utils.relative for pending deprecation. Use os.path.relpath or pathlib.Path.relative_to instead. (#5042)

Docs

  • Incorporate the conda-sphinx-theme into conda-build documentation. (#5067)
  • Update certain pages to remove redundant TOC entries. (#5067)

Other

  • Implement Ruff linter in pre-commit configuration. (#5015)
  • Replace black with ruff format in pre-commit setup. (#5052)
  • Identify Unicode tests as incompatible with libmamba. (#5059)

Contributors

Full Changelog: 3.27.0...3.28.0

3.27.0

27 Sep 19:47
27ea32b
Compare
Choose a tag to compare

Enhancements

  • Remove glob2 dependency. As of Python 3.5, the '**', operator was available to glob when using recursive=True. Builtin glob is also much faster. (#5005)
  • Handle emscripten-wasm32 and wasi-wasm32 platforms. (#4813)

Bug fixes

  • Delay imports in conda command plugin until the command is used, avoiding import-time side effects. (#4949)

Deprecations

  • When templating new recipes from a PyPI package, the build script {{ PYTHON }} -m pip install . -vv is deprecated in favor of {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation. (#4960)

Docs

  • Document ~= (compatibility release) match spec. (#4553)
  • Clarify that the build prefix is activated after the host prefix. (#4942)
  • Add explanation that conda-build should be run from the base environment. (#4995)

Contributors

Full Changelog: 3.26.1...3.27.0

3.26.1

18 Aug 07:39
c2bfe2b
Compare
Choose a tag to compare

What's Changed

  • Build ePub, PDF and zipped HTML docs as well. by @jezdez in #4946
  • Delay imports in command plugin to improve logging output by @dholth in #4953

Full Changelog: 3.26.0...3.26.1

3.26.0

25 Jul 16:13
b8a8730
Compare
Choose a tag to compare

Enhancements

  • Add pip to env-doc make command so function works correctly (pip is no longer added by default with the python conda package). (#4633)
  • Log extra-meta data to make it easier to verify that the right extra-meta data is burned into packages (also helps to co-relate packages and their build-log). The feature was first introduced in #4303 and is now improved via the logging call. (#4901)
  • Implement subcommands as conda plugins. (#4921)

Bug fixes

  • Fix handling of unknown binaries with newer (py)lief versions. (#4900)
  • Disable LIEF logging to remove "Unknown format" warning message. (#4850)
  • Revert enable_static default value in conda_build.config to remove "Failed to get_static_lib_exports" warning messages. (#4850)
  • Avoid duplicate logging by not propagating the top-level conda-build logger. (#4903)
  • Fix git cloning for repositories with submodules containing local relative paths. (#4914)

Deprecations

  • Mark executable invocations (e.g., conda-build) as pending deprecation. (#4921)
  • Mark module based invocations (e.g., python -m conda_build.cli.main_build) as pending deprecation. (#4921)

Docs

  • Update pkg-spec docs to mention .conda package format. (#4633)
  • Drop unnecessary Jinja package name variables from variants.rst docs file. (#4834)

Other

  • Drop duplicate get_summary call in conda_build.skeletons.pypi. (#3998)
  • Fix failing resolved_packages test due to recent OpenSSL 3.0.8 release to defaults. (#4912)

Contributors

3.25.0

24 May 03:52
06ccbea
Compare
Choose a tag to compare

Enhancements

  • Noarch packages that use virtual packages have the virtual packages added to the hash contents of the package. This facilitates the building of noarch packages multiple times for different platforms with platform specific dependencies. (#4606)
  • Add support for svn source credentials (svn_username and svn_password). (#4692)
  • Depend on standalone conda-index instead of bundled indexing code. (#4828)
  • Switch from setup.py to pyproject.toml and use Hatchling for our build system. (#4840)
  • Add Python 3.11 support. (#4852)

Bug fixes

  • Ensure tests/commands are also run in the presence of run_test.* (#4429)
  • Require the source when rendering a recipe that uses the load_file_data function. (#4817)
  • Download packages during build into the correct subdir folder. (#4832)
  • Use a unique subdir variable name when rebuilding the index for multi-output builds. (#4862)

Deprecations

  • Inline conda index logic is pending deprecation. conda-build still provides conda-index a.k.a. conda index CLI, but uses standalone conda-index during builds. (#4828)
  • Prefer the standalone conda-index package, instead of conda-build index or conda index, to use faster indexing code. (#4828)
  • Mark conda_build.metadata.ns_cfg as pending deprecation. Use conda_build.get_selectors.get_selectors instead. (#4837)
  • Mark conda_build.config.python2_fs_encode as pending deprecation. (#4843)
  • Mark conda_build.config._ensure_dir as pending deprecation. Use stdlib's pathlib.Path.mkdir(exist_ok=True) or os.makedirs(exist_ok=True) instead. (#4843)

Other

  • Format with black and replaced pre-commit's darker hook with black. (#4836)
  • Format with isort and add pre-commit isort hook. (#4836)
  • Minor code simplification for conda_build.index.ChannelIndex._ensuredirs. (#4843)
  • Enable xattr test on macOS. (#4845)

Contributors

3.24.0

22 Mar 14:05
30af5ca
Compare
Choose a tag to compare

Bug fixes

  • Fix the failing git clone when source has LFS files. (#4318)
  • Fix many false-positives during the detection of Perl core modules in conda skeleton cpan. (#4592)
  • conda skeleton cpan now correctly adds a C compiler as dependency if the distribution contains an .xs file. (#4599)
  • Install downstream packages in correct subdir. (#4763, #4803)
  • Update supported Python version in setup.py. (#4804)

Deprecations

  • Removed conda <4.13 logic. (#4677)
  • conda_build.conda_interface.CrossPlatformStLink is pending deprecation in favor of using os.stat().st_nlink. (#4728)
  • Drop Python 3.7 support. (#4796)

Docs

  • Updated broken links to example conda recipes and updated link to the now archived conda-recipes, with additional links to AnacondaRecipes aggregated feedstocks and conda-forge feedstocks. (#4580)
  • Replaced two instances of "Anaconda Cloud" with "anaconda.org". (#4719)

Other

  • Update test matrix to run tests on all supported Python versions on Linux. Only run tests on lower & upper Python bounds for Windows and macOS. (#4691)
  • Re-enable code coverage reporting to codecov. (#4767)
  • Eliminate test setup's manual clone of https://github.com/conda/conda_build_test_recipe in favor of a session fixture. (#4781)
  • Use tomllib (Python 3.11+) or tomli for .toml support. (#4783)

Contributors

3.23.3

07 Dec 03:37
20b0801
Compare
Choose a tag to compare

Bug fixes

  • Change Zstd default compression to 19. (#4663)
  • Fix build/host environment activation broken in >=3.23.0,<=3.23.2. (#4665)
  • Add PREFIX/bin to PATH on Windows and remove PREFIX root from PATH on Unix. (#4665)

Other

  • Skip test suite for non-code changes. (#4664)

Contributors

Full Changelog: 3.23.2...3.23.3

3.23.2

30 Nov 23:11
36b2d9d
Compare
Choose a tag to compare

Bug fixes

  • conda-build CLI overrode condarc's zstd_compression_level with the default value. (#4650)

Contributors

Full Changelog: 3.23.1...3.23.2

3.23.1

17 Nov 23:18
32ac010
Compare
Choose a tag to compare

Bug fixes

  • Fixed regression when writing link JSON files introduced in #4603. (#4636)
  • Update conda dependency. (#4635)

Contributors

Full Changelog: 3.23.0...3.23.1

3.23.0

17 Nov 00:24
dd6704c
Compare
Choose a tag to compare

Enhancements

  • Outputs now support both script and files arguments. When both script and an explicit file list are given, the script is run first and then the files given in the explicit file list are packaged. (#4281)
  • Add overlinking_ignore_patterns build parameter to speed up recipes where it is not helpful. (#4576)
  • Add win-arm64 as a recognized platform (subdir). (#4579)
  • Add opt-in environment variable to run conda in isolated mode (python -I -m conda) when invoked from conda-build. This is necessary to fix an issue when packaging conda itself. Alternative solutions (see #4628) are under investigation, so the current implementation will likely change. (#4604, #4625)
  • Refactored conda_build.convert.update_lib_contents to use pathlib.Path. Mark test_cli.test_convert as xfail on Windows (something with the GitHub Windows Runner makes this particularly flaky). (#4619, #4626)

Deprecations

  • Drop cytoolz dependency. (#4556)
  • Removed internal usage of the memoized decorator. (#4593, #4615)
  • Remove py2 compatibility code and use of six.py code exported from conda. (#4603)
  • conda_build.environ.system_vars is marked as pending deprecation. Use conda_build.environ.os_vars instead. (#4615)
  • Conda 4.2 introduced a private conda env that appears to have been a testing environment. This is no longer used and is only included in conda-build as an informational status. Removing in accordance with the feature pending deprecation starting with conda 22.11.0. (#4629)

Docs

Other

  • Renamed canary recipe from conda.recipe to recipe. (#4584)
  • Introduce canary and review builds as part of GitHub CI. (#4608, #4613)
  • Removed unused AppVeyor files. (#4562)
  • Removed unused .checkignore. (#4564)
  • Removed unused .editorconfig. (#4564)
  • Removed unused .gitmodules. (#4564)
  • Removed unused .lgtm.yml. (#4564)
  • Removed unused .binstar.yml. (#4616)

Contributors

Full Changelog: 3.22.0...3.23.0