Toggle navigation
Dataverse Project
About
About the Project
Add Data
Blog
Presentations
Publications
Community
Best Practices
Academic Credit
Harvard Dataverse Policies
Data Management
Replication Dataset Guidelines
Software
Features
Source Code
User Guide
Installation Guide
API Guide
Developer Guide
Style Guide
Admin Guide
Contact
User Guide
Installation Guide
API Guide
Developer Guide
Introduction
Development Environment
Version Control
Testing
Documentation
Debugging
Coding Style
Making Releases
Tools
Universal Numerical Fingerprint (UNF)
Geospatial Data
SELinux
Style Guide
Admin Guide
Developer Guide
ΒΆ
Contents:
Introduction
Intended Audience
Roadmap
Related Guides
Related Projects
Development Environment
Assumptions
Requirements
Java
Glassfish
PostgreSQL
Solr
curl
jq
Recommendations
Mac OS X
Netbeans
Additional Tools
Setting Up Your Dev Environment
Set Up SSH Keys
Clone Project from GitHub
Determine Which Repo To Push To
Cloning the Project from Netbeans
Cloning the Project from the Terminal
Building the WAR File
Building the War File from Netbeans
Building the War File from the Terminal
Installing and Running Solr
Run Installer
Iterating on Code and Redeploying
Deploy on Save
Deploying Manually
Netbeans Connector Chrome Extension
Troubleshooting
context-root in glassfish-web.xml Munged by Netbeans
Rebuilding Your Dev Environment
Shibboleth and OAuth
Geoconnect
Version Control
Where to Find the Dataverse Code
Branching Strategy
Goals
Branches
The “master” Branch
The “develop” Branch
Feature Branches
How to Make a Pull Request
Find or Create a GitHub Issue
Create a New Branch off the develop Branch
Commit Your Change to Your New Branch
Push Your Branch to GitHub
Make a Pull Request
Make Sure Your Pull Request Has Been Advanced to Code Review
How to Resolve Conflicts in Your Pull Request
Testing
The Health of a Codebase
Testing in Depth
Unit Tests
Unit Test Automation Overview
Writing Unit Tests with JUnit
Refactoring Code to Make It Unit-Testable
Observing Changes to Code Coverage
Testing Commands
Integration Tests
Getting Set Up to Run REST Assured Tests
The Burrito Key
Root Dataverse Permissions
Publish Root Dataverse
dataverse.siteUrl
Identifier Generation
Writing Integration Tests with REST Assured
The Phoenix Server
Future Work
Future Work on Unit Tests
Future Work on Integration Tests
Browser-Based Testing
Installation Testing
Load/Performance Testing
Documentation
Quick Fix
Other Changes (Sphinx)
Installing Sphinx
Using Sphinx
Table of Contents
Debugging
Logging
Coding Style
Java
Formatting Code
Tabs vs. Spaces
Format Code You Changed with Netbeans
Logging
Avoid Hard-Coding Strings
Type Safety
Bike Shedding
Making Releases
Bump Version Numbers
Merge “develop” into “master”
Write Release Notes
Make Artifacts Available for Download
Publish Release
Tools
Netbeans Connector Chrome Extension
Maven
PlantUML
Eclipse Memory Analyzer Tool (MAT)
PageKite
Vagrant
MSV
Universal Numerical Fingerprint (UNF)
UNF Version 3
UNF Version 5
UNF Version 6
I. UNF of a Data Vector
II. Combining multiple UNFs to create UNFs of higher-level objects.
Footnotes:
Geospatial Data
How Dataverse Ingests Shapefiles
Ingest
Example
WorldMap JoinTargets + API Endpoint
How Geoconnect Uses Join Target Information
Retrieving Join Target Information from WorldMap API
Saving Join Target Information to Geoconnect Database
SELinux
Introduction
Development Environment
Recreating the shibboleth.te File
Ensure that SELinux is Enforcing
Removing the Existing shibboleth.te Rules
Exercising SELinux denials
Stub out the new shibboleth.te file
Iteratively Use audit2allow to Add Rules and Test Your Change