# 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 SystemML
short_name: SystemML
unix_name: systemml
incubator_name: incubator-systemml
incubator_slash_name: incubator/systemml
description: Apache SystemML is a distributed and declarative machine learning platform.

download: /download

dev_list: dev@systemml.incubator.apache.org
dev_list_subscribe: dev-subscribe@systemml.incubator.apache.org
dev_list_unsubscribe: dev-unsubscribe@systemml.incubator.apache.org
dev_list_archive: http://mail-archives.apache.org/mod_mbox/systemml-dev/
dev_list_archive_mailarchive: https://www.mail-archive.com/dev@systemml.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@systemml.incubator.apache.org
commits_list_subscribe: commits-subscribe@systemml.incubator.apache.org
commits_list_unsubscribe: commits-unsubscribe@systemml.incubator.apache.org
commits_list_archive: http://mail-archives.apache.org/mod_mbox/systemml-commits/
commits_list_archive_mailarchive: https://www.mail-archive.com/commits@systemml.incubator.apache.org/
commits_list_archive_markmail:

jira: SYSTEMML

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

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

podling: true
