Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove Vagrant related files/instructions and clean up setup process #364

Merged
merged 5 commits into from
Aug 22, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 7 additions & 29 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@

# ✨ Contributing ✨

NYU's Spatial Data Repository (SDR) is a collaborative open source project where contributions are welcome.

This contributing guide is borrowed in part from [Geoblacklight](https://github.com/geoblacklight/geoblacklight/blob/master/CONTRIBUTING.md).

Contents:
Expand All @@ -9,14 +11,14 @@ Contents:
- [How to add a GitHub issue](#how-to-add-a-github-issue)
- [How to submit a pull request](#how-to-submit-a-pull-request)
- [Software Versioning](#software-versioning)
- [Development Guide](#development-guide)


### Who can contribute?

Anyone is welcome to contribute to the SDR, though the core group at NYU will need to discuss and vet pull requests.
We follow a set of contribution practices to maintain a socially inclusive and technically sustainable software project. For more information, please visit our [Code of Conduct](CODE_OF_CONDUCT.md).

### What kinds of contributions are wanted?

- Requesting bug fixes ⁉️🐛 (submitted as [GitHub issues](#adding-github-issues))
- Requesting features ⁉️🎉 (submitted as [GitHub issues](#adding-github-issues))
- Requesting documentation ⁉️📄 (submitted as [GitHub issues](#adding-github-issues))
Expand All @@ -25,6 +27,7 @@ We follow a set of contribution practices to maintain a socially inclusive and t
- Committing documentation ➕📄 (submitted as [pull requests](#submitting-pull-requests))

### How to add a GitHub issue

Did you find a bug in the SDR or interested in a new feature? Make sure to add an issue for it in the [issue tracker](https://github.com/NYULibraries/spatial_data_repository/issues).

- Make sure you have a [GitHub account](https://github.com/signup/free)
Expand Down Expand Up @@ -52,33 +55,8 @@ Do you have software fixes or documentation changes to contribute to the codebas

For more robust information about the above steps, see the [Development Guide](#development-guide) below.


### Software Versioning
The SDR follows the practice of [Semantic Versioning](https://semver.org/) for software releases, tracking the versioning for Geoblacklight where possible.
The version for a given release is recorded in the `VERSION` file in the project root.

### Development Guide
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removing the Development Guide since it's a duplication of what's in the main README.


- Install [Vagrant](https://www.vagrantup.com/) and [VirtualBox](https://www.virtualbox.org/) on your local machine. If you are on Mac and have [Homebrew](https://brew.sh/) installed, `brew cask install virtualbox && brew cask install vagrant` should be sufficent. If not, submit an [issue](https://github.com/NYULibraries/spatial_data_repository/issues)!

- Clone the master branch of the SDR to your desktop with `cd ~/Desktop && git clone https://github.com/NYULibraries/spatial_data_repository.git`

- Change directory into the local SDR `cd ~/Desktop/spatial_data_repository`

- Start the virtual machine with `vagrant up`, then enter it with `vagrant ssh`

- Within the VM, change directory with `cd /vagrant/sdr`

- Load the database schema with `bundle exec rake db:schema:load`

- Start the Solr + SDR servers with `bundle exec rake sdr:server`
- Open the development SDR running locally in your browser at http://localhost:3000

- Test your changes by editing the project files using your favorite text editor, e.g., [Atom](https://atom.io/)

- When you are done:
+ quit the webserver with `Ctl-C`
+ exit the virtual machine by typing the command `exit`
+ stop the virtual machine with the command `vagrant halt`
The SDR follows the practice of [Semantic Versioning](https://semver.org/) for software releases, tracking the versioning for Geoblacklight where possible.

- If you have changes to contribute, submit a pull request (see [above](#how-to-submit-a-pull-request))
The version for a given release is recorded in the `VERSION` file in the project root.
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@
# Ignore assets
/public/assets/*

# Ignore Vagrant
/.vagrant
/sdr.box
.byebug_history
*cloudimg-console.log

Expand Down
1 change: 0 additions & 1 deletion .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ AllCops:
- 'bin/*'
- 'config/**/*'
- 'vendor/**/*'
- 'Vagrantfile'
- 'app/helpers/geoblacklight_helper.rb'
- 'coverage/**/*'
- 'log/**/*'
Expand Down
115 changes: 60 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,65 +2,82 @@

[![CI](https://github.com/NYULibraries/spatial_data_repository/actions/workflows/ci.yml/badge.svg)](https://github.com/NYULibraries/spatial_data_repository/actions/workflows/ci.yml)

This repository tracks the implementation of GeoBlacklight used to power the front-end of NYU Libraries [Spatial Data Repository](https://geo.nyu.edu)
This repository tracks the implementation of GeoBlacklight used to power the front-end of NYU Libraries' [Spatial Data Repository](https://geo.nyu.edu)

## Links
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved Links & Archive into a Resources section below. Let's get folks up and running with the app, then possibly send them off to other documentation.

## Local Development Quickstart

- [Documentation Repo](https://github.com/NYULibraries/sdr-documentation)
### Prerequisites

## Archive
You will need the following installed:

- [Wiki for GBL 0.12.1](https://github.com/NYULibraries/spatial_data_repository/wiki); some info obsolete but contains some supporting doc and application change tracking
- Git
- MySQL
- Ruby 3.2.2
- NodeJS 20+
- Java 11+

## Local Development Quickstart
On macOS you can use [Homebrew](https://brew.sh) and [asdf](https://asdf-vm.com) to install everything you need:

```bash
$ brew install git
$ brew install mysql
$ brew install asdf
$ echo '. "$HOME/.asdf/asdf.sh"' >> ~/.zshrc
$ source ~/.zshrc
$ asdf plugin add ruby
$ asdf install ruby 3.2.2
$ asdf global ruby 3.2.2
$ asdf plugin add java
$ asdf install java openjdk-17
$ asdf global java openjdk-17
$ asdf plugin add nodejs
$ asdf install nodejs 22.6.0
$ asdf global nodejs 22.6.0
```

Below are barebones steps for getting started in development for the SDR.
### Running a Development Server

### Using Vagrant
To checkout the project and standup a development server:

#### Prerequisites
- Git
- Vagrant
- VirtualBox
```bash
$ git clone https://github.com/NYULibraries/spatial_data_repository.git
$ cd spatial_data_repository
$ bundle install
$ npm install
$ bundle exec rake db:schema:load
$ bundle exec rake sdr:server
```

The development SDR web application will be available at <http://localhost:3000>

#### Steps
The development Solr instance will be available at <http://localhost:8989/solr>

1. Run the commands below in order specified:
- `git clone https://github.com/NYULibraries/spatial_data_repository.git && cd spatial_data_repository`
- `vagrant up`
- `vagrant ssh`
- `cd /vagrant/sdr`
- `bundle exec rake db:schema:load`
- `bundle exec rake sdr:server`
2. View to test environment Solr admin panel: http://localhost:8983/
3. View the operating GeoBlacklight Rails app: http://localhost:3000
#### Setup Gotchas

### On Mac, including M1-3 (no virtualization)
If the `mysql2` gem fails to install and complains about not finding `zstd` you may need to do the following:

#### Prerequisites
- Git (`brew install git`)
- Ruby 3.2.2 (not 3.3.1) + Rails (many options; GBL recommends this [Go Rails install list](https://gorails.com/setup/macos/14-sonoma#ruby), especially for Apple M1, M2; use `asdf` install manager and install Ruby + Nodejs + Rails)
- Mysql (`brew install mysql`)
- Java (`brew install openjdk@11`); if needing help to add Java to PATH, see [this help](https://stackoverflow.com/questions/71059252/mac-the-operation-couldn-t-be-completed-unable-to-locate-a-java-runtime-that-su))
```bash
$ gem install mysql2 -v '0.5.6' -- --with-opt-dir=$(brew --prefix openssl) --with-ldflags=-L/opt/homebrew/opt/zstd/lib
```

#### Steps
### Loading NYU Data in Development

1. Run the commands below in order specified:
- `git clone https://github.com/NYULibraries/spatial_data_repository.git && cd- spatial_data_repository`
- `bundle install`
- `bundle exec rake db:schema:load`
- `bundle exec rake sdr:server`
2. View to test environment Solr admin panel: http://localhost:8989/solr
3. View the operating GeoBlacklight Rails app: http://localhost:3000
First, start up the Rails app if it's not already running:

### Setup Gotchas
```bash
$ bundle exec rake sdr:server
```

If the `mysql2` gem fails to install and complains about not finding `zstd` you may need to do the following:
Then in another terminal run the following Rake task:

```bash
gem install mysql2 -v '0.5.6' -- --with-opt-dir=$(brew --prefix openssl) --with-ldflags=-L/opt/homebrew/opt/zstd/lib
$ bundle exec rake sdr:load_nyu_data
```

Once completed, head to <http://localhost:3000/?search_field=all_fields> and you should have a lot more data to work with.

The Solr instance does not persist its data between runs so you will need to reload the data if you ever restart the web application.

### Running the Test Suite

To run the full test suite use the following command:
Expand All @@ -87,20 +104,8 @@ Note: You'll know this step is necessary if an individual spec fails with an err
Blacklight::Exceptions::ECONNREFUSED: Connection refused - Unable to connect to Solr instance using #<RSolr::Client:0x0000000117d5e1a8 @uri=#<URI::HTTP http://127.0.0.1:8983/solr/sdr-core-test/>
```

### Loading NYU Data Locally

First, start up the Rails app if it's not already running:

```bash
$ bundle exec rake sdr:server
```

This will ensure Solr is up and running.

Then in another terminal run the following Rake task:

```bash
$ bundle exec rake sdr:load_nyu_data
```
## Resources

Once completed, head to <http://localhost:3000/?search_field=all_fields> and you should have a lot more data to work with.
- [Documentation Repo](https://github.com/NYULibraries/sdr-documentation)
- [Wiki for GBL 0.12.1](https://github.com/NYULibraries/spatial_data_repository/wiki)
- some info obsolete but contains some supporting doc and application change tracking
63 changes: 0 additions & 63 deletions Vagrantfile

This file was deleted.