Skip to content

Commit 3d25a08

Browse files
committed
src: introduce process.release object
1 parent 00f822f commit 3d25a08

File tree

6 files changed

+120
-21
lines changed

6 files changed

+120
-21
lines changed

Makefile

+44-19
Original file line numberDiff line numberDiff line change
@@ -134,16 +134,16 @@ test-npm: $(NODE_EXE)
134134
rm -rf npm-cache npm-tmp npm-prefix
135135
mkdir npm-cache npm-tmp npm-prefix
136136
cd deps/npm ; npm_config_cache="$(shell pwd)/npm-cache" \
137-
npm_config_prefix="$(shell pwd)/npm-prefix" \
138-
npm_config_tmp="$(shell pwd)/npm-tmp" \
139-
../../$(NODE_EXE) cli.js install --ignore-scripts
137+
npm_config_prefix="$(shell pwd)/npm-prefix" \
138+
npm_config_tmp="$(shell pwd)/npm-tmp" \
139+
../../$(NODE_EXE) cli.js install --ignore-scripts
140140
cd deps/npm ; npm_config_cache="$(shell pwd)/npm-cache" \
141-
npm_config_prefix="$(shell pwd)/npm-prefix" \
142-
npm_config_tmp="$(shell pwd)/npm-tmp" \
143-
../../$(NODE_EXE) cli.js run-script test-all && \
144-
../../$(NODE_EXE) cli.js prune --prod && \
145-
cd ../.. && \
146-
rm -rf npm-cache npm-tmp npm-prefix
141+
npm_config_prefix="$(shell pwd)/npm-prefix" \
142+
npm_config_tmp="$(shell pwd)/npm-tmp" \
143+
../../$(NODE_EXE) cli.js run-script test-all && \
144+
../../$(NODE_EXE) cli.js prune --prod && \
145+
cd ../.. && \
146+
rm -rf npm-cache npm-tmp npm-prefix
147147

148148
test-npm-publish: $(NODE_EXE)
149149
npm_package_config_publishtest=true ./$(NODE_EXE) deps/npm/test/run.js
@@ -160,7 +160,7 @@ test-timers-clean:
160160

