Difference between revisions of "Getting started"
Line 47: | Line 47: | ||
# Temporary: switch to playbooks/archivematica branch | # Temporary: switch to playbooks/archivematica branch | ||
#* <code>git checkout playbooks/archivematica</code> | #* <code>git checkout playbooks/archivematica</code> | ||
+ | #* <code>cd deploy-pub/playbooks/archivematica/</code> | ||
# Install VirtualBox, Vagrant, Ansible | # Install VirtualBox, Vagrant, Ansible | ||
#* <code>sudo apt-get install virtualbox vagrant</code> | #* <code>sudo apt-get install virtualbox vagrant</code> | ||
− | #* Vagrant must be at least 1.5 | + | #* Vagrant must be at least 1.5 (it can also be downloaded from [https://www.vagrantup.com/downloads.html vagrantup.com]) |
#** <code>vagrant --version</code> | #** <code>vagrant --version</code> | ||
− | #* <code>sudo pip install | + | #* <code>sudo pip install -U ansible</code> |
− | + | # Download Ansible roles | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | # | ||
#* <code>ansible-galaxy install -f -r requirements.yml</code> | #* <code>ansible-galaxy install -f -r requirements.yml</code> | ||
− | # | + | # Create virtual machine and provision it |
− | #* <code> | + | #* <code>vagrant up</code> (it takes a while) |
− | # Archivematica | + | # Login now available via: |
− | + | #* <code>vagrant ssh</code> | |
− | + | # Services available: | |
− | + | #* Archivematica - http://192.168.168.192 | |
− | + | #* Archivematica Storage Service: http://192.168.168.192:8000 (user: test, pass: test) | |
− | |||
− | |||
− | |||
− | |||
− | |||
=== Development Machine === | === Development Machine === |
Revision as of 15:31, 16 September 2015
Main Page > Development > Getting Started
This wiki page describes getting started with Archivematica as a developer. For user and administrative manuals, please see http://www.archivematica.org.
Vital Stats
- Language: Python (primarily)
- License: AGPL
- VCS: git
- Major libraries: Django, gearman (Python API)
- Coding style
Projects
Archivematica consists of several projects working together.
- Archivematica: Main repository containing the user-facing dashboard, task manager MCPServer and clients scripts for the MCPClient
- Storage Service: Responsible for moving files to Archivematica for processing, and from Archivematica into storage
- Format Policy Registry: Submodule shared between Archivematica and the Format Policy Registry (FPR) server that displays and updates FPR rules and commands
There are also several smaller repositories that support Archivematica in various ways. In general, you will not need these to develop on Archivematica.
- Development tools: Scripts to help with development. E.g. restarting services, workflow analysis
- FPR tools: All the tools, commands and rules used to populate the FPR database. Changes to the FPR should be submitted here.
- Archivematica Documentation: Documentation found at https://www.archivematica.org/en/docs/ Note that storage service documentation is found in the storage service repository.
- Automation Tools: Scripts used to automate processing material through Archivematica
- Deployment: Ansible scripts for deploying and configuring Archivematica
- Deployment-Archivematica: Ansible playbook for Archivematica package install.
- Deployment-Archivematica-dev: Ansible playbook for Archivematica github install.
- Fixity checker: Commandline tool that assists in checking fixity for AIPs stored in Archivematica Storage Service instances.
- Sample data: Data to test and show off Archivematica's processing
- History: Contains the pre-git history of Archivematica. Useful for checking the origins of code.
Installation
There are two main ways to run Archivematica in development.
- Use ansible and vagrant to install Archivematica in a VM
- Install Archivematica on your development machine
Ansible & Vagrant
To install and run Archivematica from source on a VM:
- Checkout deployment repo
- Temporary: switch to playbooks/archivematica branch
git checkout playbooks/archivematica
cd deploy-pub/playbooks/archivematica/
- Install VirtualBox, Vagrant, Ansible
sudo apt-get install virtualbox vagrant
- Vagrant must be at least 1.5 (it can also be downloaded from vagrantup.com)
vagrant --version
sudo pip install -U ansible
- Download Ansible roles
ansible-galaxy install -f -r requirements.yml
- Create virtual machine and provision it
vagrant up
(it takes a while)
- Login now available via:
vagrant ssh
- Services available:
- Archivematica - http://192.168.168.192
- Archivematica Storage Service: http://192.168.168.192:8000 (user: test, pass: test)
Development Machine
See development environment setup instructions
Tests
Archivematica and the related projects have a small but growing test suite. We use py.test to run our tests, which should be listed as a requirement in the development/local requirements file.
To run the tests, go to the repository root and run py.test
See below for project-specific setup or changes to running the tests.
Archivematica
Before running Archivematica tests, set the following environment variables.
#!/usr/bin/fish set -xg DJANGO_SETTINGS_MODULE 'settings.local' set -xg DJANGO_SECRET_KEY 'ADDKEY' set -xg PYTHONPATH /usr/share/archivematica/dashboard/ /usr/lib/archivematica/archivematicaCommon/ #!/usr/bin/bash export DJANGO_SETTINGS_MODULE='settings.local' export DJANGO_SECRET_KEY='ADDKEY' export PYTHONPATH=$PYTHONPATH:/usr/share/archivematica/dashboard/:/usr/lib/archivematica/archivematicaCommon/
Storage Service
Before running Storage Service tests, set the following environment variables
#!/usr/bin/fish set -xg DJANGO_SETTINGS_MODULE storage_service.settings.local set -xg DJANGO_SECRET_KEY 'ADDKEY' set -xg SS_DB_NAME 'storage_service/default.db' set -xg SS_DB_USER '' set -xg SS_DB_PASSWORD '' set -xg SS_DB_HOST '' set -xg PYTHONPATH . # The repository root #!/usr/bin/bash export DJANGO_SETTINGS_MODULE=storage_service.settings.local export DJANGO_SECRET_KEY='ADDKEY' export SS_DB_NAME='storage_service/default.db' export SS_DB_USER='' export SS_DB_PASSWORD='' export SS_DB_HOST='' export PYTHONPATH=. # The repository root
Run tests from the storage_service
subdirectory.
Skip known-failing test with py.test --ignore locations/tests/test_models.py