Giter Site home page Giter Site logo

islandora-devops / islandora-starter-site Goto Github PK

View Code? Open in Web Editor NEW
4.0 8.0 16.0 1.54 MB

A Drupal site demonstrating Islandora features. Use it as a starting point for customization.

Home Page: https://sandbox.islandora.ca

License: GNU General Public License v2.0

PHP 100.00%
islandora

islandora-starter-site's People

Contributors

adam-vessey avatar ajstanley avatar alxp avatar aoelschlager avatar bibliophileaxe avatar donrichards avatar joecorall avatar joshdentremont avatar kstapelfeldt avatar kylehuynh205 avatar natkeeran avatar nigelgbanks avatar rosiel avatar seth-shaw-asu avatar willtp87 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

islandora-starter-site's Issues

Rebuild Starter Site as a Recipe

Recipes are the core, recommended way to install configuration and modules. They are composable. We should rebuild the starter site as a composition of recipes.

starter site development process

In the "General starter site development process" section, the fifth step is to copy the config/sync folder into the PR. However, if the starter site was deployed to a site url other than 127.0.0.1, then that can impact several config settings such as the one below

--- a/config/sync/search_api.server.default_solr_server.yml
+++ b/config/sync/search_api.server.default_solr_server.yml
@@ -42,7 +42,7 @@ backend_config:
   connector: standard
   connector_config:
     scheme: http
-    host: 127.0.0.1
+    host: 143.110.222.18
     port: 8983
     core: ISLANDORA
     timeout: 5
	modified:   config/sync/core.extension.yml
	modified:   config/sync/islandora.settings.yml
	modified:   config/sync/islandora_iiif.settings.yml
	modified:   config/sync/media.settings.yml
	modified:   config/sync/openseadragon.settings.yml
	modified:   config/sync/search_api.server.default_solr_server.yml

How can we handle this issue? Should we pick the relevant config and check them into the config/sync folder?

[BUG] Exported configs differ on Playbook and ISLE.

Overview

Playbook and ISLE provide external services that Drupal uses, and their locations (from Drupal's perspective) are configured in configuration entities that are part of the starter site. Example:

ISLE: broker is at tcp://activemq:61613
Playbook: broker is at tcp://127.0.0.1:61613

The Starter Site happens to contain values that match the Playbook, and ISLE includes a code that configures Drupal to point to the services at the ISLE locations. This is not a problem.

However when someone on ISLE wishes to make a PR against the Starter Site. When they do a config:export and git diff, the changes include these changed values. This makes it very hard to encourage people to do pull requests.

I have a document outlining what I think are the available options for this. To summarize it, I think we should duly consider:

  • making ISLE values the standard instead of Playbook
  • letting these values vary commit-to-commit (expect whoever is deploying it to set it up as they want)
  • using Drupal's Config Override (suggested by @adam-vessey ) (in the document i highlight how this negatively affects the site admin experience)
  • using Drupal's Config Split (mentioned by @bibliophileaxe ) (in the document i highlight how this removes entire YAML files from the starter site's management)
  • creating a custom script (Drush or otherwise) to reset the specific set of custom values in a set of exported config

[BUG] Error from missing taxonomy term for fits derivative

I get the following error when attempting to add a PDF original file media entity to a Digital Document object.

Error message
Error generating event: Could not locate taxonomy term with uri: https://projects.iq.harvard.edu/fits

Seems to stem from the derivative action making a reference to a taxonomy term that does not exist. See the config references here.

Seems like this entry should be added to the migration tags, here? Though it looks like the intention is to handle it in the module from this pull request. The read me seem to reflect this. So perhaps the read me & composer files need updating?

[BUG] On media creation two stomp messages are sent for fits generation causing the second to fail weirdly

N.B Might not be a problem with configuration, might be a bug in Islandora or islandora_fits, but if so I'd imagine someone would have noticed it?

What steps does it take to reproduce the issue?

  • Installed the site (all the bells and whistles, fedora etc)
  • Log in
  • Created an Image Repository Item
  • Clicked on the Media tab
  • Create a new "Original File" / "Preservation Master File" media entity
  • Derivatives created successfully (except fits)

A Fits media entity was created, but it was missing all its data and no xml file was written to disk. I looked at the ActiveMQ queue, and it had 2 dequeued events for islandora-connector-fits where I would expect one.

Funnily enough, if one manually triggers the "FITS - Generate a Technical metadata derivative" via admin/content it works perfectly.

  • When does this issue occur?

When creating new media entities.

  • What did you expect to happen?

For the Fits to be generated and accessible.

Which version of Islandora are you using?

2.4.3 (I was using 8a32258 of this repository)

Screenshots:

Missing Information:

Screenshot 2022-11-07 at 21 19 06

Expected:

Screenshot 2022-11-07 at 21 20 42

Pathauto

Pathauto gives us nicer-looking URLs. Was this pulled for a reason, or should we put it back in?

Display MODS Record and Display DC Record not available to anonymous

When I access the Display MODS Record or Display DC Record links displayed on a record, an error message appears.

<?xml version="1.0"?> <OAI-PMH><message>The 'restful get oai_pmh' permission is required.</message></OAI-PMH>
I'm making an assumption that anonymous users should be able to access/view this content if it is published. To fix this, the permission Access GET on OAI-PMH resource should be checked for the anonymous role.

Use case: Islandora view to show objects that are missing derivatives

Overview of Use Case
Following the ingest of a collection, there isn't a way to determine via the Islandora/Drupal interface (that I'm aware of) whether all expected derivatives have been generated for the objects in that collection.

Title (Goal):
Islandora view to show objects that are missing derivatives

Primary Actor:
Collections Manager

Story:
As a repository manager I want to check whether derivatives have generated for a new ingest to my repository. Especially if the ingest is large and the derivatives don't appear in a standard collection view (it can be easy to tell if thumbnails haven't generated), it isn't feasible for me to check the media page for every object in the collection to determine if OCR, service files, or FITS files, for example, are present where they should be; for paged content, thumbnails are also not necessarily easy to check from a standard collection view. If I want to use the Islandora/Drupal interface rather than a script, I need a view that will allow me to see which objects do not have the necessary/expected derivatives. Ideally I would be able to apply this view for a specific collection, and/or for a specific kind of derivative -- my photograph collection probably won't need OCR, but my newspaper collection will; both will need thumbnails.
This would also be helpful for migration QC.

[FEATURE] Add `.xml` file extension to allowed "File" media

Overview of feature request

The FITS module did a weird thing and added xml to the allowed extensions for the field_media_file field on the file media type. This is weird because FITS uses its own, FITS-specific media type.

With https://github.com/roblib/islandora_fits/pull/15/files we no longer add that extension.

The starter site's config for this field does not include xml.

So I propose we add it. The use cases include adding MODS files, and other dataset-like objects.

[BUG] White screen on Mirador Paged Content context config page

Steps to reproduce:

  1. Download and nable Islandora Mirador
  2. Go to http://localhost:8000/admin/structure/context/paged_content_mirador

Error message

[Thu Jan 19 07:56:24.999203 2023] [php7:notice] [pid 32160] [client 10.0.2.2:56368] TypeError: Argument 1 passed to Drupal\\Core\\Entity\\EntityRepository::getTranslationFromContext() must implement interface Drupal\\Core\\Entity\\EntityInterface, null given, called in /var/www/html/drupal/web/core/lib/Drupal/Core/Entity/Element/EntityAutocomplete.php on line 373 in /var/www/html/drupal/web/core/lib/Drupal/Core/Entity/EntityRepository.php on line 93 #0 /var/www/html/drupal/web/core/lib/Drupal/Core/Entity/Element/EntityAutocomplete.php(373): Drupal\\Core\\Entity\\EntityRepository->getTranslationFromContext(NULL)\n#1 /var/www/html/drupal/web/core/lib/Drupal/Core/Entity/Element/EntityAutocomplete.php(119): Drupal\\Core\\Entity\\Element\\EntityAutocomplete::getEntityLabels(Array)\n#2 [internal function]: Drupal\\Core\\Entity\\Element\\EntityAutocomplete::valueCallback(Array, false, Object(Drupal\\Core\\Form\\FormState))\n#3 /var/www/html/drupal/web/core/lib/Drupal/Core/Form/FormBuilder.php(1285): call_user_func_array(Array, Array)\n#4 /var/www/html/drupal/web/core/lib/Drupal/Core/Form/FormBuilder.php(1003): Drupal\\Core\\Form\\FormBuilder->handleInputElement('context_edit_fo...', Array, Object(Drupal\\Core\\Form\\FormState))\n#5 /var/www/html/drupal/web/core/lib/Drupal/Core/Form/FormBuilder.php(1073): Drupal\\Core\\Form\\FormBuilder->doBuildForm('context_edit_fo...', Array, Object(Drupal\\Core\\Form\\FormState))\n#6 /var/www/html/drupal/web/core/lib/Drupal/Core/Form/FormBuilder.php(1073): Drupal\\Core\\Form\\FormBuilder->doBuildForm('context_edit_fo...', Array, Object(Drupal\\Core\\Form\\FormState))\n#7 /var/www/html/drupal/web/core/lib/Drupal/Core/Form/FormBuilder.php(1073): Drupal\\Core\\Form\\FormBuilder->doBuildForm('context_edit_fo...', Array, Object(Drupal\\Core\\Form\\FormState))\n#8 /var/www/html/drupal/web/core/lib/Drupal/Core/Form/FormBuilder.php(1073): Drupal\\Core\\Form\\FormBuilder->doBuildForm('context_edit_fo...', Array, Object(Drupal\\Core\\Form\\FormState))\n#9 /var/www/html/drupal/web/core/lib/Drupal/Core/Form/FormBuilder.php(577): Drupal\\Core\\Form\\FormBuilder->doBuildForm('context_edit_fo...', Array, Object(Drupal\\Core\\Form\\FormState))\n#10 /var/www/html/drupal/web/core/lib/Drupal/Core/Form/FormBuilder.php(323): Drupal\\Core\\Form\\FormBuilder->processForm('context_edit_fo...', Array, Object(Drupal\\Core\\Form\\FormState))\n#11 /var/www/html/drupal/web/core/lib/Drupal/Core/Controller/FormController.php(73): Drupal\\Core\\Form\\FormBuilder->buildForm(Object(Drupal\\context_ui\\Form\\ContextEditForm), Object(Drupal\\Core\\Form\\FormState))\n#12 [internal function]: Drupal\\Core\\Controller\\FormController->getContentResult(Object(Symfony\\Component\\HttpFoundation\\Request), Object(Drupal\\Core\\Routing\\RouteMatch))\n#13 /var/www/html/drupal/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array)\n#14 /var/www/html/drupal/web/core/lib/Drupal/Core/Render/Renderer.php(580): Drupal\\Core\\EventSubscriber\\EarlyRenderingControllerWrapperSubscriber->Drupal\\Core\\EventSubscriber\\{closure}()\n#15 /var/www/html/drupal/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\\Core\\Render\\Renderer->executeInRenderContext(Object(Drupal\\Core\\Render\\RenderContext), Object(Closure))\n#16 /var/www/html/drupal/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\\Core\\EventSubscriber\\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array)\n#17 /var/www/html/drupal/vendor/symfony/http-kernel/HttpKernel.php(169): Drupal\\Core\\EventSubscriber\\EarlyRenderingControllerWrapperSubscriber->Drupal\\Core\\EventSubscriber\\{closure}()\n#18 /var/www/html/drupal/vendor/symfony/http-kernel/HttpKernel.php(81): Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw(Object(Symfony\\Component\\HttpFoundation\\Request), 1)\n#19 /var/www/html/drupal/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Symfony\\Component\\HttpKernel\\HttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#20 /var/www/html/drupal/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\\Core\\StackMiddleware\\Session->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#21 /var/www/html/drupal/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\\Core\\StackMiddleware\\KernelPreHandle->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#22 /var/www/html/drupal/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\\page_cache\\StackMiddleware\\PageCache->pass(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#23 /var/www/html/drupal/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\\page_cache\\StackMiddleware\\PageCache->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#24 /var/www/html/drupal/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\\Core\\StackMiddleware\\ReverseProxyMiddleware->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#25 /var/www/html/drupal/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\\Core\\StackMiddleware\\NegotiationMiddleware->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#26 /var/www/html/drupal/web/core/lib/Drupal/Core/DrupalKernel.php(713): Stack\\StackedHttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#27 /var/www/html/drupal/web/index.php(19): Drupal\\Core\\DrupalKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request))\n#28 {main}, referer: http://localhost:8000/admin/structure/context
root@islandora8:/var/www/html/drupal/web/sites/default#  

Unsure yet if this is only on Playbook and if it's specifically related to the Mirador context.

[FEATURE] Search view for site and search views for collections.

Overview of feature request

Something akin to what's currently provided by sandbox.

Site-wide Search

Screenshot 2022-11-09 at 16 56 50

Collection Search

Screenshot 2022-11-09 at 16 57 11

Ideally with a grid and list display.

The islandora_advanced_search is currently not enabled, and if enabled it might suffice along with configuration of Solr fields and facets and views.

What kind of user is the feature intended for?

General users.

What inspired the request?

I'm testing changes to isle-buildkit and I wanted to test the new version of solr was working appropriately.

What existing behavior do you want changed?

N/A

Any brand new behavior do you want to add to Islandora?

N/A (Should all be configuration changes).

Any related open or closed issues to this feature request?

N/A

Implement "advanced search"

The "Advanced Search" module contains the following features:

  • field-specific search
  • nicer view display controls (e.g. grid/list, results per page, sort)

The version extracted and improved by UTSC also includes:

  • dismax search (over the entire set of indexed fields) and the ability to use dismax search with specific fields
  • A global-friendly "Search" block
  • Fixes for ajax errors

Implement these so we can show off field-specific ("advanced") searching.

Add `relators:cre` as an author in Citation Select Mapping?

Objects in our local collections use relators:cre (creator) rather than relators:aut (author). With the default CSL mapping, the creators do not show up as authors in the citations. However, we would like them to.

If there is evidence of other sites in the same situation, I propose we add relators:cre to the CSL mapping section so that they map to author. This would cause the "creators" to show up as "authors" in the citations.

It will also serve as a good demonstration that you can add multiple relators terms to the same "author" mapping, in case (for example) your site includes photographs and you want your citations to use photographer as "author".

Screenshot of CSL config form showing relators:cre mapped to author.

Create a view for managing taxonomy terms

From @kayakr in Islandora/documentation#1899

Create a place for managing taxonomy terms (as a metadata manager who may need to do bulk operations etc)

Some requirements I've gathered/am interested in:

  • list all terms; sounds trivial, but becomes a risk when using search-based listings from Search API DB, Search API Solr, etc. Implies immediate indexing of changes (add, change, delete, etc.)
  • can handle large taxonomies, multiple x 10,000s of terms
  • Result summary: Displaying {start} - {end} of {total}
  • Filter by term label (e.g. name), especially with fuzzy matching, stemming (implies search basis)
  • can handle macrons and other special characters (e.g. Solr ASCII-folding)
  • Show additional fields in management UI
    • Published/unpublished status
    • term id
    • field_authority_link
    • local URI?
    • count of related content items
  • Bulk operations
    • index to fcrepo and index to blazegraph by default (tbc)
    • Select 1..N terms and move to different vocabulary (e.g. term added as Person, move to Corporate Body)
    • Select 1..N merge to 1 of N, where 1 is existing preferred term
    • Publish/Unpublish
    • Delete
  • Export
    • as CSV
    • as JSON
    • as SKOS?
  • Import
    • as CSV
    • as JSON
    • as SKOS
  • publish/subscribe - 1 instance can be primary, other instances can subscribe to changes
  • round-trip to/from OpenRefine
  • clustering per OpenRefine algorithms
  • trim (alert on trailing or leading (white)space)

Originally posted by @kayakr in Islandora/documentation#1899 (comment)

Video support for more file formats

Overview of feature request

Right now the Video media type only allows .mp4. Is it possible to allow other formats?

What kind of user is the feature intended for?
End users doing video storage/preservation

What inspired the request?
Documenting Video Derivatives Islandora/documentation#929 (which work great! But are only mp4-to-mp4.)

What existing behavior do you want changed?
Change the restriction on Video media type's file field to allow such types as:

  • .avi
  • .mov /.qt (Quicktime)
  • .mpg/.mpg2/.mpeg2 (uncompressed digititized video)
  • Other formats as suggested in "Video preservation" recommendations(?)

