YaST/Web/Development

From openSUSE

< YaST | Web

Contents

Installation from source

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

Source is hosted on git on git.opensuse.org. 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 page, WebYaST has a web service and a web client component.

Building packages

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

Creating new components

Details about new components is contained in the creating a service component and creating a client module documentation pages.

Development Conventions

Coding style

webyast coding style fits ruby and rails coding style : coding guide (if you know an official source for rails it should be added, but I (jreidinger) think that this coding guide is reasonable and enough relaxed).

Commit rules

What does your commit have to pass to be good:

  • all fixes (not just reported) must have a test, which fails without the commit and passes with it. UI fixes, spec file fixes, documentation fixes and javascript fixes have exception.
  • bigger functionality (takes more then one day) is done in separate branch and is merged after it is complete (covered by tests and that tests don't fail). If it is part of WebYaST framework, then it must be also properly documented in RDoc)
  • it is better to commit small parts often than to commit a big one once (minimal frequency should be once per day, higher is better)

FAQ:
Q: It is hard to test THIS fix (it is in a controller, view, long method, corner case etc.)!
A: Then the does not have enough quality. For corner case it is more important to write test for them to prevent regression. A bug can appear, but if it appears again (regression) then it is problem of the tests.

Q: It is hard to write tests for webclient!
A: I agree with that for previous release. Now it is quite easy. There's a simple HOWTO for it.

Q: I don't know how to create a branch in git!
A: Use Google, there are many tutorials for git (or ask on IRC)

Q: I have another problem
A: Ask on IRC or on mail, if it is long story.

Developer Training Kit

Development Training Kit contains a lot of links with useful information on all aspects of WebYaST development.

Internationalization

We are using gettext in order to provide an UI which supports multiple languages.

Documentation

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.

Testing

Various Links

Here is a list of various links of technologies that might be useful for development in future.

Testing tools

Testing ideas