If you are a programmer (or wanting to become a programmer), and are interested in developing new features, fixing bugs, improving the user interface, or developing new themes for OpenShot, the following sections will explain the steps and processes you will need to follow.
OpenShot is a Python program made up of many different Python files (.py), images (.svg, .png), XML files (.xml), GTK+ XML files (.ui), and Blender project files (.blend). Python is an interpreted language, which means there are no files that need compiling or building to run OpenShot. If you change any of the source files, you just need to close and relaunch OpenShot to see the changes.
OpenShot hosts the latest version of source code on LaunchPad.net, using the Bazaar version control system.
Install the Bazaar version control system. In Debian (or Ubuntu), you can type
$ sudo apt-get install bzr
Tell Bazaar to create a local branch for your computer. This will create an /openshot/ folder in your home folder and download the latest source code into that folder. For example: /home/USER/openshot/
$ bzr branch lp:openshot
If you already have an /openshot/ folder, just change your current directory to it, and run the following command to get the lastest version:
$ cd /home/USER/openshot/
$ bzr pull lp:openshot
Now you should have the latest source code for OpenShot. To launch OpenShot from this folder, you must run the following commands. Remember, you must already have the dependencies for OpenShot installed, which is covered in the next topic.
$ cd /home/USER/openshot/bin/
$ ./openshot or python openshot
If you have made some changes to the OpenShot source code, and want to see everything you have changed, run this command:
$ cd /home/USER/openshot/
$ bzr status
If you are unhappy with your local changes, and want to revert your changes, run this command:
$ cd /home/USER/openshot/
$ bzr revert
Once you have gotten the latest source code, the next step is to install all of the required dependencies. I would recommend installing OpenShot from your favorite package manager (such as Synaptic). This will install a version of OpenShot and all the required dependencies. This will not conflict with your local version of OpenShot source code. The only trick is to remember that the
command will launch the official version of OpenShot, and not your local version. So, you must remember to launch OpenShot with the following commands:$ cd /home/USER/openshot/bin/
$ ./openshot or python openshot
Now that you have the latest source code and all of the dependencies, you can either use a text editor (such as gedit), or a full Python IDE, such as Eclipse or Aptana (with Pydev) to modify the source code. The advantage of using a full Python IDE is the enhanced debugging capabilities. It is beyond the scope of this document to teach you how to debug Python with Eclipse or Aptana, but there are lots of good tutorials online.
Now that you have a local version of OpenShot running, fixing bugs and adding new features is easy. Just modify the files, and re-launch OpenShot to see your changes. Of course, I can't tell you exactly how to fix a bug, that is up to you. So, good luck!
Once you have fixed your first bug or added a great new feature, the next step is to share it with the OpenShot Team, so we can be sure your changes get into the official version of OpenShot. The easiest way to share your changes is to create a patch (or diff). Use the following command to create a patch:
$ cd /home/USER/openshot/
$ bzr diff > mychanges.patch
This will create a file called mychanges.patch, which should have all of the changes for all the files you have modified. Of course, if you have created new files, you will need to compress those up into a ZIP or TAR file, and include them with your mychanges.patch file.
Next, create a new bug report on LaunchPad (or find an existing bug report), and upload your patch and related files to the bug report. That's it! The OpenShot team will be notified by email that a patch has been submitted. Now you can subscribe to the bug report, and follow along to see if there are any questions or comments about your patch.
If you are fixing bugs or adding new features to OpenShot, please consider joining our team on LaunchPad. We have a mailing list that will keep you up to date on the newest bug reports and plans related to OpenShot.