Islandora CLAW

Islandora CLAW (formerly known as Islandora 7.x-2.x) is the next generation of Islandora. Still in development, this major upgrade will be compatible with Drupal 8 and Fedora 4. For more details, please check out the following resources:

Latest CLAW News

We have a very exciting entry for this week's Islandora update: a guest blog from Islandora CLAW sprinter Ben Rosner (Barnard College). Ben has been following along with the project for a while now and started his first sprint last month. He has been an awesome addition to the team and he was kind enough to share his experiences as a 'newbie' to CLAW, and explain how you can join in too:

So you want to get started working on CLAW?

Lessons learned from a first-time contributor, hopefully to ease your transition into the land of CLAW.

Foremost, before any listing of resources, pages, and things to understand: please know that IRC is the place to be. Even if the channel is quiet, someone is ALWAYS lurking and will help you through any issue. Without the #islandora channel on irc.freenode.net I'm not sure this beginner would have had the fortitude to stick with what can sometimes be challenging, but very rewarding work. Also, the weekly CLAW calls are great if you have the time, even if just to listen in. I didn't understand a flippin' thing the first time I joined, but I stuck with it as time allowed and it has paid off. Lastly the Google Group, both islandora and islandora-dev - just so you can get a 'feel' for what's going on in the community.

The stuff to bookmark now, and remember for later!

If you're going to work on or with the microservices you need this guide:https://github.com/Islandora-CLAW/CLAW/wiki/Using-CLAW-PHP-Microservices. READ THIS GUIDE, LEARN THIS GUIDE, LIVE THIS GUIDE. curl so many times it hurts, then some more. While you're doing all this 'curling' watch and explore http://localhost:8080/fcrepo/rest/, query blazegraph with a simple SELECT * WHERE { ?s ?p ?o }. What's happening? Why? HOW!? Is that a camel? No way, get out there's a camel? Yup. We've got that.

If you've never used a Vagrant before look inside of the install folder in the main CLAW repo and follow the README. Note to Windows users, run the command prompt/git shell/whatever and VirtualBox opened as an ADMIN before typing vagrant up. You've been warned!

Finding a comfortable editing space.

Pick your editor of choice - personally I'm a fan of Sublime Text 3 with a few plugins, mainly phpfmt/SublimeLinter (for PSR2 compliance and auto-formatting), bracket highlighter (distinguishes which block of code you're working on/in), and markdown preview (sometimes you want it to look nice before you push that commit). There are a few linters out there - some of them MUCH better than phpfmt (like SublimeLinter), and they work great, but rtm before you get started using them.

If you prefer a full-fledged IDE, PhpStorm is my recommend - educational users should be able to swing a free license, though do check with them as I'm not a lawyer... It does your typical IDE stuff (formatting, code completion, intellisense, etc.).

If you love yourself some VIM look through @nruests repos for his configs and I'm told you'll be all set!

Finally, if you're new to GitHub, don't panic, but learning it is a practical exercise regardless of how many guides you read. Here is one such guide, http://rogerdudler.github.io/git-guide/ but go ahead and Google 'github guide' and you'll be inundated with everyone's "best guide to learn github." Depending on your learning style all of it is rubbish. Github is a PRACTICAL application. Just mess around with it and when you don't know something, speak up in IRC! Also, don't let your IDE do your git stuff, the commands are more powerful than an IDE exposes.

Okay enough ranting. Here's my "CLAW story."

A nice way to start contributing is through sprints, which are held during the first (or last, I forget) two weeks of each month. There are a number of opened issues/tickets that you can peruse. There is a sprint kick-off call where folks discuss what they want to tackle, and if you're not sure, you can be aimed towards those items that will interest you. I've learned this: EVERY LITTLE BIT HELPS. No task is to small. (See: the last CLAW Tutorial/Lesson for more about Sprints and getting involved and read the CONTRIBUTING.md).

So I started in Sprint 06 which ended April, 2016. Here is my "journal entry" from then:

Thus far my #CLAW experience has been using and helping update the Vagrant (for Windows comparability sigh) and working on the PHP Microservices (it's iterative process, still workin' my first PR).

I'm working primarily on #150 and having some success. Lot's of testing using error.log and watching what's happening in Apache/FCRepo/Blazegraph. I think commit 64df023 is gonna crack this nut.

The Vagrant refuses to symlink on windows machines and so our composer architecture which allows live editing is failing to work. Since I work in a mixed coding environment (which includes a Windows machine) this is fairly important. It turns out we may need to run VMWare with elevated privs for proper linking to occur. shrug

And my work continued, even outside of any true sprint. Small things like creating a .gitconfig to handle line endings properly, resolving other issues with the Vagrant and small documentation tasks. Again little things that I could do as I could.

Then Sprint 007 (I added the extra 0, because who doesn't love a Bond reference?) came along, and I missed the kickoff call due to other obligations. But I asked for a ticket ~ and got one that was like "woot" this is amazing. However! Due to my own overzelousness and over obligation I did not get to work on my issue as much as I would have like :(. And guess what?! No-one judged me, everyone understood, and was it was just great to be part of the community and realize we really are in it together. I plan to continue my work with CLAW, and to take on as much as I possibily can! It's a great project, with great people (Nick, Diego, Jared - the main committers - are so supportive and collaborative), and something I am happy to be part of.

Ben out!

Wait Ben! Help me get started!

Have you curled yet? Get on IRC! Chat with us! Ping nruest a lot, he loves helping folks get started. Check the issues on the github, noone will stop you from trying to tackle one! Just fork and hack away :).

It's been a little while since we checked in on the Islandora CLAW community sprints, but they've been ticking along every month since last November, knocking down tickets and gradually building up the next major version of Islandora. This last sprint was especially significant in two ways: we welcomed two new sprinters (Ed Fugikawa and Ben Rosner), and we closed the most tickets of any sprint since they began. You can check out those stellar results here.

The next sprint will run from May 16 - 27, kicking off with a meeting on Monday. If you would like to take part, please add your name to the sprint here. We've just gone through some heavy re-structuring of how Islandora CLAW's pieces are stored in GitHub, so there will be opportunities to participate on a documentation level (for those non-developers out there who still want to contribute directly).

Thanks to support from the University of Manitoba, McMaster University, York University, the tireless work of developer Nigel Banks, and Q&A/testing by Project Director Nick Ruest, the Islandora Foundation is very happy to announce the development of a suite of new ways to work with Islandora CLAW:

These links represent a tremendous amount of work that will make it much easier for you to deploy and develop in Islandora CLAW. Moreover, this work illustrates that the CLAW architecture can be split out into its individual components, and scaled horizontally. If you're interested in learning more about how to develop with CLAW or want to be a part of the project, please consider attending our weekly CLAW Tech Calls, or taking in our run of CLAW development webinars - more info here.

The state of the work is that is in progress. Like Fedora 4, CLAW is a complete rewrite of the entire Islandora stack. It is a collaborative community effort, and needs the resources of the community. An update on the project was included in the most recent Islandora Community Newsletter. You can check that out here.

We have weekly CLAW Calls that you are more than welcome to join us on, and add items to the agenda.

We send updates to the list each week after each call, and you can view them all here.

We have monthly sprints which are held during the last two weeks of the month. If you (or your colleagues) are in a position to join, you are more than welcome to join us there too.

We also have weekly CLAW lessons which are led by Diego Pino Navarro. You can find more information on them here.

Data model, and Hydra interoperability? We're working on implementing the Portland Common Data Model (PCDM). More is available on that here and here.

If you want to see CLAW completed faster, you can help!

Contribute developer time. Either your own, or some developer time from your institution. Not comfortable with the stack? Thats what CLAW lessons are for!

Contribute funds: The Islandora Foundation is very close to having the necessary membership funding to hire a Technical Lead, who could devote a lot more time to coordinating the development of CLAW than our current volunteer team has available. Joining the Islandora Foundation has many benefits, but adding a Technical Lead to the project will be a big one in the CLAW corner.

Contribute opinions: We need to know how you want CLAW to work. You are welcome to attend the weekly CLAW Call detailed above. Please also watch the listserv for questions about features and use cases.

Looking ahead to Fedora 4? Interested in working with Islandora CLAW? Want to help out but don't know where to start? Want to adopt it and need some training? CLAW Committer Diego Pino will be giving a several-part series of lessons on how to develop in the CLAW project, starting March 1st at 11AM EST and continuing weekly until you're all CLAW experts. These will be held as interactive lessons via Google Hangouts (class size permitting). Registration is completely free but spaces may be limited. Sign up here to take part.