YaST/Web/Development
From openSUSE
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
- Tarantula - for 'fuzz testing'
- Flog - static code analyzer
- Roodi - code analyzer
- Saikuro - cyclomatic complexity analyzer
- blog post about 'C' code checker (useful for the underlying layers ?!

