This document describes the process of making a new release of xrayutilities.
It is therefore not relevant for users, but only for developers and (maybe to
some extent also for) packagers.
CHECK EVERYTHING
================
Is everything running fine? perform the tests and run the examples
change the version in lib/xrayutilties/VERSION
update copyright notice in doc/source/conf.py and README.md
pycodestyle lib
allowed output is:
lib/xrayutilities/materials/elements.py:36:1: E741 ambiguous variable name 'O'
lib/xrayutilities/materials/elements.py:140:1: E741 ambiguous variable name 'I'
lib/xrayutilities/materials/spacegrouplattice.py:1157:31: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:33:31: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:34:31: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:35:31: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:36:32: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:38:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:40:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:42:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:44:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:47:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:49:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:51:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:54:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:57:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:60:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:63:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:66:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:70:35: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:72:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:75:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:78:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:81:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:84:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:87:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:92:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:97:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:100:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:103:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:108:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:113:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:118:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:123:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:128:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:136:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:140:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:147:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:154:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:161:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:176:31: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:177:32: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:179:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:184:35: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:186:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:189:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:192:22: E741 ambiguous variable name 'l'
lib/xrayutilities/materials/wyckpos.py:195:22: E741 ambiguous variable name 'l'
run the unit tests
pytest
PACKAGING
=========
GIT tagging
-----------
tag the version in the GIT repository and publish the version tag to Github
git tag -a vX -m "version X"
git push origin vX
Tarball and wheel generation
----------------------------
A tarball and wheels for multiple platforms are generated in the Azure
cibuildwheel pipeline
(https://dev.azure.com/dominikkriegner/xrayutilities/_build). The deployment
is done via a release pipeline on Azure.
UPDATE DOCUMENTATION & WEBPAGE
==============================
to build the documentation from scratch first one needs to rebuild the API
documentation sources (which is done from the installed module, so make sure
you have the latest version installed!). The relevant commands and
dependencies are found in .azure/azure-builddocs.yml which can be either
triggered manually are should be run automatically if a new version tag is
uploaded. The new documentation (pdf and html) are uploaded to be available at
https://xrayutilities.sourceforge.io
Github release and mailing list anouncement
===========================================
Finally announce the new release on Github (which will also upload the new
version to Sourceforge) and drop a mail to the user mailinglist:
xrayutilities-userslists.sourceforge.net