Todo ---- Version Update -------------- setup.py, __init__.py, README, CHANGES - Make sure _build_tables was run in pycparser/ - If PLY version changes, note it in README and ply/LICENSE python setup.py sdist bdist_wheel Copy the newly created tarball and untar it; check that the permissions of Python files in the pycparser/ directory are OK. Check to see that lextab.py and yacctab.py are there. Now create a new virtualenv and in it install the tarball with `pip install `. May need to install `wheel` first if seeing errors about `bdist_wheel`. See that pycparser is importable in the Python interpreter of this virtualenv; run pycparser tests from this virtualenv. After this it's OK to rerun `python3.6 -m twine upload dist/*` to push to PyPI (older Pythons use a deprecated API for PyPI uploading). - Tag in git. When pushing to GitHub, git push --tags Misc ---- yacc optimization: - If parsetab.py/pyc doesn't exist in the path, the table will be reconstructed anyway, regardless of the optimize parameter - If it does exist: - If optimize=True, the table will be loaded unconditionally - If optimize=False, the table will be loaded only if it's older than the grammar lex optimization: - If optimize=False, the lexical table is re-computed and is not saved to a lextab file - If optimize=True: - If lextab.py/pyc exists in the path, it will be loaded unconditionally - If lextab.py/pyc doesn't exist, it will be created and loaded