Relax poetry-core lower bound to 1.1.0 (#15571)
See https://github.com/matrix-org/synapse/pull/15566#issuecomment-1543844104 Also check you can `pip install` in the old-deps CI jobpull/15580/head
parent
08297f2f18
commit
c96a1d2a27
|
@ -31,35 +31,6 @@ sed -i \
|
||||||
-e '/systemd/d' \
|
-e '/systemd/d' \
|
||||||
pyproject.toml
|
pyproject.toml
|
||||||
|
|
||||||
# Use poetry to do the installation. This ensures that the versions are all mutually
|
|
||||||
# compatible (as far the package metadata declares, anyway); pip's package resolver
|
|
||||||
# is more lax.
|
|
||||||
#
|
|
||||||
# Rather than `poetry install --no-dev`, we drop all dev dependencies and the dev-docs
|
|
||||||
# group from the toml file. This means we don't have to ensure compatibility between
|
|
||||||
# old deps and dev tools.
|
|
||||||
|
|
||||||
pip install toml wheel
|
|
||||||
|
|
||||||
REMOVE_DEV_DEPENDENCIES="
|
|
||||||
import toml
|
|
||||||
with open('pyproject.toml', 'r') as f:
|
|
||||||
data = toml.loads(f.read())
|
|
||||||
|
|
||||||
del data['tool']['poetry']['dev-dependencies']
|
|
||||||
del data['tool']['poetry']['group']['dev-docs']
|
|
||||||
|
|
||||||
with open('pyproject.toml', 'w') as f:
|
|
||||||
toml.dump(data, f)
|
|
||||||
"
|
|
||||||
python3 -c "$REMOVE_DEV_DEPENDENCIES"
|
|
||||||
|
|
||||||
pip install poetry==1.3.2
|
|
||||||
poetry lock
|
|
||||||
|
|
||||||
echo "::group::Patched pyproject.toml"
|
echo "::group::Patched pyproject.toml"
|
||||||
cat pyproject.toml
|
cat pyproject.toml
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
echo "::group::Lockfile after patch"
|
|
||||||
cat poetry.lock
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
|
@ -321,34 +321,25 @@ jobs:
|
||||||
with:
|
with:
|
||||||
python-version: '3.7'
|
python-version: '3.7'
|
||||||
|
|
||||||
# Calculating the old-deps actually takes a bunch of time, so we cache the
|
|
||||||
# pyproject.toml / poetry.lock. We need to cache pyproject.toml as
|
|
||||||
# otherwise the `poetry install` step will error due to the poetry.lock
|
|
||||||
# file being outdated.
|
|
||||||
#
|
|
||||||
# This caches the output of `Prepare old deps`, which should generate the
|
|
||||||
# same `pyproject.toml` and `poetry.lock` for a given `pyproject.toml` input.
|
|
||||||
- uses: actions/cache@v3
|
|
||||||
id: cache-poetry-old-deps
|
|
||||||
name: Cache poetry.lock
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
poetry.lock
|
|
||||||
pyproject.toml
|
|
||||||
key: poetry-old-deps2-${{ hashFiles('pyproject.toml') }}
|
|
||||||
- name: Prepare old deps
|
- name: Prepare old deps
|
||||||
if: steps.cache-poetry-old-deps.outputs.cache-hit != 'true'
|
if: steps.cache-poetry-old-deps.outputs.cache-hit != 'true'
|
||||||
run: .ci/scripts/prepare_old_deps.sh
|
run: .ci/scripts/prepare_old_deps.sh
|
||||||
|
|
||||||
# We only now install poetry so that `setup-python-poetry` caches the
|
# Note: we install using `pip` here, not poetry. `poetry install` ignores the
|
||||||
# right poetry.lock's dependencies.
|
# build-system section (https://github.com/python-poetry/poetry/issues/6154), but
|
||||||
- uses: matrix-org/setup-python-poetry@v1
|
# we explicitly want to test that you can `pip install` using the oldest version
|
||||||
with:
|
# of poetry-core and setuptools-rust.
|
||||||
python-version: '3.7'
|
- run: pip install .[all,test]
|
||||||
poetry-version: "1.3.2"
|
|
||||||
extras: "all test"
|
|
||||||
|
|
||||||
- run: poetry run trial -j6 tests
|
# We nuke the local copy, as we've installed synapse into the virtualenv
|
||||||
|
# (rather than use an editable install, which we no longer support). If we
|
||||||
|
# don't do this then python can't find the native lib.
|
||||||
|
- run: rm -rf synapse/
|
||||||
|
|
||||||
|
# Sanity check we can import/run Synapse
|
||||||
|
- run: python -m synapse.app.homeserver --help
|
||||||
|
|
||||||
|
- run: python -m twisted.trial -j6 tests
|
||||||
- name: Dump logs
|
- name: Dump logs
|
||||||
# Logs are most useful when the command fails, always include them.
|
# Logs are most useful when the command fails, always include them.
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Require at least poetry-core v1.2.0.
|
Require at least poetry-core v1.1.0.
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Require at least poetry-core v1.1.0.
|
|
@ -368,7 +368,7 @@ furo = ">=2022.12.7,<2024.0.0"
|
||||||
# system changes.
|
# system changes.
|
||||||
# We are happy to raise these upper bounds upon request,
|
# We are happy to raise these upper bounds upon request,
|
||||||
# provided we check that it's safe to do so (i.e. that CI passes).
|
# provided we check that it's safe to do so (i.e. that CI passes).
|
||||||
requires = ["poetry-core>=1.2.0,<=1.5.0", "setuptools_rust>=1.3,<=1.6.0"]
|
requires = ["poetry-core>=1.1.0,<=1.5.0", "setuptools_rust>=1.3,<=1.6.0"]
|
||||||
build-backend = "poetry.core.masonry.api"
|
build-backend = "poetry.core.masonry.api"
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue