Skip to content

Upgrading setuptools 68 to 69

Breaking68.2.2 → 69.5.1Breaking7Deprecated1New2Changed6Fixed10Other8

BreakingUpgrade verdict

7 breaking changes.

  • Version strings that do not follow the standard version format are now rejected.
  • An old option of an internal command has been removed.
  • Two old setup.cfg fields are no longer read; use the newer fields instead.
  • An old way of passing build options through the build backend is now rejected.
Top 4 of 8 that need code or config changes
Breaking7
Configuring project version and egg_info.tag_* to produce invalid PEP 440 version strings is no longer permitted.
egg_info.tag_*
Removes the deprecated egg_base option from dist_info.
dist_infoegg_base
No longer parses deprecated metadata.license_file and metadata.requires fields in setup.cfg.
metadata.license_filemetadata.requiresmetadata.license_filesoptions.install_requires
Passing config_settings to setuptools.build_meta with deprecated --global-option values is no longer allowed.
setuptools.build_metaconfig_settings--global-option
Removes deprecated namespace-packages from pyproject.toml in favor of implicit namespace packages.
namespace-packages
Strictly enforces project.dynamic in pyproject.toml, removing the transitional ability to configure certain parameters via setup.py.
project.dynamic
Removes handling of --config-settings["--build-option"] in setuptools.build_meta hooks other than build_wheel.
setuptools.build_meta--config-settings["--build-option"]build_wheel
Deprecated1
Adds the missing estimated removal date for setuptools.dep_util, which was deprecated in v69.0.0.
setuptools.dep_util

