Skip to content

Latest commit

 

History

History
84 lines (63 loc) · 2.19 KB

ReadMe.md

File metadata and controls

84 lines (63 loc) · 2.19 KB

Python packaging ecosystem entities review

graph TD;

	package_name --> requirement;
	specifier --> requirement;
	marker --> requirement;
	direct_url --> requirement;

	requirement --> distribution_metadata;
	version --> specifier;

	package_name --> pep621;
	version --> pep621;
	entry_points --> pep621;
	pep621 --> sdist;
	sdist --> wheel;
	wheel_metadata --> wheel;


	wheel_tag --> wheel_filename;
	package_name --> wheel_filename;
	version --> wheel_filename;
	wheel_filename --> wheel;

	package_name --> sdist_filename;
	version --> sdist_filename;

	marker --> wheel_tag;

	wheel_tag --> wheel_metadata;
	pep621 --> wheel_metadata;

	distribution --> installation;

	package_name --> distribution_metadata;
	version --> distribution_metadata;

	distribution_metadata --> dist-info;
	distribution_record --> dist-info;
	entry_points --> dist-info;
	wheel_metadata --> dist-info;
	direct_url --> dist-info;

	dist-info --> distribution;
	resource --> distribution;
	module_path --> distribution;

	distribution --> wheel;
	package_name --> module_path;
	module_path --> entry_points;
	sdist_manifest --> sdist;
	sdist --> sdist_archive;
	sdist_filename --> sdist_archive;

	sdist --> index;
	wheel --> index;
	entry_points --> script;

	requirement --> locator;
	locator --> index;
Loading

(chart.dot is the version for GraphViz. Unfortunately GitHub doesn't support it yet.)

For see the glossary for

  • the descriptions of the entities and their capabilities;
  • references to PEPs where they are defined (https://peps.python.org/pep-<pep_number>/);
  • references to PyPA documents where they are defined (https://packaging.python.org/en/latest/specifications/<spec_name>/).

compact_matrix.tsv shows how well different libs support various entities involved into Python packaging:

  • ✅ - mostly implemented
  • ⚠ - somehow implemented
  • ❌ - mostly unimplemented
  • ? - yet to be determined

full_matrix.tsv shows the support of subfeatures in tools:

  • ✅ - implemented
  • ⚠ - implemented, but so poorly, that one is better to use something else
  • ❌ - unimplemented
  • ? - yet to be determined