- Change macOS default configuration dir from
~/Library/Preferences
to~/Library/Application Support
,721
. This change is motivated by the upgrade in theplatformdirs
dependency. You can read more about the motivation inplatformdirs/platformdirs#98
- Simplify
git
command, by letting exceptions go through,714
- Re-use pre-built wheels in CI for upgrade tests in
702
- Make security permissions explicit in GHA template
704
- Fix
GITHUB_TOKEN
variable in GHA template715
- Add
codespell
topre-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
intox.ini
and FAQ,694
- Update Python version in Read The Docs configuration,
695
- Modify
tox.ini
template to allow passing theTWINE_REPOSITORY_URL
environment variable,666
.
- Removed
wheel
from the set of build dependencies inpyproject.toml
(it is redundant sincesetuptools
already includes it),652
. - Updated
freebsd
configuration in.cirrus.yml
(with workaround forpipx
in 2022Q3 repo),657
.
- Automatically create directory when saving config file,
648
- Update
.github/workflows/ci.yml
template,637
and640
- Update note in
skeleton.py
template clarifying file can be renamed,641
- Ensure
.gitlab-ci.yml
template works for GitLab Enterprise 14.7.4,630
- Added
--github-actions
extension,619
- Updated and improved
--gitlab
extension,622
- Updated and improved
--cirrus
extension,625
- Fixed
tox -e publish
example in docs,627
- Added
colorama
as a runtime dependency for Windows,624
- Added
.python-version
created bypyenv
to.gitignore
- Added more
--very-verbose
logging to make clearer what's going on,562
- Replace internal dependency on
appdirs
withplatformdirs
,584
- Fix
coverage
config for namespaced packages,610
- Ensure build configuration produces
sdist
as it is needed by conda,570
- Fix pre-commit error: The unauthenticated git protocol on port 9418 is no longer supported,
565
Note
PyScaffold 4.1 is the last release to support Python 3.6
- Added verification to prevent users from creating projects nested inside existing repositories, unless
--force
is explicitly given,544
,545
. - Fixed problem with Windows Shell when running git,
560
.
- Ensure required extensions are installed on
--update
,512
- Prevent extension from crashing when persisting
None
insetup.cfg
,510
- Prevent multi-line descriptions to crash
putup
,509
- Warn users about empty namespaces,
508
- Prevent parsing errors during dependency deduplication,
518
- Add
license_files
tosetup.cfg
template,524
- Added linkcheck task to
tox.ini
,456
- Updated configuration for Sphinx and ReadTheDocs,
455
- Note that templates and the generated boilerplate code is 0BSD-licensed,
461
- Added 0BSD license template
- Added
CONTRIBUTING.rst
template,376
- Added PyScaffold badge to
README
template,473
- Updated Cirrus CI config and templates, including better
coveralls
integration,449
- Adopted global
isolated_build
fortox
configuration,483
,491
- Loop counter explicitly marked as unused in
skeleton.py
(flake8-bugbear B007
),495
- Ensure update include added extensions in
setup.cfg
,496
- Restructured docs
- Fix WSL2 installation problem,
440
- Fix for interactive mode under Windows,
430
- Fix
tox -e build
issue when running on Conda,417
- Ensure
snake_case
for keys insetup.cfg
,418
- Update dependencies on
configupdater
andpyscaffoldext-django
- Remove broken checks for old
setuptools
,428
- Cookiecutter, Django and Travis extensions extracted to their own repositories,
175
and355
- Support for Python 3.4 and 3.5 dropped,
226
- Dropped deprecated
requirements.txt
file,182
- Added support for global configuration (avoid retyping common
putup
's options),236
- PyScaffold is no longer a build-time dependency, it just generates the project structure
- Removed
contrib
subpackage, vendorized packages are now runtime dependencies,290
setuptools_scm
is included by default insetup.cfg
,setup.py
andpyproject.toml
- API changed to use
pyscaffold.operations
instead of integer flags,271
- Allow
string.Template
andcallable
as file contents in project structure,295
- Extract 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 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,
315
- Progressive type annotations adopted in the code base together with mypy linting
- Simplified isort config
pyproject.toml
and isolated builds adopted by default,256
- Added comment to
setup.cfg
template instructing about extra links,268
- Generate
tox.ini
by default,296
- Replace
pkg_resources
withimportlib.{metadata,resources}
andpackaging
,309
- Adopt PEP 420 for namespaces,
218
- Adopt SPDX identifiers for the license field in
setup.cfg
,319
- Removed deprecated
log.configure_logger
- Add links to issues and pull requests to changelog,
363
- Add an experimental
--interactive
mode (inspired bygit rebase -i
),191
(additional discussion:333
,325
,362
) - Reorganise the FAQ (including version questions previously in Features)
- Updated
setuptools
andsetuptools_scm
dependencies to minimal versions 46.1 and 5, respectively - Adopted
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 extensions378
- 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
,245
- New tox test environments for generating docs and running doctests
- New built-in extension for Cirrus CI,
251
- experimental
get_template
is now part of the public API and can be used by extensions,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
, uselog.logger.reconfigure
instead
Note
PyScaffold 3.3 is the last release to support Python 3.5
- Updated
configupdater
to version 1.0.1 - Changed Travis to Cirrus CI
- Fix some problems with Windows
- Write files as UTF-8, fixes
codec can't encode characters
error
- 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
- deprecated use of lists with
helpers.{modify,ensure,reject}
,211
- Add support for
os.PathLike
objects inhelpers.{modify,ensure,reject}
,211
- Remove
release
alias insetup.cfg
, usetwine
instead - Set
project-urls
andlong-description-content-type
insetup.cfg
,216
- Added additional command line argument
very-verbose
- Assure clean workspace when updating existing project,
190
- Show stacktrace on errors if
--very-verbose
is used - Updated
configupdater
to version 1.0 - Use
pkg_resources.resource_string
instead ofpkgutil.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
andGIT_AUTHOR_EMAIL
environment variables - Updated
tox.ini
- Switch to using tox in
.travis.yml
template - Reworked all official extensions
--pyproject
,--custom-extension
and--markdown
- Officially dropped Python 2 support,
177
- Moved
entry_points
andsetup_requires
tosetup.cfg
,176
- Updated
travis.yml
template,181
- Set
install_requires
to setuptools>=31 - Better isolation of unit tests,
119
- Updated tox template, issues
160
&161
- Use
pkg_resources.parse_version
instead of oldLooseVersion
for parsing - Use
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,
196
- experimental extension for MarkDown usage in README,
163
- experimental support for Pipenv,
140
- deprecated built-in Cookiecutter and Django extensions (to be moved to separated packages),
175
- Updated pbr to version 4.0.2
- Fixes Sphinx version 1.6 regression,
152
- Set install_requires to setuptools>=30.3.0
- Updated setuptools_scm to version 1.17.0
- Fix wrong docstring in skeleton.py about entry_points,
147
- Fix error with setuptools version 39.0 and above,
148
- Fixes in documentation, thanks Vicky
- Updated setuptools_scm to version 1.17.0
- Updated setuptools_scm to version 1.16.1
- Fix error with setuptools version 39.0 and above,
148
- Fix confusing error message when
python setup.py docs
and Sphinx is not installed,142
- Fix 'unknown' version in case project name differs from the package name,
141
- Fix missing
file:
attribute in long-description of setup.cfg - Fix
sphinx-apidoc
invocation problem with Sphinx 1.7
- 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
structure - Renamed
CHANGES.rst
to more standardCHANGELOG.rst
- Added platforms parameter in
setup.cfg
- Call Sphinx api-doc from
conf.py
,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,
98
- Support of Cython extensions,
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 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.
- Use
sphinx.ext.imgmath
instead ofsphinx.ext.mathjax
- Added
--with-gitlab-ci
flag for GitLab CI support - Fix Travis install template dirties git repo,
107
- Updated setuptools_scm to version 1.15.6
- Updated pbr to version 3.1.1
- 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
- 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
- Updated pbr to master at 2016-01-20
- Fix sdist installation bug when no git is installed,
90
- Fix problem with
fibonacci
terminal example - Update setuptools_scm to v1.10.1
- Fix classifier metadata (
classifiers
toclassifier
insetup.cfg
)
- Fix
is_git_installed
- Fix: Do some sanity checks first before gathering default options
- Updated setuptools_scm to version 1.10.0
- Usage of
test-requirements.txt
instead oftests_require
insetup.py
,71
- Removed
--with-numpydoc
flag since this is now included by default withsphinx.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,
82
- Include
pbr
andsetuptools_scm
in PyScaffold to avoid dependency problems,71
and72
- Cool logo was designed by Eva Schm眉cker,
66
- Fix problem with bad upload of version 2.4.3 to PyPI,
80
- Fix problem with version numbering if setup.py is not in the root directory,
76
- Fix version conflicts due to too tight pinning,
69
- Fix installation with additional requirements
pyscaffold[ALL]
- Updated pbr version to 1.7
- 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
,65
Note
Due to the switch to a modified pytest-runner version it is necessary to update setup.cfg
. Please check the example <configuration>
.
- Format of setup.cfg changed due to usage of pbr,
59
- Much cleaner setup.py due to usage of pbr,
59
- PyScaffold can be easily called from another script,
58
- Internally dictionaries instead of namespace objects are used for options,
57
- Added a section for devpi in setup.cfg,
62
Note
Due to the switch to pbr, it is necessary to update setup.cfg
according to the new syntax.
- FIX: Removed putup console script in setup.cfg template
- Allow recursive inclusion of data files in setup.cfg,
49
- Replaced hand-written PyTest runner by pytest-runner,
47
- Improved default README.rst,
51
- Use tests/conftest.py instead of tests/__init__.py,
52
- Use setuptools_scm for versioning,
43
- Require setuptools>=9.0,
56
- Do not create skeleton.py during an update,
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 projects - tags do no longer need to start with v
- 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
- Typo and wrong Sphinx usage in the RTD documentation
- 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
- FIX: Version retrieval with setup.py install
- argparse example for version retrieval in skeleton.py
- FIX: import my_package should be quiet (verbose=False)
- FIX: Installation bug under Windows 7
- 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
- Added numpydoc flag --with-numpydoc
- Fix: Add django to requirements if --with-django
- Fix: Don't overwrite index.rst during update
- Fix: path of Travis install script
- Fix: --with-tox tuple bug,
28
- 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
- Support pre-commit hooks (https://pre-commit.com/)
- Changed COPYING to LICENSE
- Support for all licenses from https://choosealicense.com/
- Fix: Allow update of license again
- Update to Versioneer 0.12
- 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
- Documentation updates due to RTD
- Added a --force flag
- Some cleanups in setup.py
- Update to Versioneer 0.10
- Moved sphinx-apidoc from setup.py to conf.py
- Better support for make html
- Added Python 3.4 tests and support
- Flag --update updates only some files now
- Usage of setup_requires instead of six code
- Fix: Removed six dependency in setup.py
- Better usage of six
- Return non-zero exit status when doctests fail
- Updated README
- Fixes in Sphinx Makefile
- 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
- Problem fixed with pytest-cov installation
- PEP8 and PyFlakes fixes
- Added --version flag
- Small fixes and cleanups
- PEP8 fixes
- More documentation
- Added update feature
- Fixes in setup.py
- 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
- Bugfix in Manifest.in
- Python 2.6 problems fixed
- Unittesting with Travis
- Switch to string.Template
- Minor bugfixes
- First release