You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2014/01/05 23:29:58 UTC

[1/6] git commit: docs: Update development section.

Updated Branches:
  refs/heads/trunk 411877f45 -> 11c9f00ef


docs: Update development section.


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/983c3f8a
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/983c3f8a
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/983c3f8a

Branch: refs/heads/trunk
Commit: 983c3f8a83c71cd9a3a3de43ebca4e01a645afda
Parents: 411877f
Author: Tomaz Muraus <to...@apache.org>
Authored: Sun Jan 5 22:37:44 2014 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Sun Jan 5 22:48:06 2014 +0100

----------------------------------------------------------------------
 docs/development.rst | 48 +++++++++++++++++++++++++++++------------------
 1 file changed, 30 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/983c3f8a/docs/development.rst
----------------------------------------------------------------------
diff --git a/docs/development.rst b/docs/development.rst
index 30b7568..e494cea 100644
--- a/docs/development.rst
+++ b/docs/development.rst
@@ -1,18 +1,32 @@
 Development
 ===========
 
+This page describes Libcloud development process and contains general
+guidelines and information on how to contribute to the project.
+
 Contributing
 ------------
 
 We welcome contributions of any kind (ideas, code, tests, documentation,
 examples, ...).
 
-This page explains how you can contribute to the Libcloud project. If you get
-stuck at any point during this process, stop by on our IRC channel (#libcloud
-on freenode) and we will do our best to assist you.
+If you need help or get stuck at any point during this process, stop by on our
+IRC channel (:ref:`#libcloud on freenode <irc>`) and we will do our best to
+assist you.
+
+General contribution guidelines
+-------------------------------
 
-Style guide
------------
+* Any non-trivial change must contain tests. For more information, refer to the
+  :doc:`Testing page </testing>`.
+* All the functions and methods must contain Sphinx docstrings which are used
+  to generate the API documentation. For more information, refer to the
+  :ref:`Docstring conventions <docstring-conventions>` section bellow.
+* If you are adding a new feature, make sure to add a corresponding
+  documentation.
+
+Code style guide
+----------------
 
 * We follow `PEP8 Python Style Guide`_
 * Use 4 spaces for a tab
@@ -23,7 +37,7 @@ Style guide
   ``tox -e lint``.
   Second command fill run flake8 on all the files in the repository.
 
-And most importantly, follow the existing style in the files you are editing and
+And most importantly, follow the existing style in the file you are editing and
 **be consistent**.
 
 Git pre-commit hook
@@ -44,11 +58,13 @@ After you have installed this hook it will automatically check modified Python
 files for violations before a commit. If a violation is found, commit will be
 aborted.
 
+.. _code-conventions:
+
 Code conventions
 ----------------
 
-This section contains some conventions you should follow when writing a
-Libcloud code.
+This section describes some general code conventions you should follow when
+writing a Libcloud code.
 
 1. Import ordering
 ~~~~~~~~~~~~~~~~~~
@@ -57,7 +73,7 @@ Organize the imports in the following order:
 
 1. Standard library imports
 2. Third-party library imports
-3. Local libray (Libcloud) imports
+3. Local library (Libcloud) imports
 
 Each section should be separated with a blank line. For example:
 
@@ -176,6 +192,8 @@ For example:
             if domain is not None:
                 params['Domain'] = domain
 
+.. _docstring-conventions:
+
 Docstring conventions
 ---------------------
 
@@ -205,16 +223,10 @@ conventions to which you should adhere to are described bellow.
   ``<container_type> of <objects_type>``. For example:
   ``:rtype: `list` of :class:`Node```
 
-You can find some examples in the following file: https://github.com/apache/libcloud/blob/trunk/libcloud/compute/base.py
+For more information and examples, please refer to the following links:
 
-General guidelines
-------------------
-
-* Any non-trivial change must contain tests
-* All the functions and methods must contain Sphinx docstrings which are used
-  to generate API documentation. You can find a lot of examples of docstrings
-  in the existing code e.g. - ``libcloud/compute/base.py``
-* If you are adding a new feature, make sure to add corresponding documentation
+* Sphinx Documentation - http://sphinx-doc.org/markup/desc.html#info-field-lists
+* Example Libcloud module with documentation - https://github.com/apache/libcloud/blob/trunk/libcloud/compute/base.py
 
 Contribution workflow
 ---------------------


[4/6] git commit: docs: Fix all the Sphinx build warnings.

Posted by to...@apache.org.
docs: Fix all the Sphinx build warnings.


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/2474219e
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/2474219e
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/2474219e

