openSUSE:WebYaST Development

Jump to: navigation, search


WebYaST Architecture

WebYaST consists of two Web-Server-Applications:

  • YaST Webclient - is the UI part of WebYaST. This web application runs on an own web server and has none system priveledge.
  • YaST Webservice - is the backend of WebYaST which is also running on an own web server. It has system access via special permissions.

For more information we are refering to the Architecture overview

Installation from sources

Installing from source is ideal if you want to develop on it.

Source is hosted on git on GitHub (we have moved from gitorious to GitHub). To get the code, git is required to be installed on your system, e.g. via 'zypper in git'.

As you can see from the architecture chapter above, WebYaST has a web service and a web client component.

Use these commands for checking out the Git repositories (anonymous read-only checkout):

git clone git://github.com/webyast/rest-service.git
git clone git://github.com/webyast/web-client.git

For developing make your own clone using Fork button at https://github.com/webyast/web-client or https://github.com/webyast/rest-service page. Then create a pull request for accepting your changes.

(See GitHub help pages http://help.github.com/fork-a-repo and http://help.github.com/send-pull-requests for more details.)

For maintenance, see the branch layout.

Developping WebYaST modules

This chapter gives an overview how a WebYaST module can be implemented, tested and submitted. An good strategy would also be to a look to already existing WebYaST modules. Each of these modules has the same structure.

If any further question still exists, please do not hessitate to contact us.

Hacking

Developer Training Kit

Example Plugin contains a lot of links with useful information on all aspects of WebYaST development.

Development Conventions

Coding Style

WebYaST coding style fits ruby and rails coding style : coding guide

User Interface Guidelines

User Interface Guidelines contain WebYaST UI style guide, documentation of recommended CSS classes and some branding and usability hints and to-do's.

Additional Documentation

Testing

WebYaST uses the traditional way of writing testcases in Ruby on Rails.

WebYaST has a high test coverage which is expected from every module. But be not afraid. It is quite simple and is described here.

Designing testcases is much more interesting than you have had expected. :-)

Submitting and Building Packages

Code changes will be submitted into a the Git repository under different branches.

Building WebYaST packages is supported with the help of openSUSE build service. See packaging for details.

Tips & Tricks and useful Links

While developing WebYaST we have found some nice Tips & Tricks which make live much more easier.

Furthermore there are tons of howtos concerning RoR and JQuery development. Here is a subset of them which we have found very useful.

Future planing