Skip to content

Commit

Permalink
Merge branch 'master' into dependabot/npm_and_yarn/prismjs-1.23.0
Browse files Browse the repository at this point in the history
  • Loading branch information
ajstewart committed Mar 26, 2021
2 parents 2b89a56 + 72e0f41 commit c07b1ee
Show file tree
Hide file tree
Showing 34 changed files with 3,498 additions and 1,458 deletions.
18 changes: 0 additions & 18 deletions .github/actions/create-dev-database/Dockerfile

This file was deleted.

6 changes: 1 addition & 5 deletions .github/actions/create-dev-database/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,7 @@ version: "3"
services:

database:
build:
context: ./
dockerfile: Dockerfile
# The name for the custom image being built
image: vast-dev-db
image: ghcr.io/marxide/postgres-q3c:latest
container_name: vast-dev-db
ports:
- "127.0.0.1:${DB_PORT}:5432"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ jobs:
- uses: actions/setup-python@v2
with:
python-version: 3.x
- run: pip install -r requirements/docs.txt
- run: pip install mkdocs-material mkdocstrings mkdocs-minify-plugin mkdocs-material-extensions
- run: mkdocs gh-deploy -m 'github action deployment' --force
6 changes: 3 additions & 3 deletions .github/workflows/test-suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python_version: ['3.6.12', '3.7.5', '3.8.7']
python_version: ['3.7.5', '3.8.7', '3.9.1']

steps:
- uses: actions/checkout@v2
Expand Down Expand Up @@ -47,7 +47,7 @@ jobs:
run: |
npm ci
npm start
pip install -r requirements/dev.txt
pip install .
- name: Set DATABASE_URL (using ansible)
run: >
Expand All @@ -62,7 +62,7 @@ jobs:
- name: Create database user and database name
run: >
./init-tools/init-db.sh
python ./init-tools/init-db.py
localhost ${{ env.db_port }}
postgres ${{ env.db_password }}
vast vastpsw vastdb
Expand Down
15 changes: 14 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),

#### Added

