Skip to content

Ready for 3.4.0 PyPI/GitHub release #191

Closed

Description

@sbillinge

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, tutorials, and other human-written text is up-to-date with any changes in the code.
  • All API references are included. To check this, run conda install scikit-package and then package build api-doc. Review any edits made by rerendering the docs locally.
  • 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.
  • Dispatch matrix testing to test the release on all Python versions and systems. If you do not have permission to run this workflow, tag the maintainer and say @maintainer, please dispatch matrix testing workflow.

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. added this to the 3.4.0-rc.0 release milestone on Mar 28, 2026
  2. stevenhua0320 commented on Mar 29, 2026

    @stevenhua0320
    Contributor

    @sbillinge we are ready for the 3.4.0-rc.1 release (the reason it is not 3.4.0-rc.0 is because we accidentally prerelease this version without full deprecation stuffs merged to main branch).

    1. The previous license information is all maintained as the same, but since Professor Simon went to UCSB, should we also add the license holder for UCSB for 2026 now? If so, should we update this in the LICENSE.rst and LICENSE-DANSE.rst?
    2. Fourth, Fifth items I have done and checked on PR fix: fix documentation rendered properly #192 , so we could check these when this PR we agree to merge.
    3. Sixth item since we haven't changed anything in the installation and the website, so nothing needs to be updated here. This could be checked.
    4. Seventh item I have integrated the local developer version of diffpy.structure into diffpy.cmi and we could properly use it.
    5. Eighth item, we have used the pre-commit to check these. Also, I manually read the instruction and I believe it is good.
    6. Ninth item, we follow the instruction and they are all passed.
    (diffpy.structure) huarundong@Stevens-MacBook-Pro-405 diffpy.structure % twine check dist/*
    Checking dist/diffpy_structure-0.0.1-py3-none-any.whl: PASSED
    Checking dist/diffpy_structure-0.0.1.tar.gz: PASSED
    
    1. For tenth item, I think we need Simon to dispatch matrix testing workflow.
  3. sbillinge commented on Mar 29, 2026

    @sbillinge
    ContributorAuthor

    @stevenhua0320 thanks for flagging the licenses. I modified the copyright holders. I also found some old workflows that needed to be deleted and I deleted them. I pushed out the 3.4.0-rc.1 release and it successfully went to pypi. Please can you check that the installation goes ok and everything works and we can push out the full release.

  4. stevenhua0320 commented on Mar 29, 2026

    @stevenhua0320
    Contributor
    1. Have installed the diffpy.strucutre with the new pre-release version.
    2. The licenses are BSD-3 license, and we have updated the license holders for 2026, so it should be right.
    Image
    1. The online documentation for the pre-release is displayed properly.
    Image 4. Have run the `pytest`, they are all passing, also it displays the deprecation warning below (it is too long so I didn't paste it, but they are there.)
    (diffpy.structure) huarundong@Stevens-MacBook-Pro-405 diffpy.structure % pytest
    ================================================================================================================== test session starts ===================================================================================================================
    platform darwin -- Python 3.13.12, pytest-9.0.2, pluggy-1.6.0
    rootdir: /Users/huarundong/dbs/diffpy.structure
    configfile: pyproject.toml
    collected 219 items                                                                                                                                                                                                                                      
    
    tests/test_atom.py ..........                                                                                                                                                                                                                      [  4%]
    tests/test_expansion.py .........                                                                                                                                                                                                                  [  8%]
    tests/test_lattice.py ..............                                                                                                                                                                                                               [ 15%]
    tests/test_loadstructure.py ........                                                                                                                                                                                                               [ 18%]
    tests/test_p_cif.py ..........................                                                                                                                                                                                                     [ 30%]
    tests/test_p_discus.py .....                                                                                                                                                                                                                       [ 32%]
    tests/test_p_pdffit.py .........                                                                                                                                                                                                                   [ 36%]
    tests/test_parsers.py .............                                                                                                                                                                                                                [ 42%]
    tests/test_spacegroups.py ........                                                                                                                                                                                                                 [ 46%]
    tests/test_structure.py ................................................                                                                                                                                                                           [ 68%]
    tests/test_supercell.py ...                                                                                                                                                                                                                        [ 69%]
    tests/test_symmetryutilities.py .............................................................                                                                                                                                                      [ 97%]
    tests/test_utils.py ....                                                                                                                                                                                                                           [ 99%]
    tests/test_version.py .                                                                                                                                                                                                                            [100%]
    
    ==================================================================================================================== warnings summary ====================================================================================================================
    
  5. stevenhua0320 commented on Mar 29, 2026

    @stevenhua0320
    Contributor

    @sbillinge I have seen that the full release is successful on PypI. Now we could move on to conda-forge. I have made a PR for updating the requirements and tests in the meta.yml, which is here:conda-forge/diffpy.structure-feedstock#33. After this is merged, we could release version 3.4.0 on conda-forge.

  6. stevenhua0320 commented on Mar 29, 2026

    @stevenhua0320
    Contributor

    @sbillinge I have tested the conda-forge release for version 3.4.0. For this version we could run it properly for all.

    (diffpy.structure-3.4.0) huarundong@Stevens-MacBook-Pro-405 diffpy.structure % pytest
    ================================================================================================================== test session starts ===================================================================================================================
    platform darwin -- Python 3.13.0, pytest-9.0.2, pluggy-1.6.0
    rootdir: /Users/huarundong/dbs/diffpy.structure
    configfile: pyproject.toml
    collected 219 items                                                                                                                                                                                                                                      
    
    tests/test_atom.py ..........                                                                                                                                                                                                                      [  4%]
    tests/test_expansion.py .........                                                                                                                                                                                                                  [  8%]
    tests/test_lattice.py ..............                                                                                                                                                                                                               [ 15%]
    tests/test_loadstructure.py ........                                                                                                                                                                                                               [ 18%]
    tests/test_p_cif.py ..........................                                                                                                                                                                                                     [ 30%]
    tests/test_p_discus.py .....                                                                                                                                                                                                                       [ 32%]
    tests/test_p_pdffit.py .........                                                                                                                                                                                                                   [ 36%]
    tests/test_parsers.py .............                                                                                                                                                                                                                [ 42%]
    tests/test_spacegroups.py ........                                                                                                                                                                                                                 [ 46%]
    tests/test_structure.py ................................................                                                                                                                                                                           [ 68%]
    tests/test_supercell.py ...                                                                                                                                                                                                                        [ 69%]
    tests/test_symmetryutilities.py .............................................................                                                                                                                                                      [ 97%]
    tests/test_utils.py ....                                                                                                                                                                                                                           [ 99%]
    tests/test_version.py .                                                                                                                                                                                                                            [100%]
    
    ==================================================================================================================== warnings summary ====================================================================================================================
    tests/test_atom.py::TestAtom::test_msdCart
      /Users/huarundong/dbs/diffpy.structure/tests/test_atom.py:103: DeprecationWarning: 'diffpy.structure.Atom.msdLat' is deprecated and will be removed in version 4.0.0. Please use 'diffpy.structure.Atom.msd_latt' instead.
        assert atom_1.msdCart([1, 0, 0]) == pytest.approx(0.0456, rel=0, abs=1e-15)
    
    tests/test_atom.py::TestAtom::test_msdCart
      /Users/huarundong/dbs/diffpy.structure/tests/test_atom.py:104: DeprecationWarning: 'diffpy.structure.Atom.msdLat' is deprecated and will be removed in version 4.0.0. Please use 'diffpy.structure.Atom.msd_latt' instead.
        assert atom_1.msdCart([0, 5, -2]) == pytest.approx(0.0456, rel=0, abs=1e-15)
    
    tests/test_atom.py::TestAtom::test_msdCart
      /Users/huarundong/dbs/diffpy.structure/tests/test_atom.py:105: DeprecationWarning: 'diffpy.structure.Atom.msdLat' is deprecated and will be removed in version 4.0.0. Please use 'diffpy.structure.Atom.msd_latt' instead.
        assert atom_1.msdCart([0, 5, -2]) == pytest.approx(0.0456, rel=0, abs=1e-15)
    
    tests/test_atom.py::TestAtom::test_msdCart
    tests/test_atom.py::TestAtom::test_msdCart
      /Users/huarundong/dbs/diffpy.structure/tests/test_atom.py:118: DeprecationWarning: 'diffpy.structure.Atom.msdLat' is deprecated and will be removed in version 4.0.0. Please use 'diffpy.structure.Atom.msd_latt' instead.
        assert atom_2.msdCart(vc) == pytest.approx(atom_2.msdCart(3.7 * vc), rel=1e-13, abs=1e-13)
    ...
    

    The deprecation warning is too long, but they are there and all properly displayed.
    I checked the latest README.rst, they are all displaying correctly. Tutorials in diffpy.cmi for diffpy.structure are running properly, the online documentation and api reference I have checked it and no link is broken. So, the version 3.4.0 should be all good now.

  7. sbillinge commented on Mar 29, 2026

    @sbillinge
    ContributorAuthor

    closing as completed. Thanks @stevenhua0320

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

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions