Arches 6.2.1 release notes ------------------------ ### Major enhancements - Upgrade Django from 2.2 to 3.2.14 as well as several other Python dependencies #8140 - Allow creation of related resources in resource instance widget configured with search query #8588 - Track resource index status in the database to index resources after direct database import #8436 - Save resource instance descriptors to database rather than only in ES index #8436 - Update several JavaScript dependencies #8631 - Removes `django-revproxy` and adds `arches-django-revproxy` workaround #8941 - Allow graph editors to modify node alias #8622 - Improve load performance for resources with many relations #8619 - Notify when json-ld loader fails to load, adds `ignore-errors` flag #8666 ### Additional Highlights - Update resource-instance widget to allow for instance creation #8049 - Prevent error cause by missing module: 'django.contrib.postgres' #8141 - Notify when import using celery is done #8503 - During resource import, change print statements to logger statements #8558 - Fix bug in `Column Names in first row` switch in CSV importer #8562 - Add confirmation dialog to undo button in ETL Manager #8579 - Fix various UI bugs in Workflows / ETL Manager #8589 - Task Manager notifies user if Celery is unavailable #8587 - Minor updates to Image Service Manager UI #8595 #8946 - Adds check for celery load failure in ETL manager for both branch_csv and single_csv #8615 - Moves some concept and domain-specific logic from `csvfile.py` into respective datatype methods #8616 - Remove cache.py management command #8617 - Add visual cue to indicate that the application is in `DEBUG` mode #8637 - In the `Graph` model, add check for ontology_id rather than performing a database query #8672 - Improve error messaging around the excess tiles trigger #8690 - Add support for AJAX calls within datatables #8738 - Add reference to new and old values in bulk_index_queue insert references #8771 - Fix AJAX dataType setting in `datatypes.js` and `concept.js` #8805 - Update edit log to handle resources with tiles nested 2 levels or deeper #8880 - Improves how csv import handles invalid datatype values #8957 - Use `settings.MEDIA_UR`L for generated URL when uploading media #8961 - During the resource instance datatype validation, warn admin that related resource exists in db only when `strict` is used #8971 - On graph import, do not overwrite alias if it already exists #8984 - Adds all `params` to JavaScript card model #9003 - Update related resource pagination for resources with many relations #9011 - Adds correct link to release notes in README.md ### Dependency changes: ``` Python: Upgraded: Django 2.2.24 -> 3.2.15 celery 4.4.4 -> 5.2.7 django-celery-results 1.2.1 -> 2.4.0 django-compressor 2.2 -> 3.1 django-libsass 0.7 -> 0.9 Added: arches-django-revproxy==0.10.0 Removed: django-revproxy==0.9.15 Javascript: Upgraded: bootstrap 3.3.7 -> 3.4.1 bootstrap-colorpicker 2.3.6 -> 2.5.3 codemirror 5.24.0 -> 5.65.6 datatables.net 1.10.22 -> 1.12.1 datatables.net-bs 1.10.12 -> 1.12.1 datatables.net-buttons 1.5.4 -> 2.2.3 datatables.net-buttons-bs 1.5.4 -> 2.2.3 datatables.net-responsive 2.1.0 -> 2.3.0 datatables.net-responsive-bs 2.1.0 -> 2.3.0 jquery 3.3.1 -> 3.6.0 jquery-migrate 3.0.0 -> 3.4.0 jquery-validation 1.17.0 -> 1.19.5 moment 2.10.5 -> 2.29.4 moment-timezone 0.5.0 -> 0.5.34 underscore 1.9.1 -> 1.13.4 Added: none ``` ### Upgrading Arches 1. You must be upgraded to at least version 6.0 before proceeding. 2. Be sure to backup your database before proceeding 3. Remove django-revproxy `pip uninstall django-revproxy` 4. Upgrade to Arches 6.2.1 pip install --upgrade arches 5. Within your project with your Python 3 virtual environment activated: python manage.py migrate 6. **Important:** If you are maintaining an Arches package, be sure to export your graphs and resource instance data before re-importing or reloading your package. ### Upgrading an Arches project 1. Update your JavaScript dependencies Your project's package.json file looks something like this (Yours maybe different, but only `arches` and packages supporting project customizations will be listed in the dependencies): ``` { "name": "myproject", "dependencies": { "arches": "archesproject/arches#stable/6.1.0", } } ``` Change the arches version number to `#stable/6.2.1` **If your package.json does not have arches listed as a dependency**, follow the instructions of [step 1 here](https://github.com/archesproject/arches/blob/master/releases/5.1.0.md#upgrading-an-arches-project) to update your package.json file. Be sure to use #stable/6.2.1 as the version number for arches when you update your package.json file. Once your package.json file is updated, navigate to the directory where `package.json` is located and run: ```yarn install``` 2. Ensure any references to `staticfiles` inside your project templates are changed to `static` - eg. `{% load staticfiles %}` -> `{% load static %}` 3. Ensure the item in `LANGUAGES` that matches `LANGUAGE_CODE` is enabled in your project's `settings.py` ``` LANGUAGE_CODE = "en" LANGUAGES = [ # ('de', _('German')), ('en', _('English')), # ('en-gb', _('British English')), # ('es', _('Spanish')), ] ``` 4. If you are running Celery with `supervisord`, you may need to update your `celeryd.conf` file. The location of this file is dependent on your system: ``` # 6.1.0 command=/path/to/virtualenv/bin/celery worker -A [app].celery --loglevel=INFO ``` ``` # 6.2.1 command=/path/to/virtualenv/bin/celery -A [app].celery worker --loglevel=INFO ``` 5. If you are running Arches on Apache, be sure to run: ``` python manage.py collectstatic ``` and restart your server. ``` sudo service apache2 reload ``` 6. Finally, If you are running Celery, you should also restart your Celery worker(s). The process for doing this depends on how Celery is being run.