Time based release cadence and a deprecation process that provides warnings for a number ofĪ key advantage of date based versioning is that it is straightforward to tell how old theīase feature set of a particular release is given just the version number. Semantic versioning is not a suitable choice for all projects, such as those with a regular Python projects adopting semantic versioning should abide by clauses 1-8 of the Name ~= X.Y requires at least release X.Y, but also allows any later release with MAINTENANCE version when they make backwards-compatible bug fixes.Īdopting this approach as a project author allows users to make use of “compatible release” specifiers, where MINOR version when they add functionality in a backwards-compatible manner, and MAJOR version when they make incompatible API changes, The essence of semantic versioning is a 3-part numbering scheme, Scheme choices ¶ Semantic versioning (preferred) ¶įor new projects, the recommended versioning scheme is based on Semantic Versioning, but adopts a different approach to handling pre-releases and Variant spellings of different version numbers to a standardised canonical form. PEP 440 also defines a comprehensive technique for version To further accommodate historical variations in approaches to version numbering,
#PUREDATA DOCUMENTATION SERIAL#
post1 # Post Release 15.10 # Date based release 23 # Serial release dev1 # Development release 1.2.0 a1 # Alpha Release 1.2.0 b1 # Beta Release 1.2.0 rc1 # Release Candidate 1.2.0 # Final Release 1.2.0. Python versions a project can be installed on, use the python_requiresġ.2.0. Projects on PyPI, not for installing projects.
#PUREDATA DOCUMENTATION FULL#
For a full listing,Īlthough the list of classifiers is often used to declare what Python versionsĪ project supports, this information is only used for searching & browsing Provide a list of classifiers that categorize your project. Most of the snippets given areĬlassifiers = , The most relevant arguments are explained below. Specific details of your project are defined. The keyword arguments to this function are how setup() args ¶Īs mentioned above, the primary feature of setup.py is that it containsĪ global setup() function. Name as your project, or something very close.įor an example, see the sample package that’s Python modules and packages under a single top-level package that has the same
#PUREDATA DOCUMENTATION LICENSE#
GitHub’s Choose a License or consult a lawyer.įor an example, see the LICENSE.txt from the PyPAĪlthough it’s not required, the most common practice is to include your If you’re unsure which license to choose, you can use resources such as Not be legally used or distributed by anyone other than the copyright holder. In many jurisdictions, packages without an explicit license can LICENSE.txt ¶Įvery package should include a license file detailing the terms ofĭistribution. MANIFEST.in does not affect binary distributions such as wheels. This is not a requirement multiple variants of Markdown are supported as well (lookĪt setup()’s long_description_content_type argument).įor an example, see README.md from the PyPA The most common format is reStructuredText with an “rst” extension, although For an example, see the setup.cfg in the PyPAĪll projects should contain a readme file that covers the goal of the project. Setup.cfg is an ini file that contains option defaults for To get a listing of available commands, run It’s the command line interface for running various commands that The most relevant arguments are explained in The keyword arguments to this function are how specific details Primary feature of setup.py is that it contains a global setup()įunction. It’s the file where various aspects of your project are configured. For an example, see the setup.py in the PyPA The most important file is setup.py which exists at the root of your Configuring your project ¶ Initial files ¶ setup.py ¶ You’ll need this to upload your project distributions to PyPI (see below). Requirements for packaging and distributing ¶įirst, make sure you have already fulfilled the requirements for Standards compliance for interoperability Requirements for packaging and distributing Including files in source distributions with MANIFEST.in Hosting your own simple repository Next topic Publishing package distribution releases using GitHub Actions CI/CD workflows.Dropping support for older Python versions.Including files in source distributions with MANIFEST.in.Installing pip/setuptools/wheel with Linux Package Managers.Installing stand alone command line tools.Installing packages using pip and virtual environments.