diffsims
diffsims copied to clipboard
0.6.0 Release
Just creating an issue tracking what needs to be done before a 0.6.0 release. My plan is to have this release be at least (semi-stable) and potentially we could think about a 1.0.0 release not to long after. With a 1.0.0 pyxem/ kikuchipy releases in the future we probably need a more stable diffsims package as well...
Package Maintenance etc.
- [x] #199
- [x] #202
- [x] Add Examples to documentation using Sphinx Gallery #201
Redesign Simulations:
- [x] Use orix
Phaseclass inDiffractionGenerator#201 - [x] Move sampling methods to
orixhttps://github.com/pyxem/orix/pull/460 - [ ] Allow Diffraction generator to pull much of the needed information from the
Phaseclass. #201 - [ ] Add functionality to DiffractionLibrary
- [ ] Add more descriptive repr
- [ ] Add method to get simulation_index in polar representation #201
- [ ] Add a method to visualize the DiffractionLibrary --> use some orix functionality?
Refactors:
- [ ] Move
AtomicDiffractionGeneratorto its own file. I'm not sure if this really should be in diffsims. With packages likeabTEMwhich do this quite a bit better this seems a bit redundant. But maybe others disagree?
Removals/Deprecations:
- [ ] Deprecate
StructureLibrary--> Removal in 0.7.0 - [ ] Remove
ReciprocalLatticePointper deprecation warning - [ ] Deprecate
rotation_list_generators,sphere_mesh_generatorsandzap_map_generatorsAll sampling should be moved toorix - [ ] Deprecate
VectorLibrary-->Removal in 0.7.0 (I think the VectorLibrary is just another instance of the - [ ] Remove
AtomicDiffractionGenerator??? This functionality is a bit hard to maintain??? Considering things like abTEM exist I'd consider removing this if there isn't too much objection as you can just do a dynamical simulation...
Some of these things would be good to do but would require more developer time than I think we currently have.
I would shoot for getting in #201 and then calling it good for a 0.6.0 release.
@hakonanes how do you feel about making a pre-release after #205, #213 , #199 are merged?
Then we can test the orientation mapping in pyxem just to make sure things are wokring the way we would like.
Sounds good. You're thinking of a release candidate on PyPI?
Sounds good. You're thinking of a release candidate on PyPI?
Yea, it just makes it easier for testing in pyxem as we can just install the rc rather than installing from the github repo. It probably really doesn't matter too much but maybe someone else out there is curious and wants to try it :)
I'll make a release PR after #209 is in. We can discuss and release tomorrow, if people are OK with this.
The release PR is #216.
#216 should be ready to be merged into the main branch, and we can then release a 0.6rc1 tag.
I assume you're busy the HyperSpy workshop, @CSSFrancis. Since you're the one asking for the release, we can wait until you give the go-ahead.
@hakonanes I'll wait until the CI finishes and then merge then we can go ahead!
Here're my suggested release notes (https://github.com/pyxem/diffsims/releases):
diffsims 0.6rc1 is a minor release of diffsims, an open source Python library focussed on the simulation of diffraction patterns.
See below, the changelog or the GitHub changelog for all updates from the previous release.
Added
- Explicit support for Python 3.11.
- pre-commit for code formatting.
- Deprecation tools for deprecating functions, parameters, methods, and properties.
Changed
- Documentation theme from Furo to the PyData-Sphinx-Theme.
Deprecated
get_hkl(),get_highest_hkl(), andget_equivalent_hkl()methods in the crystallography module. Please use the following corresponding methods in theReciprocalLatticeVectorclass instead:from_highest_hkl(),from_min_dspacing(), andsymmetrise().
Removed
- Support for Python 3.6 and Python 3.7, leaving 3.8 as the oldest supported version.
ReciprocalLatticePointclass; Use theReciprocalLatticeVectorclass instead, which is an improved replacement.StructureLibrary.from_crystal_systems()class method, which previously raised aNotImplementedError, but now will throw anAttributeErrorinstead.
0.6rc1 is out on PyPI. Can be installed with pip install --pre diffsims.
We could make a pre-release build on conda-forge (explained here), but I don't think it's necessary.
@CSSFrancis, what needs to be done before we release 0.6.0 proper?
@hakonanes thank you so much for your help with this! I don't think we really want to do a pre-release on cond-forge (just sounds like a lot of work).
As far as a workflow before relasing 0.6.0 proper:
- Merge https://github.com/pyxem/pyxem/pull/1076
- Rerun https://github.com/din14970/pyxem_template_matching_workflows. I would like to rerun the benchmarks/ update those workflows using the new simulations. This is a good test to see if things are (still) running effectively.
We don't necessarily need to merge everything but as I don't do much in the way of orientation mapping I would love to have some feed back before things get merged. My current goal is to make a pyxem 0.19.0 rc hopefully tomorrow and then we can do some testing with that.
I think we can probably go ahead with this. I've been using this for a couple of weeks now with no issues so we can make the 0.6.0 release.
Sounds good, I'll do it right away.
- [x] PyPI
- [x] Zenodo
- [x] New stable docs
- [x] conda-forge
- [x] Update main post-release