1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Some various comments about the new repos, more to likely come.

This commit is contained in:
Michael DeHaan 2014-09-26 17:52:50 -04:00
parent bceb0026a5
commit e8fe306cef
6 changed files with 91 additions and 16 deletions

View file

@ -62,11 +62,14 @@ I'd Like To Report A Bugs
Ansible practices responsible disclosure - if this is a security related bug, email `security@ansible.com <mailto:security@ansible.com>`_ instead of filing a ticket or posting to the Google Group and you will receive a prompt response. Ansible practices responsible disclosure - if this is a security related bug, email `security@ansible.com <mailto:security@ansible.com>`_ instead of filing a ticket or posting to the Google Group and you will receive a prompt response.
Bugs should be reported to `github.com/ansible/ansible <http://github.com/ansible/ansible>`_ after Bugs related to the core language should be reported to `github.com/ansible/ansible <http://github.com/ansible/ansible>`_ after
signing up for a free github account. Before reporting a bug, please use the bug/issue search signing up for a free github account. Before reporting a bug, please use the bug/issue search
to see if the issue has already been reported. to see if the issue has already been reported.
When filing a bug, please use the `issue template <https://raw2.github.com/ansible/ansible/devel/ISSUE_TEMPLATE.md>`_ to provide all relevant information. MODULE related bugs however should go to `ansible-modules-core <github.com/ansible/ansible-modules-core>`_ or `ansible-modules-extras <github.com/ansible/ansible-modules-extras>`_ based on the classification of the module. This is listed on the bottom of the docs page for any module.
When filing a bug, please use the `issue template <https://raw2.github.com/ansible/ansible/devel/ISSUE_TEMPLATE.md>`_ to provide all relevant information, regardless of what repo you are filing a ticket against.
Knowing your ansible version and the exact commands you are running, and what you expect, saves time and helps us help everyone with their issues Knowing your ansible version and the exact commands you are running, and what you expect, saves time and helps us help everyone with their issues
more quickly. more quickly.
@ -102,8 +105,7 @@ documenting a new feature, submit a github pull request to the code that
lives in the “docsite/rst” subdirectory of the project for most pages, and there is an "Edit on GitHub" lives in the “docsite/rst” subdirectory of the project for most pages, and there is an "Edit on GitHub"
link up on those. link up on those.
Module documentation is generated from a DOCUMENTATION structure embedded in the source code of each module Module documentation is generated from a DOCUMENTATION structure embedded in the source code of each module, which is in either the ansible-modules-core or ansible-modules-extra repos on github, depending on the module. Information about this is always listed on the bottom of the web documentation for each module.
in the library/ directory.
Aside from modules, the main docs are in restructured text Aside from modules, the main docs are in restructured text
format. format.
@ -131,9 +133,9 @@ Contributing Code (Features or Bugfixes)
---------------------------------------- ----------------------------------------
The Ansible project keeps its source on github at The Ansible project keeps its source on github at
`github.com/ansible/ansible <http://github.com/ansible/ansible>`_ `github.com/ansible/ansible <http://github.com/ansible/ansible>`_ for the core application, and two sub repos ansible/ansible-modules-core and ansible/ansible-modules-extras for module related items. If you need to know if a module is in 'core' or 'extras', consult the web documentation page for that module.
and takes contributions through The project takes contributions through
`github pull requests <https://help.github.com/articles/using-pull-requests>`_. `github pull requests <https://help.github.com/articles/using-pull-requests>`_.
It is usually a good idea to join the ansible-devel list to discuss any large features prior to submission, and this especially helps in avoiding duplicate work or efforts where we decide, upon seeing a pull request for the first time, that revisions are needed. (This is not usually needed for module development, but can be nice for large changes). It is usually a good idea to join the ansible-devel list to discuss any large features prior to submission, and this especially helps in avoiding duplicate work or efforts where we decide, upon seeing a pull request for the first time, that revisions are needed. (This is not usually needed for module development, but can be nice for large changes).

