## Community Principles Hydra Community Principles ## Getting Connected Mailing lists, committers calls, etc. are all listed on the [Connect](https://wiki.duraspace.org/display/hydra/Connect) page of the [The Hydra Project wiki](https://wiki.duraspace.org/display/hydra/The+Hydra+Project). ## Getting Code All of our code is hosted on Github in the [projecthydra](https://github.com/projecthydra) account. ## On-line Resources and Tutorials ### For New and Potential Adopters: * New adopters and potential adopters may find the pages here useful: http://projecthydra.org/ * See Hydra Heads (Known Implementations) for more information about each of the Hydra Heads. * Developers may find the [Hydra-Head Walkthrough](https://github.com/projecthydra/hydra-head/wiki/Code4lib-walkthrough) useful. ### For Architecture Level: * See the Duraspace projecthydra wikis for information at the architecture level: http://wiki.duraspace.org/display/hydra/ ### For Developers: * Code is hosted on Github: https://github.com/projecthydra * Each of the gems in the hydra framework has its own wiki associated its individual code repository * [Contributing code](https://github.com/projecthydra/hydra/blob/master/CONTRIBUTING.md) * API documentation (class and method level documentation) is currently published for each build on the Hydra Continuous Integration Server. * Some particular documents of interest (these may migrate to the github wikis for these github repositories) * A Hydra Head interactive tutoral lives [here](https://github.com/projecthydra/hydra-head/wiki/Code4lib-walkthrough) * [How to Get Started building your Hydra Head](https://github.com/projecthydra/hydra-head/wiki/How-to-Get-Started) * [Steps to Defining a new Model for your Hydra Applications](https://wiki.duraspace.org/display/hydra/Steps+to+Defining+a+new+Model+for+your+Hydra+Applications) * [ActiveFedora Console Tour] (https://github.com/projecthydra/active_fedora/wiki/Getting-Started:-Console-Tour) * [OM documentation](https://github.com/projecthydra/om/blob/master/README.textile) * Recommended Code Commenting Practices: think about using [YARD](http://rubydoc.info/docs/yard/file/docs/GettingStarted.md), at least provide comments that can illuminate [RDoc](http://rdoc.rubyforge.org) generated documentation * Hydra's Bundled Jetty https://github.com/projecthydra/hydra-jetty * [OM Terminologies in the Wild](https://wiki.duraspace.org/display/hydra/OM+Terminologies+in+the+Wild) ## What Developer Skills are Needed? The curriculum for Data Curation Experts's annual HydraCamp reflects the skills that a Hydra development team should ideally have. They should be able to: * build a Rails3 Application with RSpec & Capybara tests and track it in Git * work with MVC, Rails Plugins, Git workflow, and be able to write good tickets * model & create Fedora objects with XML & RDF metadata then index them in Solr * use Blacklight to build a customized Solr-driven search/discovery interface * build a user interface for creating and editing Fedora objects ## Where Can Developers Get Training? The community offers multi-day public HydraCamps at least once a year in North America. Additional single and half-day workshops are frequently offered in conjunction with other major Library and Library Technology Conferences. HydraCamps are typically facilitated by Data Curation Experts who can also be engaged for private HydraCamp events or custom training engagements. Contact Information is available at http://curationexperts.com ## Tickets: Reporting Bugs & Requesting Features We use Github, issues as our project tracker. Please report issues against the git repository for the specific gem you are having issues with. If you are unable to identify the gem in which your problem is occurring, please e-mail the hydra-tech@googlegroups.com mailing list to help narrow your issue. For examples, see the issues here: https://github.com/projecthydra/hydra-head/issues