Skip to content

Commit e8534f2

Browse files
authored
Merge pull request #148 from rstudio/mbh-prerelease-unfuddle
Try installing pre-releases of only direct requirements
2 parents 16ea487 + 31e9ece commit e8534f2

File tree

6 files changed

+71
-18
lines changed

6 files changed

+71
-18
lines changed

.github/workflows/main.yml

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,26 @@ jobs:
6060
continue-on-error: true
6161
steps:
6262
- uses: actions/checkout@v2
63+
- run: git fetch --prune --unshallow
6364
- uses: actions/setup-python@v2
6465
with:
6566
python-version: 3.8.x
67+
- uses: actions/cache@v1
68+
with:
69+
path: ~/.cache/pip
70+
key: pip-ubuntu-latest-py3.8-${{ hashFiles('Pipfile.lock') }}
71+
restore-keys: |
72+
pip-ubuntu-latest-py3.8-${{ hashFiles('Pipfile.lock') }}
73+
pip-ubuntu-latest-py3.8-
74+
- uses: actions/cache@v1
75+
with:
76+
path: ~/.local/share/virtualenvs
77+
key: virtualenvs-ubuntu-latest-py3.8-${{ hashFiles('Pipfile.lock') }}
78+
restore-keys: |
79+
virtualenvs-ubuntu-latest-py3.8-${{ hashFiles('Pipfile.lock') }}
80+
virtualenvs-ubuntu-latest-py3.8-
6681
- run: pip install -U -I --pre pipenv pip
67-
- run: pipenv lock --dev --pre --requirements | awk -F= '{ print $1 }' >requirements-unlocked.txt
68-
- run: pipenv run pip install --pre -r requirements-unlocked.txt
69-
- run: pipenv run pip freeze
70-
- run: rm -vf requirements-unlocked.txt
82+
- run: make deps-prerelease
7183
- run: make fmt
7284
- run: make lint
7385
- run: pipenv run python setup.py --version

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
/.idea/
1010
/.jupyter/
1111
/.local/
12+
/.pipenv-requires
1213
/build/
1314
/dist/
1415
/node_modules/

Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ fmt-3.5: .fmt-unsupported
6565
@echo ERROR: This python version cannot run the fmting tools
6666
@exit 1
6767

68+
.PHONY: deps-prerelease
69+
deps-prerelease:
70+
pipenv run ./scripts/install-deps-prerelease
71+
6872
deps-%:
6973
$(RUNNER) 'pipenv run ./scripts/install-deps'
7074

scripts/install-deps

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
#!/usr/bin/env bash
22
set -o errexit
33
set -o pipefail
4-
set -o xtrace
54

6-
case "${PYTHON_VERSION}" in
7-
2* | 3.5*)
8-
pipenv install --skip-lock
9-
pipenv run pip install \
10-
pytest \
11-
pytest-cov \
12-
'coverage[toml]' \
13-
setuptools_scm
14-
;;
15-
*)
16-
pipenv install --dev
17-
;;
18-
esac
5+
main() {
6+
set -o xtrace
7+
8+
case "${PYTHON_VERSION}" in
9+
2* | 3.5*)
10+
pipenv install --skip-lock
11+
pipenv run pip install \
12+
pytest \
13+
pytest-cov \
14+
'coverage[toml]' \
15+
setuptools_scm
16+
;;
17+
*)
18+
pipenv install --dev
19+
;;
20+
esac
21+
}
22+
23+
main "${@}"

scripts/install-deps-prerelease

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#!/usr/bin/env bash
2+
set -o errexit
3+
set -o pipefail
4+
5+
main() {
6+
set -o xtrace
7+
8+
local top
9+
top="$(git rev-parse --show-toplevel)"
10+
11+
local pipenv_requires="${top}/.pipenv-requires"
12+
13+
pipenv install --dev
14+
_print_pipfile_packages >"${pipenv_requires}"
15+
pipenv run pip install -U --pre -r "${pipenv_requires}"
16+
rm -f "${pipenv_requires}"
17+
}
18+
19+
_print_pipfile_packages() {
20+
pipenv run python <<PYTHON
21+
import toml
22+
23+
for package in toml.load(open("${top}/Pipfile")).get("packages").keys():
24+
print(package)
25+
PYTHON
26+
}
27+
28+
main "${@}"

setup.cfg

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ install_requires =
2020
click>=7.0.0
2121
setup_requires =
2222
setuptools
23+
setuptools_scm>=3.4
24+
toml
25+
wheel
2326
packages = rsconnect
2427
python_requires = >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
2528
zip_safe = true

0 commit comments

Comments
 (0)