Arches 7.4.0 release notes ------------------------ ### Major enhancements - Allows users to search on strings containing special characters, #9574 - Allows admins to apply permissions to map layers, #9451 - Allows admin to configure search export access, #9479 - Adds many accessibility improvements, #9603 - Adds bulk data editor, #9156 - Allow graph designers to describe instance relationships with concept labels, #9213 - Adds in-app help for plugins & etl modules, #9589 - Allows project developer to enforce arches version compatibility in a project, #9420 - Prevents node alias conflicts when appending a branch, #9209 - Implement well defined map layer sort order, fully config map layer in JSON file, #9291 - Fixes Admin page error, #9583 ### Additional highlights - Fixes bug causing empty text nodes to display when Hide Null Values selected, #9143 - Fixes i18n bug in __arches_get_tile_cardinality_violations, #9148 - Allows configuration of datatypes to specify PG datatype in Resou…, #9069 - JSONLD parser fixes, #9233 - Ensures descriptors are updated in indexed resource instance, re #9232, #9245 - Cards now load from cards or card components directories in package, #9263 - Allows for preloaded suffix on uploaded files, #8713 - Updates grouping card for 7.x #9267, #9276 - Improves error reporting in bulk importer modules, #9165, #9172 - Adds language updates for Arabic, Hebrew, and Urdu, re #9317, #9323 - Fixes search url UI sync, re #9299, #9300 - Fixes tile file download issue that can cause arches crash per #9319, #9320 - Fixes system settings import error, re #9374, #9375 - Fixes KML import bug, #9394 - Update webpack for Windows support, #9286 - Fixes clone graph interaction #9264, #9275 - EDTF and table alias fix for spatial views, #9478 - Updates view triggers to add support for null geometries, #9439 - Adds the branch publication id to the node, #9055, #9059 - Moves cardinality to nodegroups, #9483 - Fixes Login page redirect, #9526 - Fixes asterisk not showing up for required string nodes, #9547 - Fixes not null advanced search query, #9556 - Adds temporary files table , #9565 - Updates Graph.append_branch to handle branch with multiple nodes that share a name with a node in the graph, #9473 - Prevents node deletion in published graph, re #9575, #9576 - Adds inverseOf to concept relation types, re #9573, #9577 - Sort cards, widgets and nodes on serialize, #9539 - Creates `get_published_graph` method and replaces all calls, #9600 - Adds Home Link to side navigation menu, #9596 Performance Improvements - Prevent unnecessary card constraint queries, #9231 - Use descriptor from resource instance when available, #9234 - Use serialized graphs in building resource json, #9447 - Removes unnecessary celery check during index, #9542 - Fixes inefficient database trigger, #9605 ### Dependency changes ``` Python: Upgraded: Django 3.2.15 -> 3.2.19 requests[security] 2.18.1 -> 2.31.0 python-slugify 4.0.0 -> 7.0.0 Added: psycopg2==2.9.6 (replaces psycopg2-binary) semantic-version==2.10.0 Removed: psycopg2-binary==2.8.4 python-docx==0.8.10 JavaScript: Upgraded: jquery: ~3.6.2 -> ^3.6.2 Added: cross-env: ^7.0.3 ``` ### Breaking changes None ### Upgrading Arches 1. Upgrade to version 7.3.0 before proceeding. If upgrading from an earlier version, refer to the upgrade process in the [Version 7.3.0 release notes](https://github.com/archesproject/arches/blob/dev/7.3.x/releases/7.3.0.md) 2. Be sure to backup your database before proceeding. 3. Upgrade to Arches 7.4.0 ``` pip uninstall psycopg2-binary pip install --upgrade arches==7.4.0 ``` 4. Within your project, with your Python 3 virtual environment activated: ``` python manage.py migrate ``` 5. Reindex your database: ``` python manage.py es reindex_database ``` 6. Update the JavaScript dependencies and devDependencies: In the project's `package.json` file change arches from `stable/7.3.0` to `stable/7.4.0`: ``` "dependencies": { "arches": "archesproject/arches#stable/7.4.0", }, "devDependencies": { "arches-dev-dependencies": "archesproject/arches-dev-dependencies#stable/7.4.0" } ``` 7. Start your application server in a separate terminal if it's not already running. Your webpack build will not complete without your application server running. 8. In the same terminal window where you ran `yarn` ( on the same level as `package.json` ), run `yarn start` or `yarn build_development`. This will generate your `media/build` directory. - If running your project in development: - `yarn start` will build the frontend of the application and then start a webpack development server - `yarn build_development` will build a development bundle for the frontend assests of the application -- this should complete in less than 2 minutes - If running your project in production: - `yarn build_production` This builds a production bundle. **takes up to 2hrs depending on resources** - Alternatively you can `cd ..` up a directory and run `python manage.py build_production`. This will create a production bundle of frontend assessts and also call `collectstatic`. 6. If you are running Arches on Apache, be sure to run: ``` collectstatic ``` and restart your server. ``` sudo service apache2 reload ```