Branch: refs/heads/trunk
Commit: 2474219e1d9480873d40e18f75e979c8f96d1cca
Parents: 32c951f
Author: Tomaz Muraus <to...@apache.org>
Authored: Sun Jan 5 23:23:24 2014 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Sun Jan 5 23:23:24 2014 +0100

----------------------------------------------------------------------
 docs/compute/drivers/index.rst | 2 ++
 docs/conf.py                   | 5 ++++-
 docs/development.rst           | 4 ++--
 docs/dns/drivers/index.rst     | 2 ++
 docs/storage/drivers/index.rst | 2 ++
 5 files changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/2474219e/docs/compute/drivers/index.rst
----------------------------------------------------------------------
diff --git a/docs/compute/drivers/index.rst b/docs/compute/drivers/index.rst
index 7de9c95..d36b603 100644
--- a/docs/compute/drivers/index.rst
+++ b/docs/compute/drivers/index.rst
@@ -1,3 +1,5 @@
+:orphan:
+
 Compute Drivers Documentation
 =============================
 

http://git-wip-us.apache.org/repos/asf/libcloud/blob/2474219e/docs/conf.py
----------------------------------------------------------------------
diff --git a/docs/conf.py b/docs/conf.py
index bc1ff23..ae5ea97 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -65,7 +65,10 @@ release = '0.14.0-dev'
 
 # List of patterns, relative to source directory, that match files and
 # directories to ignore when looking for source files.
-exclude_patterns = ['_build']
+exclude_patterns = [
+    '_build',
+    '*/_*.rst'
+]
 
 # The reST default role (used for this markup: `text`) to use for all documents.
 #default_role = None

http://git-wip-us.apache.org/repos/asf/libcloud/blob/2474219e/docs/development.rst
----------------------------------------------------------------------
diff --git a/docs/development.rst b/docs/development.rst
index e494cea..afe79d0 100644
--- a/docs/development.rst
+++ b/docs/development.rst
@@ -132,8 +132,8 @@ Bad:
 
     some_method(public_ips, private_ips)
 
-4. Don't abuse **kwargs
-~~~~~~~~~~~~~~~~~~~~~~~
+4. Don't abuse \*\*kwargs
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 You should always explicitly declare arguments in a function or a method
 signature and only use ``**kwargs`` and ``*args`` respectively when there is a

http://git-wip-us.apache.org/repos/asf/libcloud/blob/2474219e/docs/dns/drivers/index.rst
----------------------------------------------------------------------
diff --git a/docs/dns/drivers/index.rst b/docs/dns/drivers/index.rst
index 970cccb..b1efa25 100644
--- a/docs/dns/drivers/index.rst
+++ b/docs/dns/drivers/index.rst
@@ -1,3 +1,5 @@
+:orphan:
+
 DNS Drivers Documentation
 =========================
 

http://git-wip-us.apache.org/repos/asf/libcloud/blob/2474219e/docs/storage/drivers/index.rst
----------------------------------------------------------------------
diff --git a/docs/storage/drivers/index.rst b/docs/storage/drivers/index.rst
index cf9e85f..7f29e4f 100644
--- a/docs/storage/drivers/index.rst
+++ b/docs/storage/drivers/index.rst
@@ -1,3 +1,5 @@
+:orphan:
+
 Storage Drivers Documentation
 =============================
 


[5/6] git commit: Re-generate documentation fixtures.

Posted by to...@apache.org.
Re-generate documentation fixtures.


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/579439ae
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/579439ae
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/579439ae

Branch: refs/heads/trunk
Commit: 579439aece1895c5b2b048b1255e62d575277e7c
Parents: 2474219
Author: Tomaz Muraus <to...@apache.org>
Authored: Sun Jan 5 23:25:10 2014 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Sun Jan 5 23:25:10 2014 +0100

----------------------------------------------------------------------
 docs/compute/_supported_methods_block_storage.rst | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/579439ae/docs/compute/_supported_methods_block_storage.rst
----------------------------------------------------------------------
diff --git a/docs/compute/_supported_methods_block_storage.rst b/docs/compute/_supported_methods_block_storage.rst
index 90ad2dd..e96067e 100644
--- a/docs/compute/_supported_methods_block_storage.rst
+++ b/docs/compute/_supported_methods_block_storage.rst
@@ -33,7 +33,7 @@ Provider                              list volumes create volume destroy volume
 `Eucalyptus`_                         yes          yes           yes            yes           yes           yes            yes            
 `Exoscale`_                           yes          yes           yes            yes           yes           no             no             
 `Gandi`_                              yes          yes           yes            yes           yes           no             no             
