From 55c053c304b667e255500c64aa36a228c32c3958 Mon Sep 17 00:00:00 2001 From: Nikola Date: Tue, 27 Dec 2022 10:57:10 +0100 Subject: [PATCH] split CI into test and build license moved updating docs --- .github/workflows/build.yml | 111 ++++++++++++ .github/workflows/ci.yml | 159 ------------------ .github/workflows/tests.yml | 65 +++++++ LICENSE | 20 +++ README.md | 2 +- autotest/setup.py | 76 --------- documentation/Makefile | 2 - documentation/conf.py | 10 +- documentation/copyright.rst | 63 +------ documentation/credits.rst | 1 + documentation/release_notes/1.0.0.rst | 49 ++++++ documentation/release_notes/index.rst | 6 +- .../images/dataset_diagraml.png | Bin documentation/users/operations/management.rst | 2 +- 14 files changed, 258 insertions(+), 308 deletions(-) create mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/tests.yml create mode 100644 LICENSE delete mode 100644 autotest/setup.py create mode 100644 documentation/release_notes/1.0.0.rst rename documentation/users/{ => operations}/images/dataset_diagraml.png (100%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..33b6d7c21 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,111 @@ +name: build +on: + push: + tags: + - "release-[0-9]+.[0-9]+.[0-9]+" + branches: [master] +jobs: + build-docker: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Branch name + id: branch_name + run: | + echo ::set-output name=SOURCE_BRANCH:: $([[ $GITHUB_REF == refs/heads/* ]] && echo ${GITHUB_REF#refs/heads/} || echo "") + echo ::set-output name=SOURCE_TAG::$([[ $GITHUB_REF == refs/tags/* ]] && echo ${GITHUB_REF#refs/tags/} || echo "") + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + if: success() + - name: Tag docker latest image + run: | + docker tag eoxserver eoxa/eoxserver:latest + if: success() && steps.branch_name.outputs.SOURCE_BRANCH == 'master' + - name: Tag docker release image + run: | + docker tag eoxserver eoxa/eoxserver:${{ steps.branch_name.outputs.SOURCE_TAG }} + if: success() && steps.branch_name.outputs.SOURCE_TAG + - name: Push docker images + run: | + # TODO: --all-tags does not seem to work with the version on github-actions + # docker push --all-tags eoxa/eoxserver + for tag in $(docker image ls --format "{{.Tag}}" eoxa/eoxserver) ; do docker push "eoxa/eoxserver:$tag" ; done + if: success() + build-pypi: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Branch name + id: branch_name + run: | + echo ::set-output name=SOURCE_BRANCH:: $([[ $GITHUB_REF == refs/heads/* ]] && echo ${GITHUB_REF#refs/heads/} || echo "") + echo ::set-output name=SOURCE_TAG::$([[ $GITHUB_REF == refs/tags/* ]] && echo ${GITHUB_REF#refs/tags/} || echo "") + - name: Build Python package + id: build_python_release + run: | + python -m pip install --upgrade pip + pip install setuptools wheel + python setup.py sdist bdist_wheel + echo ::set-output name=WHEEL_FILE::$(ls dist/*.whl) + echo ::set-output name=SRC_DIST_FILE::$(ls dist/*.tar.gz) + if: startsWith(steps.branch_name.outputs.SOURCE_TAG, 'release-') + - name: Push package to pypi + uses: pypa/gh-action-pypi-publish@master + with: + user: __token__ + password: ${{ secrets.PYPI_API_TOKEN }} + if: success() && startsWith(steps.branch_name.outputs.SOURCE_TAG, 'release-') + release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Branch name + id: branch_name + run: | + echo ::set-output name=SOURCE_BRANCH:: $([[ $GITHUB_REF == refs/heads/* ]] && echo ${GITHUB_REF#refs/heads/} || echo "") + echo ::set-output name=SOURCE_TAG::$([[ $GITHUB_REF == refs/tags/* ]] && echo ${GITHUB_REF#refs/tags/} || echo "") + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: ${{ steps.branch_name.outputs.SOURCE_TAG }} + draft: true + if: success() && startsWith(steps.branch_name.outputs.SOURCE_TAG, 'release-') + - name: Upload Release Asset Wheel + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ${{ steps.build_python_release.outputs.WHEEL_FILE }} + asset_name: ${{ steps.build_python_release.outputs.WHEEL_FILE }} + asset_content_type: application/x-wheel+zip + if: success() && startsWith(steps.branch_name.outputs.SOURCE_TAG, 'release-') + - name: Upload Release Asset Source Dist + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: ${{ steps.build_python_release.outputs.SRC_DIST_FILE }} + asset_name: ${{ steps.build_python_release.outputs.SRC_DIST_FILE }} + asset_content_type: application/tar+gzip + if: success() && matrix.latest && startsWith(steps.branch_name.outputs.SOURCE_TAG, 'release-') + notify: + runs-on: ubuntu-20.04 + needs: release + steps: + - name: action-slack + uses: 8398a7/action-slack@v3.8.0 + with: + status: ${{ needs.run.result }} + fields: repo,message,commit,author,action,eventName,ref,workflow,job,took + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + if: always() diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 243ae1bbc..000000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,159 +0,0 @@ -name: CI -on: push -jobs: - run: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - # TODO: deactivated as django 1.11 does not seem to work with the GEOS version supplied by Ubuntu 20.04 - # - os: ubuntu - # python: py3 - # db: postgis - # django: "1.11.26" - # python_bin: python3 - # pip_bin: pip3 - - db: postgis - python_bin: python3 - pip_bin: pip3 - - db: spatialite - python_bin: python3 - pip_bin: pip3 - latest: true - steps: - - uses: actions/checkout@v2 - - name: Build the eoxserver docker image - run: | - docker build -t eoxserver . - - name: Run the tests - env: - COMPOSE_INTERACTIVE_NO_CLI: 1 - run: | - echo "DB=${{ matrix.db }}" >> sample.env - docker-compose config - docker-compose up -d - docker-compose ps - docker exec -i eoxserver_autotest_1 ${{ matrix.pip_bin }} install scipy - docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} -m eoxserver.services.ows.wps.test_data_types - docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} -m eoxserver.services.ows.wps.test_allowed_values - docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test --pythonpath=./eoxserver/ eoxserver.core -v2 - docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test --pythonpath=./eoxserver/ eoxserver.backends -v2 - docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test --pythonpath=./eoxserver/ eoxserver.services -v2 - docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test --pythonpath=./eoxserver/ eoxserver.resources.coverages -v2 - docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test autotest_services --tag wcs20 -v2 - docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test autotest_services --tag wcs11 -v2 - docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test autotest_services --tag wcs10 -v2 - docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test autotest_services --tag wms -v2 - docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test autotest_services --tag wps -v2 - docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test autotest_services --tag opensearch -v2 - - name: Upload logs and outputs of failed tests - uses: 'actions/upload-artifact@v2' - with: - name: logs ${{ matrix.python }} ${{ matrix.db }} ${{ matrix.django }} - path: | - autotest/autotest/logs/*.log - autotest/autotest/responses/* - retention-days: 5 - if: failure() - - # get branch/tag name for later stages - - name: Branch name - id: branch_name - run: | - echo ::set-output name=SOURCE_BRANCH:: $([[ $GITHUB_REF == refs/heads/* ]] && echo ${GITHUB_REF#refs/heads/} || echo "") - echo ::set-output name=SOURCE_TAG::$([[ $GITHUB_REF == refs/tags/* ]] && echo ${GITHUB_REF#refs/tags/} || echo "") - - # docker image tagging/publishing - - name: Login to Docker Hub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - if: success() - - # conditionally tag docker images and push them to dockerhub - - name: Tag docker latest master image - run: | - docker tag eoxserver eoxa/eoxserver:master - if: success() && steps.branch_name.outputs.SOURCE_BRANCH == 'master' && matrix.latest - - name: Tag docker latest image - run: | - docker tag eoxserver eoxa/eoxserver:latest - if: success() && matrix.latest - - name: Tag docker latest release image - run: | - docker tag eoxserver eoxa/eoxserver:${{ steps.branch_name.outputs.SOURCE_TAG }} - if: success() && steps.branch_name.outputs.SOURCE_TAG && matrix.latest - - name: Tag docker release image with OS and Python/Django versions - run: | - docker tag eoxserver eoxa/eoxserver:${{ steps.branch_name.outputs.SOURCE_TAG }} - if: success() && startsWith(steps.branch_name.outputs.SOURCE_TAG, 'release-') - - name: Push docker images - run: | - # TODO: --all-tags does not seem to work with the version on github-actions - # docker push --all-tags eoxa/eoxserver - for tag in $(docker image ls --format "{{.Tag}}" eoxa/eoxserver) ; do docker push "eoxa/eoxserver:$tag" ; done - if: success() - - # build a Python package and publish it on pypi - - name: Build Python package - id: build_python_release - run: | - python -m pip install --upgrade pip - pip install setuptools wheel - python setup.py sdist bdist_wheel - echo ::set-output name=WHEEL_FILE::$(ls dist/*.whl) - echo ::set-output name=SRC_DIST_FILE::$(ls dist/*.tar.gz) - - name: Push package to pypi - uses: pypa/gh-action-pypi-publish@master - with: - user: __token__ - password: ${{ secrets.PYPI_API_TOKEN }} - if: success() && matrix.latest && startsWith(steps.branch_name.outputs.SOURCE_TAG, 'release-') - - # draft a github release and add files - - name: Create Release - id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ github.ref }} - release_name: ${{ steps.branch_name.outputs.SOURCE_TAG }} - draft: true - if: success() && matrix.latest && startsWith(steps.branch_name.outputs.SOURCE_TAG, 'release-') - - name: Upload Release Asset Wheel - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ${{ steps.build_python_release.outputs.WHEEL_FILE }} - asset_name: ${{ steps.build_python_release.outputs.WHEEL_FILE }} - asset_content_type: application/x-wheel+zip - if: success() && matrix.latest && startsWith(steps.branch_name.outputs.SOURCE_TAG, 'release-') - - name: Upload Release Asset Source Dist - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: ${{ steps.build_python_release.outputs.SRC_DIST_FILE }} - asset_name: ${{ steps.build_python_release.outputs.SRC_DIST_FILE }} - asset_content_type: application/tar+gzip - if: success() && matrix.latest && startsWith(steps.branch_name.outputs.SOURCE_TAG, 'release-') - - note: - runs-on: ubuntu-20.04 - needs: run - steps: - # send Slack notifications to the eox organization - - name: action-slack - uses: 8398a7/action-slack@v3.8.0 - with: - status: ${{ needs.run.result }} - fields: repo,message,commit,author,action,eventName,ref,workflow,job,took - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} - if: always() diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 000000000..6918087f9 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,65 @@ +name: tests +on: + push: + paths: + - '.github/workflows/tests.yaml' + - 'setup.py' + - 'setup.cfg' + - 'MANIFEST.in' + - 'pyproject.toml' + - 'eoxserver/**' + pull_request: + branches: [master] + paths: + - '.github/workflows/tests.yaml' + - 'setup.py' + - 'setup.cfg' + - 'MANIFEST.in' + - 'pyproject.toml' + - 'eoxserver/**' +jobs: + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - db: postgis + python_bin: python3 + - db: spatialite + python_bin: python3 + steps: + - uses: actions/checkout@v2 + - name: Build the eoxserver docker image + run: | + docker build -t eoxserver . + - name: Run the tests + env: + COMPOSE_INTERACTIVE_NO_CLI: 1 + run: | + echo "DB=${{ matrix.db }}" >> sample.env + docker-compose config + docker-compose up -d + docker-compose ps + docker exec -i eoxserver_autotest_1 pip3 install scipy + docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} -m eoxserver.services.ows.wps.test_data_types + docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} -m eoxserver.services.ows.wps.test_allowed_values + docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test --pythonpath=./eoxserver/ eoxserver.core -v2 + docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test --pythonpath=./eoxserver/ eoxserver.backends -v2 + docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test --pythonpath=./eoxserver/ eoxserver.services -v2 + docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test --pythonpath=./eoxserver/ eoxserver.resources.coverages -v2 + docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test autotest_services --tag wcs20 -v2 + docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test autotest_services --tag wcs11 -v2 + docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test autotest_services --tag wcs10 -v2 + docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test autotest_services --tag wms -v2 + docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test autotest_services --tag wps -v2 + docker exec -i eoxserver_autotest_1 ${{ matrix.python_bin }} manage.py test autotest_services --tag opensearch -v2 + - name: Upload logs and outputs of failed tests + uses: 'actions/upload-artifact@v2' + with: + name: logs ${{ matrix.python }} ${{ matrix.db }} ${{ matrix.django }} + path: | + autotest/autotest/logs/*.log + autotest/autotest/responses/* + retention-days: 5 + if: failure() diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..5f1b46848 --- /dev/null +++ b/LICENSE @@ -0,0 +1,20 @@ +EOxServer Open License +Version 1, 8 June 2011 + +Copyright (C) 2011 EOX IT Services GmbH + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the “Software”), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons +to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies +of this Software or works derived from this Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index fcc9204cb..7d9c8eb11 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ EOxServer is a Python application and library for presenting Earth Observation (EO) data and metadata. -![build](https://github.com/EOxServer/eoxserver/actions/workflows/ci.yml/badge.svg) +![build](https://github.com/EOxServer/eoxserver/actions/workflows/build.yml/badge.svg) [![PyPi](https://badge.fury.io/py/EOxServer.svg)](https://pypi.org/project/EOxServer/) [![ReadTheDocs](https://readthedocs.org/projects/eoxserver/badge/?version=master)](http://docs.eoxserver.org/en/master) diff --git a/autotest/setup.py b/autotest/setup.py deleted file mode 100644 index d86315c7d..000000000 --- a/autotest/setup.py +++ /dev/null @@ -1,76 +0,0 @@ -#------------------------------------------------------------------------------- -# -# Project: EOxServer -# Authors: Stephan Krause -# Stephan Meissl -# Fabian Schindler -# -#------------------------------------------------------------------------------- -# Copyright (C) 2011 EOX IT Services GmbH -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies of this Software or works derived from this Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -#------------------------------------------------------------------------------- - -import os - -# Hack to remove setuptools "feature" which resulted in -# ignoring MANIFEST.in when code is in an svn repository. -# TODO find a nicer solution -from setuptools.command import sdist -del sdist.finders[:] - -from setuptools import setup -from setuptools.command.install import install as _install - -from eoxserver import get_version - -class install(_install): - def run(self): - _install.run(self) - - self.prefix -version = get_version() - -data_files = [] -for dirpath, dirnames, filenames in os.walk('autotest/data'): - data_files.append([dirpath, [os.path.join(dirpath, f) for f in filenames]]) - -setup( - name='EOxServer_autotest', - version=version.replace(' ', '-'), - # TODO: packages - data_files=data_files, - - install_requires=['eoxserver'], - - # Metadata - author="EOX IT Services GmbH", - author_email="office@eox.at", - maintainer="EOX IT Services GmbH", - maintainer_email="packages@eox.at", - - description="Autotest instance for EOxServer", - long_description="", - - license="EOxServer Open License (MIT-style)", - keywords="Earth Observation, EO, OGC, WCS, WMS", - url="http://eoxserver.org/", - - cmdclass={'install': install}, -) diff --git a/documentation/Makefile b/documentation/Makefile index 3bdaa36ad..9f3366cf4 100644 --- a/documentation/Makefile +++ b/documentation/Makefile @@ -8,8 +8,6 @@ PAPER = a4 BUILDDIR = _build # Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: help clean html html-new dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest diff --git a/documentation/conf.py b/documentation/conf.py index 0804c156f..25f2f4e24 100644 --- a/documentation/conf.py +++ b/documentation/conf.py @@ -14,11 +14,9 @@ import sys, os import django -from django.conf import settings - -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath('../autotest/')) os.environ['DJANGO_SETTINGS_MODULE'] = 'autotest.settings' -settings.configure(DEBUG=True, ) +os.environ['DB'] = 'spatialite' django.setup() # If extensions (or modules to document with autodoc) are in another directory, @@ -183,8 +181,8 @@ # -- Options for LaTeX output -------------------------------------------------- -# The paper size ('letter' or 'a4'). -latex_paper_size = 'a4' +# The paper size ('letter' or 'a4paper'). +latex_elements = {'papersize': 'a4paper'} # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' diff --git a/documentation/copyright.rst b/documentation/copyright.rst index 2c97a69ec..dd1fe7a7c 100644 --- a/documentation/copyright.rst +++ b/documentation/copyright.rst @@ -1,65 +1,8 @@ -.. EOxServer Open License - #----------------------------------------------------------------------------- - # - # Project: EOxServer - # Authors: Stephan Krause - # Stephan Meissl - # - #----------------------------------------------------------------------------- - # Copyright (C) 2011 EOX IT Services GmbH - # - # Permission is hereby granted, free of charge, to any person obtaining a copy - # of this software and associated documentation files (the "Software"), to - # deal in the Software without restriction, including without limitation the - # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - # sell copies of the Software, and to permit persons to whom the Software is - # furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included in - # all copies of this Software or works derived from this Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - # IN THE SOFTWARE. - #----------------------------------------------------------------------------- - -.. index:: - single: License - single: EOxServer Open License - single: EOxServer-SoapProxy Open License - single: Credits - -.. _EOxServer Open License: +.. _license: +======= License ======= -EOxServer Open License ----------------------- - -| EOxServer Open License -| Version 1, 8 June 2011 - -Copyright (C) 2011 EOX IT Services GmbH - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies of this Software or works derived from this Software. +.. include:: ../LICENSE -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/documentation/credits.rst b/documentation/credits.rst index da1c48f92..321a06ba5 100644 --- a/documentation/credits.rst +++ b/documentation/credits.rst @@ -36,6 +36,7 @@ Credits ======= .. figure:: ./_static/ESA_logo.png + :width: 400 Work on EOxServer has been funded by the `European Space Agency (ESA)`_ diff --git a/documentation/release_notes/1.0.0.rst b/documentation/release_notes/1.0.0.rst new file mode 100644 index 000000000..6e3f5e98d --- /dev/null +++ b/documentation/release_notes/1.0.0.rst @@ -0,0 +1,49 @@ +.. _1-0-0-release-notes: + #----------------------------------------------------------------------------- + # $Id$ + # + # Project: EOxServer + # Authors: Fabian Schindler + # + #----------------------------------------------------------------------------- + # Copyright (C) 2014 EOX IT Services GmbH + # + # Permission is hereby granted, free of charge, to any person obtaining a copy + # of this software and associated documentation files (the "Software"), to + # deal in the Software without restriction, including without limitation the + # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + # sell copies of the Software, and to permit persons to whom the Software is + # furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included in + # all copies of this Software or works derived from this Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + # IN THE SOFTWARE. + #----------------------------------------------------------------------------- + +EOxServer 1.0.0 +=============== + +Updated data model +------------------ + +- New model Product to combine multiple Coverages, Browses, and Masks +- New models CollectionType, ProductType, CoverageType, BrowseType, and MaskType to allow grouping of said objects and store meta information. + +New render pipeline +------------------- + +- Allowing custom expressions to generate browse images from raw data +- Allowing to specify mask types to either mask in or mask out data. + +Service improvements +-------------------- + +- Implementing EO-WCS GetEOCoverageSet operation according to specification +- Adding non-standard cql parameter to several services such as OpenSearch diff --git a/documentation/release_notes/index.rst b/documentation/release_notes/index.rst index 418b64686..3cfd901fa 100644 --- a/documentation/release_notes/index.rst +++ b/documentation/release_notes/index.rst @@ -27,7 +27,6 @@ # IN THE SOFTWARE. #----------------------------------------------------------------------------- - Release Notes ============= @@ -36,6 +35,7 @@ Release notes from various versions of EOxServer. .. toctree:: :maxdepth: 1 - 0.3.1 + 1.0.0 + 0.4 0.3.2 - 0.4 \ No newline at end of file + 0.3.1 diff --git a/documentation/users/images/dataset_diagraml.png b/documentation/users/operations/images/dataset_diagraml.png similarity index 100% rename from documentation/users/images/dataset_diagraml.png rename to documentation/users/operations/images/dataset_diagraml.png diff --git a/documentation/users/operations/management.rst b/documentation/users/operations/management.rst index a4f53d5a8..9304b9d6c 100644 --- a/documentation/users/operations/management.rst +++ b/documentation/users/operations/management.rst @@ -358,7 +358,7 @@ from the data (e.g if we have temperature and precipitation bands - as shown in the figure-, each product will have 2 coverages -temperature & precipitation- ) -.. figure:: images/dataset_diagraml.png +.. figure:: ./images/dataset_diagraml.png The special `timeseries` registration command can be used to