# Paste Deployment News

## 3.1.0 (2023-11-20)

- Support Python 3.11 and 3.12.

- Remove deprecated usage of `inspect.getargspec` that is no longer supported in Python 3.12.

## 3.0.1 (2022-10-17)

- Fix `python_requires` package metadata to support Python 3.7+.

## 3.0 (2022-10-16)

- Drop support for Python 2, as well as 3.4, 3.5, and 3.6.

- Fix a broken compatibility shim that would cause the ConfigParser to fail on Python 3.12 when `ConfigParser.readfp` is removed.

- Drop setuptools dependency and start using `importlib.metadata` instead.

- Refactor repository into a src folder layout.

## 2.1.1 (2020-10-12)

- Added `setuptools` as an explicit dependency. This has always been required but now that more environments are becoming capable of operating without it being installed, we now need to ensure it's available.

## 2.1.0

- pytest-runner removed, use tox to run tests.

## 2.0.0

- Python 3 deprecation warning cleanups

- Moved code to GitHub under the Pylons Project.

- Moved documentation under the Pylons Project, hosted by Read the Docs at https://docs.pylonsproject.org/projects/pastedeploy/en/latest/

## 1.5.2

- Fixed Python 3 issue in paste.deploy.util.fix_type_error()

## 1.5.1

- Fixed use of the wrong variable when determining the context protocol

- Fixed invalid import of paste.deploy.Config to paste.deploy.config.Config

- Fixed multi proxy IPs bug in X-Forwarded-For header in PrefixMiddleware

- Fixed TypeError when trying to raise LookupError on Python 3

- Fixed exception reraise on Python 3

Thanks to Alexandre Conrad, Atsushi Odagiri, Pior Bastida and Tres Seaver for their contributions.

## 1.5.0

- Project is now maintained by Alex Grönholm <alex.gronholm@nextday.fi>

- Was printing extraneous data when calling setup.py

- Fixed missing paster template files (fixes "paster create -t paste.deploy")

- Excluded tests from release distributions

- Added support for the "call:" protocol for loading apps directly as functions (contributed by Jason Stitt)

- Added Python 3.x support

- Dropped Python 2.4 support

- Removed the `paste.deploy.epdesc` and `paste.deploy.interfaces` modules -- contact the maintainer if you actually needed them

## 1.3.4

- Fix loadconfig path handling on Jython on Windows.

## 1.3.3

- In `paste.deploy.config.PrefixMiddleware` the headers `X-Forwarded-Scheme` and `X-Forwarded-Proto` are now translated to the key `environ['wsgi.url_scheme']`. Also `X-Forwarded-For` is translated to `environ['REMOTE_ADDR']`

- Also in PrefixMiddleware, if X-Forwarded-Host has multiple (comma-separated) values, use only the first value.

## 1.3.2

- Added `paste.deploy.converters.asint()`.

- fixed use sections overwriting the config's __file__ value with the use'd filename.

- `paste.deploy.loadwsgi` now supports variable expansion in the DEFAULT section of config files (unlike plain ConfigParser).

## 1.3.1

- Fix `appconfig` config loading when using a config file with `filter-with` in it (previously you'd get TypeError: iteration over non-sequence)

## 1.3

- Added `scheme` option to `PrefixMiddleware`, so you can force a scheme (E.g., when proxying an HTTPS connection over HTTP).

- Pop proper values into `environ['paste.config']` in `ConfigMiddleware`.

## 1.1

- Any `global_conf` extra keys you pass to `loadapp` (or the other loaders) will show up as though they were in `[DEFAULT]`, so they can be used in variable interpolation. Note: this won't overwrite any existing values in `[DEFAULT]`.

- Added `force_port` option to `paste.deploy.config.PrefixMiddleware`. Also the `prefix` argument is stripped of any trailing `/`, which can't be valid in that position.

## 1.0

- Added some documentation for the different kinds of entry points Paste Deploy uses.

- Added a feature to `PrefixMiddleware` that translates the `X-Forwarded-Server` header to `Host`.

## 0.9.6

- Added `PrefixMiddleware` which compensates for cases where the wsgi app is behind a proxy of some sort that isn't moving the prefix into the SCRIPT_NAME in advance.

- Changed _loadconfig() so that it works with Windows absolute paths.

- Make the error messages prettier when you call a function and fail to give an argument, like a required function argument.

## 0.5

- Made the `paste_deploy` template (used with `paster create --template=paste_deploy`) more useful, with an example application and entry point.

## 0.4

- Allow filters to have `filter-with` values, just like applications.

- Renamed `composit` to `composite` (old names still work, but aren't documented).

- Added `appconfig()` to load along with `loadapp()`, but return the configuration without invoking the application.

## 0.3

- Allow variable setting like:

      get local_var = global_var_name

  To bring in global variables to the local scope.

- Allow interpolation in files, like `%(here)s`. Anything in the `[DEFAULTS]` section will be available to substitute into a value, as will variables in the same section. Also, the special value `here` will be the directory the configuration file is located in.

## 0.2

Released 26 August 2004

- Added a `filter-with` setting to applications.

- Removed the `1` from all the protocol names (e.g., `paste.app_factory1` is not `paste.app_factory`).

- Added `filter-app:` and `pipeline:` sections.

- Added `paste.filter_app_factory1` and `paste.server_runner1` protocols.

- Added `paste.deploy.converters` module for handling the string values that are common with this system.

## 0.1

Released 22 August 2004

Initial version released. It's all new.