This file is indexed.

/usr/share/doc/mapproxy/html/development.html is in mapproxy-doc 1.9.0-3+deb9u1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
<!DOCTYPE html>


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Development &#8212; MapProxy 1.8.2a0 Docs</title>
    
    <link rel="stylesheet" href="_static/basic.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <link rel="stylesheet" href="_static/bootstrap-3.3.6/css/bootstrap.min.css" type="text/css" />
    <link rel="stylesheet" href="_static/bootstrap-3.3.6/css/bootstrap-theme.min.css" type="text/css" />
    <link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
    <link rel="stylesheet" href="_static/mapproxy.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    './',
        VERSION:     '1.8.2a0',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/underscore.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <script type="text/javascript" src="_static/js/jquery-1.11.0.min.js"></script>
    <script type="text/javascript" src="_static/js/jquery-fix.js"></script>
    <script type="text/javascript" src="_static/bootstrap-3.3.6/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="_static/bootstrap-sphinx.js"></script>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="top" title="MapProxy 1.8.2a0 Docs" href="index.html" />
    <link rel="next" title="MapProxy 2.0" href="mapproxy_2.html" />
    <link rel="prev" title="Decorate Image" href="decorate_img.html" />
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
<meta name="apple-mobile-web-app-capable" content="yes">

  </head>
  <body role="document">

<div id="navbar" class="navbar navbar-default ">
  <div class="container">
    <div class="navbar-header">
      <!-- .btn-navbar is used as the toggle for collapsed navbar content -->
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a href="index.html" class="pull-left"><img src="_static/logo.png" height="50">
      </a>
      <a class="navbar-brand" href="index.html">
        <span>
          MapProxy</span>
        <span>1.8.2a0</span>
      </a>
    </div>
    <div class="collapse navbar-collapse nav-collapse">
      
        
<form class="navbar-form navbar-right" action="search.html" method="get">
 <div class="form-group">
  <input type="text" name="q" class="form-control" placeholder="Search" />
 </div>
  <input type="hidden" name="check_keywords" value="yes" />
  <input type="hidden" name="area" value="default" />
</form>
      
    </div>
  </div>
</div>

<div class="container">
  <div class="row">
      <div class="col-md-3">
        <div id="sidebar" class="bs-sidenav" role="complementary"><ul class="current">
<li class="toctree-l1"><a class="reference internal" href="install.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="install_windows.html">Installation on Windows</a></li>
<li class="toctree-l1"><a class="reference internal" href="install_osgeo4w.html">Installation on OSGeo4W</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Services</a></li>
<li class="toctree-l1"><a class="reference internal" href="sources.html">Sources</a></li>
<li class="toctree-l1"><a class="reference internal" href="caches.html">Caches</a></li>
<li class="toctree-l1"><a class="reference internal" href="seed.html">Seeding</a></li>
<li class="toctree-l1"><a class="reference internal" href="coverages.html">Coverages</a></li>
<li class="toctree-l1"><a class="reference internal" href="mapproxy_util.html">mapproxy-util</a></li>
<li class="toctree-l1"><a class="reference internal" href="mapproxy_util_autoconfig.html">mapproxy-util autoconfig</a></li>
<li class="toctree-l1"><a class="reference internal" href="deployment.html">Deployment</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration_examples.html">Configuration examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="inspire.html">INSPIRE View Service</a></li>
<li class="toctree-l1"><a class="reference internal" href="labeling.html">WMS Labeling</a></li>
<li class="toctree-l1"><a class="reference internal" href="auth.html">Authentication and Authorization</a></li>
<li class="toctree-l1"><a class="reference internal" href="decorate_img.html">Decorate Image</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Development</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#source">Source</a></li>
<li class="toctree-l2"><a class="reference internal" href="#documentation">Documentation</a></li>
<li class="toctree-l2"><a class="reference internal" href="#issue-tracker">Issue Tracker</a></li>
<li class="toctree-l2"><a class="reference internal" href="#tests">Tests</a></li>
<li class="toctree-l2"><a class="reference internal" href="#communication">Communication</a></li>
<li class="toctree-l2"><a class="reference internal" href="#tips-on-development">Tips on development</a></li>
<li class="toctree-l2"><a class="reference internal" href="#coding-style-guide">Coding Style Guide</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="mapproxy_2.html">MapProxy 2.0</a></li>
</ul>

        </div>
      </div>
    <div class="col-md-8">
      
  <div class="section" id="development">
