25 | | # Current issues (2016) # |
26 | | |
27 | | Below are the most pressing issues (defects, misconfigurations, etc.) at hand. These do not include functionality enhancements that are in the pipeline. |
28 | | |
29 | | ## The `clarin_eric_config` module depends on `wysiwyg` and other outdated and/or custom modules ## |
30 | | |
31 | | For WYSIWYG rich text editing, either `wysiwyg` or `ckeditor` is needed. `wysiwyg` is an extra layer of complexity that allows you to configure various alternative WYSIWYG editing libraries. However, only `CKEditor` seems current and still maintained among these. The CKEditor JavaScript library must be installed locally inside the Drupal code base for it to be detected by `wysiwyg`. `wysiwyg` conflicts with `ckeditor` and only supports CKEditor >= 3, < 4. After the emergency (security) update of Drupal from 7.39 to 7.43, WYSIWYG editing stopped working. For some reason, the CKEditor 4 library is/was still inside the Drupal code base. `wysiwyg` now fails to detect this CKEditor library, and this is [https://www.drupal.org/node/1853550 on purpose], since its version is not supported apparently. CKEditor 4 has been installed via the `ckeditor` module after that in order to replace `wysiwyg`. But `wysiwyg` does not work when `ckeditor` is installed. Yet `wysiwyg` is required (depended on) by the custom `clarin_eric_config` module that is currently unmaintained but essential to site functionality. Thus `ckeditor` had to be disabled againg and there is no WYSIWYG editor available anymore for the time being. The solution is to update the `clarin_eric_config` to not depend on `wysiwyg` or any other unnecessary modules, and then to replace the module `wysiwyg` with `ckeditor`. |
32 | | |
33 | | ## Update each module piece by piece, not just for security issues ## |
34 | | |
35 | | We should use only stable versions of third party modules. Furthermore, we should cut down the number of modules insofar possible. |
36 | | |
37 | | Current problems: |
38 | | a. Development versions (betas and even alphas) of modules are currently used in production. |
39 | | a. These versions are largely outdated according to `drush`. |
40 | | a. In addition, a lot of modules cannot be updated by `drush`. They were customized or are incompatible/unavailable for other reasons. |
41 | | a. It unclear whether updating the modules would break anything. |
42 | | |
43 | | # Historical situation # |
44 | | |
45 | | ## Drush availability ## |
46 | | |
47 | | Drush is installed in Bas van der Veen and Jurriaan Roelof's home directories instead of in a system-wide `$PATH` directory. |
48 | | Users from the Unix group `clarinadmin` can access it. At this moment Bas van der Veen can perform Drush commands (in directory `/hum/web/www.clarin.eu/htdocs/sites/clarin.eu` or `/hum/web/tst.clarin.eu/htdocs`) |
49 | | `/home/bvdveen/drush/drush status` |
50 | | |
51 | | The current version is outdated (5.8) and should be updated after planned OS upgrade (Feb 2016). Recent `drush` subcommands may not work otherwise. |
52 | | |
53 | | In the following, let `"${Drupal_root_dir_path}"` be the root directory path of the Drupal installation. |
54 | | |
55 | | ## Backups ## |
56 | | ICT & Media system administrators are responsible for a regular backup through a filesystem(?) snapshot. |
57 | | |
58 | | ### Manually, through web interface ### |
59 | | [https://www.clarin.eu/admin/config/system/backup_migrate] |
60 | | |
61 | | ### Manually, from command line ### |
62 | | With [http://www.drushcommands.com/drush-6x/archive/archive-dump `archive-dump`] |
63 | | {{{ |
64 | | #!sh |
65 | | |
66 | | drush archive-dump # --no-core |
67 | | }}} |
68 | | |
69 | | [http://www.drushcommands.com/drush-6x/backup-migrate/bam-backup or:] |
70 | | {{{ |
71 | | #!sh |
72 | | |
73 | | drush bam |
74 | | }}} |
75 | | |
76 | | ### Manually, from command line (error prone version) ### |
77 | | {{{ |
78 | | #!sh |
79 | | |
80 | | sudo tar -cvJ -C '/hum/web/www.clarin.eu/htdocs' -f ‘bckup_clarin_28oct15’ . |
81 | | }}} |
82 | | |
83 | | ## Which updates are available? ## |
| 31 | ## Enable Bootstrap module ## |
91 | | Check if a module is listed under `../sites/all/patches`. Patches are often integrated in higher non-patch versions of modules. See: [https://www.drupal.org/patch] (manually apply patch: [https://www.drupal.org/node/534548]). |
92 | | ---- |
| 43 | 1. [https://dev-www-3.clarin.eu/admin/appearance ‘Sub Seven’ admin theme -> ‘Default theme’]. |
| 44 | 2. [https://dev-www-3.clarin.eu/admin/appearance Set Bootstrap theme as default]. |
| 45 | 3. [https://dev-www-3.clarin.eu/admin/appearance Disable ‘Clarin.eu Theme’]. |
| 46 | 5. [https://dev-www-3.clarin.eu/admin/structure/menu/settings ‘Source for the Secondary links’: User menu -> Secondary menu]. |
| 47 | 6. [https://dev-www-3.clarin.eu/admin/structure/block/manage/system/main-menu/configure?destination=admin/structure/menu/settings Disable block ‘Main menu’ by setting it to `- None -` in the dropdown in ‘Region settings’]. |
| 48 | 7. [https://dev-www-3.clarin.eu/admin/config/system/site-information -> Set ‘Default front page’ to 'frontpage']. |
| 49 | |
| 50 | ## Disable legacy/redundant extensions ## |
97 | | # Or: '/hum/web/tst.clarin.eu/htdocs/' |
98 | | cd '/hum/web/www.clarin.eu/htdocs/sites/clarin.eu/' |
99 | | drush status |
100 | | # List patches |
101 | | drush ups --security-only |
102 | | # Apply patches |
103 | | drush upc --security-only |
| 55 | ## Must be updated to dev version first, since otherwise it won't uninstall due to bugs. |
| 56 | drush.phar pm-enable 'empty_page-7.x-1.x-dev' |
| 57 | ## IMPORTANT: Quit endless loop here! |
| 58 | |
| 59 | ## Alpha. |
| 60 | drush.phar pm-disable 'uuid_features' |
| 61 | |
| 62 | ## ‘Minimally maintained’. |
| 63 | drush.phar pm-disable 'smart_trim' |
| 64 | |
| 65 | ## 7.x-3.0-rc5. |
| 66 | drush.phar pm-disable 'admin_menu' 'admin_menu_toolbar' |
| 67 | |
| 68 | ## Apparently not in use. |
| 69 | drush.phar pm-disable 'entityreference_prepopulate' 'fences' |
| 70 | |
| 71 | ## Seems unused, only used for twitter_pull_bean? |
| 72 | drush.phar pm-disable 'bean_admin_ui' 'bean' 'bean_entitycache' 'bean_uuid' |
| 73 | |
| 74 | ## Functionality seems unrequired. |
| 75 | drush.phar pm-disable 'imagecache_actions' 'imagecache_canvasactions' 'empty_page' 'timeago' |
| 76 | |
| 77 | ## Superfluous functionality and/or security risk. |
| 78 | drush.phar pm-disable 'backup_migrate' 'environment_indicator' 'admin_devel' |
| 79 | |
| 80 | ## The following modules could be directly traced to Jurriaan. They have cyclic dependencies and define a number of features and views. |
| 81 | drush.phar pm-disable 'menu_block' 'bean_twitter_pull' 'twitter_pull' 'openscience_blog' 'openscience_events' 'openscience_groups' \ |
| 82 | 'context' 'context_ui' 'context_menu_block' 'context_og' 'clarin_eric_config' 'clarineric' 'clarin_eric_config' \ |
| 83 | 'openscience_news' 'openscience_showcases' 'lrt_showcases' 'openscience_ui' 'openscience' 'openscience_governance' \ |
| 84 | |
| 85 | |
| 86 | ## Mmake sure that the remaining extensions are up-to-date. |
| 87 | drush.phar pm-update --no-backup |
146 | | * Check website, and disable maintenance mode. |
147 | | * Possibly, Drupal Features must be reset: |
| 118 | 1. [https://dev-www-3.clarin.eu/admin/config/system/smtp -> Disable Drupal queue] |
| 119 | |
| 120 | ### Content restructuring ### |
| 121 | |
| 122 | The office restructures content so that excess hierarchy is flattened. |
| 123 | TODO: ... |
| 124 | |
| 125 | ### Acceptance tests ### |
| 126 | |
| 127 | 1. Adding a basic page. |
| 128 | 2. Uploading multiple files in one go. |
| 129 | 3. Writing a blog post. |
| 130 | 4. Filling out the Centre Registry form. |
| 131 | 5. TODO: ... |
| 132 | |
| 133 | #### Criteria #### |
| 134 | |
| 135 | Does the rich text editing work as expected? |
| 136 | |
| 137 | ### Migration ### |
| 138 | |
| 139 | ### Thorough cleanup ### |
| 140 | |
151 | | drush features-list |
152 | | # Reset Drupal Features: |
153 | | drush fr -y openscience_demo_content openscience_events --force |
| 144 | ## Jurriaan's modules all have cyclic dependencies, so cannot be uninstalled. |
| 145 | ## IMPORTANT: The following command |
| 146 | drush.phar pm-uninstall $(drush.phar pm-list --status='disabled' --format=list --no-core) |
| 147 | ## May cause Drush defects reported as: |
| 148 | ## Error: require_once(): Failed opening required '/var/www/localhost/htdocs/sites/all/modules/contrib/menu_block/plugins/content_types/menu_tree/menu_tree.inc' |
| 149 | ## (include_path='.:/usr/share/pear') in /var/www/localhost/htdocs/sites/all/modules/contrib/ctools/includes/plugins.inc, line 477 |
| 150 | |
| 151 | ## Uninstalling extensions using Drush does not result in actual removal. |
| 152 | ## To forcefully remove ‘disabled, uninstalled’ modules/themes. |
| 153 | drush.phar pm-list --status='disabled,not installed' --no-core --pipe | \ |
| 154 | xargs -n 1 -I '{}' drush.phar drupal-directory --local-only --component='path' '{}' | \ |
| 155 | xargs -n 1 -I '{}' rm -frv -- '{}' |
| 156 | |
| 157 | ## Clean up informal dependencies, e.g. in 'sites/all/libraries/' |
| 158 | # rm -r 'sites/all/libraries/timeago/' |
| 159 | |
| 160 | drush.phar cache-clear all |
| 161 | |
| 162 | ## Remove security sensitive and redundant files from Drupal installation. |
| 163 | rm 'install.php' 'CHANGELOG.txt' 'INSTALL.txt' 'INSTALL.mysql.txt' \ |
| 164 | 'INSTALL.pgsql.txt' 'LICENSE.txt' 'MAINTAINERS.txt' 'UPGRADE.txt' \ |
| 165 | 'COPYRIGHT.txt' 'README.txt' 'INSTALL.sqlite.txt' |
| 166 | |
| 167 | ## TODO: Remove residual Drupal Features. Cannot be done with Drush or the Drupal web interface alone. |
| 168 | ... |