File: Makefile

package info (click to toggle)
nodeenv 1.9.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 476 kB
  • sloc: python: 1,405; makefile: 138; sh: 1
file content (149 lines) | stat: -rw-r--r-- 4,515 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
.PHONY: default deploy deploy-github deploy-pypi update-pypi clean tests env
TEST_ENV=env
DEV_TEST_ENV=env-dev
SETUP=pip install -U pip setuptools && python setup.py install > /dev/null

default:
	: do nothing when dpkg-buildpackage runs this project Makefile

deploy-github:
	git tag `grep "nodeenv_version =" nodeenv.py | grep -o -E '[0-9]\.[0-9]{1,2}\.[0-9]{1,2}'`
	git push --tags origin master

deploy-pypi:
	rm -rf dist
	python setup.py sdist bdist_wheel
	twine upload --repository pypi dist/*

update-pypi:
	python setup.py register

deploy: contributors deploy-github deploy-pypi

clean:
	@rm -rf nodeenv.egg-info/
	@rm -rf dist/
	@rm -rf build/
	@rm -rf ${TEST_ENV}/
	@rm -rf nodeenv/

clean-test-env:
	@rm -rf ${TEST_ENV}

# https://virtualenv.pypa.io/en/legacy/reference.html#cmdoption-no-site-packages
# https://github.com/pypa/virtualenv/issues/1681
setup-test-env:
	@virtualenv ${TEST_ENV} > /dev/null 2>&1

env: clean-test-env setup-test-env
	@. ${TEST_ENV}/bin/activate                && \
		python setup.py install

# https://virtualenv.pypa.io/en/legacy/reference.html#cmdoption-no-site-packages
# https://github.com/pypa/virtualenv/issues/1681
env-dev:
	@rm -rf ${DEV_TEST_ENV}                           && \
		virtualenv ${DEV_TEST_ENV} 	                  && \
		. ${DEV_TEST_ENV}/bin/activate                && \
		pip install -r requirements-dev.txt

test1: clean clean-test-env setup-test-env
	@echo " ="
	@echo " = test1: separate nodejs's env"
	@echo " ="
	@. ${TEST_ENV}/bin/activate           && \
		${SETUP}           				  && \
		nodeenv -j 4 nodeenv

test2: clean clean-test-env setup-test-env
	@echo " ="
	@echo " = test2: the same virtualenv's env, with 4 jobs"
	@echo " ="
	@. ${TEST_ENV}/bin/activate           && \
		${SETUP}           				  && \
		nodeenv -j 4 -p

test3: clean clean-test-env setup-test-env
	@echo " ="
	@echo " = test3: the same virtualenv's env, without any params"
	@echo " ="
	@. ${TEST_ENV}/bin/activate           && \
		${SETUP}           				  && \
		nodeenv -p

# https://github.com/ekalinin/nodeenv/issues/43
test4: clean clean-test-env
	@echo " ="
	@echo " = test4: system nodejs's for python3.9"
	@echo " ="
	@virtualenv --python=python3.9 ${TEST_ENV}    			    && \
		. ${TEST_ENV}/bin/activate                              && \
		${SETUP}           				  						&& \
		nodeenv -p --node=system

test5: clean clean-test-env
	@echo " ="
	@echo " = test5: prebuilt nodejs's env for python2"
	@echo " ="
	@virtualenv --python=python2.7 ${TEST_ENV}  && \
		. ${TEST_ENV}/bin/activate              && \
		${SETUP}           				  		&& \
		nodeenv -p --prebuilt

test7: clean clean-test-env setup-test-env
	@echo " ="
	@echo " = test7: freeze for global installation"
	@echo " ="
	@. ${TEST_ENV}/bin/activate           && \
		${SETUP}                          && \
		nodeenv -j 4 -p --prebuilt        && \
		. ${TEST_ENV}/bin/activate        && \
		npm install -g sitemap 			  && \
		npm -v                            && \
		node -v                           && \
		test "`freeze | grep -v corepack | wc -l`" = "       1";

test8: clean clean-test-env setup-test-env
	@echo " ="
	@echo " = test8: unicode paths, #49"
	@echo " ="
	@. ${TEST_ENV}/bin/activate           && \
		${SETUP}                          && \
		rm -rf öäü && mkdir öäü && cd öäü && \
		nodeenv -j 4 --prebuilt env       && \
		rm -rf öäü

test9: clean clean-test-env setup-test-env
	@echo " ="
	@echo " = test9: unicode paths, #187"
	@echo " ="
	@. ${TEST_ENV}/bin/activate                   			   && \
		${SETUP}           				  					   && \
		rm -rf "test dir" && mkdir "test dir" && cd "test dir" && \
		nodeenv -j 4 --prebuilt env       && \
		rm -rf "test dir"

test10: clean clean-test-env setup-test-env
	@echo " ="
	@echo " = test10: symlink does not fail if npm already exists, #189"
	@echo " ="
	@. ${TEST_ENV}/bin/activate           && \
		${SETUP}           				  && \
		nodeenv -j 4 -p --prebuilt        && \
		nodeenv -j 4 -p --prebuilt

tests: test1 test2 test3 test4 test7 test8 test9 test10 clean

ut: env-dev
	@. ${DEV_TEST_ENV}/bin/activate && tox -e py39

contributors:
	@echo "Nodeenv is written and maintained by Eugene Kalinin." > AUTHORS
	@echo "" >> AUTHORS
	@echo "Patches and Suggestions" >> AUTHORS
	@echo '```````````````````````' >> AUTHORS
	@echo "" >> AUTHORS
	@git log --raw | grep "^Author: " | \
		sort | uniq -c | sort -n -r | \
		cut -d ':' -f 2 | sed 's/^/- /' | \
		cut -d '<' -f1 | uniq | grep -v Kalinin | sed 's/ *$$//g' >> AUTHORS