- Added `requirements/environment.yml` so make it easier for Miniconda users to get the non-Python dependencies [#472](https://github.com/askap-vast/vast-pipeline/pull/472).
- Added `pyproject.toml` and `poetry.lock` [#472](https://github.com/askap-vast/vast-pipeline/pull/472).
- Added `init-tools/init-db.py` [#472](https://github.com/askap-vast/vast-pipeline/pull/472).
- Added image add mode run restore command 'restorepiperun' [#463](https://github.com/askap-vast/vast-pipeline/pull/463)
- Added documentation folder and files for `mkdocs` and CI [#433](https://github.com/askap-vast/vast-pipeline/pull/433)
- Added add image to existing run feature [#443](https://github.com/askap-vast/vast-pipeline/pull/443)
Expand All @@ -19,16 +22,22 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
#### Changed

- Dependabot: Bump prismjs from 1.22.0 to 1.23.0 [#469](https://github.com/askap-vast/vast-pipeline/pull/469).
- Changed the `vaex` dependency to `vaex-arrow` [#472](https://github.com/askap-vast/vast-pipeline/pull/472).
- Set `CREATE_MEASUREMENTS_ARROW_FILES = True` in the basic association test config [#472](https://github.com/askap-vast/vast-pipeline/pull/472).
- Bumped minimum Python version to 3.7.1 [#472](https://github.com/askap-vast/vast-pipeline/pull/472).
- Replaced npm package `gulp-sass` with `@mr-hope/gulp-sass`, a fork which drops the dependency on the deprecated `node-sass` which is difficult to install [#472](https://github.com/askap-vast/vast-pipeline/pull/472).
- Changed the installation documentation to instruct users to use a PostgreSQL Docker image with Q3C already installed [#472](https://github.com/askap-vast/vast-pipeline/pull/472).
- Changed 'cmd' flag in run pipeline to 'cli' [#466](https://github.com/askap-vast/vast-pipeline/pull/466).
- Changed `CONTRIBUTING.md` and `README.md` [#433](https://github.com/askap-vast/vast-pipeline/pull/433)
- Changed forced extraction name suffix to run id rather than datetime [#443](https://github.com/askap-vast/vast-pipeline/pull/443)
- Changed tests to run on smaller cutouts [#443](https://github.com/askap-vast/vast-pipeline/pull/443)
- Changed particles style on login page [#459](https://github.com/askap-vast/vast-pipeline/pull/459).
- Dependabot: Bump ini from 1.3.5 to 1.3.8 [#436](https://github.com/askap-vast/vast-pipeline/pull/436)


#### Fixed

- Fixed the default Dask multiprocessing context to "fork" [#472](https://github.com/askap-vast/vast-pipeline/pull/472).
- Fixed Selavy catalogue ingest to discard the unit row before reading the data [#473](https://github.com/askap-vast/vast-pipeline/pull/473).
- Fixed initial job processing from the UI [#466](https://github.com/askap-vast/vast-pipeline/pull/466).
- Fixed links in `README.md` [#464](https://github.com/askap-vast/vast-pipeline/pull/464).
- Fixed basic association new sources created through relations [#443](https://github.com/askap-vast/vast-pipeline/pull/443)
Expand All @@ -41,12 +50,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),

#### Removed

- Removed `requirements/*.txt` files. Development dependency management moved to Poetry [#472](https://github.com/askap-vast/vast-pipeline/pull/472).
- Removed `init-tools/init-db.sh` [#472](https://github.com/askap-vast/vast-pipeline/pull/472).
- Removed `INSTALL.md`, `PROFILE.md` and `static/README.md` [#433](https://github.com/askap-vast/vast-pipeline/pull/433)
- Removed aplpy from base requirements [#460](https://github.com/askap-vast/vast-pipeline/pull/460).

#### List of PRs

- [#469](https://github.com/askap-vast/vast-pipeline/pull/469) dep: Bump prismjs from 1.22.0 to 1.23.0.
- [#472](https://github.com/askap-vast/vast-pipeline/pull/472) feat: Simplify install.
- [#473](https://github.com/askap-vast/vast-pipeline/pull/473) fix: discard the selavy unit row before reading.
- [#466](https://github.com/askap-vast/vast-pipeline/pull/466) fix: Fixed initial job processing from the UI.
- [#463](https://github.com/askap-vast/vast-pipeline/pull/463) feat: Added image add mode run restore command.
- [#433](https://github.com/askap-vast/vast-pipeline/pull/433) doc: add documentation GitHub pages website with CI.
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ This repository holds the code of the Radio Transient detection pipeline for the

[![VAST Pipeline Login](https://github.com/askap-vast/vast-pipeline/blob/master/docs/img/login.png)](https://github.com/askap-vast/vast-pipeline/blob/master/docs/img/login.png)

Please read the [Installation Instructions](https://vast-survey.org/vast-pipeline/quickstart/installation/). If you intend to contribute to/develop the code base please read and follow the [Contributing and Developing Guidelines](https://vast-survey.org/vast-pipeline/developing/intro/).
Please read the [Installation Instructions](https://vast-survey.org/vast-pipeline/quickstart/installation/). If you have any questions or feedback, we welcome you to open an [issue](https://github.com/askap-vast/vast-pipeline/issues). If you are interested in contributing to the code, please read and follow the [Contributing and Developing Guidelines](https://vast-survey.org/vast-pipeline/developing/intro/).

## Features

* Code base in `Python 3.6+`, recommended >= `3.7`
* Code base in `Python 3.7+`
* Source association/manipulations using `Astropy4+` and `Pandas1+` dataframe
* Association methods: basic (`Astropy` crossmatch), advanced (search with a fixed distance), De Ruiter
* Flagging of "New Source" and "Related Source"
Expand All @@ -30,15 +30,15 @@ Please read the [Installation Instructions](https://vast-survey.org/vast-pipelin

[![VAST Pipeline Overview](https://github.com/askap-vast/vast-pipeline/blob/master/docs/img/vast_pipeline_overview1.gif)](https://github.com/askap-vast/vast-pipeline/blob/master/docs/img/vast_pipeline_overview1.gif)


## Credits & Acknowledgements

This tool was developed by Sergio Pintaldi from the [Sydney Informatics Hub](https://informatics.sydney.edu.au) – a core research facility of [The University of Sydney](https://www.sydney.edu.au/) – together with Adam Stewart from the [Sydney Institute for Astronomy](https://sifa.sydney.edu.au/), Andrew O'Brien and David Kaplan from the [Department of Physics, University of Wisconsin-Milwaukee](https://uwm.edu/physics/research/astronomy-gravitation-cosmology/). Substantial contributions have been made by the [ADACS team](https://adacs.org.au/who-we-are/our-team/) Shibli Saleheen, David Liptai, Ella Xi Wang.

The developers thank the creators of [SB Admin 2](https://github.com/StartBootstrap/startbootstrap-sb-admin-2) to make the dashboard template freely available.

If using this tool in your research, please acknowledge the [Sydney Informatics Hub](https://informatics.sydney.edu.au) in publications.

```bash
```console

/ /\ ___ /__/\
/ /:/_ / /\ \ \:\
Expand Down
72 changes: 36 additions & 36 deletions docs/architecture/intro.md
Original file line number Diff line number Diff line change
@@ -1,59 +1,59 @@
# VAST Pipeline Architecture

The pipeline is essentially a [Django app](https://www.djangoproject.com/) in which the pipeline is run as a Django admin command. The main structure of the pipeline is described in this schematics:
The pipeline is essentially a [Django app](https://www.djangoproject.com/){:target="_blank"} in which the pipeline is run as a Django admin command. The main structure of the pipeline is described in this schematics:

[![VAST Pipeline Stack](../img/vast_pipeline_architecture.png){: loading=lazy }](../img/vast_pipeline_architecture.png)

## Design Philosophy

We design the pipeline in order to make it easy to use but at the same time powerful and fast. We decided to use the familiar Pandas Dataframe structure to wrap all the data manipulations, including the association operations, in the back-end. The Python community, as well as the research and scientific communities (including the astro-physicists) are very familiar with Pandas, and they should be able to understand, mantain and develop the code base.

Usually in the "Big Data" world the commond tools adopted by the industry and research are [Apache Hadoop](https://hadoop.apache.org/) and [Spark](https://spark.apache.org/). We decided to use [Dask](https://dask.org/) which is similar to Spark in same ways, but it integrates well with Pandas Dataframe and its syntax is quite similar to Pandas. Further it provides scalability by means of clustering and integrating with HPC (High Performance Comptuing) stacks.
Usually in the "Big Data" world the commond tools adopted by the industry and research are [Apache Hadoop](https://hadoop.apache.org/){:target="_blank"} and [Spark](https://spark.apache.org/){:target="_blank"}. We decided to use [Dask](https://dask.org/){:target="_blank"} which is similar to Spark in same ways, but it integrates well with Pandas Dataframe and its syntax is quite similar to Pandas. Further it provides scalability by means of clustering and integrating with HPC (High Performance Comptuing) stacks.

The pipeline code itself and the web app are integrated into one code base, for the sake of simplicity, easy to develop using one central repository. The user can still run the pipeline via CLI (Command Line Interface), using [Django Admin Commands](https://docs.djangoproject.com/en/3.1/howto/custom-management-commands/), as well as thorugh the web app itself. The integration avoid duplication in code, especially on regards the declaration of the schema in the ORM (Object Relational Mapping), and add user and permission management on the underlyng data, through the in-built functionality of Django framework.
The pipeline code itself and the web app are integrated into one code base, for the sake of simplicity, easy to develop using one central repository. The user can still run the pipeline via CLI (Command Line Interface), using [Django Admin Commands](https://docs.djangoproject.com/en/3.1/howto/custom-management-commands/){:target="_blank"}, as well as thorugh the web app itself. The integration avoid duplication in code, especially on regards the declaration of the schema in the ORM (Object Relational Mapping), and add user and permission management on the underlyng data, through the in-built functionality of Django framework.

The front-end is built in simple HTML, CSS and Javascript using a freely available [Bootstrap 4](https://getbootstrap.com/docs/4.0/getting-started/introduction/) template. The developers know best practices in the web development are focusing mostly on single page applications using framework such as [ReactJS](https://reactjs.org/) and [AngularJS](https://angular.io/). The choice of using just the basic web stack (HTML + CSS + JS) was driven by the fact that future developers do not need to learn modern web frameworks such as React and Angular, but the fundamental web programming which is still the core of those tools.
The front-end is built in simple HTML, CSS and Javascript using a freely available [Bootstrap 4](https://getbootstrap.com/docs/4.0/getting-started/introduction/){:target="_blank"} template. The developers know best practices in the web development are focusing mostly on single page applications using framework such as [ReactJS](https://reactjs.org/){:target="_blank"} and [AngularJS](https://angular.io/){:target="_blank"}. The choice of using just the basic web stack (HTML + CSS + JS) was driven by the fact that future developers do not need to learn modern web frameworks such as React and Angular, but the fundamental web programming which is still the core of those tools.


## Technology Stack

### Back-End

* [Astropy 4+](https://www.astropy.org/)
* [Astroquery 0.4+](https://astroquery.readthedocs.io/en/latest/)
* [Bokeh 2+](https://docs.bokeh.org/en/latest/index.html)
* [Dask 2+](https://dask.org/)
* [Django 3+](https://www.djangoproject.com/)
* [Django Rest Framework](https://www.django-rest-framework.org/)
* [Rest Framework Datatables](https://django-rest-framework-datatables.readthedocs.io/en/latest/)
* [Django Q](https://django-q.readthedocs.io/en/latest/)
* [Python Social Auth - Django](https://github.com/python-social-auth/social-app-django)
* [Django Crispy Forms](https://django-crispy-forms.readthedocs.io/en/latest/index.html)
* [Django Tagulous](https://github.com/radiac/django-tagulous)
* [Pandas 1+](https://pandas.pydata.org/)
* [Python 3.6+](https://www.python.org/)
* [Pyarrow 0.17+](https://arrow.apache.org/docs/python/install.html)
* [Postgres 10+](https://www.postgresql.org/)
* [Q3C](https://github.com/segasai/q3c)
* [Vaex 3+](https://vaex.readthedocs.io/en/latest/)
* [Astropy 4+](https://www.astropy.org/){:target="_blank"}
* [Astroquery 0.4+](https://astroquery.readthedocs.io/en/latest/){:target="_blank"}
* [Bokeh 2+](https://docs.bokeh.org/en/latest/index.html){:target="_blank"}
* [Dask 2+](https://dask.org/){:target="_blank"}
* [Django 3+](https://www.djangoproject.com/){:target="_blank"}
* [Django Rest Framework](https://www.django-rest-framework.org/){:target="_blank"}
* [Rest Framework Datatables](https://django-rest-framework-datatables.readthedocs.io/en/latest/){:target="_blank"}
* [Django Q](https://django-q.readthedocs.io/en/latest/){:target="_blank"}
* [Python Social Auth - Django](https://github.com/python-social-auth/social-app-django){:target="_blank"}
* [Django Crispy Forms](https://django-crispy-forms.readthedocs.io/en/latest/index.html){:target="_blank"}
* [Django Tagulous](https://github.com/radiac/django-tagulous){:target="_blank"}
* [Pandas 1+](https://pandas.pydata.org/){:target="_blank"}
* [Python 3.7+](https://www.python.org/){:target="_blank"}
* [Pyarrow 0.17+](https://arrow.apache.org/docs/python/install.html){:target="_blank"}
* [Postgres 10+](https://www.postgresql.org/){:target="_blank"}
* [Q3C](https://github.com/segasai/q3c){:target="_blank"}
* [Vaex 3+](https://vaex.readthedocs.io/en/latest/){:target="_blank"}

### Front-End

* [Aladin Lite](https://aladin.u-strasbg.fr/AladinLite/)
* [Bokeh](https://docs.bokeh.org/en/latest/index.html)
* [Bootstrap 4](https://getbootstrap.com/docs/4.0/getting-started/introduction/)
* [DataTables](https://datatables.net/)
* [D3 Celestial](https://github.com/ofrohn/d3-celestial)
* [Jquery](https://jquery.com/)
* [JS9](https://js9.si.edu/)
* [ParticleJS](https://vincentgarreau.com/particles.js/)
* [PrismJS](https://prismjs.com/)
* [SB Admin 2 template](https://github.com/StartBootstrap/startbootstrap-sb-admin-2)
* [Aladin Lite](https://aladin.u-strasbg.fr/AladinLite/){:target="_blank"}
* [Bokeh](https://docs.bokeh.org/en/latest/index.html){:target="_blank"}
* [Bootstrap 4](https://getbootstrap.com/docs/4.0/getting-started/introduction/){:target="_blank"}
* [DataTables](https://datatables.net/){:target="_blank"}
* [D3 Celestial](https://github.com/ofrohn/d3-celestial){:target="_blank"}
* [Jquery](https://jquery.com/){:target="_blank"}
* [JS9](https://js9.si.edu/){:target="_blank"}
* [ParticleJS](https://vincentgarreau.com/particles.js/){:target="_blank"}
* [PrismJS](https://prismjs.com/){:target="_blank"}
* [SB Admin 2 template](https://github.com/StartBootstrap/startbootstrap-sb-admin-2){:target="_blank"}

### Additional

* [Docker](https://www.docker.com/)
* [node 12+](https://nodejs.org/en/)
* [npm 6+](https://www.npmjs.com/)
* [gulp 4+](https://gulpjs.com/)
* [GitHub Actions](https://github.com/features/actions)
* [Docker](https://www.docker.com/){:target="_blank"}
* [node 12+](https://nodejs.org/en/){:target="_blank"}
* [npm 6+](https://www.npmjs.com/){:target="_blank"}
* [gulp 4+](https://gulpjs.com/){:target="_blank"}
* [GitHub Actions](https://github.com/features/actions){:target="_blank"}
4 changes: 2 additions & 2 deletions docs/developing/docsdev.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Development Guidelines for Documentation

The pipeline documentation has been developed using the python package `mkdocs`and the [material theme](https://squidfunk.github.io/mkdocs-material/). It is published as a static website using GitHub pages.
The pipeline documentation has been developed using the python package `mkdocs`and the [material theme](https://squidfunk.github.io/mkdocs-material/){:target="_blank"}. It is published as a static website using GitHub pages.

## Documentation development server

Expand Down Expand Up @@ -39,7 +39,7 @@ Python docstrings and source code can be rendered using the `mkdocstrings` plugi
::: vast_pipeline.models
```

More details on how to display the source code and additional tweaks can be found in [mkdocstrings documentation](https://pawamoy.github.io/mkdocstrings/usage/).
More details on how to display the source code and additional tweaks can be found in [mkdocstrings documentation](https://pawamoy.github.io/mkdocstrings/usage/){:target="_blank"}.

## Deployment to GitHub pages

Expand Down
Loading

0 comments on commit c07b1ee

Please sign in to comment.