diff --git a/CHANGES.rst b/CHANGES.rst index 712f028e..0f530d2e 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,6 +1,119 @@ Changelog ========= +Version 1.0.0 [2022-05-05] +-------------------------- + +Features +-------- + +- Added ``version`` and ``os`` filters to the ``build`` endpoint +- Added OpenWISP 1.x firmware upgrader (legacy) +- Added support backfire in upgrades from OpenWISP 1.x (legacy) +- Added functionality in OpenWrt backend to free up memory before + uploading the firmware image +- Added following firmwares to the default firmware image map: + + - Custom WAP-1200 + - COMFAST CF-E320N v2 (OpenWRT 19.07 and earlier) + - EnGenius EAP1300 + - Linksys WRT1900ACS + - Linksys WRT3200ACM + - Raspberry Pi 2 Model B + - Raspberry Pi 3 Model B + - TP-Link Archer C7 v1 (OpenWRT 19.07 and earlier) + - TP-Link Archer C7 v1 (OpenWRT 19.07 and later) + - TP-Link Archer C7 v2 (OpenWRT 19.07 and earlier) + - TP-Link Archer C7 v2 (OpenWRT 19.07 and later) + - TP-Link Archer C7 v4 (OpenWRT 19.07 and earlier) + - TP-Link Archer C7 v4 (OpenWRT 19.07 and later) + - TP-Link Archer C7 v5 (OpenWRT 19.07 and earlier) + - TP-Link Archer C7 v5 (OpenWRT 19.07 and later) + - TP-Link Archer C50 v4 + - TP-LINK CPE210 v3 (OpenWRT 19.07 and earlier) + - TP-LINK CPE210 v2 (OpenWRT 19.07 and later) + - TP-LINK CPE210 v3 (OpenWRT 19.07 and later) + - TP-LINK CPE510 v3 (OpenWRT 19.07 and later) + - TP-Link WDR3600 v1 (OpenWRT 19.07 and earlier) + - TP-Link WDR3600 v1 (OpenWRT 19.07 and later) + - TP-Link WDR4300 v1 (OpenWRT 19.07 and earlier) + - TP-Link WDR4300 v1 (OpenWRT 19.07 and later) + - TP-Link WDR4300 v1 Israel Version (OpenWRT 19.07 and earlier) + - TP-Link WDR4300 v1 Israel Version (OpenWRT 19.07 and later) + - TP-Link WR2543N/ND (OpenWRT 19.07 and earlier) + - TP-Link WR2543N/ND (OpenWRT 19.07 and later) + - TP-Link TL-WR902AC v3 + - Ubiquiti AirRouter (OpenWRT 19.07 and earlier) + - Ubiquiti AirRouter (OpenWRT 19.07 and later) + - Ubiquiti EdgeRouter Lite + - Ubiquiti Nanostation Loco M2 - XW (OpenWRT 19.07 and earlier) + - Ubiquiti Nanostation Loco M (OpenWRT 19.07 and later) + - Ubiquiti Nanostation Loco M - XW (OpenWRT 19.07 and later) + - Ubiquiti Nanostation M - XW (OpenWRT 19.07 and earlier) + - Ubiquiti Nanostation M (OpenWRT 19.07 and earlier) + - Ubiquiti Nanostation M - XW (OpenWRT 19.07 and later) + - Ubiquiti Nanostation M (OpenWRT 19.07 and later) + - Ubiquiti Picostation Bullet XW (OpenWRT 19.07 and earlier) + - Ubiquiti Picostation M2HP & Bullet (OpenWRT 19.07 and earlier) + - Ubiquiti Picostation M (OpenWRT 19.07 and later) + - Ubiquiti Unifi AC Mesh (OpenWRT 19.07 and earlier) + - Ubiquiti Unifi AC Mesh (OpenWRT 19.07 and later) + - Ubiquiti Unifi AC Mesh-Pro (OpenWRT 19.07 and earlier) + - Ubiquiti Unifi AC Mesh-Pro (OpenWRT 19.07 and later) + - Ubiquiti UniFi AC Pro (OpenWRT 19.07 and later) + - VMware, Inc. VMware Virtual Platform + - ZBT-WG3526 (16M) + - x86 32 bit (various models) + - x86 Geode(TM) Integrated Processor by AMD + +Changes +------- + +Backward incompatible changes +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +- REST APIs are enabled by default. You can disable them by setting + ``OPENWISP_FIRMWARE_UPGRADER_API`` to ``False``. +- Changed REST API prefix from ``/upgrader/`` to ``/firmware-upgrader/``. + This makes it consistent with REST API endpoints of other modules + +Dependencies +^^^^^^^^^^^^ + +- Dropped support for Python 3.6 +- Dropped support for Django 2.2 +- Added support for Python 3.8 and 3.9 +- Added support for Django 3.2 and 4.0 +- Upgraded openwisp-controller to 1.0.x + +Other changes +^^^^^^^^^^^^^ + +- Avoid deletion of ``UpgradeOperation`` when related + ``Firmware Image`` is deleted +- Increased default retries in OpenWRT upgrader from + ``15`` to ``40`` +- Made firmware upgrade logs translatable +- Changed the default API throttle rate from ``400/hour`` to ``1000/minute`` +- Added time limits to ``openwisp_firmware_upgrader.tasks.create_device_firmware`` + and ``openwisp_firmware_upgrader.tasks.create_all_device_firmwares`` celery tasks + +Bugfixes +-------- + +- Fixed firmware checksum check +- Improved error handling for upgrade operations +- Remove openwisp-config persistent checksum: + openwisp-config 0.6.0 makes the checksum persistent, + but this causes upgraded devices to not download the configuration + again after the upgrade, which is an issue if the configuration + contains any file which is not stored in ``/etc/``. +- Fixed a bug which caused ``Server 500`` error on creating a new + ``Build`` object if ``category`` field was left empty +- Fixed bugs in restoring deleted devices using ``django-reversion`` +- Fixed migrations referencing non-swappable OpenWISP modules + that broke OpenWISP's extensibility + Version 0.1.1 [2021-01-08] -------------------------- diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 4da14798..0311fa2a 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -1 +1 @@ -Please refer to the `Contribution Guidelines `_. +Please refer to the `OpenWISP contributing guidelines `_. diff --git a/openwisp_firmware_upgrader/__init__.py b/openwisp_firmware_upgrader/__init__.py index ebfd6f66..1d6fdd28 100644 --- a/openwisp_firmware_upgrader/__init__.py +++ b/openwisp_firmware_upgrader/__init__.py @@ -1,4 +1,4 @@ -VERSION = (0, 1, 1, 'final') +VERSION = (1, 0, 0, 'final') __version__ = VERSION # alias diff --git a/requirements-test.txt b/requirements-test.txt index e13e4d3e..eb4254fd 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -1,4 +1,4 @@ -openwisp-utils[qa] @ https://github.com/openwisp/openwisp-utils/tarball/master +openwisp-utils[qa]~=1.0.1 redis~=4.2.2 django-redis~=5.2.0 mock-ssh-server~=0.8.0 diff --git a/setup.py b/setup.py index f6174f3b..fa6cd08d 100755 --- a/setup.py +++ b/setup.py @@ -6,11 +6,6 @@ from openwisp_firmware_upgrader import get_version -# TODO: change this when next version of openwisp_controller is released -controller = 'https://github.com/openwisp/openwisp-controller/tarball/master' -# TODO: change this when next version of openwisp_utils is released -utils = 'https://github.com/openwisp/openwisp-utils/tarball/master' - if sys.argv[-1] == 'publish': # delete any *.pyc, *.pyo and __pycache__ os.system('find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf') @@ -40,8 +35,7 @@ include_package_data=True, zip_safe=False, install_requires=[ - f'openwisp-controller @ {controller}', - f'openwisp-utils[rest] @ {utils}', + 'openwisp-controller~=1.0.0', 'django-private-storage~=3.0.0', ], classifiers=[