Skip to content

Commit a62bd2c

Browse files
author
jgustave
committed
Merge remote-tracking branch 'upstream/master'
2 parents e5b3867 + 54109d3 commit a62bd2c

File tree

380 files changed

+11541
-5015
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

380 files changed

+11541
-5015
lines changed

.classpath

+1
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,6 @@
3434
<classpathentry kind="lib" path="lib/jogamp/gluegen-rt-natives-linux-amd64.jar"/>
3535
<classpathentry kind="lib" path="lib/jogamp/gluegen-rt.jar" sourcepath="lib/jogamp/gluegen-rt-sources.jar"/>
3636
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/python) interpreter library"/>
37+
<classpathentry kind="lib" path="lib/joda/joda-time-2.3.jar"/>
3738
<classpathentry kind="output" path="target/classes"/>
3839
</classpath>

Makefile

+18-41
Original file line numberDiff line numberDiff line change
@@ -74,51 +74,43 @@ default: nightly_build_stuff
7474

7575
nightly_build_stuff:
7676
@echo PROJECT_VERSION is $(PROJECT_VERSION)
77-
$(MAKE) clean PROJECT_VERSION=$(PROJECT_VERSION)
77+
$(MAKE) clean PROJECT_VERSION=$(PROJECT_VERSION) 1> /dev/null
78+
@mkdir -p target/logs
7879
$(MAKE) build PROJECT_VERSION=$(PROJECT_VERSION)
7980
$(MAKE) docs-website PROJECT_VERSION=$(PROJECT_VERSION)
8081
@echo
8182
@echo Build completed successfully.
8283

83-
MILLIS_SINCE_EPOCH = $(shell date '+%s')
84-
8584
build:
86-
@echo
87-
@echo "PHASE: Building R inner package..."
88-
@echo
89-
ifeq ($(BUILD_NUMBER),99999)
90-
$(MAKE) -C R build_inner PROJECT_VERSION=$(PROJECT_VERSION).$(MILLIS_SINCE_EPOCH)
91-
else
92-
$(MAKE) -C R build_inner PROJECT_VERSION=$(PROJECT_VERSION)
93-
endif
9485
@echo
9586
@echo "PHASE: Creating ${BUILD_VERSION_JAVA_FILE}..."
9687
@echo
97-
$(MAKE) build_version PROJECT_VERSION=$(PROJECT_VERSION)
88+
$(MAKE) build_version PROJECT_VERSION=$(PROJECT_VERSION) 1> target/logs/version_build.log
89+
9890
@echo
9991
@echo "PHASE: Building H2O..."
10092
@echo
10193
$(MAKE) build_h2o PROJECT_VERSION=$(PROJECT_VERSION)
94+
10295
@echo
103-
@echo "PHASE: Building Shalala..."
104-
@echo
105-
$(MAKE) -C h2o-scala PROJECT_VERSION=$(PROJECT_VERSION)
106-
@echo
107-
@echo "PHASE: Building R outer package..."
96+
@echo "PHASE: Building hadoop driver..."
10897
@echo
109-
$(MAKE) -C R build_outer PROJECT_VERSION=$(PROJECT_VERSION)
98+
$(MAKE) -C hadoop build PROJECT_VERSION=$(PROJECT_VERSION) 1> target/logs/hadoop_build.log
99+
110100
@echo
111-
@echo "PHASE: Building hadoop driver..."
101+
@echo "PHASE: Building Shalala..."
112102
@echo
113-
$(MAKE) -C hadoop build PROJECT_VERSION=$(PROJECT_VERSION)
103+
$(MAKE) -C h2o-scala PROJECT_VERSION=$(PROJECT_VERSION)
104+
114105
@echo
115-
@echo "PHASE: Building launcher..."
106+
@echo "PHASE: Building R package..."
116107
@echo
117-
$(MAKE) -C launcher build PROJECT_VERSION=$(PROJECT_VERSION)
108+
$(MAKE) -C R PROJECT_VERSION=$(PROJECT_VERSION) 1> target/logs/r_build.log
109+
118110
@echo
119111
@echo "PHASE: Building zip package..."
120112
@echo
121-
$(MAKE) build_package PROJECT_VERSION=$(PROJECT_VERSION)
113+
$(MAKE) build_package PROJECT_VERSION=$(PROJECT_VERSION) 1> target/logs/package_build.log
122114

123115
BUILD_BRANCH=$(shell git branch | grep '*' | sed 's/* //')
124116
BUILD_HASH=$(shell git log -1 --format="%H")
@@ -162,7 +154,7 @@ build_package:
162154
cp -p LICENSE.txt target/h2o-$(PROJECT_VERSION)
163155
mkdir target/h2o-$(PROJECT_VERSION)/ec2
164156
cp -p ec2/*.py ec2/*.sh ec2/README.txt target/h2o-$(PROJECT_VERSION)/ec2
165-
(cd target; zip -r h2o-$(PROJECT_VERSION).zip h2o-$(PROJECT_VERSION))
157+
(cd target; zip -q -r h2o-$(PROJECT_VERSION).zip h2o-$(PROJECT_VERSION))
166158
rm -fr target/h2o-$(PROJECT_VERSION)
167159
rm -fr target/ci
168160
cp -rp ci target
@@ -185,7 +177,7 @@ docs-website: dw_announce
185177

186178
docs-website-clean:
187179
else
188-
docs-website: dw_announce dw_1 dw_2 dw_3 dw_4
180+
docs-website: dw_announce dw_1 dw_2 dw_3
189181

190182
docs-website-clean:
191183
rm -rf h2o-docs/source/developuser/DocGen
@@ -228,22 +220,7 @@ dw_3:
228220
cp -p docs/H2O_on_Hadoop_0xdata.pdf $(BUILD_WEBSITE_DIR)/bits/hadoop
229221
mkdir -p $(BUILD_WEBSITE_DIR)/bits/ec2
230222
cp -p ec2/README.txt $(BUILD_WEBSITE_DIR)/bits/ec2
231-
232-
# Note: to get pdfunite on a mac, try:
233-
# $ brew install poppler
234-
#
235-
PDFLATEX=$(shell which pdflatex)
236-
PDFUNITE=$(shell which pdfunite)
237-
dw_4:
238-
ifeq ($(PDFLATEX),)
239-
@echo pdflatex not found, skipping...
240-
else
241-
ifeq ($(PDFUNITE),)
242-
@echo pdfunite not found, skipping...
243-
else
244-
pdfunite R/h2o-package/h2o_package.pdf R/h2oRClient-package/h2oRClient_package.pdf $(BUILD_WEBSITE_DIR)/bits/h2oRjoin.pdf
245-
endif
246-
endif
223+
cp -p R/h2o-package/h2o_package.pdf $(BUILD_WEBSITE_DIR)/bits/h2o_package.pdf
247224

248225
#
249226
# Set appropriately for your data size to quickly try out H2O.

R/.gitignore

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
*.pdf
2-
h2oRClient-package/DESCRIPTION
3-
h2oRClient-package/h2oRClient_package.pdf
4-
h2oRClient-package/man/h2oRClient-package.Rd
52
h2o-package/DESCRIPTION
6-
h2o-package/h2o_package.pdf
73
h2o-package/man/h2o-package.Rd
4+
h2o-package/h2o_package.pdf
85
h2o-package/inst/java

R/H2OTestDemo.R

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
source("H2O_Load.R")
66
# library(h2o)
77
localH2O = new("H2OClient", ip = "localhost", port = 54321)
8-
h2o.checkClient(localH2O)
8+
# h2o.checkClient(localH2O)
99

1010
# Test using prostate cancer data set
1111
prostate.hex = h2o.importURL(localH2O, path = "https://raw.github.com/0xdata/h2o/master/smalldata/logreg/prostate.csv", key = "prostate.hex")

R/H2O_Load.R

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
source("h2oRClient-package/R/Internal.R")
2-
source("h2oRClient-package/R/Classes.R")
3-
source("h2oRClient-package/R/ParseImport.R")
4-
source("h2oRClient-package/R/Algorithms.R")
1+
source("h2o-package/R/Internal.R")
2+
source("h2o-package/R/Classes.R")
3+
source("h2o-package/R/ParseImport.R")
4+
source("h2o-package/R/Algorithms.R")

R/Makefile

+32-89
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,26 @@ REPO_PATH_MAC = bin/macosx/contrib/$(R_VERSION)
66
TMP_BUILD_DIR = tmp_build
77
ifneq ($(OS),Windows_NT)
88
OS := $(shell uname)
9-
UNAME_P := $(shell uname -p)
9+
UNAME_P := $(shell uname -p | sed 's/unknown/x86_64/')
1010
else
1111
# For windows NT the shell is odd. Cygwin 'shell uname' returns CYGWIN_NT-6.1-WOW64
1212
# which is not really what we want. The normal CMD shell does something else.
1313
# So don't ask for 'uname' if we already got Windows_NT
1414
endif
1515

16-
H2O_WRAPPER_SOURCE_FILE = h2o_$(PROJECT_VERSION).tar.gz
17-
H2O_WRAPPER_LINUX_FILE = h2o_$(PROJECT_VERSION)_R_$(UNAME_P)-pc-linux-gnu.tar.gz
18-
H2O_WRAPPER_MAC_FILE = h2o_$(PROJECT_VERSION).tgz
19-
H2O_WRAPPER_WINDOWS_FILE = h2o_$(PROJECT_VERSION).zip
20-
21-
H2O_RCLIENT_SOURCE_FILE = h2oRClient_$(PROJECT_VERSION).tar.gz
22-
H2O_RCLIENT_LINUX_FILE = h2oRClient_$(PROJECT_VERSION)_R_$(UNAME_P)-pc-linux-gnu.tar.gz
23-
H2O_RCLIENT_MAC_FILE = h2oRClient_$(PROJECT_VERSION).tgz
24-
H2O_RCLIENT_WINDOWS_FILE = h2oRClient_$(PROJECT_VERSION).zip
16+
H2O_R_SOURCE_FILE = h2o_$(PROJECT_VERSION).tar.gz
17+
H2O_R_LINUX_FILE = h2o_$(PROJECT_VERSION)_R_$(UNAME_P)-pc-linux-gnu.tar.gz
18+
H2O_R_MAC_FILE = h2o_$(PROJECT_VERSION).tgz
19+
H2O_R_WINDOWS_FILE = h2o_$(PROJECT_VERSION).zip
2520

2621
ifeq ($(OS),Linux)
27-
H2O_RCLIENT_PKG_FILE = $(H2O_RCLIENT_LINUX_FILE)
28-
H2O_WRAPPER_PKG_FILE = $(H2O_WRAPPER_LINUX_FILE)
22+
H2O_R_PKG_FILE = $(H2O_R_LINUX_FILE)
2923
endif
3024
ifeq ($(OS),Darwin)
31-
H2O_RCLIENT_PKG_FILE = $(H2O_RCLIENT_MAC_FILE)
32-
H2O_WRAPPER_PKG_FILE = $(H2O_WRAPPER_MAC_FILE)
25+
H2O_R_PKG_FILE = $(H2O_R_MAC_FILE)
3326
endif
3427
ifeq ($(OS),Windows_NT)
35-
H2O_RCLIENT_PKG_FILE = $(H2O_RCLIENT_WINDOWS_FILE)
36-
H2O_WRAPPER_PKG_FILE = $(H2O_WRAPPER_WINDOWS_FILE)
28+
H2O_R_PKG_FILE = $(H2O_R_WINDOWS_FILE)
3729
endif
3830

3931
# Do a best-effort attempt to see if the R user has pdflatex installed
@@ -42,16 +34,24 @@ endif
4234
# But use the '-' to ignore failures and continue the build even if it does fail.
4335
PDFLATEX=$(shell which pdflatex)
4436

45-
build_outer:
37+
build_rh2o:
4638
sed 's/SUBST_PROJECT_VERSION/$(PROJECT_VERSION)/' h2o-DESCRIPTION.template > h2o-package/DESCRIPTION
4739
sed 's/SUBST_PROJECT_VERSION/$(PROJECT_VERSION)/' h2o-package.template > h2o-package/man/h2o-package.Rd
4840
ifeq ($(PDFLATEX),)
4941
@echo pdflatex not found, skipping pdf generation...
5042
else
5143
-R CMD Rd2pdf --force --output="h2o-package/h2o_package.pdf" --title="Package 'h2o'" --no-index --no-preview h2o-package/man 1> /dev/null
5244
endif
53-
mkdir -p h2o-package/inst/java/
54-
cp -f ../target/h2o.jar h2o-package/inst/java/h2o.jar
45+
rm -rf h2o-package/inst/java
46+
mkdir -p h2o-package/inst/java/tmp
47+
cp -f ../target/h2o.jar h2o-package/inst/java/tmp/h2o_full.jar
48+
(cd h2o-package/inst/java/tmp && jar xf h2o_full.jar)
49+
(cd h2o-package/inst/java/tmp && rm -fr hadoop/0.* hadoop/1.* hadoop/cdh[35]* hadoop/cdh4_yarn)
50+
(cd h2o-package/inst/java/tmp && rm -f h2o_full.jar)
51+
(cd h2o-package/inst/java/tmp && cp META-INF/MANIFEST.MF ..)
52+
(cd h2o-package/inst/java/tmp && rm -fr META-INF)
53+
(cd h2o-package/inst/java/tmp && jar cfm ../h2o.jar ../MANIFEST.MF *)
54+
rm -rf h2o-package/inst/java/tmp
5555
R CMD build h2o-package
5656

5757
# Create file with description of all packages
@@ -61,23 +61,23 @@ endif
6161
# Add to repo in target directory
6262
mkdir -p ../target/R/src/contrib
6363
cp -p README.txt ../target/R
64-
mv $(H2O_WRAPPER_SOURCE_FILE) ../target/R/src/contrib
64+
mv $(H2O_R_SOURCE_FILE) ../target/R/src/contrib
6565
cp -p PACKAGES PACKAGES.gz ../target/R/src/contrib
6666

6767
# Build binary for each OS
6868
rm -rf $(TMP_BUILD_DIR)
6969
mkdir -p $(TMP_BUILD_DIR)
70-
R CMD INSTALL -l $(TMP_BUILD_DIR) --build h2o-package
70+
[ -x "`which gnutar 2>/dev/null`" ] || echo 'Note: gnutar not found; package install in R may fail in the next step'
71+
R CMD INSTALL -l $(TMP_BUILD_DIR) --build h2o-package || echo 'If you got an error like "Dependency foo is not available for package h2o" you need to install the required R package by running R and executing the R command: install.packages("foo")'
7172

7273
ifneq ($(OS),Windows_NT)
73-
# rm -rf h2o
74-
tar zxvf $(H2O_WRAPPER_PKG_FILE)
75-
zip -r $(H2O_WRAPPER_WINDOWS_FILE) h2o
74+
tar zxf $(H2O_R_PKG_FILE)
75+
zip -q -r $(H2O_R_WINDOWS_FILE) h2o
7676
rm -rf h2o
7777

7878
# Create repo subdirectory for MacOSX
7979
mkdir -p ../target/R/$(REPO_PATH_MAC)
80-
mv $(H2O_WRAPPER_PKG_FILE) ../target/R/$(REPO_PATH_MAC)/$(H2O_WRAPPER_MAC_FILE)
80+
mv $(H2O_R_PKG_FILE) ../target/R/$(REPO_PATH_MAC)/$(H2O_R_MAC_FILE)
8181
cp -p PACKAGES PACKAGES.gz ../target/R/$(REPO_PATH_MAC)
8282

8383
rm -rf ../target/R/bin/macosx/contrib/2.15 ../target/R/bin/macosx/contrib/2.14 ../target/R/bin/macosx/contrib/2.13
@@ -88,7 +88,7 @@ endif
8888

8989
# Create repo subdirectory for Windows
9090
mkdir -p ../target/R/$(REPO_PATH_WIN)
91-
mv $(H2O_WRAPPER_WINDOWS_FILE) ../target/R/$(REPO_PATH_WIN)
91+
mv $(H2O_R_WINDOWS_FILE) ../target/R/$(REPO_PATH_WIN)
9292
mv PACKAGES PACKAGES.gz ../target/R/$(REPO_PATH_WIN)
9393

9494
rm -rf ../target/R/bin/windows/contrib/2.15 ../target/R/bin/windows/contrib/2.14 ../target/R/bin/windows/contrib/2.13
@@ -99,75 +99,18 @@ endif
9999
R CMD REMOVE -l $(TMP_BUILD_DIR) h2o
100100
rm -rf $(TMP_BUILD_DIR)
101101

102-
build_inner:
103-
sed 's/SUBST_PROJECT_VERSION/$(PROJECT_VERSION)/' h2oRClient-DESCRIPTION.template > h2oRClient-package/DESCRIPTION
104-
sed 's/SUBST_PROJECT_VERSION/$(PROJECT_VERSION)/' h2oRClient-package.template > h2oRClient-package/man/h2oRClient-package.Rd
105-
ifeq ($(PDFLATEX),)
106-
@echo pdflatex not found, skipping pdf generation...
107-
else
108-
-R CMD Rd2pdf --force --output="h2oRClient-package/h2oRClient_package.pdf" --title="Package 'h2oRClient'" --no-index --no-preview h2oRClient-package/man 1> /dev/null
109-
endif
110-
R CMD build h2oRClient-package
111-
echo h2oRClient_$(PROJECT_VERSION).tar.gz > info.txt
112-
# ifeq ($(OS),Windows_NT)
113-
# md5deep h2oRClient_$(PROJECT_VERSION).tar.gz | cut -d' ' -f1 >> info.txt
114-
# else
115-
# openssl md5 h2oRClient_$(PROJECT_VERSION).tar.gz | sed 's/.*= //' >> info.txt
116-
# endif
117-
118-
# Create file with description of all packages
119-
cp -p h2oRClient-package/DESCRIPTION PACKAGES
120-
gzip -c PACKAGES > PACKAGES.gz
121-
122-
# Add to resources directory
123-
mkdir -p ../lib/resources/R/src/contrib
124-
mv info.txt ../lib/resources/R/info.txt
125-
mv $(H2O_RCLIENT_SOURCE_FILE) ../lib/resources/R/src/contrib
126-
cp -p PACKAGES PACKAGES.gz ../lib/resources/R/src/contrib
127-
128-
# Build binary for each OS
129-
rm -rf $(TMP_BUILD_DIR)
130-
mkdir -p $(TMP_BUILD_DIR)
131-
R CMD INSTALL -l $(TMP_BUILD_DIR) --build h2oRClient-package
132-
133-
ifneq ($(OS),Windows_NT)
134-
# rm -rf h2oRClient
135-
tar zxvf $(H2O_RCLIENT_PKG_FILE)
136-
zip -r $(H2O_RCLIENT_WINDOWS_FILE) h2oRClient
137-
rm -rf h2oRClient
138-
139-
# Create repo subdirectory for MacOSX
140-
mkdir -p ../lib/resources/R/$(REPO_PATH_MAC)
141-
mv $(H2O_RCLIENT_PKG_FILE) ../lib/resources/R/$(REPO_PATH_MAC)/$(H2O_RCLIENT_MAC_FILE)
142-
cp -p PACKAGES PACKAGES.gz ../lib/resources/R/$(REPO_PATH_MAC)
143-
endif
144-
145-
# Create repo subdirectory for Windows
146-
mkdir -p ../lib/resources/R/$(REPO_PATH_WIN)
147-
mv $(H2O_RCLIENT_WINDOWS_FILE) ../lib/resources/R/$(REPO_PATH_WIN)
148-
mv PACKAGES PACKAGES.gz ../lib/resources/R/$(REPO_PATH_WIN)
149-
150-
# Create temporary directory for jarring later
151-
mkdir -p ../r_pack_tmp/resources
152-
cp -r ../lib/resources/R ../r_pack_tmp/resources
153-
154-
R CMD REMOVE -l $(TMP_BUILD_DIR) h2oRClient
155-
rm -rf $(TMP_BUILD_DIR)
102+
check:
103+
find h2o-package -name .DS_Store | xargs rm -f
104+
R CMD CHECK h2o-package
105+
curl -v http://localhost:54321/Shutdown.json
156106

157107
clean:
158-
rm -f h2oRClient-package/DESCRIPTION
159-
rm -f h2oRClient-package/h2oRClient_package.pdf
160-
rm -f h2oRClient-package/man/h2oRClient-package.Rd
161-
rm -f h2oRClient_*.tar.gz
162-
rm -f h2oRClient_*.tgz
163-
rm -f h2oRClient_*.zip
164108
rm -f h2o-package/DESCRIPTION
165109
rm -f h2o-package/h2o_package.pdf
166110
rm -f h2o-package/man/h2o-package.Rd
167-
rm -f h2o-package/inst/java/h2o.jar
111+
rm -fr h2o-package/inst/java
168112
rm -f h2o_*.tar.gz
169113
rm -f h2o_*.tgz
170114
rm -f h2o_*.zip
171-
rm -rf ../lib/resources/R
172115
rm -rf h2o
173-
rm -rf h2oRClient
116+
rm -rf h2oRClient-package

0 commit comments

Comments
 (0)