Skip to content

Commit

Permalink
Merge pull request #153 from wtgee/release-0.5.1
Browse files Browse the repository at this point in the history
Release 0.5.1

Note: I am using administrator privileges to merge this time. Should not be done in the future.
  • Loading branch information
wtgee authored Dec 2, 2017
2 parents cc9a411 + 91c3aff commit fe2bc9a
Show file tree
Hide file tree
Showing 195 changed files with 17,491 additions and 7,645 deletions.
15 changes: 15 additions & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
ignore:
- "pocs/utils/data.py"
- "pocs/utils/google/*"
- "pocs/utils/jupyter/*"
- "pocs/utils/rs232.py"
- "pocs/camera/canon_gphoto2.py"
- "pocs/camera/sbig.py"
- "pocs/camera/sbigudrv.py"
- "pocs/tests/*"
- "pocs/tests/bisque/*"
- "pocs/dome/bisque.py"
- "pocs/mount/bisque.py"
- "pocs/mount/serial.py"
- "pocs/mount/ioptron.py"
- "pocs/focuser/birger.py"
15 changes: 15 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[run]
branch = True
concurrency = multiprocessing
source = pocs
omit =
*/jupyter/*
pocs/utils/data.py

[report]
exclude_lines =
pragma: no cover

ignore_errors = True
omit =
tests/*
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# PANOPTES specific files
conf_files/*_local.yaml
config_local.yaml

# Development support
Expand Down Expand Up @@ -46,6 +47,8 @@ docs/_build

# Packages/installer info
*.egg
*.eggs
*.cache
*.egg-info
dist
build
Expand Down
80 changes: 69 additions & 11 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,71 @@
dist: trusty
sudo: required
language: python
services:
- mongodb
python:
- "3.2"
- "3.3"
- "3.4"
- "3.5"
- "3.5-dev" # 3.5 development branch
- "nightly" # currently points to 3.6-dev
# command to install dependencies
install: "pip install -r requirements.txt"
# command to run tests
# script: nosetests
script: python setup.py test
- "3.6"
cache:
- pip
env:
- POCS=$TRAVIS_BUILD_DIR PANDIR=/var/panoptes
before_install:
- sudo mkdir /var/panoptes && sudo chmod 777 /var/panoptes
- mkdir $PANDIR/logs
- ln -s $TRAVIS_BUILD_DIR /var/panoptes/POCS
- pip install coveralls
- pip install -U pip
- cd $HOME
- wget http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio_latest.tar.gz
- tar zxf cfitsio_latest.tar.gz
- cd cfitsio
- ./configure
- make
- make fpack
- make funpack
- sudo make install
- sudo mkdir -p /var/panoptes/astrometry/data
- sudo chmod -R 777 /var/panoptes/astrometry/
addons:
apt:
packages:
- gphoto2
- libcairo2-dev
- libnetpbm10-dev
- netpbm
- libpng12-dev
- libjpeg-dev
- python-numpy
- python-pyfits
- python-dev
- zlib1g-dev
- libbz2-dev
- swig
- cfitsio-dev
install:
- wget http://astrometry.net/downloads/astrometry.net-0.72.tar.gz
- tar zxvf astrometry.net-0.72.tar.gz
- cd astrometry.net-0.72 && make && make py && make install INSTALL_DIR=/var/panoptes/astrometry
- echo 'add_path /var/panoptes/astrometry/data' | sudo tee --append /var/panoptes/astrometry/etc/astrometry.cfg
- wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh;
- bash miniconda.sh -b -p $HOME/miniconda
- export PATH="$HOME/miniconda/bin:$HOME/cfitsio/bin:/var/panoptes/astrometry/bin:$PATH"
- hash -r

- conda config --set always_yes yes --set changeps1 no
- conda update -q conda
- conda info -a # Useful for debugging any issues with conda
- conda create -q -n test-environment python=$TRAVIS_PYTHON_VERSION
- source activate test-environment

- cd $TRAVIS_BUILD_DIR
- pip install -r requirements.txt
- python setup.py install
- python pocs/utils/data.py
script:
- coverage run setup.py test
- coverage combine .coverage*
after_success:
- if [[ $TRAVIS_PYTHON_VERSION == 3.6* ]]; then
bash <(curl -s https://codecov.io/bash);
fi
43 changes: 43 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [email protected]. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org/), version 1.4, available at http://contributor-covenant.org/version/1/4.
43 changes: 43 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Getting Started
If you are unsure about a possible contribution to the project contact the project owners about your idea.

Please see the [code of conduct](https://github.com/panoptes/POCS/blob/develop/CODE_OF_CONDUCT.md) for our
playground rules and follow them during all your contributions.


# Pull Request Process
* Pre-requisites
- Ensure you have [github account](https://github.com/join)
- If the change you wish to make is not already an Issue in the project please create one specifying the need.
* Process
- Create a fork of the repository and use a topic branch within your fork to make changes.
- All of our repositories have a default branch of `develop` when you first clone them, but your work should be in a separate branch.
- Create a branch with a descriptive name, e.g.:
- `git checkout -b new-camera-simulator`
- `git checkout -b issue-28`
- Ensure that your code meets this project's standards (see Testing and Code Formatting below).
- Run `python setup.py test` from the `$POCS` directory before pushing to github
- Squash your commits so they only reflect meaningful changes.
- Submit a pull request to the repository, be sure to reference the issue number it addresses.


# Setting up Local Environment
- Follow instructions on the [Coding in PANOPTES](https://github.com/panoptes/POCS/wiki/Coding-in-PANOPTES).


# Testing
- All changes should have corresponding tests and existing tests should pass after your changes.
- For more on testing see the [Coding in PANOPTES](https://github.com/panoptes/POCS/wiki/Coding-in-PANOPTES) page.


# Code Formatting

- All Python should use [PEP 8 Standards](https://www.python.org/dev/peps/pep-0008/)
- Use a tool such as [yapf](https://github.com/google/yapf) to format your
files; we'd rather spend time developing PANOPTES and not arguing about
style.
- Do not leave in commented-out code or unnecessary whitespace.
- Variable/function/class and file names should be meaningful and descriptive
- File names should be lower case and underscored, not contain spaces. For
example, `my_file.py` instead of `My File.py`
- Define any project specific terminology or abbreviations you use in the file you use them
14 changes: 14 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## [Unreleased]

## [0.5.1] - 2017-12-02
### Added
- First real release!
- Working POCS features:
+ mount (iOptron)
+ cameras (DSLR, SBIG)
+ focuer (Birger)
+ scheduler (simple)
- Relies on separate repositories PEAS and PACE
- Automated testing with travis-ci.org
- Code coverage via codecov.io
- Basic install scripts
1 change: 1 addition & 0 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
The MIT License (MIT)

Copyright (c) 2014-2016 PANOPTES
Copyright 2016 Google Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
22 changes: 0 additions & 22 deletions MANIFEST.in

This file was deleted.

99 changes: 96 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,104 @@
Welcome to POCS's documentation!
Welcome to POCS documentation!
================================
<img src="http://projectpanoptes.org/v1/wp-content/uploads/2013/02/System_view21.png" alt="PANOPTES prototype unit on Mauna Loa" style="border: 1px solid;" />
<p align="center">
<img src="http://www.projectpanoptes.org/images/logo/png/sm/logo-inverted.png" alt="PANOPTES logo" style="border: 1px solid;" width="400px" />
</p>
<br>

[![Build Status](https://travis-ci.org/panoptes/POCS.svg?branch=develop)](https://travis-ci.org/panoptes/POCS)
[![codecov](https://codecov.io/gh/panoptes/POCS/branch/develop/graph/badge.svg)](https://codecov.io/gh/panoptes/POCS)
[![astropy](http://img.shields.io/badge/powered%20by-AstroPy-orange.svg?style=flat)](http://www.astropy.org/)

<!-- <img src="http://www.projectpanoptes.org/images/units/PAN001_sunset_02.png" alt="PANOPTES unit PAN001 on Mauna Loa" style="border: 1px solid;" /> -->

# Overview

[PANOPTES](http://projectpanoptes.org) is an open source citizen science project that is designed to find exoplanets with digital cameras. The goal of PANOPTES is to establish a global network of of robotic cameras run by amateur astronomers and schools in order to monitor, as continuously as possible, a very large number of stars. For more general information about the project, including the science case and resources for interested individuals, see the [project overview](http://projectpanoptes.org/v1/overview/).

POCS (PANOPTES Observatory Control System) is the main software driver for the PANOPTES unit, responsible for high-level control of the unit. There are also files for a one-time upload to the arduino hardware, as well as various scripts to read information from the environmental sensors.

# Getting Started

POCS is designed to control a fully constructed PANOPTES unit. Additionally, POCS can be run with simulators when hardware is not present or when the system is being developed.

For information on building a PANOPTES unit, see the main [PANOPTES](http://projectpanoptes.org) website.

To get started with POCS there are three easy steps:

1. **Setup** POCS on the computer you will be using for your unit or for development.
2. **Test** your POCS setup by running our testing script
3. **Start using POCS!**

See below for more details.

## Setup

* [Computer setup](https://github.com/panoptes/POCS/wiki/Panoptes-Computer-Setup)
* While logged in as user panoptes:
* Create /var/panoptes, owned by user panoptes (for a computer that will be
controlling a PANOPTES unit), or as yourself for development of the
PANOPTES software:
```bash
sudo mkdir -p /var/panoptes
sudo chown panoptes /var/panoptes
chmod 755 /var/panoptes
mkdir /var/panoptes/logs
```
* Define these environment variables, both in your current shell and in
`$HOME/.bash_profile` (to only apply to user panoptes) or in `/etc/profile`
(to apply to all users).
```bash
export PANDIR=/var/panoptes # Main Dir
export PANLOG=${PANDIR}/logs # Log files
export POCS=${PANDIR}/POCS # Observatory Control
export PAWS=${PANDIR}/PAWS # Web Interface
export PIAA=${PANDIR}/PIAA # Image Analysis
```
* Clone the PANOPTES software repositories into /var/panoptes:
```bash
cd ${PANDIR}
git clone https://github.com/panoptes/POCS.git
git clone https://github.com/panoptes/PAWS.git
git clone https://github.com/panoptes/PIAA.git
```
* Install the software dependencies of the PANOPTES software:
```bash
${POCS}/scripts/install/install-dependencies.sh
```
* To pickup the changes to PATH, etc., log out and log back in.
* Run setup.py to install the software.
* If you'll be doing development of the software, use these commands:
```bash
python ${POCS}/setup.py develop
python ${PIAA}/setup.py develop
```
* If the computer is for controlling a PANOPTES unit, use these commands:
```bash
python ${POCS}/setup.py install
python ${PIAA}/setup.py install
```
## Test POCS
Once you have setup your computer (above), the next step is to test your setup.
This is easy to do using our built-in test suite. In a terminal, simply type:
```bash
cd ${POCS}
pytest
```
This may take 5 to 10 minutes as there are a lot of tests to run! If you experience any errors, ask for check the [Issues](https://github.com/panoptes/POCS/issues) listed above or ask one of our friendly team members!
## Use POCS
### For running a unit
* [Polar alignment test](https://github.com/panoptes/POCS/wiki/Polar-Alignment-Test)
### For helping develop POCS software
POCS (PANOPTES Observatory Control System) is the main software driver for the PANOPTES unit, responsible for high-level control of the unit.
See [Coding in PANOPTES](https://github.com/panoptes/POCS/wiki/Coding-in-PANOPTES)
Links
-----
Expand Down
Loading

0 comments on commit fe2bc9a

Please sign in to comment.