Bruno Girin, author of the F-Spot import subsystem now shipping in Shotwell 0.7, has written a fantastic blog post on his architecture and how to write import code for other photo applications. He mentions importing from Picasa, which we certainly are interested in doing at some point. Bruno has done quite a bit of database work and his thoughts and approach are worth a read for those insights alone.
Category Archives: Shotwell
Shotwell 0.7.1 Released
Contributing to Shotwell
Jorge Castro asked for our thoughts on a recent (and highly active) contributor, Bruno Girin. Bruno provided a mountain-load of energy developing the F-Spot migration code for Shotwell 0.7. Here’s Jorge’s report as well as Bruno’s story about how he came to work on Shotwell in such an in-depth manner.
We value contributions here at Yorba, and we do our best to evaluate every patch that comes in. Sometimes the timing might be off — especially if we’re rushing to clean up the final details of a release — but even then we might slip in oh-so-good stuff, such as tag autocompletion that Marcel Stimberg valiantly got in under the wire in time for 0.7.
If there’s something in Shotwell you’d really like to see, if you have an itch to scratch, please consider contributing! Things you can do to get started (in no particular order):
1. Check out our ticket database for bugs and feature wishes.
2. If you’re not familiar with Vala, acquaint yourself with it — Shotwell is 99.9% Vala. Fortunately Vala is very similar to Java and C#, so if you’re familiar with either or both, you have a head-start. Some good Vala resources include its documentation and tutorials, the Valadoc for the various bindings that come with it (here’s the latest Valadoc for Gee, the collection class we use extensively in Shotwell), and my article on The GNOME Journal about why Yorba chose Vala in the first place.
3. Download the source from our Subversion repository: svn co svn://svn.yorba.org/shotwell/trunk
4. Read over Shotwell’s architecture overview and Yorba’s coding guidelines.
Hopefully this gives you a good start on hacking Shotwell. We look forward to your patch!
Shotwell 0.7 Released!
- Migration support for F-Spot users: Shotwell can import photos directly from your F-Spot library, preserving tags and ratings.
- Photos can be rated on a 1-5 star scale or marked as rejected. A filter button supports viewing only photos of a specified rating or better.
- A new Last Import page in the sidebar gives you instant access to your most recently imported photo roll.
- Sidebar functionality and appearance have been improved with new icons and inline renaming.
- Numerous bug fixes and translation updates.
Shotwell 0.6.1 released
Yorba has released Shotwell 0.6.1, an update to our digital photo
manager. We would like to thank all of our bug testers and translators for their excellent work.
It is highly recommended that all users upgrade.
Major improvements since 0.5 include:
* Basic support for RAW images, including import support for all common formats like CR2 and DNG
* Full support for working with PNG images
* Users can now zoom into photos
* A new preferences dialog
* The ability to open photos in an external editor, such as the GIMP, from within Shotwell
* Photo tags and titles are imported automatically from XMP and IPTC
metadata
* A photo trash can
* Numerous bug fixes and improved language support
Download a source tarball from the Shotwell home page at:
http://www.yorba.org/shotwell/
Binaries for Ubuntu Lucid or Maverick are available at Yorba’s PPA:
https://launchpad.net/~yorba/+archive/ppa
Publishing is Ready for Prime Time!
With the release of Shotwell 0.6 coming up, we’ve started the process of updating documentation. In addition to Shotwell’s familiar user documentation, which Allison has been diligently cranking away on to great effect, there’s also the Architecture Overview, a technical document that describes Shotwell’s underlying design. Of more interest to programmers than users, the Architecture Overview is the go-to document for understanding how all of Shotwell’s pieces fit together. Because I wrote a lot of the publishing subsystem, it fell to me to document it for the Architecture Overview. And as I was writing up my description of the publishing subsystem’s design earlier today, I realized something: publishing is ready for prime time.
What I mean by this is that if you’re a software developer and there’s a web service you’d like to publish photos to that’s not supported in Shotwell right now (SmugMug and Zooomr come to mind), then building support for it into Shotwell shouldn’t be too hard. There is one major caveat: the service you’re interested in supporting must provide a REST interface. But if that key requirement is met, you should be able to adapt the Shotwell publishing system to your needs in no time.
Adding new publishing services will get easier once we have a dynamically-loadable plug-in system in Shotwell (see ticket #182), but even today it’s straightforward. If you’re interested, start by scrolling through the “Photo Publishing” section of the Architecture Overview. Once you get a feeling for the classes the make up a typical web connector and how they interact, you’re not far from subclassing them for use with your own web service.
If you do end up building your own web connector in Shotwell, by all means send us a patch. Pending a code review, we’d love to include it in the next version of Shotwell!