- Change macOS default configuration dir from
~/Library/Preferences
to~/Library/Application Support
, :pr:`721`. This change is motivated by the upgrade in theplatformdirs
dependency. You can read more about the motivation in :github:`platformdirs/platformdirs#98` - Simplify
git
command, by letting exceptions go through, :pr:`714`
- Re-use pre-built wheels in CI for upgrade tests in :pr:`702`
- Make security permissions explicit in GHA template :pr:`704`
- Fix
GITHUB_TOKEN
variable in GHA template :pr:`715`
- Add
codespell
topre-commit
config, :pr:`674` - Allow
venv_install
in config file, :pr:`680` - Avoid problematic
tox
4.0 and 4.1, :pr:`689` - Update
macos
instances on Cirrus CI, :pr:`690` - Replace deprecated
set-output
, :pr:`688` - Update CI templates, :pr:`693`
- Add comments about building
sdist
intox.ini
and FAQ, :pr:`694` - Update Python version in Read The Docs configuration, :pr:`695`
- Modify
tox.ini
template to allow passing theTWINE_REPOSITORY_URL
environment variable, :pr:`666`.
- Removed
wheel
from the set of build dependencies inpyproject.toml
(it is redundant sincesetuptools
already includes it), :pr:`652`. - Updated
freebsd
configuration in.cirrus.yml
(with workaround forpipx
in 2022Q3 repo), :pr:`657`.
- Automatically create directory when saving config file, :issue:`648`
- Update
.github/workflows/ci.yml
template, :pr:`637` and :pr:`640` - Update note in
skeleton.py
template clarifying file can be renamed, :pr:`641`
- Ensure
.gitlab-ci.yml
template works for GitLab Enterprise 14.7.4, :pr:`630`
- 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`
- Added
.python-version
created bypyenv
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`
- Ensure build configuration produces
sdist
as it is needed by conda, :issue:`570`
- 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
- 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`.
- Ensure required extensions are installed on
--update
, :pr:`512` - Prevent extension from crashing when persisting
None
insetup.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
tosetup.cfg
template, :issue:`524`
- 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
fortox
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`
- Restructured docs
- Fix WSL2 installation problem, :issue:`440`
- Fix for interactive mode under Windows, :issue:`430`
- Fix
tox -e build
issue when running on Conda, :pr:`417` - Ensure
snake_case
for keys insetup.cfg
, :issue:`418` - Update dependencies on
configupdater
andpyscaffoldext-django
- Remove broken checks for old
setuptools
, :issue:`428`
- 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 insetup.cfg
,setup.py
andpyproject.toml
- API changed to use
pyscaffold.operations
instead of integer flags, :pr:`271` - Allow
string.Template
andcallable
as file contents in project structure, :pr:`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, :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
withimportlib.{metadata,resources}
andpackaging
, :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 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, 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 extensions :issue:`378`
- 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
, 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}
, :issue:`211` - Add support for
os.PathLike
objects inhelpers.{modify,ensure,reject}
, :issue:`211` - Remove
release
alias insetup.cfg
, usetwine
instead - Set
project-urls
andlong-description-content-type
insetup.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 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, :issue:`177`
- Moved
entry_points
andsetup_requires
tosetup.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 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, :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`
- Updated pbr to version 4.0.2
- Fixes Sphinx version 1.6 regression, :issue:`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, :issue:`147`
- Fix error with setuptools version 39.0 and above, :issue:`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, :issue:`148`
- 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
- 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
, :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 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, :issue:`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, :issue:`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
, :issue:`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, :issue:`82`
- Include
pbr
andsetuptools_scm
in PyScaffold to avoid dependency problems, :issue:`71` and :issue:`72` - Cool logo was designed by Eva Schmücker, :issue:`66`
- Fix problem with bad upload of version 2.4.3 to PyPI, :issue:`80`
- Fix problem with version numbering if setup.py is not in the root directory, :issue:`76`
- Fix version conflicts due to too tight pinning, :issue:`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
, :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 <configuration>`.
- 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.
- FIX: Removed putup console script in setup.cfg template
- 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 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, :pr:`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