Skip to content

Ready for 1.0.0 PyPI/GitHub release #17

Closed

Description

@zmx27

PyPI/GitHub rc-release preparation checklist:

  • All PRs/issues attached to the release are merged.
  • All the badges on the README are passing.
  • License information is verified as correct. If you are unsure, please comment below.
  • Locally rendered documentation contains all appropriate pages, including API references (check no modules are
    missing), tutorials, and other human-written text is up-to-date with any changes in the code.
  • Installation instructions in the README, documentation, and the website are updated.
  • Successfully run any tutorial examples or do functional testing with the latest Python version.
  • Grammar and writing quality are checked (no typos).
  • Install pip install build twine, run python -m build and twine check dist/* to ensure that the package can be built and is correctly formatted for PyPI release.

Please tag the maintainer (e.g., @username) in the comment here when you are ready for the PyPI/GitHub release. Include any additional comments necessary, such as version information and details about the pre-release here:

PyPI/GitHub full-release preparation checklist:

  • Create a new conda environment and install the rc from PyPI (pip install <package-name>==??)
  • License information on PyPI is correct.
  • Docs are deployed successfully to https://<github-username-or-orgname>/<package-name>.
  • Successfully run all tests, tutorial examples or do functional testing.

Please let the maintainer know that all checks are done and the package is ready for full release.

conda-forge release preparation checklist:

  • Ensure that the full release has appeared on PyPI successfully.
  • New package dependencies listed in conda.txt and tests.txt are added to meta.yaml in the feedstock.
  • Close any open issues on the feedstock. Reach out to the maintainer if you have questions.
  • Tag the maintainer for conda-forge release.

Post-release checklist

  • Run tutorial examples and conduct functional testing using the installation guide in the README. Attach screenshots/results as comments.
  • Documentation (README, tutorials, API references, and websites) is deployed without broken links or missing figures.

Activity

  1. dabeycorn commented on Oct 22, 2025

    @dabeycorn
    Contributor

    @zmx27

    Here are some things we can tickoff the gh rc-release prep checklist:

    • All migration/py3 related PRs are finished

    #3 #4 #5 #6 #7 #8 #10 #11 #12 #15 #16

    • All badges are passing

    Image
    • The LICENSENOTICE.txt file was untouched during migration (other than changing the copyright year range). Do we want to convert it to an .rst?

    • There currently is no documentation, but the docs do build


    For Installation instructions in the README, documentation, and the website are updated., it seems like some of the commands in the install instructions aren't proper code blocks. I'll open a PR to fix README issues.

  2. zmx27 commented on Oct 23, 2025

    @zmx27
    CollaboratorAuthor

    The LICENSENOTICE.txt file was untouched during migration (other than changing the copyright year range). Do we want to convert it to an .rst?

    Let's convert it to an .rst file

    There currently is no documentation, but the docs do build

    Please show screenshots of the built documentation as well

    For Installation instructions in the README, documentation, and the website are updated., it seems like some of the commands in the install instructions aren't proper code blocks. I'll open a PR to fix README issues.

    I noticed that you opened a PR regarding this before immediately closing it. What was the issue?

    Let me know once anything else can be checked off. Thanks!

  3. changed the title [-]Ready for 0.0.1 PyPI/GitHub release[/-] [+]Ready for 1.0.0 PyPI/GitHub release[/+] on Oct 23, 2025
  4. zmx27 commented on Oct 28, 2025

    @zmx27
    CollaboratorAuthor
    1. Some PRs are still awaiting merge.
    2. README badges are passing. Already checked off.
    3. License is correct.
    4. After skpkg: add cookiecutter.json, fix rendering issues in readme, add index.rst, add conftest.py, update requirements folder, update manifest.in #22 is merged, the docs will build properly and include all appropriate pages, such as the API references.
    5. Installation instructions in README, etc, correctly point to xpdfsuite.
    6. There are no tutorial examples to run, but pytest passes in a clean python 3.13 env:
    ================================= test session starts =================================
    platform darwin -- Python 3.13.9, pytest-8.4.2, pluggy-1.6.0
    rootdir: /Users/zhimingxu/BillingeGroup/diffpy.distanceprinter
    configfile: pyproject.toml
    plugins: env-1.2.0, cov-7.0.0
    collected 2 items
    
    tests/test_distanceprinter.py .                                                 [ 50%]
    tests/test_version.py .                                                         [100%]
    
    ================================== 2 passed in 1.35s ==================================
    
    1. Grammar and typos are checked for.
    2. The package can be built successfully:
    $ twine check dist/*
    Checking dist/diffpy_distanceprinter-0.0.1-py3-none-any.whl: PASSED
    Checking dist/diffpy_distanceprinter-0.0.1.tar.gz: PASSED
    
  5. sbillinge commented on Nov 5, 2025

    @sbillinge
    Contributor

    @sbillinge this is ready for release per @zmx27

  6. sbillinge commented on Nov 7, 2025

    @sbillinge
    Contributor

    @zmx27 @stevenhua0320 please can you check the rc.2 release installs correctly from pypi and everything on the checklist works. When this is confirmed, I cna do the full release.

  7. stevenhua0320 commented on Nov 7, 2025

    @stevenhua0320
    Contributor

    @zmx27 I have built the env using the pre-released version of diffpy.distanceprinter, the local test runs with no issue.

    (diffpy.distanceprinter-env) ~/dbs/diffpy.distanceprinter git:[main]
    pytest
    ===================================================================== test session starts ======================================================================
    platform darwin -- Python 3.11.14, pytest-8.4.2, pluggy-1.6.0
    rootdir: /Users/huarundong/dbs/diffpy.distanceprinter
    configfile: pyproject.toml
    collected 2 items                                                                                                                                              
    
    tests/test_distanceprinter.py .                                                                                                                          [ 50%]
    tests/test_version.py .                                                                                                                                  [100%]
    
    ====================================================================== 2 passed in 1.14s =======================================================================
    

    However, same issue as in diffpy.srxplanargui that as we don't have documentation, when we click the doc build link on PyPI, it will show the page that documentation not found.

    Image
  8. sbillinge commented on Nov 7, 2025

    @sbillinge
    Contributor

    OK, I got the docs working now. Please check, but I will go ahead with the full release for this one.

  9. sbillinge commented on Nov 7, 2025

    @sbillinge
    Contributor

    OK, full release went out. Please can you test with this command:
    pip install diffpy.distanceprinter in a clean env. It should install correctly and work. Then we need to get the conda meta.yaml merged and that is a wrap.

  10. stevenhua0320 commented on Nov 7, 2025

    @stevenhua0320
    Contributor

    @sbillinge I have deleted the original environemt, reinstalled everything and did the pytest, it still works.

    (diffpy.distanceprinter-env) ~/dbs/diffpy.distanceprinter git:[main]
    pytest
    ===================================================================== test session starts ======================================================================
    platform darwin -- Python 3.13.9, pytest-8.4.2, pluggy-1.6.0
    rootdir: /Users/huarundong/dbs/diffpy.distanceprinter
    configfile: pyproject.toml
    collected 2 items                                                                                                                                              
    
    tests/test_distanceprinter.py .                                                                                                                          [ 50%]
    tests/test_version.py .                                                                                                                                  [100%]
    
    ====================================================================== 2 passed in 1.37s =======================================================================
    

    The online documentation now also works.

    Image The license is correct. Image
  11. sbillinge commented on Nov 8, 2025

    @sbillinge
    Contributor

    Ok, sounds good. Let's work on the condo forge staged recipe

  12. stevenhua0320 commented on Nov 8, 2025

    @stevenhua0320
    Contributor

    @sbillinge I think the staged-recipe is ready on our side for this package. It is under review on the conda-forge member side currently and it might take some time to digest such a great volume of recipes for their PR.

  13. sbillinge commented on Nov 8, 2025

    @sbillinge
    Contributor

    OK, summary is that this Issue can be closed when the staged receipe is merged and the conda install tested.

  14. zmx27 commented on Nov 12, 2025

    @zmx27
    CollaboratorAuthor

    I noticed that as I was doing the functional testing on the post-release checklist, I ran into the following errors/warnings when trying to install distanceprinter in a clean conda environment. After running conda create -n diffpy.distanceprinter_env diffpy.distanceprinter according to the README.rst, here is the message I got:

    ..
    SafetyError: The package for diffpy.pdffit2 located at /Users/zhimingxu/miniconda3/pkgs/diffpy.pdffit2-1.5.1-py313h0f27cf3_1
    appears to be corrupted. The path 'lib/python3.13/site-packages/diffpy/pdffit2/version.py'
    has an incorrect size.
      reported size: 2053 bytes
      actual size: 2080 bytes
    
    ClobberError: This transaction has incompatible packages due to a shared path.
      packages: conda-forge/noarch::diffpy.structure-3.3.1-pyhd8ed1ab_0, conda-forge/osx-64::diffpy.pdffit2-1.5.1-py313h0f27cf3_1, conda-forge/noarch::diffpy.distanceprinter-1.0.0-pyhd8ed1ab_0
      path: 'lib/python3.13/site-packages/diffpy/__init__.py'
    
    
    ClobberError: This transaction has incompatible packages due to a shared path.
      packages: conda-forge/noarch::diffpy.structure-3.3.1-pyhd8ed1ab_0, conda-forge/osx-64::diffpy.pdffit2-1.5.1-py313h0f27cf3_1, conda-forge/noarch::diffpy.distanceprinter-1.0.0-pyhd8ed1ab_0
      path: 'lib/python3.13/site-packages/diffpy/__pycache__/__init__.cpython-313.pyc'
    
    
    
    done
    Executing transaction: done
    

    In the end, the conda environment was made successfully despite these errors/warnings, and I can see diffpy.distanceprinter in conda list. But when I ran pytest, here are the results:

    ================================= test session starts ==================================
    platform darwin -- Python 3.8.5, pytest-8.3.5, pluggy-1.5.0
    rootdir: /Users/zhimingxu/BillingeGroup/diffpy.distanceprinter
    configfile: pyproject.toml
    collected 0 items / 4 errors
    
    ======================================== ERRORS ========================================
    ________ ERROR collecting diffpy.distanceprinter/tests/test_distanceprinter.py _________
    ImportError while importing test module '/Users/zhimingxu/BillingeGroup/diffpy.distanceprinter/diffpy.distanceprinter/tests/test_distanceprinter.py'.
    Hint: make sure your test modules/packages have valid Python names.
    Traceback:
    /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/__init__.py:127: in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
    diffpy.distanceprinter/tests/test_distanceprinter.py:4: in <module>
        from diffpy.distanceprinter.distanceprinter import main
    E   ModuleNotFoundError: No module named 'diffpy'
    ____________ ERROR collecting diffpy.distanceprinter/tests/test_version.py _____________
    ImportError while importing test module '/Users/zhimingxu/BillingeGroup/diffpy.distanceprinter/diffpy.distanceprinter/tests/test_version.py'.
    Hint: make sure your test modules/packages have valid Python names.
    Traceback:
    /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/__init__.py:127: in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
    diffpy.distanceprinter/tests/test_version.py:3: in <module>
        import diffpy.distanceprinter  # noqa
    E   ModuleNotFoundError: No module named 'diffpy'
    ____________________ ERROR collecting tests/test_distanceprinter.py ____________________
    ImportError while importing test module '/Users/zhimingxu/BillingeGroup/diffpy.distanceprinter/tests/test_distanceprinter.py'.
    Hint: make sure your test modules/packages have valid Python names.
    Traceback:
    /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/__init__.py:127: in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
    tests/test_distanceprinter.py:4: in <module>
        from diffpy.distanceprinter.distanceprinter import main
    E   ModuleNotFoundError: No module named 'diffpy'
    ________________________ ERROR collecting tests/test_version.py ________________________
    ImportError while importing test module '/Users/zhimingxu/BillingeGroup/diffpy.distanceprinter/tests/test_version.py'.
    Hint: make sure your test modules/packages have valid Python names.
    Traceback:
    /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/__init__.py:127: in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
    tests/test_version.py:3: in <module>
        import diffpy.distanceprinter  # noqa
    E   ModuleNotFoundError: No module named 'diffpy'
    =============================== short test summary info ================================
    ERROR diffpy.distanceprinter/tests/test_distanceprinter.py
    ERROR diffpy.distanceprinter/tests/test_version.py
    ERROR tests/test_distanceprinter.py
    ERROR tests/test_version.py
    !!!!!!!!!!!!!!!!!!!!!!! Interrupted: 4 errors during collection !!!!!!!!!!!!!!!!!!!!!!!!
    ================================== 4 errors in 0.28s ===================================
    

    It seems like the diffpy namespace isn't installed correctly? I'm not sure if this is related, but I also don't know why it's saying that it's running on a python 3.8 platform? conda list tells me that my current conda environment is running Python 3.13.9.

  15. stevenhua0320 commented on Nov 12, 2025

    @stevenhua0320
    Contributor

    @zmx27 Not so sure about why that happens... Maybe the first problem is because the namespace is not installed correctly. From my side at least the pytest runs correctly.

    (diffpy.distanceprinter-env) ~/dbs/diffpy.distanceprinter git:[main]
    pytest
    ==================================================================== test session starts =====================================================================
    platform darwin -- Python 3.13.9, pytest-8.4.2, pluggy-1.6.0
    rootdir: /Users/huarundong/dbs/diffpy.distanceprinter
    configfile: pyproject.toml
    collected 2 items                                                                                                                                            
    
    tests/test_distanceprinter.py .                                                                                                                        [ 50%]
    tests/test_version.py .                                                                                                                                [100%]
    
    ===================================================================== 2 passed in 0.19s ======================================================================
    
  16. zmx27 commented on Nov 12, 2025

    @zmx27
    CollaboratorAuthor

    @stevenhua0320 yes, it seems to work for me as well after I ran conda install --file requirements/tests.txt --file requirements/conda.txt.

    ================================= test session starts ==================================
    platform darwin -- Python 3.13.9, pytest-9.0.0, pluggy-1.6.0
    rootdir: /Users/zhimingxu/BillingeGroup/diffpy.distanceprinter
    configfile: pyproject.toml
    plugins: env-1.2.0, cov-7.0.0
    collected 2 items
    
    tests/test_distanceprinter.py .                                                  [ 50%]
    tests/test_version.py .                                                          [100%]
    
    ================================== 2 passed in 0.97s ===================================
    

    My previous run seems to have used both an outdated version of python as well as pytest, and I'm not sure why that is. Did you also create the fresh conda environment by running something like conda create -n diffpy.distanceprinter_env diffpy.distanceprinter before activating it and running pytest?

  17. stevenhua0320 commented on Nov 12, 2025

    @stevenhua0320
    Contributor

    @stevenhua0320 yes, it seems to work for me as well after I ran conda install --file requirements/tests.txt --file requirements/conda.txt.

    ================================= test session starts ==================================
    platform darwin -- Python 3.13.9, pytest-9.0.0, pluggy-1.6.0
    rootdir: /Users/zhimingxu/BillingeGroup/diffpy.distanceprinter
    configfile: pyproject.toml
    plugins: env-1.2.0, cov-7.0.0
    collected 2 items
    
    tests/test_distanceprinter.py .                                                  [ 50%]
    tests/test_version.py .                                                          [100%]
    
    ================================== 2 passed in 0.97s ===================================
    

    My previous run seems to have used both an outdated version of python as well as pytest, and I'm not sure why that is. Did you also create the fresh conda environment by running something like conda create -n diffpy.distanceprinter_env diffpy.distanceprinter before activating it and running pytest?

    Yes, I created a fresh environement, reinstall everything, and redo the pytest.

  18. zmx27 commented on Nov 16, 2025

    @zmx27
    CollaboratorAuthor

    @stevenhua0320 I've tried building a fresh conda environment and installing distanceprinter, but it seems like I run into the same issue. Are you running on Windows? Maybe it is some kind of a platform issue (I'm running on Mac). It seems like I need to manually install the packages from requirements/tests.txt before pytest will pass for me without errors.

  19. stevenhua0320 commented on Nov 16, 2025

    @stevenhua0320
    Contributor

    I'm running on Mac M3pro chip. I'm not sure where the issue here. Could you describe the process of installing distanceprinter and test it. More precisely, can you also share the output of pytest?

  20. zmx27 commented on Nov 17, 2025

    @zmx27
    CollaboratorAuthor

    Never mind, this seems to be the right workflow. Things like pytest are not run time dependencies so conda will not automatically install them so you have to conda install --file requirements/tests.txt manually for the tests to pass.

    In that case, @sbillinge @stevenhua0320 this issue can be closed. distanceprinter is now on PyPI, conda, and both items on the post-release checklist can be checked off (functional testing passed in a fresh conda env after conda installing distanceprinter, and the documentation builds as in #17 (comment)).

  21. sbillinge commented on Nov 17, 2025

    @sbillinge
    Contributor

    @zmx27 @stevenhua0320 Unfortunately this is failing CI but only on mac Arm. We will have to work on this if anyone can figure it out.

  22. stevenhua0320 commented on Nov 17, 2025

    @stevenhua0320
    Contributor

    @sbillinge It seems that it is because Homebrew dropped GSL bottle, which is GNU Scientific Library for numerical algorithm written in C for macos14. To pass the test, we need to install GSL in the GH actions (I think it is in the process of workflow).

  23. sbillinge commented on May 11, 2026

    @sbillinge
    Contributor

    closed as completed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions