summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--.travis.yml62
-rw-r--r--setup.py22
-rw-r--r--source/package_manifest.py91
-rw-r--r--source/package_manifest.rst1177
-rw-r--r--source/release_notes.py203
-rw-r--r--source/release_notes.rst719
-rw-r--r--source/rtd-pip-requirements.txt1
8 files changed, 209 insertions, 2069 deletions
diff --git a/.gitignore b/.gitignore
index c8336ea..d675155 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,6 @@
build
source/*.html
TOKEN
+
+source/package_manifest.rst
+source/release_notes.rst
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..767db38
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,62 @@
+language: python
+
+# Setting sudo to false opts in to Travis-CI container-based builds.
+sudo: false
+
+# The apt packages below are needed for sphinx builds, which can no longer
+# be installed with sudo apt-get.
+addons:
+ apt:
+ packages:
+ - graphviz
+ - texlive-latex-extra
+ - dvipng
+
+os:
+ - linux
+
+
+python:
+ - 3.5
+
+env:
+ global:
+ # SET DEFAULTS TO AVOID REPEATING IN MOST CASES
+ - SETUPTOOLS_VERSION=stable
+ - PIP_INSTALL='pip install'
+ - INSTALL_OPTIONAL=true
+ - SETUP_CMD='test'
+
+before_install:
+
+ # USE UTF8 ENCODING. SHOULD BE DEFAULT, BUT THIS IS INSURANCE AGAINST
+ # FUTURE CHANGES
+ - export PYTHONIOENCODING=UTF8
+
+ # http://conda.pydata.org/docs/travis.html#the-travis-yml-file
+ - wget https://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh -O miniconda.sh;
+ - bash miniconda.sh -b -p $HOME/miniconda
+ - export PATH="$HOME/miniconda/bin:$PATH"
+ - hash -r
+ - conda config --set always_yes yes --set changeps1 no
+ - conda update -q conda
+ - conda info -a
+
+ #CHECK INTERACTIVE MATPLOTLIB BACKENDS
+ - export DISPLAY=:99.0
+ - sh -e /etc/init.d/xvfb start
+
+
+install:
+ - conda create -n test python=$TRAVIS_PYTHON_VERSION
+ - source activate test
+
+ # ADD STSCI ASTROCONDA CHANNEL
+ - conda config --add channels http://ssb.stsci.edu/astroconda
+
+ # RTD deps
+ - $PIP_INSTALL -r source/rtd-pip-requirements.txt
+
+
+script:
+ - python setup.py install
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..a19c009
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,22 @@
+import os
+from setuptools import setup, find_packages
+from setuptools.command.install import install
+
+import sys
+sys.path.insert(0, 'source/')
+import release_notes
+import package_manifest
+
+class MyInstall(install):
+ def run(self):
+ install.run(self)
+ release_notes.generate_release_notes()
+ package_manifest.generate_manifest()
+
+setup(
+ name = 'astroconda',
+ version = '0.0.1',
+ author = 'Joseph Hunkeler',
+ cmdclass = {'install': MyInstall},
+ install_requires = ['pypandoc', 'github3.py']
+ )
diff --git a/source/package_manifest.py b/source/package_manifest.py
index a179888..5e9d80a 100644
--- a/source/package_manifest.py
+++ b/source/package_manifest.py
@@ -1,6 +1,13 @@
+from __future__ import print_function
+
import json
+import os
from collections import OrderedDict
-from urllib.request import urlopen
+try:
+ from urllib.request import urlopen
+except ImportError:
+ from urllib2 import urlopen
+
from pprint import pprint
ARCHITECTURE = [ 'linux-64', 'osx-64']
@@ -38,45 +45,47 @@ def get_repodata(architecture):
return data
+def generate_manifest():
+ python_versions = dict(
+ py27='2.7',
+ py34='3.4',
+ py35='3.5'
+ )
-if __name__ == '__main__':
+ with open(os.path.join('source', 'package_manifest.rst'), 'w+') as pfile:
+ print('Packages', file=pfile)
+ print('========\n\n', file=pfile)
+ print('{0}\n\n'.format(MESSAGE), file=pfile)
+
+ repo_data = OrderedDict()
+ for arch in ARCHITECTURE:
+ repo_data[arch] = get_repodata(arch)
+
+ metapackages = []
+ for mpkg, mpkg_version in METAPACKAGES:
+ for key, value in repo_data[arch].items():
+ if mpkg == repo_data[arch][key]['name']:
+ if mpkg_version == repo_data[arch][key]['version']:
+ metapackages.append(('-'.join([value['name'], value['version']]), value['build'], value['depends']))
+
+ print('{arch} metapackages'.format(arch=arch), file=pfile)
+ print('------------------------\n\n', file=pfile)
- python_versions = dict(
- py27='2.7',
- py34='3.4',
- py35='3.5'
- )
-
- with open('package_manifest.rst', 'w+') as pfile:
- print('Packages', file=pfile)
- print('========\n\n', file=pfile)
- print('{0}\n\n'.format(MESSAGE), file=pfile)
-
- repo_data = OrderedDict()
- for arch in ARCHITECTURE:
- repo_data[arch] = get_repodata(arch)
-
- metapackages = []
- for mpkg, mpkg_version in METAPACKAGES:
- for key, value in repo_data[arch].items():
- if mpkg == repo_data[arch][key]['name']:
- if mpkg_version == repo_data[arch][key]['version']:
- metapackages.append(('-'.join([value['name'], value['version']]), value['build'], value['depends']))
-
- print('{arch} metapackages'.format(arch=arch), file=pfile)
- print('------------------------\n\n', file=pfile)
-
- metapackages = sorted(metapackages, key=lambda k: k[0])
- for name, build, dependencies in metapackages:
- print('- **{name} ({python})**\n'.format(name=name, python=build), file=pfile)
- for pkg in dependencies:
- print(' - {:<20s}\n'.format(pkg), file=pfile)
-
- print('{arch} packages'.format(arch=arch), file=pfile)
- print('------------------------\n\n', file=pfile)
-
- _packages = sorted(repo_data[arch].values(), key=lambda k: k['name'])
- packages = set(['-'.join([d['name'], d['version']]) for d in _packages])
-
- for record in sorted(packages):
- print('- {name}\n'.format(name=record, header='-' * len(record)), file=pfile)
+ metapackages = sorted(metapackages, key=lambda k: k[0])
+ for name, build, dependencies in metapackages:
+ print('- **{name} ({python})**\n'.format(name=name, python=build), file=pfile)
+ for pkg in dependencies:
+ print(' - {:<20s}\n'.format(pkg), file=pfile)
+
+ print('{arch} packages'.format(arch=arch), file=pfile)
+ print('------------------------\n\n', file=pfile)
+
+ _packages = sorted(repo_data[arch].values(), key=lambda k: k['name'])
+ packages = set(['-'.join([d['name'], d['version']]) for d in _packages])
+
+ for record in sorted(packages):
+ print('- {name}\n'.format(name=record, header='-' * len(record)), file=pfile)
+
+
+if __name__ == '__main__':
+ generate_manifest()
diff --git a/source/package_manifest.rst b/source/package_manifest.rst
deleted file mode 100644
index 509201e..0000000
--- a/source/package_manifest.rst
+++ /dev/null
@@ -1,1177 +0,0 @@
-Packages
-========
-
-
-
-Packaging reference key:
-
-::
-
- [package]-[version]-[glob]_[build_number]
- ^Name ^Version ^ ^Conda package revision
- |
- npXXpyYY
- ^ ^
- | |
- | Compiled for Python version
- |
- Compiled for NumPY version
-
-
-
-
-
-linux-64 metapackages
-------------------------
-
-
-- **stsci-1.0.1 (np111py27_0)**
-
- - astropy >=1.1
-
- - cfitsio >=3.370
-
- - d2to1 >=0.2.12
-
- - ds9 >=7.1
-
- - fftw >=3.3.4
-
- - htc_utils >=0.1
-
- - imexam >=0.5.2
-
- - numpy 1.11*
-
- - photutils >=0.2.1
-
- - poppy >=0.4.0
-
- - purge_path >=1.0.0
-
- - pyds9 >=1.8.1
-
- - pyfftw >=0.9.2
-
- - python 2.7*
-
- - stsci-data-analysis
-
- - stsci-hst
-
- - webbpsf >=0.4.0
-
- - webbpsf-data >=0.4.0
-
-- **stsci-1.0.1 (np111py35_0)**
-
- - astropy >=1.1
-
- - cfitsio >=3.370
-
- - d2to1 >=0.2.12
-
- - ds9 >=7.1
-
- - fftw >=3.3.4
-
- - htc_utils >=0.1
-
- - imexam >=0.5.2
-
- - numpy 1.11*
-
- - photutils >=0.2.1
-
- - poppy >=0.4.0
-
- - purge_path >=1.0.0
-
- - pyds9 >=1.8.1
-
- - pyfftw >=0.9.2
-
- - python 3.5*
-
- - stsci-data-analysis
-
- - stsci-hst
-
- - webbpsf >=0.4.0
-
- - webbpsf-data >=0.4.0
-
-- **stsci-data-analysis-1.0.0 (np111py35_1)**
-
- - asdf ==1.0.2
-
- - astroimtools ==0.1
-
- - astropy >=1.1
-
- - asv ==0.1.1
-
- - cube-tools ==0.0.0
-
- - numpy 1.11*
-
- - python 3.5*
-
- - specview ==0.1
-
- - stginga ==0.0.0
-
-- **stsci-data-analysis-1.0.0 (np110py34_0)**
-
- - asdf ==1.0.2
-
- - astroimtools ==0.1
-
- - astropy >=1.1
-
- - asv ==0.1.1
-
- - cube-tools ==0.0.0
-
- - numpy 1.10*
-
- - python 3.4*
-
- - specview ==0.1
-
- - stginga ==0.0.0
-
-- **stsci-data-analysis-1.0.0 (np111py35_2)**
-
- - asdf >=1.0.2
-
- - astroimtools >=0.1
-
- - astropy >=1.1
-
- - asv >=0.1.1
-
- - cube-tools >=0.0.0
-
- - numpy 1.11*
-
- - python 3.5*
-
- - specview >=0.1
-
- - stginga >=0.1
-
-- **stsci-data-analysis-1.0.0 (np111py27_2)**
-
- - asdf >=1.0.2
-
- - astroimtools >=0.1
-
- - astropy >=1.1
-
- - asv >=0.1.1
-
- - cube-tools >=0.0.0
-
- - numpy 1.11*
-
- - python 2.7*
-
- - specview >=0.1
-
- - stginga >=0.1
-
-- **stsci-data-analysis-1.0.0 (np110py27_0)**
-
- - asdf ==1.0.2
-
- - astroimtools ==0.1
-
- - astropy >=1.1
-
- - asv ==0.1.1
-
- - cube-tools ==0.0.0
-
- - numpy 1.10*
-
- - python 2.7*
-
- - specview ==0.1
-
- - stginga ==0.0.0
-
-- **stsci-data-analysis-1.0.0 (np110py35_0)**
-
- - asdf ==1.0.2
-
- - astroimtools ==0.1
-
- - astropy >=1.1
-
- - asv ==0.1.1
-
- - cube-tools ==0.0.0
-
- - numpy 1.10*
-
- - python 3.5*
-
- - specview ==0.1
-
- - stginga ==0.0.0
-
-- **stsci-hst-1.0.4 (np111py27_0)**
-
- - acstools >=2.0.0
-
- - astropy >=1.1
-
- - calcos >=3.1.8
-
- - costools >=1.2.1
-
- - crds >=7.0.1
-
- - d2to1 >=0.2.12
-
- - drizzlepac >=2.1.3
-
- - fitsblender >=0.2.6
-
- - hstcal >=1.0.0
-
- - nictools >=1.1.3
-
- - numpy 1.11*
-
- - purge_path >=1.0.0
-
- - pyregion >=1.1.2
-
- - pysynphot >=0.9.8.2
-
- - python 2.7*
-
- - reftools >=1.7.1
-
- - stistools >=1.1
-
- - stsci.convolve >=2.1.3
-
- - stsci.distutils >=0.3.8
-
- - stsci.image >=2.2.0
-
- - stsci.imagemanip >=1.1.2
-
- - stsci.imagestats >=1.4.1
-
- - stsci.ndimage >=0.10.1
-
- - stsci.numdisplay >=1.6.1
-
- - stsci.skypac >=0.9
-
- - stsci.sphere >=0.2
-
- - stsci.sphinxext >=1.2.2
-
- - stsci.stimage >=0.2.1
-
- - stsci.tools >=3.4.1
-
- - stwcs >=1.2.3
-
- - wfc3tools >=1.3.1
-
- - wfpc2tools >=1.0.3
-
-- **stsci-hst-1.0.4 (np111py35_0)**
-
- - acstools >=2.0.0
-
- - astropy >=1.1
-
- - calcos >=3.1.8
-
- - costools >=1.2.1
-
- - crds >=7.0.1
-
- - d2to1 >=0.2.12
-
- - drizzlepac >=2.1.3
-
- - fitsblender >=0.2.6
-
- - hstcal >=1.0.0
-
- - nictools >=1.1.3
-
- - numpy 1.11*
-
- - purge_path >=1.0.0
-
- - pyregion >=1.1.2
-
- - pysynphot >=0.9.8.2
-
- - python 3.5*
-
- - reftools >=1.7.1
-
- - stistools >=1.1
-
- - stsci.convolve >=2.1.3
-
- - stsci.distutils >=0.3.8
-
- - stsci.image >=2.2.0
-
- - stsci.imagemanip >=1.1.2
-
- - stsci.imagestats >=1.4.1
-
- - stsci.ndimage >=0.10.1
-
- - stsci.numdisplay >=1.6.1
-
- - stsci.skypac >=0.9
-
- - stsci.sphere >=0.2
-
- - stsci.sphinxext >=1.2.2
-
- - stsci.stimage >=0.2.1
-
- - stsci.tools >=3.4.1
-
- - stwcs >=1.2.3
-
- - wfc3tools >=1.3.1
-
- - wfpc2tools >=1.0.3
-
-linux-64 packages
-------------------------
-
-
-- acstools-2.0.0
-
-- acstools-2.0.2
-
-- acstools-2.0.4
-
-- appdirs-1.4.0
-
-- aprio-1.0.1
-
-- asdf-1.0.2
-
-- asdf-1.0.3
-
-- asdf-standard-1.0.0
-
-- astroimtools-0.1
-
-- astrolib.coords-0.39.6
-
-- asv-0.1.1
-
-- calcos-3.1.3
-
-- calcos-3.1.7
-
-- calcos-3.1.8
-
-- cfitsio-3.370
-
-- costools-1.2.1
-
-- crds-0.0.0
-
-- crds-6.0.0
-
-- crds-7.0.1
-
-- cube-tools-0.0.0
-
-- cube-tools-0.0.1
-
-- d2to1-0.2.12
-
-- decorator-4.0.9
-
-- drizzle-1.1
-
-- drizzlepac-2.1.3
-
-- drizzlepac-2.1.4
-
-- drizzlepac-2.1.5
-
-- drizzlepac-2.1.6
-
-- ds9-7.1
-
-- ds9-7.4
-
-- fftw-3.3.4
-
-- fitsblender-0.2.6
-
-- ginga-2.5.20151215011852
-
-- ginga-2.5.20160627100500
-
-- ginga-2.5.20160706100500
-
-- ginga-2.5.20160801083400
-
-- glue-vispy-viewers-0.4
-
-- glueviz-0.8.2
-
-- gwcs-0.5
-
-- gwcs-0.5.1
-
-- gwcs-0.6rc1
-
-- hstcal-1.0.0
-
-- hstcal-1.0.1
-
-- htc_utils-0.1
-
-- imexam-0.5.2
-
-- iraf-2.16.1
-
-- jwst_lib-0.0.0
-
-- jwst_pipeline-0.0.0
-
-- jwst_tools-0.0.0
-
-- nictools-1.1.3
-
-- opuscoords-1.0.2
-
-- pandokia-1.3.11
-
-- photutils-0.2.1
-
-- photutils-0.2.2
-
-- poppy-0.4.0
-
-- poppy-0.5.0
-
-- purge_path-1.0.0
-
-- pydrizzle-6.4.4
-
-- pyds9-1.8.1
-
-- pyfftw-0.9.2
-
-- pyqtgraph-0.9.10
-
-- pyqtgraph-0.9.11
-
-- pyraf-2.1.10
-
-- pyraf-2.1.11
-
-- pyregion-1.1.2
-
-- pysynphot-0.9.8.2
-
-- pysynphot-0.9.8.3
-
-- pysynphot-0.9.8.4
-
-- python-daemon-2.0.5
-
-- pytools-2016.1
-
-- pywcs-1.12.1
-
-- recon-1.0.2
-
-- reftools-1.7.1
-
-- reftools-1.7.3
-
-- relic-1.0.4
-
-- relic-1.0.5
-
-- selenium-2.49.2
-
-- shunit2-2.0.3
-
-- specutils-0.2.1
-
-- specview-0.1
-
-- specviz-0.1.2rc3
-
-- specviz-0.2.0rc3
-
-- specviz-0.2.1rc4
-
-- specviz-0.2.1rc5
-
-- sphere-1.0.6
-
-- sphere-1.0.7
-
-- sphinx_rtd_theme-0.1.9
-
-- sphinxcontrib-programoutput-0.8
-
-- stginga-0.0.0
-
-- stginga-0.1
-
-- stginga-0.1.1
-
-- stginga-0.1.2
-
-- stistools-1.1
-
-- stsci-1.0.0
-
-- stsci-1.0.1
-
-- stsci-data-analysis-1.0.0
-
-- stsci-hst-1.0.0
-
-- stsci-hst-1.0.1
-
-- stsci-hst-1.0.2
-
-- stsci-hst-1.0.3
-
-- stsci-hst-1.0.4
-
-- stsci.convolve-2.1.3
-
-- stsci.distutils-0.3.8
-
-- stsci.image-2.2.0
-
-- stsci.imagemanip-1.1.2
-
-- stsci.imagestats-1.4.1
-
-- stsci.ndimage-0.10.1
-
-- stsci.numdisplay-1.6.1
-
-- stsci.skypac-0.9
-
-- stsci.sphere-0.2
-
-- stsci.sphinxext-1.2.2
-
-- stsci.stimage-0.2.1
-
-- stsci.tools-3.4.1
-
-- stwcs-1.2.3
-
-- wcstools-3.9.2
-
-- webbpsf-0.4.0
-
-- webbpsf-0.5.0
-
-- webbpsf-data-0.4.0
-
-- webbpsf-data-0.5.0
-
-- wfc3tools-1.3.1
-
-- wfpc2tools-1.0.3
-
-- xpa-2.1.17
-
-osx-64 metapackages
-------------------------
-
-
-- **stsci-1.0.1 (np111py27_0)**
-
- - astropy >=1.1
-
- - cfitsio >=3.370
-
- - d2to1 >=0.2.12
-
- - ds9 >=7.1
-
- - fftw >=3.3.4
-
- - htc_utils >=0.1
-
- - imexam >=0.5.2
-
- - numpy 1.11*
-
- - photutils >=0.2.1
-
- - poppy >=0.4.0
-
- - purge_path >=1.0.0
-
- - pyds9 >=1.8.1
-
- - pyfftw >=0.9.2
-
- - python 2.7*
-
- - stsci-data-analysis
-
- - stsci-hst
-
- - webbpsf >=0.4.0
-
- - webbpsf-data >=0.4.0
-
-- **stsci-1.0.1 (np111py35_0)**
-
- - astropy >=1.1
-
- - cfitsio >=3.370
-
- - d2to1 >=0.2.12
-
- - ds9 >=7.1
-
- - fftw >=3.3.4
-
- - htc_utils >=0.1
-
- - imexam >=0.5.2
-
- - numpy 1.11*
-
- - photutils >=0.2.1
-
- - poppy >=0.4.0
-
- - purge_path >=1.0.0
-
- - pyds9 >=1.8.1
-
- - pyfftw >=0.9.2
-
- - python 3.5*
-
- - stsci-data-analysis
-
- - stsci-hst
-
- - webbpsf >=0.4.0
-
- - webbpsf-data >=0.4.0
-
-- **stsci-data-analysis-1.0.0 (np111py27_2)**
-
- - asdf >=1.0.2
-
- - astroimtools >=0.1
-
- - astropy >=1.1
-
- - asv >=0.1.1
-
- - cube-tools >=0.0.0
-
- - numpy 1.11*
-
- - python 2.7*
-
- - specview >=0.1
-
- - stginga >=0.1
-
-- **stsci-data-analysis-1.0.0 (np110py35_0)**
-
- - asdf ==1.0.2
-
- - astroimtools ==0.1
-
- - astropy >=1.1
-
- - asv ==0.1.1
-
- - cube-tools ==0.0.0
-
- - numpy 1.10*
-
- - python 3.5*
-
- - specview ==0.1
-
- - stginga ==0.0.0
-
-- **stsci-data-analysis-1.0.0 (np110py34_0)**
-
- - asdf ==1.0.2
-
- - astroimtools ==0.1
-
- - astropy >=1.1
-
- - asv ==0.1.1
-
- - cube-tools ==0.0.0
-
- - numpy 1.10*
-
- - python 3.4*
-
- - specview ==0.1
-
- - stginga ==0.0.0
-
-- **stsci-data-analysis-1.0.0 (np111py35_2)**
-
- - asdf >=1.0.2
-
- - astroimtools >=0.1
-
- - astropy >=1.1
-
- - asv >=0.1.1
-
- - cube-tools >=0.0.0
-
- - numpy 1.11*
-
- - python 3.5*
-
- - specview >=0.1
-
- - stginga >=0.1
-
-- **stsci-data-analysis-1.0.0 (np110py27_0)**
-
- - asdf ==1.0.2
-
- - astroimtools ==0.1
-
- - astropy >=1.1
-
- - asv ==0.1.1
-
- - cube-tools ==0.0.0
-
- - numpy 1.10*
-
- - python 2.7*
-
- - specview ==0.1
-
- - stginga ==0.0.0
-
-- **stsci-hst-1.0.4 (np111py35_0)**
-
- - acstools >=2.0.0
-
- - astropy >=1.1
-
- - calcos >=3.1.8
-
- - costools >=1.2.1
-
- - crds >=7.0.1
-
- - d2to1 >=0.2.12
-
- - drizzlepac >=2.1.3
-
- - fitsblender >=0.2.6
-
- - hstcal >=1.0.0
-
- - nictools >=1.1.3
-
- - numpy 1.11*
-
- - purge_path >=1.0.0
-
- - pyregion >=1.1.2
-
- - pysynphot >=0.9.8.2
-
- - python 3.5*
-
- - reftools >=1.7.1
-
- - stistools >=1.1
-
- - stsci.convolve >=2.1.3
-
- - stsci.distutils >=0.3.8
-
- - stsci.image >=2.2.0
-
- - stsci.imagemanip >=1.1.2
-
- - stsci.imagestats >=1.4.1
-
- - stsci.ndimage >=0.10.1
-
- - stsci.numdisplay >=1.6.1
-
- - stsci.skypac >=0.9
-
- - stsci.sphere >=0.2
-
- - stsci.sphinxext >=1.2.2
-
- - stsci.stimage >=0.2.1
-
- - stsci.tools >=3.4.1
-
- - stwcs >=1.2.3
-
- - wfc3tools >=1.3.1
-
- - wfpc2tools >=1.0.3
-
-- **stsci-hst-1.0.4 (np111py27_0)**
-
- - acstools >=2.0.0
-
- - astropy >=1.1
-
- - calcos >=3.1.8
-
- - costools >=1.2.1
-
- - crds >=7.0.1
-
- - d2to1 >=0.2.12
-
- - drizzlepac >=2.1.3
-
- - fitsblender >=0.2.6
-
- - hstcal >=1.0.0
-
- - nictools >=1.1.3
-
- - numpy 1.11*
-
- - purge_path >=1.0.0
-
- - pyregion >=1.1.2
-
- - pysynphot >=0.9.8.2
-
- - python 2.7*
-
- - reftools >=1.7.1
-
- - stistools >=1.1
-
- - stsci.convolve >=2.1.3
-
- - stsci.distutils >=0.3.8
-
- - stsci.image >=2.2.0
-
- - stsci.imagemanip >=1.1.2
-
- - stsci.imagestats >=1.4.1
-
- - stsci.ndimage >=0.10.1
-
- - stsci.numdisplay >=1.6.1
-
- - stsci.skypac >=0.9
-
- - stsci.sphere >=0.2
-
- - stsci.sphinxext >=1.2.2
-
- - stsci.stimage >=0.2.1
-
- - stsci.tools >=3.4.1
-
- - stwcs >=1.2.3
-
- - wfc3tools >=1.3.1
-
- - wfpc2tools >=1.0.3
-
-osx-64 packages
-------------------------
-
-
-- acstools-2.0.0
-
-- acstools-2.0.2
-
-- acstools-2.0.4
-
-- appdirs-1.4.0
-
-- aprio-1.0.1
-
-- asdf-1.0.2
-
-- asdf-1.0.3
-
-- asdf-standard-1.0.0
-
-- astroimtools-0.1
-
-- astrolib.coords-0.39.6
-
-- asv-0.1.1
-
-- calcos-3.1.3
-
-- calcos-3.1.7
-
-- calcos-3.1.8
-
-- cfitsio-3.370
-
-- costools-1.2.1
-
-- crds-0.0.0
-
-- crds-6.0.0
-
-- crds-7.0.1
-
-- cube-tools-0.0.0
-
-- cube-tools-0.0.1
-
-- d2to1-0.2.12
-
-- decorator-4.0.9
-
-- drizzle-1.1
-
-- drizzlepac-2.1.3
-
-- drizzlepac-2.1.4
-
-- drizzlepac-2.1.5
-
-- drizzlepac-2.1.6
-
-- ds9-7.1
-
-- ds9-7.4
-
-- fftw-3.3.4
-
-- fitsblender-0.2.6
-
-- ginga-2.5.20151215011852
-
-- ginga-2.5.20160627100500
-
-- ginga-2.5.20160706100500
-
-- ginga-2.5.20160801083400
-
-- glue-vispy-viewers-0.4
-
-- glueviz-0.8.2
-
-- gwcs-0.5
-
-- gwcs-0.5.1
-
-- gwcs-0.6rc1
-
-- hstcal-1.0.0
-
-- hstcal-1.0.1
-
-- htc_utils-0.1
-
-- imexam-0.5.2
-
-- iraf-2.16.1
-
-- jwst_lib-0.0.0
-
-- jwst_pipeline-0.0.0
-
-- jwst_tools-0.0.0
-
-- nictools-1.1.3
-
-- opuscoords-1.0.2
-
-- pandokia-1.3.11
-
-- photutils-0.2.1
-
-- photutils-0.2.2
-
-- poppy-0.4.0
-
-- poppy-0.5.0
-
-- purge_path-1.0.0
-
-- pydrizzle-6.4.4
-
-- pyds9-1.8.1
-
-- pyfftw-0.9.2
-
-- pyobjc-core-3.0.4
-
-- pyobjc-core-3.1.1
-
-- pyobjc-framework-cocoa-3.0.4
-
-- pyobjc-framework-cocoa-3.1.1
-
-- pyobjc-framework-quartz-3.0.4
-
-- pyobjc-framework-quartz-3.1.1
-
-- pyqtgraph-0.9.10
-
-- pyqtgraph-0.9.11
-
-- pyraf-2.1.10
-
-- pyraf-2.1.11
-
-- pyregion-1.1.2
-
-- pysynphot-0.9.8.2
-
-- pysynphot-0.9.8.3
-
-- pysynphot-0.9.8.4
-
-- python-daemon-2.0.5
-
-- pytools-2016.1
-
-- pywcs-1.12.1
-
-- recon-1.0.2
-
-- reftools-1.7.1
-
-- reftools-1.7.3
-
-- relic-1.0.4
-
-- relic-1.0.5
-
-- selenium-2.49.2
-
-- sextractor-2.19.5
-
-- shunit2-2.0.3
-
-- specutils-0.2.1
-
-- specview-0.1
-
-- specviz-0.1.2rc3
-
-- specviz-0.2.0rc3
-
-- specviz-0.2.1rc5
-
-- sphere-1.0.6
-
-- sphere-1.0.7
-
-- sphinx_rtd_theme-0.1.9
-
-- sphinxcontrib-programoutput-0.8
-
-- stginga-0.0.0
-
-- stginga-0.1
-
-- stginga-0.1.1
-
-- stginga-0.1.2
-
-- stistools-1.1
-
-- stsci-1.0.0
-
-- stsci-1.0.1
-
-- stsci-data-analysis-0.0.0.dev0
-
-- stsci-data-analysis-1.0.0
-
-- stsci-hst-1.0.0
-
-- stsci-hst-1.0.1
-
-- stsci-hst-1.0.2
-
-- stsci-hst-1.0.3
-
-- stsci-hst-1.0.4
-
-- stsci.convolve-2.1.3
-
-- stsci.distutils-0.3.8
-
-- stsci.image-2.2.0
-
-- stsci.imagemanip-1.1.2
-
-- stsci.imagestats-1.4.1
-
-- stsci.ndimage-0.10.1
-
-- stsci.numdisplay-1.6.1
-
-- stsci.skypac-0.9
-
-- stsci.sphere-0.2
-
-- stsci.sphinxext-1.2.2
-
-- stsci.stimage-0.2.1
-
-- stsci.tools-3.4.1
-
-- stwcs-1.2.3
-
-- wcstools-3.9.2
-
-- webbpsf-0.4.0
-
-- webbpsf-0.5.0
-
-- webbpsf-data-0.4.0
-
-- webbpsf-data-0.5.0
-
-- wfc3tools-1.3.1
-
-- wfpc2tools-1.0.3
-
-- xpa-2.1.17
-
diff --git a/source/release_notes.py b/source/release_notes.py
index 3c1b397..fc3bbb3 100644
--- a/source/release_notes.py
+++ b/source/release_notes.py
@@ -6,176 +6,115 @@ import math
from collections import OrderedDict
try:
- from github3 import login
+ from urllib.request import urlopen
+except ImportError:
+ from urllib2 import urlopen
+
+try:
+ import github3
+ from github3 import organization
from github3 import GitHubError
except ImportError:
print('github3.py required.')
print('pip install https+git://github.com/sigmavirus24/github3.py')
exit(1)
-try:
- import pypandoc
-except ImportError:
- print('pypandoc required.')
- print('conda install -c https://conda.anaconda.org/janschulz pypandoc')
- exit(1)
+from package_manifest import ARCHITECTURE, get_repodata
header = """
-# Release Notes
+Release Notes
+=============
+
+For individual package release notes, please follow the links below.
+Note that not all packages have release notes, and may simply provide
+numbered releases.
+
"""
-title = """
-## {name}
+
+item = """
+- `{} <{}>`__
"""
-message = """
-### {title}
-*{date}*
+#-------------------------------------------------------------------------------
-{body}
+def any_releases(url):
+ """Check if there are any releases in a given github release page
-"""
+ Parameters
+ ----------
+ url: str
+ URL of a valid github reposoitory release pages
+ Returns
+ -------
+ any_releases: bool
+ True if there are found releases, False otherwise
-def explode_newlines(s):
- """Normalize newlines and double them up for MD->RST conversion.
- """
- tmp = ''
- for line in s.splitlines():
- line = line.replace('\r\n', '\n')
- line = line + '\n\n'
- tmp += line
-
- return tmp
-
-def transform_headings(s):
- """Trust no one.
- Header levels less than or equal to 3 are up-converted.
-
- 1 = 4
- 2 = 4
- 3 = 5
- 4 = 6
- 5 = 6
- 6 = 6
-
- Oh well, sucks right?
- """
- delim = '#'
- headings = OrderedDict(
- h6=delim * 6,
- h5=delim * 5,
- h4=delim * 4,
- h3=delim * 3,
- h2=delim * 2,
- h1=delim * 1
- )
- output = ''
-
- for line in s.splitlines():
- length = len(line)
- stop = len(headings.keys()) + 1
-
- if length < stop:
- stop = length
-
- block = line[:stop]
- depth = 0
- for i, ch in enumerate(block, 1):
- if ch != '#': break
- depth = i
-
- if depth == 0 or depth > 3:
- output += explode_newlines(line)
- continue
-
- #print('length={:<10d} stop={:<10d} depth={:<10d} block={:>20s}'.format(length, stop, depth, block))
-
- current = headings['h'+str(depth)]
- try:
- required = headings['h'+str(math.ceil(depth + depth / depth + 1))]
- except KeyError:
- required = headings['h'+str(len(headings) - 1)]
-
- if depth > 0 and depth <= 3:
- print("Heading levels 1, 2, and 3 are allocated by this script...")
- print("Offending line: '{0}'".format(line))
- print("Automatically converted to: '{0}'".format(required))
- print("(FIX YOUR RELEASE NOTES)\n\n")
-
- #print('Transformed "{0}" -> "{1}"'.format(current, required))
- line = line.replace(current, required)
- output += explode_newlines(line)
-
- return output
-
-def read_token(filename):
- """For the sake of security, paste your github auth token in a file and reference it using this function
-
- Expected file format (one-liner):
- GITHUB_USER_AUTH_TOKEN_HERE
"""
- with open(filename, 'r') as f:
- # Obtain the first line in the token file
- token = f.readline().rstrip()
- if not token:
- return None
+ no_release_msg = b"<h3>There aren\xe2\x80\x99t any releases here</h3>"
- for i, ch in enumerate(token):
- if not ch.isalnum():
- raise ValueError('Invalid token: Non-alphanumeric character detected (Value: "{0}", ASCII: {1}, Index: {2}) '.format(ch, ord(ch), i))
+ if no_release_msg in urlopen(url).read():
+ return False
- return token
+ return True
+#-------------------------------------------------------------------------------
-def pull_release_notes(tmpfile, outfile):
- with open(tmpfile, 'w+') as mdout:
+def pull_release_notes(org, outfile):
+ """ Get urls for release notes for all astroconda packages
+
+ Only repositories that are included in ANY astroconda distribution (linux or OSX)
+ with tagged github releases will be included in the output release notes
+ rst file.
+
+ Parameters
+ ----------
+ org: github3 organization instance
+ All repositories from this org will be parsed for releases
+ outfile: str
+ Filename to write urls to.
+
+ """
+
+ astroconda_packages = {item['name'] for arch in ARCHITECTURE for item in get_repodata(arch).values()}
+
+ with open(outfile, 'w+') as mdout:
# Write header (main title)
print(header, file=mdout)
# Sort repositories inline alphabetically, because otherwise its seemingly random order
- for repository in sorted(list(org.repositories()), key=lambda k: k.as_dict()['name']):
- repo = repository.as_dict()
- repo_name = repo['name'].upper()
+ for repository in sorted(list(org.iter_repos()), key=lambda k: k.name):
- # Ignore repositories without release notes
- releases = list(repository.releases())
- if not releases:
+ if not repository.name in astroconda_packages:
continue
- # Write repository title
- print(title.format(name=repo_name), file=mdout)
+ release_url = repository.html_url + '/releases'
- for note in repository.releases():
- # RST is EXTREMELY particular about newlines.
- body = explode_newlines(note.body)
- body = transform_headings(note.body)
- # Write release notes structure
- print(message.format(title=note.name,
- date=note.published_at,
- body=body), file=mdout)
+ if not any_releases(release_url):
+ continue
+ print(item.format(repository.name.upper(), release_url), file=mdout)
+
+#-------------------------------------------------------------------------------
+
+def generate_release_notes():
+ """Main function to create the release_notes.rst pages
+ """
-if __name__ == '__main__':
owner = 'spacetelescope'
- tmpfile = 'release_notes.md'
- outfile = 'release_notes.rst'
+ org = github3.organization(owner)
- gh = login(token=read_token('TOKEN'))
- org = gh.organization(owner)
+ outfile = os.path.join('source', 'release_notes.rst')
try:
- pull_release_notes(tmpfile, outfile)
+ pull_release_notes(org, outfile)
except GitHubError as e:
print(e)
exit(1)
- if os.path.exists(outfile):
- os.unlink(outfile)
+#-------------------------------------------------------------------------------
- if os.path.exists(tmpfile):
- pypandoc.convert(source=tmpfile,
- to='rst',
- outputfile=outfile)
- os.unlink(tmpfile)
+if __name__ == '__main__':
+ generate_release_notes()
diff --git a/source/release_notes.rst b/source/release_notes.rst
deleted file mode 100644
index 640aea7..0000000
--- a/source/release_notes.rst
+++ /dev/null
@@ -1,719 +0,0 @@
-Release Notes
-=============
-
-ACSTOOLS
---------
-
-ACSTOOLS v2.0.4 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-07-28 18:50:50+00:00*
-
-``stsci.xxx``, ``scipy``, and ``scikit-image`` are now *optional*
-packages. That is, ``acstools`` would install without them but affected
-task(s) will complain if they are missing.
-
-ACSTOOLS v2.0.3 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-07-28 17:27:15+00:00*
-
-Re-organize package for a cleaner look. Executable scripts are now entry
-points (for Windows compatibility). Version tagging is now controlled by
-``relic`` submodule. Miscellaneous clean ups that should not affect
-functionality.
-
-ACSTOOLS v2.0.2 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-06-03 20:42:49+00:00*
-
-Bug fix release with a fix for outdated skimage import in satellite
-detection tool.
-
-References: #6
-
-ACSTOOLS v2.0.1 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-04-25 15:51:47+00:00*
-
-Bug fix release with a fix for satellite detection algorithm.
-
-References: #3, #4, FootPrints Ticket 8763.
-
-ACSTOOLS v2.0.0 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-03-17 16:37:53+00:00*
-
-The following changes were made since the last release in April 2014:
-
-- Removed standalone ``PixCteCorr`` task. Use ACSCTE step from HSTCAL
- instead to have parallelization and consistent results with the
- CALACS pipeline.
-
-- Removed ``runastrodriz`` task (moved to ``drizzlepac``).
-
-- Added masking, post-flash processing, iterative cleaning, and
- alternative statistics to ``acs_destripe`` task. Masking is
- particularly useful for polarized data.
-
-- Fixed bugs in ``acs_destripe`` task, including proper error handling
- and pixel weighting.
-
-- Added new ``acs_destripe_plus`` task, which is particularly useful
- for destriping subarrays with ``acs_destripe`` in the middle of
- CALACS processing (between ACSCCD and ACSCTE steps).
-
-- Added new ``satdet`` module, which can detect and flag satellite
- trails.
-
-- Added Python 3 support (untested).
-
-CALCOS
-------
-
-v3.1.3
-~~~~~~
-
-*None*
-
-Most of the additions to the code were to make calcos run under Python
-3.
-
-v3.1
-~~~~
-
-*None*
-
-Calcos 3.1 includes the following bug fixes and features:
-
-Allow flux extraction from 0 to 100%
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The latest version of calcos (3.0) throws an IndexError when the range
-of the 2zxtab is 0 to 100%. Handle this case separately, always
-integrating over the whole height of the extraction box to duplicate the
-behavior of the boxcar
-
-option.
-
-Ignore DQ flag DQ\_GAIN\_SAG\_HOLE in background regions in profile alignment step
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-CALCOS uses DQ flags in the profile alignment step, omitting columns
-that have a pixel DQ value that contains any value in SDQFLAGS (read
-from science data header). The flagging of large areas with gain sag
-holes after the move to LP3 has made it very difficult to find
-background regions that won't cause whole columns be omitted from the
-alignment step, possibly resulting in not enough good columns to do the
-alignment correction.
-
-To alleviate this, pixels in the background region should be able to
-test against a different DQ value (e.g. one without the
-DQ\_GAIN\_SAG\_HOLE value) from pixels in the target region.
-
-Shift DQ data array the same as data array in TRCECORR and ALGNCORR steps of calcos
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The data arrays are shifted in the Y direction in the TRCECORR and
-ALGNCORR steps of calcos, but the DQ arrays are not currently shifted.
-The DQ arrays should be shifted in the same way that the data arrays are
-in the ALGNCORR and TRCECORR steps.
-
-Fix up x1d output for boxcar option
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-There are a number of shortcomings in the x1d output of calcos if the
-XTRCTALG keyword is set to 'BOXCAR'.
-
-1. The BACKGROUND\_PER\_ROW column is calculated incorrectly (total
- background is divided by the wrong number of rows) and should be
- renamed to "BACKGROUND PER PIXEL"
-
-2. The NUM\_EXTRACT\_ROWS column is calculated incorrectly (off by 1).
-
-3. The Y\_LOWER\_OUTER, Y\_LOWER\_INNER, Y\_UPPER\_INNER and
- Y\_UPPER\_OUTER columns are calculated incorrectly - they are
- constants whereas they should follow the linear relation using the
- SLOPE and INTERCEPT from the reference file.
-
-Restore display format for x1d columns
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-In the 3.0 update to CALCOS, the display formats for the columns in the
-.x1d output table were removed. They should be restored.
-
-CalCOS should print warnings for certain conditions of HOTSPOT calibration
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The new code to support hot spot flagging with the associated reference
-file will need to output warnings to the user in a couple select cases.
-
-1. If a DQ bit in SDQOUTER is not also in SDQFLAGS, a warning should be
- printed.
-
-2. If the PHAMIN/PHAMAX header keywords of the applied SPOTTAB are more
- inclusive that what is applied to the data itself, a warning should
- be printed.
-
-Change DQ array handling in x1d with hotspot treatment
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-With the CalCOS change to handle the hot spots and the SPOTTAB reference
-file, the DQ array in the output x1d files will change slightly.
-
-1. The data quality value for each pixel should be given by: (DQ\_INNER)
- \| (DQ\_OUTER & SDQOUTER)
-
-An additional check should be done to verify that the DQ\_WGT in the
-x1dsum is still calculated correctly after this modification.
-
-Events in COS data should now be flagged using the SPOTTAB
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-To handle the hot spots in COS data, a new reference file is being
-delivered (SPOTTAB) that will specify physical regions on the detector
-that should be flagged if they occur during any given dataset. CalCOS
-needs to flag each region given in a SPOTTAB if the time of the event
-(given by START, STOP in each row) overlaps with any good-time-interval
-(GTI) in the observation.
-
-Modules changed:
-
-Setup.cfg:
-''''''''''
-
-Version changed.
-
-lib/calcos/timetag.py
-'''''''''''''''''''''
-
-Added code to shift the DQ arrays by the amount of the trace correction
-and alignment correction before doppler blurring. Added code to pass the
-good time intervals to modules that need it to check for active
-hotspots. Added
-
-code to make sure that events that get shifted into the active area
-after their doppler correction is applied don't cause the minimum and
-maximum X shifts to be drastically wrong.
-
-lib/calcos/cosutil.py
-'''''''''''''''''''''
-
-Added code to check SPOTTAB keywords, and to add active hotspots to the
-DQ flags for events and the DQ arrays. Added code to shift the DQ values
-of events by the amount in the trace and alignment corrections.
-
-lib/calcos/calcos.py
-''''''''''''''''''''
-
-Added code to enable use of SPOTTAB reference file
-
-lib/calcos/concurrent.py
-''''''''''''''''''''''''
-
-Updated interface to cosutil.updateDQArray
-
-lib/calcos/extract.py
-'''''''''''''''''''''
-
-Renamed BACKGROUND\_PER\_ROW table column to BACKGROUND\_PER\_PIXEL.
-Restored display formet to table columns. Treat DQ flags in the outer
-regions if affected by a hotspot by setting DQ\_WGT to 0. DQ\_ALL column
-is now the OR of the DQ flags of all pixels in the extraction region.
-Fixed an indexing bug in how the extraction regions were specified.
-
-lib/calcos/getinfo.py
-'''''''''''''''''''''
-
-Added SPOTTAB capability.
-
-lib/calcos/trace.py
-'''''''''''''''''''
-
-Added code to make sure that gain sag holes don't affect the background
-DQ values.
-
-lib/calcos/x1d.py
-'''''''''''''''''
-
-Added code to pass brftab reference file to timetag.getWavecalOffsets so
-that the Active Area can be determined at the time the offsets are
-calculated.
-
-CRDS
-----
-
-Server-side code for opus-2016.1-4
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*None*
-
-This release includes context pickling optimizations to address Isilon
-file system performance issues.
-
-CUBE-TOOLS
-----------
-
-*2016-08-03 15:22:50+00:00*
-
-DRIZZLEPAC
-----------
-
-Public Release of v2.1.3
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-04-05 19:23:04+00:00*
-
-This version represents the same code, with a few additional
-enhancements, as the code that was installed for operational calibration
-of HST data as of 23 Feb 2016. This represents a major update to the
-DrizzlePac software, and also the last version with significant new
-features. Future releases will focus primarily on bug fixes that affect
-operational use of this code. Full support for this package can be found
-at http://drizzlepac.stsci.edu.
-
-A brief overview of the new features and major bug fixes found in this
-version (relative to what was released as part of v1.1.16) includes:
-
-- Full Python 2.7 and 3.5 support
-
-- Built-in support for automatic mosaic creation
-
-- Tweakreg now aligns all images in a mosaic into a single undistorted
- output frame even if some images do not overlap others in the mosaic
-
-- Improved sky matching
-
-- Produce seamless mosaics using new sky matching techniques. More
- details can be found in an example where these techniques are
- compared.
-
-- Support for the improved time-dependent ACS distortion model
-
-- Supports the new ACS distortion calibration: Only DrizzlePac 2.0 is
- able to interpret and apply the latest ACS/WFC distortion reference
- files
-
-- Support for alignment of data from different HST cameras
-
-- Specify separate source finding parameters for input and reference
- images to optimize source detection from images taken with different
- HST cameras.
-
-- Support for use of inclusion/exclusion regions in image alignment
-
-- Improved support for WFPC2 data
-
-- resolved problems processing WFPC2 data which had DGEOFILEs
- specified.
-
-- now requires user to run 'updatewcs' task on WFPC2 data to enable
- astrodrizzle and tweakreg to work with them seamlessly
-
-- **[API change]** Use of 'updatewcs' removed from TEAL interfaces
-
-- User and pipeline will need to run this task independently prior to
- running astrodrizzle or tweakreg
-
-- Python scripts calling astrodrizzle and tweakreg can still set the
- 'updatewcs' parameter and have it run as part of those tasks
- (presumably, the user understands when this task will wipe out
- previous updates in their own script)
-
-- **[API change]** The user interfaces to all 3 coordinate
- transformation tasks now use 'coordfile' as the input file of
- coordinates to transform. The use of 'coords' has been deprecated,
- but still can be used if needed. However, use of 'coordfile' will
- always override any input provided simultaneously with 'coords'
- parameter. Help files have been updated to document this as clearly
- as possible for users.
-
-- Now relies on astropy for WCS, coordinate specification and I/O
- libraries
-
-- A full 6-parameter general linear fit can now be performed using
- tweakreg, in addition to shift and rscale
-
-- WCS keywords updated by tweakreg will result in an undistorted output
- frame with NO residual skew (as represented in the CD matrix
- keywords)
-
-The full set of Release Notes can be found at
-http://ssb.stsci.edu/doc/stsci\_python\_x/drizzlepac.doc/html/release\_v2\_0\_0\_notes.html.
-
-FITSBLENDER
------------
-
-Public Release of v0.2.6
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-04-05 19:35:00+00:00*
-
-This version of fitsblender supports the release of drizzlepac v2.1.3 as
-used in the operational HST calibration pipeline and archive as of 23
-Feb 2016. It primarily includes bug fixes; namely,
-
-- Fixed problem with random results from fitsblender by replacing use
- of dict with OrderedDict. This problem resolves issues with which
- image was interpreted as first and last when looking for values to
- use to populate the combined header.
-
-- Default pipeline processing rules files for all instruments amended
- to reset FLASHCUR header value to 'multi' instead of first.
-
-- Simple update to insure that any keyword deletion works cleanly with
- astropy by trapping any KeyError? exceptions explicitly.
-
-- Replace use of pyfits with astropy.io.fits.
-
-- Now works as-is under Python 2.7 and Python 3.5
-
-HSTCAL
-------
-
-HSTCAL v1.0.1 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-07-07 19:36:46+00:00*
-
-This release is to accommodate CALACS processing for new ACS subarrays
-added by FSW change done in May 2016. Particularly, BLEVCORR is modified
-to trim virtual overscans off the new subarrays (old subarrays do not
-have virtual overscans). No changes are made for CALWF3 and CALSTIS.
-
-HSTCAL v1.0.0 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-03-17 17:46:33+00:00*
-
-The following changes were made since the last release in April 2014,
-broken down by sub-components:
-
-General
-^^^^^^^
-
-- Fixed compilation warnings.
-
-WFC3 (v3.3)
-^^^^^^^^^^^
-
-- A new processing step, FLUXCORR, was added to the UVIS pipeline, and
- is performed at the end of processing. It will scale the chip2 image
- using the new PHTFLAM1 and PHTFLAM2 values in the IMPHTAB. New flat
- fields for all filters, as well as a new IMPHTTAB have been delivered
- by the team for this step to be completely implemented.
-
-- The CTE correction has been implemented for all full-frame UVIS data.
- This is done in conjunction with a full run through of the pipeline
- code without the CTE correction applied, such that both CTE corrected
- and non-CTE corrected output files are saved. This correction is for
- the same reasons as in ACS, but the CTE correction algorithm is
- different; it is applied to the raw file instead of later in the
- processing. Some sections of the CTE code support parallel processing
- with OpenMP. The default for calwf3 is to use all available
- processors. To restrict processing to 1 cpu use the flag -1 in the
- call to calwf3.e The CTE processing is controlled with the PCTECORR
- keyword. New CTE corrected output products will be produced at all
- stages which involved changes to most of the controlling routines and
- output trailers. See the team documentation for more complete
- information on the updates.
-
-- In conjunction with the CTE correction, a standalone interface
- ``wf3cte`` was created to perform just the CTE correction, similar to
- ``wf32d`` etc.
-
-- Sink pixel detection is now performed in the UVIS pipeline for
- full-frame images, using the SNKCFILE reference image, and the
- science data DQ mask is updated with the detections. The reference
- image has 2 extensions, each in the pre-overscan trimmed format. This
- step is performed if DQICORR is PERFORM, and is done before BLEVCORR
- while the science image is still untrimmed.
-
-- Some of the new reference files required new code to read them,
- including the new format for the UVIS IMPHTTAB associated with the
- FLUXCORR step
-
-- The default CRCORR behavior for IR SCAN data will now be set to OMIT
- by default so that the resulting calibrated image is last read -
- first read instead of the fit to the ramp.
-
-- All IR scan related keywords formerly in the SPT file will also be
- present in the FLT file
-
-- For UVIS and IR, a copy of the CSMID keyword, formerly in the SPT
- will also be in the FLT file, CSMID lists the channel select
- mechanism ID.
-
-- bug fix: nrej initialized in ``wf3rej`` so that REJ\_RATE reported
- consistently correct for the IR pipeline
-
-- bug fix: a wfc3 uvis association which specifies multiple products
- wont finish processing and segfaults
-
-- An assortment of memory leaks were fixed
-
-- Explicit error added to report a non-WFC3 image used as input to the
- pipeline
-
-- updated text in ``wf3rej`` to report that Astrodrizzle should be used
- to align images instead of PyDrizzle since that’s how it’s advertised
- to users
-
-- fixed SEGFAULT error in reference file checking when iref environment
- variable not set by user, so can’t find file
-
-ACS
-^^^
-
-- Added support for 2K subarrays in PCTECORR.
-
-- ``acs2d.e`` reads calibration flags from image header instead of
- command line.
-
-- Improved temporary file handling.
-
-- Improved error message if input image does not belong to ACS.
-
-- Added support for very long input list for ACSREJ.
-
-- Fixed memory leaks (non-critical).
-
-JWST\_VISIBILITY
-----------------
-
-*2016-08-01 19:12:06+00:00*
-
-The first tagged release of the tool for internal and external testing.
-Target visibility plots from this tool should **always** be checked
-against APT for consistency, as this tool does not account for all of
-the same constraints (and is not intended to).
-
-PYRAF
------
-
-Version 2.1.10.1
-~~~~~~~~~~~~~~~~
-
-*2016-06-23 15:32:40+00:00*
-
-This is not a real release of PyRAF per-se, but it's first git/github
-tag.
-
-PYSYNPHOT
----------
-
-PySynphot v0.9.8.4 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-08-15 15:50:59+00:00*
-
-Fixed a bug of inconsistent ``waveset`` definitions across different
-objects. Cleaned up setup files. Now uses ``relic`` submodule for
-version tagging.
-
-PySynphot v0.9.8.3 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-07-07 21:09:08+00:00*
-
-Moved ``data``, ``test``, and ``src`` directories one-level down for
-AstroConda. Minor documentation related updates. Typical users should
-not see significant changes between this release and the previous
-release of 0.9.8.2.
-
-PySynphot v0.9.8.2 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-03-17 17:20:03+00:00*
-
-The following changes were made since the last PyPi release (v0.9.7) in
-October 19, 2015:
-
-- Updated spectra data including ACS ``wavecat`` and Vega reference
- spectrum.
-
-- Replaced PyFITS dependency with ``astropy.io.fits``.
-
-- Added a lot of documentation and tutorials.
-
-- Bug fixes.
-
-- Python 3 support (untested).
-
-REFTOOLS
---------
-
-REFTOOLS v1.7.3 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-08-08 18:17:10+00:00*
-
-Fix AstroConda build by making TEAL import in ``tdspysyn`` completely
-optional.
-
-REFTOOLS v1.7.2 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-08-02 15:30:44+00:00*
-
-Reorganized and cleaned up package. Updated documentation. Marked some
-tests as expected failures. Overall, none of these changes should affect
-end-user.
-
-REFTOOLS v1.7.1 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-03-17 16:55:15+00:00*
-
-The following changes were made since the last release in April 2014:
-
-- Added ``interpretdq`` module to interpret individual DQ flags from DQ
- array.
-
-- Updated ``mkimphttab`` to handle WFC3 photometry keywords.
-
-- Replaced old ``stsci.*`` dependencies with SciPy.
-
-- Added Python 3 support (untested).
-
-SPECVIEW
---------
-
-Pre-release for May2015 JWST DA User Training
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2015-04-28 15:44:58+00:00*
-
-SPECVIZ
--------
-
-v0.2.1rc5
-~~~~~~~~~
-
-*2016-07-19 13:20:03+00:00*
-
-Same as RC4, except we fixed ``ConfigParser`` compability with Python 3.
-
-v0.2.1rc4
-~~~~~~~~~
-
-*2016-07-12 18:05:38+00:00*
-
-This release incorporates the specutils package, replacing the
-previously used base spectrum object with the specutils object.
-
-v0.2.0rc3
-~~~~~~~~~
-
-*2016-06-20 23:44:13+00:00*
-
-This release contains fixes and usability improvements from our first
-round of internal testing. Its main priorities include:
-
-1. Remove dependency on Qt Creator
-
-2. Reincorporate all our tools as plugins
-
-It introduces a new plugin architecture for user-created extensions.
-
-v0.1.2rc3
-~~~~~~~~~
-
-*2016-05-18 16:19:40+00:00*
-
-Minor improvements to:
-
-- unit behaviors
-
-- modelling behaviors
-
-- updated installation documentation
-
-v0.1.1rc3
-~~~~~~~~~
-
-*2016-04-20 15:50:23+00:00*
-
-Minor bug fixes.
-
-v0.1.0rc3
-~~~~~~~~~
-
-*2016-03-17 19:14:04+00:00*
-
-Feature complete (for this release) version of SpecViz. However,
-usability bugs and minor tweaks are still to be expected.
-
-v0.1.0rc2
-~~~~~~~~~
-
-*2016-02-15 17:55:20+00:00*
-
-- Installation improvements
-
-- Model fitting
-
-- ASCII table ingestion implemented
-
-- Bug fixes
-
-STGINGA
--------
-
-stginga 0.1.2 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-07-12 20:30:51+00:00*
-
-Added background mean calculation to ``SNRCalc`` local plugin. Removed
-``unicode_literals`` from imports.
-
-stginga 0.1.1 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-07-07 18:40:22+00:00*
-
-This is a bug fix release that fixed ConfigParser error in Python 3.
-Also updated astropy\_helpers to v1.2.
-
-First stginga release
-~~~~~~~~~~~~~~~~~~~~~
-
-*2016-06-21 21:23:26+00:00*
-
-Mostly working. Why not?
-
-STSCI.TOOLS
------------
-
-stsci.tools v3.4.1 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-03-17 17:08:24+00:00*
-
-The following changes were made since the last release in October 19,
-2015:
-
-- New ``convertlog`` task, which converts ASCII trailer files into FITS
- files to replace use of IRAF ``stwfits`` in HST pipeline operations.
-
-- Bug fixes.
-
-- Python 3 support.
-
-WFPC2TOOLS
-----------
-
-WFPC2TOOLS v1.0.3 Release Notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*2016-03-17 16:44:13+00:00*
-
-The following changes were made since the last release in April 2014:
-
-- Replaced old ``stsci.*`` dependencies with SciPy.
-
-- Added Python 3 support (untested).
diff --git a/source/rtd-pip-requirements.txt b/source/rtd-pip-requirements.txt
new file mode 100644
index 0000000..f4f11b4
--- /dev/null
+++ b/source/rtd-pip-requirements.txt
@@ -0,0 +1 @@
+github3.py