Workbench

Prototype with GNOME technologies

On this page you can learn how to contribute to Workbench. If you are interested in general information about this app, please visit the Apps for GNOME page.

Translating the app

The original text in apps is usually written in American English. The translation into other languages can be added by translators separately. The translation usually encompasses the apps’ user interface as well as the metadata shown in places like Software or apps.gnome.org. Common abbreviations used in this context are l10n (localization) and i18n (internationalization).

It looks like this app does not provide a way to be translated, yet. Feel free to file an issue against the project to ask for a way to translate this app.

Trying the latest version

When reporting an issue or suggesting a feature, it can be helpful to base the report on the latest version of the app. To this end, you can check the installation methods below.

Installation from Flathub

If you found an issue or want to propose a change you should try to make sure you have tried out the latest version of Workbench. You can check the current version in the app’s “About” section.

The latest released version on Flathub is version 46.

Quality testing

Catching issues and regressions before they land in a stable release is very valuable for a project. You can help with this by trying out an upcoming release.

You can do this by manually building the app and trying it out.

Chasing issues

For many apps, the issue tracker is a central place for coordination of app development. It is not only used to track all existing problems but also to plan new features and other miscellaneous tasks.

Reporting found issues

Reporting issues you found when using the app can be of high value for app maintainers. However, processing issue reports can also take considerable amount of time. You can take on some of the work by trying the following steps:

Diagnosing listed issues

Tracking down the exact cause of an issue can be a very important task. Especially for issues tagged with labels like “Needs Diagnosis” or “Needs Information.” If you can reproduce, that is, trigger the reported problem yourself, you can try to dig deeper. This can go from finding out under which exact conditions the issue appears, over running the app with debug output enabled, to adding debug outputs to the code that narrow down the problem.

Suggesting features

Most apps handle feature requests via the issue tracker as well. Note that implementing features and maintaining them as part of the codebase in the future can require a significant amount of additional work. Therefore, you should consider whether a new feature could even be relevant enough to be part of this app.

When suggesting a new feature, it is helpful to focus on the question of what practical problem the feature should solve. Not on how the app should solve the problem or how exactly an implementation would look like. Preferably, you can also give a practical example where you needed the feature.

Finding a task

The issue tracker can also help you find open tasks you could tackle. Before implementing a new feature, it is usually a good idea to check in with the maintainers if merge requests for this feature would be accepted.

Working on the code

Whether you want to fix a typo, change the user interface, or work on the code of the app, the following information can help you get started. The first step will be to get the app built on your computer, allowing you to play around with your changes. Afterward, you can check the provided documentation on how to get respective tasks done. The subsequent section will show you how to submit your changes.

If you are planning a somewhat larger change or addition to the app, it is often a good idea to check in with the maintainers of the app to find out if that change would be accepted. For this, you should first convince yourself that you can tackle the task at hand by doing the very first implementation steps and then check in with the maintainers via the issue tracker. This is also a good way to check if the project has an active maintainer who can accept your contribution. Despite our best efforts, not all projects are always continuously maintained.

Note that while many community members are happy to help you out when you are stuck, maintainers oftentimes might not have the resources to guide you through a contribution.

If you are overwhelmed by working on an existing GNOME app, you can also look into building your own app for learning purposes first.

Getting the app to build

When making changes to an app you will usually want to build and test the app with its changes on your computer. For most apps this process can be simplified a lot by using the Builder app.

After starting Builder, you can choose to clone a project. This will download the app to your computer.

Clone Repository…

You have to enter the repository location. The correct URL can be copied from below.

Repository URL
Clone Repository

Depending on your internet connection and the size of the project, cloning the project might take a while. After Builder has completed this step, the project window should open. You might have to confirm the installation of some required dependencies. To try if you can successfully build and start the app, you can now press the “Run Project” button.

Workbench

If everything goes right, the app should be built. After the build has been completed, the built app should start automatically.

JavaScript language

This app is built with the JavaScript programming language.

We recommend the GJS Developer Guide to get started with JavaScript in GNOME. You can find other important resources below.

Vala language

This app is built with the Vala programming language.

For getting started with the Vala language, we recommend the Vala Tutorial or the Beginners Tutorial, which also covers Vala. You can find other important resources below.

C language

This app is built with the C programming language.

To get started with developing GNOME apps with C we recommend the Beginners Tutorial that also covers the C language. You can find other important resources below.

Rust language

This app is built with the Rust programming language.

If you are familiar with the basics of the Rust language, we recommend the online book GUI development with Rust and GTK 4. This book explains how Rust can be used to create apps in the GNOME ecosystem. You can find other important resources below.

Python language

This app is built with the Python programming language.

If you are familiar with the basics of the Python language, we recommend the Beginners Tutorial which also covers the Python language. You can find other important resources below.

Useful apps

Submitting your work

After making changes to a project, you can submit them for review. Our goal is to create what’s called a merge request or pull request. That means suggesting a change to a project’s code and data.

Setting up GitHub

We begin with some preparations on GitHub, where the project is hosted. This process might look quite involved if you are going through it for the first time, but you will become much more accustomed to it over time.

  1. The first step is to create a new GitHub account if you don’t own one already. You just have to use the linked webform for that.

  2. Next, we want that git on your computer can also use your GitHub account. For this, you need an SSH key. If you don't have an SSH key yet you can generate a new one using Console. Alternatively, you can generate one using the Passwords and Keys app.

  3. You now have to add your public SSH key to the “SSH Keys” setting on GitHub. Public SSH keys are stored in the .ssh folder in your home directory as files with the ending .pub. You can print all your public SSH keys via the command cat ~/.ssh/*.pub. You can also view the public SSH keys using the Passwords and Keys app.

Creating your own project copy

To suggest changes to a project, you first have to create your own copy of the project on GitHub. Creating this copy is also referred to as forking. You will need your own copy – or fork – of the project to upload your changes to this copy.

  1. First, you can fork Workbench via the GitHub page. You only need to do this once for every project you work on.

  2. We now have to find out the SSH URL for your fork. You can find it on the page you are redirected to after creating the fork. The page of the fork will also be listed on your profile. The URL is available under the button “Code” below “SSH.”
  3. Now, we have to let git in your local project know of your personal copy on GitHub via this URL. For this we need to go back to the command line. First, you have to change (cd) into the project you have been working on. Afterwards you can use the command

    $ git remote add my-copy <ssh-fork-url>
    

    where <ssh-fork-url> has to be replaced with the SSH URL you looked up in the previous step.

Creating a merge request

We now arrive at what are more regular tasks when working with git.

  1. First, we want to switch to what’s called a different branch. Branches are variants of the original code where you can, for example, develop a feature, until it is ready to go into the actually used code. To do this you can call

    $ git checkout -b my-changes
    

    where my-changes is a short description of what you are working on, without spaces.

  2. Next, we want to save the changes you made with git. That’s usually referred to as creating a commit. You can do this with the command

    $ git commit -am "Commit Message"
    

    The commit messages should describe your changes. You can learn more about choosing a fitting commit message.

  3. Now, we have to get your saved changes onto GitLab. Luckily, we have already done all the setup with using git remote add in the previous section. All that’s left to do is now to call

    $ git push my-copy
    
  4. We are finally at the last step. If you check the output in Console after our previous git push command, you will probably already see a website link showing you the way to create a pull or merge request. You can open it by pressing the Ctrl key while clicking on it. All that is left is to follow the website to finalize submitting your changes.

Select Language