Skip to content
Katerina Koukiou edited this page Mar 2, 2023 · 23 revisions

Prerequisite

Since you 're considering contributing you are probably already familiar with Cockpit as a user. If not, first install Cockpit on your local machine as described in:

https://cockpit-project.org/running.html

General

Cockpit is a meritocracy: prove you are reliable and you'll earn commit privileges.

Work currently in progress and bugs are in the issue tracker. There is no separate bug tracker, so use this liberally for bugs, feature requests and proposed changes. Modify the project in your own fork and issue a pull request once you want other developers to take a look at what you have done and discuss the proposed changes.

In order to avoid duplicate work, it is advisable to show others what you are working on. You can do this on irc or the mailing list or by discussing issues in their respective github thread. If an issue has a developer assigned, you may wish to check with that developer to see if they are already working on the issue.

Getting Started

  • Check out the git repo, learn how to build it and run it. Change a string in the code somewhere and make sure you can see the change in the browser. See HACKING.md for details.
  • Keep in mind the project ideals
  • If you are looking for someplace to start developing, issues are marked with a good-first-issue label when they are a good introduction to Cockpit and of limited scope.
  • Documentation (be aware: possible version differences)
  • Set up integration tests. Automated tests are an important part of Cockpit and every new feature should be accompanied by its tests.

Source Code

Cockpit encompasses different languages and is developed by multiple developers. When contributing, please adhere to the coding style guidelines.

Here is a detailed description of the commit workflow (including review criteria) and as an example, how @mvollmer merges pull requests.

User Interface / Design

Cockpit's user interface is based on PatternFly. Please be aware of this, especially of the design patterns when proposing changes to the user interface.

An overview of things currently in design can be found here.

Further reading

Clone this wiki locally