Skip to content

Commit

Permalink
progress docs
Browse files Browse the repository at this point in the history
  • Loading branch information
jlblancoc committed Jul 21, 2020
1 parent 5029620 commit bce3360
Show file tree
Hide file tree
Showing 12 changed files with 162 additions and 35 deletions.
2 changes: 1 addition & 1 deletion doc/HowToReleaseNewVersion.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ After the new version seems good to go:
* Do the final `git commit` to `develop` before the release.
* Merge to `master`, then create the new tag. This follows the [git-flow pattern](https://nvie.com/posts/a-successful-git-branching-model/):

![Git-flow pattern](design_of_images/git-flow-pattern.png)
![Git-flow pattern](images/git-flow-pattern.png)

## 2) Create source packages

Expand Down
5 changes: 0 additions & 5 deletions doc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,6 @@ Install doxyrest: [instructions](https://github.com/vovkos/doxyrest_b/blob/maste
# Dependencies for doxyrest_b
sudo apt install liblua5.2-dev libexpat-dev ragel
echo "set (EXPAT_LIB_DIR /usr/lib/x86_64-linux-gnu)" >> paths.cmake
echo "set (LUA_LIB_DIR /usr/lib/x86_64-linux-gnu)" >> paths.cmake
echo "set (OPENSSL_INC_DIR DISABLED)" >> paths.cmake
echo "set (AXL_CMAKE_DIR $(pwd)/axl/cmake $(pwd)/axl/build/cmake)" >> paths.cmake
```

# How to generate docs
Expand Down
22 changes: 11 additions & 11 deletions doc/source/MRPT_Coding_Style.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,16 +45,16 @@ More specifically:

.. code-block:: vim
set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<
set list
set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<
set list
* Change the default editor settings so that you:

* Use 1 tab for indentation
* Use 1 tab for indentation

* Use an additional tab for *hanging indentation* (e.g. for open parenthesis
* Use an additional tab for *hanging indentation* (e.g. for open parenthesis
cases)
* Use spaces for splitting words in the same line, aligning code snippets
* Use spaces for splitting words in the same line, aligning code snippets
etc.

In the following example `>.` designates a tab character. If the latter is not
Expand Down Expand Up @@ -83,9 +83,9 @@ Misc
======

* **Never**, **ever**, put a `using namespace XXX;` in a header file, since it
will pollute without control user namespaces. An exception is its use
**inside** the scope of a function implementation in a header, e.g. an
inline function or method.
will pollute without control user namespaces. An exception is its use
**inside** the scope of a function implementation in a header, e.g. an
inline function or method.

* Member variables of a `struct` should have **no** suffix or prefix, e.g:

Expand All @@ -96,8 +96,8 @@ Misc
};
* Public variable of a `class` should have **no** suffic or prefix.
Private/protected members should have the `m_` prefix or, alternatively, the
`_` suffix. For *methods*, use **lower camel case** or K&R style, e.g.
Private/protected members should have the `m_` prefix or, alternatively, the
`_` suffix. For *methods*, use **lower camel case** or K&R style, e.g.

.. code-block:: cpp
Expand All @@ -111,7 +111,7 @@ Misc
};
* In general, `typedefs` and `using` will use lowercase with underscores, e.g.
`using vector_int = std::vector<int>;`
`using vector_int = std::vector<int>;`

* If a packed structure is defined (i.e. `#pragma pack(push,1) ... #pragma pack(pop)`),
it will be much safer to make all fields protected and offer accessor methods.
Expand Down
7 changes: 7 additions & 0 deletions doc/source/app_carmen2rawlog.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.. app_carmen2rawlog:
====================================================
Application: carmen2rawlog
====================================================

XXX
7 changes: 7 additions & 0 deletions doc/source/app_icp-slam.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.. app_icp-slam:
====================================================
Application: icp-slam
====================================================

XXX
18 changes: 18 additions & 0 deletions doc/source/applications.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
.. _applications:

##############
Applications
##############

MRPT comprises a set of :ref:`modules` to create your own programs, but it
also provides many ready-to-use applications:

.. toctree::
:maxdepth: 2

app_carmen2rawlog.rst
app_icp-slam.rst


.. index::
single: List of MRPT applications
48 changes: 45 additions & 3 deletions doc/source/compiling.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,50 @@ binaries for your system or install via ``apt`` in Ubuntu.
1. Dependencies
-----------------

Check out `this page <dependencies.html>`_ to find out what are needed for each
of the MRPT build dependencies (opencv, wxWidgets,...) to decide if you need
them for your applications.
Minimum compiler requisites:

- gcc-7 or newer. Only for Ubuntu 16.04LTS Xenial, you will have to
follow `these instructions <https://gist.github.com/jlblancoc/99521194aba975286c80f93e47966dc5>`_ for
installing gcc-7 in this version of Ubuntu.

- clang-4 or newer.
- Windows: Visual Studio 2017 version 15.3 or newer.
- cmake >= 3.3 required (>=3.4 for Windows).
- Eigen >= 3.3 required.

Quick ``apt install`` lists
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

**Minimum** recommended requisites:

.. code-block:: bash
sudo apt install build-essential pkg-config cmake libwxgtk3.0-dev \
libwxgtk3.0-gtk3-dev libopencv-dev libeigen3-dev libgtest-dev
**Recommended additional** packages to enable most MRPT features
(except ROS bridges):

.. code-block:: bash
sudo apt install libftdi-dev freeglut3-dev zlib1g-dev \
libusb-1.0-0-dev libudev-dev libfreenect-dev libdc1394-22-dev \
libavformat-dev libswscale-dev libassimp-dev libjpeg-dev \
libsuitesparse-dev libpcap-dev liboctomap-dev libglfw3-dev
Install additional dependencies for ros1bridge using official Ubuntu
repositories. If you already have a ROS distribution installed,
doing ``source /opt/ros/xxx/setup.bash`` is enough, no further packages
must be installed. Do not install these packages if you do not need
the `mrpt::ros1bridge <group_mrpt_ros1bridge_grp.html>`_ module.

.. code-block:: bash
sudo apt install libcv-bridge-dev libgeometry-msgs-dev libnav-msgs-dev \
librosbag-storage-dev libroscpp-dev libsensor-msgs-dev \
libstd-srvs-dev libstereo-msgs-dev libtf2-dev \
libtf2-msgs-dev libbz2-dev
2. Build using cmake
Expand All @@ -36,6 +76,8 @@ The usual cmake stuff:
cd build
cmake ..
cmake --build .
# To run tests:
make test_legacy # or "make test" to see less details
Using cmake-gui
~~~~~~~~~~~~~~~~~~~
Expand Down
9 changes: 5 additions & 4 deletions doc/source/contributing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Contributing
:maxdepth: 2

MRPT_Coding_Style.rst
mrpt_git_branches.rst
ClangFormat.rst
ClangFormat_internal.rst
make_a_mrpt_release.rst
Expand All @@ -16,9 +17,9 @@ Contributing

Did you find a bug in MRPT?
-----------------------------
* **Ensure it is not already** reported by searching:
* The `issues list <https://github.com/MRPT/mrpt/issues>`_,
* The `mailing list <https://groups.google.com/forum/#!forum/mrpt-users>`_ and
* **Ensure it is not already** reported by searching:
* The `issues list <https://github.com/MRPT/mrpt/issues>`_,
* The `mailing list <https://groups.google.com/forum/#!forum/mrpt-users>`_ and
* `Solved questions at stackoverflow.com <http://stackoverflow.com/search?q=mrpt>`_

Do you want to contribute new code to MRPT?
Expand All @@ -28,7 +29,7 @@ Do you want to contribute new code to MRPT?
* Fork in GitHub.
* Optionally, create a new branch with a descriptive name and work on it instead of the default `master` branch.
* Send commits to your fork as needed:
* Commit often.
* Commit often.
* Small commits with a good log description are preferred.
* **Verify that your code builds**, at least in one the major supported compilers: MSVC, GCC, CLANG.
* Most changes are relevant enough to be shown in the `CHANGELOG <https://github.com/MRPT/mrpt/blob/master/doc/doxygen-pages/changeLog_doc.h>`_. Modify it as well to reflect what is new.
Expand Down
63 changes: 53 additions & 10 deletions doc/source/download-mrpt.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,28 +10,71 @@ Download MRPT
Source code
-------------

xxx
Get the latest development version with:

.. code-block:: bash
git clone https://github.com/MRPT/mrpt.git
Next step: :ref:`compiling`

Debian/Ubuntu official repositories
---------------------------------------

xxx
Install the official version for your distribution with:

.. code-block:: bash
Debian/Ubuntu PPA: last stable release
---------------------------------------
sudo apt install libmrpt-dev mrpt-apps
xxx
.. note::
Versions in official repositories may be quite outdated. It is strongly
recommended to use the PPAs (read below) or build from sources instead.

Debian/Ubuntu PPA: nightly builds
---------------------------------------

xxx
Debian/Ubuntu PPA
----------------------

Last **stable release** (from the ``master`` branch), for Ubuntu >=18.04:

.. code-block:: bash
sudo add-apt-repository ppa:joseluisblancoc/mrpt-stable # master (stable releases) branch
sudo apt install libmrpt-dev mrpt-apps
**Nightly builds** (from the ``develop`` branch) for Ubuntu >=18.04:

.. code-block:: bash
Windows installer
sudo add-apt-repository ppa:joseluisblancoc/mrpt # develop branch
sudo apt install libmrpt-dev mrpt-apps
Last **stable release**, for Ubuntu 16.04 LTS Xenial (EOL: April 2021):

.. code-block:: bash
# Install pre-requisites (** ONLY FOR Ubuntu 16.04 Xenial **)
sudo add-apt-repository ppa:ubuntu-toolchain-r/test # gcc-7 Backport
sudo add-apt-repository ppa:joseluisblancoc/mrpt-stable-xenial
sudo apt-get update
sudo apt-get install libmrpt-dev mrpt-apps
**Nightly builds**, for Ubuntu 16.04 LTS Xenial (EOL: April 2021):

.. code-block:: bash
# Install pre-requisites (** ONLY FOR Ubuntu 16.04 Xenial **)
sudo add-apt-repository ppa:ubuntu-toolchain-r/test # gcc-7 Backport
sudo add-apt-repository ppa:joseluisblancoc/mrpt-unstable-xenial
sudo apt-get update
sudo apt-get install libmrpt-dev mrpt-apps
Windows installers
--------------------

xxx
Executables (.exes and .dlls) and development libraries (.hs and .libs) included:

- `Last stable version <https://bintray.com/mrpt/mrpt-win-binaries/MRPT-nightly-builds/win64-stable>`_
- `Nightly builds <https://bintray.com/mrpt/mrpt-win-binaries/MRPT-nightly-builds/win64-develop>`_
1 change: 1 addition & 0 deletions doc/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ MRPT
compiling
download-mrpt
modules
applications
tutorials
contributing
doxygen-index
Expand Down
5 changes: 4 additions & 1 deletion doc/source/modules.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,20 @@ Each MRPT library source code can be found under ``${MRPT_ROOT}/libs``.
:maxdepth: 2

group_mrpt_core_grp.rst
group_mrpt_base_grp.rst
group_mrpt_bayes_grp.rst
group_mrpt_comms_grp.rst
group_mrpt_config_grp.rst
group_mrpt_containers_grp.rst
group_mrpt_core_grp.rst
group_mrpt_detectors_grp.rst
group_mrpt_expr_grp.rst
group_mrpt_graphs_grp.rst
group_mrpt_graphslam_grp.rst
group_mrpt_gui_grp.rst
group_mrpt_hmtslam_grp.rst
group_mrpt_hwdrivers_grp.rst
group_mrpt_img_grp.rst
group_mrpt_io_grp.rst
group_mrpt_kinematics_grp.rst
group_mrpt_maps_grp.rst
group_mrpt_math_grp.rst
Expand Down
10 changes: 10 additions & 0 deletions doc/source/mrpt_git_branches.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.. _mrptGitBranches:

########################
MRPT git branches
########################

MRP follows the `git-flow pattern <https://nvie.com/posts/a-successful-git-branching-model/>`_:

.. image:: images/git-flow-pattern.png
:alt: git-flow pattern

0 comments on commit bce3360

Please sign in to comment.