Skip to content

Commit bd89fe6

Browse files
authored
Merge pull request spacetelescope#472 from spacetelescope/release-0.21.0
Release 0.21.0 [master]
2 parents 2ae74c5 + ea3d624 commit bd89fe6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1127
-411
lines changed

CHANGES.rst

+42
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,45 @@
1+
0.21.0 (2019-07-23)
2+
===================
3+
4+
New Features
5+
------------
6+
7+
Project & API Documentation
8+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
9+
10+
- Updated ``README`` to include instructions on package installation via ``pip``.
11+
12+
Web Application
13+
~~~~~~~~~~~~~~~
14+
15+
- Updated all webpages to conform to Web Application Accessibility Guidelines.
16+
- Upgraded to ``django`` version 2.2.
17+
- ``bokeh`` is now imported in ``base`` template so that the version being used is consistent across all HTML templates.
18+
19+
``jwql`` Repository
20+
~~~~~~~~~~~~~~~~~~~
21+
22+
- The ``jwql`` package is now available on PyPI (https://pypi.org/project/jwql/) and installable via ``pip``.
23+
- Updated Jenkins configuration file to include in-line comments and descriptions.
24+
- Added ``utils`` function to validate the ``config.json`` file during import of ``jwql`` package.
25+
- Added support for monitoring contents of the ``jwql`` central storage area in the filesystem monitor.
26+
27+
28+
Bug Fixes
29+
---------
30+
31+
Web Application
32+
~~~~~~~~~~~~~~~
33+
34+
- Fixed position error of JWQL version display in footer.
35+
36+
``jwql`` Repository
37+
~~~~~~~~~~~~~~~~~~~
38+
39+
- Fixed spelling error in dark monitor database column names.
40+
- Fixed dark monitor to avoid processing files that are not in the filesystem.
41+
42+
143
0.20.0 (2019-06-05)
244
===================
345

Jenkinsfile

+86-31
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,94 @@
1-
// Obtain files from source control system.
1+
// JWQL Jenkinsfile
2+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3+
//
4+
// Authors:
5+
// --------
6+
// - Matthew Bourque
7+
// - Lauren Chambers
8+
// - Joshua Alexander
9+
// - Sara Ogaz
10+
// - Matt Rendina
11+
//
12+
// Notes:
13+
// ------
14+
// - More info here: https://github.com/spacetelescope/jenkinsfile_ci_examples
15+
// - Syntax defined here: https://github.com/spacetelescope/jenkins_shared_ci_utils
16+
//
17+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
18+
//
19+
// scm_checkout() does the following:
20+
// 1. Disables pipeline execution if [skip ci] or [ci skip] is present in the
21+
// commit message, letting users exclude individual commits from CI
22+
// 2. Clones the Git repository
23+
// 3. Creates a local cache of the repository to avoid commit drift between tasks
24+
// (i.e. Each stage is guaranteed to receive the same source code regardless of
25+
// commits taking place after the pipeline has started.)
226
if (utils.scm_checkout()) return
327

4-
matrix_os = ["linux-stable"]
28+
// Establish OS and Python version variables for the matrix
29+
matrix_os = ["linux-stable"] // (Note that Jenkins can only be run with Linux, not MacOSX/Windows)
530
matrix_python = ["3.5", "3.6"]
31+
32+
// Set up the matrix of builds
633
matrix = []
734

8-
withCredentials([string(
9-
credentialsId: 'jwql-codecov',
10-
variable: 'codecov_token')]) {
11-
12-
for (os in matrix_os) {
13-
for (python_ver in matrix_python) {
14-
// Define each build configuration, copying and overriding values as necessary.
15-
env_py = "_python_${python_ver}".replace(".", "_")
16-
bc = new BuildConfig()
17-
bc.nodetype = os
18-
bc.name = "debug-${os}-${env_py}"
19-
bc.conda_packages = ["python=${python_ver}"]
20-
bc.build_cmds = [
21-
"conda env update --file=environment${env_py}.yml",
22-
"pip install codecov pytest-cov",
23-
"python setup.py install"]
24-
bc.test_cmds = [
25-
"pytest -s --junitxml=results.xml --cov=./jwql/ --cov-report=xml:coverage.xml",
26-
"sed -i 's/file=\"[^\"]*\"//g;s/line=\"[^\"]*\"//g;s/skips=\"[^\"]*\"//g' results.xml",
27-
"codecov --token=${codecov_token}",
28-
"mkdir -v reports",
29-
"mv -v coverage.xml reports/coverage.xml"]
30-
matrix += bc
35+
// Define IDs that live on the Jenkins server (here, for CodeCov and PyPI)
36+
withCredentials([
37+
string(credentialsId: 'jwql-codecov', variable: 'codecov_token'),
38+
usernamePassword(credentialsId:'jwql-pypi', usernameVariable: 'pypi_username', passwordVariable: 'pypi_password')])
39+
40+
// Iterate over the above variables to define the build matrix.
41+
{
42+
for (os in matrix_os) {
43+
for (python_ver in matrix_python) {
44+
// Define each build configuration, copying and overriding values as necessary.
45+
46+
// Define a string variable to reflect the python version of this build
47+
env_py = "_python_${python_ver}".replace(".", "_")
48+
49+
// Create a new build configuration
50+
bc = new BuildConfig()
51+
52+
// Define the OS (only "linux-stable" used here)
53+
bc.nodetype = os
54+
55+
// Give the build configuration a name. This string becomes the
56+
// stage header on Jenkins' UI. Keep it short!
57+
bc.name = "debug-${os}-${env_py}"
58+
59+
// (Required) Define what packages to include in the base conda environment.
60+
// This specification also tells Jenkins to spin up a new conda environment for
61+
// your build, rather than using the default environment.
62+
bc.conda_packages = ["python=${python_ver}"]
63+
64+
// Execute a series of commands to set up the build, including
65+
// any packages that have to be installed with pip
66+
bc.build_cmds = [
67+
"conda env update --file=environment${env_py}.yml", // Update env from file
68+
"pip install codecov pytest-cov", // Install additional packages
69+
"python setup.py install", // Install JWQL package
70+
"python setup.py sdist bdist_wheel" // Build JWQL pacakge wheel for PyPI
71+
]
72+
73+
// Execute a series of test commands
74+
bc.test_cmds = [
75+
// Run pytest
76+
"pytest ./jwql/tests/ -s --junitxml=results.xml --cov=./jwql/ --cov-report=xml:coverage.xml",
77+
// Add a truly magical command that makes Jenkins work for Python 3.5
78+
"sed -i 's/file=\"[^\"]*\"//g;s/line=\"[^\"]*\"//g;s/skips=\"[^\"]*\"//g' results.xml",
79+
// Define CodeCov token
80+
"codecov --token=${codecov_token}",
81+
// Move the CodeCov report to a different dir to not confuse Jenkins about results.xml
82+
"mkdir -v reports",
83+
"mv -v coverage.xml reports/coverage.xml",
84+
// Update the package wheel to PYPI
85+
"twine upload -u '${pypi_username}' -p '${pypi_password}' --repository-url https://upload.pypi.org/legacy/ --skip-existing dist/*"]
86+
87+
// Add the build to the matrix
88+
matrix += bc
89+
}
3190
}
32-
}
33-
// bc1 = utils.copy(bc0)
34-
// bc1.build_cmds[0] = "conda install -q -y python=3.5"
3591

36-
// Iterate over configurations that define the (distibuted) build matrix.
37-
// Spawn a host of the given nodetype for each combination and run in parallel.
38-
utils.run(matrix)
92+
// Submit the build configurations and execute them in parallel
93+
utils.run(matrix)
3994
}

README.md

+28-9
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,23 @@ Official API documentation can be found on [ReadTheDocs](https://jwql.readthedoc
2323

2424
The `jwql` application is currently under heavy development. The `1.0` release is expected in 2019. Currently, a development version of the web application can be found at [https://dljwql.stsci.edu](https://dljwql.stsci.edu).
2525

26-
## Installation
26+
## Installation for Users
27+
28+
To install `jwql`, simply use `pip`:
29+
30+
```
31+
pip install jwql
32+
```
33+
34+
The section below describes a more detailed installation for users that wish to contribute to the `jwql` repository.
35+
36+
## Installation for Contributors
2737

2838
Getting `jwql` up and running on your own computer requires four steps, detailed below:
2939
1. Cloning the GitHub repository
30-
1. Installing the `conda`environment
31-
1. Installing the python package
32-
1. Setting up the configuration file
40+
2. Installing the `conda`environment
41+
3. Installing the python package
42+
4. Setting up the configuration file
3343

3444
### Prerequisites
3545

@@ -64,25 +74,31 @@ Following the download of the `jwql` repository, contributors can then install t
6474
conda update conda
6575
```
6676

67-
Next, activate the `base` environment:
77+
Next, activate the `base` or `root` environment (depending on your version of `conda`):
6878

6979
```
70-
source activate base
80+
source activate base/root
7181
```
7282

7383
Lastly, create the `jwql` environment with either Python 3.5 or 3.6, via the `environment_python_3_5.yml` or `environment_python_3_6.yml` file, respectively. We recommend installing with the 3.6 version:
7484

7585
```
76-
conda env create -f environment_python_3_6.yml
86+
conda env create -f environment_python_3_6.yml --name jwql-3.6
7787
```
7888

7989
### Package Installation
8090

81-
Next, you need to install the `jwql` package. While still in the `jwql/` directory, run the following command to set up the package:
91+
Next, you need to install the `jwql` package under development mode. This can be accomplished either by running the `setup.py` script, or `pip install` with the `-e` option:
8292

8393
```
8494
python setup.py develop
8595
```
96+
97+
or
98+
99+
```
100+
pip install -e .
101+
```
86102
The package should now appear if you run `conda list jwql`.
87103

88104
### Configuration File
@@ -135,11 +151,12 @@ Any questions about the `jwql` project or its software can be directed to `jwql@
135151
- Bryan Hilbert (INS) [@bilhbert4](https://github.com/bhilbert4)
136152
- Graham Kanarek (INS) [@gkanarek](https://github.com/gkanarek)
137153
- Catherine Martlin (INS) [@catherine-martlin](https://github.com/catherine-martlin)
138-
- Sara Ogaz (OED) [@SaOgaz](https://github.com/SaOgaz)
139154
- Johannes Sahlmann (INS) [@Johannes-Sahlmann](https://github.com/johannes-sahlmann)
155+
- Ben Sunnquist (INS) [@bsunnquist](https://github.com/bsunnquist)
140156

141157
## Acknowledgments:
142158
- Faith Abney (DMD)
159+
- Joshua Alexander (DMD) [@obviousrebel](https://github.com/obviousrebel)
143160
- Anastasia Alexov (DMD)
144161
- Sara Anderson (DMD)
145162
- Tracy Beck (INS)
@@ -171,11 +188,13 @@ Any questions about the `jwql` project or its software can be directed to `jwql@
171188
- Karen Levay (DMD)
172189
- Crystal Mannfolk (SCOPE) [@cmannfolk](https://github.com/cmannfolk)
173190
- Greg Masci (ITSD)
191+
- Jacob Matuskey (DMD) [@jmatuskey](https://github.com/jmatuskey)
174192
- Margaret Meixner (INS)
175193
- Christain Mesh (DMD) [@cam72cam](https://github.com/cam72cam)
176194
- Prem Mishra (ITSD)
177195
- Don Mueller (ITSD)
178196
- Maria Antonia Nieto-Santisteban (SEITO)
197+
- Sara Ogaz (DMD) [@SaOgaz](https://github.com/SaOgaz)
179198
- Brian O'Sullivan (INS)
180199
- Joe Pollizzi (JWSTMO)
181200
- Lee Quick (DMD)

environment_python_3_5.yml

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ dependencies:
1111
- inflection=0.3.1
1212
- ipython=6.5.0
1313
- jinja2=2.10
14+
- jsonschema>=2.6.0
1415
- jwst=0.13.0
1516
- matplotlib=3.0.0
1617
- numpy=1.15.2
@@ -27,6 +28,7 @@ dependencies:
2728
- sphinx_rtd_theme=0.1.9
2829
- sqlalchemy=1.2.11
2930
- stsci_rtd_theme=0.0.2
31+
- twine=1.11.0
3032
- pip:
3133
- authlib==0.10
3234
- codecov==2.0.15

environment_python_3_6.yml

+10-7
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,32 @@ dependencies:
77
- astroquery=0.3.9
88
- bokeh=1.2.0
99
- crds>=7.2.7
10-
- django=2.1.7
10+
- django=2.2.1
1111
- inflection=0.3.1
12-
- ipython=7.5.0
12+
- ipython=7.6.1
1313
- jinja2=2.10
14+
- jsonschema>=3.0.1
1415
- jwst=0.13.1
15-
- matplotlib=3.0.2
16+
- matplotlib=3.1.0
1617
- numpy=1.16.4
1718
- numpydoc=0.9.0
1819
- pandas=0.24.2
1920
- postgresql=9.6.6
2021
- psycopg2=2.7.5
2122
- python=3.6.4
2223
- python-dateutil=2.7.5
23-
- pytest=4.5.0
24+
- pytest=5.0.1
2425
- pytest-cov=2.6.1
2526
- pytest-html=1.19.0
26-
- sphinx=2.0.1
27+
- sphinx=2.1.0
2728
- sphinx_rtd_theme=0.1.9
28-
- sqlalchemy=1.3.3
29+
- sqlalchemy=1.3.5
30+
- sqlparse=0.3.0
2931
- stsci_rtd_theme=0.0.2
32+
- twine=1.13.0
3033
- pip:
3134
- authlib==0.10
3235
- codecov==2.0.15
3336
- jwedb>=0.0.3
34-
- pysiaf==0.2.5
37+
- pysiaf==0.3.1
3538
- sphinx-automodapi==0.10

0 commit comments

Comments
 (0)