#
# 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.
#

- version: 1.0.0
  date: March 30, 2023
  sdk: <i class="fab fa-fw fa-java"></i>11 - <div class="scala-16"></div>3.1.3
  zip_name: apache-nlpcraft-bin-1.0.0.zip
  zip_url: https://github.com/aradzinski/binstore/releases/download/v1.0.0/apache-nlpcraft-incubating-bin-1.0.0.zip
  sha256_url: https://github.com/aradzinski/binstore/releases/download/v1.0.0/apache-nlpcraft-incubating-bin-1.0.0.zip.sha256
  pgp_url: https://github.com/aradzinski/binstore/releases/download/v1.0.0/apache-nlpcraft-incubating-bin-1.0.0.zip.asc
  github_link: https://github.com/apache/incubator-nlpcraft/tree/v1.0.0
  backward_compatible: yes