<h1>Development<a class="headerlink" href="#development" title="Permalink to this headline"></a></h1>
<p>You want to improve MapProxy, found a bug and want to fix it? Great! This document points you to some helpful information.</p>
<div class="section" id="source">
<h2>Source<a class="headerlink" href="#source" title="Permalink to this headline"></a></h2>
<p>Releases are available from the <a class="reference external" href="http://pypi.python.org/pypi/MapProxy">PyPI project page of MapProxy</a>. There is also <a class="reference external" href="http://pypi.python.org/packages/source/M/MapProxy/">an archive of all releases</a>.</p>
<p>MapProxy uses <a class="reference external" href="http://git-scm.com/">Git</a> as a source control management tool. If you are new to distributed SCMs or Git we recommend to read <a class="reference external" href="http://git-scm.com/book">Pro Git</a>.</p>
<p>The main (authoritative) repository is hosted at <a class="reference external" href="http://github.com/mapproxy/mapproxy">http://github.com/mapproxy/mapproxy</a></p>
<p>To get a copy of the repository call:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">mapproxy</span><span class="o">/</span><span class="n">mapproxy</span>
</pre></div>
</div>
<p>If you want to contribute a patch, please consider <a class="reference external" href="http://help.github.com/fork-a-repo/">creating a &#8220;fork&#8221;</a> instead. This makes life easier for all of us.</p>
</div>
<div class="section" id="documentation">
<h2>Documentation<a class="headerlink" href="#documentation" title="Permalink to this headline"></a></h2>
<p>This is the documentation you are reading right now. The raw files can be found in <code class="docutils literal"><span class="pre">doc/</span></code>. The HTML version user documentation is build with <a class="reference external" href="http://sphinx.pocoo.org/">Sphinx</a>. To rebuild this documentation install Sphinx with <code class="docutils literal"><span class="pre">pip</span> <span class="pre">install</span> <span class="pre">sphinx</span> <span class="pre">sphinx-bootstrap-theme</span></code> and call <code class="docutils literal"><span class="pre">python</span> <span class="pre">setup.py</span> <span class="pre">build_sphinx</span></code>. The output appears in <code class="docutils literal"><span class="pre">build/sphinx/html</span></code>. The latest documentation can be found at <code class="docutils literal"><span class="pre">http://mapproxy.org/docs/lates/</span></code>.</p>
</div>
<div class="section" id="issue-tracker">
<h2>Issue Tracker<a class="headerlink" href="#issue-tracker" title="Permalink to this headline"></a></h2>
<p>We are using <a class="reference external" href="https://github.com/mapproxy/mapproxy/issues">the issue tracker at GitHub</a> to manage all bug reports, enhancements and new feature requests for MapProxy. Go ahead and <a class="reference external" href="https://github.com/mapproxy/mapproxy/issues/new">create new tickets</a>. Feel free to post to the <a class="reference internal" href="#mailing-list">mailing list</a> first, if you are not sure if you really found a bug or if a feature request is in the scope of MapProxy.</p>
</div>
<div class="section" id="tests">
<h2>Tests<a class="headerlink" href="#tests" title="Permalink to this headline"></a></h2>
<p>MapProxy contains lots of automatic tests. If you don&#8217;t count in the <code class="docutils literal"><span class="pre">mapproxy-seed</span></code>-tool and the WSGI application, the test coverage is around 95%. We want to keep this number high, so all new developments should include some tests.</p>
<p>MapProxy uses <a class="reference external" href="http://somethingaboutorange.com/mrl/projects/nose/">Nose</a> as a test loader and runner. To install Nose and all further test dependencies call:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">r</span> <span class="n">requirements</span><span class="o">-</span><span class="n">tests</span><span class="o">.</span><span class="n">txt</span>
</pre></div>
</div>
<p>To run the actual tests call:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">nosetests</span>
</pre></div>
</div>
<div class="section" id="available-tests">
<h3>Available tests<a class="headerlink" href="#available-tests" title="Permalink to this headline"></a></h3>
<p>We distinguish between doctests, unit, system tests.</p>
<div class="section" id="doctests">
<h4>Doctests<a class="headerlink" href="#doctests" title="Permalink to this headline"></a></h4>
<p><a class="reference external" href="http://docs.python.org/library/doctest.html">Doctest</a> are embedded into the source documentation and are great for documenting small independent functions or methods. You will find lots of doctest in the <code class="docutils literal"><span class="pre">mapproxy.core.srs</span></code> module.</p>
</div>
<div class="section" id="unit-tests">
<h4>Unit tests<a class="headerlink" href="#unit-tests" title="Permalink to this headline"></a></h4>
<p>Tests that are a little bit more complex, eg. that need some setup or state, are put into <code class="docutils literal"><span class="pre">mapproxy.tests.unit</span></code>. To be recognized as a test all functions and classes should be prefixed with <code class="docutils literal"><span class="pre">test_</span></code> or <code class="docutils literal"><span class="pre">Test</span></code>. Refer to the existing tests for examples.</p>
</div>
<div class="section" id="system-tests">
<h4>System tests<a class="headerlink" href="#system-tests" title="Permalink to this headline"></a></h4>
<p>We have some tests that will start the whole MapProxy application, issues requests and does some assertions on the responses. All XML responses will be validated against the schemas in this tests. These test are located in <code class="docutils literal"><span class="pre">mapproxy.tests.system</span></code>.</p>
</div>
</div>
</div>
<div class="section" id="communication">
<h2>Communication<a class="headerlink" href="#communication" title="Permalink to this headline"></a></h2>
<div class="section" id="mailing-list">
<h3>Mailing list<a class="headerlink" href="#mailing-list" title="Permalink to this headline"></a></h3>
<p>The preferred medium for all MapProxy related discussions is our mailing list <a class="reference external" href="mailto:mapproxy&#37;&#52;&#48;lists&#46;osgeo&#46;org">mapproxy<span>&#64;</span>lists<span>&#46;</span>osgeo<span>&#46;</span>org</a> You must <a class="reference external" href="http://lists.osgeo.org/mailman/listinfo/mapproxy">subscribe</a> to the list before you can write. The archive is <a class="reference external" href="http://lists.osgeo.org/pipermail/mapproxy/">available here</a>.</p>
</div>
<div class="section" id="irc">
<h3>IRC<a class="headerlink" href="#irc" title="Permalink to this headline"></a></h3>
<p>There is also a channel on <a class="reference external" href="http://freenode.net/">Freenode</a>: <code class="docutils literal"><span class="pre">#mapproxy</span></code>. It is a quiet place but you might find someone during business hours (central european time).</p>
</div>
</div>
<div class="section" id="tips-on-development">
<h2>Tips on development<a class="headerlink" href="#tips-on-development" title="Permalink to this headline"></a></h2>
<p>You are using <cite>virtualenv</cite> as described in <a class="reference internal" href="install.html"><span class="doc">Installation</span></a>, right?</p>
<p>Before you start hacking on MapProxy you should install it in development-mode. In the root directory of MapProxy call <code class="docutils literal"><span class="pre">pip</span> <span class="pre">install</span> <span class="pre">-e</span> <span class="pre">./</span></code>. Instead of installing and thus copying MapProxy into your <cite>virtualenv</cite>, this will just link to your source directory. If you now start MapProxy, the source from your MapProxy directory will be used. Any change you do in the code will be available if you restart MapProxy. If you use the  <code class="docutils literal"><span class="pre">mapproxy-util</span> <span class="pre">serve-develop</span></code> command, any change in the source will issue a reload of the MapProxy server.</p>
</div>
<div class="section" id="coding-style-guide">
<h2>Coding Style Guide<a class="headerlink" href="#coding-style-guide" title="Permalink to this headline"></a></h2>
<p>MapProxy generally follows the <a class="reference external" href="http://www.python.org/dev/peps/pep-0008/">Style Guide for Python Code</a>. With the only exception that we permit a line width of about 90 characters.</p>
</div>
</div>


    </div>
  </div>
</div>
<footer class="footer">
  <div class="container">
    <p class="pull-right">
      <a href="#">Back to top</a>
    </p>
    <p>
     
       &copy; Copyright Oliver Tonnhofer, Omniscale, <a href="http://mapproxy.org/about">Legal</a>
     
     <br/>
     
       Last updated on 2018-01-07
     <br/>

     
       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.9.
     
   </p>
 </div>
</footer>
  </body>
</html>