Skip to content
Commits on Source (9)
---
exclude_paths:
- 'tests/**'
- 'docs/conf.py'
......@@ -5,22 +5,18 @@ dist: trusty
python:
- "2.7"
- "3.5"
- "3.6"
git:
submodules: false
addons:
apt:
sources:
- sourceline: 'ppa:ubuntugis/ppa'
packages:
- gdal-bin
- libgdal-dev
- libgdal1h
- libgdal1-dev
- libgeos-dev
- devscripts
- debhelper
- python-setuptools
# Handle Git submodules yourself
git:
......@@ -28,8 +24,9 @@ git:
install:
- pip install pip --upgrade
- pip install .
- pip install -r requirements.txt
- pip install -r requirements-gdal.txt
- pip install -r requirements-extra.txt
- pip install -r requirements-dev.txt
- pip install coveralls
......@@ -43,11 +40,11 @@ after_success:
- debuild -b -uc -us
# whitelist
branches:
only:
- master
notifications:
irc:
channels:
- "irc.freenode.org#geopython"
# branches:
# only:
# - master
# notifications:
# irc:
# channels:
# - "irc.freenode.org#geopython"
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at pywps-dev@lists.osgeo.org. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
......@@ -4,7 +4,7 @@ Contributing to PyWPS
The PyWPS project openly welcomes contributions (bug reports, bug fixes, code
enhancements/features, etc.). This document will outline some guidelines on
contributing to PyWPS. As well, the PyWPS `community <http://pywps.org/community>`_ is a
great place to get an idea of how to connect and participate in PyWPS community
great place to get an idea of how to connect and participate in the PyWPS community
and development.
PyWPS has the following modes of contribution:
......@@ -15,14 +15,14 @@ PyWPS has the following modes of contribution:
Code of Conduct
---------------
Contributors to this project are expected to act respectfully toward others in
Contributors to this project are expected to act respectfully towards others in
accordance with the `OSGeo Code of Conduct
<http://www.osgeo.org/code_of_conduct>`_.
Contributions and Licensing
---------------------------
Contributors are asked to confirm that they comply with project `license
Contributors are asked to confirm that they comply with the project `license
<https://github.com/geopython/PyWPS/blob/master/LICENSE.txt>`_ guidelines.
GitHub Commit Access
......@@ -53,6 +53,9 @@ GitHub Pull Requests
https://github.com/geopython/pywps/graphs/contributors
- unclaimed copyright, by default, is assigned to the main copyright holders as
specified in https://github.com/geopython/pywps/blob/master/LICENSE.txt
- make sure, the tests are passing on [travis-ci](https://travis-ci.org/geopython/pywps) sevice, as well as on your local machine `tox`::
tox
Contributions and Licensing Agreement Template
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
......@@ -85,10 +88,10 @@ Documentation
Bugs
----
PyWPS' `issue tracker <https://github.com/geopython/pywps/issues>`_ is the
The PyWPS `issue tracker <https://github.com/geopython/pywps/issues>`_ is the
place to report bugs or request enhancements. To submit a bug be sure to specify
the PyWPS version you are using, the appropriate component, a description of how
to reproduce the bug, as well as what version of Python and platform.
to reproduce the bug, as well as the Python version and the platform.
Forking PyWPS
-------------
......@@ -135,7 +138,9 @@ Submitting a Pull Request
^^^^^^^^^^^^^^^^^^^^^^^^^
This section will guide you through steps of working on PyWPS. This section
assumes you have forked PyWPS into your own GitHub repository.
assumes you have forked PyWPS into your own GitHub repository. Note that
``develop`` is the main development branch in PyWPS; ``master`` is only used
for stable releases and managed exclusively by the PyWPS team.
.. code-block:: bash
......@@ -148,11 +153,11 @@ assumes you have forked PyWPS into your own GitHub repository.
cd pywps
pip install -e . && pip install -r requirements.txt
# add the main PyWPS master branch to keep up to date with upstream changes
# add the main PyWPS development branch to keep up to date with upstream changes
git remote add upstream https://github.com/geopython/pywps.git
git pull upstream master
git pull upstream develop
# create a local branch off master
# create a local branch off develop
# The name of the branch should include the issue number if it exists
git branch issue-72
git checkout issue-72
......@@ -175,8 +180,8 @@ master:
.. code-block:: bash
git checkout master
git pull upstream master
git checkout develop
git pull upstream develop
.. _`Corporate`: http://www.osgeo.org/sites/osgeo.org/files/Page/corporate_contributor.txt
.. _`Individual`: http://www.osgeo.org/sites/osgeo.org/files/Page/individual_contributor.txt
......
......@@ -27,18 +27,18 @@ Or in alternative install it manually:
$ sudo python setup.py install
Install demo service
--------------------
Install example service
-----------------------
$ git clone https://github.com/ldesousa/pywps-4-demo.git pywps-4-demo
$ git clone https://github.com/geopython/pywps-flask.git pywps-flask
Run demo
--------
Run example service
-------------------
$ python demo.py
Access demo
-----------
Access example service
----------------------
http://localhost:5000
prune docs/
prune tests/
include *.txt
recursive-include pywps/schemas *
include *.rst
recursive-include pywps *
global-exclude *.py[co]
......@@ -5,6 +5,7 @@ the Open Geospatial Consortium. PyWPS is written in Python.
[![Documentation Status](https://img.shields.io/badge/docs-latest-brightgreen.svg)](http://pywps.readthedocs.org/en/latest/?badge=latest)
[![Build Status](https://travis-ci.org/geopython/pywps.png)](https://travis-ci.org/geopython/pywps)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/19d53c45a3854e37b89523cf9bb1d262)](https://www.codacy.com/project/cehbrecht/pywps/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=geopython/pywps&amp;utm_campaign=Badge_Grade_Dashboard)
[![Coverage Status](https://coveralls.io/repos/github/geopython/pywps/badge.svg?branch=master)](https://coveralls.io/github/geopython/pywps?branch=master)
[![PyPI](https://img.shields.io/pypi/dm/pywps.svg)]()
[![GitHub license](https://img.shields.io/github/license/geopython/pywps.svg)]()
......@@ -34,13 +35,13 @@ python -m coverage report -m
# Run web application
## Demo application
## Example service
Clone demo app after having installed PyWPS:
Clone the example service after having installed PyWPS:
```bash
git clone git://github.com/PyWPS/pywps-4-demo.git
cd demo/
git clone git://github.com/geopython/pywps-flask.git pywps-flask
cd pywps-flask
python demo.py
```
......
# Howto release PyWPS
This document gives you, as PyWPS release master complete tutorial of how to get
PyWPS release rolled up and deployed to target server, create packages etc.
This document gives you, as PyWPS release master, a complete tutorial of how to get
a PyWPS release rolled up and deployed to a target server, create packages etc.
## PyWPS versioning
PyWPS uses [Debian version naming system](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version). Every policy should be checked against it.
PyWPS uses [Debian version naming system](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version).
Every policy should be checked against it.
PyWPS uses 3 numbers release description: MAJOR.MINOR.MAINTENANCE. Within MAJOR
PyWPS uses a 3 number release description: MAJOR.MINOR.MAINTENANCE. Within MAJOR
releases, we should aim, not to break backwards compatibility.
Event MINOR version numbers (0, 2, 4, 6, ...) are considered as stable, where as
odd numbers (1, 3, 5, 7, ...) are current development branches. MINOR releases
should add new features.
MAINTENANCE number should be used for bugfix releases only. No new features are
added.
The MAINTENANCE number should be used for bugfix releases only. No new features
are added.
For release candindates `MAJOR.MINOR.MAINTENANCE-rcX` format should be used.
For release candidates, the `MAJOR.MINOR.MAINTENANCE-rcX` format should be used.
## Go to `master` branch
## Check `master` branch
`master` is the main development branch.
Before a release, make sure, that [Travis CI](https://travis-ci.org/geopython/pywps) is indicating full successful test suite check.
```
git checkout master
```
## Fix files, create tags, commit, push
* Fix the [VERSION.txt](https://github.com/geopython/pywps/blob/master/VERSION.txt) file.
......@@ -42,13 +43,13 @@ git push
git push --tags
```
* Update version in `VERSION.txt` and `pywps/__init__.py` to dev branch, e.g.
`4.1-dev` and push to master:
* Update version in `VERSION.txt` and `pywps/__init__.py` to dev, e.g.
`4.3-dev` on `master` branch:
```
git checkout master
$EDITOR VERSION.txt pywps/__init__.py # add 4.1-dev version
git commit -m"Updating version to 4.1-dev"
$EDITOR VERSION.txt pywps/__init__.py # add 4.3-dev version
git commit -m"Updating version to 4.3-dev"
git push
```
......@@ -56,18 +57,18 @@ git push
```
cd /tmp
git clone git@github.com:geopython/pywps.git pywps-4
cd pywps-4
git clone git@github.com:geopython/pywps.git
cd pywps
git checkout X.Y.Z
python setup.py bdist_egg upload
python setup.py bdist_wheel upload
```
## Fix pywps-demo project (only for stable releases)
## Fix the pywps-flask project (only for stable releases)
```
git checkout master
```
* Fix the [VERSION.txt](https://github.com/geopython/pywps-demo/blob/master/VERSION.txt) file.
* Fix the [VERSION.txt](https://github.com/geopython/pywps-flask/blob/master/VERSION.txt) file.
```
$EDITOR VERSION.txt
......@@ -100,10 +101,10 @@ NOTE: [IF ANY]
What is PyWPS:
--------------
PyWPS (Python Web Processing Service) is implementation of Web
PyWPS (Python Web Processing Service) is an implementation of the Web
Processing Service standard from Open Geospatial Consortium (OGC(R)).
Processes can be written using GRASS GIS, but usage of other programs, like
R package, GDAL or PROJ tools, is possible as well.
R, GDAL or PROJ tools, is possible as well.
Happy GISing!
......
pywps (4.0.0-7) UNRELEASED; urgency=medium
pywps (4.2.0-1) unstable; urgency=medium
* New upstream release.
* Bump Standards-Version to 4.2.1, no changes.
* Update watch file to limit matches to archive path.
-- Bas Couwenberg <sebastic@debian.org> Sun, 05 Aug 2018 20:54:53 +0200
* Update copyright holders.
* Add jinja2, netcdf4, pathlib & requests to (build) dependencies.
* Drop demobuffer-syntaxerror.patch, fixed upstream.
Refresh remaining patches.
* Update offline-tests.patch with more tests to skip.
* Include joblauncher in python-pywps package.
-- Bas Couwenberg <sebastic@debian.org> Mon, 17 Dec 2018 12:10:37 +0100
pywps (4.0.0-6) unstable; urgency=medium
......
......@@ -13,9 +13,13 @@ Build-Depends: debhelper (>= 9),
python-dateutil,
python-flufl.enum,
python-gdal,
python-jinja2,
python-jsonschema,
python-lxml,
python-netcdf4,
python-owslib,
python-pathlib,
python-requests,
python-setuptools,
python-sphinx,
python3-sphinx,
......@@ -31,14 +35,18 @@ Architecture: all
Depends: python-dateutil,
python-flufl.enum,
python-gdal,
python-jinja2,
python-jsonschema,
python-lxml,
python-owslib,
python-pathlib,
python-requests,
python-sqlalchemy,
python-werkzeug,
${python:Depends},
${misc:Depends}
Recommends: python-mapscript,
python-netcdf4,
python-pyproj
Suggests: grass-core,
r-base
......
......@@ -4,9 +4,9 @@ Upstream-Contact: PyWPS Development Team <pywps-dev@lists.osgeo.org>
Source: https://github.com/geopython/pywps/releases
Files: *
Copyright: 2014-2016, PyWPS Development Team, represented by Jachym Cepicky
Copyright: 2018, Open Source Geospatial Foundation and others
2014-2016, PyWPS Development Team, represented by PyWPS Project Steering Committee
2016, OSGeo Foundation, represented by PyWPS Project Steering Committee
2016, PyWPS Project Steering Committee
License: Expat
Files: debian/*
......
Description: Fix SyntaxError with Sphinx 1.7.
Author: Bas Couwenberg <sebastic@debian.org>
Bug-Debian: https://bugs.debian.org/896612
Forwarded: not-needed
--- a/docs/demobuffer.py
+++ b/docs/demobuffer.py
@@ -57,7 +57,7 @@ class DemoBuffer(Process):
version='1.0.0',
title='Buffer',
abstract='This process demonstrates, how to create any process in PyWPS environment',
- metadata=[Metadata('process metadata 1', 'http://example.org/1'), Metadata('process metadata 2', 'http://example.org/2')]
+ metadata=[Metadata('process metadata 1', 'http://example.org/1'), Metadata('process metadata 2', 'http://example.org/2')],
inputs=inputs,
outputs=outputs,
store_supported=True,
......@@ -21,7 +21,7 @@ Author: Bas Couwenberg <sebastic@debian.org>
sys.path.append("/usr/lib/grass64/etc/python/")
--- a/tests/validator/test_complexvalidators.py
+++ b/tests/validator/test_complexvalidators.py
@@ -70,7 +70,8 @@ class ValidateTest(unittest.TestCase):
@@ -79,7 +79,8 @@ class ValidateTest(unittest.TestCase):
self.assertTrue(validategml(gml_input, MODE.SIMPLE), 'SIMPLE validation')
if WITH_GDAL:
self.assertTrue(validategml(gml_input, MODE.STRICT), 'STRICT validation')
......@@ -30,4 +30,40 @@ Author: Bas Couwenberg <sebastic@debian.org>
+ self.assertTrue(validategml(gml_input, MODE.VERYSTRICT), 'VERYSTRICT validation')
gml_input.stream.close()
def test_geojson_validator(self):
def test_json_validator(self):
@@ -140,6 +141,7 @@ class ValidateTest(unittest.TestCase):
else:
self.assertFalse(validatenetcdf(netcdf_input, MODE.STRICT), 'STRICT validation')
+ @unittest.skipIf('OFFLINE_TESTS' in os.environ, "offline tests only")
def test_dods_validator(self):
opendap_input = ComplexInput('dods', 'opendap test', [FORMATS.DODS,])
opendap_input.url = "http://test.opendap.org:80/opendap/netcdf/examples/sresa1b_ncar_ccsm3_0_run1_200001.nc"
--- a/tests/test_execute.py
+++ b/tests/test_execute.py
@@ -177,6 +177,7 @@ def get_output(doc):
class ExecuteTest(unittest.TestCase):
"""Test for Exeucte request KVP request"""
+ @unittest.skipIf('OFFLINE_TESTS' in os.environ, "offline tests only")
def test_dods(self):
if not WITH_NC4:
self.skipTest('netCDF4 not installed')
--- a/tests/test_inout.py
+++ b/tests/test_inout.py
@@ -129,6 +129,7 @@ class IOHandlerTest(unittest.TestCase):
self.iohandler.file = source
self._test_outout(SOURCE_TYPE.FILE)
+ @unittest.skipIf('OFFLINE_TESTS' in os.environ, "offline tests only")
def test_url(self):
wfsResource = 'http://demo.mapserver.org/cgi-bin/wfs?' \
@@ -339,6 +340,7 @@ class ComplexOutputTest(unittest.TestCas
else:
self.assertEqual(base64.b64decode(b).decode(), self.data)
+ @unittest.skipIf('OFFLINE_TESTS' in os.environ, "offline tests only")
def test_url_handler(self):
wfsResource = 'http://demo.mapserver.org/cgi-bin/wfs?' \
'service=WFS&version=1.1.0&' \
......@@ -4,7 +4,7 @@ Forwarded: not-needed
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -51,11 +51,11 @@ html_sidebars = {
@@ -54,11 +54,11 @@ html_sidebars = {
}
html_theme_options = {
'show_related': True,
......
offline-tests.patch
use-mathjax-package.patch
privacy-breach.patch
demobuffer-syntaxerror.patch
python2-sphinx.patch
......@@ -4,7 +4,7 @@ Forwarded: not-needed
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -31,6 +31,8 @@ exclude_patterns = ['_build']
@@ -34,6 +34,8 @@ exclude_patterns = ['_build']
source_suffix = '.rst'
master_doc = 'index'
......
......@@ -32,10 +32,14 @@ workdir=workdir
maxprocesses=10
parallelprocesses=2
[processing]
mode=default
[logging]
level=INFO
file=logs/pywps.log
database=sqlite:///logs/pywps-logs.sqlite3
format=%(asctime)s] [%(levelname)s] file=%(pathname)s line=%(lineno)s module=%(module)s function=%(funcName)s %(message)s
[grass]
......