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.
@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).
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?
@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.
Have installed the diffpy.strucutre with the new pre-release version.
The licenses are BSD-3 license, and we have updated the license holders for 2026, so it should be right.
The online documentation for the pre-release is displayed properly.
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.)
@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.
@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.
Activity
stevenhua0320 commented on Mar 29, 2026
@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).
sbillinge commented on Mar 29, 2026
@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.
stevenhua0320 commented on Mar 29, 2026
stevenhua0320 commented on Mar 29, 2026
@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.
stevenhua0320 commented on Mar 29, 2026
@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.
sbillinge commented on Mar 29, 2026
closing as completed. Thanks @stevenhua0320