Recent Releases of pyscaffold

pyscaffold - v4.6

What's Changed

  • Modify Cirrus CI template to save resources, https://github.com/pyscaffold/pyscaffold/pull/735
  • Update Cirrus CI configuration, https://github.com/pyscaffold/pyscaffold/pull/752
  • Update Gitlab CI template, #756
  • Prefer importlib.resources.files instead of importlib.resources.read_text or pkgutil.get_data, https://github.com/pyscaffold/pyscaffold/pull/747
  • Update version caps for dependency on platformdirs, https://github.com/pyscaffold/pyscaffold/pull/755

New Contributors

  • @penguinpee made their first contribution in https://github.com/pyscaffold/pyscaffold/pull/747

Full Changelog: https://github.com/pyscaffold/pyscaffold/compare/v4.5...v4.6

- Python
Published by abravalheri over 1 year ago

pyscaffold - v4.5

What's Changed

  • Change macOS default configuration dir from ~/Library/Preferences to ~/Library/Application Support, #721. This change is motivated by the upgrade in the platformdirs dependency. You can read more about the motivation in platformdirs/platformdirs#98.
  • Simplify git command, by letting exceptions go through, #714

New Contributors

  • @musicinmybrain made their first contribution in #721

Full Changelog: https://github.com/pyscaffold/pyscaffold/compare/v4.4.1...v4.5

- Python
Published by abravalheri almost 3 years ago

pyscaffold - v4.4.1

What's Changed

  • 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 template #715

New Contributors

  • @victorgarcia98 made their first contribution in https://github.com/pyscaffold/pyscaffold/pull/715

Full Changelog: https://github.com/pyscaffold/pyscaffold/compare/v4.4...v4.4.1

- Python
Published by abravalheri about 3 years ago

pyscaffold - v4.4

What's Changed

  • 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

New Contributors

  • @cylussec made their first contribution in https://github.com/pyscaffold/pyscaffold/pull/688
  • @koenvervloesem made their first contribution in https://github.com/pyscaffold/pyscaffold/pull/695

Full Changelog: https://github.com/pyscaffold/pyscaffold/compare/v4.3.1...v4.4

- Python
Published by abravalheri over 3 years ago

pyscaffold - v4.3.1

What's Changed

  • Modify tox.ini template to allow passing the TWINE_REPOSITORY_URL environment variable, https://github.com/pyscaffold/pyscaffold/pull/666

New Contributors

  • @mfhepp made their first contribution in https://github.com/pyscaffold/pyscaffold/pull/661

Full Changelog: https://github.com/pyscaffold/pyscaffold/compare/v4.3...v4.3.1

- Python
Published by abravalheri over 3 years ago

pyscaffold - v4.3

This is a small incremental release, focusing on small improvements of existing functionality.

What's Changed

  • Removed wheel from the set of build dependencies in pyproject.toml (it is redundant since setuptools already includes it), #652.
  • Updated freebsd configuration in .cirrus.yml (with workaround for pipx in 2022Q3 repo), #657.

New Contributors

  • @mgorny made their first contribution in https://github.com/pyscaffold/pyscaffold/pull/652
  • @cverrier made their first contribution in https://github.com/pyscaffold/pyscaffold/pull/655

Full Changelog: https://github.com/pyscaffold/pyscaffold/compare/v4.2.3...v4.3

- Python
Published by abravalheri almost 4 years ago

pyscaffold - v4.2.3

What's Changed

  • Fix github action creating the demo-repo by, https://github.com/pyscaffold/pyscaffold/pull/644
  • Update GitHub actions, https://github.com/pyscaffold/pyscaffold/pull/645
  • Automatically create directory when saving config file, #648

Full Diff: https://github.com/pyscaffold/pyscaffold/compare/v4.2.2...v4.2.3

- Python
Published by abravalheri almost 4 years ago

pyscaffold - v4.2.2

I am happy to announce the new patch-level release: PyScaffold v4.2.2.

Main Changes

  • Update .github/workflows/ci.yml template, https://github.com/pyscaffold/pyscaffold/pull/637, https://github.com/pyscaffold/pyscaffold/pull/640
  • Change note in skeleton to emphasize it can be removed/renamed, https://github.com/pyscaffold/pyscaffold/pull/641

New Contributors

  • @eacheson made their first contribution in https://github.com/pyscaffold/pyscaffold/pull/632
  • @kianmeng made their first contribution in https://github.com/pyscaffold/pyscaffold/pull/635

Full Diff: https://github.com/pyscaffold/pyscaffold/compare/v4.2.1...v4.2.2

- Python
Published by abravalheri about 4 years ago

pyscaffold - v4.2.1

