Koha

Tracking New Developments (Patches)

Owen Leonard provided a succinct and useful description of how new developments make their way into a final release. Here's my rendition of the process....

He began the story with "a patch is submitted" which means that your or your developer has figured out how to add the enhancement or fix the bug and the code has been made available to other developers to take a look at.  That code is "a patch."

Once the patch is available to others, it can be pulled into a live or (more likely) a test system so someone can test it.  Once someone tests it and verifies that that is indeed a useful and functional patch, they can "sign off" on that patch.  It is great to have more than one person "sign off" on a patch.  The patch cannot move to the next step until at least one person has signed off and changed the status of the patch to (predictably) "Signed Off."

After that, it is really up to the core development team to take the necessary steps to get that patch into the next release.

The QA manager (currently that person is Ian Walls, congratulations, Ian!) tests the "signed off" patch again and confirms that it works AND that the code meets project standards.  Only the QA Manager can get it past this step.  Once it is approved, its status become "Passed QA." 

Next, the Release Manager examines the patches that have "Passed QA" and assuming the RM also agrees that the patch is good, that patch is "pushed" which means it becomes part of the next release!


What Is Involved in Hosting my own Koha Server?

This post is copied from the Koha Mailing list.  It is the fabulous Ian Wall's response to a question someone had about what is involved in hosting one's own Koha server...

To host your own server, you'll need some level of comfort with Linux command line operations.  I recommend a Debian Squeeze server.  You can either purchase a new physical machine, or create a virtual server on an existing machine or in the cloud.  You can quickly fire up a server in the cloud using services like Amazon Web Computing, Rackspace or Linode.  This saves you from having to install an operating system on a piece of physical or virtual hardware.

Once you've got the server up and running, you'll need to install Koha.  You can do so from the packages, from the git repository or from the downloadable tarballs.  Personally, I recommend the git installation, but my understanding is that the packages are a little more user-friendly at the installation phase.  Are you going to be developing on Koha at all?  If so, then a git installation is definitely the way to go, so you can track your local changes, and format them in a way to submit back to Koha!

In addition to installing Koha itself, you'll need to install it's dependencies.  That includes MySQL (with which you said you were familiar), Zebra and Apache (Perl is almost always installed by default).  The installation instructions for Koha will walk you through those steps.  Further, if you want your Koha install to be able to send email notices, you'll want to install and configure an MTA (Message Transfer Agent).  I recommend Postfix, but exim4 also works.  The default SendMail also works, but I've found it a bit less flexible and thus a little more frustrating.

You'll also need to be comfortable with the crontab, so you can set up nightly jobs like fines, overdue notices, and backups.  This is one part syntax (knowing how to put an entry on crontab) and one part text editor familiarity (vi or nano, typically).

If all this seems a bit overwhelming, you're not alone.  If you need assistance, I'm sure there are Koha support companies in your geographic region who would be happy to assist you with installation, and may even provide hosting options.  Check http://koha-community.org/support/paid-support/ for a listing of known support companies from all over the world.




Adding OverDrive Records in your Koha Catalog

This came trhough on the Koha Mailing List and it looked so useful, I wanted to share it here.  It describes how to load MARC records into the Koha catalog for OverDrive e-books and audiobooks, etc so they are discoverable and show up in the catalog as non-holdable E-Resources avaiable for download.

Note, Brendan Gallagher of ByWater Solutions suggests that you use the "Stage MARC Rcords" option found under Tools (in Koha) so that you can batch remove these records (UNDO import into catalog) when it comes time to remove the OverDrive items from your catalog.

These step-by-step instructions come from Heather Braun of NEKLS (Thanks!):

Overview:  Develop a standard item record line for all of these and use MarcEdit to add this item record line to all the Overdrive records, THEN import them into Koha. 

The item record line I'd developed looked like this: 

=952  \\$bNEKLS$oeBook$d2010-12-30$zeBook from Project Gutenberg$8ERESOURCE$75$cADULT$yBOOK$aNEKLS

What we set up special for this was the ccode ($8) of Electronic resources (EResource) and the Not for Loan status ($7) of Download (which was set to be non-holdable). 

Also we gave them all the call number ($o) of eBook (or whatever the item was -- eAudiobook, etc.) and a public note ($z) explaining what the item was and where it was coming from. All of the records also had an 856$u that added a hyperlink to the location of the downloadable record. I'm assuming your records have this field and information.  

Using MarcEdit (http://people.oregonstate.edu/~reeset/marcedit/html/index.php): 

  1. Load the MARC record file into the MarcEditor interface in MarcEdit. (You have to break the MARC file into readable format. See http://people.oregonstate.edu/~reeset/marcedit/tutorials/break_tut.ppt for instructions). 
  2. Have your item record code line ready to be added and on the clipboard.   Like the following:    \\$bNEKLS$oeBook$d2010-12-30$zeBook from Project Gutenberg$8ERESOURCE$75$cADULT$yBOOK$aNEKLS
  3. In MarcEditor, go to the Tools menu, Add/Delete Field.
  4. In the Field dropdown menu, type 952 (Koha's item record field). 
  5. For the field data, paste your field data. Example: \\$bNEKLS$oeBook$d2010-12-30$zeBook from Project Gutenberg$8ERESOURCE$75$cADULT$yBOOK$aNEKLS
  6. Click Add field, and this 952 line will be added to all of your records in the file. 
  7. You'll need to compile the file back into MARC format (File menu, Compile into Marc) and save it in MARC format, then load into Koha. 
  8. That should do it! 

Sample RFP for Koha Migration and Support

There was some discussion on the Koha Mailing List recently about how to go about procuring an open source ILS...or at least, how to remain open to the possibility of moving to either an open source or proprietary ILS.  The thing about the traditional procurement process is that it makes if very awkward (at best) to unmanageable (at worst) for the open source service providers for two reasons:  

  1. traditional RFP templates are based on traditional proprietary systems where the vendor makes all the rules about hardware and support and software maintenance.  In an open source world, these decisions are up to the library to decide and make it difficult to compare apples to oranges.
  2. libraries tend to ask for technical details that someone told them to ask for (probably a favorite ILS vendor) instead of focusing on the functionality.  This is a good way to make sure your procurement process gets you the system you want, but it isn't a good way to do a procurement process to really find out what the best product for you is.
So, here's my suggestion for how to go about procuring your next ILS.
 
First of all, I recommend that libraries evaluate the products' functionality separate from the pricing.  You can determine the functional capabilities of the proprietary products by issuing an RFP or an RFI or maybe even a questionnaire but that won't necessarily work for the open source products since there is no official sales and marketing department for Evergreen or Koha.  
Therefore, responding to huge RFPs (especially when you have to answer questions that don't really make sense in an open source world) is just too onerous, time-consuming, and very often a huge waste of time (especially if you are working with a consultant that has a boilerplate ILS RFP that they've been using for years....beware.)

I recommend you forget the RFP/RFP process for the open source products and just get the information yourself because...well, because you can!  You can download the products or use a demo server to check out the functionality for yourself.  That's the beauty of it being free and open source (or at least one beautiful aspect).  And honestly, if evaluating the software on a demo server is too challenging for you....it may be that an open source product isn't for you anyway. 

What I can do as a consultant is help the library with the process identifying the functional requirements (what does it need to do) without focusing on "how" it does it (which would be the technical requirements.)  I would then work with the library to establish subject matter experts from each functional area to evaluate the products.  The goal is to end up with a matrix of how each product matches up to the library's need.  The matrix is filled out by the libraries themselves based on  their own testing of the open source product.

As to filling in the same matrix for the proprietary options, you can do that by working with the salesperson.  They won't lend you a demo system to play on (probably).  You could also issue a short, succinct RFI focusing on your functional requirements.

Once you've evaluated the products and know which ones will meet your needs functionly, then you issue an RFQ to the vendors that support the products that you've determined can meet your functional requirements.*  
That means the RFQ/RFP will be short and sweet and you'll be sure to get responses from all the vendors that provide services to any open source products that have passed your functional needs test. A sample of just such an RFP is attached (courtesy of NEKLS) who was a Liblime customer at the time they issued this RFP.
* Another option you have in an open source environment is to contract for development of functional requirements that are lacking.  Say, for example, Koha had everything you needed EXCEPT NCIP support (true) and you've got to have that on Day One.  You could issue an RFQ for development of NCIP support on Koha and weigh the cost of that development (and possibly the time) into your final evaluation.

Want to write some Koha Code?

Want to hire a Koha developer for your library or consortiaum?  Or perhaps you, or someone you know, is thinking she'd like to get involved in developing some code herself!

Well, here's the technical knowledge and/or skills that are needed in Koha developers:

If you are hiring someone, you may want to seek some help with that process as there are other skills that you should be looking for in your staff Koha developer (e.g. plays well with others). And you don't need all of these technical skills from the get-go.  Most developers have an area of expertise and then expand their skills as the need arises.  So, someone eager to expand their technological repertoire would be another characteristic to look for.

If you are looking to work on Koha, having a handle on any of these technologies could get your foot in the door (especially if you have the personality traits mentioned above.)
And FYI....much of this applies to Evergreen too.  See the Contributing Code page on the Evergreen website for more info on that.
Thanks to Galen Charlton who responded on the Koha mailing list with the basic technical skills required.  The rest of this commentary is mine.