Skip to content

A review and cheatsheet around entities and libraries to deal with entities related to packaging for Python programming language

License

Notifications You must be signed in to change notification settings

KOLANICH-research/python_packaging_review

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A review and cheatsheet around entities and libraries to deal with entities related to packaging for Python programming language

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published