Generated by DepDelta from published Python source. Not mixed with prose notes.

  • removed: function run_script(dist_spec, script_name)
  • removed: variable run_main
  • changed: class IMetadataProvider → class IMetadataProvider(Protocol)
  • changed: class IResourceProvider(IMetadataProvider) → class IResourceProvider(IMetadataProvider, Protocol)
  • changed: method FileMetadata.has_metadata(name) → method FileMetadata.has_metadata(name) -> bool
  • changed: method IMetadataProvider.get_metadata() → method IMetadataProvider.get_metadata(name)
  • changed: method IMetadataProvider.get_metadata_lines() → method IMetadataProvider.get_metadata_lines(name)
  • changed: method IMetadataProvider.has_metadata() → method IMetadataProvider.has_metadata(name) -> bool
  • changed: method IMetadataProvider.metadata_isdir() → method IMetadataProvider.metadata_isdir(name) -> bool
  • changed: method IMetadataProvider.metadata_listdir() → method IMetadataProvider.metadata_listdir(name)
  • changed: method IMetadataProvider.run_script(namespace) → method IMetadataProvider.run_script(script_name, namespace)
  • changed: method IResourceProvider.get_resource_filename(resource_name) → method IResourceProvider.get_resource_filename(manager, resource_name)
  • changed: method IResourceProvider.get_resource_stream(resource_name) → method IResourceProvider.get_resource_stream(manager, resource_name)
  • changed: method IResourceProvider.get_resource_string(resource_name) → method IResourceProvider.get_resource_string(manager, resource_name) -> bytes
  • changed: method IResourceProvider.has_resource() → method IResourceProvider.has_resource(resource_name)
  • changed: method IResourceProvider.resource_isdir() → method IResourceProvider.resource_isdir(resource_name)
  • changed: method IResourceProvider.resource_listdir() → method IResourceProvider.resource_listdir(resource_name)
  • changed: method NullProvider.get_resource_string(manager, resource_name) → method NullProvider.get_resource_string(manager, resource_name) -> bytes
  • changed: method NullProvider.has_metadata(name) → method NullProvider.has_metadata(name) -> bool
  • changed: method NullProvider.metadata_isdir(name) → method NullProvider.metadata_isdir(name) -> bool
  • changed: method ResourceManager.cleanup_resources(force=…) → method ResourceManager.cleanup_resources(force=…) -> List[str]
  • changed: method ResourceManager.resource_string(package_or_requirement, resource_name) → method ResourceManager.resource_string(package_or_requirement, resource_name) -> bytes
  • changed: constructor Command(dist, **kw) → constructor Command(dist: Distribution, **kw)
  • added: field Command.distribution: Distribution
  • changed: field rotate.boolean_options → field rotate.boolean_options: List[str]
  • added: export tomllib
  • added: function shutil_rmtree(path, ignore_errors=…, onexc=…)
  • added: variable LOCALE_ENCODING
  • changed: function canonic_data_files(data_files: Union[list, dict], root_dir: Optional[_Path]=…) -> List[Tuple[str, List[str]]] → function canonic_data_files(data_files: Union[list, dict], root_dir: Optional[StrPath]=…) -> List[Tuple[str, List[str]]]
  • changed: function cmdclass(values: Dict[str, str], package_dir: Optional[Mapping[str, str]]=…, root_dir: Optional[_Path]=…) -> Dict[str, Callable] → function cmdclass(values: Dict[str, str], package_dir: Optional[Mapping[str, str]]=…, root_dir: Optional[StrPath]=…) -> Dict[str, Callable]
  • changed: function find_packages(*, namespaces=…, fill_package_dir: Optional[Dict[str, str]]=…, root_dir: Optional[_Path]=…, **kwargs) -> List[str] → function find_packages(*, namespaces=…, fill_package_dir: Optional[Dict[str, str]]=…, root_dir: Optional[StrPath]=…, **kwargs) -> List[str]
  • changed: function glob_relative(patterns: Iterable[str], root_dir: Optional[_Path]=…) -> List[str] → function glob_relative(patterns: Iterable[str], root_dir: Optional[StrPath]=…) -> List[str]
  • changed: function read_attr(attr_desc: str, package_dir: Optional[Mapping[str, str]]=…, root_dir: Optional[_Path]=…) → function read_attr(attr_desc: str, package_dir: Optional[Mapping[str, str]]=…, root_dir: Optional[StrPath]=…)
  • changed: function read_files(filepaths: Union[str, bytes, Iterable[_Path]], root_dir=…) -> str → function read_files(filepaths: Union[str, bytes, Iterable[StrPath]], root_dir=…) -> str
  • changed: function resolve_class(qualified_class_name: str, package_dir: Optional[Mapping[str, str]]=…, root_dir: Optional[_Path]=…) -> Callable → function resolve_class(qualified_class_name: str, package_dir: Optional[Mapping[str, str]]=…, root_dir: Optional[StrPath]=…) -> Callable
  • changed: function apply_configuration(dist: Distribution, filepath: _Path, ignore_option_errors=…) -> Distribution → function apply_configuration(dist: Distribution, filepath: StrPath, ignore_option_errors=…) -> Distribution
  • changed: function expand_configuration(config: dict, root_dir: Optional[_Path]=…, ignore_option_errors: bool=…, dist: Optional[Distribution]=…) -> dict → function expand_configuration(config: dict, root_dir: Optional[StrPath]=…, ignore_option_errors: bool=…, dist: Optional[Distribution]=…) -> dict
  • changed: function load_file(filepath: _Path) -> dict → function load_file(filepath: StrPath) -> dict
  • changed: function read_configuration(filepath: _Path, expand=…, ignore_option_errors=…, dist: Optional[Distribution]=…) → function read_configuration(filepath: StrPath, expand=…, ignore_option_errors=…, dist: Optional[Distribution]=…)
  • changed: function validate(config: dict, filepath: _Path) -> bool → function validate(config: dict, filepath: StrPath) -> bool
  • changed: constructor ConfigMetadataHandler(target_obj: DistributionMetadata, options: AllCommandOptions, ignore_option_errors: bool, ensure_discovered: expand.EnsurePackagesDiscovered, package_dir: Optional[dict]=…, root_dir: _Path=…) → constructor ConfigMetadataHandler(target_obj: DistributionMetadata, options: AllCommandOptions, ignore_option_errors: bool, ensure_discovered: expand.EnsurePackagesDiscovered, package_dir: Optional[dict]=…, root_dir: StrPath=…)
  • changed: function apply_configuration(dist: Distribution, filepath: _Path) -> Distribution → function apply_configuration(dist: Distribution, filepath: StrPath) -> Distribution
  • changed: function read_configuration(filepath: _Path, find_others=…, ignore_option_errors=…) -> dict → function read_configuration(filepath: StrPath, find_others=…, ignore_option_errors=…) -> dict
  • changed: method ConfigHandler.parse() → method ConfigHandler.parse() -> None
  • removed: function newer_pairwise_group(sources_groups, targets)
  • changed: function construct_package_dir(packages: List[str], package_path: _Path) -> Dict[str, str] → function construct_package_dir(packages: List[str], package_path: StrPath) -> Dict[str, str]
  • changed: function find_package_path(name: str, package_dir: Mapping[str, str], root_dir: _Path) -> str → function find_package_path(name: str, package_dir: Mapping[str, str], root_dir: StrPath) -> str
  • changed: function find_parent_package(packages: List[str], package_dir: Mapping[str, str], root_dir: _Path) -> Optional[str] → function find_parent_package(packages: List[str], package_dir: Mapping[str, str], root_dir: StrPath) -> Optional[str]
  • changed: constructor Distribution(attrs=…) → constructor Distribution(attrs: Optional[MutableMapping]=…) -> None
  • added: class InvalidConfigError(OptionError)
  • added: class RemovedConfigError(OptionError)
  • added: export newer
  • added: export newer_group
  • added: export newer_pairwise
  • added: export newer_pairwise_group
  • changed: variable environ → variable environ: Dict[str, str]
  • removed: function shutil_rmtree(path, ignore_errors=…, onexc=…)