aboutsummaryrefslogtreecommitdiff
path: root/docs/source
diff options
context:
space:
mode:
Diffstat (limited to 'docs/source')
-rw-r--r--docs/source/contributing.rst242
-rw-r--r--docs/source/index.rst1
2 files changed, 243 insertions, 0 deletions
diff --git a/docs/source/contributing.rst b/docs/source/contributing.rst
new file mode 100644
index 00000000..e7f9101e
--- /dev/null
+++ b/docs/source/contributing.rst
@@ -0,0 +1,242 @@
+.. _contributing:
+
+===========================
+Contributing
+===========================
+
+PROJ.4 has a wide and varied user base. Some are highly skilled
+geodesists with a deep knowledge of map projections and reference
+systems, some are GIS software developers and others are GIS users. All
+users, regardless of the profession or skill level, has the ability to
+contribute to PROJ.4. Here's a few suggestion on how:
+
+- Help PROJ.4-users that is less experienced than yourself.
+- Write a bug report
+- Request a new feature
+- Write documentation for your favorite map projection
+- Fix a bug
+- Implement a new feature
+
+In the following sections you can find some guidelines on how to
+contribute. As PROJ.4 is managed on GitHub most contributions require
+that you have a GitHub account. Familiarity with
+`issues <https://guides.github.com/features/issues/>`__ and the `GitHub
+Flow <https://guides.github.com/introduction/flow/>`__ is an advantage.
+
+Help a fellow PROJ.4 user
+-------------------------
+
+The main forum for support for PROJ.4 is the mailing list. You can
+subscribe to the mailing list
+`here <http://lists.maptools.org/mailman/listinfo/proj>`__ and read the
+archive `here <http://lists.maptools.org/pipermail/proj/>`__.
+
+If you have questions about the usage of PROJ.4 the mailing list is also
+the place to go. Please *do not* use the GitHub issue tracker as a
+support forum. Your question is much more likely to be answered on the
+mailing list, as many more people follow that than the issue tracker.
+
+Adding bug reports
+------------------
+
+Bug reports are handled in the `issue
+tracker <https://github.com/OSGeo/proj.4/issues>`__ on PROJ.4's home on
+GitHub. Writing a good bug report is not easy. But fixing a poorly
+documented bug is not easy either, so please put in the effort it takes
+to create a thorough bug report.
+
+A good bug report includes at least:
+
+- A title that quickly explains the problem
+- A description of the problem and how it can be reproduced
+- Version of PROJ.4 being used
+- Version numbers of any other relevant software being used, e.g.
+ operating system
+- A description of what already has been done to solve the problem
+
+The more information that is given up front, the more likely it is that
+a developer will find interest in solving the problem. You will probably
+get follow-up questions after submitting a bug report. Please answer
+them in a timely manner if you have an interest in getting the issue
+solved.
+
+Finally, please only submit bug reports that are actually related to
+PROJ.4. If the issue materializes in software that uses PROJ.4 it is
+likely a problem with that particular software. Make sure that it
+actually is a PROJ.4 problem before you submit an issue. If you can
+reproduce the problem only by using tools from PROJ.4 it is definitely a
+problem with PROJ.4.
+
+Feature requests
+----------------
+
+Got an idea for a new feature in PROJ.4? Submit a thorough description
+of the new feature in the `issue
+tracker <https://github.com/OSGeo/proj.4/issues>`__. Please include any
+technical documents that can help the developer make the new feature a
+reality. An example of this could be a publicly available academic paper
+that describes a new projection. Also, including a numerical test case
+will make it much easier to verify that an implementation of your
+requested feature actually works as you expect.
+
+Note that not all feature requests are accepted.
+
+Write documentation
+-------------------
+
+PROJ.4 is in dire need of better documentation. Any contributiions of
+documentation are greatly appreaciated. The PROJ.4 documentation is
+available on `proj4.org <ttp://proj4.org>`__. The website is generated
+with `Sphinx <http://www.sphinx-doc.org/en/stable/>`__. Contributions to
+the documentation should be made as `Pull
+Requests <https://github.com/OSGeo/proj.4/pulls>`__ on GitHub.
+
+If you intend to document one of PROJ.4's supported projections please
+use the `Mercator projection <http://proj4.org/projections/merc.html>`__
+as a template.
+
+Code contributions
+------------------
+
+Code contributions can be either bug fixes or new features. The process
+is the same for both, so they will be discussed together in this
+section.
+
+Making Changes
+~~~~~~~~~~~~~~
+
+- Create a topic branch from where you want to base your work.
+- You usually should base your topic branch off of the master branch.
+- To quickly create a topic branch: ``git checkout -b my-topic-branch``
+- Make commits of logical units.
+- Check for unnecessary whitespace with ``git diff --check`` before
+ committing.
+- Make sure your commit messages are in the `proper
+ format <http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html>`__.
+- Make sure you have added the necessary tests for your changes.
+- Make sure that all tests pass
+
+Submitting Changes
+~~~~~~~~~~~~~~~~~~
+
+- Push your changes to a topic branch in your fork of the repository.
+- Submit a pull request to the PROJ.4 repository in the OSGeo
+ organization.
+- If your pull request fixes/references an issue, include that issue
+ number in the pull request. For example:
+
+::
+
+ Wiz the bang
+
+ Fixes #123.
+
+- PROJ.4 developers will look at your patch and take an appropriate
+ action.
+
+Coding conventions
+~~~~~~~~~~~~~~~~~~
+
+Programming language
+^^^^^^^^^^^^^^^^^^^^
+
+PROJ.4 is developed strictly in ANSI C 89.
+
+Coding style
+^^^^^^^^^^^^
+
+We don't enforce any particular coding style, but please try to keep it
+as simple as possible. If improving existing code, please try to conform
+with the style of the locally surrounding code.
+
+Whitespace
+^^^^^^^^^^
+
+Throughout the PROJ.4 code base you will see differing whitespace use.
+The general rule is to keep whitespace in whatever form it is in the
+file you are currently editing. If the file has a mix of tabs and space
+please convert the tabs to space in a separate commit before making any
+other changes. This makes it a lot easier to see the changes in diffs
+when evaulating the changed code. New files should use spaces as
+whitespace.
+
+File names
+^^^^^^^^^^
+
+Files in which projections are implemented are prefixed with an
+upper-case ``PJ_`` and most other files are prefixed with lower-case
+``pj_``. Some file deviate from this pattern, most of them dates back to
+the very early releases of PROJ.4. New contributions should follow the
+pj-prefix pattern. Unless there are obvious reasons not to.
+
+Legalese
+~~~~~~~~
+
+Commiters are the front line gatekeepers to keep the code base clear of
+improperly contributed code. It is important to the PROJ.4 users,
+developers and the OSGeo foundation to avoid contributing any code to
+the project without it being clearly licensed under the project license.
+
+Generally speaking the key issues are that those providing code to be
+included in the repository understand that the code will be released
+under the MIT/X license, and that the person providing the code has the
+right to contribute the code. For the commiter themselves understanding
+about the license is hopefully clear. For other contributors, the
+commiter should verify the understanding unless the commiter is very
+comfortable that the contributor understands the license (for instance
+frequent contributors).
+
+If the contribution was developed on behalf of an employer (on work
+time, as part of a work project, etc) then it is important that an
+appropriate representative of the employer understand that the code will
+be contributed under the MIT/X license. The arrangement should be
+cleared with an authorized supervisor/manager, etc.
+
+The code should be developed by the contributor, or the code should be
+from a source which can be rightfully contributed such as from the
+public domain, or from an open source project under a compatible
+license.
+
+All unusual situations need to be discussed and/or documented.
+
+Commiters should adhere to the following guidelines, and may be
+personally legally liable for improperly contributing code to the source
+repository:
+
+- Make sure the contributor (and possibly employer) is aware of the
+ contribution terms.
+- Code coming from a source other than the contributor (such as adapted
+ from another project) should be clearly marked as to the original
+ source, copyright holders, license terms and so forth. This
+ information can be in the file headers, but should also be added to
+ the project licensing file if not exactly matching normal project
+ licensing (COPYING).
+- Existing copyright headers and license text should never be stripped
+ from a file. If a copyright holder wishes to give up copyright they
+ must do so in writing to the foundation before copyright messages are
+ removed. If license terms are changed it has to be by agreement
+ (written in email is ok) of the copyright holders.
+- Code with licenses requiring credit, or disclosure to users should be
+ added to COPYING.
+- When substantial contributions are added to a file (such as
+ substantial patches) the author/contributor should be added to the
+ list of copyright holders for the file.
+- If there is uncertainty about whether a change is proper to
+ contribute to the code base, please seek more information from the
+ project steering committee, or the foundation legal counsel.
+
+Additional Resources
+--------------------
+
+- `General GitHub documentation <http://help.github.com/>`__
+- `GitHub pull request
+ documentation <https://help.github.com/articles/about-pull-requests/>`__
+
+Acknowledgements
+----------------
+
+The *code contribution* section of this CONTRIBUTING file is inspired by
+`PDAL's <https://github.com/PDAL/PDAL/blob/master/CONTRIBUTING.md>`__
+and the *legalese* section is modified from `GDAL contributer
+guidelines <https://trac.osgeo.org/gdal/wiki/rfc3_commiters>`__
+
diff --git a/docs/source/index.rst b/docs/source/index.rst
index 21d70947..c70cdced 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -41,6 +41,7 @@ Documentation
htpd
development/index
faq
+ contributing
download
glossary
license