diff --git a/Changes.md b/Changes.md
index cf9be2e84374..9c090b281cef 100644
--- a/Changes.md
+++ b/Changes.md
@@ -2,6 +2,43 @@
## H2O
+### 3.42.0.1 - 6/21/2023
+
+Download at: http://h2o-release.s3.amazonaws.com/h2o/rel-3.42.0/1/index.html
+
+#### Bug
+- [[PUBDEV-9097]](https://h2oai.atlassian.net/browse/PUBDEV-9097) - Fixed Infogram cross-validation with weights.
+- [[PUBDEV-9096]](https://h2oai.atlassian.net/browse/PUBDEV-9096) - Updated R package maintainer.
+- [[PUBDEV-9087]](https://h2oai.atlassian.net/browse/PUBDEV-9087) - Fixed leaks in GLM’s Negative Binomial estimation.
+
+#### Improvement
+- [[PUBDEV-9085]](https://h2oai.atlassian.net/browse/PUBDEV-9085) - Changed `warning` tag to `info` tag when weights are not provided during validation/test dataset scoring when weights are present in training.
+- [[PUBDEV-9081]](https://h2oai.atlassian.net/browse/PUBDEV-9081) - Removed support for Python 2.7 and 3.5.
+- [[PUBDEV-8985]](https://h2oai.atlassian.net/browse/PUBDEV-8985) - Upgraded the default parquet library to 1.12.3 for standalone jar.
+- [[PUBDEV-8018]](https://h2oai.atlassian.net/browse/PUBDEV-8018) - Upgraded XGBoost to version 1.6.1.
+
+#### New Feature
+- [[PUBDEV-8947]](https://h2oai.atlassian.net/browse/PUBDEV-8947) - Implemented AIC metric for all GLM model families.
+- [[PUBDEV-8899]](https://h2oai.atlassian.net/browse/PUBDEV-8899) - Implemented Tweedie variance power maximum likelihood estimation for GLM.
+- [[PUBDEV-8793]](https://h2oai.atlassian.net/browse/PUBDEV-8793) - Added ability to convert H2OAssembly to a MOJO2 artifact.
+- [[PUBDEV-8691]](https://h2oai.atlassian.net/browse/PUBDEV-8691) - Implemented new Decision Tree algorithm.
+
+#### Docs
+- [[issue-15474]](https://github.com/h2oai/h2o-3/issues/15474) - Added link to AutoML Wave app from AutoML user guide.
+- [[PUBDEV-9106]](https://h2oai.atlassian.net/browse/PUBDEV-9106) - Added documentation on H2OAssembly to MOJO 2 export functionality.
+- [[PUBDEV-9104]](https://h2oai.atlassian.net/browse/PUBDEV-9104) - Added algorithm page in user guide for new Decision Tree algorithm.
+- [[PUBDEV-9090]](https://h2oai.atlassian.net/browse/PUBDEV-9090) - Added AIC metric support for all GLM families to GLM user guide page and GLM booklet.
+- [[PUBDEV-9088]](https://h2oai.atlassian.net/browse/PUBDEV-9088) - Updated authors and editors for GLM booklet.
+- [[PUBDEV-8894]](https://h2oai.atlassian.net/browse/PUBDEV-8894) - Added documentation on Tweedie variance power maximum likelihood estimation to GLM booklet and user guide.
+- [[PUBDEV-8461]](https://h2oai.atlassian.net/browse/PUBDEV-8461) - Improved user guide documentation for Generalized Additive Models algorithm.
+
+#### Security
+- [[PUBDEV-9112]](https://h2oai.atlassian.net/browse/PUBDEV-9112) - Addressed CVE-2023-2976 in h2o-steam.jar.
+- [[PUBDEV-9105]](https://h2oai.atlassian.net/browse/PUBDEV-9105) - Addressed CVE-2020-29582 in h2o-steam.jar.
+- [[PUBDEV-9103]](https://h2oai.atlassian.net/browse/PUBDEV-9103) - Addressed CVE-2023-26048 and CVE-2023-26049 by upgrading Jetty for minimal and steam jar.
+- [[PUBDEV-9100]](https://h2oai.atlassian.net/browse/PUBDEV-9100) - Addressed PRISMA-2023-0067 in h2o-steam.jar.
+- [[PUBDEV-9080]](https://h2oai.atlassian.net/browse/PUBDEV-9080) - Addressed CVE-2023-1436, CVE-2022-45693, CVE-2022-45685, and CVE-2022-40150 by upgrading org.codehaus.jettison:jettison in h2o-steam.jar.
+
### Kurka (3.40.0.4) - 4/28/2023
Download at: http://h2o-release.s3.amazonaws.com/h2o/rel-zz_kurka/4/index.html
diff --git a/h2o-assemblies/main/build.gradle b/h2o-assemblies/main/build.gradle
index 8a4bae76c045..611f10dedd30 100644
--- a/h2o-assemblies/main/build.gradle
+++ b/h2o-assemblies/main/build.gradle
@@ -27,7 +27,8 @@ dependencies {
api('com.fasterxml.jackson.core:jackson-databind:2.13.4.2') {
because 'Fixes CVE-2022-42003'
}
- api('com.google.guava:guava:31.1-jre') {
+ api('com.google.guava:guava:32.0.1-jre') {
+ because 'Fixes CVE-2023-2976'
because 'Fixes CVE-2020-8908'
because 'Fixes CVE-2018-10237'
}
diff --git a/h2o-assemblies/minimal/build.gradle b/h2o-assemblies/minimal/build.gradle
index 10bb6567cdcf..2a0fe0b54359 100644
--- a/h2o-assemblies/minimal/build.gradle
+++ b/h2o-assemblies/minimal/build.gradle
@@ -23,7 +23,8 @@ dependencies {
api project(":h2o-persist-http")
constraints {
- api('com.google.guava:guava:31.1-jre') {
+ api('com.google.guava:guava:32.0.1-jre') {
+ because 'Fixes CVE-2023-2976'
because 'Fixes CVE-2020-8908'
because 'Fixes CVE-2018-10237'
}
diff --git a/h2o-assemblies/steam/build.gradle b/h2o-assemblies/steam/build.gradle
index ff659360b260..7de32060f6f4 100644
--- a/h2o-assemblies/steam/build.gradle
+++ b/h2o-assemblies/steam/build.gradle
@@ -76,7 +76,8 @@ dependencies {
api('org.jetbrains.kotlin:kotlin-stdlib:1.4.32') {
because 'Fixes CVE-2020-29582'
}
- api('com.google.guava:guava:31.1-jre') {
+ api('com.google.guava:guava:32.0.1-jre') {
+ because 'Fixes CVE-2023-2976'
because 'Fixes CVE-2020-8908'
because 'Fixes CVE-2018-10237'
}
diff --git a/h2o-core/src/main/java/water/parser/ARFFParser.java b/h2o-core/src/main/java/water/parser/ARFFParser.java
index a21b3a8609dc..680b4db3d991 100644
--- a/h2o-core/src/main/java/water/parser/ARFFParser.java
+++ b/h2o-core/src/main/java/water/parser/ARFFParser.java
@@ -108,7 +108,7 @@ static ParseSetup guessSetup(ByteVec bv, byte[] bits, byte sep, boolean singleQu
}
data[0] = determineTokens(datalines[0], sep, singleQuotes, escapechar);
ncols = (ncols > 0) ? ncols : data[0].length;
- labels = null;
+ labels = labels[0] == null ? null : labels;
} else { // 2 or more lines
if (sep == GUESS_SEP) { // first guess the separator
//FIXME if last line is incomplete, this logic fails
diff --git a/h2o-py/tests/testdir_parser/pyunit_parse_single_entry_arff.py b/h2o-py/tests/testdir_parser/pyunit_parse_single_entry_arff.py
new file mode 100644
index 000000000000..125c6c104a14
--- /dev/null
+++ b/h2o-py/tests/testdir_parser/pyunit_parse_single_entry_arff.py
@@ -0,0 +1,33 @@
+import os
+import sys
+import tempfile
+
+sys.path.insert(1, "../../")
+import h2o
+from tests import pyunit_utils
+
+
+def test_single_entry_arff_file():
+ with open(pyunit_utils.locate("smalldata/junit/arff/iris.arff"), "r") as input_:
+ arff = input_.readlines()
+ data_start = arff.index("@DATA\n")
+ subsample = arff[:data_start + 2]
+ print(subsample[-3:])
+ _fd, tmp = tempfile.mkstemp(".arff")
+ try:
+ with open(tmp, "w") as output:
+ output.write(''.join(subsample))
+
+ train = h2o.import_file(pyunit_utils.locate("smalldata/junit/arff/iris.arff"))
+ test = h2o.import_file(tmp)
+
+ print(f"{train.columns} == {test.columns}: {train.columns == test.columns}")
+ assert train.columns == test.columns
+ finally:
+ os.unlink(tmp)
+
+
+if __name__ == "__main__":
+ pyunit_utils.standalone_test(test_single_entry_arff_file)
+else:
+ test_single_entry_arff_file()