Any brand new behavior do you want to add to Islandora?

Along with being allowed to upload them, I'd like to be able to do derivatives. At the moment, conversion to .mp4 and extracting thumbnails/poster images would be great. There may be other preservation transformations that are eventually recommended.

What constraints does FFMPEG place on us in doing this? Are there extra codecs that need to be enabled? Are they protected by incompatible licenses therefore we can't ship with them enabled and could include documentation on doing this yourself? etc.

Any related open or closed issues to this feature request?

[BUG] Fedora URI does not appear on repository items where N/A is selected for Display Hint

What steps does it take to reproduce the issue?

  • Start up a site based on islandora-starter-pack
  • Create a new repository item (I created a Video Item)
  • Select N/A for the Display Hint Field
  • Note that the Fedora URI does not display
  • Edit the same object and change N/A to Open Seadragon
  • The Fedora URI now displays

  • When does this issue occur?

When creating/editing a repository item.

  • Which page does it occur on?

The view page for the repository item.

  • What happens?

The Fedora URI does not appear when expected.

  • To whom does it occur (anonymous visitor, editor, administrator)?

All users regardless of role.

  • What did you expect to happen?

The Fedora URI to appear for all objects.

Which version of Islandora are you using?

2.4.3 (I was using 8a32258 of this repository)

Any related open or closed issues to this bug report?

N/A

Screenshots:

Settings in question:

Screenshot 2022-11-08 at 11 53 23

When N/A is selected:

Screenshot 2022-11-08 at 12 00 22

When OpenSeadragon is selected:

Screenshot 2022-11-08 at 11 59 04

Feature Request: Include Taxonomy Manager in "out of the box"

See Use Case Islandora/documentation#1899

The Drupal contrib module, https://www.drupal.org/project/taxonomy_manager, provides a number of features that would offer DAMS-like metadata editing capabilities, including:

  • bulk add terms
  • bulk delete terms
  • quick editing
  • CSV export

It has the security shield, is used by over 42k sites, and is applicable to Drupal ^8.8 || ^9.

I think this should be part of the "out of the box" experience therefore I request adding it as a requirement of Islandora Defaults.

Replace islandora_defaults with an exported site islandora-starter-site

Overview

Intial work to replace https://github.com/Islandora/islandora_defaults with an exported site in a project housed in this repository https://github.com/Islandora/islandora-starter-site/.

The intent is to simplify expectations and maintenance. This is to help facilitate the communities end goal to modularize Islandora into largely independent Drupal modules that let Drupal sites pick and choose their repository features.

The structure of the example site could look like:

https://github.com/Islandora/islandora-starter-site/

-composer.json / composer.lock
-config/sync
-content/sync

Acceptance Criteria
-We have an islandora_defaults replacement exported starter site.
-Current enabled islandora_default functionality as installed with the Islandora Playbook in Olivero is present.
-README should contain instructions on how to manually utilize the starter-site outside of ISLE/playbook. README should specify awareness for existing sites.

Out of Scope
Removing islandora_defaults from existing sites

Reference
https://docs.google.com/document/d/1fx8PvSpft8c3OPMLrN5SjaqOhcHOuRr_xjgqnBe8gg4/edit#heading=h.w3w654y9wz7s

Contacts
On Islandora slack
Rosie Le Faive (Product owner)
Luke Taylor (Project Manager)

Content views give inaccurate results to "regular users"

Regular users, i.e. non-admin users, may see fewer results in the Content view than there are nodes available. This is likely due to the joins on the node table in the relationships with parents, children, and potentially also media. @aOelschlager found this drupal issue, "node_access filters out accessible nodes when node is left joined", which seems to identify the cause.

In preparation for having a "islandora editor" type role (a "regular user" role), I think it would be prudent to remove the children and parents relationships from the Content table so that it can be relied upon more readily.

p.s. this stinks

Composer.lock is failing to install on isle-dc

Composer.lock looks like it's out of date and needs to be updated for the islandora-starter-site and it's causing isle-dc's make starter_dev command to fail.

