release 0.20
[docutils.git] / sandbox / infrastructure / releasing-log.txt
blob3a905ac352612a3c3183b86d6263940391da5c0b
1 Releasing
2 =========
4 :Contact: grubert@users.sourceforge.net, docutils-develop@users.sourceforge.net
5 :Revision: $Revision$
6 :Date: $Date$
7 :Copyright: This document has been placed in the public domain.
9 Notes on what happend while releasing.
11 Release 0.20 (2023-05-09)
12 =========================
14 (follow docs/dev/release.txt)
16 release (2023-05-09)
18 * Update RELEASE-NOTES.txt add section ``Release 0.20``.
20   Changes were already done on canditate
22 * Change HISTORY.txt title ``Release 0.20 (2023-05-09)``.
24 * Set new version (replace ``<version>`` with the new version indentifier
25   and ``<docutils-repository-root>`` with the dir containing
26   ``HISTORY.txt`` and ``RELEASE-NOTES.txt``)::
28       cd <docutils-repository-root>
29       ../sandbox/infrastructure/set_version.sh <version>
30   
31 * run tox 3.7 ... 3.11, run python3.12 alltests.py
33   all OK.
35 * Generate wheel and source-distribution::
37     python3 setup.py sdist
38     python3 setup.py bdist_wheel
40 * Upload wheel and source to test.pypi::
42     python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
44   Test in venv. ::
46     python3 -m venv du3 ; cd du3
47     export PYTHONPATH= ; . bin/activate
49     python -m pip install --index-url https://test.pypi.org/simple/ --no-deps docutils
51     cp -Lr ../docutils-code/docutils/test .
52     python test/alltests.py
54     python -m pip uninstall docutils
55     deactivate ; cd .. ; rm -r du3
57 * Commit changes ... the changed version number.
60 release candidate 1 (2023-05-04)
62 * svn update
63 * run tox : py3.7 to py3.11 : OK
64 * run tests with 3.12.0a7 : OK
66 * Update RELEASE-NOTES.txt add section ``Release <version>``.
68   Consult HISTORY.txt for important changes.
70 * Change HISTORY.txt title ``Changes Since <previous release>`` to ``Release <version>``.
72 * Set new version with ``sandbox/infrastructure/set_version.sh <version>``
74   run tox (py3.7 to 3.11)
76   Check docutils/__init__.py __version_info__ tuple. : OK
78   Run tests ::
80     export PYTHONWARNINGS=default
81     python3 test/alltests.py
83   OK , no warnings (really no)
85 * Generate wheel and source-distribution::
87     python3 setup.py sdist
88     python3 setup.py bdist_wheel
90 * Upload wheel and source to test.pypi::
92     python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
94 * Test in venv. NOTE use --pre for prereleases::
96     python3 -m venv du3 ; cd du3
97     export PYTHONPATH= ; . bin/activate
99     python -m pip install --index-url https://test.pypi.org/simple/ --pre --no-deps docutils
101     cp -Lr ../docutils-code/docutils/test .
102     python test/alltests.py
104   HISTORY.txt is not installed with wheel. 
106   Clean up::
108     python -m pip uninstall docutils
109     deactivate ; cd .. ; rm -r du3
111 * Commit changes ... the changed version number.
113 * Now upload to pypi::
115     python3 -m twine upload  dist/docutils-0.20*
117 * Remove previous package from local cache::
119     find .cache/pip/wheels -name docutils\*whl -exec rm -v -i {} \;
121 * and test::
123     python3 -m venv du3 ; cd du3
124     export PYTHONPATH= ; . bin/activate
126     pip install --pre --no-deps docutils
127     cp -Lr ../docutils-code/docutils/test .
128     python test/alltests.py
130   HISTORY.txt is missing.
132   Clean up::
134     deactivate ; cd .. ; rm -r du3
136 * Notify to docutils-developer and user.
138 * update web page.
140 TODO on release tag the source 
142 Release 0.19 (2022-07-05)
143 =========================
145 (follow docs/dev/release.txt)
147 * svn update
148 * run tox
149 * run tests with py3.6 to 3.11
151 * Update RELEASE-NOTES.txt add section ``Release <version>``.
153   Consult HISTORY.txt for important changes.
155 * Change HISTORY.txt title ``Changes Since <previous release>`` to ``Release <version>``.
157 * Set new version with ``sandbox/infrastructure/set_version.sh <version>``
159   Check what was changed with version control system by ``set_version.sh``
161   Change docutils/__init__.py __version_info__ tuple.
163   Run tests ::
165     export PYTHONWARNINGS=default
166     python3 test/alltests.py
168   or use tox.
169     
170   ``export PYTHONWARNINGS=default`` prints DeprecationWarnings in python3.
172 * Generate wheel and source-distribution::
174     python3 setup.py sdist
175     python3 setup.py bdist_wheel
177 * Upload wheel and source to test.pypi::
179     python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
181   Test in venv. NOTE use --pre for prereleases::
183     python3 -m venv du3 ; cd du3
184     export PYTHONPATH= ; . bin/activate
186     python -m pip install --index-url https://test.pypi.org/simple/ --no-deps docutils
188     cp -Lr ../docutils-code/docutils/test .
189     python test/alltests.py
191     python -m pip uninstall docutils
192     deactivate ; cd .. ; rm -r du3
194 * Commit changes ... the changed version number.
196 * tag 0.## (Note: only directory docutils is copied)::
198     svn copy svn+ssh://grubert@svn.code.sf.net/p/docutils/code/trunk/docutils \
199              svn+ssh://grubert@svn.code.sf.net/p/docutils/code/tags/docutils-0.19 \
200              -m "tagging release 0.19"
202 * Update your source directory. 
203 * Rebuild wheel and source-distribution ::
205     python3 setup.py sdist
206     python3 setup.py bdist_wheel
208 * Now upload to pypi::
210     python3 -m twine upload  dist/docutils-0.19*
212 * Remove previous package from local cache::
214     find .cache/pip/wheels -name docutils\*whl -exec rm -v -i {} \;
216 * and test::
218     python3 -m venv du3 ; cd du3
219     export PYTHONPATH= ; . bin/activate
221     pip install --no-deps docutils
222     cp -Lr ../docutils-code/docutils/test .
223     python test/alltests.py
225     deactivate ; cd .. ; rm -r du3
227 * Notify to docutils-developer and user.
229 * upload source and generated html to sf-htdocs/0.19 ::
231     mkdir tmp1
232     cd tmp1
233     tar xzvf ../dist/docutils-0.19.tar.gz
234     cd docutils-0.19/
235     tools/buildhtml.py .
236     find . -name \*.pyc -exec rm -v {} \;
237     find . -name __pycache__ -exec rmdir -v {} \;
238     rm -r docutils.egg-info
239     rsync -e ssh -r -t ./ web.sourceforge.net:/home/project-web/docutils/htdocs/0.19
241 * Check web/index.txt for necessary corrections.
242 * Run sandbox/infrastructure/docutils-update.local to update web-content.
243 * Release to sourceforge.
245   - Upload tar.gz and 0.19 release notes to sourceforge.
246   - Select docutils-0.19.tar.gz as default for all OS.  
248 * set_version 0.19.1b.dev
249 * test with py3
250 * docutils/HISTORY.txt: add title "Changes Since 0.##"
251 * svn commit
252 * run sandbox/infrastructure/docutils-update.local
254 Problems while releasing 0.19b1
255 ===============================
257 * If docutils is installed into virtual environment and
258   the test directory is copied from development directory
259   with ``cp -Lr ...``::
261        -L, --dereference
262               always follow symbolic links in SOURCE
263   
264   - finding ``HISTORY.txt`` in test_utils.py fails.
265     Create a HISTORY.txt file to avoid.
267 setup.cfg contained the universal setting that generated py2py3 wheels.
269 Release 0.19b1 (2022-06-21)
270 ===========================
272 * run tox: 
273 * set_version 0.19b1
274 * tox again
275 * Generate universal wheel and source-distribution ::
277     python3 setup.py sdist
278     python3 setup.py bdist_wheel 
280 * Upload universal wheel and source to test.pypi::
282     twine upload --repository-url https://test.pypi.org/legacy/ dist/docutils-0.19b*
284 * test in venvs: ignore wrong paths and un-embedded images
286 * upload to pypi::
288     twine upload  dist/docutils-0.19*
290 * and test: python uses the cached download from the previous test.
292   - remove from pip cache::
294       find .cache/pip/wheels -name docutils\*whl
296 ERROR (fixed in r9089)
298   ``python3 setup.py bdist_wheel`` builds a docutils-0.19b1-py2.py3-none-any.whl
299   although python > 3.7 is required ... will this break python2 installations ? 
301   This happens with option universal and without and also if using *build*.
303   Testing with python2.7 : only 0.18 is installed, even with --pre and -U.
305   Locally cached wheels may pose a problem, though.
306   Cf. https://github.com/marshmallow-code/marshmallow/issues/1860
308 * set_version 0.19b2.dev and change __version_info_structure.
309 * tox
310 * commit
311 * Run sandbox/infrastructure/docutils-update.local to update web-content.
313 Release 0.18.1 (2021-11-23)
314 ===========================
316 follow docs/dev/release.txt
318 Release 0.18.1b (2021-11-18)
319 ============================
321 * run tox: passed 2.7, 3.5 ... 3.11
322 * set_version 0.18.1b
323 * tox again
324 * commit : release 0.18.1b
325 * Generate universal wheel and source-distribution with py3.8::
327     python3 setup.py sdist
328     python3 setup.py bdist_wheel --universal
330 * Upload universal wheel and source to test.pypi::
332     python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/docutils-0.18.1b0*
334 * test in venvs: ignore wrong paths and un-embedded images
336 * upload to pypi::
338     python3.9 -m twine upload  dist/docutils-0.18.1b0*
340 * and test: Note python3 uses the cached download from the python2 test.
342   - remove from pip cache::
344       find .cache/pip/wheels -name docutils\*whl
346 * set_version 0.18.1b1.dev
347 * tox
348 * commit
349 * Run sandbox/infrastructure/docutils-update.local to update web-content.
351 Release 0.18 (2021-10-26)
352 =========================
354 * beta is out for three weeks.
355 * announce soft freeze on dev-mail.
356 * run tox: passed 2.7, 3.5 ... 3.11
357 * set_version 0.18
358 * tox again
359 * commit : release 0.18
360 * Generate universal wheel and source-distribution with py39.
361 * Upload universal wheel and source to test.pypi.
362 * test in venvs: ignore wrong paths and un-embedded images
363 * tag release 0.18
365     svn copy svn+ssh://grubert@svn.code.sf.net/p/docutils/code/trunk/docutils 
366              svn+ssh://grubert@svn.code.sf.net/p/docutils/code/tags/docutils-0.18 
367              -m "tagging release 0.18"
369 * upload to pypi
370 * and test: Note python3 uses the cached download from the python2 test.
373 * upload source and generated html to sf-htdocs/0.18
375     mkdir tmp1
376     cd tmp1
377     tar xzvf ../dist/docutils-0.18.tar.gz
378     cd docutils-0.18/
379     tools/buildhtml.py .
380     find . -name \*.pyc -exec rm {} \;
381     rm -rf docutils.egg-info
382     rsync -e ssh -r -t ./ web.sourceforge.net:/home/project-web/docutils/htdocs/0.18
384 * Check web/index.txt for necessary corrections : None necessary.
385 * Release to sourceforge.
387   - Upload tar.gz and 0.18 release notes to sourceforge.
388   - Select docutils-0.18.tar.gz as default for all OS.  
390 * set_version 0.18.1.dev
391 * tox
392 * docutils/HISTORY.txt: add title "Changes Since 0.18"
393 * Notify docutils-developer and user.
394 * Run sandbox/infrastructure/docutils-update.local to update web-content.
396 Release 0.17 aftermath
397 ======================
399 :2021-04-05: Fixed: on-ASCII characters in docutils/writers/latex2e/docutils.sty
401 :2021-04-04: Open: [readthedocs/recommonmark] 
402              AttributeError: 'Values' object has no attribute 'tab_width' (#220)
404              pinning to docutils 0.16 helped ... why ?
406 Release 0.17.1 (2021-04-16)
407 ===========================
409 * tox with 2.7 3.5, 3.6, 3.7, 3.8, 3.9, 3.10
410 * set_version 0.17.1
411 * tox again
412 * commit : release 0.17.1
413 * Generate universal wheel and source-distribution with py38.
414 * Upload universal wheel and source to test.pypi.
415 * test in venvs ... and then next problem pypi caches 0.17.1b2.
417   --no-cache-dir does not help.
419   call twice, second time with ``--upgrade``.
421 * tag release 0.17.1
422 * upload to pypi
423 * and test
424 * Notify docutils-developer and user.
425 * upload source and generated html to sf-htdocs/0.17.1
426 * Check web/index.txt for necessary corrections : None necessary.
427 * Release to sourceforge.
428 * set_version 0.17.2b.dev
429 * tox
430 * docutils/HISTORY.txt: add title "Changes Since 0.17.1"
431 * run sandbox/infrastructure/docutils-update.local
434 Release 0.17.1 (2021-04-12 ...)
435 ===============================
437 * tox with 2.7 3.5, 3.6, 3.7, 3.8, 3.9, 3.10
439   - 3.7 and 3.10 fail. Both with ::
441      from _ctypes import Union, Structure, Array
442        ModuleNotFoundError: No module named '_ctypes'
444   testing against development source passes.
446   Test crosstest, see subdirectory
448   3.7 and 3.10 require libffi-dev to build local
449   then tox passes for 3.5 to 3.10.
451 Release 0.17.1b1 (2021-04-09)
452 =============================
454 * tox with 2.7 3.5, 3.6, 3.8, 3.9
456 * with LC_ALL=C and PYTHONWARNINGS=default
458   python3.6 and python3.10.0a ::
460     docutils/utils/smartquotes.py:639: DeprecationWarning: invalid escape sequence \[
461         ch_classes = {'open': u'[(\[{]', # opening braces
462     docutils/test/test_writers/test_manpage.py:62: DeprecationWarning: invalid escape sequence \-
463     ... several of the same
465 * recommonmark tests::
467     python3.6 -m pip install --user recommonmark 
468     # 0.7.1
470     python3.6 test/alltests.py
471     FAILED (failures=17, errors=17, skipped=1)
473     input:
474     b'\nExternal hyperlink [target]s:\n\n[target]: http://www.python.org/\n'
475     -: expected
476     +: output
477       <document source="test data">
478           <paragraph>
479               External hyperlink
480     -         <reference name="target" refuri="http://www.python.org/">
481     ?                   --------------
482     +         <reference refuri="http://www.python.org/">
483                   target
484               s:
486   only works with recommonmark 0.4
488 * Generate universal wheel and source-distribution with py38.
489 * Upload universal wheel and source to test.pypi.
490 * Test in python3.8 venv 
492   Fails.
494   Inside virtualenv ::
496     >>> import docutils.parsers.recommonmark_wrapper as rw                      
497     >>> dir(rw)
498     ['Parser', '__builtins__', '__cached__', '__doc__', '__file__', 
499      '__loader__', '__name__', '__package__', '__spec__', 
500      '_recommonmarkParser', 'docutils', 'nodes', 'with_recommonmark']
502   In development directory ::
504     >>> import docutils.parsers.recommonmark_wrapper as rw
505     >>> dir(rw)
506     ['CommonMarkParser', 'Component', 'Parser', '__builtins__',
507      '__cached__', '__doc__', '__file__', '__loader__',
508      '__name__', '__package__', '__spec__', 'docutils', 'nodes']
510   Depending on recommonmark being installed in the running python
511   version or not ``CommonMarkParser`` is a class or None.
513 * Rebuild the wheel after running tox (this cleans caches). 
514   Cannot be uploaded to testpypi because it is the same name. 
516   Install the whl from dist-directory into py38 venv.
517   Ok.
519 * New version 0.17.1b1.dev because pypi does not allow changing uploads.
520 * Run tox and python3.10 test.
521 * Commit new version number
522 * build sdist and universal wheel with py39.
523 * Install wheel from dist into venv py39.
525   Test passes (embedding fails because images are missing).
527 * Upload universal wheel and source to test.pypi.
528 * Install into py39 venv : This time install the --pre release
529   tests pass.
531 * upload to pypi.
532 * test in py39 venv. Passed
533 * test in py39 venv with LC_ALL=C. Passed
534 * test in venv with recommonmark==0.4: fails . requires module html.
536 * notify docutils-develop and user and sphinx.
537 * New version 0.17.1b2.dev 
539 Release 0.17 (2021-04-03 ...)
540 =============================
542 * tox with 2.7 3.8, 3.9
544   3.10a6 misses _ctypes.
546 * copy more things from HISTORY to RELEASE-NOTES
548 * ``set_version.sh 0.17``
550 * Run tests manually and via tox:
552   ======== ======
553    pyvers   time
554   ======== ======
555      2.7    7.3
556      3.8    6.5
557      3.9    6.5
558      3.10   7.2
559   ======== ======
561 * Generate universal wheel and source-distribution.
562 * Upload universal wheel and source to test.pypi.
563   Wait some minutes to test in python2 virtualenv.
565   Test in python3.10 venv.
567   Stylesheet paths are different and image embedding fails
568   because images are not found. 
570   After copying ``docs/user/rst/images`` from docutils into the 
571   venv-directory/docs/user/rst/images image embedding works.
573 * Commit changes to version control system.
574 * tag 0.17 (Note: only directory docutils is copied)::
576     svn copy svn+ssh://grubert@svn.code.sf.net/p/docutils/code/trunk/docutils \
577              svn+ssh://grubert@svn.code.sf.net/p/docutils/code/tags/docutils-0.17 \
578              -m "tagging release 0.17"
580 * Generate universal wheel and source-distribution.
581   Do it again and check for differences: svn-numbers and sha-fingerprints
583 * Now upload to pypi (the newly created s- and bdist).
584 * ... and test in venv and virtualenv.
585 * Notify to docutils-developer and user.
586 * Upload source and html to sf-htdocs/0.17
588 * Check web/index.txt for necessary corrections: nothing to do.
590 * Run sandbox/infrastructure/docutils-update.local to update web-content.
591 * Release to sourceforge.
593   - Upload tar.gz and 0.17 release notes to sourceforge.
594   - Select docutils-0.17.tar.gz as default for all OS.  
596 * set_version 0.18b.dev
597 * test with py2 and py3
598 * docutils/HISTORY.txt: add title "Changes Since 0.17"
600 * run sandbox/infrastructure/docutils-update.local
602 BetaRelease 0.17b1 (2021-02-10) to test.pypi
603 ============================================
605 * tox with 2.7 3.8 and 3.9 ::
607     functional/expected/standalone_rst_html5.html
609     -<dl class="footnote brackets">
610     ...
611     -<dd><p>Requires support for attributes to inline
612     -roles to make sense.</p>
613     -</dd>
614     -</dl>
616   seams to be a moved chunk in test input but not in expected
618 * Version numbering
620   ``python3 setup.py clean`` tells ::
622     setuptools/dist.py:473: UserWarning: Normalizing '0.17b.dev' to '0.17b0.dev0'.
624   According to https://peps.python.org/pep-0440/#pre-releases
626   set_version 0.17b1
628 * test ::
630     export PYTHONPATH=
631     export PYTHONWARNINGS=default
632     python2 test/alltests.py
634     Ran 1454 tests 
635     OK (skipped=3)
637     python3 test/alltests.py
638     Ran 1442 tests
639     OK (skipped=5)
641   python has some ResourceWarning::
643     docutils/parsers/rst/directives/images.py:145: ResourceWarning: 
644       unclosed file <_io.BufferedReader name=b'../docs/user/rst/images/title.png'>
645       del img
647     docutils/writers/html4css1/__init__.py:578: ResourceWarning: 
648       unclosed file <_io.BufferedReader name=b'../docs/user/rst/images/biohazard.png'>
649       del img
651 * Upload universal wheel and source to test.pypi::
653     python3 setup.py sdist
654     python3 setup.py bdist_wheel --universal
655     python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
657   Wait some minutes to test in virtualenv ::
659     python2 -m virtualenv du2 ; cd du2
660     export PYTHONPATH= ; . bin/activate
662     python -m pip install --index-url https://test.pypi.org/simple/ --no-deps --pre docutils
663     # Successfully installed docutils-0.17b1
665     cp -r ~/projects/docutils-code/docutils/test .
666     # copy docs too for inlined images to be found
667     python2 test/alltests.py
668     # IGNORE stylesheet path differences ?
670   Test in venv ::
672     python3 -m venv du3 ; cd du3
673     export PYTHONPATH= ; . bin/activate
675     python3 -m pip install --index-url https://test.pypi.org/simple/ --no-deps --pre docutils
676     # Successfully installed docutils-0.17b1
678     cp -r ~/projects/docutils-code/docutils/test .
679     cp -r ~/projects/docutils-code/docutils/docs .
680     python test/alltests.py
681     # Python 3.8.5 Linux 5.4.0
682     # IGNORE stylesheet path differences ?
684 * commit 0.17b1 to code.sf
686 * Now upload to pypi::
688     python3 -m twine upload  dist/docutils-0.17b1*
690 * and test::
692     python3 -m venv du3 ; cd du3
693     export PYTHONPATH= ; . bin/activate
695     pip install --no-deps --pre docutils
696     # 0.17b1
697     cp -r ~/projects/docutils-code/docutils/test .
698     cp -r ~/projects/docutils-code/docutils/docs .
699     python test/alltests.py
700     # css paths fail
702 * Notify to docutils-developer and user.
704 * ON RELEASE then: tag 0.16 (Note: only directory docutils is copied)::
706     svn copy svn+ssh://grubert@svn.code.sf.net/p/docutils/code/trunk/docutils \
707              svn+ssh://grubert@svn.code.sf.net/p/docutils/code/tags/docutils-0.16 \
708              -m "tagging release 0.16"
710 * run sandbox/infrastructure/docutils-update.local
712 * set version 0.17b2.dev
713 * test with tox: py27 and py38 39
714 * commit to code.sf
715 * run sandbox/infrastructure/docutils-update.local
717 .. note:: final release has some extra steps
719 Release 0.16 (2020-01-12)
720 =========================
722 Set version 0.16
724 test ::
726   export PYTHONWARNINGS=default
727   python2 test/alltests.py
728   python3 test/alltests.py
730 Upload universal wheel and source to test.pypi::
732   python3 setup.py sdist
733   python3 setup.py bdist_wheel --universal
734   python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
736 Wait some minutes to test in virtualenv ::
738   python2 -m virtualenv du2 ; cd du2
739   export PYTHONPATH= ; . bin/activate
741   python -m pip install --index-url https://test.pypi.org/simple/ --no-deps docutils
742   # Successfully installed docutils-0.16
744   cp -r ~/projects/docutils-code/docutils/test .
745   python2 test/alltests.py
746   # IGNORE stylesheet path differences ?
748   python -m pip uninstall docutils
749   deactivate ; cd .. ; rm -rf du2
751 Test in venv ::
753   python3 -m venv du3 ; cd du3
754   export PYTHONPATH= ; . bin/activate
756   python3 -m pip install --index-url https://test.pypi.org/simple/ --no-deps docutils
757   # Successfully installed docutils-0.16
759   cp -r ~/projects/docutils-code/docutils/test .
760   python test/alltests.py
761   # IGNORE stylesheet path differences ?
762   # FAIL: test_find_file_in_dirs (test_utils.HelperFunctionTests)
763   # FAIL: test_rst/ interpreted directives/code ...
764   #  classes="keyword" is "name builtin" in 3.8.0b3 on Darwin 15.6.0
766 Now upload to pypi::
768   python3 -m twine upload  dist/docutils-0.16*
770 and test::
772   python3 -m venv du3 ; cd du3
773   export PYTHONPATH= ; . bin/activate
775   pip install --no-deps docutils
776   # 0.16
777   cp -r ~/projects/docutils-code/docutils/test .
778   python test/alltests.py
779   # css paths fail
781   python2 -m virtualenv du2 ; cd du2
782   export PYTHONPATH= ; . bin/activate
784   pip install --no-deps docutils
785   # 0.16
786   cp -r ~/projects/docutils-code/docutils/test .
787   python test/alltests.py
788   # css paths fail
790 Notify to docutils-developer and user.
792 * tag 0.16 (Note: only directory docutils is copied)::
794     svn copy svn+ssh://grubert@svn.code.sf.net/p/docutils/code/trunk/docutils \
795              svn+ssh://grubert@svn.code.sf.net/p/docutils/code/tags/docutils-0.16 \
796              -m "tagging release 0.16"
798 * upload doc/0.16 ::
800     mkdir tmp1
801     cd tmp1
802     tar xzvf ../dist/docutils-0.16.tar.gz
803     cd docutils-0.16/
804     tools/buildhtml.py .
805     find . -name \*.pyc -exec rm {} \;
806     rm -rf docutils.egg-info
807     rsync -e ssh -r -t ./ web.sourceforge.net:/home/project-web/docutils/htdocs/0.16
809 * change web index.txt
810 * run sandbox/infrastructure/docutils-update.local
812 * set version 0.17b.dev
813 * test with py2 and py3
814 * run sandbox/infrastructure/docutils-update.local
816 * docutils/HISTORY.txt: change title "Changes since 0.15" to "Release 0.16"
817   add "Changes since 0.16"
818 * docutils/RELEASE-NOTES.txt change title "Release 0.16b ..." to Release 0.16 ..."
820 * Release to sourceforge.
822   - Remove test/outputs from tar.gz.
823   - Upload tar.gz and 0.16 release notes to sourceforge.
824   - Select docutils-0.16.tar.gz as default for all OS.  
826 Release 0.16rc1
827 ---------------
829 Set version 0.16rc1
831 test ::
833   export PYTHONWARNINGS=default
834   python2 test/alltests.py
835   python3 test/alltests.py
837 Fix: DeprecationWarning: Please use assertEqual in test_nodes.
839 Upload universal wheel and source to test.pypi::
841   python3 setup.py sdist
842   python3 setup.py bdist_wheel --universal
843   python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
845 Wait some minutes to test in virtualenv ::
847   python2 -m virtualenv du2 ; cd du2
848   export PYTHONPATH= ; . bin/activate
850   python -m pip install --index-url https://test.pypi.org/simple/ --no-deps docutils
851   # Successfully installed docutils-0.15.2
852   python -m pip uninstall docutils
853   python -m pip install --index-url https://test.pypi.org/simple/ --no-deps --pre docutils
854   # Successfully installed docutils-0.16Crc1
856   cp -r ~/projects/docutils-code/docutils/test .
857   python2 test/alltests.py
858   # IGNORE stylesheet path differences ?
860   # -<link rel="stylesheet" href="../input/data/html4css1.css" type="text/css" />
861   # -<link rel="stylesheet" href="../input/data/math.css" type="text/css" />
862   # +<link rel="stylesheet" href="../../html4css1.css" type="text/css" />
863   # +<link rel="stylesheet" href="../../math.css" type="text/css" />
865   deactivate ; cd .. ; rm -rf du2
867 Test in venv ::
869   python3 -m venv du3 ; cd du3
870   export PYTHONPATH= ; . bin/activate
872   python3 -m pip install --index-url https://test.pypi.org/simple/ --no-deps docutils
873   # Successfully installed docutils-0.15.2
874   python -m pip uninstall docutils
875   python -m pip install --index-url https://test.pypi.org/simple/ --no-deps --pre docutils
876   # Successfully installed docutils-0.16b0.dev0
877   cp -r ~/projects/docutils-code/docutils/test .
878   python test/alltests.py
880 Seven CSS-path failures ... ignored for now::
882   deactivate ; cd .. ; rm -rf du3
884 Now upload to pypi::
886   python3 -m twine upload  dist/docutils-0.16rc1*
888 and test::
890   python3 -m venv du3 ; cd du3
891   export PYTHONPATH= ; . bin/activate
893   pip install --no-deps --pre docutils
894   # 0.16rc1
895   cp -r ~/projects/docutils-code/docutils/test .
896   python test/alltests.py
897   # css paths fail
899   python2 -m virtualenv du2 ; cd du2
900   export PYTHONPATH= ; . bin/activate
902   pip install --no-deps --pre docutils
903   # 0.16rc1
904   cp -r ~/projects/docutils-code/docutils/test .
905   python test/alltests.py
906   # css paths fail
908 Notify to docutils-developer and user.
910 Release 0.15 (2019-07-24)
911 =========================
913 branches/rel-0.15
915 CAUTION (2019-07-22)
916 ====================
918   While releasing 0.15 ::
920     python3 setup.py sdist bdist_wheel
921     python2 setup.py bdist_wheel
923   This will result in the py2 wheel being identical to the py3 one.
925   The name ``docutils-0.15-py2-none-any.whl`` cannot be used twice on pypi,
926   build the py2-wheel and rename it ``docutils-0.15.post1-py2-none-any.whl``.
927   (No code was changed therefore only filename change.)
929   Name it ``docutils-0.15-post1-py2-none-any.whl`` then the version in the filename
930   corresponds to the directory names in the wheel file.
932   Maybe change the the version number in setup.py ?
934 Release 0.15.2 (2019-07-30)
935 ===========================
937 Bump the version number to ease tool live.
939 Bump version ::
941   set_version 0.15.2 
942   python2 test/alltests.py
943   python3 setup.py test3/alltests.py
944   # visual inspection
945   svn di | grep '^[+-]' | less -p '0.15.[12]'
946   svn ci
948 Build py2 release upload to test.pypi ::
950   mkdir py2 ; cd py2
951   svn export svn+ssh://grubert@svn.code.sf.net/p/docutils/code/branches/rel-0.15/docutils
952   cd docutils
953   python2 setup.py sdist bdist_wheel
954   python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/docutils-0.15.2-py2-none-any.whl
956 Test in virtualenv ::
958   virtualenv du2 ; cd du2
959   export PYTHONPATH= ; . bin/activate
961   python -m pip install --index-url https://test.pypi.org/simple/ --no-deps docutils
962   cp -r ~/projects/docutils-rel-0.15/docutils/py2/docutils/test .
963   python2 test/alltests.py
964   # IGNORE stylesheet path differences  
965   
966   deactivate ; cd .. ; rm -rf du2
968 release to pypi from the exported source directory   ::
970   python3 -m twine upload  dist/docutils-0.15.2*  
972 Test in new virtualenv ::
974   virtualenv du2 ; cd du2
975   export PYTHONPATH= ; . bin/activate
977   pip install docutils
978   # Successfully installed docutils-0.15.2
980   cp -r ~/projects/docutils-rel-0.15/docutils/py2/docutils/test .
981   python2 test/alltests.py
982   # IGNORE stylesheet path differences  
984   deactivate ; cd .. ; rm -rf du2
986 Build py3 release upload to test.pypi.
987 In the export/docutils ::
989   # py3 and source 
990   python3 setup.py bdist_wheel
991   python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/docutils-0.15.2-py3-none-any.whl
993 Test in virtualenv ::
995   python3 -m venv du3 ; cd du3
996   export PYTHONPATH= ; . bin/activate
998   python3 -m pip install --index-url https://test.pypi.org/simple/ --no-deps docutils
1000 BUG install 0.15 source. Check test.pypi web interface ... py3-wheel is there.
1001 Retry::
1003   # Successfully installed docutils-0.15.2
1004   cp -r ~/projects/docutils-rel-0.15/docutils/py2/docutils/test3 .
1005   python test3/alltests.py
1006   # IGNORE upper directory Failure
1007   
1008   deactivate ; cd .. ; rm -rf du3 
1010 release to pypi from the exported source directory   ::
1012   python3 -m twine upload  dist/docutils-0.15.2-py3*  
1014 Wait for wheel to appear on pypi.org.
1016 Test in virtualenv ::
1018   python3 -m venv du3 ; cd du3
1019   export PYTHONPATH= ; . bin/activate
1021   pip install docutils
1022   # Successfully installed docutils-0.15.2
1023   
1024   cp -r ~/projects/docutils-rel-0.15/docutils/py2/docutils/test3 .
1025   python test3/alltests.py
1026   # IGNORE upper directory Failure
1028   deactivate ; cd .. ; rm -rf du3
1030 FINE 0.15.2
1032 Release 0.15.1 (2019-07-24)
1033 ===========================
1035 Bug fix release for python2 only.
1037 * set version 0.15.1
1038 * ``python2 setup.py sdist bdist_wheel``
1039 * ``python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/docutils-0.15.1-py2-none-any.whl ``
1040 * in a new virtualenv::
1042     python -m pip install --index-url https://test.pypi.org/simple/ --no-deps docutils
1044   and then test/alltests.py 
1046 * ``python3 -m twine upload  dist/docutils-0.15.1*``
1048   upload py2-wheel and source.
1050 * in a new virtualenv::
1052     python -m pip install docutils
1054   and then test/alltests.py 
1056 * (2019-07-25) replace source by -post1
1058   Name it ``docutils-0.15.1-post1.tar.gz`` to make sure
1060   * It is unchanged library code: *post1*
1061   * the version is still 0.15.1: therefore separate with ``-``
1063   * run the tests somewhere, fix and commit.
1064     Then::
1066       svn export svn+ssh://@svn.code.sf.net/p/docutils/code/branches/rel-0.15/docutils d
1067       cd d
1068       python2 setup.py sdist
1069     
1070   * check ``tar tzf dist/docutils-0.15.1.tar.gz`` for remaining files.
1071     Then::
1073       mv dist/docutils-0.15.1.tar.gz dist/docutils-0.15.1-post1.tar.gz
1074       python -m twine upload dist/docutils-0.15.1-post1.tar.gz
1076   * Build a venv (python3), install docutils, copy test3 from development
1077     directory and run the test.
1079     As there is no 0.15.1 wheel for python3 this will be the source package. 
1081 Release 0.15
1082 ============
1084 svn revision: 8258 - start of release
1086 * test on linux 2.7 3.7 : passed
1087 * test on macosx python2.6: 
1089   - 7 failures due to different error messages. see below
1090   - 4 errors: python2.6 sys.version_info is a tuple no dictionary 
1091     FIXED: revision 8260
1093 * test on macosx 2.7 3.4 3.6 3.7 : passed
1094 * change version to : 0.15rc1.dev
1096   - run tests: python 2.7 and 3.7
1098 * extract changes from HISTORY.txt to RELEASE-NOTES.txt
1099 * rename headings in HISTORY.txt and RELEASE-NOTES.txt
1100 * run release.sh stage 2: do a clean checkout and packing
1101 * run local test with python 2.6 2.7 3.4 3.6 3.7
1102 * upload to sourceforge.net. Keep 0.15 as latest, stable.
1103 * Fix: README.txt version number BY HAND
1104 * pypi :
1106   - docutils is registered
1107   - check setup.py : add classifier 'Programming Language :: Python :: 3.7'
1108   - Login to pypi (see https://packaging.python.org/tutorials/packaging-projects/)
1110     - python3 -m pip install --user --upgrade setuptools wheel
1112       (warns about not being in PATH. symlink into my/bin)
1113     - python3 setup.py sdist bdist_wheel ::
1115         /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/distutils/dist.py:274: UserWarning: Unknown distribution option: 'python_requires'
1116           warnings.warn(msg)
1118         error: invalid command 'bdist_wheel'
1120     - add import setuptools to setup.py
1121     - python3 setup.py sdist bdist_wheel
1122     - python2 setup.py bdist_wheel
1123     - python3 -m pip install --user --upgrade twine
1124     - twine upload dist/*
1126   check on pypi: 0.15 is there.
1128 * update website docs
1130   - in directory web edit index.txt
1131   - in sandbox/infrastructure run ./docutils-update.local
1133 * set version of repository to 0.16b.dev
1135 Release 0.14
1136 ============
1138 svn revision: 8145 - start of release - 0.15.0 beta
1140 Prerelease 0.14a0
1141 =================
1143 svn revision: 8082 Prerelease 0.14a0
1144 svn revision: 8078 Prerelease 0.14.0a
1146 * merge changes from HISTORY.txt to RELEASE-NOTES.txt
1147 * extract release number description setting from release.sh
1148 * rename headings in HISTORY.txt and RELEASE-NOTES.txt
1149 * run release.sh stage 2: do a clean checkout and packing
1150 * run local test with python2.7
1151 * upload to sourceforge.net. Keep 0.13 as latest, stable.
1152 * reister on to pypi and upload tgz
1153 * pypi: unset hide old releases
1156 Release 0.13
1157 ============
1159 svn revision: 7980
1161 Tests
1162 -----
1164 Tests are run from svn checkout, only few from install.
1166 * windows7 python 2.7.5: OK
1168 * windows7 python 3.4.1: as in previous release
1170   * test.css path error (filed #256) 
1171   * test_parsers\test_rst\test_directives\test_include.py::
1173 * macosx 10.10 python 2.7.10: OK
1174 * macosx 10.10 python 3.3.2: OK
1175 * macosx 10.10 python 3.4.1: OK
1177 * ubuntu 12.04 python 2.7.3: OK
1178 * ubuntu 12.04 python 3.2.3: OK
1180 * testing tarball 0.13.1 (build sdist) ::
1182     +++ functional/output/standalone_rst_html5.html
1183     @@ -7,9 +7,9 @@
1184      <meta content="A test document, containing at least one example of each reStructuredText construct." lang="en" name="description" xml:lang="en" />
1185     -<link rel="stylesheet" href="../input/data/minimal.css" type="text/css" />
1186     -<link rel="stylesheet" href="../input/data/plain.css" type="text/css" />
1187     -<link rel="stylesheet" href="../input/data/math.css" type="text/css" />
1188     +<link rel="stylesheet" href="../../minimal.css" type="text/css" />
1189     +<link rel="stylesheet" href="../../plain.css" type="text/css" />
1190     +<link rel="stylesheet" href="../../math.css" type="text/css" />
1191      </head>
1193   this is because ``test/functional/input/data/minimal.css`` is a symlink to
1194   ``../../../../docutils/writers/html5_polyglot/minimal.css`` and release_test.sh 
1195   removes directory docutils to ensure the test uses the installed docutils
1196   not the unzipped.
1198   FIX: remove docutils/__init__.py
1200 Release 0.12
1201 ============
1203 svn revision: 7749
1205 Tests
1206 -----
1208 Tests are run from svn checkout, only few from install.
1210 Python3 tests are run ::
1212   rm -rf build test3
1213   python3 setup.py build
1214   PYTHONPATH=build/lib python3 test3/alltests.py
1216 * ubuntu 8.04: python 2.4.5, 2.5.2, 2.6.7, 2.7.2 OK
1218   python 2.6.4rc1 6 failure due to change in error message: no such file ...  
1220   python 3.2.3 OK
1222 * macosx 10.6.8: python 2.5.4, 2.7.3
1224   python 2.6.1 6 failure due to change in error message: no such file ...  
1226   python 3.2, 3.4.1 OK
1228 * ubuntu 14.04: pyton 2.7.6,  python 3.4.0 OK
1230 * windows7: python 2.7.5 
1232   Error (filed #256): test_writers/test_html4css1_template.py::
1234       stylesheet = """\
1235     - <link rel="stylesheet" href="/test.css" type="text/css" />"""
1236     + <link rel="stylesheet" href="C:/test.css" type="text/css" />"""
1237     ?                              ++
1239   python 3.4.1
1241   * test.css path error (filed #256) 
1242   * test_parsers\test_rst\test_directives\test_include.py::
1244       b'Encoding:\n\n.. include:: test_parsers/test_rst/test_directives/utf-16.csv\n   :encoding: utf-16\n'
1245         File "test3\alltests.py", line 40, in write
1246           string = string.encode('raw_unicode_escape').decode('ascii')
1247       UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 994: ordinal not in range(128)
1249    fiddling with alltests.py (uncommitted) ::
1251       <system_message level="4" line="1" source="test data" type="SEVERE">
1252         <paragraph>
1253             Problem with "raw" directive:
1254             UnicodeDecodeError: \'utf-16-be\' codec can\'t decode bytes in position 90-91: illegal encoding
1255         <literal_block xml:space="preserve">
1256             .. raw:: html
1257                :file: test_parsers/test_rst/test_directives/utf-16.csv
1258                :encoding: utf-16''' != '''\
1262 Release 0.11
1263 ============
1265 Summary
1266 -------
1268 ``sandbox/infrastructure/release.sh`` tries running ``test/alltests.py`` after 
1269 installing the new release, this fails because
1271 * tests depends on e.g. ``../docs/user/rst/images/title.png`` or ``../HISTORY.txt``, 
1272   but thess are neither in the test directory tree nor in the installed software. 
1274 * there is a lot of code trying to handle varying installation targets ``/usr/lib``
1275   ``/usr/local/lib` and not yet ``/usr/lib/pymodules``.
1277 Change testing to:
1279 1. build and install
1280 2. extract docutils-<release>.tar.gz into tmp
1281 3. remove docutils/docutils directory, just to make shure it is not used.
1282 4. run test/alltest.py in this directory, so all files are where they are
1283    while development.
1285 Following failure becuase docutils-library directory was removed, therefore 
1286 docutils/writers/html4css1/html4css1.css is not found::
1288   ======================================================================
1289   FAIL: test_custom_stylesheet_dir (test_writers.test_html4css1_misc.SettingsTestCase)
1290   ----------------------------------------------------------------------
1291   Traceback (most recent call last):
1292     File "/... 0.11/test/test_writers/test_html4css1_misc.py", line 81, in test_custom_stylesheet_dir
1293       self.assertIn('docutils/writers/html4css1/html4css1.css', styles)
1294     File "/... 0.11/test/DocutilsTestSupport.py", line 138, in assertIn
1295       msg or '%s not in %s' % _format_str(a, b))
1296   AssertionError: 'docutils/writers/html4css1/html4css1.css' not in u'''\
1297   <link rel="stylesheet" href="html4css1.css" type="text/css" />
1298   <link rel="stylesheet" href="data/ham.css" type="text/css" />
1299   '''
1302 Tests
1303 -----
1305 * ubuntu 8.04 2.4.5, 2.5.2, 2.6.7, 2.7.2 OK
1307   python 2.6.4rc1 6 failure due to change in error message: no such file ...  
1309   Python 3.2.3 : OK (roman.py left over from last release)
1311 * macosx 10.6.8: python 2.5.4, 2.7.3
1313   python 2.6.1 6 failure due to change in error message: no such file ...  
1315   python 3.2: roman.py for py3 required.
1317 Release.sh
1318 ----------
1320 release.sh does not work on MacOSX.
1322 installation on ubuntu 10.04 breaks test script::
1324   Working directory: /usr/local/lib/python2.6/site-packages/docutils-test
1325   Docutils package: /usr/local/lib/python2.6/dist-packages/docutils
1327   ======================================================================
1328   FAIL: test_find_file_in_dirs (test_utils.HelperFunctionsTests)
1329   ----------------------------------------------------------------------
1330   Traceback (most recent call last):
1331     File "/usr/local/lib/python2.6/site-packages/docutils-test/test_utils.py", line 295, in test_find_file_in_dirs
1332       '../HISTORY.txt')
1333   AssertionError: 'HISTORY.txt' != '../HISTORY.txt'
1335 Stopping for now.
1339 Release 0.10
1340 ============
1342 * same failures for some python2.6 versions ::
1344               Problems with "raw" directive path:
1345        -      InputError: [Errno 2] No such file or directory: 'non-existent.file'.
1346        +      InputError: (2, 'No such file or directory').
1348 * testing release tarball ::
1350     ======================================================================
1351     FAIL: test_dependencies (__main__.RecordDependenciesTests)
1352     ----------------------------------------------------------------------
1353     Traceback (most recent call last):
1354       File "docutils-test/test_dependencies.py", line 61, in test_dependencies
1355         self.assertEqual(record, expected)
1356     AssertionError: [u'data/include.txt', u'data/raw.txt'] != [u'../docs/user/rst/images/title.png',
1357     u'data/include.txt', u'data/raw.txt']
1358     
1359     ...
1361   because ../docs is not there if run from /usr/../pythonx.x/site-packages/docutils-test.
1363 Release 0.9.1
1364 =============
1366 same failures as for 0.9 plus
1368 * python 2.3: twice, ignored ::
1370   -             [Errno 2] No such file or directory: 'bogus.csv'.
1371   +             [Errno 2] No such file or directory: u'bogus.csv'.
1373   python 2.3 ::
1375     ======================================================================
1376     ERROR: test_unicode (test_error_reporting.ErrorStringTests)
1377     ----------------------------------------------------------------------
1378     Traceback (most recent call last):
1379       File "/usr/local/lib/python2.3/site-packages/docutils-test/test_error_reporting.py", line 153, in test_unicode
1380         self.assertEqual(u'ImportError: %s' % SafeString(self.bs),
1381     UnicodeDecodeError: 'ascii' codec can't decode byte 0xfc in position 0: ordinal not in range(128)
1383 Note: sf takes some considerable time till the downlods are visible for normal users.
1384   More than 1 hour , the folder files/docutils/0.9.1 exists and the webinterface
1385   correctly summarizes "Totals: 2 Items     1.6 MB" but nothing is shown.
1387 Release 0.9
1388 ===========
1390 * python 2.3 unittest.TestCase has no assertTrue
1391 * python 2.3 keyword dictionaries update method does not support kwargs
1393 Ignored test errors
1395 * python 2.3: unicode problems. 2.3 support is likely to be ended soon.
1396   Systems with only 2.3 might not even know of unicode.
1398 * PIL ``AttributeError: 'module' object has no attribute 'Image'``
1400   A problem in PIL ? 
1401   Tested and failiing on
1403   - ubuntu8.04, python 2.4, 2.5  
1404   - ubuntu10.04, python 2.6  
1405   - ubuntu11.10, python 2.7  
1407 * python 2.6.4rc1 has a different error message format::
1409               Problems with "raw" directive path:
1410        -      InputError: [Errno 2] No such file or directory: 'non-existent.file'.
1411        +      InputError: (2, 'No such file or directory').
1413   but not in python 2.6.7