You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@toree.apache.org by lr...@apache.org on 2026/09/22 13:36:50 UTC
(incubator-toree) branch revert-apache-jar-prefix created (now 7cd3c80c)
This is an automated email from the ASF dual-hosted git repository.
lresende pushed a change to branch revert-apache-jar-prefix
in repository https://gitbox.apache.org/repos/asf/incubator-toree.git
at 7cd3c80c Drop assembly POM from pip package staging dirs
This branch includes the following new commits:
new 771aaac2 Revert apache- prefix on module/jar/Maven artifact names
new 213c81b8 Stop hardcoding 2.12 in README assembly jar examples
new 7cd3c80c Drop assembly POM from pip package staging dirs
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(incubator-toree) 01/03: Revert apache- prefix on module/jar/Maven artifact names
Posted by lr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
lresende pushed a commit to branch revert-apache-jar-prefix
in repository https://gitbox.apache.org/repos/asf/incubator-toree.git
commit 771aaac22be971a02a18847aa4eda2489db84c13
Author: Luciano Resende <lr...@apple.com>
AuthorDate: Tue Sep 22 13:44:25 2026 +0200
Revert apache- prefix on module/jar/Maven artifact names
Per dev@ list consensus (https://lists.apache.org/thread/spbg1z5yl5k4vpqvfgc7vopgg3cg9jwx),
the apache- prefix added to SBT project names, the assembly jars and
the Maven artifactId (432fbc5e, 2dca5e6a, 84bfc758) was unnecessary:
the jars already publish under the org.apache.toree groupId, so the
prefix on the artifact name itself was redundant per ASF policy.
Distribution artifact naming (dist/apache-toree-bin, apache-toree-src,
apache-toree-pip and the SVN staging layout) is unaffected, since ASF
release policy does require the full project name there.
The assembly jar name now also carries the Scala binary version,
matching the Spark/Hadoop/Flink convention Cheng Pan proposed on the
same thread (toree-assembly_2.12-<version>.jar), via a new
assemblyJarName setting since sbt-assembly's default omits it.
---
Makefile | 10 +++++-----
README.md | 12 ++++++------
RELEASE_NOTES.md | 12 ++++++++++++
build.sbt | 27 ++++++++++++++++-----------
etc/bin/run.sh | 2 +-
etc/templates/toree-assembly-pom.xml | 2 +-
etc/tools/release-build.sh | 13 +++++++++----
spark-monitor-plugin/build.sbt | 6 +++++-
8 files changed, 55 insertions(+), 29 deletions(-)
diff --git a/Makefile b/Makefile
index 05df1626..b7063b0d 100644
--- a/Makefile
+++ b/Makefile
@@ -51,8 +51,8 @@ RUN=$(RUN_PREFIX)$(1)$(RUN_SUFFIX)
ENV_OPTS:=APACHE_SPARK_VERSION=$(APACHE_SPARK_VERSION) SCALA_VERSION=$(SCALA_VERSION) VERSION=$(VERSION) IS_SNAPSHOT=$(IS_SNAPSHOT)
-ASSEMBLY_JAR:=apache-toree-assembly-$(VERSION)$(SNAPSHOT).jar
-ASSEMBLY_POM:=apache-toree-assembly-$(VERSION)$(SNAPSHOT).pom
+ASSEMBLY_JAR:=toree-assembly_$(SCALA_VERSION)-$(VERSION)$(SNAPSHOT).jar
+ASSEMBLY_POM:=toree-assembly_$(SCALA_VERSION)-$(VERSION)$(SNAPSHOT).pom
help:
@echo ' '
@@ -104,7 +104,7 @@ dev-binder: .binder-image
--workdir /home/main/notebooks $(BINDER_IMAGE) \
/home/main/start-notebook.sh --ip=0.0.0.0
-SPARK_MONITOR_JAR:=apache-toree-spark-monitor-plugin-assembly-$(VERSION)$(SNAPSHOT).jar
+SPARK_MONITOR_JAR:=toree-spark-monitor-plugin-assembly_$(SCALA_VERSION)-$(VERSION)$(SNAPSHOT).jar
target/scala-$(SCALA_VERSION)/$(ASSEMBLY_JAR): VM_WORKDIR=/src/toree-kernel
target/scala-$(SCALA_VERSION)/$(ASSEMBLY_JAR): ${shell find ./*/src/main/**/*}
@@ -172,7 +172,7 @@ dist/toree-legal: dist/toree-legal/LICENSE dist/toree-legal/NOTICE dist/toree-le
# the way it could in a sed replacement.
dist/toree/$(ASSEMBLY_POM): etc/templates/toree-assembly-pom.xml DISCLAIMER
@mkdir -p dist/toree
- @awk -v version='$(VERSION)$(SNAPSHOT)' ' \
+ @awk -v version='$(VERSION)$(SNAPSHOT)' -v scala_binary_version='$(SCALA_VERSION)' ' \
$$0 == "@DISCLAIMER@" { \
while ((getline line < "DISCLAIMER") > 0) { \
if (line == "") print ""; else print " " line \
@@ -180,7 +180,7 @@ dist/toree/$(ASSEMBLY_POM): etc/templates/toree-assembly-pom.xml DISCLAIMER
close("DISCLAIMER"); \
next \
} \
- { gsub(/@VERSION@/, version); print } \
+ { gsub(/@VERSION@/, version); gsub(/@SCALA_BINARY_VERSION@/, scala_binary_version); print } \
' etc/templates/toree-assembly-pom.xml > dist/toree/$(ASSEMBLY_POM)
dist/toree: dist/toree/VERSION dist/toree/logo-64x64.png dist/toree-legal dist/toree/lib dist/toree/bin dist/toree/$(ASSEMBLY_POM) RELEASE_NOTES.md
diff --git a/README.md b/README.md
index 9d6fb840..402ba4f1 100644
--- a/README.md
+++ b/README.md
@@ -91,14 +91,14 @@ To build just the main Toree assembly jar (without spark-monitor-plugin):
```
sbt assembly
```
-This creates: `target/scala-2.12/apache-toree-assembly-<VERSION>.jar`
+This creates: `target/scala-2.12/toree-assembly_2.12-<VERSION>.jar`
### Spark Monitor Plugin
To build the spark-monitor-plugin as a separate jar:
```
sbt sparkMonitorPlugin/assembly
```
-This creates: `spark-monitor-plugin/target/scala-2.12/apache-toree-spark-monitor-plugin-assembly-<VERSION>.jar`
+This creates: `spark-monitor-plugin/target/scala-2.12/toree-spark-monitor-plugin-assembly_2.12-<VERSION>.jar`
### Build All Components
To compile all projects including both the main assembly and spark-monitor-plugin:
@@ -115,23 +115,23 @@ To enable the Spark Monitor Plugin in your Toree application, you need to specif
### Option 1: Command Line Parameter
```bash
# Start Toree with spark-monitor-plugin enabled
-java -jar target/scala-2.12/apache-toree-assembly-<VERSION>.jar --magic-url file:///path/to/spark-monitor-plugin/target/scala-2.12/apache-toree-spark-monitor-plugin-assembly-<VERSION>.jar [other-options]
+java -jar target/scala-2.12/toree-assembly_2.12-<VERSION>.jar --magic-url file:///path/to/spark-monitor-plugin/target/scala-2.12/toree-spark-monitor-plugin-assembly_2.12-<VERSION>.jar [other-options]
```
### Option 2: Jupyter Kernel Installation
When installing Toree as a Jupyter kernel, you can specify the plugin:
```bash
-jupyter toree install --spark_home=<YOUR_SPARK_PATH> --kernel_name=toree_with_monitor --toree_opts="--magic-url file:///path/to/apache-toree-spark-monitor-plugin-assembly-<VERSION>.jar"
+jupyter toree install --spark_home=<YOUR_SPARK_PATH> --kernel_name=toree_with_monitor --toree_opts="--magic-url file:///path/to/toree-spark-monitor-plugin-assembly_2.12-<VERSION>.jar"
```
### Option 3: Configuration File
You can also specify the plugin in a configuration file and use the `--profile` option:
```json
{
- "magic_urls": ["file:///path/to/apache-toree-spark-monitor-plugin-assembly-<VERSION>.jar"]
+ "magic_urls": ["file:///path/to/toree-spark-monitor-plugin-assembly_2.12-<VERSION>.jar"]
}
```
-Then start with: `java -jar apache-toree-assembly-<VERSION>.jar --profile config.json`
+Then start with: `java -jar toree-assembly_2.12-<VERSION>.jar --profile config.json`
**Important**:
- Make sure to use the absolute path to the spark-monitor-plugin JAR file and ensure the JAR is accessible from the location where Toree is running.
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index e2aeb6e2..2dfdf1d8 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -56,6 +56,18 @@
* Release artifacts no longer ship `.md5` checksums, which the ASF has
deprecated for release distribution. `.asc` signatures and `.sha512`
checksums are unchanged.
+* The `apache-` prefix added to SBT module names, the assembly jars and the
+ Maven artifactId has been reverted, per [dev@ list discussion](https://lists.apache.org/thread/spbg1z5yl5k4vpqvfgc7vopgg3cg9jwx):
+ the jars are published under the `org.apache.toree` groupId, so the prefix
+ on the artifact name itself was redundant. The assembly jar name now also
+ carries the Scala binary version, matching Spark/Hadoop/Flink convention:
+ - SBT/Maven module names: `apache-toree*` → `toree*`
+ - Assembly jar: `apache-toree-assembly-<VERSION>.jar` → `toree-assembly_<SCALA_VERSION>-<VERSION>.jar`
+ - Spark Monitor plugin jar: `apache-toree-spark-monitor-plugin-assembly-<VERSION>.jar` →
+ `toree-spark-monitor-plugin-assembly_<SCALA_VERSION>-<VERSION>.jar`
+ - Maven artifactId: `apache-toree-assembly` → `toree-assembly_<SCALA_VERSION>`
+ - This does not affect the distribution artifact naming above, which keeps
+ the `apache-toree` prefix as required by ASF distribution policy.
## 0.5.0-incubating (2022.04)
diff --git a/build.sbt b/build.sbt
index 58503482..111c8f92 100644
--- a/build.sbt
+++ b/build.sbt
@@ -185,7 +185,7 @@ lazy val assemblyLegalFiles = Seq(
/** Root Toree project. */
lazy val root = (project in file("."))
- .settings(name := "apache-toree")
+ .settings(name := "toree")
.settings(legalFileMappings)
.settings(assemblyLegalFiles)
.aggregate(
@@ -200,7 +200,7 @@ lazy val root = (project in file("."))
* any other project using them.
*/
lazy val macros = (project in file("macros"))
- .settings(name := "apache-toree-macros")
+ .settings(name := "toree-macros")
.settings(legalFileMappings)
/**
@@ -208,7 +208,7 @@ lazy val macros = (project in file("macros"))
* by the client and kernel implementations.
*/
lazy val protocol = (project in file("protocol"))
- .settings(name := "apache-toree-protocol")
+ .settings(name := "toree-protocol")
.settings(legalFileMappings)
.dependsOn(macros)
@@ -216,7 +216,7 @@ lazy val protocol = (project in file("protocol"))
* Project representing base plugin system for the Toree infrastructure.
*/
lazy val plugins = (project in file("plugins"))
- .settings(name := "apache-toree-plugins")
+ .settings(name := "toree-plugins")
.settings(legalFileMappings)
.dependsOn(macros)
@@ -224,7 +224,7 @@ lazy val plugins = (project in file("plugins"))
* Project representing the SparkMonitor plugin for Toree.
*/
lazy val sparkMonitorPlugin = (project in file("spark-monitor-plugin"))
- .settings(name := "apache-toree-spark-monitor-plugin")
+ .settings(name := "toree-spark-monitor-plugin")
.settings(legalFileMappings)
// Mirrors the root project's own dist/toree-legal wiring so this project's
// assembly jar carries the same LICENSE/NOTICE/DISCLAIMER/third-party licenses
@@ -237,7 +237,7 @@ lazy val sparkMonitorPlugin = (project in file("spark-monitor-plugin"))
* client/kernel.
*/
lazy val communication = (project in file("communication"))
- .settings(name := "apache-toree-communication")
+ .settings(name := "toree-communication")
.settings(legalFileMappings)
.dependsOn(macros, protocol)
@@ -246,7 +246,7 @@ lazy val communication = (project in file("communication"))
* import this to implement their own magics and plugins.
*/
lazy val kernelApi = (project in file("kernel-api"))
- .settings(name := "apache-toree-kernel-api")
+ .settings(name := "toree-kernel-api")
.settings(legalFileMappings)
.dependsOn(macros, plugins)
@@ -254,7 +254,7 @@ lazy val kernelApi = (project in file("kernel-api"))
* Project representing the client code for connecting to the kernel backend.
*/
lazy val client = (project in file("client"))
- .settings(name := "apache-toree-client")
+ .settings(name := "toree-client")
.settings(legalFileMappings)
.dependsOn(macros, protocol, communication)
@@ -262,7 +262,7 @@ lazy val client = (project in file("client"))
* Project represents the scala interpreter used by the Spark Kernel.
*/
lazy val scalaInterpreter = (project in file("scala-interpreter"))
- .settings(name := "apache-toree-scala-interpreter")
+ .settings(name := "toree-scala-interpreter")
.settings(legalFileMappings)
.dependsOn(plugins, protocol, kernelApi)
@@ -270,7 +270,7 @@ lazy val scalaInterpreter = (project in file("scala-interpreter"))
* Project represents the SQL interpreter used by the Spark Kernel.
*/
lazy val sqlInterpreter = (project in file("sql-interpreter"))
- .settings(name := "apache-toree-sql-interpreter")
+ .settings(name := "toree-sql-interpreter")
.settings(legalFileMappings)
.dependsOn(plugins, protocol, kernelApi, scalaInterpreter)
@@ -278,7 +278,7 @@ lazy val sqlInterpreter = (project in file("sql-interpreter"))
* Project representing the kernel code for the Spark Kernel backend.
*/
lazy val kernel = (project in file("kernel"))
- .settings(name := "apache-toree-kernel")
+ .settings(name := "toree-kernel")
.settings(legalFileMappings)
.dependsOn(
macros % "test->test;compile->compile",
@@ -317,5 +317,10 @@ assembly / assemblyOption ~= {
_.withIncludeScala(false)
}
assembly / aggregate := false
+// sbt-assembly's default jar name omits the Scala binary version; add it so
+// the artifact name matches the Maven convention used by Spark/Hadoop/Flink
+// (e.g. toree-assembly_2.12-0.6.0-incubating.jar) instead of colliding across
+// cross-builds.
+assembly / assemblyJarName := s"toree-assembly_${scalaBinaryVersion.value}-${version.value}.jar"
Global / excludeLintKeys ++= Set(pgpPassphrase, mappings)
diff --git a/etc/bin/run.sh b/etc/bin/run.sh
index df1370f2..b4c8c408 100755
--- a/etc/bin/run.sh
+++ b/etc/bin/run.sh
@@ -25,7 +25,7 @@ fi
echo "Starting Spark Kernel with SPARK_HOME=$SPARK_HOME"
-KERNEL_ASSEMBLY=`(cd ${PROG_HOME}/lib; ls -1 apache-toree-assembly-*.jar;)`
+KERNEL_ASSEMBLY=`(cd ${PROG_HOME}/lib; ls -1 toree-assembly_*.jar;)`
# disable randomized hash for string in Python 3.3+
export PYTHONHASHSEED=0
diff --git a/etc/templates/toree-assembly-pom.xml b/etc/templates/toree-assembly-pom.xml
index e9612c35..7112cccc 100644
--- a/etc/templates/toree-assembly-pom.xml
+++ b/etc/templates/toree-assembly-pom.xml
@@ -27,7 +27,7 @@
</parent>
<groupId>org.apache.toree</groupId>
- <artifactId>apache-toree-assembly</artifactId>
+ <artifactId>toree-assembly_@SCALA_BINARY_VERSION@</artifactId>
<version>@VERSION@</version>
<packaging>jar</packaging>
diff --git a/etc/tools/release-build.sh b/etc/tools/release-build.sh
index 7a2a6ced..368d565a 100755
--- a/etc/tools/release-build.sh
+++ b/etc/tools/release-build.sh
@@ -205,6 +205,11 @@ GIT_REPO=${GIT_REPO:-$GIT_REPO_CANONICAL}
BASE_DIR=$(pwd)
+# Scala binary version the assembly jar/pom are built and named for. Must
+# match the Makefile's own default, since `make clean dist release` below is
+# invoked without an explicit SCALA_VERSION override.
+SCALA_VERSION=${SCALA_VERSION:-2.12}
+
MVN="mvn"
if [ -z "$RELEASE_RC" ]; then
@@ -279,8 +284,8 @@ function validate_artifacts {
"target/toree/dist/apache-toree-src/apache-toree-$FULL_RELEASE_VERSION-src.tar.gz"
"target/toree/dist/toree-pip/toree-$FULL_RELEASE_VERSION.tar.gz"
"target/toree/dist/apache-toree-pip/apache-toree-$FULL_RELEASE_VERSION.tar.gz"
- "target/toree/dist/toree/lib/apache-toree-assembly-$FULL_RELEASE_VERSION.jar"
- "target/toree/dist/toree/apache-toree-assembly-$FULL_RELEASE_VERSION.pom"
+ "target/toree/dist/toree/lib/toree-assembly_$SCALA_VERSION-$FULL_RELEASE_VERSION.jar"
+ "target/toree/dist/toree/toree-assembly_$SCALA_VERSION-$FULL_RELEASE_VERSION.pom"
)
for artifact in "${artifacts[@]}"; do
@@ -425,8 +430,8 @@ if [[ "$RELEASE_PUBLISH" == "true" ]]; then
# The passphrase reaches the plugin through MAVEN_GPG_PASSPHRASE rather than the
# command line, where it would be visible to any local user through ps.
mvn "$MVN_GPG_PLUGIN:sign-and-deploy-file" \
- -Dfile="toree/dist/toree/lib/apache-toree-assembly-$RELEASE_VERSION-incubating.jar" \
- -DpomFile="toree/dist/toree/apache-toree-assembly-$RELEASE_VERSION-incubating.pom" \
+ -Dfile="toree/dist/toree/lib/toree-assembly_$SCALA_VERSION-$RELEASE_VERSION-incubating.jar" \
+ -DpomFile="toree/dist/toree/toree-assembly_$SCALA_VERSION-$RELEASE_VERSION-incubating.pom" \
-DrepositoryId=apache.releases.https \
-Durl=https://repository.apache.org/service/local/staging/deploy/maven2
diff --git a/spark-monitor-plugin/build.sbt b/spark-monitor-plugin/build.sbt
index 237572c2..3a281670 100644
--- a/spark-monitor-plugin/build.sbt
+++ b/spark-monitor-plugin/build.sbt
@@ -48,4 +48,8 @@ assembly / assemblyOption ~= {
_.withIncludeScala(false)
}
-assembly / test := {}
\ No newline at end of file
+assembly / test := {}
+
+// Matches the root project's assemblyJarName convention (see build.sbt): embed
+// the Scala binary version so the filename follows Spark/Hadoop/Flink naming.
+assembly / assemblyJarName := s"toree-spark-monitor-plugin-assembly_${scalaBinaryVersion.value}-${version.value}.jar"
(incubator-toree) 03/03: Drop assembly POM from pip package staging dirs
Posted by lr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
lresende pushed a commit to branch revert-apache-jar-prefix
in repository https://gitbox.apache.org/repos/asf/incubator-toree.git
commit 7cd3c80c2723382e8b1452880a26f83224fb2bbd
Author: Luciano Resende <lr...@apple.com>
AuthorDate: Tue Sep 22 14:23:00 2026 +0200
Drop assembly POM from pip package staging dirs
dist/toree-pip and dist/apache-toree-pip both stage their contents by
running cp -r dist/toree, which copies the whole binary-distribution
tree verbatim - including the Maven assembly POM that dist/toree/
carries for the bin distribution. That POM has no purpose in either
pip package and was ending up in the staged toree/ package dir
alongside bin/ and lib/, confirmed by reproducing the Makefile's copy
steps locally.
Remove it right after the copy in both pip targets. dist/toree and the
bin-release tarball, which legitimately need the POM, are untouched.
---
Makefile | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Makefile b/Makefile
index b7063b0d..d3eb26f6 100644
--- a/Makefile
+++ b/Makefile
@@ -246,6 +246,7 @@ dist/toree-pip/toree-$(VERSION).tar.gz: DOCKER_WORKDIR=/srv/toree/dist/toree-pip
dist/toree-pip/toree-$(VERSION).tar.gz: dist/toree
@mkdir -p dist/toree-pip
@cp -r dist/toree dist/toree-pip
+ @rm -f dist/toree-pip/toree/$(ASSEMBLY_POM)
@cp dist/toree/LICENSE dist/toree-pip/LICENSE
@cp dist/toree/NOTICE dist/toree-pip/NOTICE
@cp dist/toree/DISCLAIMER dist/toree-pip/DISCLAIMER
@@ -264,6 +265,7 @@ dist/apache-toree-pip/apache-toree-$(VERSION).tar.gz: DOCKER_WORKDIR=/srv/toree/
dist/apache-toree-pip/apache-toree-$(VERSION).tar.gz: dist/toree
@mkdir -p dist/apache-toree-pip
@cp -r dist/toree dist/apache-toree-pip
+ @rm -f dist/apache-toree-pip/toree/$(ASSEMBLY_POM)
@cp dist/toree/LICENSE dist/apache-toree-pip/LICENSE
@cp dist/toree/NOTICE dist/apache-toree-pip/NOTICE
@cp dist/toree/DISCLAIMER dist/apache-toree-pip/DISCLAIMER
(incubator-toree) 02/03: Stop hardcoding 2.12 in README assembly jar examples
Posted by lr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
lresende pushed a commit to branch revert-apache-jar-prefix
in repository https://gitbox.apache.org/repos/asf/incubator-toree.git
commit 213c81b84925ceca3b9987dc156efdc278381046
Author: Luciano Resende <lr...@apple.com>
AuthorDate: Tue Sep 22 13:46:13 2026 +0200
Stop hardcoding 2.12 in README assembly jar examples
The build itself already derives the Scala binary version dynamically
(assemblyJarName uses scalaBinaryVersion.value; the Makefile and
release-build.sh key off SCALA_VERSION), but the README examples
spelled out scala-2.12 and _2.12 literally, which reads as fixed to
that version. Replace with a <SCALA_VERSION> placeholder, consistent
with the existing <VERSION> placeholder, and note that it is 2.12 by
default or 2.13 when built with SCALA_VERSION=2.13.
---
README.md | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index 402ba4f1..167adddc 100644
--- a/README.md
+++ b/README.md
@@ -86,19 +86,23 @@ NOTE: `make release` uses `docker`. Please refer to `docker` installation instru
## Building Individual Components
+`<SCALA_VERSION>` below is the Scala binary version being built against —
+`2.12` by default, or `2.13` when built with `SCALA_VERSION=2.13` (see
+`crossScalaVersions` in `build.sbt`).
+
### Main Toree Assembly
To build just the main Toree assembly jar (without spark-monitor-plugin):
```
sbt assembly
```
-This creates: `target/scala-2.12/toree-assembly_2.12-<VERSION>.jar`
+This creates: `target/scala-<SCALA_VERSION>/toree-assembly_<SCALA_VERSION>-<VERSION>.jar`
### Spark Monitor Plugin
To build the spark-monitor-plugin as a separate jar:
```
sbt sparkMonitorPlugin/assembly
```
-This creates: `spark-monitor-plugin/target/scala-2.12/toree-spark-monitor-plugin-assembly_2.12-<VERSION>.jar`
+This creates: `spark-monitor-plugin/target/scala-<SCALA_VERSION>/toree-spark-monitor-plugin-assembly_<SCALA_VERSION>-<VERSION>.jar`
### Build All Components
To compile all projects including both the main assembly and spark-monitor-plugin:
@@ -115,23 +119,23 @@ To enable the Spark Monitor Plugin in your Toree application, you need to specif
### Option 1: Command Line Parameter
```bash
# Start Toree with spark-monitor-plugin enabled
-java -jar target/scala-2.12/toree-assembly_2.12-<VERSION>.jar --magic-url file:///path/to/spark-monitor-plugin/target/scala-2.12/toree-spark-monitor-plugin-assembly_2.12-<VERSION>.jar [other-options]
+java -jar target/scala-<SCALA_VERSION>/toree-assembly_<SCALA_VERSION>-<VERSION>.jar --magic-url file:///path/to/spark-monitor-plugin/target/scala-<SCALA_VERSION>/toree-spark-monitor-plugin-assembly_<SCALA_VERSION>-<VERSION>.jar [other-options]
```
### Option 2: Jupyter Kernel Installation
When installing Toree as a Jupyter kernel, you can specify the plugin:
```bash
-jupyter toree install --spark_home=<YOUR_SPARK_PATH> --kernel_name=toree_with_monitor --toree_opts="--magic-url file:///path/to/toree-spark-monitor-plugin-assembly_2.12-<VERSION>.jar"
+jupyter toree install --spark_home=<YOUR_SPARK_PATH> --kernel_name=toree_with_monitor --toree_opts="--magic-url file:///path/to/toree-spark-monitor-plugin-assembly_<SCALA_VERSION>-<VERSION>.jar"
```
### Option 3: Configuration File
You can also specify the plugin in a configuration file and use the `--profile` option:
```json
{
- "magic_urls": ["file:///path/to/toree-spark-monitor-plugin-assembly_2.12-<VERSION>.jar"]
+ "magic_urls": ["file:///path/to/toree-spark-monitor-plugin-assembly_<SCALA_VERSION>-<VERSION>.jar"]
}
```
-Then start with: `java -jar toree-assembly_2.12-<VERSION>.jar --profile config.json`
+Then start with: `java -jar toree-assembly_<SCALA_VERSION>-<VERSION>.jar --profile config.json`
**Important**:
- Make sure to use the absolute path to the spark-monitor-plugin JAR file and ensure the JAR is accessible from the location where Toree is running.