Skip to content
This repository was archived by the owner on Mar 23, 2018. It is now read-only.

Contributing

jgpawletko edited this page Nov 6, 2014 · 6 revisions

So you want to contribute code to NYU's Hydra instance? Awesome! We encourage the following for getting enhancements/fixed incorporated into Hydra-NYU.

  1. Browse the source
  2. Report bugs on GitHub Issues
  3. Fork the repo and submit a pull request on GitHub, bonus points for increasing the testing coverage

Code Style

We want our code to conform to a particular style so that developers can easily understand, review, and work with/on each other's code. We follow this Ruby Style Guide.

Testing

We love tests. Seriously. Please make sure you have tests to accompany your code changes. A pull request with just a failing test is lovely.
A pull request with just code changes and no tests is whatever the opposite of lovely is. Tests are in spec and features. For testing frameworks, we use the RSpec and Cucumber. For deterministic HTTP testing we use VCR.

Environments

Just a development environment currently. Not anywhere near production ready.

Deploy

We use Jenkins and Capistrano to deploy our code, so once your pull request has been merged, the changes will be pushed automatically to the appropriate environment. For quick deployment we have a set of shared deployment scripts.

UI

This being a rails application, UI components are in app/views and app/assets. At the NYU Division of Libraries we have a shared set of layouts and assets that we leverage across applications so you may want to start there.

Keep in mind we use Twitter's Bootstrap front-end framework to, well, bootstrap our UI.

Searching

We use Hydra which in turn uses Blacklight functionality for searching Solr. Blacklight allows for complete overrides of controllers and helper functions, so the best way to change or customize search functionality is by familiarizing yourself with the original Blacklight function and tweak from there.

Login

We use a custom extension of Authlogic for PDS at NYU.