-`Google Compute Engine`_              yes          yes           yes            yes           yes           no             no             
+`Google Compute Engine`_              yes          yes           yes            yes           yes           yes            yes            
 `GoGrid`_                             no           no            no             no            no            no             no             
 `HostVirtual`_                        no           no            no             no            no            no             no             
 `IBM SmartCloud Enterprise`_          yes          yes           yes            yes           yes           no             no             


[3/6] git commit: Fix some typos and docstring issues which were causing Sphinx warnings.

Posted by to...@apache.org.
Fix some typos and docstring issues which were causing Sphinx warnings.


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/32c951f2
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/32c951f2
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/32c951f2

Branch: refs/heads/trunk
Commit: 32c951f205b9de0ca1e1fe5f6471820754c521cb
Parents: 4724923
Author: Tomaz Muraus <to...@apache.org>
Authored: Sun Jan 5 23:19:13 2014 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Sun Jan 5 23:19:13 2014 +0100

----------------------------------------------------------------------
 libcloud/compute/base.py               |  9 ++++-----
 libcloud/compute/deployment.py         |  2 +-
 libcloud/compute/drivers/cloudstack.py | 22 +++++++---------------
 libcloud/compute/drivers/ec2.py        | 18 ++++++++----------
 libcloud/compute/drivers/vcloud.py     | 19 ++++++++-----------
 5 files changed, 28 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/32c951f2/libcloud/compute/base.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/base.py b/libcloud/compute/base.py
index 7e6b9e6..1972ba0 100644
--- a/libcloud/compute/base.py
+++ b/libcloud/compute/base.py
@@ -148,11 +148,10 @@ class Node(UuidMixin):
 
     Althrough Node objects can be subclassed, this isn't normally
     done.  Instead, any driver specific information is stored in the
-    "extra" proproperty of the node.
+    "extra" attribute of the node.
 
     >>> node.extra
     {'foo': 'bar'}
