GetInvolved

Novacut Wiki Home > Getting Involved

Is Novacut the right project for you?

If a rigorous design process excites you, and if the idea of profoundly helping storytellers gets you a little misty eyed, you'll find Novacut a deeply rewarding project to work on.

However, we want you to have fair warning that all Novacut design decisions are made on behalf of our target users. So it's important to understand that unless you happen to be a professional storyteller currently producing direct-to-fan web series, shorts, or movies, you're not the target user, and so design decisions cannot be made on your behalf (although chances are you'll still love using Novacut).

Novacut is not a scratch-your-own-itch project. We must work hard to sympathize with our target users to design the best tool for them. Novacut is also not a democracy, and you have to be okay with that:

  • The target user we're designing for is not up for debate
  • We design for our target users via a constant dialog with our target users
  • Scientific measurement will drive UI decisions (so we truly save our target users time)
  • Novacut has a Benevolent Dictator who has final say on all design decisions (he makes sure we're truly listening to our target users)

Lastly, everyone in the Novacut community must abide by the Ubuntu Code of Conduct. We want a friendly and productive community where a diverse range of people feel comfortable and welcomed. Be nice, or be gone!

Still Interested?

Great! Probably the best place to start is by reading our published UX designs:

You'll notice a theme: the best thing we can do for our target users is save them time, and we're very calculating about looking for places where rest of the industry dropped the ball.

If you want to jump into UX research and design, the Novacut Artist Diaries group on Vimeo is the place to start.

If you want to jump into some coding and design, the best place to start is the novacut-prototypes project (needed skills: HTML5, JavaScript, CSS).

If you're a Python hacker, look at filestore and dmedia.

The novacut project itself is just getting underway, and is a good place for Python programmers to get in on the ground floor. The render server will be Python and will be very simple. The render server takes the graph-based description of the edit (as stored in CouchDB) and creates the appropriate GnonLin composition.

If you're new to CouchDB, playing around with microfiber is a great way to learn the CouchDB API.

If you're interested in the CouchDB side of things, you'll also want to learn about desktopcouch (what inspired us to use CouchDB, what made Novacut feasible). Although note that dmedia and Novacut push desktopcouch a bit beyond its original intent, so we have to use it in a rather non-standard way.

Jump into Development

Our development process is open to all!

Ubuntu is our primary development platform, so things will be easiest if you're running Ubuntu. As we need some newish PyGI and G-I stuff, you'll need to run Ubuntu 11.10 "Oneiric", or the development version, Ubuntu "Precise", which will be released as 12.04 LTS in April 2012.

The first thing to do is add the Novacut Daily Builds PPA. This is the easiest way to make sure you have all the needed dependencies installed for development. These 3 commands will add the PPA and install all the components we're currently doing daily builds for:

  • sudo apt-add-repository ppa:novacut/daily
    sudo apt-get update
    sudo apt-get install novacut

Next, you'll want to grab some code. We use Bazaar for version control and host everything on Launchpad. So you'll need to install bzr:

  • sudo apt-get install bzr

Bazaar is quite flexible, but this is the way Jason likes to setup his work area. Jason puts all his projects in a ~/bzr/ directory in his home directory, but use whatever you prefer:

  • mkdir bzr
    cd bzr/

Now say you want to work on filestore, first create a shared repository and checkout the filestore trunk:

  • bzr init-repo filestore
    cd filestore/
    bzr checkout lp:filestore trunk

It's handy to have trunk available for reference, but you want to do some coding, right? Well, next you should create a public branch on Launchpad, and create a local checkout of your branch as well:

  • bzr branch lp:filestore lp:~jderose/filestore/my-first-steps
    bzr checkout lp:~jderose/filestore/my-first-steps

After you do this, you should see your branch here on Launchpad, just as official as any other branch. See, you don't even need permission from us!

A good first step is to run the unit tests, just to make sure you have all the needed dependencies and make sure everything is okey-dokey. Run the tests like this:

  • cd my-first-steps/
    ./setup.py test

After you make the changes you want, make a commit like this:

  • bzr commit -m "Now with more better"

The change you make might be done over several fine-grained commits. (Pro tip: commit often, commit early!) When you think your change is ready, find your branch here on launchpad, click on it, and then click on Propose for merging. You'll end up with a merge proposal something like this.

Novacut/GetInvolved (last edited 2012-01-22 19:27:28 by jderose)