========= Changelog ========= .. Development version =================== Version 4.X.X, 2023-XX-XX ------------------------- Current versions ================ Version 4.4, 2023-01-23 ----------------------- - Add ``codespell`` to ``pre-commit`` config, #674 - Allow ``venv_install`` in config file, #680 - Avoid problematic ``tox`` 4.0 and 4.1, #689 - Update ``macos`` instances on Cirrus CI, #690 - Replace deprecated ``set-output``, #688 - Update CI templates, #693 - Add comments about building ``sdist`` in ``tox.ini`` and FAQ, #694 - Update Python version in Read The Docs configuration, #695 Older versions ============== Version 4.3.1, 2022-09-20 ------------------------- - Modify ``tox.ini`` template to allow passing the ``TWINE_REPOSITORY_URL`` environment variable, :pr:`666`. Version 4.3, 2022-07-20 ----------------------- - Removed ``wheel`` from the set of build dependencies in ``pyproject.toml`` (it is redundant since ``setuptools`` already includes it), :pr:`652`. - Updated ``freebsd`` configuration in ``.cirrus.yml`` (with workaround for ``pipx`` in 2022Q3 repo), :pr:`657`. Version 4.2.3, 2022-06-17 ------------------------- - Automatically create directory when saving config file, :issue:`648` Version 4.2.2, 2022-05-26 ------------------------- - Update ``.github/workflows/ci.yml`` template, :pr:`637` and :pr:`640` - Update note in ``skeleton.py`` template clarifying file can be renamed, :pr:`641` Version 4.2.1, 2022-03-16 ------------------------- - Ensure ``.gitlab-ci.yml`` template works for GitLab Enterprise 14.7.4, :pr:`630` Version 4.2, 2022-03-14 ----------------------- - Added ``--github-actions`` extension, :pr:`619` - Updated and improved ``--gitlab`` extension, :pr:`622` - Updated and improved ``--cirrus`` extension, :pr:`625` - Fixed ``tox -e publish`` example in docs, :pr:`627` - Added ``colorama`` as a runtime dependency for Windows, :pr:`624` Version 4.1.5, 2022-02-22 ------------------------- - Added ``.python-version`` created by ``pyenv`` to ``.gitignore`` - Added more ``--very-verbose`` logging to make clearer what's going on, :issue:`562` - Replace internal dependency on :pypi:`appdirs` with :pypi:`platformdirs`, :pr:`584` - Fix :pypi:`coverage` config for namespaced packages, :pr:`610` Version 4.1.4, 2022-01-13 ------------------------- - Ensure build configuration produces ``sdist`` as it is needed by conda, :issue:`570` Version 4.1.3, 2022-01-11 ------------------------- - Fix pre-commit error: The unauthenticated git protocol on port 9418 is no longer supported, :issue:`565` .. note:: PyScaffold 4.1 is the last release to support Python 3.6 Version 4.1.2, 2022-01-04 ------------------------- - Added verification to prevent users from creating projects nested inside existing repositories, unless ``--force`` is explicitly given, :issue:`544`, :pr:`545`. - Fixed problem with Windows Shell when running git, :pr:`560`. Version 4.1.1, 2021-10-18 ------------------------- - Ensure required extensions are installed on ``--update``, :pr:`512` - Prevent extension from crashing when persisting ``None`` in ``setup.cfg``, :pr:`510` - Prevent multi-line descriptions to crash ``putup``, :pr:`509` - Warn users about empty namespaces, :pr:`508` - Prevent parsing errors during dependency deduplication, :pr:`518` - Add ``license_files`` to ``setup.cfg`` template, :issue:`524` Version 4.1, 2021-09-22 ----------------------- - Added *linkcheck* task to ``tox.ini``, :pr:`456` - Updated configuration for Sphinx and ReadTheDocs, :pr:`455` - Note that templates and the generated boilerplate code is 0BSD-licensed, :pr:`461` - Added 0BSD license template - Added ``CONTRIBUTING.rst`` template, :issue:`376` - Added PyScaffold badge to ``README`` template, :issue:`473` - Updated Cirrus CI config and templates, including better ``coveralls`` integration, :issue:`449` - Adopted global ``isolated_build`` for ``tox`` configuration, :issue:`483`, :pr:`491` - Loop counter explicitly marked as unused in ``skeleton.py`` (``flake8-bugbear B007``), :pr:`495` - Ensure update include added extensions in ``setup.cfg``, :pr:`496` Version 4.0.2, 2021-05-26 ------------------------- - Restructured docs - Fix WSL2 installation problem, :issue:`440` - Fix for interactive mode under Windows, :issue:`430` Version 4.0.1, 2021-03-17 ------------------------- - Fix ``tox -e build`` issue when running on Conda, :pr:`417` - Ensure ``snake_case`` for keys in ``setup.cfg``, :issue:`418` - Update dependencies on ``configupdater`` and ``pyscaffoldext-django`` - Remove broken checks for old ``setuptools``, :issue:`428` Version 4.0, 2021-03-04 ----------------------- - Cookiecutter, Django and Travis extensions extracted to their own repositories, :issue:`175` and :issue:`355` - Support for Python 3.4 and 3.5 dropped, :issue:`226` - Dropped deprecated ``requirements.txt`` file, :issue:`182` - Added support for global configuration (avoid retyping common ``putup``'s options), :issue:`236` - PyScaffold is no longer a build-time dependency, it just generates the project structure - Removed ``contrib`` subpackage, vendorized packages are now runtime dependencies, :pr:`290` - ``setuptools_scm`` is included by default in ``setup.cfg``, ``setup.py`` and ``pyproject.toml`` - API changed to use ``pyscaffold.operations`` instead of integer flags, :pr:`271` - Allow ``string.Template`` and ``callable`` as file contents in project structure, :pr:`295` - Extract file system functions from ``utils.py`` into ``file_system.py`` - Extract identification/naming functions from ``utils.py`` into ``identification.py`` - Extract action related functions from ``api/__init__.py`` to ``actions.py`` - ``helpers.{modify,ensure,reject}`` moved to ``structure.py`` - ``helpers.{register,unregister}`` moved to ``actions.py`` - New extension for automatically creating virtual environments (``--venv``) - Added instructions to use ``pip-tools`` to docs - ``pre-commit`` extension now attempts to install hooks automatically - A nice message is now displayed when PyScaffold finishes running (``actions.report_done``) - Removed mutually exclusive argparse groups for extensions, :pr:`315` - Progressive type annotations adopted in the code base together with mypy linting - Simplified isort config - ``pyproject.toml`` and isolated builds adopted by default, :issue:`256` - Added comment to ``setup.cfg`` template instructing about extra links, :issue:`268` - Generate ``tox.ini`` by default, :issue:`296` - Replace ``pkg_resources`` with ``importlib.{metadata,resources}`` and ``packaging``, :issue:`309` - Adopt PEP 420 for namespaces, :issue:`218` - Adopt SPDX identifiers for the license field in ``setup.cfg``, :issue:`319` - Removed deprecated ``log.configure_logger`` - Add links to issues and pull requests to changelog, :pr:`363` - Add an experimental ``--interactive`` *mode* (inspired by ``git rebase -i``), :issue:`191` (additional discussion: :pr:`333`, :pr:`325`, :pr:`362`) - Reorganise the **FAQ** (including version questions previously in **Features**) - Updated ``setuptools`` and ``setuptools_scm`` dependencies to minimal versions 46.1 and 5, respectively - Adopted ``no-guess-dev`` version scheme from ``setuptools_scm`` (semantically all stays the same, but non-tag commits are now versioned ``LAST_TAG.post1.devN`` instead of ``LAST_TAG.post0.devN``) - Fix problem of not showing detailed log with ``--verbose`` if error happens when loading extensions :issue:`378` Version 3.3, 2020-12-24 ----------------------- - Code base changed to Black's standards - New docs about version numbers and git integration - Updated pre-commit hooks - Updated ``docs/Makefile`` to use Sphinx "make mode" - *deprecated* setuptools extensions/commands ``python setup.py test/docs/doctests``, :issue:`245` - New tox test environments for generating docs and running doctests - New built-in extension for Cirrus CI, :issue:`251` - *experimental* ``get_template`` is now part of the public API and can be used by extensions, :issue:`252` - Updated ``setuptools_scm`` to version 4.1.2 in contrib - Updated ``configupdater`` to version 1.1.2 in contrib - precommit automatically fixes line endings by default - *deprecated* ``log.configure_logger``, use ``log.logger.reconfigure`` instead .. note:: PyScaffold 3.3 is the last release to support Python 3.5 Version 3.2.3, 2019-10-12 ------------------------- - Updated ``configupdater`` to version 1.0.1 - Changed Travis to Cirrus CI - Fix some problems with Windows Version 3.2.2, 2019-09-12 ------------------------- - Write files as UTF-8, fixes ``codec can't encode characters`` error Version 3.2.1, 2019-07-11 ------------------------- - Updated pre-commit configuration and set max-line-length to 88 (Black's default) - Change build folder of Sphinx's Makefile - Fix creation of empty files which were just ignored before Version 3.2, 2019-06-30 ----------------------- - *deprecated* use of lists with ``helpers.{modify,ensure,reject}``, :issue:`211` - Add support for ``os.PathLike`` objects in ``helpers.{modify,ensure,reject}``, :issue:`211` - Remove ``release`` alias in ``setup.cfg``, use ``twine`` instead - Set ``project-urls`` and ``long-description-content-type`` in ``setup.cfg``, :issue:`216` - Added additional command line argument ``very-verbose`` - Assure clean workspace when updating existing project, :issue:`190` - Show stacktrace on errors if ``--very-verbose`` is used - Updated ``configupdater`` to version 1.0 - Use ``pkg_resources.resource_string`` instead of ``pkgutil.get_data`` for templates - Update ``setuptools_scm`` to version 3.3.3 - Updated pytest-runner to version 5.1 - Some fixes regarding the order of executing extensions - Consider ``GIT_AUTHOR_NAME`` and ``GIT_AUTHOR_EMAIL`` environment variables - Updated ``tox.ini`` - Switch to using tox in ``.travis.yml`` template - Reworked all official extensions ``--pyproject``, ``--custom-extension`` and ``--markdown`` Version 3.1, 2018-09-05 ----------------------- - Officially dropped Python 2 support, :issue:`177` - Moved ``entry_points`` and ``setup_requires`` to ``setup.cfg``, :issue:`176` - Updated ``travis.yml`` template, :issue:`181` - Set ``install_requires`` to setuptools>=31 - Better isolation of unit tests, :issue:`119` - Updated tox template, issues :issue:`160` & :issue:`161` - Use ``pkg_resources.parse_version`` instead of old ``LooseVersion`` for parsing - Use ``ConfigUpdater`` instead of ``ConfigParser`` - Lots of internal cleanups and improvements - Updated pytest-runner to version 4.2 - Updated setuptools_scm to version 3.1 - Fix Django extension problem with src-layout, :issue:`196` - *experimental* extension for MarkDown usage in README, :issue:`163` - *experimental* support for Pipenv, :issue:`140` - *deprecated* built-in Cookiecutter and Django extensions (to be moved to separated packages), :issue:`175` Version 2.5.11, 2018-04-14 -------------------------- - Updated pbr to version 4.0.2 - Fixes Sphinx version 1.6 regression, :issue:`152` Version 3.0.3, 2018-04-14 ------------------------- - Set install_requires to setuptools>=30.3.0 Version 3.0.2, 2018-03-21 ------------------------- - Updated setuptools_scm to version 1.17.0 - Fix wrong docstring in skeleton.py about entry_points, :issue:`147` - Fix error with setuptools version 39.0 and above, :issue:`148` - Fixes in documentation, thanks Vicky Version 2.5.10, 2018-03-21 -------------------------- - Updated setuptools_scm to version 1.17.0 Version 2.5.9, 2018-03-20 ------------------------- - Updated setuptools_scm to version 1.16.1 - Fix error with setuptools version 39.0 and above, :issue:`148` Version 3.0.1, 2018-02-13 ------------------------- - Fix confusing error message when ``python setup.py docs`` and Sphinx is not installed, :issue:`142` - Fix 'unknown' version in case project name differs from the package name, :issue:`141` - Fix missing ``file:`` attribute in long-description of setup.cfg - Fix ``sphinx-apidoc`` invocation problem with Sphinx 1.7 Version 3.0, 2018-01-07 ----------------------- - Improved Python API thanks to an extension system - Dropped pbr in favor of setuptools >= 30.3.0 - Updated setuptools_scm to v1.15.6 - Changed ``my_project/my_package`` to recommended ``my_project/src/my_package`` structure - Renamed ``CHANGES.rst`` to more standard ``CHANGELOG.rst`` - Added platforms parameter in ``setup.cfg`` - Call Sphinx api-doc from ``conf.py``, :issue:`98` - Included six 1.11.0 as contrib sub-package - Added ``CONTRIBUTING.rst`` - Removed ``test-requirements.txt`` from template - Added support for GitLab - License change from New BSD to MIT - FIX: Support of git submodules, :issue:`98` - Support of Cython extensions, :issue:`48` - Removed redundant ``--with-`` from most command line flags - Prefix ``n`` was removed from the local_version string of dirty versions - Added a ``--pretend`` flag for easier development of extensions - Added a ``--verbose`` flag for more output what PyScaffold is doing - Use pytest-runner 4.4 as contrib package - Added a ``--no-skeleton`` flag to omit the creation of ``skeleton.py`` - Save parameters used to create project scaffold in ``setup.cfg`` for later updating A special thanks goes to Anderson Bravalheri for his awesome support and `inovex `_ for sponsoring this release. Version 2.5.8, 2017-09-10 ------------------------- - Use ``sphinx.ext.imgmath`` instead of ``sphinx.ext.mathjax`` - Added ``--with-gitlab-ci`` flag for GitLab CI support - Fix Travis install template dirties git repo, :issue:`107` - Updated setuptools_scm to version 1.15.6 - Updated pbr to version 3.1.1 Version 2.5.7, 2016-10-11 ------------------------- - Added encoding to __init__.py - Few doc corrections in setup.cfg - [tool:pytest] instead of [pytest] in setup.cfg - Updated skeleton - Switch to Google Sphinx style - Updated setuptools_scm to version 1.13.1 - Updated pbr to version 1.10.0 Version 2.5.6, 2016-05-01 ------------------------- - Prefix error message with ERROR: - Suffix of untagged commits changed from {version}-{hash} to {version}-n{hash} - Check if package identifier is valid - Added log level command line flags to the skeleton - Updated pbr to version 1.9.1 - Updated setuptools_scm to version 1.11.0 Version 2.5.5, 2016-02-26 ------------------------- - Updated pbr to master at 2016-01-20 - Fix sdist installation bug when no git is installed, :issue:`90` Version 2.5.4, 2016-02-10 ------------------------- - Fix problem with ``fibonacci`` terminal example - Update setuptools_scm to v1.10.1 Version 2.5.3, 2016-01-16 ------------------------- - Fix classifier metadata (``classifiers`` to ``classifier`` in ``setup.cfg``) Version 2.5.2, 2016-01-02 ------------------------- - Fix ``is_git_installed`` Version 2.5.1, 2016-01-01 ------------------------- - Fix: Do some sanity checks first before gathering default options - Updated setuptools_scm to version 1.10.0 Version 2.5, 2015-12-09 ----------------------- - Usage of ``test-requirements.txt`` instead of ``tests_require`` in ``setup.py``, :issue:`71` - Removed ``--with-numpydoc`` flag since this is now included by default with ``sphinx.ext.napoleon`` in Sphinx 1.3 and above - Added small template for unittest - Fix for the example skeleton file when using namespace packages - Fix typo in devpi:upload section, :issue:`82` - Include ``pbr`` and ``setuptools_scm`` in PyScaffold to avoid dependency problems, :issue:`71` and :issue:`72` - Cool logo was designed by Eva Schmücker, :issue:`66` Version 2.4.4, 2015-10-29 ------------------------- - Fix problem with bad upload of version 2.4.3 to PyPI, :issue:`80` Version 2.4.3, 2015-10-27 ------------------------- - Fix problem with version numbering if setup.py is not in the root directory, :issue:`76` Version 2.4.2, 2015-09-16 ------------------------- - Fix version conflicts due to too tight pinning, :issue:`69` Version 2.4.1, 2015-09-09 ------------------------- - Fix installation with additional requirements ``pyscaffold[ALL]`` - Updated pbr version to 1.7 Version 2.4, 2015-09-02 ----------------------- - Allow different py.test options when invoking with ``py.test`` or ``python setup.py test`` - Check if Sphinx is needed and add it to *setup_requires* - Updated pre-commit plugins - Replaced pytest-runner by an improved version - Let pbr do ``sphinx-apidoc``, removed from ``conf.py``, :issue:`65` .. note:: Due to the switch to a modified pytest-runner version it is necessary to update ``setup.cfg``. Please check the :ref:`example `. Version 2.3, 2015-08-26 ----------------------- - Format of setup.cfg changed due to usage of pbr, :issue:`59` - Much cleaner setup.py due to usage of pbr, :issue:`59` - PyScaffold can be easily called from another script, :issue:`58` - Internally dictionaries instead of namespace objects are used for options, :issue:`57` - Added a section for devpi in setup.cfg, :issue:`62` .. note:: Due to the switch to `pbr `_, it is necessary to update ``setup.cfg`` according to the new syntax. Version 2.2.1, 2015-06-18 ------------------------- - FIX: Removed putup console script in setup.cfg template Version 2.2, 2015-06-01 ----------------------- - Allow recursive inclusion of data files in setup.cfg, :issue:`49` - Replaced hand-written PyTest runner by `pytest-runner `_, :issue:`47` - Improved default README.rst, :issue:`51` - Use tests/conftest.py instead of tests/__init__.py, :issue:`52` - Use setuptools_scm for versioning, :issue:`43` - Require setuptools>=9.0, :issue:`56` - Do not create skeleton.py during an update, :issue:`55` .. note:: Due to the switch to *setuptools_scm* the following changes apply: - use ``python setup.py --version`` instead of ``python setup.py version`` - ``git archive`` can no longer be used for packaging (and was never meant for it anyway) - initial tag ``v0.0`` is no longer necessary and thus not created in new projects - tags do no longer need to start with *v* Version 2.1, 2015-04-16 ----------------------- - Use alabaster as default Sphinx theme - Parameter data_files is now a section in setup.cfg - Allow definition of extras_require in setup.cfg - Added a CHANGES.rst file for logging changes - Added support for cookiecutter - FIX: Handle an empty Git repository if necessary Version 2.0.4, 2015-03-17 ------------------------- - Typo and wrong Sphinx usage in the RTD documentation Version 2.0.3, 2015-03-17 ------------------------- - FIX: Removed misleading `include_package_data` option in setup.cfg - Allow selection of a proprietary license - Updated some documentations - Added -U as short parameter for --update Version 2.0.2, 2015-03-04 ------------------------- - FIX: Version retrieval with setup.py install - argparse example for version retrieval in skeleton.py - FIX: import my_package should be quiet (verbose=False) Version 2.0.1, 2015-02-27 ------------------------- - FIX: Installation bug under Windows 7 Version 2.0, 2015-02-25 ----------------------- - Split configuration and logic into setup.cfg and setup.py - Removed .pre from version string (newer PEP 440) - FIX: Sphinx now works if package name does not equal project name - Allow namespace packages with --with-namespace - Added a skeleton.py as a console_script template - Set `v0.0` as initial tag to support PEP440 version inference - Integration of the Versioneer functionality into setup.py - Usage of `data_files` configuration instead of `MANIFEST.in` - Allow configuration of `package_data` in `setup.cfg` - Link from Sphinx docs to AUTHORS.rst Version 1.4, 2014-12-16 ----------------------- - Added numpydoc flag --with-numpydoc - Fix: Add django to requirements if --with-django - Fix: Don't overwrite index.rst during update Version 1.3.2, 2014-12-02 ------------------------- - Fix: path of Travis install script Version 1.3.1, 2014-11-24 ------------------------- - Fix: --with-tox tuple bug, :pr:`28` Version 1.3, 2014-11-17 ----------------------- - Support for Tox (https://tox.wiki/en/stable/) - flake8: exclude some files - Usage of UTF8 as file encoding - Fix: create non-existent files during update - Fix: unit tests on MacOS - Fix: unit tests on Windows - Fix: Correct version when doing setup.py install Version 1.2, 2014-10-13 ----------------------- - Support pre-commit hooks (https://pre-commit.com/) Version 1.1, 2014-09-29 ----------------------- - Changed COPYING to LICENSE - Support for all licenses from https://choosealicense.com/ - Fix: Allow update of license again - Update to Versioneer 0.12 Version 1.0, 2014-09-05 ----------------------- - Fix when overwritten project has a git repository - Documentation updates - License section in Sphinx - Django project support with --with-django flag - Travis project support with --with-travis flag - Replaced sh with own implementation - Fix: new `git describe` version to PEP440 conversion - conf.py improvements - Added source code documentation - Fix: Some Python 2/3 compatibility issues - Support for Windows - Dropped Python 2.6 support - Some classifier updates Version 0.9, 2014-07-27 ----------------------- - Documentation updates due to RTD - Added a --force flag - Some cleanups in setup.py Version 0.8, 2014-07-25 ----------------------- - Update to Versioneer 0.10 - Moved sphinx-apidoc from setup.py to conf.py - Better support for `make html` Version 0.7, 2014-06-05 ----------------------- - Added Python 3.4 tests and support - Flag --update updates only some files now - Usage of setup_requires instead of six code Version 0.6.1, 2014-05-15 ------------------------- - Fix: Removed six dependency in setup.py Version 0.6, 2014-05-14 ----------------------- - Better usage of six - Return non-zero exit status when doctests fail - Updated README - Fixes in Sphinx Makefile Version 0.5, 2014-05-02 ----------------------- - Simplified some Travis tests - Nicer output in case of errors - Updated PyScaffold's own setup.py - Added --junit_xml and --coverage_xml/html option - Updated .gitignore file Version 0.4.1, 2014-04-27 ------------------------- - Problem fixed with pytest-cov installation Version 0.4, 2014-04-23 ----------------------- - PEP8 and PyFlakes fixes - Added --version flag - Small fixes and cleanups Version 0.3, 2014-04-18 ----------------------- - PEP8 fixes - More documentation - Added update feature - Fixes in setup.py Version 0.2, 2014-04-15 ----------------------- - Checks when creating the project - Fixes in COPYING - Usage of sh instead of GitPython - PEP8 fixes - Python 3 compatibility - Coverage with Coverall.io - Some more unittests Version 0.1.2, 2014-04-10 ------------------------- - Bugfix in Manifest.in - Python 2.6 problems fixed Version 0.1.1, 2014-04-10 ------------------------- - Unittesting with Travis - Switch to string.Template - Minor bugfixes Version 0.1, 2014-04-03 ----------------------- - First release