|
| 1 | +# RSGISLib Release Notes |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | +## v5.0 (2022-02-10): |
| 6 | + |
| 7 | +Version 5.0 of RSGISLib has been under development since June 2021 and has significant changes compared to v4.x. These changes were required for the following reasons: |
| 8 | + |
| 9 | +* RSGISLib had a dependency on the GEOS C++ API which had changed and therefore this meant that RSGISLib would no longer build using the lastest version of the libraries on conda-forge. C++ dependecies have caused problems for us in the past so reducing the number library dependencies was the starting point of the v5 changes. |
| 10 | +* Pythonic naming and convensions. RSGISLib did not start as a set of Python modules but has turned into that over the years. However, some of the convensions which were used (e.g., CamelCase verses snake_case) has become inconsistent over time. Also, use of keyword arguments in functions wasn't always supports. |
| 11 | +* There were a number of functions and code which were adding over the years which either weren't being maintained or were very specific to a project we did a long time ago and was now no longer relevant. |
| 12 | +* We had some adhoc tests for RSGISLib but the completeness and maintance of those tests was poor. |
| 13 | +* The RSGISLib release cycle was slow with us using a development branch as our working version for long periods before releases, in part due to the problems with dependencies and testing. |
| 14 | + |
| 15 | + |
| 16 | + |
| 17 | +Therefore, the following changes have been introduced within RSGISLib v5. Please note, these changes are highly likely to break any code which was dependent on RSGISLib v4 or earlier. |
| 18 | + |
| 19 | +* The number of dependencies has been reduced, with dependencies on GEOS, xerces-c and CGAL all being removed. The C++ dependencies are now: GDAL, Boost, GSL, MuParser, HDF5 and KEALib. |
| 20 | +* All function names and variables are now snake_case and all functions support keyword arguments. Note, this change will cause code to break. For example, the bandMath function is now band_math. |
| 21 | +* Module structure has been updated and changed in some cases. For example, vectorutils has now been split into multiple modules. |
| 22 | +* Code which was not in use or being maintained or dupicated has been removed or refactored to improve code quality. |
| 23 | +* Added functions and other improvements to aid use and integration with jupyter notebooks. |
| 24 | +* Standardisation of variable names for functions has been implemented. A developer guide has also be written with these listed: https://github.com/remotesensinginfo/rsgislib/blob/main/doc/developer_guide.md |
| 25 | +* A pytest test suite has been implemented with broad coverage. Coverage can be viewed at https://app.codecov.io/gh/remotesensinginfo/rsgislib |
| 26 | +* Continuous integration using circleci has also been implemented so the test suite are run with each commit and pull request. |
| 27 | +* The black code formatter is now used to format the pure Python code. |
| 28 | +* Static code checking for the pure Python code has been setup using sonar cloud. https://sonarcloud.io/summary/new_code?id=remotesensinginfo_rsgislib |
| 29 | +* Documentation / website has been updated to reflect the updates to the v5 code base. |
| 30 | +* New tutorials have been produced in the form of jupyter notebooks: https://github.com/remotesensinginfo/rsgislib-tutorials |
| 31 | + |
| 32 | + |
| 33 | + |
| 34 | +New modules within this release include: |
| 35 | + |
| 36 | +* rsgislib.changedetect |
| 37 | +* rsgislib.classification.classxgboost |
| 38 | +* rsgislib.classification.classimblearn |
| 39 | +* rsgislib.classification.classratutils |
| 40 | +* rsgislib.classification.clustersklearn |
| 41 | +* rsgislib.classification.classaccuracymetrics |
| 42 | +* rsgislib.imagecalc.specunmixing |
| 43 | +* rsgislib.imagecalc.leastcostpath |
| 44 | +* rsgislib.regression |
| 45 | +* rsgislib.segmentation.shepherdseg |
| 46 | +* rsgislib.segmentation.skimgseg |
| 47 | +* rsgislib.timeseries |
| 48 | +* rsgislib.tools.filetools |
| 49 | +* rsgislib.tools.geometrytools |
| 50 | +* rsgislib.tools.plotting |
| 51 | +* rsgislib.tools.projection |
| 52 | +* rsgislib.tools.sensors |
| 53 | +* rsgislib.tools.stats |
| 54 | +* rsgislib.tools.tilecacheutils |
| 55 | +* rsgislib.tools.utils |
| 56 | +* rsgislib.tools.utm |
| 57 | +* rsgislib.tools.checkdatasets |
| 58 | +* rsgislib.vectorattrs |
| 59 | +* rsgislib.vectorgeoms |
| 60 | +* rsgislib.vectorutils.createvectors |
| 61 | +* rsgislib.vectorutils.createrasters |
| 62 | +* rsgislib.zonalstats - *not new but completely re-written and old functions removed* |
| 63 | + |
| 64 | + |
| 65 | + |
| 66 | +There are still some areas of the library where updates haven't been fully completed and you may find some changes in upcoming releases: |
| 67 | + |
| 68 | +* rsgislib.imagecalibration |
| 69 | +* rsgislib.imageutils.imagecomp |
| 70 | +* rsgislib.imageutils.tilingutils |
| 71 | +* rsgislib.segmentation.tiledsegsingle |
| 72 | + |
| 73 | +At release it should also be noted that the ARCSI software we also produce has not yet been updated for RSGISLib v5 but is on-going work. |
| 74 | + |
| 75 | + |
| 76 | + |
0 commit comments