Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New PyPI release and release-checklist.rst file #57

Open
shawnbrown opened this issue Apr 24, 2021 · 0 comments
Open

New PyPI release and release-checklist.rst file #57

shawnbrown opened this issue Apr 24, 2021 · 0 comments

Comments

@shawnbrown
Copy link
Contributor

shawnbrown commented Apr 24, 2021

Currently,the latest version of dbfread available on PyPI is 2.0.7 (from November 2016). That version does not register its supported versions of Python and it doesn't include any trove classifiers. It would be great to make the newest version available via pip install --upgrade dbfread.

Also, I think it could be helpful to add a check-list that could be used when publishing releases. This is something I do for my own projects and it helps formalize the process and reduce mistakes.

If you like the idea, I can submit it as a pull request. But for now, here is a release-checklist.rst file I would suggest as a good starting point:

Release Checklist
=================

#. In ``dbfread/version.py``, make sure the correct version number is defined
   for this release.

#. Make sure that information about supported Python versions is consistent:

   * In the call to ``setup()``, check the versions defined by the
     *python_requires* argument (see the "Version specifiers" section of
     PEP-440 for details).
   * In the call to ``setup()``, check the trove classifiers in the
     *classifiers* argument (see https://pypi.org/classifiers/ for values).
   * In ``README.rst``, check the versions listed in the "Main Features" and
     "Installing" sections.
   * In ``docs/installing.rst``, check the versions listed in the
     "Requirements" section.

#. Make sure the *description* argument in ``setup.py`` matches the project
   description on GitHub (in the "About" section).

#. Check that *packages* argument of ``setup()`` is correct. Check that the
   value matches what ``setuptools.find_packages()`` returns:

        >>> import setuptools
        >>> sorted(setuptools.find_packages('.', exclude=['tests']))

   Defining this list explicitly (rather than using ``find_packages()``
   directly in ``setup.py`` file) is needed when installing on systems
   where ``setuptools`` is not available.

#. Make final updates to ``docs/changes.rst`` file.

#. Commit and push final changes to the upstream development repository:

        Prepare version info, documentation, and README for version N.N.N release.

#. In the upstream repository, make sure that all of the tests and checks
   are passing.

#. Make sure the packaging tools are up-to-date:

        pip install -U twine wheel setuptools check-manifest

#. Check the manifest against the project's root folder:

        check-manifest .

#. Remove any existing files from the ``dist/`` folder.

#. Build new distributions:

        python setup.py sdist bdist_wheel

#. Upload distributions to TestPyPI:

        twine upload --repository testpypi dist/*

#. View the package's web page on TestPyPI and verify that the information
   is correct for the "Project links" and "Meta" sections:

   * https://test.pypi.org/project/dbfread

   If you are testing a pre-release version, make sure to use the URL returned
   by twine in the previous step (the default URL shows the latest *stable*
   version).

#. Test the installation process from TestPyPI:

        python -m pip install --index-url https://test.pypi.org/simple/ dbfread

   If you're testing a pre-release version, make sure to use the "pip install"
   command listed at the top of the project's TestPyPI page.

#. Upload source and wheel distributions to PyPI:

        twine upload dist/*

#. Double check PyPI project page and test installation from PyPI:

        python -m pip install dbfread

#. Make sure the documentation version reflects the new release:

   * https://dbfread.readthedocs.io/

   If the documentation was not automatically updated, you may need to
   login to https://readthedocs.org/ and start the build process manually.

#. Publish update announcement to relevant mailing lists:

   * [email protected]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant