forked from pydicom/pydicom
-
Notifications
You must be signed in to change notification settings - Fork 0
/
release-checklist.txt
83 lines (77 loc) · 4.48 KB
/
release-checklist.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
pydicom release checklist
* write ReleaseNotes by going through revision history
* update the docs/release-notes.txt file
* review issue list for any other changes that should be in the release
* edit __init__.py version number
* edit setup.py -- version number, description, license if necessary, etc
* remove extra debug statements (e.g. in data_element_generator) and extra print statements
* run test/performance/time_test.py to check performance hasn't degraded
* run reindent.py to fix the tab/space mixes, trailing whitespace, etc
python2.7 reindent -rv dicom # add -d for a dry-run
* run pep8 to warn of PEP-8 style issues (pep8 is available on pypi for pip install)
cd <'source' directory>
python -m pep8 pydicom # various ignores in .pep8 config file, should fix most of those eventually
To see source for particular problems:
python -m pep8 --select E101 --show-source pydicom # e.g. E101 is mixed tab/space
etc as above to show source for each kind of error
* run each example file and clean up any output files created
cd to examples directory
python add_dict_entries
python anonymize.py ..\..\tests\test_files anonfiles
python anonymize.py ..\..\tests\test_files\CT_small.dcm anonfiles\CT2.dcm
python DicomDiff.py ..\..\tests\test_files\CT_small.dcm anonfiles\CT_small.dcm | more
python DicomInfo.py ..\..\tests\test_files\CT_small.dcm
python dicomtree.py ..\..\tests\test_files\rtplan.dcm
python ListBeams.py ..\..\tests\test_files\rtplan.dcm
python myprint.py ..\..\tests\test_files\rtplan.dcm
python show_charset_name.py
python write_new.py
cd ..\..\tests\test_files\dicomdirtests
python ..\..\..\pydicom\examples\show_dicomdir.py
* doctest interactive_session.txt and interactive_session_downsize_image.txt::
First, temporarily edit interactive_session.txt and add <BLANKLINE> in the help blank lines,
if you want to ensure no errors.
(switch to testfiles directory; cp mr1_unc.dcm from external testsuite for downsize example)
python
USING a PYTHON3 version with **Numpy installed:
>>> import doctest
>>> doctest.testfile("../../pydicom/examples/interactive_session.txt") # , verbose=True if desired
>>> doctest.testfile("../../pydicom/examples/interactive_session_downsize_image.txt")
>>> doctest.testfile("../../pydicom/examples/simple_interactive_example.txt")
>>> doctest.testfile("../../pydicom/examples/user_guide_doctest.txt")
>>> doctest.testfile("../../pydicom/examples/working_with_sequences_doctest.txt")
First can fail if help() function as goes into reader mode needing q to exit
* run python27 -Qwarn to check for integer division problems.
* run test/all.bat on windows to test with all supported python versions
* run test/shell_all on linux/mac to test all supported python versions
* commit all changes
* tag the release (vX.Y.Z)
* push to repository
* loop back to running all tests if any changes to main code made
(can remove release-X.X.X if needed)
* check back out to a clean directory -- that way sure to not include extra files in the build
* build the package files
* on windows, python setup.py bdist_wininst --> get windows installer exe in dist directory
* on linux, python setup.py sdist --> get .tar.gz source file (also used by easy_install) in dist directory
* for all platforms, python setup.py bdist_wheel --universal (pure python with code that runs in python2 and python3)
* use the dist files to install the package on
* windows -- 32-bit / 64-bit using Windows installer
* linux -- 32-bit / 64-bit
and run the tests in at least one python version on each system
* upload binary dist files to github
* mkvirtualenv testpydicom
* run pip install on new environment and make sure it works. For pre-releases, use `pip install --pre pydicom`
* verify that source install has _all_ directories and subdirectories included
* update documentation:
* update Release Notes page
* special attention to deprecated modules, classes, etc
* look for references to specific versions
* any changes related to version of python itself
* read all pages quickly
* update News page with quick synopsis of major features
* announce on pydicom google group
* update info on medphysfiles.com
* register with pypi:
Run twine upload dist/*, and twine will register your project based on the package metadata
in the specified files. Your ~/.pypirc must already be appropriately configured for twine to work.
* others -- idoimaging.com? macports?