docker compose exec -T drupal with-contenv bash -lc 'composer install'
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Your lock file does not contain a compatible set of packages. Please run composer update.

  Problem 1
    - chi-teck/drupal-code-generator is locked to version 3.1.0 and an update of this package was not requested.
    - chi-teck/drupal-code-generator 3.1.0 requires php >=8.1.0 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 2
    - consolidation/log is locked to version 3.0.0 and an update of this package was not requested.
    - consolidation/log 3.0.0 requires php >=8.0.0 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 3
    - consolidation/robo is locked to version 4.0.6 and an update of this package was not requested.
    - consolidation/robo 4.0.6 requires php >=8.0 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 4
    - consolidation/site-process is locked to version 5.2.0 and an update of this package was not requested.
    - consolidation/site-process 5.2.0 requires php >=8.0.14 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 5
    - drupal/core is locked to version 10.1.2 and an update of this package was not requested.
    - drupal/core 10.1.2 requires composer-runtime-api ^2.1 -> found composer-runtime-api[2.0.0] but it does not match the constraint.
  Problem 6
    - drupal/flysystem is locked to version 2.1.0-rc5 and an update of this package was not requested.
    - drupal/flysystem 2.1.0-rc5 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 7
    - drush/drush is locked to version 12.1.2 and an update of this package was not requested.
    - drush/drush 12.1.2 requires composer-runtime-api ^2.2 -> found composer-runtime-api[2.0.0] but it does not match the constraint.
  Problem 8
    - egulias/email-validator is locked to version 4.0.1 and an update of this package was not requested.
    - egulias/email-validator 4.0.1 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 9
    - grasmash/expander is locked to version 3.0.0 and an update of this package was not requested.
    - grasmash/expander 3.0.0 requires php >=8.0 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 10
    - grasmash/yaml-cli is locked to version 3.1.0 and an update of this package was not requested.
    - grasmash/yaml-cli 3.1.0 requires php >=8.0 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 11
    - laminas/laminas-stdlib is locked to version 3.17.0 and an update of this package was not requested.
    - laminas/laminas-stdlib 3.17.0 requires php ~8.1.0 || ~8.2.0 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 12
    - league/csv is locked to version 9.9.0 and an update of this package was not requested.
    - league/csv 9.9.0 requires php ^8.1.2 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 13
    - maennchen/zipstream-php is locked to version 3.1.0 and an update of this package was not requested.
    - maennchen/zipstream-php 3.1.0 requires php-64bit ^8.1 -> your php-64bit version (7.4.33) does not satisfy that requirement.
  Problem 14
    - phootwork/collection is locked to version v3.2.2 and an update of this package was not requested.
    - phootwork/collection v3.2.2 requires php >=8.0 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 15
    - phootwork/lang is locked to version v3.2.2 and an update of this package was not requested.
    - phootwork/lang v3.2.2 requires php >=8.0 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 16
    - phpowermove/docblock is locked to version v4.0 and an update of this package was not requested.
    - phpowermove/docblock v4.0 requires php >=8.0 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 17
    - psr/cache is locked to version 3.0.0 and an update of this package was not requested.
    - psr/cache 3.0.0 requires php >=8.0.0 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 18
    - psr/log is locked to version 3.0.0 and an update of this package was not requested.
    - psr/log 3.0.0 requires php >=8.0.0 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 19
    - symfony/console is locked to version v6.3.2 and an update of this package was not requested.
    - symfony/console v6.3.2 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 20
    - symfony/dependency-injection is locked to version v6.3.2 and an update of this package was not requested.
    - symfony/dependency-injection v6.3.2 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 21
    - symfony/deprecation-contracts is locked to version v3.3.0 and an update of this package was not requested.
    - symfony/deprecation-contracts v3.3.0 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 22
    - symfony/error-handler is locked to version v6.3.2 and an update of this package was not requested.
    - symfony/error-handler v6.3.2 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 23
    - symfony/event-dispatcher is locked to version v6.3.2 and an update of this package was not requested.
    - symfony/event-dispatcher v6.3.2 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 24
    - symfony/event-dispatcher-contracts is locked to version v3.3.0 and an update of this package was not requested.
    - symfony/event-dispatcher-contracts v3.3.0 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 25
    - symfony/filesystem is locked to version v6.3.1 and an update of this package was not requested.
    - symfony/filesystem v6.3.1 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 26
    - symfony/finder is locked to version v6.3.3 and an update of this package was not requested.
    - symfony/finder v6.3.3 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 27
    - symfony/http-foundation is locked to version v6.3.2 and an update of this package was not requested.
    - symfony/http-foundation v6.3.2 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 28
    - symfony/http-kernel is locked to version v6.3.3 and an update of this package was not requested.
    - symfony/http-kernel v6.3.3 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 29
    - symfony/mime is locked to version v6.3.3 and an update of this package was not requested.
    - symfony/mime v6.3.3 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 30
    - symfony/process is locked to version v6.3.2 and an update of this package was not requested.
    - symfony/process v6.3.2 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 31
    - symfony/routing is locked to version v6.3.3 and an update of this package was not requested.
    - symfony/routing v6.3.3 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 32
    - symfony/serializer is locked to version v6.3.3 and an update of this package was not requested.
    - symfony/serializer v6.3.3 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 33
    - symfony/service-contracts is locked to version v3.3.0 and an update of this package was not requested.
    - symfony/service-contracts v3.3.0 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 34
    - symfony/string is locked to version v6.3.2 and an update of this package was not requested.
    - symfony/string v6.3.2 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 35
    - symfony/translation is locked to version v6.3.3 and an update of this package was not requested.
    - symfony/translation v6.3.3 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 36
    - symfony/translation-contracts is locked to version v3.3.0 and an update of this package was not requested.
    - symfony/translation-contracts v3.3.0 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 37
    - symfony/validator is locked to version v6.3.2 and an update of this package was not requested.
    - symfony/validator v6.3.2 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 38
    - symfony/var-dumper is locked to version v6.3.3 and an update of this package was not requested.
    - symfony/var-dumper v6.3.3 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 39
    - symfony/var-exporter is locked to version v6.3.2 and an update of this package was not requested.
    - symfony/var-exporter v6.3.2 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 40
    - symfony/yaml is locked to version v6.3.3 and an update of this package was not requested.
    - symfony/yaml v6.3.3 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 41
    - doctrine/event-manager is locked to version 2.0.0 and an update of this package was not requested.
    - doctrine/event-manager 2.0.0 requires php ^8.1 -> your php version (7.4.33) does not satisfy that requirement.
  Problem 42
    - symfony/http-foundation v6.3.2 requires php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
    - drupal/core-recommended 10.1.2 requires symfony/http-foundation ~v6.3.0 -> satisfiable by symfony/http-foundation[v6.3.2].
    - drupal/core-recommended is locked to version 10.1.2 and an update of this package was not requested.