-
     """
 
     def __init__(self, id, name, state, public_ips, private_ips,
@@ -177,10 +176,10 @@ class Node(UuidMixin):
         :type driver: :class:`.NodeDriver`
 
         :param size: Size of this node. (optional)
-        :type size: :class:`.NodeSize:
+        :type size: :class:`.NodeSize`
 
         :param image: Image of this node. (optional)
-        :type size: :class:`.NodeImage:
+        :type size: :class:`.NodeImage`
 
         :param extra: Optional provider specific attributes associated with
                       this node.
@@ -380,7 +379,7 @@ class NodeLocation(object):
         :type name: ``str``
 
         :param country: Location country.
-        :type country : ``str``
+        :type country: ``str``
 
         :param driver: Driver this location belongs to.
         :type driver: :class:`.NodeDriver`

http://git-wip-us.apache.org/repos/asf/libcloud/blob/32c951f2/libcloud/compute/deployment.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/deployment.py b/libcloud/compute/deployment.py
index acab269..5cfc2c6 100644
--- a/libcloud/compute/deployment.py
+++ b/libcloud/compute/deployment.py
@@ -118,7 +118,7 @@ class ScriptDeployment(Deployment):
     Runs an arbitrary shell script on the server.
 
     This step works by first writing the content of the shell script (script
-    argument) in a *.sh file on a remote server and then running that file.
+    argument) in a \*.sh file on a remote server and then running that file.
 
     If you are running a non-shell script, make sure to put the appropriate
     shebang to the top of the script. You are also advised to do that even if

http://git-wip-us.apache.org/repos/asf/libcloud/blob/32c951f2/libcloud/compute/drivers/cloudstack.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/cloudstack.py b/libcloud/compute/drivers/cloudstack.py
index 1cc82b2..5c49dc3 100644
--- a/libcloud/compute/drivers/cloudstack.py
+++ b/libcloud/compute/drivers/cloudstack.py
@@ -557,18 +557,10 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Stops/Suspends a running virtual machine
 
+        :param node: Node to stop.
         :type node: :class:`CloudStackNode`
 
-        :param id: The ID of the virtual machine
-        :type  id: ``str``
-
-        :param forced: Force stop the VM
-                       (vm is marked as Stopped even when command
-                        fails to be send to the backend).
-                       The caller knows the VM is stopped.
-        :type  forced: ``bool``
-
-        :rtype ``str``
+        :rtype: ``str``
         """
         res = self._async_request(command='stopVirtualMachine',
                                   params={'id': node.id},
@@ -844,11 +836,11 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         :param     projectid: The project associated with keypair
         :type      projectid: ``str``
 
-        :param     domainid : The domain ID associated with the keypair
+        :param     domainid: The domain ID associated with the keypair
         :type      domainid: ``str``
 
-        :param     account : The account associated with the keypair.
-                             Must be used with the domainId parameter.
+        :param     account: The account associated with the keypair.
+                            Must be used with the domainId parameter.
         :type      account: ``str``
 
         :return:   True of False based on success of Keypair deletion
@@ -1240,10 +1232,10 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         :param     projectid: The project associated with keypair
         :type      projectid: ``str``
 
-        :param     domainid : The domain ID associated with the keypair
+        :param     domainid: The domain ID associated with the keypair
         :type      domainid: ``str``
 
-        :param     account : The account associated with the keypair.
+        :param     account: The account associated with the keypair.
                              Must be used with the domainId parameter.
         :type      account: ``str``
 

http://git-wip-us.apache.org/repos/asf/libcloud/blob/32c951f2/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index ebeae25..a40bc24 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -2051,14 +2051,14 @@ class BaseEC2NodeDriver(NodeDriver):
 
     def ex_create_security_group(self, name, description, vpc_id=None):
         """
-        Creates a new Security Group in EC2-Classic or a targetted VPC
+        Creates a new Security Group in EC2-Classic or a targetted VPC.
 
         :param      name:        The name of the security group to Create.
                                  This must be unique.
         :type       name:        ``str``
 
         :param      description: Human readable description of a Security
-        Group.
+                                 Group.
         :type       description: ``str``
 
         :param      description: Optional identifier for VPC networks
@@ -2116,10 +2116,10 @@ class BaseEC2NodeDriver(NodeDriver):
 
     def ex_delete_security_group(self, name):
         """
-        Wrapper method which calls ex_delete_security_group_by_name
+        Wrapper method which calls ex_delete_security_group_by_name.
 
         :param      name: The name of the security group
-        :type       name ``str``
+        :type       name: ``str``
 
         :rtype: ``bool``
         """
@@ -2956,7 +2956,8 @@ class BaseEC2NodeDriver(NodeDriver):
         return self.ex_modify_instance_attribute(node, attributes)
 
     def create_node(self, **kwargs):
-        """Create a new EC2 node
+        """
+        Create a new EC2 node.
 
         Reference: http://bit.ly/8ZyPSy [docs.amazonwebservices.com]
 
@@ -2985,9 +2986,7 @@ class BaseEC2NodeDriver(NodeDriver):
         :type       ex_clienttoken: ``str``
 
         :keyword    ex_blockdevicemappings: ``list`` of ``dict`` block device
-                    mappings. Example:
-                    [{'DeviceName': '/dev/sda1', 'Ebs.VolumeSize': 10},
-                     {'DeviceName': '/dev/sdb', 'VirtualName': 'ephemeral0'}]
+                    mappings.
         :type       ex_blockdevicemappings: ``list`` of ``dict``
 
         :keyword    ex_iamprofile: Name or ARN of IAM profile
@@ -3142,8 +3141,7 @@ class BaseEC2NodeDriver(NodeDriver):
 
         :return:    Dictionary with the following keys:
                     - instance_id (``str``)
-                    - timestamp (``datetime.datetime``) - timestamp of the last
-                      output
+                    - timestamp (``datetime.datetime``) - ts of the last output
                     - output (``str``) - console output
         :rtype:     ``dict``
         """

http://git-wip-us.apache.org/repos/asf/libcloud/blob/32c951f2/libcloud/compute/drivers/vcloud.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/vcloud.py b/libcloud/compute/drivers/vcloud.py
index 177820e..3b289d4 100644
--- a/libcloud/compute/drivers/vcloud.py
+++ b/libcloud/compute/drivers/vcloud.py
@@ -693,23 +693,19 @@ class VCloudNodeDriver(NodeDriver):
         """
         Creates and returns node.
 
-        @inherits: :class:`NodeDriver.create_node`
-
         :keyword    ex_network: link to a "Network" e.g.,
-          "https://services.vcloudexpress.terremark.com/api/v0.8/network/7"
+                    ``https://services.vcloudexpress...``
         :type       ex_network: ``str``
 
         :keyword    ex_vdc: Name of organisation's virtual data
-            center where vApp VMs will be deployed.
+                            center where vApp VMs will be deployed.
         :type       ex_vdc: ``str``
 
         :keyword    ex_cpus: number of virtual cpus (limit depends on provider)
         :type       ex_cpus: ``int``
 
-        :keyword    ex_row: ???
         :type       ex_row: ``str``
 
-        :keyword    ex_group: ????
         :type       ex_group: ``str``
         """
         name = kwargs['name']
@@ -1336,11 +1332,12 @@ class VCloud_1_5_NodeDriver(VCloudNodeDriver):
         return results
 
     def create_node(self, **kwargs):
-        """Creates and returns node. If the source image is:
-           - vApp template - a new vApp is instantiated from template
-           - existing vApp - a new vApp is cloned from the source vApp. Can
-                             not clone more vApps is parallel otherwise
-                             resource busy error is raised.
+        """
+        Creates and returns node. If the source image is:
+          - vApp template - a new vApp is instantiated from template
+          - existing vApp - a new vApp is cloned from the source vApp. Can
+                            not clone more vApps is parallel otherwise
+                            resource busy error is raised.
 
 
         @inherits: :class:`NodeDriver.create_node`


[6/6] git commit: Treat sphinx build warnings as errors.

Posted by to...@apache.org.
Treat sphinx build warnings as errors.


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/11c9f00e
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/11c9f00e
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/11c9f00e

Branch: refs/heads/trunk
Commit: 11c9f00ef1e34e7de581f62d088075b3f2af6e6f
Parents: 579439a
Author: Tomaz Muraus <to...@apache.org>
Authored: Sun Jan 5 23:25:29 2014 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Sun Jan 5 23:25:29 2014 +0100

----------------------------------------------------------------------
 tox.ini | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/11c9f00e/tox.ini
----------------------------------------------------------------------
diff --git a/tox.ini b/tox.ini
index 6caeed9..157031a 100644
--- a/tox.ini
+++ b/tox.ini
@@ -43,7 +43,7 @@ deps = sphinx
 basepython = python2.7
 changedir = docs
 commands = python ../contrib/generate_provider_feature_matrix_table.py
-           sphinx-build -b html -d {envtmpdir}/doctrees . _build/html
+           sphinx-build -W -b html -d {envtmpdir}/doctrees . _build/html
 
 [testenv:lint]
 deps = flake8


[2/6] git commit: docs: Update developer information page.

Posted by to...@apache.org.
docs: Update developer information page.


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/4724923a
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/4724923a
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/4724923a

Branch: refs/heads/trunk
Commit: 4724923af584948a7f2f3bfdf797ff664fda2837
Parents: 983c3f8
Author: Tomaz Muraus <to...@apache.org>
Authored: Sun Jan 5 22:50:52 2014 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Sun Jan 5 22:50:52 2014 +0100

----------------------------------------------------------------------
 docs/developer_information.rst | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/4724923a/docs/developer_information.rst
----------------------------------------------------------------------
diff --git a/docs/developer_information.rst b/docs/developer_information.rst
index 71a12b1..e87182e 100644
--- a/docs/developer_information.rst
+++ b/docs/developer_information.rst
@@ -9,13 +9,15 @@ Mailing Lists
 All of the communication about Libcloud development happens on our mailing
 lists.
 
+* `announce@libcloud.apache.org`_ - Moderated and low volume mailing list which
+  is only used for distributing important project announcements and updates.
 * `users@libcloud.apache.org`_ - Mailing list for general talk about Libcloud
   and other off-topic things
   (`users-archive <https://mail-archives.apache.org/mod_mbox/libcloud-users/>`_)
 * `dev@libcloud.apache.org`_ - General mailing list for developers
   (`dev-archive <https://mail-archives.apache.org/mod_mbox/libcloud-dev/>`_)
 * `commits@libcloud.apache.org`_ - Commits messages go to this mailing list.
-  Keep ind mind that unlike the others, this mailing list is fairly noisy.
+  Keep in mind that unlike the others, this mailing list is fairly noisy.
   (`commits-archive <https://mail-archives.apache.org/mod_mbox/libcloud-commits/>`_)
 
 Archive of old incubator mailing lists:
@@ -23,6 +25,13 @@ Archive of old incubator mailing lists:
 * `incubator-libcloud`_
 * `incubator-libcloud-commits`_
 
+.. _irc:
+
+IRC
+---
+
+* #libcloud on Freenode
+
 .. _issue-tracker:
 
 Issue Tracker
@@ -55,6 +64,7 @@ Test Coverage
 Test coverage report is automatically generated after every push and can be
 found at http://ci.apache.org/projects/libcloud/coverage.
 
+.. _`announce@libcloud.apache.org`: mailto:announce-subscribe@libcloud.apache.org
 .. _`users@libcloud.apache.org`: mailto:users-subscribe@libcloud.apache.org
 .. _`dev@libcloud.apache.org`: mailto:dev-subscribe@libcloud.apache.org
 .. _`commits@libcloud.apache.org`: mailto:commits-subscribe@libcloud.apache.org