# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to you under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Apache Project configurations
#
name: Apache Toree
short_name: Toree
unix_name: toree
incubator_name: incubator-toree
incubator_slash_name: incubator/toree
description: Toree is a kernel for the Jupyter Notebook platform providing interactively access to Apache Spark.

download: /download
latest_release: 0.3.0-incubating
pip_latest_release: 0.3.0

dev_list: dev@toree.incubator.apache.org
dev_list_subscribe: dev-subscribe@toree.incubator.apache.org
dev_list_unsubscribe: dev-unsubscribe@toree.incubator.apache.org
dev_list_archive: http://mail-archives.apache.org/mod_mbox/toree-dev/
dev_list_archive_mailarchive: https://www.mail-archive.com/dev@toree.incubator.apache.org/
dev_list_archive_markmail:

user_list:
user_list_subscribe:
user_list_unsubscribe:
user_list_archive:
user_list_archive_mailarchive:
user_list_archive_markmail:

commits_list: commits@toree.incubator.apache.org
commits_list_subscribe: commits-subscribe@toree.incubator.apache.org
commits_list_unsubscribe: commits-unsubscribe@toree.incubator.apache.org
commits_list_archive: http://mail-archives.apache.org/mod_mbox/toree-commits/
commits_list_archive_mailarchive: https://www.mail-archive.com/commits@toree.incubator.apache.org/
commits_list_archive_markmail:

jira: TOREE

github_project_name: incubator-toree

source_repository: https://git-wip-us.apache.org/repos/asf/incubator-toree.git
source_repository_mirror: https://github.com/apache/incubator-toree

website_repository: https://git-wip-us.apache.org/repos/asf/incubator-toree-website.git
website_repository_mirror: https://github.com/apache/incubator-toree-website

podling: true
