v0.12.0: Update to Python 3.8 & Django 2.2; Migrate to AWS
New in v0.12.0: Update to Python 3.8 & Django 2.2; Migrate to AWS
This major release updates the entire software stack to supported versions and migrates to hosting by Amazon Web Services (AWS). It represents a substantial pay off of accumulated "tech debt" since 2018 and paves the way for feature development scheduled for 2022. A major goal of this effort was to improve the reliability and performance for users.
This work was supported by a contract from the Stroud Water Research Center's general fund.
Improvements
- Updating the codebase to more recent Long Term Release (LTR) versions of dependencies:
- Ubuntu Linux 16.04 to 20.04. #391
- Python 2.7 to 3.8. #381
- Django 1.11 to 2.2. #385
- PostgreSQL 9.5 to 12. #497
- For a complete list of updates, compare our old
requirements.txt
to our current Condaenvironment.yml
files.
- Replaced all use of the InfluxDB time series database with the TimescaleDB extension to PostgreSQL. #434
- This substantially improves the reliability of the web application, while also simplifying the codebase, substantially reducing data redundancy, increasing performance, and massively reducing data storage to 5% of previous.
- Replaced use of Time Series Analyst (TSA) software with a new built-in Time Series Visualization (TSV) tool. #512, #515
- Although this presently reduces the features available for interactive visualization of time series data, it opens the door to new features that we will develop over the next year. TSV will also be more performant and reliable that TSA.
- Deployed https://monitormywatershed.org to AWS EC2 instances, for much improved reliability and performance.
Bug Fixes
- Fixed numerous bugs related to data visualization. #473, #489, #444
- Fixed numerous bugs related to CSV downloads and uploads. #364, #443, #430, and many others
- Fixed bug with Water One Flow web services (WOFpy), in which only one value was returned per request. #432
For the full list of issues that we addressed, see these Milestones on GitHub: