evennia/docs/0.x/Contributing.html
2023-12-20 19:10:09 +01:00

233 lines
No EOL
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>Contributing &#8212; Evennia 0.9.5 documentation</title>
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/language_data.js"></script>
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
<link rel="shortcut icon" href="_static/favicon.ico"/>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Evennia 0.9.5</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Contributing</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section class="tex2jax_ignore mathjax_ignore" id="contributing">
<h1>Contributing<a class="headerlink" href="#contributing" title="Permalink to this headline"></a></h1>
<p>Wanna help out? Great! Heres how.</p>
<section id="spreading-the-word">
<h2>Spreading the word<a class="headerlink" href="#spreading-the-word" title="Permalink to this headline"></a></h2>
<p>Even if you are not keen on working on the server code yourself, just spreading the word is a big
help - it will help attract more people which leads to more feedback, motivation and interest.
Consider writing about Evennia on your blog or in your favorite (relevant) forum. Write a review
somewhere (good or bad, we like feedback either way). Rate it on places like <a class="reference external" href="http://www.ohloh.net/p/evennia">ohloh</a>. Talk
about it to your friends … that kind of thing.</p>
</section>
<section id="donations">
<h2>Donations<a class="headerlink" href="#donations" title="Permalink to this headline"></a></h2>
<p>The best way to support Evennia is to become an <a class="reference external" href="https://www.patreon.com/griatch">Evennia patron</a>. Evennia is a free,
open-source project and any monetary donations you want to offer are completely voluntary. See it as
a way of announcing that you appreciate the work done - a tip of the hat! A patron donates a
(usually small) sum every month to show continued support. If this is not your thing you can also
show your appreciation via a <a class="reference external" href="https://www.paypal.com/en/cgi-bin/webscr?cmd=_flow&amp;SESSION=TWy_epDPSWqNr4UJCOtVWxl-">one-time donation</a> (this is a PayPal link but you dont need
PayPal yourself).</p>
</section>
<section id="help-with-documentation">
<h2>Help with Documentation<a class="headerlink" href="#help-with-documentation" title="Permalink to this headline"></a></h2>
<p>Evennia depends heavily on good documentation and we are always looking for extra eyes and hands to
improve it. Even small things such as fixing typos are a great help!</p>
<p>The documentation is a wiki and as long as you have a GitHub account you can edit it. It can be a
good idea to discuss in the chat or forums if you want to add new pages/tutorials. Otherwise, it
goes a long way just pointing out wiki errors so we can fix them (in an Issue or just over
chat/forum).</p>
</section>
<section id="contributing-through-a-forked-repository">
<h2>Contributing through a forked repository<a class="headerlink" href="#contributing-through-a-forked-repository" title="Permalink to this headline"></a></h2>
<p>We always need more eyes and hands on the code. Even if you dont feel confident with tackling a
[bug or feature][issues], just correcting typos, adjusting formatting or simply <em>using</em> the thing
and reporting when stuff doesnt make sense helps us a lot.</p>
<p>The most elegant way to contribute code to Evennia is to use GitHub to create a <em>fork</em> of the
Evennia repository and make your changes to that. Refer to the [Forking Evennia](Version-
Control#forking-evennia) version
control instructions for detailed instructions.</p>
<p>Once you have a fork set up, you can not only work on your own game in a separate branch, you can
also commit your fixes to Evennia itself. Make separate branches for all Evennia additions you do -
dont edit your local <code class="docutils literal notranslate"><span class="pre">master</span></code> or <code class="docutils literal notranslate"><span class="pre">develop</span></code> branches directly. It will make your life a lot easier.
If you have a change that you think is suitable for the main Evennia repository, you issue a [Pull
Request][pullrequest]. This will let Evennia devs know you have stuff to share. Bug fixes should
generally be done against the <code class="docutils literal notranslate"><span class="pre">master</span></code> branch of Evennia, while new features/contribs should go into
the <code class="docutils literal notranslate"><span class="pre">develop</span></code> branch. If you are unsure, just pick one and well figure it out.</p>
</section>
<section id="contributing-with-patches">
<h2>Contributing with Patches<a class="headerlink" href="#contributing-with-patches" title="Permalink to this headline"></a></h2>
<p>To help with Evennia development its recommended to do so using a fork repository as described
above. But for small, well isolated fixes you are also welcome to submit your suggested Evennia
fixes/addendums as a [patch][patch].</p>
<p>You can include your patch in an Issue or a Mailing list post. Please avoid pasting the full patch
text directly in your post though, best is to use a site like <a class="reference external" href="http://pastebin.com/">Pastebin</a> and
just supply the link.</p>
</section>
<section id="contributing-with-contribs">
<h2>Contributing with Contribs<a class="headerlink" href="#contributing-with-contribs" title="Permalink to this headline"></a></h2>
<p>While Evennias core is pretty much game-agnostic, it also has a <code class="docutils literal notranslate"><span class="pre">contrib/</span></code> directory. The <code class="docutils literal notranslate"><span class="pre">contrib</span></code>
directory contains game systems that are specialized or useful only to certain types of games. Users
are welcome to contribute to the <code class="docutils literal notranslate"><span class="pre">contrib/</span></code> directory. Such contributions should always happen via a
Forked repository as described above.</p>
<ul class="simple">
<li><p>If you are unsure if your idea/code is suitable as a contrib, <em>ask the devs before putting any
work into it</em>. This can also be a good idea in order to not duplicate efforts. This can also act as
a check that your implementation idea is sound. We are, for example, unlikely to accept contribs
that require large modifications of the game directory structure.</p></li>
<li><p>If your code is intended <em>primarily</em> as an example or shows a concept/principle rather than a
working system, it is probably not suitable for <code class="docutils literal notranslate"><span class="pre">contrib/</span></code>. You are instead welcome to use it as
part of a [new tutorial][tutorials]!</p></li>
<li><p>The code should ideally be contained within a single Python module. But if the contribution is
large this may not be practical and it should instead be grouped in its own subdirectory (not as
loose modules).</p></li>
<li><p>The contribution should preferably be isolated (only make use of core Evennia) so it can easily be
dropped into use. If it does depend on other contribs or third-party modules, these must be clearly
documented and part of the installation instructions.</p></li>
<li><p>The code itself should follow Evennias [Code style guidelines][codestyle].</p></li>
<li><p>The code must be well documented as described in our <a class="reference external" href="https://github.com/evennia/evennia/blob/master/CODING_STYLE.md#doc-strings">documentation style
guide</a>. Expect that your
code will be read and should be possible to understand by others. Include comments as well as a
header in all modules. If a single file, the header should include info about how to include the
contrib in a game (installation instructions). If stored in a subdirectory, this info should go into
a new <code class="docutils literal notranslate"><span class="pre">README.md</span></code> file within that directory.</p></li>
<li><p>Within reason, your contribution should be designed as genre-agnostic as possible. Limit the
amount of game-style-specific code. Assume your code will be applied to a very different game than
you had in mind when creating it.</p></li>
<li><p>To make the licensing situation clear we assume all contributions are released with the same
<a class="reference internal" href="Licensing.html"><span class="doc std std-doc">license as Evennia</span></a>. If this is not possible for some reason, talk to us and well
handle it on a case-by-case basis.</p></li>
<li><p>Your contribution must be covered by <a class="reference internal" href="Unit-Testing.html"><span class="doc std std-doc">unit tests</span></a>. Having unit tests will both help
make your code more stable and make sure small changes does not break it without it being noticed,
it will also help us test its functionality and merge it quicker. If your contribution is a single
module, you can add your unit tests to <code class="docutils literal notranslate"><span class="pre">evennia/contribs/tests.py</span></code>. If your contribution is bigger
and in its own sub-directory you could just put the tests in your own <code class="docutils literal notranslate"><span class="pre">tests.py</span></code> file (Evennia will
find it automatically).</p></li>
<li><p>Merging of your code into Evennia is not guaranteed. Be ready to receive feedback and to be asked
to make corrections or fix bugs. Furthermore, merging a contrib means the Evennia project takes on
the responsibility of maintaining and supporting it. For various reasons this may be deemed to be
beyond our manpower. However, if your code were to <em>not</em> be accepted for merger for some reason, we
will instead add a link to your online repository so people can still find and use your work if they
want.</p></li>
</ul>
<p>pO1X1jbKiv_-
UBBFWIuVDEZxC0M_2pM6ywO&amp;dispatch=5885d80a13c0db1f8e263663d3faee8d66f31424b43e9a70645c907a6cbd8fb4
[forking]: <a class="reference external" href="https://github.com/evennia/evennia/wiki/Version-Control#wiki-forking-from-evennia">https://github.com/evennia/evennia/wiki/Version-Control#wiki-forking-from-evennia</a>
[pullrequest]: <a class="reference external" href="https://github.com/evennia/evennia/pulls">https://github.com/evennia/evennia/pulls</a>
[issues]: <a class="reference external" href="https://github.com/evennia/evennia/issues">https://github.com/evennia/evennia/issues</a>
[patch]: <a class="reference external" href="https://secure.wikimedia.org/wikipedia/en/wiki/Patch_%28computing%29">https://secure.wikimedia.org/wikipedia/en/wiki/Patch_(computing)</a>
[codestyle]: <a class="reference external" href="https://github.com/evennia/evennia/blob/master/CODING_STYLE.md">https://github.com/evennia/evennia/blob/master/CODING_STYLE.md</a>
[tutorials]: <a class="reference external" href="https://github.com/evennia/evennia/wiki/Tutorials">https://github.com/evennia/evennia/wiki/Tutorials</a></p>
</section>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="index.html">
<img class="logo" src="_static/evennia_logo.png" alt="Logo"/>
</a></p>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
<p><h3><a href="index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Contributing</a><ul>
<li><a class="reference internal" href="#spreading-the-word">Spreading the word</a></li>
<li><a class="reference internal" href="#donations">Donations</a></li>
<li><a class="reference internal" href="#help-with-documentation">Help with Documentation</a></li>
<li><a class="reference internal" href="#contributing-through-a-forked-repository">Contributing through a forked repository</a></li>
<li><a class="reference internal" href="#contributing-with-patches">Contributing with Patches</a></li>
<li><a class="reference internal" href="#contributing-with-contribs">Contributing with Contribs</a></li>
</ul>
</li>
</ul>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="_sources/Contributing.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com">Home page</a> </li>
<li><a href="https://github.com/evennia/evennia">Evennia Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li><a href="http://webchat.freenode.net/?channels=evennia&uio=MT1mYWxzZSY5PXRydWUmMTE9MTk1JjEyPXRydWUbb">IRC</a> -
<a href="https://discord.gg/NecFePw">Discord</a> -
<a href="https://groups.google.com/forum/#%21forum/evennia">Forums</a>
</li>
<li><a href="http://evennia.blogspot.com/">Evennia Dev blog</a> </li>
</ul>
<h3>Versions</h3>
<ul>
<li><a href="../1.0-dev/Contributing.html">1.0-dev (develop branch)</a></li>
<li><a href="Contributing.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Evennia 0.9.5</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Contributing</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>