I am happy to announce the new patch-level release: PyScaffold v4.2.1.

This release improves the GitLab CI configuration updated in v4.2.

What's Changed

  • Changed .gitlab-ci.yml template to work for GitLab Enterprise 14.7.4, #630

New Contributors

  • @baurmatt made their first contribution in https://github.com/pyscaffold/pyscaffold/pull/630

Full Diff: https://github.com/pyscaffold/pyscaffold/compare/v4.2...v4.2.1

- Python
Published by abravalheri about 4 years ago

pyscaffold - v4.2

I am happy to announce the new release: PyScaffold v4.2.

This release brings a lot of improvements, specially in terms of continuous integrations! The existing templates for Cirrus CI and GitLab CI were updated and PyScaffold can now generate configurations for GitHub Actions.

What's Changed

  • Added --github-actions extension, https://github.com/pyscaffold/pyscaffold/pull/619
  • Updated and improved --gitlab extension, https://github.com/pyscaffold/pyscaffold/pull/622
  • Updated and improved --cirrus extension, https://github.com/pyscaffold/pyscaffold/pull/625
  • Fixed tox -e publish example in docs by @bernhardschaefer, https://github.com/pyscaffold/pyscaffold/pull/627
  • Added colorama as a runtime dependency for windows, #624

New Contributors

  • @bernhardschaefer made their first contribution in https://github.com/pyscaffold/pyscaffold/pull/627

Full Diff: https://github.com/pyscaffold/pyscaffold/compare/v4.1.5...v4.2

- Python
Published by abravalheri over 4 years ago

pyscaffold - v4.1.5

I am happy to announce the new release: PyScaffold v4.1.5.

Main Changes

  • Add pyenv's .python-version into .gitignore, https://github.com/pyscaffold/pyscaffold/pull/576
  • Added more --very-verbose logging to make clearer what's going on, https://github.com/pyscaffold/pyscaffold/pull/578
  • Updated versions of containers in CI config, https://github.com/pyscaffold/pyscaffold/pull/583
  • Fixed coverage config template for namespaced packages, https://github.com/pyscaffold/pyscaffold/pull/610
  • Replaced internal appdirs dependency with platformdirs, https://github.com/pyscaffold/pyscaffold/pull/584

Documentation Changes

  • Mention python -m setuptools_scm as a form of debugging, https://github.com/pyscaffold/pyscaffold/pull/574
  • Mention setting the default branch in git in docs, https://github.com/pyscaffold/pyscaffold/pull/577
  • Fix documented path to pyscaffold/default.cfg, https://github.com/pyscaffold/pyscaffold/pull/580

New Contributors

  • @TaylorMonacelli made their first contribution in https://github.com/pyscaffold/pyscaffold/pull/580

Full Diff: https://github.com/pyscaffold/pyscaffold/compare/v4.1.4...v4.1.5

- Python
Published by abravalheri over 4 years ago

pyscaffold - v4.1.4

I am happy to announce the new bugfix release: PyScaffold v4.1.4.

Main Changes

  • Ensure build configuration produces sdist as it is needed by conda, https://github.com/pyscaffold/pyscaffold/issues/570
  • Documentation improvements in https://github.com/pyscaffold/pyscaffold/issues/567

Full Changelog: https://github.com/pyscaffold/pyscaffold/compare/v4.1.3...v4.1.4

- Python
Published by abravalheri over 4 years ago

pyscaffold - v4.1.3

I am happy to announce the new bugfix release: PyScaffold v4.1.3.

Main Changes

  • Fix pre-commit error: The unauthenticated git protocol on port 9418 is no longer supported in https://github.com/pyscaffold/pyscaffold/pull/566

- Python
Published by FlorianWilhelm over 4 years ago

pyscaffold - v4.1.2

I am happy to announce the new bugfix release: PyScaffold v4.1.2.

Main Changes

  • Prevent accidental creation of nested projects by @abravalheri in https://github.com/pyscaffold/pyscaffold/pull/545
  • Always log shell ops by @FlorianWilhelm in https://github.com/pyscaffold/pyscaffold/pull/559
  • Fix problem with Win10 shell by @FlorianWilhelm in https://github.com/pyscaffold/pyscaffold/pull/560

New Contributors

  • @git-afsantos made their first contribution in https://github.com/pyscaffold/pyscaffold/pull/552

Full Changelog: https://github.com/pyscaffold/pyscaffold/compare/v4.1.1...v4.1.2

- Python
Published by abravalheri over 4 years ago

pyscaffold - Bugfix release v4.1.1

