Commit 30c7b8ac by Sébastien Eustace

Deprecate allows-prereleases in favor of allow-prereleases for consistency

parent 54bc8dfe
......@@ -105,7 +105,7 @@ If you do not specify a version constraint, poetry will choose a suitable one ba
constraint["optional"] = True
if self.option("allow-prereleases"):
constraint["allows-prereleases"] = True
constraint["allow-prereleases"] = True
if self.option("extras"):
extras = []
......
......@@ -46,13 +46,14 @@ class ApplicationConfig(BaseApplicationConfig):
io = event.io
if not command.loggers:
return
loggers = ["poetry.packages.package"]
loggers += command.loggers
handler = IOHandler(io)
handler.setFormatter(IOFormatter())
for logger in command.loggers:
for logger in loggers:
logger = logging.getLogger(logger)
logger.handlers = [handler]
......
......@@ -19,7 +19,7 @@ class IOHandler(logging.Handler):
level = record.levelname.lower()
err = level in ("warning", "error", "exception", "critical")
if err:
self._io.error(msg, newline=True)
self._io.error_line(msg)
else:
self._io.write_line(msg)
except Exception:
......
......@@ -290,6 +290,17 @@ class Factory:
"Consider specifying a more explicit one."
)
for name, constraint in config["dependencies"].items():
if not isinstance(constraint, dict):
continue
if "allows-prereleases" in constraint:
result["warnings"].append(
'The "{}" dependency specifies '
'the "allows-prereleases" property, which is deprecated. '
'Use "allow-preleases" instead.'.format(name)
)
# Checking for scripts with extras
if "scripts" in config:
scripts = config["scripts"]
......
......@@ -247,6 +247,10 @@
"type": "string",
"description": "The PEP 508 compliant environment markers for which the dependency should be installed."
},
"allow-prereleases": {
"type": "boolean",
"description": "Whether the dependency allows prereleases or not."
},
"allows-prereleases": {
"type": "boolean",
"description": "Whether the dependency allows prereleases or not."
......@@ -304,6 +308,10 @@
"type": "string",
"description": "The PEP 508 compliant environment markers for which the dependency should be installed."
},
"allow-prereleases": {
"type": "boolean",
"description": "Whether the dependency allows prereleases or not."
},
"allows-prereleases": {
"type": "boolean",
"description": "Whether the dependency allows prereleases or not."
......
# -*- coding: utf-8 -*-
import copy
import logging
import re
from contextlib import contextmanager
from typing import Union
from warnings import warn
from poetry.semver import Version
from poetry.semver import parse_constraint
......@@ -24,6 +26,8 @@ from .utils.utils import create_nested_marker
AUTHOR_REGEX = re.compile(r"(?u)^(?P<name>[- .,\w\d'’\"()]+)(?: <(?P<email>.+?)>)?$")
logger = logging.getLogger(__name__)
class Package(object):
......@@ -270,7 +274,18 @@ class Package(object):
python_versions = constraint.get("python")
platform = constraint.get("platform")
markers = constraint.get("markers")
allows_prereleases = constraint.get("allows-prereleases", False)
if "allows-prereleases" in constraint:
message = (
'The "{}" dependency specifies '
'the "allows-prereleases" property, which is deprecated. '
'Use "allow-preleases" instead.'.format(name)
)
warn(message, DeprecationWarning)
logger.warning(message)
allows_prereleases = constraint.get(
"allow-prereleases", constraint.get("allows-prereleases", False)
)
if "git" in constraint:
# VCS dependency
......
......@@ -42,6 +42,7 @@ Warning: A wildcard Python dependency is ambiguous. Consider specifying a more e
Error: 'description' is a required property
Error: INVALID is not a valid license
Warning: A wildcard Python dependency is ambiguous. Consider specifying a more explicit one.
Warning: The "pendulum" dependency specifies the "allows-prereleases" property, which is deprecated. Use "allow-preleases" instead.
"""
assert expected == tester.io.fetch_output()
......@@ -8,3 +8,4 @@ license = "INVALID"
[tool.poetry.dependencies]
python = "*"
pendulum = {"version" = "^2.0.5", allows-prereleases = true}
......@@ -430,7 +430,7 @@ def test_solver_returns_extras_if_requested(solver, repo, package):
def test_solver_returns_prereleases_if_requested(solver, repo, package):
package.add_dependency("A")
package.add_dependency("B")
package.add_dependency("C", {"version": "*", "allows-prereleases": True})
package.add_dependency("C", {"version": "*", "allow-prereleases": True})
package_a = get_package("A", "1.0")
package_b = get_package("B", "1.0")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment