Tag Archives: easydeposit

GitHub to repository deposit

Over the past few months there have been positive shifts in the infrastructure available to archive software.  To ‘archive software’ can mean many things to many people, but for the purposes of this blog post, I’ll take the view that this is to take (well managed) code out of an existing source code control system, make a point-in-time snapshot of the code, and deposit that into a long-term repository, along with some basic descriptive metadata.

To this end, both Figshare and Zenodo have recently developed and released integrations into GitHub.  These both allow the depositor to easily take a copy of their code from GitHub, and deposit it into the respective repository.  One of the key benefits of doing this is that the repository platforms are then able to assign a persistent DataCite DOI (Digital Object Identifier) to the software, which makes it easier to cite and track through scholarly literature.

As one of the developers of the open SWORD deposit protocol that facilitates the deposit of resources into repositories, I thought it would be good to try and re-create this functionality using SWORD.  Below is the ‘recipe’ of how this works…

Step one (optional): Setup your browser with a bookmark
To make it easier to deposit code from GitHub, you can install a ‘bookmarklet‘ that automatically detects that GitHub repository, and lets the deposit system know where this is.  This means that from any GitHub repository, you can click on the bookmark to deposit the code.  To install it, visit http://easydeposit.swordapp.org/example/github/easydeposit/ and drag the bookmarklet at the bottom of the page to your browser’s bookmark bar:

Install bookmarklet

Step two: Choose the GitHub repository to deposit

GitHub makes use of accounts and repositories.  Each user of the service has an account, and each account can create multiple code repositories.  URLs for GitHub are in the form of https://github.com/{account}/{repository}, for example the PHP programming language is stored in GitHub: https://github.com/php/php-src (php is the account name, and php-src is the code repository for the PHP language).

Choose the GitHub repository that you wish to deposit in the repository by opening the repository in your browser.  In the example below, this is the DSpace repository platform’s code repository:

Choose repository

Step three: Click the bookmark!
If you click the ‘GitHub Deposit’ bookmark that you created earlier, this will redirect you to a SWORD deposit system.  The bookmarklet contains javascript that passes the URL of the GitHub repository to the deposit client, and populates the form automatically.  Alternatively you can just visit http://easydeposit.swordapp.org/example/github/easydeposit/ and enter the URL of the repository yourself:

Click bookmark

Step four: Download the code

Clicking ‘Next >’ will initiate the download of the latest version of the code (‘master’ in git terminology).  Depending on the size of the repository, this may take a few seconds.  The code isn’t doing anything clever, and unlike the Zenodo and Figshare integrations, it doesn’t make use of the GitHub API.  Instead, it downloads the master.zip file by constructing a URL such as https://codeload.github.com/DSpace/DSpace/zip/master.   It then uses basic metadata such as the title of the repository (title), the account holder (author), the URL of the repository (link) and the latest check-in comment and revision hash (abstract).  These are then presented back to you to confirm:

Verify metadata