I am happy to announce the release of a new patch version: PyScaffold v4.1.1. This version solves bugs #506 and #516, and the main changes are:

  • Instruct users how to fix empty namespaces, persisted due to bug in PyScaffold < v4.1 (#508)
  • Better support for updating projects with multi-line descriptions (#509)
  • Extensions no longer can persist None values (#510).
  • Better error report when extension is not found during update (#512)
  • Allow comments (and prevent parsing errors) in dependency deduplication during update (#518)
  • Add license_files to setup.cfg template (#524)

- Python
Published by abravalheri over 4 years ago

pyscaffold - Release Candidate 4.1.1rc2

Adds a partial fixes for issue #516. For the time being comments without indentation inside multiline options (very unlikely) are not handled due to ConfigUpdater limitations.

- Python
Published by abravalheri over 4 years ago

pyscaffold - Release Candidate 4.1.1rc1

This is a bug fix related to #506.

- Python
Published by abravalheri over 4 years ago

pyscaffold - v4.1

I am happy to announce the release of a new minor update: PyScaffold v4.1. The most notable changes are:

  • New linkcheck task for tox.ini, #456
  • New 0BSD license template.
  • New CONTRIBUTING.rst template, #376
  • New PyScaffold badge for README template, #473
  • Better coveralls integration for Cirrus CI, #449

- Python
Published by abravalheri over 4 years ago

pyscaffold - Release Candidate 4.1rc3

Minor template updates since 4.1rc2 (#497, #498).

- Python
Published by abravalheri over 4 years ago

pyscaffold - Release Candidate 4.1rc2

- Python
Published by abravalheri over 4 years ago

pyscaffold - Release Candidate v4.1rc1

v4.1 will bring several improvements specially regarding CI automated tasks configuration and documentation.

- Python
Published by abravalheri almost 5 years ago

pyscaffold - Bugfix release 4.0.2

  • Restructured docs
  • Fix WSL2 installation problem, issue 440
  • Fix for interactive mode under Windows, issue 430

- Python
Published by FlorianWilhelm about 5 years ago

pyscaffold -

The most notable changes in this patch-level release are:

  • Fix the warnings emitted by setuptools regarding kebab-cased-keys in setup.cfg
  • Remove broken checks for old versions of setuptools (fix #428)
  • Fix tox' build when running on conda environments.

- Python
Published by abravalheri about 5 years ago

pyscaffold -

This RC adds several improvements for running/building pyscaffold and extensions via conda (thanks to @maresb involvement) and fixes setuptools warnings for lower-kebab-case keys on setup.cfg (#418)

- Python
Published by abravalheri over 5 years ago

pyscaffold - Improvement for edge cases

Update dependencies (ConfigUpdates, pyscaffoldext-django). The new version of each dependency fix certain edge cases, but not necessarily issues were found with PyScaffold v4 itself.

The release candidate is meant to give people sometime to play around with the changes in ConfigUpdater and report any bugs.

- Python
Published by abravalheri over 5 years ago

pyscaffold - PyScaffold v4.0: interactive mode, inplace updates, saved configs, PEPS 420, 517, 518 and much more...

It has been a long journey since PyScaffold v3 was released and a lot of things happened in the Python community especially regarding the packaging ecosystem...

We saw emerging a huge effort to standardise the build process and metadata with PEP 517 and PEP 518, a tendency to avoid pkg_resources (in favour of native namespaces with PEP 420, importlib.resources and importlib.metadata) and of course the deprecation of Python version 2. Moreover, having Python 3.6 as the lowest version officially supported by Python's core team, changed the way developers write their code: a bunch of new features are now available, allowing us to be more expressive and succinct (don't tell me you don't like to use f-strings).

As a result, the PyScaffold team decided to expand our previous ideas for improvements and also incorporate these changes within the ecosystem into a new, super cool, version of PyScaffold. So here I am, proud to officially announce the final release of PyScaffold v4 - now available in PyPI 🥳🎉

The complete list of changes introduced in this version is available at the official website together with a more detailed description of all the features, but I will try to summarise below some highlights of this release.

New Defaults

As a response to PEP 517 and PEP 518, PyScaffold v4 will automatically generate a pyproject.toml in the root of your repository. As a consequence, most of the tools in Python's build ecosystem will assume the distribution should be built in isolation (think of it as creating a virtual environment just for running python setup.py). In general, this change should reduce the chances of things going wrong and improve reproducibility, but it can also mean that you need to adapt a little bit your workflow.

To ease this transition, we are including by default a tox.ini in the root of your project, pre-configured with a lot of common tasks. If you have tox installed in your machine, you will be able to run:

bash tox -e docs # to build your documentation tox -e build # to build your package distribution tox -e publish # to test your project uploads correctly in test.pypi.org tox -e publish -- --repository pypi # to release your package to PyPI tox -av # to list all the tasks available

This is meant to be a replacement for deprecated setup.py commands such as:

```bash python setup.py docs python setup.py tests

etc ...

```

We also are recommending using pip install . and pip install -e . instead of python setup.py install and python setup.py develop. In the future, it is very likely that running setup.py directly will be deprecated by setuptools, so we might as well start to get used to an interface that is unlikely to change.

Experimental and Exciting Features

Interactive Mode

Have you ever tried to use a CLI tool for the first time, or after a long period without using it, and faced a situation that forced you to go back and forth between typing your command and reading the --help text? It is usually not a great experience, especially when you have many options...

A few programs try to solve this problem by providing something called "interactive mode", which, most of the time, corresponds to a bunch of questions being prompted at the terminal. While this method is fine and familiar for most developers, it can get very tiring if the tool asks you more than 7 questions... and choosing by accident the wrong option in the last question, well, then you are going to hate having to reply to the same questions all over again...

Thus, we are trying something different in v4. When you activate the interactive mode with the -i or --interactive flags, PyScaffold will open your favourite text editor (the one you specify with the EDITOR environment variable), with an "editable version" of the --help text. A bit unusual right? But don't worry, it works very similarly to interactive rebases with git, i.e. you can comment options out by preceding the line with an # symbol, edit the values for the options (as shown in the example below), save and close the file then just wait for PyScaffold to run. This is how it looks:

```bash myproject # path where to generate/update project

--name myproject

# (or alternatively: -n)
# installable name (as in `pip install`/PyPI, default: basename of
# PROJECT_PATH)

--package myproject

# (or alternatively: -p)
# package name (as in `import`, default: NAME)

--description 'Add a short description here!' # (or alternatively: -d) # package description

etc ...

```

Dynamically adapting to your workflow

One of the nice things about PyScaffold is that you can mix and match many tools according to your workflow. For example, if you like to run some quick tasks like linting or formatting the code before committing your changes, just add --pre-commit when generating your project with putup and PyScaffold will configure your project to use pre-commit.

In v4, we took that to a new level. Now you can dynamically update your project to include the supported tools, so you can gradually evolve and adapt your workflow.

Consider, for example, you have a project generated by PyScaffold, if at any point you decide to start testing it in Cirrus CI, just cd into your project root folder and run:

bash putup . --update --cirrus

Saving your favourite configuration

We all have favourites, right? And I guess after a while using PyScaffold you might tend to repeat a series of flags to express your preferences (like --pre-commit, --licence GPL-3.0, etc...). With v4 you can avoid retyping those options by saving a default configuration.

For example, if you create a new project by running: bash putup myproject --pre-commit --cirrus --licence GPL-3.0 --save-config

The next time you create a project with putup, the --pre-commit, --cirrus and --licence GPL-3.0 options will be automatically applied, without the need of typing it again.


We hope PyScaffold users will find v4 easier to work with. We also invite everyone to have a look at the official extensions in our GitHub organisation, and if you are a bit more courageous, to have a look at our extensions guide.

In this release we offer a packaging experience up to date with the latest best practices and standardisation in the Python ecosystem, while maintaining the best backward compatibility possible. That is the spirit we plan to bring forward in the next releases.

I hope you all stay productive and have fun! 😉

Anderson Bravalheri & Florian Wilhelm


What is PyScaffold?

PyScaffold is the tool of choice for bootstrapping high quality Python packages, ready to be shared on PyPI and installable via pip. It is easy to use and encourages the adoption of the best tools and practices of the Python ecosystem, helping you and your team to stay sane, happy, and productive. The best part? It is stable and has been used by thousands of developers for over half a decade!

Why PyScaffold?

PyScaffold was created in 2014 and therefore is stable and battle tested, but yet constantly evolving to support its users' needs and the latest standards of the Python community.

With PyScaffold you can jump start your Python development with an incredibly smart project template, perfected throughout years of serious usage, that promotes the best practices in the Python ecosystem and ships with ready-to-use configuration for all the tools needed by the vast majority of Python developers.

If you are still not convinced, have a look on these other reasons and the extensive list of PyScaffold's features. And if you are curious, checkout our demo project, or install PyScaffold and type putup -h to get started.

Feedback

  • Issues and bugs: https://https://github.com/pyscaffold/pyscaffold/issues
  • Discussion, suggestions, questions: https://github.com/pyscaffold/pyscaffold/discussions

- Python
Published by abravalheri over 5 years ago

pyscaffold - Release candidate

This version incorporates some feedback from users, fixes small bugs, and updates in documentation since since v4.0rc1

- Python
Published by abravalheri over 5 years ago