fuel-docs/devdocs/develop/quick_start.rst
Alexander Adamov 4cc7d8104a Moving fuel-web docs to 'devdocs' subfolder
Change-Id: I685cee5579494921e91a1efcc264c594c5f23248
2016-02-10 13:57:03 +02:00

111 lines
4.3 KiB
ReStructuredText
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.

Fuel Development Quick-Start
============================
If you are interested in contributing to Fuel or modifying Fuel
for your own purposes, this short guide should get you pointed
to all the information you need to get started.
If you are new to contributing to OpenStack, read
through the “How To Contribute” page on the OpenStack wiki.
See: `How to contribute
<http://docs.openstack.org/infra/manual/developers.html>`_.
For this walk-through, lets use the example of modifying an
option to the “new environment wizard” in Fuel (example here:
`https://review.openstack.org/#/c/90687/1
<https://review.openstack.org/#/c/90687/1>`_). This
enhancement required modification to three files in the fuel-web
repository::
fuel-web/nailgun/static/translations/core.json
fuel-web/nailgun/static/js/views/dialogs.jsx
fuel-web/nailgun/static/templates/dialogs/create_cluster_wizard/storage.html
In order to add, test and commit the code necessary to
implement this feature, these steps were followed:
#. Create a Fuel development environment by following the
instructions found here:
:doc:`Fuel Development Environment </devdocs/develop/env>`.
#. In your development environment, prepare your environment
for Nailgun unit tests and Web UI tests by following
the instructions found here:
:doc:`Nailgun Dev Environment </devdocs/develop/nailgun/development/env>`.
Be sure to run the tests noted in each section to ensure
your environment confirms to a known good baseline.
#. Branch your fuel-web checkout (see `Gerrit Workflow
<http://docs.openstack.org/infra/manual/developers.html#development-workflow>`_ for
more information on the gerrit workflow)::
cd fuel-web
git fetch --all;git checkout -b vcenter-wizard-fix origin/master
#. Modify the necessary files (refer to :doc:`Fuel Architecture
</devdocs/develop/architecture>` to understand how the components
of Fuel work together).
#. Test your Nailgun changes::
cd fuel-web
./run_tests.sh --no-webui
./run_tests.sh --flake8
./run_tests.sh --webui
#. You should also test Nailgun in fake UI mode by following
the steps found here: :ref:`running-nailgun-in-fake-mode`
#. When all tests pass you should commit your code, which
will subject it to further testing via Jenkins and Fuel CI.
Be sure to include a good commit message, guidelines can be
found here: `Git Commit Messages <https://wiki.openstack.org/wiki/GitCommitMessages>`_.::
git commit -a
git review
#. Frequently, the review process will suggest changes be
made before your code can be merged. In that case, make
your changes locally, test the changes, and then re-submit
for review by following these steps::
git commit -a --amend
git review
#. Now that your code has been committed, you should change
your Fuel ISO makefile to point to your specific commit.
As noted in the :doc:`Fuel Development documentation </devdocs/develop/env>`,
when you build a Fuel ISO it pulls down the additional
repositories rather than using your local repos. Even
though you have a local clone of fuel-web holding the branch
you just worked on, the build script will be pulling code
from git for the sub-components (Nailgun, Astute, OSTF)
based on the repository and commit specified in environment
variables when calling “make iso”, or as found in config.mk.
You will need to know the gerrit commit ID and patch number.
For this example we are looking at
https://review.openstack.org/#/c/90687/1
with the gerrit ID 90687, patch 1. In this instance, you
would build the ISO with::
cd fuel-main
NAILGUN_GERRIT_COMMIT=refs/changes/32/90687/1 make iso
#. Once your ISO build is complete, you can test it. If
you have access to hardware that can run the KVM
hypervisor, you can follow the instructions found in the
:doc:`Devops Guide </devdocs/devops>` to create a robust testing
environment. Otherwise you can test the ISO with
Virtualbox (the download link can be found at
`https://software.mirantis.com/ <https://software.mirantis.com/>`_)
#. Once your code has been merged, you can return your local
repo to the master branch so you can start fresh on your
next commit by following these steps::
cd fuel-web
git remote update
git checkout master
git pull