Step five: Perform the deposit
Upon clicking the deposit button, the code will then translate the metadata into a METS file, and zip that up alongside the downloaded code bundle.  All this is then deposited into the demo DSpace server (http://demo.dspace.org/).  Assuming the deposit works, you’ll be presented with the URL of the deposited code.  In this case, it is a ‘handle’, but to all intents and purposes that is a DOI, and DSpace can be configured to issue DOIs.

Handle issued

Step six: View the code

To see the deposited code in the repository, just click on the handle link!  For example, http://hdl.handle.net/10673/51. This will take you to the repository, where the metadata can be seen, and the code downloaded!

Code in the repository

This isn’t a highly polished integration, and was thrown together in a couple of hours, by adding it as an optional ‘step’ in the configurable web-based deposit client ‘EasyDeposit‘.  But it is a good demonstration that creating small tools that archive code into SWORD-compliant repositories (DSpace, EPrints, Fedora, etc) can be achieved quite quickly!site

SWORD PHP Library – version 1.0 finally released!

After over 2.5 years of development and refinement, I have finally released version 1.0 of the SWORD PHP library! The library has been relatively stable for quite some time now, and is firmly embedded in tools such as EasyDeposit and OJS.

The other reason that I wanted to get it released (after many earlier 0.x version releases) is that the SWORD v2 development work is now starting, and therefore my attention needs to focus on that for a while.  There is now a github repository to host that:

I owe a big thank you to all the people who have contributed or used the library over the years, because of the feedback and patches, the code is now stable and works well.объявление в интернете

EasyDeposit now supports Shibboleth

Just a quick note to say that the latest release of EasyDeposit now supports Shibboleth authentication. Or to be precise, it supports any form of authentication where the user’s details are passed via HTTP headers / environment variables. This includes other SSO (Single Sign-On) systems such as CoSign.

To use, select the ‘ssologin’ step as the first step.  Edit the settings to state which headers to look at, and it should all work.  Of course you’ll need to configure your web server and single sign-on system to protect your EasyDeposit installation directory.

odno-lom

The SWORD course videos now online

I recently blogged about ‘The SWORD Course’, as the slides had been put onto slideshare.  Now, thanks to UKOLN’s Adrian Stevenson, the videos are now available too:

  1. An Introduction to SWORD: Gives an overview of SWORD, the rationale behind its creation, and details of the first three funded SWORD projects
  2. SWORD Use Cases: Provides an introduction to use cases, and examines some of the use cases that SWORD can be used for
  3. How SWORD Works: A high level overview of the SWORD protocol, lightly touching on a few technical details in order to explain how it works
  4. SWORD Clients: The reasons for needing SWORD clients are shown, followed by a tour of some of the current SWORD clients
  5. Create Your Own SWORD Client: An overview of the EasyDeposit SWORD client creation toolkit, including the chance to try it out

The complete set of videos can be found at http://vimeo.com/channels/swordappangry racer

The SWORD course slides now online

As part of the JISC-funded SWORD 3 project, I created ‘The SWORD Course’ and presented it during a two hour workshop at the recent Open Repositories 2010 conference in Madrid. The aim of the course was to empower repository managers and repository developers who knew what SWORD was, but who are not currently using it, to be able to go back to their institutions and start using it.
The course, entitled ‘Adding SWORD To Your Repository Armoury’ is made up of 5 modules:
  1. An Introduction to SWORD: Gives an overview of SWORD, the rationale behind its creation, and details of the first three funded SWORD projects
  2. SWORD Use Cases: Provides an introduction to use cases, and examines some of the use cases that SWORD can be used for
  3. How SWORD Works: A high level overview of the SWORD protocol, lightly touching on a few technical details in order to explain how it works
  4. SWORD Clients: The reasons for needing SWORD clients are shown, followed by a tour of some of the current SWORD clients
  5. Create Your Own SWORD Client: An overview of the EasyDeposit SWORD client creation toolkit, including the chance to try it out

The slides from each presentation have now been uploaded to Slideshare with a Creative Commons Attribution NonCommercial Sharealike licence. The workshop was video recorded too, and hopefully this will be posted online some soon too.

vzlomat-vse.ru

Deposit to multiple repositories

One of the classic use cases for SWORD is deposit to multiple repositories at once. This could be used if a researcher has to deposit copies of their work to both an institutional repository and a funder’s repository, and also perhaps a subject-based repository. (In ‘real life’ this use case is not so far in widespread use (if at all?) because we’re still in a position where it is hard to convince potential depositors to deposit into one repository, let alone multiple repositories.)

However, I have now added a multiple deposit function to the EasyDeposit SWORD client. For those of you unfamiliar with EasyDeposit, it is an online tool that allows you to configure your own SWORD client. It is intended that you run multiple copies of EasyDeposit and configure each for a specific tailored use, such as thesis deposit, journal deposit, multiple deposit etc. The deposit process is made up of a set of ‘steps’ which you can configure and change into a preferred order to make your chosen client. This makes it easy to change the submission process from asking for files to be uploaded then having the user enter metadata, to the other way around with a couple of clicks in the administration interface.

The new multiple deposit functionality allows the administrator to ‘hard code’ the details of a set of repositories, and upon completion of the deposit process the item is deposited into each of those repositories. EasyDeposit has been designed with extensibility in mind, so if you wish to write your own ‘steps’, for example to allow the depositor to select which repositories from a given list they would like to deposit into, this is easy and straightforward to write in PHP.

стоимость изготовления сайта