make: *** [starter_dev] Error 2

Related to Islandora-Devops/isle-dc#354

[TECH DEBT] Some configs are `enforced` to depend on "Islandora Core Feature"

Overview of feature request

Follow-up to Islandora/documentation#1478

Context:

  • Config files can have an enforced: section, and uninstalling the module(s?) listed under enforced will cause that config to be removed.
  • This is for manually entered module dependencies. Drupal automatically calculates the dependencies: section of the config.
  • Islandora Defaults had lots of enforced dependencies that pointed to Islandora Core Feature. See ticket Islandora/documentation#1478. Now the Starter Site contains all those configs from Defaults, including the enforced settings.

The goal of the starter site is to provide starting point configs, where the user is free to add or remove whatever parts of Islandora they please. At the moment, the Islandora Core Feature is extremely greedy and removing it will remove all your media types, among other things. That's not very clean.

Are there any benefits in having enforced dependencies anymore? Personally I'd be happy to remove them.

The 0.8.0 release tag fails to install

The error:

  • Installing islandora/advanced_search (2.0.0-beta3): Cloning 2.0.0-beta3
    2.0.0-beta3 is gone (history was rewritten?)

The url here needs to be changed to https://github.com/islandora/advanced_search and the lock file would need to be updated.

Those changes do fix the error but since it's a tagged release can a pr be done? Would an alternative be making a branch to pull from instead?

Create a separate Publisher field.

From the Metadata Interest Group:

