Changelog#
Current versions#
Version 4.4, 2023-01-23#
Add
codespell
topre-commit
config, PR #674Allow
venv_install
in config file, PR #680Avoid problematic
tox
4.0 and 4.1, PR #689Update
macos
instances on Cirrus CI, PR #690Replace deprecated
set-output
, PR #688Update CI templates, PR #693
Add comments about building
sdist
intox.ini
and FAQ, PR #694Update Python version in Read The Docs configuration, PR #695
Older versions#
Version 4.3.1, 2022-09-20#
Modify
tox.ini
template to allow passing theTWINE_REPOSITORY_URL
environment variable, PR #666.
Version 4.3, 2022-07-20#
Version 4.2.3, 2022-06-17#
Automatically create directory when saving config file, issue #648
Version 4.2.2, 2022-05-26#
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#
Version 4.1.5, 2022-02-22#
Added
.python-version
created bypyenv
to.gitignore
Added more
--very-verbose
logging to make clearer what’s going on, issue #562Replace internal dependency on appdirs with platformdirs, PR #584
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 #512Prevent extension from crashing when persisting
None
insetup.cfg
, PR #510Prevent multi-line descriptions to crash
putup
, PR #509Warn users about empty namespaces, PR #508
Prevent parsing errors during dependency deduplication, PR #518
Add
license_files
tosetup.cfg
template, issue #524
Version 4.1, 2021-09-22#
Added linkcheck task to
tox.ini
, PR #456Updated 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 #376Added PyScaffold badge to
README
template, issue #473Updated Cirrus CI config and templates, including better
coveralls
integration, issue #449Adopted global
isolated_build
fortox
configuration, issue #483, PR #491Loop counter explicitly marked as unused in
skeleton.py
(flake8-bugbear B007
), PR #495Ensure 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 #417Ensure
snake_case
for keys insetup.cfg
, issue #418Update dependencies on
configupdater
andpyscaffoldext-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 #182Added support for global configuration (avoid retyping common
putup
’s options), issue #236PyScaffold is no longer a build-time dependency, it just generates the project structure
Removed
contrib
subpackage, vendorized packages are now runtime dependencies, PR #290setuptools_scm
is included by default insetup.cfg
,setup.py
andpyproject.toml
API changed to use
pyscaffold.operations
instead of integer flags, PR #271Allow
string.Template
andcallable
as file contents in project structure, PR #295Extract file system functions from
utils.py
intofile_system.py
Extract identification/naming functions from
utils.py
intoidentification.py
Extract action related functions from
api/__init__.py
toactions.py
helpers.{modify,ensure,reject}
moved tostructure.py
helpers.{register,unregister}
moved toactions.py
New extension for automatically creating virtual environments (
--venv
)Added instructions to use
pip-tools
to docspre-commit
extension now attempts to install hooks automaticallyA 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 #256Added comment to
setup.cfg
template instructing about extra links, issue #268Generate
tox.ini
by default, issue #296Replace
pkg_resources
withimportlib.{metadata,resources}
andpackaging
, issue #309Adopt PEP 420 for namespaces, issue #218
Adopt SPDX identifiers for the license field in
setup.cfg
, issue #319Removed deprecated
log.configure_logger
Add links to issues and pull requests to changelog, PR #363
Add an experimental
--interactive
mode (inspired bygit rebase -i
), issue #191 (additional discussion: PR #333, PR #325, PR #362)Reorganise the FAQ (including version questions previously in Features)
Updated
setuptools
andsetuptools_scm
dependencies to minimal versions 46.1 and 5, respectivelyAdopted
no-guess-dev
version scheme fromsetuptools_scm
(semantically all stays the same, but non-tag commits are now versionedLAST_TAG.post1.devN
instead ofLAST_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 #245New 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 #252Updated
setuptools_scm
to version 4.1.2 in contribUpdated
configupdater
to version 1.1.2 in contribprecommit automatically fixes line endings by default
deprecated
log.configure_logger
, uselog.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.1Changed 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 #211Add support for
os.PathLike
objects inhelpers.{modify,ensure,reject}
, issue #211Remove
release
alias insetup.cfg
, usetwine
insteadSet
project-urls
andlong-description-content-type
insetup.cfg
, issue #216Added additional command line argument
very-verbose
Assure clean workspace when updating existing project, issue #190
Show stacktrace on errors if
--very-verbose
is usedUpdated
configupdater
to version 1.0Use
pkg_resources.resource_string
instead ofpkgutil.get_data
for templatesUpdate
setuptools_scm
to version 3.3.3Updated pytest-runner to version 5.1
Some fixes regarding the order of executing extensions
Consider
GIT_AUTHOR_NAME
andGIT_AUTHOR_EMAIL
environment variablesUpdated
tox.ini
Switch to using tox in
.travis.yml
templateReworked all official extensions
--pyproject
,--custom-extension
and--markdown
Version 3.1, 2018-09-05#
Officially dropped Python 2 support, issue #177
Moved
entry_points
andsetup_requires
tosetup.cfg
, issue #176Updated
travis.yml
template, issue #181Set
install_requires
to setuptools>=31Better isolation of unit tests, issue #119
Updated tox template, issues issue #160 & issue #161
Use
pkg_resources.parse_version
instead of oldLooseVersion
for parsingUse
ConfigUpdater
instead ofConfigParser
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 #142Fix ‘unknown’ version in case project name differs from the package name, issue #141
Fix missing
file:
attribute in long-description of setup.cfgFix
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 recommendedmy_project/src/my_package
structureRenamed
CHANGES.rst
to more standardCHANGELOG.rst
Added platforms parameter in
setup.cfg
Call Sphinx api-doc from
conf.py
, issue #98Included six 1.11.0 as contrib sub-package
Added
CONTRIBUTING.rst
Removed
test-requirements.txt
from templateAdded 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 flagsPrefix
n
was removed from the local_version string of dirty versionsAdded a
--pretend
flag for easier development of extensionsAdded a
--verbose
flag for more output what PyScaffold is doingUse pytest-runner 4.4 as contrib package
Added a
--no-skeleton
flag to omit the creation ofskeleton.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 ofsphinx.ext.mathjax
Added
--with-gitlab-ci
flag for GitLab CI supportFix 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 exampleUpdate setuptools_scm to v1.10.1
Version 2.5.3, 2016-01-16#
Fix classifier metadata (
classifiers
toclassifier
insetup.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 oftests_require
insetup.py
, issue #71Removed
--with-numpydoc
flag since this is now included by default withsphinx.ext.napoleon
in Sphinx 1.3 and aboveAdded small template for unittest
Fix for the example skeleton file when using namespace packages
Fix typo in devpi:upload section, issue #82
Include
pbr
andsetuptools_scm
in PyScaffold to avoid dependency problems, issue #71 and issue #72Cool 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
orpython 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 fromconf.py
, issue #65
Note
Due to the switch to a modified pytest-runner version it is necessary
to update setup.cfg
. Please check the 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 ofpython 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 projectstags 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