View file

@ -11,9 +11,17 @@ See :doc:`modules` for a list of various ones developed in core.
Modules can be written in any language and are found in the path specified Modules can be written in any language and are found in the path specified
by `ANSIBLE_LIBRARY` or the ``--module-path`` command line option. by `ANSIBLE_LIBRARY` or the ``--module-path`` command line option.
By default, everything that ships with ansible is pulled from it's source tree, but
additional paths can be added.
The directory "./library", alongside your top level playbooks, is also automatically
added as a search directory.
Should you develop an interesting Ansible module, consider sending a pull request to the Should you develop an interesting Ansible module, consider sending a pull request to the
`github project <http://github.com/ansible/ansible>`_ to see about getting your module `moudule-extras project <http://github.com/ansible/ansible-module-extras>`_. There's also a core
included in the core project. repo for more established and widely used modules. "Extras" modules may be promoted to core periodically,
but there's no fundamental difference in the end - both ship with ansible, all in one package, regardless
of how you acquire ansible.
.. _module_dev_tutorial: .. _module_dev_tutorial:
@ -59,7 +67,7 @@ Testing Modules
There's a useful test script in the source checkout for ansible:: There's a useful test script in the source checkout for ansible::
git clone git@github.com:ansible/ansible.git git clone git@github.com:ansible/ansible.git --recursive
source ansible/hacking/env-setup source ansible/hacking/env-setup
chmod +x ansible/hacking/test-module chmod +x ansible/hacking/test-module
@ -78,6 +86,7 @@ If you did not, you might have a typo in your module, so recheck it and try agai
Reading Input Reading Input
````````````` `````````````
Let's modify the module to allow setting the current time. We'll do this by seeing Let's modify the module to allow setting the current time. We'll do this by seeing
if a key value pair in the form `time=<string>` is passed in to the module. if a key value pair in the form `time=<string>` is passed in to the module.
@ -428,15 +437,33 @@ built and appear in the 'docsite/' directory.
.. _module_contribution: .. _module_contribution:
Getting Your Module Into Core Module Paths
````````````````````````````` ````````````
If you are having trouble getting your module "found" by ansible, be sure it is in the ANSIBLE_LIBRARY_PATH.
If you have a fork of one of the ansible module projects, do something like this::
ANSIBLE_LIBRARY=~/ansible-module-core:~/ansible-module-extras
And this will make the items in your fork be loaded ahead of what ships with Ansible. Just be sure
to make sure you're not reporting bugs on versions from your fork!
To be safe, if you're working on a variant on something in Ansible's normal distribution, it's not
a bad idea to give it a new name while you are working on it, to be sure you know you're pulling
your version.
Getting Your Module Into Ansible
````````````````````````````````
High-quality modules with minimal dependencies High-quality modules with minimal dependencies
can be included in the core, but core modules (just due to the programming can be included in the ansible, but modules (just due to the programming
preferences of the developers) will need to be implemented in Python and use preferences of the developers) will need to be implemented in Python and use
the AnsibleModule common code, and should generally use consistent arguments with the rest of the AnsibleModule common code, and should generally use consistent arguments with the rest of
the program. Stop by the mailing list to inquire about requirements if you like, and submit the program. Stop by the mailing list to inquire about requirements if you like, and submit
a github pull request to the main project. a github pull request to the `extras <https://github.com/ansible/ansible-modules-extras>`_ project.
Included modules will ship with ansible, and also have a change to be promoted to 'core' status, which
gives them slightly higher development priority (though they'll work in exactly the same way).
.. seealso:: .. seealso::

View file

@ -45,12 +45,16 @@ If you want to run the full integration test suite you'll also need the followin
Second, if you haven't already, clone the Ansible source code from GitHub:: Second, if you haven't already, clone the Ansible source code from GitHub::
git clone https://github.com/ansible/ansible.git git clone https://github.com/ansible/ansible.git --recursive
cd ansible/ cd ansible/
.. note:: .. note::
If you have previously forked the repository on GitHub, you could also clone it from there. If you have previously forked the repository on GitHub, you could also clone it from there.
.. note::
If updating your repo for testing something module related, use "git rebase origin/devel" and then "git submodule update" to fetch
the latest development versions of modules. Skipping the "git submodule update" step will result in versions that will be stale.
Activating The Source Checkout Activating The Source Checkout
++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++

View file

@ -107,7 +107,7 @@ To install from source.
.. code-block:: bash .. code-block:: bash
$ git clone git://github.com/ansible/ansible.git $ git clone git://github.com/ansible/ansible.git --recursive
$ cd ./ansible $ cd ./ansible
$ source ./hacking/env-setup $ source ./hacking/env-setup
@ -119,6 +119,12 @@ Ansible also uses the following Python modules that need to be installed::
$ sudo pip install paramiko PyYAML jinja2 httplib2 $ sudo pip install paramiko PyYAML jinja2 httplib2
Note when updating ansible, be sure to not only update the source tree, but also the "submodules" in git
which point at Ansible's own modules (not the same kind of modules, alas).
$ git pull --rebase
$ git submodule update
Once running the env-setup script you'll be running from checkout and the default inventory file Once running the env-setup script you'll be running from checkout and the default inventory file
will be /etc/ansible/hosts. You can optionally specify an inventory file (see :doc:`intro_inventory`) will be /etc/ansible/hosts. You can optionally specify an inventory file (see :doc:`intro_inventory`)
other than /etc/ansible/hosts: other than /etc/ansible/hosts:

View file

@ -192,6 +192,7 @@ def process_module(module, options, env, template, outputname, module_map):
print "rendering: %s" % module print "rendering: %s" % module
fname = module_map[module] fname = module_map[module]
# ignore files with extensions # ignore files with extensions
@ -209,6 +210,13 @@ def process_module(module, options, env, template, outputname, module_map):
if doc is None: if doc is None:
return "SKIPPED" return "SKIPPED"
if "core" in module:
print "CORE"
doc['core'] = True
else:
doc['core'] = False
all_keys = [] all_keys = []
if not 'version_added' in doc: if not 'version_added' in doc:

View file

@ -101,3 +101,31 @@ Examples
{% endfor %} {% endfor %}
{% endif %} {% endif %}
Developers, Testers, and Bug Reporting
--------------------------------------
{% set repo = "https://github.com/ansible/ansible-modules-extras" %}
{% set tracker = "https://github.com/ansible/ansible-modules-extras/issues" %}
{% if core %}
{% set repo = "https://github.com/ansible/ansible-modules-core" %}
{% set tracker = "https://github.com/ansible/ansible-modules-core/issues" %}
{% endif %}
This source of this module is hosted on GitHub in the `{{ repo }} <{{ repo }}>`_ repo.
If you believe you have found a bug in this module, and are already running the latest stable or development version of Ansbile, first look in the issue tracker at `{{ tracker }} <{{ tracker }}>`_ to see if a bug has already been filed. If not, we would be greatful if you would file one.
Should you have a question rather than a bug report, inquries are welcome on the `ansible-project google group <https://groups.google.com/forum/#!forum/ansible-project>` or on Ansible's "#ansible" channel, located on irc.freenode.net. Development oriented topics should instead use the similar `ansible-devel google group <https://groups.google.com/forum/#!forum/ansible-project>`_.
Documentation updates for this module can also be edited directly by submitting a pull request to the module source code, just look for the "DOCUMENTATION" block in the source tree.
{% if not core %}
Note that this module is designated a "extras" module. Non-core modules are still fully usuable, but may recieve slightly lower response rates for issues and pull requests.
Popular "extras" modules may be promoted to core modules over time.
{% endif %}
For help in developing on modules, should you be so inclined, please read :doc:`community`, :doc:`developing_test_pr` and :doc:`developing_modules`.