Publisher information is usually considered different from other contributor fields, so it does not make a great deal of sense to lump publishers in with the creators and contributors of an object. For one thing, it makes it very hard to do a fielded search on publisher (or search for authors without including publishers.

Furthermore, per metadata guidelines such as RDA and AACR2, the names of publishers are entered directly, based on what's on the item (i.e. not controlled), and sometimes abbreviated. This diversity of names makes it a bad candidate for using a taxonomy term for publisher.

We therefore propose pulling Publisher out into its own field (text field).

duplicate object key "scripts" in the composer file

https://github.com/Islandora-Devops/islandora-starter-site/blob/main/composer.json#L135
https://github.com/Islandora-Devops/islandora-starter-site/blob/main/composer.json#L144

It seems like a recent PR merge may have introduced a duplicate scripts key. Thus, composer ignores the tasks in the first scripts key, which places the twig template.

Combining it as below fixes the issue.

    "scripts": {
      "post-root-package-install": [
        "Islandora\\StarterSite::rootPackageInstall"
      ],
      "post-install-cmd": ["cp -f assets/templates/mods.html.twig web/modules/contrib/rest_oai_pmh/templates/mods.html.twig"],
      "post-update-cmd": ["cp -f assets/templates/mods.html.twig web/modules/contrib/rest_oai_pmh/templates/mods.html.twig"]
    },

Data Export views need to be Batch-ified

There are some views (Content, Media, Missing Media...) where it's useful to have your view table exported as a CSV.

In all of these, we should configure Data Export to use Batch, so that repository-like volumes of content can be accommodated.

[USE CASE] Islandora Reports Of Objects

Overview of Use Case
This is a use case where I describe some ways Islandora could provide reports on "islandora objects", I know we don't have "objects" any more but I am referring to the philosophical entity that for secret reasons must remain nameless, that comprises a Drupal Node containing Islandora Metadata in fields and zero or more Drupal Media entities containing zero or more Drupal File entities or external file references that together form something a repository manager or archivist conceptualizes as one item in their repository. The maintenance of this concept for the purpose of this use case is crucial, because it is represents the "entity" in the way it's ingested/maintained/viewed/preserved by the administrative user who is this use case's main Actor.

Title (Goal):
To make Islandora "feel like a repository" and provide affordances that one would expect of a repository, in terms of how a manager interfaces with "the collection of objects in the repo" as a whole

Primary Actor:

  • person running a migration (may be repository manager, content editor, or sysadmin depending on your local)
  • person tasked with high-level management of the repository (librarian, manager, content owner)
  • auditor

Scope
Technically this will cover a few new or modified drupal administrative views.

Story:
As a repository manager, I should be able to see and navigate a list of all the islandora objects currently in my repository so that i can:

  • create an inventory list of objects in my repository
  • compare against inventory lists of objects that may/should be in my repository
  • validate migrations
  • perceive "the repository"

That last point is, more specifically, that not only do the first three functions need to be do-able (e.g. through a downloadable CSV file), but that for an Admin, I want a "place" to go to where I can "see" the contents of the repository. I want to be able to see the number of total "objects" at a glance. I want to be able to see collections and their sizes at a glance. I want to be able to do basic filtering including by collection, type, or model. I want to be able to filter by the presence or absence of a "Media Use" (e.g. presence/absence of Extracted Text or Thumbnail). I want to be able to download the results of my ad-hoc filtering into a CSV and/or other structured formats.

[BUG] Video repository items are not showing the embedded viewer

What steps does it take to reproduce the issue?

  • Start up a site based on islandora-starter-pack
  • Create a new Video repository item
  • Set Resource Type to Moving Image (Not sure if this is required any more, but to be safe)
  • Select N/A for the Display Hint Field
  • Add a Original File / Preservation Master video media entity to the repository item
  • Note that it does not display on the repository item

  • When does this issue occur?

When viewing a repository item.

  • Which page does it occur on?

The view page for the repository item.

  • What happens?

The video viewer does not display.

  • To whom does it occur (anonymous visitor, editor, administrator)?

To all users regardless of role.

  • What did you expect to happen?

The video viewer to display.

Which version of Islandora are you using?

2.4.3 (I was using 8a32258 of this repository)

Any related open or closed issues to this bug report?

N/A

Screenshots:

Repository Item View Page:
Screenshot 2022-11-08 at 12 12 01

Media Items:

Screenshot 2022-11-08 at 12 12 08

I can view the video on the browser by clicking the file link, no viewer display, though.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.