161161
apidoc_sources = $(wildcard doc/api/*.markdown)
162162
apidocs = $(addprefix out/,$(apidoc_sources:.markdown=.html)) \
163-
$(addprefix out/,$(apidoc_sources:.markdown=.json))
163+
$(addprefix out/,$(apidoc_sources:.markdown=.json))
164164

165165
apidoc_dirs = out/doc out/doc/api/ out/doc/api/assets
166166

@@ -244,7 +244,7 @@ release-only:
244244
@if [ "$(shell git status --porcelain | egrep -v '^\?\? ')" = "" ]; then \
245245
exit 0 ; \
246246
else \
247-
echo "" >&2 ; \
247+
echo "" >&2 ; \
248248
echo "The git repository is not clean." >&2 ; \
249249
echo "Please commit changes before building release tarball." >&2 ; \
250250
echo "" >&2 ; \
@@ -255,10 +255,26 @@ release-only:
255255
@if [ "$(NIGHTLY)" != "" -o "$(RELEASE)" = "1" ]; then \
256256
exit 0; \
257257
else \
258-
echo "" >&2 ; \
258+
echo "" >&2 ; \
259259
echo "#NODE_VERSION_IS_RELEASE is set to $(RELEASE)." >&2 ; \
260-
echo "Did you remember to update src/node_version.cc?" >&2 ; \
261-
echo "" >&2 ; \
260+
echo "Did you remember to update src/node_version.h?" >&2 ; \
261+
echo "" >&2 ; \
262+
exit 1 ; \
263+
fi
264+
@if [ "$(RELEASE_SOURCE_URL)" != "" ]; then \
265+
exit 0; \
266+
else \
267+
echo "" >&2 ; \
268+
echo "#RELEASE_SOURCE_URL is not set." >&2 ; \
269+
echo "" >&2 ; \
270+
exit 1 ; \
271+
fi
272+
@if [ "$(RELEASE_HEADERS_URL)" != "" ]; then \
273+
exit 0; \
274+
else \
275+
echo "" >&2 ; \
276+
echo "#RELEASE_HEADERS_URL is not set." >&2 ; \
277+
echo "" >&2 ; \
262278
exit 1 ; \
263279
fi
264280

@@ -267,10 +283,14 @@ pkg: $(PKG)
267283
$(PKG): release-only
268284
rm -rf $(PKGDIR)
269285
rm -rf out/deps out/Release
270-
$(PYTHON) ./configure --dest-cpu=ia32 --tag=$(TAG)
286+
$(PYTHON) ./configure --dest-cpu=ia32 --tag=$(TAG) \
287+
--release-source-url=$(RELEASE_SOURCE_URL) \
288+
--release-headers-url=$(RELEASE_HEADERS_URL)
271289
$(MAKE) install V=$(V) DESTDIR=$(PKGDIR)/32
272290
rm -rf out/deps out/Release
273-
$(PYTHON) ./configure --dest-cpu=x64 --tag=$(TAG)
291+
$(PYTHON) ./configure --dest-cpu=x64 --tag=$(TAG) \
292+
--release-source-url=$(RELEASE_SOURCE_URL) \
293+
--release-headers-url=$(RELEASE_HEADERS_URL)
274294
$(MAKE) install V=$(V) DESTDIR=$(PKGDIR)
275295
SIGN="$(APP_SIGN)" PKGDIR="$(PKGDIR)" bash tools/osx-codesign.sh
276296
lipo $(PKGDIR)/32/usr/local/bin/iojs \
@@ -308,7 +328,10 @@ tar: $(TARBALL)
308328
$(BINARYTAR): release-only
309329
rm -rf $(BINARYNAME)
310330
rm -rf out/deps out/Release
311-
$(PYTHON) ./configure --prefix=/ --dest-cpu=$(DESTCPU) --tag=$(TAG) $(CONFIG_FLAGS)
331+
$(PYTHON) ./configure --prefix=/ --dest-cpu=$(DESTCPU) \
332+
--tag=$(TAG) \
333+
--release-source-url=$(RELEASE_SOURCE_URL) \
334+
--release-headers-url=$(RELEASE_HEADERS_URL) $(CONFIG_FLAGS)
312335
$(MAKE) install DESTDIR=$(BINARYNAME) V=$(V) PORTABLE=1
313336
cp README.md $(BINARYNAME)
314337
cp LICENSE $(BINARYNAME)
@@ -326,7 +349,9 @@ binary: $(BINARYTAR)
326349
$(PKGSRC): release-only
327350
rm -rf dist out
328351
$(PYTHON) configure --prefix=/ \
329-
--dest-cpu=$(DESTCPU) --tag=$(TAG) $(CONFIG_FLAGS)
352+
--dest-cpu=$(DESTCPU) --tag=$(TAG) \
353+
--release-source-url=$(RELEASE_SOURCE_URL) \
354+
--release-headers-url=$(RELEASE_HEADERS_URL) $(CONFIG_FLAGS)
330355
$(MAKE) install DESTDIR=dist
331356
(cd dist; find * -type f | sort) > packlist
332357
pkg_info -X pkg_install | \
@@ -380,7 +405,7 @@ bench-all: bench bench-misc bench-array bench-buffer bench-url bench-events
380405
bench: bench-net bench-http bench-fs bench-tls
381406

382407
bench-http-simple:
383-
benchmark/http_simple_bench.sh
408+
benchmark/http_simple_bench.sh
384409

385410
bench-idle:
386411
./$(NODE_EXE) benchmark/idle_server.js &

configure

+30
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,21 @@ parser.add_option('--tag',
197197
dest='tag',
198198
help='custom build tag')
199199

200+
parser.add_option('--release-source-url',
201+
action='store',
202+
dest='release_source_url',
203+
help='custom url for process.release.sourceUrl')
204+
205+
parser.add_option('--release-headers-url',
206+
action='store',
207+
dest='release_headers_url',
208+
help='custom url for process.release.headersUrl')
209+
210+
parser.add_option('--release-lib-url',
211+
action='store',
212+
dest='release_lib_url',
213+
help='custom url for process.release.libUrl. Only valid on Windows.')
214+
200215
parser.add_option('--v8-options',
201216
action='store',
202217
dest='v8_options',
@@ -555,6 +570,21 @@ def configure_node(o):
555570
else:
556571
o['variables']['node_tag'] = ''
557572

573+
if options.release_source_url:
574+
o['variables']['node_release_source_url'] = options.release_source_url
575+
else:
576+
o['variables']['node_release_source_url'] = ''
577+
578+
if options.release_headers_url:
579+
o['variables']['node_release_headers_url'] = options.release_headers_url
580+
else:
581+
o['variables']['node_release_headers_url'] = ''
582+
583+
if options.release_lib_url:
584+
o['variables']['node_release_lib_url'] = '-' + options.release_lib_url
585+
else:
586+
o['variables']['node_release_lib_url'] = ''
587+
558588
if options.v8_options:
559589
o['variables']['node_v8_options'] = options.v8_options.replace('"', '\\"')
560590

node.gyp

+15
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,21 @@
172172
],
173173

174174
'conditions': [
175+
[ 'node_release_source_url!=""', {
176+
'defines': [
177+
'NODE_RELEASE_SOURCE_URL="<(node_release_source_url)"',
178+
]
179+
}],
180+
[ 'node_release_headers_url!=""', {
181+
'defines': [
182+
'NODE_RELEASE_HEADERS_URL="<(node_release_headers_url)"',
183+
]
184+
}],
185+
[ 'node_release_lib_url!=""', {
186+
'defines': [
187+
'NODE_RELEASE_LIB_URL="<(node_release_lib_url)"',
188+
]
189+
}],
175190
[ 'v8_enable_i18n_support==1', {
176191
'defines': [ 'NODE_HAVE_I18N_SUPPORT=1' ],
177192
'dependencies': [

src/node.cc

+24
Original file line numberDiff line numberDiff line change
@@ -2613,6 +2613,30 @@ void SetupProcessObject(Environment* env,
26132613
"platform",
26142614
OneByteString(env->isolate(), NODE_PLATFORM));
26152615

2616+
// process.release
2617+
Local<Object> release = Object::New(env->isolate());
2618+
READONLY_PROPERTY(process, "release", release);
2619+
2620+
READONLY_PROPERTY(release, "name", OneByteString(env->isolate(), "iojs"));
2621+
2622+
#if defined(NODE_RELEASE_SOURCE_URL)
2623+
READONLY_PROPERTY(release,
2624+
"sourceUrl",
2625+
OneByteString(env->isolate(), NODE_RELEASE_SOURCE_URL));
2626+
#endif
2627+
2628+
#if defined(NODE_RELEASE_HEADERS_URL)
2629+
READONLY_PROPERTY(release,
2630+
"headersUrl",
2631+
OneByteString(env->isolate(), NODE_RELEASE_HEADERS_URL));
2632+
#endif
2633+
2634+
#if defined(NODE_RELEASE_LIB_URL)
2635+
READONLY_PROPERTY(release,
2636+
"libUrl",
2637+
OneByteString(env->isolate(), NODE_RELEASE_LIB_URL));
2638+
#endif
2639+
26162640
// process.argv
26172641
Local<Array> arguments = Array::New(env->isolate(), argc);
26182642
for (int i = 0; i < argc; ++i) {

src/node_version.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#define NODE_MINOR_VERSION 0
66
#define NODE_PATCH_VERSION 5
77

8-
#define NODE_VERSION_IS_RELEASE 0
8+
#define NODE_VERSION_IS_RELEASE 1
99

1010
#ifndef NODE_STRINGIFY
1111
#define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)

vcbuild.bat

+6-1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ set noperfctr_arg=
3636
set noperfctr_msi_arg=
3737
set i18n_arg=
3838
set download_arg=
39+
set release_urls_arg=
3940

4041
:next-arg
4142
if "%1"=="" goto args-done
@@ -87,6 +88,10 @@ if "%i18n_arg%"=="full-icu" set i18n_arg=--with-intl=full-icu
8788
if "%i18n_arg%"=="small-icu" set i18n_arg=--with-intl=small-icu
8889
if "%i18n_arg%"=="intl-none" set i18n_arg=--with-intl=none
8990

91+
if defined RELEASE_SOURCE_URL set release_urls_arg=--release-source-url=%RELEASE_SOURCE_URL%
92+
if defined RELEASE_HEADERS_URL set release_urls_arg=%release_urls_arg% --release-headers-url=%RELEASE_HEADERS_URL%
93+
if defined RELEASE_LIB_URL set release_urls_arg=%release_urls_arg% --release-lib-url=%RELEASE_LIB_URL%
94+
9095
:project-gen
9196
@rem Skip project generation if requested.
9297
if defined noprojgen goto msbuild
@@ -96,7 +101,7 @@ if defined NIGHTLY set TAG=nightly-%NIGHTLY%
96101
@rem Generate the VS project.
97102
SETLOCAL
98103
if defined VS100COMNTOOLS call "%VS100COMNTOOLS%\VCVarsQueryRegistry.bat"
99-
python configure %download_arg% %i18n_arg% %debug_arg% %snapshot_arg% %noetw_arg% %noperfctr_arg% --dest-cpu=%target_arch% --tag=%TAG%
104+
python configure %download_arg% %i18n_arg% %debug_arg% %snapshot_arg% %noetw_arg% %noperfctr_arg% %release_urls% --dest-cpu=%target_arch% --tag=%TAG%
100105
if errorlevel 1 goto create-msvs-files-failed
101106
if not exist node.sln goto create-msvs-files-failed
102107
echo Project files generated.

0 commit comments

Comments
 (0)