Mocha throws TypeError: XYZ is not a function

I am getting this TypeError on a function that works perfectly fine in the application.
     TypeError: _dompurify2.default.sanitize is not a function
      at createMarkup (.tmp/mocha-webpack/webpack:/app/js/components/presentation/Dribbble.js:7:1)

Component code:
import React from 'react';
import PropTypes from 'prop-types';
import DOMpurify from 'dompurify';

function createMarkup(html) {
  return {__html: DOMpurify.sanitize(html)};
}

function mapTags(tags) {
  return tags.map( (item, index) =>
{ item }
 );
}

const Dribbble = (props) => (
  <div className={ `block-dribbble ${props.className}` }>

    { props.description ?
 : null }

      { mapTags(props.tags) }

    View on Dribbble

);

Dribbble.propTypes = {
  description: PropTypes.string,
  image: PropTypes.string.isRequired,
  className: PropTypes.string,
  tags: PropTypes.array.isRequired,
  url: PropTypes.string.isRequired
};

Dribbble.defaultProps = {
  className: '',
  description: ''
};

export default Dribbble;

Here is the test code:
import expect from 'expect';
import React from 'react';
import { shallow } from 'enzyme';
import enzymify from 'expect-enzyme';
import Dribbble from './Dribbble';

expect.extend(enzymify);

const props = {
  description: '
A dribbble description
',
  image: 'https://cdn.dribbble.com/users/5146/screenshots/3479870/ddc-hardware-specimen-2-2.gif',
  className:'dribbble',
  tags: ['font', 'typeface'],
  url: 'https://dribbble.com/shots/3479870-DDC-Hardware-Features'
};

describe('Dribbble', () => {
  it('renders Dribbble with className .block-dribbble', () =>{
    const wrapper = shallow(<Dribbble { ...props } />);
    expect(wrapper.find('.block-dribbble')).toExist();
  });
});

and my relevant package.json:
    "enzyme": "^2.8.2",
    "expect": "^1.20.2",
    "expect-enzyme": "^0.15.0",
    "dompurify": "^0.8.7",
    "mocha": "^3.2.0",
    "react": "^15.5.4",

This looks like a webpack/babel problem.  dompurify doesn't use sourceType module, but the error indicates this is how it has been transpiled.  What do the npm test script / mocha.opts / webpack.config-test.js and .babelrc look like?

Generalizing on tswaters' suggestion: it may be more helpful (not just to us, but to you), instead of posting the subset of your actual code that you think may be relevant, to instead post full code that's as minimal as possible to reproduce the issue.

Are there any updates on this? Did anyone create a workaround for testing? I have encountered the same exact problem.


Added spacing between icon and label-text

untested change, which closes https://github.com/maxam2017/productive-box/issues/4

LGTM


Bumped uvicorn version in chapter 14

Thanks for working out all the dependencies to fix this @switowski :)


Fixing initial install options

This MR addresses the issues raised in #244 and other places regarding upstream changes breaking the make local_install_profile_demo command.
To test this MR, please check:
make local
make demo
make local_install_profile_demo
For bonus points I guess also make demo_install_profile_demo but I sort of think we should pull that out, I don't really see the use for it, honestly.
The install_profile commands will fail until this is accepted - it's the root cause of most of the issues. Islandora_defaults changed a storage type, and we're just now catching up to it, I guess...
https://github.com/Islandora-Devops/islandora_install_profile_demo/pull/16

Everything except make local worked.
 [notice] Performed install task: install_settings_form
 [notice] Performed install task: install_verify_database_ready
 [notice] Performed install task: install_base_system
 [notice] Performed install task: install_bootstrap_full
 [notice] Performed install task: install_profile_modules
 [notice] Performed install task: install_profile_themes
 [notice] Performed install task: install_install_profile
 [notice] Performed install task: install_configure_form
 [notice] Performed install task: install_finished
 [success] Installation complete.
make[1]: Leaving directory '/home/don/github/isle-dc'

In PmCommands.php line 316:

  Unable to install modules search_api_solr_defaults, islandora_defaults due
  to missing modules islandora_defaults.

make: *** [Makefile:355: local] Error 1

2022/04/07 21:49:46 [error] 1080#1080: *10 FastCGI sent in stderr: "PHP message: Uncaught PHP Exception Drupal\Core\Config\UnmetDependenciesException: "Configuration objects provided by islandora_base_theme have unmet dependencies: block.block.islandora_base_theme_branding (islandora_install_profile_demo_core), block.block.islandora_base_theme_breadcrumbs (islandora_install_profile_demo_core, block_class), block.block.islandora_base_theme_disclaimer (fixed_block_content), field.storage.block_content.field_carapace_cb_copyright (field_permissions)" at /var/www/drupal/web/core/lib/Drupal/Core/Config/UnmetDependenciesException.php line 100" while reading response header from upstream, client: <IP_ADDRESS>, server: drupal, request: "GET /admin/appearance/default?theme=islandora_base_theme&token=Jxm5tr4UYprzMZe97IIJv99SqXFrXugmhWiOBpdMwqQ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm7/php-fpm7.sock:", host: "islandora.traefik.me", referrer: "https://islandora.traefik.me/admin/appearance"

This is so convoluted to update.
I had to make https://github.com/Islandora-Devops/islandora-sandbox/pull/16 to allow this to be pulled in
https://github.com/Islandora-Devops/islandora_install_profile_demo/pull/17
And for every change to iipd, you have to push an update to the lockfile in sandbox to have it picked up.
Once this is approved, these two lines will have to be changed before accepting the 3 PRs together:
https://github.com/Islandora-Devops/islandora-sandbox/blob/isle-dc-pr-248/composer.json#L82 needs to be dev-main
And the custom branch needs to be removed from this line
https://github.com/Islandora-Devops/isle-dc/blob/fixing_initial_install_options/Makefile#L390
As per my previous statement, I pulled make demo_install_profile which appears to have no valid use case.
Testing: make local should do the "install islandora_defaults and good luck" thing, make demo should bring up the pre-baked demo, and make local-install-profile should create a local with the new sandbox experience.
I am getting a 502 bad gateway with Fedora, though, on at least make local-install-profile. Can anyone else replicate this?

@noahwsmith I pulled your latest changes (66bd09f) and just tried running on macOS Big Sur make local-install-profile and Drupal loads, but the homepage says some content is not found (green theme looks OK) and the cert is expired. I also get a "bad gateway" at http://islandora.traefik.me:8081/fcrepo/
Hope this help a bit.

Notes:
make-demo - returns me blue site with the cats. Though it looks like alpaca is choking on invalid certificates, and I am not sure you can change the domain for the demo site to be anything other than islandora.traefik.me. milliner_1 is also returning a bunch of errors, and those seem to be related to the 502 bad gateway with fedora.
Will try and test the others in a bit.

testing make local-install-profile now.

I did see the following when make local-install-profile
 [notice] Performed install task: install_select_language
 [notice] Performed install task: install_select_profile
 [notice] Performed install task: install_load_profile
 [error]  Error importing/updating configuration
 [error]  Error importing/updating configuration
 [notice] Performed install task: install_verify_requirements
 [notice] Performed install task: install_verify_database_ready
 [notice] Performed install task: install_base_system
 [notice] Performed install task: install_bootstrap_full
 [error]  The Flysystem driver is missing.
 [warning] Could not find required jsonld.settings to add default RDF namespaces.
 [warning] The "views_block:members-block_1" was not found
 [error]  Error getting JWT token for message. Check JWT Configuration.
 [error]  Error getting JWT token for message. Check JWT Configuration.
 [notice] Performed install task: install_profile_modules
 [notice] Performed install task: install_profile_themes

Same, I am seeing the 502's on there and the following errors:
activemq
activemq_1    | 2022-04-11 15:55:51,141 | INFO  | No Spring WebApplicationInitializer types detected on classpath | /api | main
activemq_1    |  INFO | jolokia-agent: Using policy access restrictor classpath:/jolokia-access.xml
activemq_1    | 2022-04-11 15:55:51,796 | INFO  | jolokia-agent: Using policy access restrictor classpath:/jolokia-access.xml | /api | main
activemq_1    |  WARN | Transport Connection to: tcp://<IP_ADDRESS>:55932 failed: java.io.EOFException
activemq_1    | 2022-04-11 15:56:35,062 | WARN  | Transport Connection to: tcp://<IP_ADDRESS>:55932 failed: java.io.EOFException | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ Transport: tcp:///<IP_ADDRESS>:55932@61616

alpaca
alpaca_1      | 2022-04-11 16:08:08,818 | ERROR |  #21 - Multicast | DefaultErrorHandler              | 56 - org.apache.camel.camel-core - 2.20.4 | Failed delivery for (MessageId: ID-0c3aa8a29f6e-1649692572272-0-632 on ExchangeId: ID-0c3aa8a29f6e-1649692572272-0-633). Exhausted after delivery attempt: 11 caught: org.apache.camel.http.common.HttpOperationFailedException: HTTP operation failed invoking http://milliner:8000/node/16eb6da8-ad10-45a7-bf9d-367b332675b8 with statusCode: 502. Processed by failure processor: FatalFallbackErrorHandler[Channel[Log(ca.islandora.alpaca.indexing.fcrepo.FcrepoIndexer)[Error indexing resource in fcrepo: ${exception.message}
alpaca_1      |
alpaca_1      | ${exception.stacktrace}]]]
alpaca_1      |
alpaca_1      | Message History
alpaca_1      | ---------------------------------------------------------------------------------------------------------------------------------------
alpaca_1      | RouteId              ProcessorId          Processor                                                                        Elapsed (ms)
alpaca_1      | [FcrepoIndexerNode ] [FcrepoIndexerNode ] [broker://queue:islandora-indexing-fcrepo-content                              ] [     10185]
alpaca_1      | [FcrepoIndexerNode ] [unmarshal1        ] [unmarshal[org.apache.camel.model.dataformat.JsonDataFormat@7e6f7813]          ] [         0]
alpaca_1      | [FcrepoIndexerNode ] [setProperty1      ] [setProperty[event]                                                            ] [         0]
alpaca_1      | [FcrepoIndexerNode ] [setProperty2      ] [setProperty[uuid]                                                             ] [         1]
alpaca_1      | [FcrepoIndexerNode ] [setProperty3      ] [setProperty[jsonldUrl]                                                        ] [         0]
alpaca_1      | [FcrepoIndexerNode ] [setProperty4      ] [setProperty[fedoraBaseUrl]                                                    ] [         0]
alpaca_1      | [FcrepoIndexerNode ] [log3              ] [log                                                                           ] [         0]
alpaca_1      | [FcrepoIndexerNode ] [removeHeaders1    ] [removeHeaders[*]                                                              ] [         0]
alpaca_1      | [FcrepoIndexerNode ] [setHeader1        ] [setHeader[CamelHttpMethod]                                                    ] [         0]
alpaca_1      | [FcrepoIndexerNode ] [setHeader2        ] [setHeader[Content-Location]                                                   ] [         0]
alpaca_1      | [FcrepoIndexerNode ] [setHeader3        ] [setHeader[X-Islandora-Fedora-Endpoint]                                        ] [         0]
alpaca_1      | [FcrepoIndexerNode ] [setBody1          ] [setBody[simple{Simple: ${null}}]                                              ] [         0]
alpaca_1      | [FcrepoIndexerNode ] [multicast1        ] [multicast                                                                     ] [         0]
alpaca_1      | [FcrepoIndexerNode ] [toD1              ] [                                                                              ] [        14]
alpaca_1      | [FcrepoIndexerNode ] [toD1              ] [                                                                              ] [        17]
alpaca_1      | [FcrepoIndexerNode ] [toD1              ] [                                                                              ] [        29]
alpaca_1      | [FcrepoIndexerNode ] [toD1              ] [                                                                              ] [        11]
alpaca_1      | [FcrepoIndexerNode ] [toD1              ] [                                                                              ] [        22]
alpaca_1      | [FcrepoIndexerNode ] [toD1              ] [                                                                              ] [        11]
alpaca_1      | [FcrepoIndexerNode ] [toD1              ] [                                                                              ] [        17]
alpaca_1      | [FcrepoIndexerNode ] [toD1              ] [                                                                              ] [        17]
alpaca_1      | [FcrepoIndexerNode ] [toD1              ] [                                                                              ] [        10]
alpaca_1      | [FcrepoIndexerNode ] [toD1              ] [                                                                              ] [        11]
alpaca_1      | [FcrepoIndexerNode ] [toD1              ] [                                                                              ] [        12]
alpaca_1      | [FcrepoIndexerNode ] [log2              ] [log                                                                           ] [         2]
alpaca_1      |
alpaca_1      | Stacktrace
alpaca_1      | ---------------------------------------------------------------------------------------------------------------------------------------
alpaca_1      | org.apache.camel.http.common.HttpOperationFailedException: HTTP operation failed invoking http://milliner:8000/node/16eb6da8-ad10-45a7-bf9d-367b332675b8 with statusCode: 502
alpaca_1      | 	at org.apache.camel.component.http4.HttpProducer.populateHttpOperationFailedException(HttpProducer.java:311)[115:org.apache.camel.camel-http4:2.20.4]
alpaca_1      | 	at org.apache.camel.component.http4.HttpProducer.process(HttpProducer.java:206)[115:org.apache.camel.camel-http4:2.20.4]
alpaca_1      | 	at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)[56:org.apache.camel.camel-core:2.20.4]
alpaca_1      | 	at org.apache.camel.processor.SendDynamicProcessor$1.doInAsyncProducer(SendDynamicProcessor.java:132)[56:org.apache.camel.camel-core:2.20.4]
alpaca_1      | 	at org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:445)[56:org.apache.camel.camel-core:2.20.4]
alpaca_1      | 	at org.apache.camel.processor.SendDynamicProcessor.process(SendDynamicProcessor.java:127)[56:org.apache.camel.camel-core:2.20.4]
alpaca_1      | 	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)[56:org.apache.camel.camel-core:2.20.4]
alpaca_1      | 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)[56:org.apache.camel.camel-core:2.20.4]
alpaca_1      | 	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)[56:org.apache.camel.camel-core:2.20.4]
alpaca_1      | 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)[56:org.apache.camel.camel-core:2.20.4]
alpaca_1      | 	at org.apache.camel.processor.MulticastProcessor.doProcessParallel(MulticastProcessor.java:860)[56:org.apache.camel.camel-core:2.20.4]
alpaca_1      | 	at org.apache.camel.processor.MulticastProcessor.access$200(MulticastProcessor.java:86)[56:org.apache.camel.camel-core:2.20.4]
alpaca_1      | 	at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:330)[56:org.apache.camel.camel-core:2.20.4]
alpaca_1      | 	at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:316)[56:org.apache.camel.camel-core:2.20.4]
alpaca_1      | 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_302]
alpaca_1      | 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[:1.8.0_302]
alpaca_1      | 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)[:1.8.0_302]
alpaca_1      | 	at java.lang.Thread.run(Thread.java:748)[:1.8.0_302]

fcrepo
fcrepo_1      | WARN 15:56:40.398 [main] (Database) Flyway upgrade recommended: MariaDB 10.6 is newer than this version of Flyway and support has not been tested. The latest supported version of MariaDB is 10.5.

mariadb
mariadb_1     | 2022-04-11 15:55:08 3 [Warning] Aborted connection 3 to db: 'unconnected' user: 'unauthenticated' host: 'isle-dc_fcrepo_1.isle-dc_default' (This connection closed normally without authentication)
mariadb_1     | 2022-04-11 15:55:11 6 [Warning] Aborted connection 6 to db: 'unconnected' user: 'unauthenticated' host: 'isle-dc_matomo_1.isle-dc_default' (This connection closed normally without authentication)
mariadb_1     | 2022-04-11 15:55:11 9 [Warning] Aborted connection 9 to db: 'unconnected' user: 'unauthenticated' host: 'isle-dc_matomo_1.isle-dc_default' (This connection closed normally without authentication)
mariadb_1     | 2022-04-11 15:55:12 12 [Warning] Aborted connection 12 to db: 'unconnected' user: 'unauthenticated' host: 'isle-dc_matomo_1.isle-dc_default' (This connection closed normally without authentication)
mariadb_1     | 2022-04-11 15:55:13 15 [Warning] Aborted connection 15 to db: 'unconnected' user: 'unauthenticated' host: 'isle-dc_matomo_1.isle-dc_default' (This connection closed normally without authentication)
mariadb_1     | 2022-04-11 15:55:13 18 [Warning] Aborted connection 18 to db: 'unconnected' user: 'unauthenticated' host: 'isle-dc_matomo_1.isle-dc_default' (This connection closed normally without authentication)
mariadb_1     | 2022-04-11 15:55:13 21 [Warning] Aborted connection 21 to db: 'unconnected' user: 'unauthenticated' host: 'isle-dc_matomo_1.isle-dc_default' (This connection closed normally without authentication)
mariadb_1     | 2022-04-11 15:57:09 34 [Warning] Aborted connection 34 to db: 'unconnected' user: 'unauthenticated' host: 'isle-dc_drupal_1.isle-dc_default' (This connection closed normally without authentication)

milliner
milliner_1    | [2022-04-11 16:11:51] app.ERROR:  {"Exception":"[object] (RuntimeException(code: 502): Client error: `GET http://islandora2.ksulib.net:8081/fcrepo/rest/d6/a1/de/fe/d6a1defe-99ee-48af-8df6-2e0df416a838` resulted in a `502 Bad Gateway` response: Bad Gateway at /var/www/crayfish/Milliner/src/Service/MillinerService.php:207)"} []
milliner_1    | [2022-04-11 16:11:51] app.DEBUG: < 502 [] []
milliner_1    | <IP_ADDRESS> - - [11/Apr/2022:16:11:51 +0000] "POST /node/d6a1defe-99ee-48af-8df6-2e0df416a838 HTTP/1.1" 502 179 "-" "Apache-HttpClient/4.5.3 (Java/1.8.0_302)" "-"
milliner_1    | [2022-04-11 16:11:52] app.INFO: Matched route "{route}". {"route":"POST_node_uuid","route_parameters":{"_controller":"milliner.controller:saveNode","uuid":"d6a1defe-99ee-48af-8df6-2e0df416a838","_route":"POST_node_uuid"},"request_uri":"http://milliner:8000/node/d6a1defe-99ee-48af-8df6-2e0df416a838","method":"POST"} []
milliner_1    | [2022-04-11 16:11:52] app.DEBUG: > POST /node/d6a1defe-99ee-48af-8df6-2e0df416a838 [] []
milliner_1    | [2022-04-11 16:11:52] app.DEBUG: JSONLD URL: http://islandora2.ksulib.net/taxonomy/term/64?_format=jsonld [] []
milliner_1    | [2022-04-11 16:11:52] app.DEBUG: FEDORA ENDPOINT: http://islandora2.ksulib.net:8081/fcrepo/rest/ [] []
milliner_1    | [2022-04-11 16:11:52] app.DEBUG: DID NOT GET 404 [] []
milliner_1    | [2022-04-11 16:11:52] app.ERROR:  {"Exception":"[object] (RuntimeException(code: 502): Client error: `GET http://islandora2.ksulib.net:8081/fcrepo/rest/d6/a1/de/fe/d6a1defe-99ee-48af-8df6-2e0df416a838` resulted in a `502 Bad Gateway` response: Bad Gateway at /var/www/crayfish/Milliner/src/Service/MillinerService.php:207)"} []
milliner_1    | [2022-04-11 16:11:52] app.DEBUG: < 502 [] []
milliner_1    | <IP_ADDRESS> - - [11/Apr/2022:16:11:52 +0000] "POST /node/d6a1defe-99ee-48af-8df6-2e0df416a838 HTTP/1.1" 502 179 "-" "Apache-HttpClient/4.5.3 (Java/1.8.0_302)" "-

Looking at the issues backlog, I think this has fixed it. I've pulled it into this branch and retested with alpha-15. I'll also note that alpha-12 worked great as it was prior to this pull, so this is definitely the Fedora/proxy stuff moving around that's not letting it boot. https://github.com/Islandora-Devops/isle-dc/pull/222
cc @dannylamb and @nigelgbanks who were working on that.
So I think this addresses a bunch of issues I'm hearing on the isle slack about alpha-15 not booting. I'll leave a note there too...
Any takers for testing this? Thanks for all the confirmations earlier...

@noahwsmith I was able to run make local-install-profile
Drupal loaded fine without errors. THere were no items that had been ingested, but I was able to ingest an image.
I also visited the Fedora rest page and I can see new objects created after my ingest.
http://islandora.traefik.me:8081/fcrepo/rest/

I will try building the make local and `make demo' targets and report back.

Testing make local-install-profile again now.

Ugh.  On a prod install we're back to this
In ExtensionList.php line 522:

  The profile islandora_install_profile_demo does not exist.

@noahwsmith I wanted to add more details about running make demo.
I was not able to create a "repository item." I was getting a white page with the following error “The website encountered an unexpected error. Please try again later.”
In the Drupal recent log messages section I saw this two errors...
Drupal\Core\Database\DatabaseExceptionWrapper: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'content_translation_uid' in 'field list': INSERT INTO {node_field_data} (nid, vid, type, langcode, status, uid, title, created, changed, promote, sticky, default_langcode, revision_translation_affected, content_translation_source, content_translation_outdated, content_translation_uid, content_translation_status, content_translation_created, content_translation_changed) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9, :db_insert_placeholder_10, :db_insert_placeholder_11, :db_insert_placeholder_12, :db_insert_placeholder_13, :db_insert_placeholder_14, :db_insert_placeholder_15, :db_insert_placeholder_16, :db_insert_placeholder_17, :db_insert_placeholder_18); Array ( [:db_insert_placeholder_0] => 40 [:db_insert_placeholder_1] => 70 [:db_insert_placeholder_2] => islandora_object [:db_insert_placeholder_3] => en [:db_insert_placeholder_4] => 1 [:db_insert_placeholder_5] => 1 [:db_insert_placeholder_6] => SIFT process [:db_insert_placeholder_7] =><PHONE_NUMBER> [:db_insert_placeholder_8] =><PHONE_NUMBER> [:db_insert_placeholder_9] => 1 [:db_insert_placeholder_10] => 0 [:db_insert_placeholder_11] => 1 [:db_insert_placeholder_12] => 1 [:db_insert_placeholder_13] => und [:db_insert_placeholder_14] => 0 [:db_insert_placeholder_15] => 1 [:db_insert_placeholder_16] => 1 [:db_insert_placeholder_17] =><PHONE_NUMBER> [:db_insert_placeholder_18] =><PHONE_NUMBER> ) in Drupal\Core\Entity\Sql\SqlContentEntityStorage->saveToSharedTables() (line 1047 of /var/www/drupal/web/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php).

and...
Drupal\Core\Entity\EntityStorageException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'content_translation_uid' in 'field list': INSERT INTO {node_field_data} (nid, vid, type, langcode, status, uid, title, created, changed, promote, sticky, default_langcode, revision_translation_affected, content_translation_source, content_translation_outdated, content_translation_uid, content_translation_status, content_translation_created, content_translation_changed) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9, :db_insert_placeholder_10, :db_insert_placeholder_11, :db_insert_placeholder_12, :db_insert_placeholder_13, :db_insert_placeholder_14, :db_insert_placeholder_15, :db_insert_placeholder_16, :db_insert_placeholder_17, :db_insert_placeholder_18); Array ( [:db_insert_placeholder_0] => 40 [:db_insert_placeholder_1] => 70 [:db_insert_placeholder_2] => islandora_object [:db_insert_placeholder_3] => en [:db_insert_placeholder_4] => 1 [:db_insert_placeholder_5] => 1 [:db_insert_placeholder_6] => SIFT process [:db_insert_placeholder_7] =><PHONE_NUMBER> [:db_insert_placeholder_8] =><PHONE_NUMBER> [:db_insert_placeholder_9] => 1 [:db_insert_placeholder_10] => 0 [:db_insert_placeholder_11] => 1 [:db_insert_placeholder_12] => 1 [:db_insert_placeholder_13] => und [:db_insert_placeholder_14] => 0 [:db_insert_placeholder_15] => 1 [:db_insert_placeholder_16] => 1 [:db_insert_placeholder_17] =><PHONE_NUMBER> [:db_insert_placeholder_18] =><PHONE_NUMBER> ) in Drupal\Core\Entity\Sql\SqlContentEntityStorage->save() (line 846 of /var/www/drupal/web/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php).

The offending lines in a fresh build on an Ubuntu box
grep: /var/www/drupal/web/sites/default/settings.php: No such file or directory

In Filesystem.php line 203:

  Failed to chmod file "/var/www/drupal/web/sites/default/settings.php".

Complete success with a build on my Mac last night.

I did find the use case for make demo_install_profile. Which probably was the original thought of a way to generate https://sandbox.islandora.ca/ with content, as well as locally.
https://islandora.github.io/documentation/installation/docker-demo/

Demo is a bit messed up, it initially looks good though, but I've ran into a few issues.
The search display doesn't return results, but I checked the solr index and the content has been indexed correctly I think the view might be a bit messed up.
Trying to create islandora_object or media entities results in the following errors around translation.
Drupal\Core\Database\DatabaseExceptionWrapper: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'content_translation_uid' in 'field list': INSERT INTO {node_field_data} (nid, vid, type, langcode, status, uid, title, created, changed, promote, sticky, default_langcode, revision_translation_affected, content_translation_source, content_translation_outdated, content_translation_uid, content_translation_status, content_translation_created, content_translation_changed) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9, :db_insert_placeholder_10, :db_insert_placeholder_11, :db_insert_placeholder_12, :db_insert_placeholder_13, :db_insert_placeholder_14, :db_insert_placeholder_15, :db_insert_placeholder_16, :db_insert_placeholder_17, :db_insert_placeholder_18); Array ( [:db_insert_placeholder_0] => 39 [:db_insert_placeholder_1] => 69 [:db_insert_placeholder_2] => islandora_object [:db_insert_placeholder_3] => en [:db_insert_placeholder_4] => 1 [:db_insert_placeholder_5] => 1 [:db_insert_placeholder_6] => Foobar [:db_insert_placeholder_7] =><PHONE_NUMBER> [:db_insert_placeholder_8] =><PHONE_NUMBER> [:db_insert_placeholder_9] => 1 [:db_insert_placeholder_10] => 0 [:db_insert_placeholder_11] => 1 [:db_insert_placeholder_12] => 1 [:db_insert_placeholder_13] => und [:db_insert_placeholder_14] => 0 [:db_insert_placeholder_15] => 1 [:db_insert_placeholder_16] => 1 [:db_insert_placeholder_17] =><PHONE_NUMBER> [:db_insert_placeholder_18] =><PHONE_NUMBER> ) in Drupal\Core\Entity\Sql\SqlContentEntityStorage->saveToSharedTables() (line 1047 of /var/www/drupal/web/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php).

make demo_install_profile works great

make demo_install_profile works great

Ok, I thought it was mentioned it was being removed.

@misilot I didn't know, I thought it was different than make local in that make local could be some custom local build not based on the install profile.

make local works well enough it's a plain looking site and I've had to manual configure the display of media form elements but it works, I think that's enough for it?
It takes a long time to test on the mac due to the bind mount volumes and install is like 30-40 mins to bring up a fresh one.

Going back to make demo
[error]  Content Browser requires the Masonry library. Download the newest release from
https://github.com/desandro/masonry/releases and place it in /libraries

This makes sense cause it's not installed in isle-buildkit at one point it was, though that was before the move to sandbox. I recon if we update the commit there to match this it should work.

Pushed some changes to update the commits to pull the latest, though make demo is still broken it hangs indefinitely on
docker-compose exec -T drupal with-contenv bash -lc 'drush --root /var/www/drupal/web -l ${DRUPAL_DEFAULT_SITE_URL} vbo-exec non_fedora_files emit_file_event --configuration="queue=islandora-indexing-fcrepo-file-external&event=Update"'

I'll dig in more tomorrow.

So it's clear now that this is all coming from database dumps being imported. I think we should just kill make demo for now. So this can get in. Though this all really needs replacing, it's just too flaky and unstable.

I just wanted to report I am running into this with make config-export on this branch
WARNING: Some services (activemq, alpaca, blazegraph, cantaloupe, crayfits, drupal, fcrepo, fits, homarus, houdini, hypercube, mariadb, matomo, milliner, recast, solr, traefik) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use `docker stack deploy` to deploy to a swarm.

 // Do you want to update uuid key in system.site config?: yes.

WARNING: Some services (activemq, alpaca, blazegraph, cantaloupe, crayfits, drupal, fcrepo, fits, homarus, houdini, hypercube, mariadb, matomo, milliner, recast, solr, traefik) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use `docker stack deploy` to deploy to a swarm.

In EntityTypeManager.php line 143:

  The "shortcut_set" entity type does not exist.

make: *** [Makefile:187: delete-shortcut-entities] Error 1

Danny says that the process to fix make demo is to get it to fire up, composer update, and dump the sql file to preserve that "quick start" option. This is the "cats" demo. I guess if that's what "make local" makes, then we could make a new local, import content, and then dump that sql as an alternative. I'm going to do a little testing now...

That approach to "demo" seems totally intractable now that the "cats" demo is gone. We do need a new approach. The goal was to have real content in the local repo, so that's what we should aim to do.
As Tom is pointing out, the docs are sending people to run these demo sites. I reinstated the "demo-from-local" but I have a proposed new mechanism for making the demo sites to avoid the issues Nigel raises. I think "demo" should mean "a good functioning local with some demo content" which means that "make demo" should just be "make local" plus "add demo content". I've added something @DonRichards did for Born-Digital a while back that uses Workbench to load up some sample content. I think this is a great approach because it uses the tools we want to encourage the community to use to load the content, and it always comes in ON TOP OF a good local build, not something else that has to be maintained separately. I changed the "install-profile" versions of this to function the same way.
So now as long as we have good make local and make local-install-profile functions (which I understand we do at this point), we should have good demo commands too. The other big benefit is that this is much more modular: there's commands to make locals, and commands to load content, and they work with each other.
The demo content can be improved, but I think this is a good start. Don's fork of workbench is a bit behind too, but if it works, that's no big deal. On make local-install-profile I do notice that the binaries aren't loading in, and I'm not sure why. Maybe @DonRichards you'd be willing to take a peek at that?
And on make demo there's something in the selected sample content that doesn't agree with the content structure of the super barebones default Repository Item content type. We'll also need to fix that.
How do you all feel about this?

Not a huge deal, but building local-install-profile creates a context item called something else.  Clicking on this context whitescreens with an InvalidArgumentException.  It deletes without causing any problems.

@noahwsmith Yeah, I like it. I don't mind looking at that to see where the issue is. Probably something simple anyways.

Great! Thanks Don

After a make local-install-profile, I try to add a new islandora resource via the UI however the resource  type select box only contains compound object and the model is empty. Should movie, image, etc appear in the select list?
$ git log -n 1
commit 1d8b562d008d18a17ddfbd046d15b529338b9b0b (HEAD -> fixing_initial_install_options, origin/fixing_initial_install_options)
Author: Noah W. Smith<EMAIL_ADDRESS>Date:   Tue May 10 12:21:37 2022 -0400

    updates to allow Islandora Defaults ^2.0 to work

$ docker-compose --version
docker-compose version 1.29.2, build unknown

$ docker --version
Docker version 20.10.14, build a224086

I'll retest again, but that sounds like a stale codebase. You could either do make clean and then try again, or you could run docker-compose exec drupal bash -c "composer update -W" and try again. Thanks for testing!

Run make login to hijack a login, Alan.
Fixing the bug with how the Islandora Tags get imported caused that regression. This is fixed for local-install-profile now.

The update -
Local build works fine.  Identical build on a new server keeps throwing the same
Symfony\Component\HttpKernel\Exception\BadRequestHttpException: No contextual ids specified. in Drupal\contextual\ContextualController->render() (line 65 of /var/www/drupal/web/core/modules/contextual/src/ContextualController.php).

error.

chown: ./web/README.md: Invalid argument
chown: ./web/.eslintignore: Invalid argument
chown: ./web: Invalid argument
chown: ./web: Invalid argument
chown: ./composer.lock: Invalid argument
chown: .: Invalid argument
chown: .: Invalid argument
make: *** [Makefile:339: local] Error 1

Am I the only one getting this error message from running make clean then make local?

@DonRichards - I just ran make clean, followed by make local on the box that was giving me those contextual error messages.  The installation built, but it still won't talk to itself.
I'm not seeing any of your invalid argument issues.

I have no issue build against the development branch, just not this one.

@DonRichards can you point me to your demo content so i can take a look? But, since I'm working on Workbench very frequently, it might be better if you kept your repo in sync with my main. Any reason that wouldn't be possible?

@mjordan No, no reason. It just fell behind.

@DonRichards if you pull from upstream into your "staging" branch that'd be ideal. That should solve that issue, and we can remove that from the code here...

I have no problem merging in the demo content, but I want to make sure that it and all the associated config files are documented clearly so users don't get the impression ISLE is a dependency for Workbench. Let me know what your preference  for moving forward is.

or @DonRichards would it make sense to have the demo content be it's own repository? So you have to install workbench + the demo repo and reference that?

I vote for a separate repo- it's pretty heavy to get it all in there, and I'm sure people will want to add to it. And this has BD naming all over it, etc. It needs a decent cleanup after this proof of concept.

I've switched this to use Don's pre-merged new_staging branch to eliminate any issues with that no-edit git merge.

@ysuarez Are you able to build this?
Steps
git fetch --all
git checkout fixing_initial_install_options
make local-install-profile

I dont think this is a Workbench issue, but that is where I encounter this.....
When I began to test ingests using Workbench, I get the following from the workbench log...
11-May-22 10:23:22 - INFO - Node for National Potato Advisory Board (record MSS056_11_3_AG_1) created at http:///node/3.
11-May-22 10:23:26 - ERROR - ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))
11-May-22 10:23:32 - ERROR - Media for MSS056_11_3_AG_1.jpg not created (HTTP respone code 422).
from the docker-compose logs -f, I get a ton of data from Blazegraph at that point, but I cant find the actual error in my logs...
I can upload the media manually, with no errors...
Has anybody encountered something like this?  I know that this branch is a few changes ahead of the curve, so it may be a longshot to ask if anyone else has encountered something like this...
Any ideas what to check next?

@benglis is Workbench's initial connection to Drupal successful? The log entry should be very near the top of your log.

yes, Workbench connects, verifies, and processes everything correctly, except for the adding of the media.

Using the credentials in your workbench config file, can you use curl to GET a media's JSON at /media/123?_format=json (where "123" is an existing media ID)?

Yes, I can curl that information, but I'm not sure how to add the authentication components...
{"mid":[{"value":3}],"uuid":[{"value":"c4d1ba29-2a38-49bc-bb50-1d7ef17cd196"}],"vid":[{"value":3}],"langcode":[{"value":"en"}],"bundle":[{"target_id":"image","target_type":"media_type","target_uuid":"6482b232-6281-4120-8bb5-b6128957cb61"}],"revision_created":[{"value":"2022-05-11T15:12:11+00:00","format":"Y-m-d\TH:i:sP"}],"revision_user":[],"revision_log_message":[],"status":[{"value":true}],"uid":[{"target_id":1,"target_type":"user","target_uuid":"53b1fda1-5623-41f3-b89f-ec2fb1e132fc","url":"/user/1"}],"name":[{"value":"2.jpg"}],"thumbnail":[{"target_id":3,"alt":"2.jpg","title":null,"width":480,"height":393,"target_type":"file","target_uuid":"71496a4f-d49e-4257-816c-fd5a94ce8f60","url":"https://server/_flysystem/fedora/2022-05/2.jpg"}],"created":[{"value":"2022-05-11T15:12:11+00:00","format":"Y-m-d\TH:i:sP"}],"changed":[{"value":"2022-05-11T15:12:11+00:00","format":"Y-m-d\TH:i:sP"}],"default_langcode":[{"value":true}],"revision_translation_affected":[{"value":true}],"metatag":{"value":{"canonical_url":"https://server/media/3","title":"| Drush Site-Install"}},"content_translation_source":[{"value":"und"}],"content_translation_outdated":[{"value":false}],"field_file_size":[{"value":38282}],"field_height":[{"value":393}],"field_media_image":[{"target_id":3,"alt":"2.jpg","title":null,"width":480,"height":393,"target_type":"file","target_uuid":"71496a4f-d49e-4257-816c-fd5a94ce8f60","url":"https://server/_flysystem/fedora/2022-05/2.jpg"}],"field_media_of":[{"target_id":2,"target_type":"node","target_uuid":"1b7e0420-2ba0-41aa-80e9-a5b3b5adc97c","url":"/islandora/idaho-rainbow-trout-and-potatoes-capitol"}],"field_media_use":[{"target_id":21,"target_type":"taxonomy_term","target_uuid":"921fd8dc-d2a6-4a4f-9ed4-8bf899fa0394","url":"/taxonomy/term/21"}],"field_mime_type":[{"value":"image/jpeg"}],"field_original_name":[],"field_width":[{"value":480}]}

curl -uname:pass https...
If you can, try a DELETE request on a throw-away media: curl -v -uname:pass -X DELETE http://your host/media/123?_format=json to see if you get the same error.

that was successful....

Trying <IP_ADDRESS>:443...
Connected to  (ip address) port 443 (#0)
ALPN: offers h2
ALPN: offers http/1.1
CAfile: c:\temp\Workbench-042022\curl-7.83.1-win64-mingw\bin\curl-ca-bundle.crt
CApath: none
TLSv1.0 (OUT), TLS header, Certificate Status (22):
TLSv1.3 (OUT), TLS handshake, Client hello (1):
TLSv1.2 (IN), TLS header, Certificate Status (22):
TLSv1.3 (IN), TLS handshake, Server hello (2):
TLSv1.2 (IN), TLS header, Finished (20):
TLSv1.2 (IN), TLS header, Supplemental data (23):
TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
TLSv1.2 (IN), TLS header, Supplemental data (23):
TLSv1.3 (IN), TLS handshake, Certificate (11):
TLSv1.2 (IN), TLS header, Supplemental data (23):
TLSv1.3 (IN), TLS handshake, CERT verify (15):
TLSv1.2 (IN), TLS header, Supplemental data (23):
TLSv1.3 (IN), TLS handshake, Finished (20):
TLSv1.2 (OUT), TLS header, Finished (20):
TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
TLSv1.2 (OUT), TLS header, Supplemental data (23):
TLSv1.3 (OUT), TLS handshake, Finished (20):
SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
ALPN: server accepted h2
Server certificate:
subject: C=US; ST=Idaho; L=Boise; O=Boise State University; CN=*.boisestate.edu
start date: Mar 29 00:00:00 2022 GMT
expire date: Apr 17 23:59:59 2023 GMT
subjectAltName: host "" matched cert's "*."
issuer: C=US; O=DigiCert Inc; CN=DigiCert TLS RSA SHA256 2020 CA1
SSL certificate verify ok.
Using HTTP2, server supports multiplexing
Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
TLSv1.2 (OUT), TLS header, Supplemental data (23):
TLSv1.2 (OUT), TLS header, Supplemental data (23):
TLSv1.2 (OUT), TLS header, Supplemental data (23):
Server auth using Basic with user 'admin'
h2h3 [:method: DELETE]
h2h3 [:path: /media/3?_format=json]
h2h3 [:scheme: https]
h2h3 [:authority: ]
h2h3 [authorization: Basic **********************]
h2h3 [user-agent: curl/7.83.1]
h2h3 [accept: /]
Using Stream ID: 1 (easy handle 0x1cb598efbe0)
TLSv1.2 (OUT), TLS header, Supplemental data (23):

DELETE /media/3?_format=json HTTP/2
Host:
authorization: Basic ********************
user-agent: curl/7.83.1
accept: /

TLSv1.2 (IN), TLS header, Supplemental data (23):
TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
TLSv1.2 (IN), TLS header, Supplemental data (23):
Connection state changed (MAX_CONCURRENT_STREAMS == 250)!
TLSv1.2 (OUT), TLS header, Supplemental data (23):
TLSv1.2 (IN), TLS header, Supplemental data (23):
TLSv1.2 (IN), TLS header, Supplemental data (23):
TLSv1.2 (IN), TLS header, Supplemental data (23):
< HTTP/2 204
< cache-control: must-revalidate, no-cache, private
< content-language: en
< date: Wed, 11 May 2022 21:22:42 GMT
< expires: Sun, 19 Nov 1978 05:00:00 GMT
< permissions-policy: interest-cohort=()
< server: nginx
< x-content-type-options: nosniff
< x-frame-options: SAMEORIGIN
< x-generator: Drupal 9 (https://www.drupal.org)
< x-powered-by: PHP/7.4.28
< x-ua-compatible: IE=edge
Connection #0 to host  left intact

Googling that error finds some posts, etc. that suggest slowing down the requests. Can you add pause: 2 to your Workbench config file to see if that has any effect? That tells Workbench to pause for 2 seconds between each request.

Thanks Mark, I'm already using pause: 3 in my config file

I don't know what else to suggest other than looping through a large group of requests outside of Workbench (e.g. using a script that issues curl calls like the one you did in https://github.com/Islandora-Devops/isle-dc/pull/248#issuecomment-1124244814) to see if the frequency of requests is triggering the server-side error.

Thank you Mark,
As I mentioned in my first post, I'm not sure Workbench is responsible here... but I'm not sure what else to look at...
I've upped the pause to 10, and I'm only loading 1 record for these tests.
There is one line in the wb log that I haven't seen in the past, perhaps its relevant.. or perhaps I just didn't notice it before?
12-May-22 08:25:39 - INFO - Client-side request caching is enabled.
Is that a new feature?

just a little more info, perhaps it helps...?  I looked back further in my workbench log, and I found a slightly different message that started the day..
ERROR - ('Connection aborted.', ConnectionAbortedError(10053, 'An established connection was aborted by the software in your host machine', None, 10053, None))
then, any other attempts generated the following...
ERROR - ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))

I've tried this on a new server, fresh install from this branch... I updated to python 3.10, and made sure WB was updated.
Only 1 record in my csv.  same result...
12-May-22 15:50:22 - INFO - Node for Idaho Rainbow Trout and Potatoes in the Capitol (record MSS056_11_3_AG_10) created at http://servername/node/4.
12-May-22 15:50:33 - ERROR - ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))
12-May-22 15:50:44 - ERROR - Media for MSS056_11_3_AG_10.jpg not created (HTTP respone code 422).
any other suggestions?
scouring through the logs, I found this in drupal...
mdrupal_1      | NOTICE: PHP message: Uncaught PHP Exception InvalidArgumentException: "Invalid UUID "246ef0cf-cislandora-install-profile-democ-495a-bc56-c7468b172a81"" at /var/www/drupal/web/core/modules/layout_builder/src/Section.php line 184
drupal_1      | 2022/05/12 21:49:25 [error] 1038#1038: *461 FastCGI sent in stderr: "PHP message: Uncaught PHP Exception InvalidArgumentException: "Invalid UUID "246ef0cf-cislandora-install-profile-democ-495a-bc56-c7468b172a81"" at /var/www/drupal/web/core/modules/layout_builder/src/Section.php line 184" while reading response header from upstream, client: <IP_ADDRESS>, server: drupal, request: "POST /quickedit/metadata HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm7/php-fpm7.sock:", host: "digital-dev.boisestate.edu", referrer: "https://digital-dev.boisestate.edu/"
[36;1
It looks like somehow 'islandoara-install-profile-demo' is being inserted into a UUID call?
I'm still working through the log...

Workbench doesn't make any calls to /quickedit/metadata, so I'm not sure what the source of that PHP notice is. But I have also no tested Workbench on a Drupal with layout builder installed.
The curl requests I have asked you to try above have not included a full POST to create a media. I'll try to provide a sample request that you can try to see if it triggers an error we can work with. The POST JSON is fairly complex but I can generate one within Workbench. I'll paste it here with a curl command to try it with. If that doesn't trigger the error, I don't know what else to try.

I've enabled layout builder and can create media, so that's probably not the cause of the problem unless there's a specific layout builder configuration that would cause it.
Providing a curl request to create a media is complicated since it's a multistep process, specifically, you need to reference a target file in the request. So it's difficult for me to provide a ready-made request. Documentation on creating a file and then a media via REST is at https://islandora.github.io/documentation/technical-documentation/rest-create/#files-and-media if you want to give it a go, but we probably should eliminate other possible causes first. I think the most suspicious thing in your error above is that invalid UUID.

@benglis, are you using a custom domain or the default domain (islandora.traefik.me)?
I've tried the following test with Workbench and the default domain islandora.traefik.me and didn't experience the same error (Ubuntu 20.04)
$ docker --version
Docker version 20.10.14, build a224086
$ docker-compose --version
docker-compose version 1.29.2, build unknown

$ git clone https://github.com/Islandora-Devops/isle-dc.git
$ cd isle-dc && git checkout fixing_initial_install_options

$  make demo-install-profile

Then I tried a simple Workbench (commit 41d884ccf925bf39f7be85a66c8322440bf16399) with Python 3.8 import. This completed without the connection aborted errors.

For taxonomy (not nodes) I see errors in milliner due to a malformed JSONLD URL http://default/taxonomy/term/9?_format=jsonld
Using both  make demo-install-profile and  make local-install-profile and also image 1.0.0-alpha-16 and 1.0.0-alpha-18.
[2022-05-13 19:41:24] app.DEBUG: JSONLD URL: http://default/taxonomy/term/9?_format=jsonld [] []
[2022-05-13 19:41:24] app.DEBUG: FEDORA ENDPOINT: http://islandora.traefik.me:8081/fcrepo/rest/ [] []
[2022-05-13 19:41:24] app.DEBUG: GOT A 404 [] []
[2022-05-13 19:41:29] app.ERROR:  {"Exception":"[object] (GuzzleHttp\\Exception\\ConnectException(code: 0): cURL error 6: Could not resolve host: default (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) at /var/www/crayfish/Milliner/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:200)"} []
[2022-05-13 19:41:29] app.DEBUG: < 500 [] []

Thanks @jefferya and @mjordan , I am using a custom domain, with build alpha-16.  I'll keep working on this, and let you know if I find any more useful details.

I'm trying to use make local with an existing codebase but running into this. I tried adding -W to the install of workbench. The codebase was created with an earlier revision of this PR. Thanks!
./composer.json has been updated
Running composer update mjordan/islandora_workbench_integration --with-all-dependencies
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - islandora/islandora_install_profile_demo is locked to version dev-april-config-reconciliation and an update of this package was not requested.
    - islandora/islandora_install_profile_demo dev-april-config-reconciliation requires mjordan/islandora_workbench_integration ^1.0 -> found mjordan/islandora_workbench_integration[v1.0.0] but it conflicts with your root composer.json require (dev-main).

Installation failed, reverting ./composer.json and ./composer.lock to their original content.
make: *** [Makefile:341: local] Error 2

For taxonomy (not nodes) I see errors in milliner due to a malformed JSONLD URL http://default/taxonomy/term/9?_format=jsonld
Using both  make demo-install-profile and  make local-install-profile and also image 1.0.0-alpha-16 and 1.0.0-alpha-18.
[2022-05-13 19:41:24] app.DEBUG: JSONLD URL: http://default/taxonomy/term/9?_format=jsonld [] []
[2022-05-13 19:41:24] app.DEBUG: FEDORA ENDPOINT: http://islandora.traefik.me:8081/fcrepo/rest/ [] []
[2022-05-13 19:41:24] app.DEBUG: GOT A 404 [] []
[2022-05-13 19:41:29] app.ERROR:  {"Exception":"[object] (GuzzleHttp\\Exception\\ConnectException(code: 0): cURL error 6: Could not resolve host: default (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) at /var/www/crayfish/Milliner/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:200)"} []
[2022-05-13 19:41:29] app.DEBUG: < 500 [] []

I'm seeing this also on a fresh local-install-profile with alpha-16.   It seems to just keep trying...

I've gone back and tried an older version of the ISLE code, I'm using alpha-12, but I still get the errors when trying to use WB.
16-May-22 15:38:40 - ERROR - ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))
16-May-22 15:38:51 - ERROR - Media for MSS056_11_3_AG_10.jpg not created (HTTP respone code 422).
are there any other suggestions?  I'm guessing the layout builder errors I'm also getting about the incorrect UUID aren't related?

Workbench doesn't make any calls to /quickedit/metadata, so I'm not sure what the source of that PHP notice is. But I have also not tested Workbench on a Drupal with layout builder installed.
One very strange thing in that error message is that 246ef0cf-cislandora-install-profile-democ-495a-bc56-c7468b172a81 is being flagged as an invalid UUID. It is definitely invalid, since UUIDs can't have English strings in them like "cislandora-install-profile-democ". EIther Drupal is generating that invalid UUID (doubtful) or it is coming from some imported config data (more likely). I grepped through the code in this branch for "c7468b172a81" and can't find that UUID, which invalidates my theory that it's part of any config dumps. @DonRichards and @noahwsmith could that invalid UUID be coming from something else being pulled in as part of the install process?
The curl requests I have asked you to try above have not included a full POST to create a media. I'll try to provide a sample request that you can try to see if it triggers an error we can work with. The POST JSON is fairly complex but I can generate one within Workbench. I'll paste it here with a curl command to try it with. If that doesn't trigger the error, I don't know what else to try.

/usr/local/isle-dc/codebase/web/profiles/contrib/islandora_install_profile_demo/config/install/core.entity_view_display.node.home_page.default.yml
line 26 and 27 both contain that string.  @noahwsmith can you confirm what these values should be?

@benglis are there any entries in your Drupal log that correspond to the errors you're seeing in the Workbench log? An HTTP 422 usually means Workbench tried to push some bad JSON up to Drupal.

First...
Warning: array_flip(): Can only flip STRING and INTEGER values! in Drupal\Core\Entity\EntityStorageBase->loadMultiple() (line 312 of /var/www/drupal/web/core/lib/Drupal/Core/Entity/EntityStorageBase.php)#0 /var/www/drupal/web/core/includes/bootstrap.inc(346): _drupal_error_handler_real() #1 [internal function]: _drupal_error_handler() #2 /var/www/drupal/web/core/lib/Drupal/Core/Entity/EntityStorageBase.php(312): array_flip() #3 /var/www/drupal/web/core/lib/Drupal/Core/Entity/EntityStorageBase.php(296): Drupal\Core\Entity\EntityStorageBase->loadMultiple() #4 /var/www/drupal/web/core/lib/Drupal/Core/Entity/Plugin/DataType/EntityReference.php(72): Drupal\Core\Entity\EntityStorageBase->load() #5 /var/www/drupal/web/core/modules/file/src/Plugin/Validation/Constraint/FileValidationConstraintValidator.php(18): Drupal\Core\Entity\Plugin\DataType\EntityReference->getTarget() #6 /var/www/drupal/web/core/lib/Drupal/Core/TypedData/Validation/RecursiveContextualValidator.php(196): Drupal\file\Plugin\Validation\Constraint\FileValidationConstraintValidator->validate() #7 /var/www/drupal/web/core/lib/Drupal/Core/TypedData/Validation/RecursiveContextualValidator.php(148): Drupal\Core\TypedData\Validation\RecursiveContextualValidator->validateConstraints() #8 /var/www/drupal/web/core/lib/Drupal/Core/TypedData/Validation/RecursiveContextualValidator.php(158): Drupal\Core\TypedData\Validation\RecursiveContextualValidator->validateNode() #9 /var/www/drupal/web/core/lib/Drupal/Core/TypedData/Validation/RecursiveContextualValidator.php(158): Drupal\Core\TypedData\Validation\RecursiveContextualValidator->validateNode() #10 /var/www/drupal/web/core/lib/Drupal/Core/TypedData/Validation/RecursiveContextualValidator.php(100): Drupal\Core\TypedData\Validation\RecursiveContextualValidator->validateNode() #11 /var/www/drupal/web/core/lib/Drupal/Core/TypedData/Validation/RecursiveValidator.php(93): Drupal\Core\TypedData\Validation\RecursiveContextualValidator->validate() #12 /var/www/drupal/web/core/lib/Drupal/Core/TypedData/TypedData.php(132): Drupal\Core\TypedData\Validation\RecursiveValidator->validate() #13 /var/www/drupal/web/core/lib/Drupal/Core/Entity/ContentEntityBase.php(489): Drupal\Core\TypedData\TypedData->validate() #14 /var/www/drupal/web/core/modules/media/src/Entity/Media.php(415): Drupal\Core\Entity\ContentEntityBase->validate() #15 /var/www/drupal/web/core/modules/rest/src/Plugin/rest/resource/EntityResourceValidationTrait.php(37): Drupal\media\Entity\Media->validate() #16 /var/www/drupal/web/core/modules/rest/src/Plugin/rest/resource/EntityResource.php(184): Drupal\rest\Plugin\rest\resource\EntityResource->validate() #17 [internal function]: Drupal\rest\Plugin\rest\resource\EntityResource->post() #18 /var/www/drupal/web/core/modules/rest/src/RequestHandler.php(219): call_user_func_array() #19 /var/www/drupal/web/core/modules/rest/src/RequestHandler.php(68): Drupal\rest\RequestHandler->delegateToRestResourcePlugin() #20 [internal function]: Drupal\rest\RequestHandler->handle() #21 /var/www/drupal/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array() #22 /var/www/drupal/web/core/lib/Drupal/Core/Render/Renderer.php(564): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber{closure}() #23 /var/www/drupal/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext() #24 /var/www/drupal/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext() #25 /var/www/drupal/vendor/symfony/http-kernel/HttpKernel.php(158): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber{closure}() #26 /var/www/drupal/vendor/symfony/http-kernel/HttpKernel.php(80): Symfony\Component\HttpKernel\HttpKernel->handleRaw() #27 /var/www/drupal/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Symfony\Component\HttpKernel\HttpKernel->handle() #28 /var/www/drupal/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle() #29 /var/www/drupal/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle() #30 /var/www/drupal/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass() #31 /var/www/drupal/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\page_cache\StackMiddleware\PageCache->handle() #32 /var/www/drupal/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() #33 /var/www/drupal/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() #34 /var/www/drupal/web/core/lib/Drupal/Core/DrupalKernel.php(708): Stack\StackedHttpKernel->handle() #35 /var/www/drupal/web/index.php(19): Drupal\Core\DrupalKernel->handle() #36 {main}
and Second...
Date: Monday, May 16, 2022 - 15:38
User	[admin]
Location	https://digital-dev.boisestate.edu/entity/media
Referrer
Message	Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException: Unprocessable Entity: validation failed. field_media_image.0.target_id: This value should be of the correct primitive type. in Drupal\rest\Plugin\rest\resource\EntityResource->validate() (line 55 of /var/www/drupal/web/core/modules/rest/src/Plugin/rest/resource/EntityResourceValidationTrait.php).
Severity	Error

@mjordan, could be two separate issues, but could you please check the two lines in your /codebase/web/profiles/contrib/islandora_install_profile_demo/config/install/core.entity_view_display.node.home_page.default.yml file?  line 26 and 27.  Thanks

I'll check those files this evening and let you know. The last dblog entry is the one that resulted in the 422 response. I'm guessing that the "field_media_image.0.target_id: This value should be of the correct primitive type. " message is referring to the bad UUID. It might sound obvious at this point, but if we can figure out where that UUID is coming from, we'll be able to move forward.

https://github.com/Islandora-Devops/islandora_install_profile_demo/blob/64d7813616917b81bf0f5b2cf512eca5f82f8b52/config/install/core.entity_view_display.node.home_page.default.yml#L26-L27
They were added 6 months ago for D9 updates

I'm guessing the UUID should probably be 246ef0cf-cbdc-495a-bc56-c7468b172a81 in both of those lines

Thanks @misilot. But, the mystery deepens.... I don't know why a bad UUID in a config file defining a default home page would make a request to an Islandora Object's field_media_image.

Merged - thanks Tom!

@benglis are you able to retest using  Workbench now that the UUID has been fixed?

I did fix that manually this morning, and tested workbench, with the same errors resulting... I've been trying to rebuild using the new code, but each time I pull down this branch, I still have the misconfigured yml file being delivered.... how can I get the updated / merged file ?  I tried a make clean, than I even reset the system to a checkpoint prior to downloading... no success so far...

I am still unable to pull down the adjusted configurations.  Does anybody have any other suggestions about the error?

I will fire this up after lunch today and see if I can find an alternate syntax that works. I will also add the -l $(SITE) from Tom's comment in #258

Alright, I pulled in the upstream changes to fix the merge conflict, too.
My testing, starting from make clean:
make local-install-profile resulted in a clean build that looks like sandbox.islandora.ca, using the install-profile.
then I ran make demo_content and it pumped in the Workbench-sourced demo content.
Then I ran make clean again, and ran make demo-install-profile and it replicated the above test results. Looks solid!
Then I ran make clean again, and make local. This resulted in a clean build, the basic "cats" one, but with no content. Then I ran make demo_content and it pumped in all the Workbench demo content. It fails on solr reindex because solr is misconfigured.
After make clean again, running make demo replicated that last round. Can anyone see what's going on with that Solr and suggest a fix?

@noahwsmith Is this normal for this? I ran the make local-install-profile
...
You are about to:
 * DROP all tables in your 'drupal_default' database.

 // Do you want to continue?: yes.

 [notice] Starting Drupal installation. This takes a while.
 [notice] Performed install task: install_select_language
 [notice] Performed install task: install_select_profile
 [notice] Performed install task: install_load_profile
 [error]  Error importing/updating configuration
 [error]  Error importing/updating configuration
 [notice] Performed install task: install_verify_requirements
 [notice] Performed install task: install_verify_database_ready
 [notice] Performed install task: install_base_system
 [notice] Performed install task: install_bootstrap_full
 [error]  The Flysystem driver is missing.
 [warning] Could not find required jsonld.settings to add default RDF namespaces.
 [warning] The "views_block:members-block_1" was not found

Also notice this message when running a composer install
 Problem 1
    - Root composer.json requires islandora/islandora_install_profile_demo dev-main, found islandora/islandora_install_profile_demo[dev-main] but the package is fixed to dev-april-config-reconciliation (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.

I fear that we've now gone long enough that there are composer dependencies to resolve again. I will rebase this and see if I can replicate your results.

@noahwsmith Is this normal for this? I ran the make local-install-profile
...
You are about to:
 * DROP all tables in your 'drupal_default' database.

 // Do you want to continue?: yes.

 [notice] Starting Drupal installation. This takes a while.
 [notice] Performed install task: install_select_language
 [notice] Performed install task: install_select_profile
 [notice] Performed install task: install_load_profile
 [error]  Error importing/updating configuration
 [error]  Error importing/updating configuration
 [notice] Performed install task: install_verify_requirements
 [notice] Performed install task: install_verify_database_ready
 [notice] Performed install task: install_base_system
 [notice] Performed install task: install_bootstrap_full
 [error]  The Flysystem driver is missing.
 [warning] Could not find required jsonld.settings to add default RDF namespaces.
 [warning] The "views_block:members-block_1" was not found
 [error]  Error getting JWT token for message. Check JWT Configuration.

Yes, all this is fine.

Also notice this message when running a composer install
 Problem 1
    - Root composer.json requires islandora/islandora_install_profile_demo dev-main, found islandora/islandora_install_profile_demo[dev-main] but the package is fixed to dev-april-config-reconciliation (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.

Running make clean and make local-install-profile does not hit this issue for me. (And I fixed the demo data problem you can see in the output: https://gist.github.com/noahwsmith/2a760c0c8ef71aa6c1f76c42619330fc) How can I replicate your results?
Running make demo_content pumped content into this site, too, so it seems to be working on my machine.

Running make demo and go to https://islandora.traefik.me/node/15 and click edit, make a change and save. Then white screen issue.

Watchdog logs

I cleared the logs just before clicking save to isolate the error messages to just this issue.
# first error to fire
Notice: unserialize(): Error at offset 12100 of 72069 bytes in Drupal\Component\Serialization\PhpSerialize::decode() (line 21 of /var/www/drupal/web/core/lib/Drupal/Component/Serialization/PhpSerialize.php)
#0 /var/www/drupal/web/core/includes/bootstrap.inc(600): _drupal_error_handler_real()
...

# 3rd error
Drupal\Core\Database\DatabaseExceptionWrapper: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'content_translation_uid' in 'field list': INSERT INTO {node_field_data} (nid, vid, type, langcode, status, uid, title, created, changed, promote, sticky,
....

make config-import results in an error
 [warning] array_key_exists() expects parameter 2 to be array, bool given ContentTranslationHandler.php:271
In DefaultTableMapping.php line 391:
  Table information not available for the 'field_coordinates' field.

@DonRichards the errors you are reporting look related to the errors I was seeing in #264.

On make local I got a working build, but with the familiar  [warning] The "views_block:members-block_1" was not found and a more troubling PHP Fatal error:  Uncaught TYPO3\PharStreamWrapper\Exception: Unexpected file extension in "phar:///usr/bin/drush/bin/core/modules/mysql/src/Driver/Database/mysql//Delete.php" in /var/www/drupal/web/core/lib/Drupal/Core/Security/PharExtensionInterceptor.php:44
On make demo I got a Segmentation Fault on my 2019 Macbook Pro, running Monteray.
make local-install-profile built and ran well, but it looks like jp2s don't create derivatives anymore.

After wiping out everything on my local and tried again. It still ends with an error. I also experienced the error @ajstanley mentioned. as well as this.
...
matomo is not installed.  Skipping configuration

 // Do you want to update standalone_url key in media.settings config?: yes.

 [error]  TYPO3\PharStreamWrapper\Exception: Unexpected file extension in "phar:///usr/bin/drush/bin/core/modules/mysql/src/Driver/Database/mysql//ExceptionHandler.php" in Drupal\Core\Security\PharExtensionInterceptor->assert() (line 44 of /var/www/drupal/web/core/lib/Drupal/Core/Security/PharExtensionInterceptor.php).
PHP Fatal error:  Uncaught TYPO3\PharStreamWrapper\Exception: Unexpected file extension in "phar:///usr/bin/drush/bin/core/modules/mysql/src/Driver/Database/mysql//ExceptionHandler.php" in /var/www/drupal/web/core/lib/Drupal/Core/Security/PharExtensionInterceptor.php:44
Stack trace:
#0 /var/www/drupal/vendor/typo3/phar-stream-wrapper/src/Behavior.php(72): Drupal\Core\Security\PharExtensionInterceptor->assert()
#1 /var/www/drupal/vendor/typo3/phar-stream-wrapper/src/Manager.php(110): TYPO3\PharStreamWrapper\Behavior->assert()
#2 /var/www/drupal/vendor/typo3/phar-stream-wrapper/src/PharStreamWrapper.php(421): TYPO3\PharStreamWrapper\Manager->assert()
#3 /var/www/drupal/vendor/typo3/phar-stream-wrapper/src/PharStreamWrapper.php(410): TYPO3\PharStreamWrapper\PharStreamWrapper->assert()
#4 phar:///usr/bin/drush/vendor/composer/ClassLoader.php(444): TYPO3\PharStreamWrapper\PharStreamWrapper->url_stat()
#5 phar:///usr/bin/drush/vendor/composer/ClassLoader.php(444): include()
#6 phar:///usr/bin/drush/vendor/composer/ClassLoader.php(32 in /var/www/drupal/web/core/lib/Drupal/Core/Security/PharExtensionInterceptor.php on line 44

....

=========== LOGIN ===========
http://islandora.traefik.me/user/reset/1/1655901853/HfBBeMlBv8_-9q8tpvLvCDeb7IAR045PCOVE2URBPCY/login
PHP Fatal error:  Uncaught TYPO3\PharStreamWrapper\Exception: Unexpected file extension in "phar:///usr/bin/drush/bin/core/modules/mysql/src/Driver/Database/mysql//Delete.php" in /var/www/drupal/web/core/lib/Drupal/Core/Security/PharExtensionInterceptor.php:44
Stack trace:
#0 /var/www/drupal/vendor/typo3/phar-stream-wrapper/src/Behavior.php(72): Drupal\Core\Security\PharExtensionInterceptor->assert()
#1 /var/www/drupal/vendor/typo3/phar-stream-wrapper/src/Manager.php(110): TYPO3\PharStreamWrapper\Behavior->assert()
#2 /var/www/drupal/vendor/typo3/phar-stream-wrapper/src/PharStreamWrapper.php(421): TYPO3\PharStreamWrapper\Manager->assert()
#3 /var/www/drupal/vendor/typo3/phar-stream-wrapper/src/PharStreamWrapper.php(410): TYPO3\PharStreamWrapper\PharStreamWrapper->assert()
#4 phar:///usr/bin/drush/vendor/composer/ClassLoader.php(444): TYPO3\PharStreamWrapper\PharStreamWrapper->url_stat()
#5 phar:///usr/bin/drush/vendor/composer/ClassLoader.php(444): include()
#6 phar:///usr/bin/drush/vendor/composer/ClassLoader.php(322): Compos in /var/www/drupal/web/core/lib/Drupal/Core/Security/PharExtensionInterceptor.php on line 44
make[1]: *** [login] Error 255
make: *** [local] Error 2

Sorry, I think I misunderstood some of the previous comments. I think the make local is broken at the repo release level as Mark suggested and isn't a problem associated with this PR. JP2s derivatives seems to be working for me on the *install profile commands.
@noahwsmith

make demo-install-profile <-- Builds and appears to be working fine.
make local-install-profile <-- Builds and appears to be working fine.
make demo <-- Broken build process.
make local <-- Broke at the repository level and not this PR and can likely be ignored for this PR.

Mariadb is showing some errors like Access denied for user drupal_default. Other errors on MariaDB were abborted unauthenticated user from matomo, drupal, and fedora.

Ok, so the task here/now is to rebase this and fix make demo? That sounds correct to me too - thanks for getting this back on track...

@noahwsmith Yes. I just spoke with Danny and we hatched out a plan.

Rebase
Shift the make demo-install-profile local-install-profile to be the new default demo & local.
Correct a small help comment on local-install-profile
Remove the unnecessary build/demo-data/ files.
Update any relative documentation
Then reach out to a committer for a review

make local gave the usual
 [error]  The Flysystem driver is missing.
 [warning] Could not find required jsonld.settings to add default RDF namespaces.
 [warning] The "views_block:members-block_1" was not found
 [error]  Error getting JWT token for message. Check JWT Configuration.
 [error]  Error getting JWT token for message. Check JWT Configuration.

But worked (with the collection caveat mentioned above)
Similar results with make demo
Nice work all!

@ajstanley Yeah, not sure why that's complaining but it does seem to be building correctly. If you're satisfied with this as well I'll leave it up to you to "approve & merge" because I contributed to the code.

^ Thanks @DonRichards and @ajstanley for seeing this across the line...

make local gave the usual
 [error]  The Flysystem driver is missing.
 [warning] Could not find required jsonld.settings to add default RDF namespaces.
 [warning] The "views_block:members-block_1" was not found
 [error]  Error getting JWT token for message. Check JWT Configuration.
 [error]  Error getting JWT token for message. Check JWT Configuration.

But worked (with the collection caveat mentioned above) Similar results with make demo
Nice work all!

@ajstanley @DonRichards
make local gives me the error:

Is this totally fine? Because I am getting errors on /_flysystem/fedora/styles/large/fedora/..../ files when I am using my own Drupal repo. Isn't it related to above error? -> The Flysystem driver is missing.

In the Starter Site, we have these explained: https://github.com/Islandora-Devops/islandora-starter-site#warningserrors-during-installation
An FYI, we're encouraging people to install the starter site rather than the install profile as the Install Profile is about to be deprecated.
Feel free to join the Slack workspace and post in support if you want help.


Change all-your-base canonical data to use an expected key.

This conforms with the majority of the canonical data files I have seen.

Seems reasonable. This will require tracks to update their generators, but the change required should be straightforward and obvious.

I made this change to avoid a special case in the ocaml generator that I'm writing. Consistency is likely to help simplify any other generators too.


(issue #197) remove Book Appointment Component from Contact folder and added to Book Appointment Component folder

Sorry for the mistake

https://www.clueless.tech/profile/40214392 @Rajdip019


Adding price is right app

Description
Adding price is right app
Copilot

🤖 Generated by Copilot at c9cf619
Summary
📝🐍📺

This pull request adds a new applet called Price Is Right, which shows a bid amount on the Tidbyt device. It includes a manifest.yaml file with the applet metadata, and a price_is_right.star file with the applet code. The code uses the Tidbyt API modules to create the graphical output and the configuration schema.

Price Is Right applet
Starlark code and manifest
Autumn fun on Tidbyt

Walkthrough

Create and populate a manifest file for the Price Is Right applet with metadata (link)
Implement the main logic of the applet in Starlark, using the render, base64, and schema modules (link)

:shipit:


Please inherit ReportDto

I tried to "push" some new features without success.
def get_reports_summary(start, end):
    """Send a "deprecated" request to clockify to sent summary report.
    The start date will start 00:00:00 on the given start and will end 23:59:59
    on the given end date. Time will be handled automatically.S

    :param start: The date when the report should start with the report in format yyyy-MM-dd
    :param end: The date when the report should end with the report in format yyyy-MM-dd
    :return: tuple holding engineers, total amount of all projects and detailed information sorted for each project
    """
    url = base_url_api0 + "/workspaces/{}/reports/summary/".format("5e309aa8b128ac31f259ee0d")

    data = {
        "startDate":f"{start}T00:00:00.000Z",
        "endDate": f"{end}T23:59:59.999Z",
        "me": "false",
        "userGroupIds": [],
        "userIds": [],
        "projectIds": [],
        "clientIds": [],
        "taskIds": [],
        "tagIds": [],
        "billable": "BOTH",
        "includeTimeEntries": True,
        "zoomLevel": "month",
        "description": "",
        "archived": "Active",
        "roundingOn": False #rounding is only working a upgraded version which needs to be paied. No effect on current plan
    }
    response = requests.post(url, data=json.dumps(data), headers=headers)
    response.encoding = 'utf-8'
    # print(response.text)
    rjs = response.json()
    projects = set()
    engineers = set()
    registers = []
    for entry in rjs['timeEntries']:
        username = entry['user']['name']
        description = entry['description']
        clientName = entry['clientName']
        date = entry['timeInterval']['start']  # 2019-07-18T09:06:00Z
        date = dateutil.parser.parse(date)  # datetime
        enddate = dateutil.parser.parse(entry['timeInterval']['end'])
        hourlyRate = entry['hourlyRate']['amount']
        duration = hours_from_duration(entry['timeInterval']['duration'])
        if not isinstance(duration, float):
            continue  # duration is None when the clock is running, so ignore it
        try:
            project = entry['project']['name']
        except TypeError: #  TypeError: 'NoneType' object is not subscriptable
            continue
        projects.add(project)
        engineers.add(username)
        registers.append((project, username, duration, hourlyRate, description, date, enddate, clientName))
    return list(projects), list(engineers), registers, rjs['totalBillable']`

Wait... Is it Python? Could you elaborate more?

Closed due to lack of explanantion


update links in SEE MORE button + open external links on new tab

Some of the publication links are broken or accessed through QUT library, so I replaced them with the public links.
Added a new publication from Autism project
Made links clickable in the resources' metadata table
External links were made to open in a new tab

A lot of UniMelb resources are either out of date or really vague. I don't know what to do with them

A lot of UniMelb resources are either out of date or really vague. I don't know what to do with them

Yeah, it's a bit tricky.
A lot of the single-platform listings e.g. Flickr that are included in ADOReD (according to https://www.ado.eresearch.unimelb.edu.au/data-and-methods/) we could probably remove the individual listings and perhaps copy a list of data sources from their website and add it to the ADOReD blurb.
It might be a good idea to send the UniMelb team a list of the pages for their resource and ask that they either update them or send us instructions (delete, merge, update with provided details) for them so we can wrap up the ADO time with up-to-date info. @mctakahashi , what do you think?

Thanks Alice and Betsy!


Maneuver Behavior

CARLA version: 0.9.12
Platform/OS: Windows 10
I would like to perform a maneuver using one of the default agents (Basic, Behavior). To be more specific I would like to perform an overtake. Is it possible or I can achieve that only from autopilot(using the traffic control manager)

I have a situation similar to your one. So, I created a new example of vehicle controlling based on existing automatic_control.py example. In my example, I describe new behavior type that I call it Custom. May be you will need to do something similar to achieve your own purpose. Here is my example.

@barasm-hita  Thank you a lot for your response. However, in a previous commit, there was a method in the behavior agent class that was performing an overtake. I cannot understand why it was removed. Do you have any clue about it?

@iammix You're welcome. Not really, unfortunately I have no idea about the removal. Its better to ask the main development team, but maybe they have other plans to recover it with better performance in later versions.

@hitabm Can you provide the example code for a reference. Because it is not available now.

@hitabm Can you provide the example code for a reference. Because it is not available now.

Sure, sorry for the corrupted link. I did a fix on it you can try it now. Same here.


*: refresh the lease TTL correctly when a leader is elected.

The new leader needs to refresh with an extened TTL to gracefully handle
the potential concurrent leaders issue. Clients might still send keep alive
to old leader until the old leader itself gives up leadership at most after
an election timeout.

lgtm once CI passes

fixing CI.

lgtm after test passes.


Function menu on source detail page

The folio/feast selectors and the list of utilities under those should be implemented.

implemented in 70d9e2433c14f8f5f1cbbdff9871f1a6f0d21a43


Feature request: Undo functionality

I'm building a offline-first React Native app using redux-offline. Right now I'm trying to find the best way to provide undo functionality (if there's a good way to do this already please let me know). What I'm suggesting is something like this:

A configurable delay before the first request is fired when online (let's say 10 seconds).
Expose an undo action creator that (a) triggers an action for the redux-offline reducer to remove the most recent item in the outbox and (b) triggers the rollback action with the associated metadata of that item.
Expose a selector that indicates whether an undo is possible (i.e. there's at least one item in the outbox that has not yet triggered a request to the server).

A bit late, but this is not something I am interested in adding.

@wacii Could you give an idea on how to achieve this functionality at least? If I could just trigger an action that removed the last added item from the outbox I'd be happy. The rest I could take care of easily.

There is no action for that, you would have to add one yourself. By default, the offline actions are stored in an array at state.offline.outbox. If you wanted to remove the latest offline action, just get rid of the last item in that array.


Supported Actions

Is there a method for listing the supported actions on a gateway?

No, not as such. However most of the methods have a corresponding supports...() method.  Such as supportsAuthorize() to determine if there is an authorize() method (and returns a boolean). So for each given method the same thing can be achieved.

Well would something like an array of supported actions for each gateway be helpful?
This thread was more an interest into whether its something that people would find helpful rather than a feature request.
If it was deemed helpful we would have considered looking into it as a p/r

What I would probably find most useful is a method to return a "details" object for a gateway.
That would include the list of methods supported, a list of initialization parameters required, and a flag to indicate the gateway type (redirect, direct card, either/both, manual, etc).
At this stage that's probably an omnipay 3.0 change but if you want to prep a PR anyway then I will take a look at it. We have to touch each gateway for 3.0 because of the move away from Guzzle 3 so that would be an ideal time to incorporate other cross-gateway changes.

Whats the timeline for 3.0?

I'm not sure at this stage -- probably check with the mailing list or check the 3.0 issues hereabouts.


Since newest upgrades friends fall threw map every time

My friends allways fall thre the map when they enter the building

Make sure everyone has the same config, and if you're using custom moons via LE you have to use Lethal Expansion Core (Lethal Expansion on its own is incompatible)


Missing word on Helm chart install registry tooltip

This should say "Cluster Container Registry," not "Cluster Container."

Verified on v2.7.0-rc8
The helper text is now correct


cursor misalignment on long words

Cursor very subtly starts misaligning around 8-10 characters deep into a word. By 20 letters it pretty obvious.


iPad Sidebar - "No Trip Selected" should be fancier

Maybe have a "add new trip button" or something like that.
It could read: "select a trip from the sidebar, or (in blue) [add new trip]"
something better than "no trip selected, pls figure it out"

Saving to next update, probably will have something to do with #89


[TimberCommons] Make the valve pausable

Check if there is a pausable component on the object and react to the pause/resume actions. A paused valve should maintain all its settings, but don't move water until resumed.

This is now fixed. The valves can be paused.


Doesn’t work in a vm

Hi,
I recently installed Kickthem0ut and When I try To kick somebody Out there Isn’t Any Ip, only 3 ip’s, Which is Gateway and other 2 that are unnamed, And I Run Kali On VMware

Hi there. What type of network connection have you setup on your VMware VM? This usually occurs when you haven't correctly configured your VM's network settings. Thanks.


Unable to remove device

This form is for reporting bugs.  If you have encountered a bug, you should
generally have some log messages or device diagnostics to show something is
going wrong.  If your problem is more of a question or a request for help,
then Discussions is
probably a more suitable venue.
Describe the bug
My device is reset, and now I cannot add it anymore, for some reason there is any issue with the local key. So I try to remove the device but this gives me an error.
Logger: homeassistant.config_entries
Source: config_entries.py:819
First occurred: 21:49:41 (8 occurrences)
Last logged: 21:49:41

Error unloading entry medion_robot_s20_sw for vacuum
Error unloading entry medion_robot_s20_sw for sensor
Error unloading entry medion_robot_s20_sw for button
Error unloading entry medion_robot_s20_sw for select
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 819, in async_unload
    result = await component.async_unload_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/vacuum/__init__.py", line 181, in async_unload_entry
    return await component.async_unload_entry(entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 201, in async_unload_entry
    raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!

To Reproduce
try to remove a not connected device
Expected behavior
device will be removed
Additional context
also I have issues changing the local key.
If the bug involves a device, then please include device diagnostics from
Settings / Devices & Services / Tuya Local (your device) / "1 device"
"data": {
    "name": "medion_robot_s20_sw",
    "type": "medion_s20_vacuum",
    "device_id": "**REDACTED**",
    "device_cid": "",
    "local_key": "**REDACTED**",
    "host": "**REDACTED**",
    "protocol_version": 3.3,
    "tinytuya_version": "1.15.1",
    "api_version_set": 3.3,
    "api_version_used": 3.3,
    "api_working": false,
    "status": {},
    "cached_state": {
      "updated_at": 0
    },
    "pending_state": {},
    "connected": false,
    "force_dps": [],
    "home_assistant": {
      "name": "medion_robot_s20_sw",
      "name_by_user": null,
      "disabled": false,
      "disabled_by": null,
      "entities": [
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": null,
          "device_class": null,
          "original_device_class": "battery",
          "icon": null,
          "unit_of_measurement": "%",
          "state": {
            "entity_id": "sensor.medion_robot_s20_sw_battery",
            "state": "unavailable",
            "attributes": {
              "restored": true,
              "state_class": "measurement",
              "device_class": "battery",
              "friendly_name": "Battery",
              "supported_features": 0,
              "unit_of_measurement": "%"
            },
            "last_changed": "2024-09-12T17:32:12.184489+00:00",
            "last_reported": "2024-09-16T19:46:35.901145+00:00",
            "last_updated": "2024-09-16T19:46:35.901145+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "diagnostic",
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "unit_of_measurement": "%",
          "state": {
            "entity_id": "sensor.medion_robot_s20_sw_edge_brush",
            "state": "unavailable",
            "attributes": {
              "restored": true,
              "state_class": "measurement",
              "friendly_name": "Edge brush",
              "supported_features": 0,
              "unit_of_measurement": "%"
            },
            "last_changed": "2024-09-12T17:32:12.186167+00:00",
            "last_reported": "2024-09-16T19:46:35.901443+00:00",
            "last_updated": "2024-09-16T19:46:35.901443+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "diagnostic",
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "unit_of_measurement": "%",
          "state": {
            "entity_id": "sensor.medion_robot_s20_sw_filter",
            "state": "unavailable",
            "attributes": {
              "restored": true,
              "state_class": "measurement",
              "friendly_name": "Filter",
              "supported_features": 0,
              "unit_of_measurement": "%"
            },
            "last_changed": "2024-09-12T17:32:12.187330+00:00",
            "last_reported": "2024-09-16T19:46:35.901678+00:00",
            "last_updated": "2024-09-16T19:46:35.901678+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "diagnostic",
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "unit_of_measurement": "m\u00b2",
          "state": {
            "entity_id": "sensor.medion_robot_s20_sw_clean_area",
            "state": "unavailable",
            "attributes": {
              "restored": true,
              "state_class": "measurement",
              "friendly_name": "Clean area",
              "supported_features": 0,
              "unit_of_measurement": "m\u00b2"
            },
            "last_changed": "2024-09-12T17:32:12.188566+00:00",
            "last_reported": "2024-09-16T19:46:35.901898+00:00",
            "last_updated": "2024-09-16T19:46:35.901898+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "diagnostic",
          "device_class": null,
          "original_device_class": "duration",
          "icon": null,
          "unit_of_measurement": "min",
          "state": {
            "entity_id": "sensor.medion_robot_s20_sw_clean_time",
            "state": "unavailable",
            "attributes": {
              "restored": true,
              "state_class": "measurement",
              "device_class": "duration",
              "friendly_name": "Clean time",
              "supported_features": 0,
              "unit_of_measurement": "min"
            },
            "last_changed": "2024-09-12T17:32:12.190193+00:00",
            "last_reported": "2024-09-16T19:46:35.902120+00:00",
            "last_updated": "2024-09-16T19:46:35.902120+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "config",
          "device_class": null,
          "original_device_class": "restart",
          "icon": null,
          "unit_of_measurement": null,
          "state": {
            "entity_id": "button.medion_robot_s20_sw_reset_edge_brush",
            "state": "unavailable",
            "attributes": {
              "restored": true,
              "device_class": "restart",
              "friendly_name": "Reset edge brush",
              "supported_features": 0
            },
            "last_changed": "2024-09-12T17:32:12.194595+00:00",
            "last_reported": "2024-09-16T19:46:35.902550+00:00",
            "last_updated": "2024-09-16T19:46:35.902550+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "config",
          "device_class": null,
          "original_device_class": "restart",
          "icon": null,
          "unit_of_measurement": null,
          "state": {
            "entity_id": "button.medion_robot_s20_sw_reset_filter",
            "state": "unavailable",
            "attributes": {
              "restored": true,
              "device_class": "restart",
              "friendly_name": "Reset filter",
              "supported_features": 0
            },
            "last_changed": "2024-09-12T17:32:12.195636+00:00",
            "last_reported": "2024-09-16T19:46:35.902893+00:00",
            "last_updated": "2024-09-16T19:46:35.902893+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "config",
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "unit_of_measurement": null,
          "state": {
            "entity_id": "button.medion_robot_s20_sw_factory_reset",
            "state": "unavailable",
            "attributes": {
              "restored": true,
              "friendly_name": "Factory reset",
              "supported_features": 0
            },
            "last_changed": "2024-09-12T17:32:12.197070+00:00",
            "last_reported": "2024-09-16T19:46:35.903208+00:00",
            "last_updated": "2024-09-16T19:46:35.903208+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": null,
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "unit_of_measurement": null,
          "state": {
            "entity_id": "vacuum.medion_robot_s20_sw",
            "state": "unavailable",
            "attributes": {
              "restored": true,
              "fan_speed_list": [
                "normal",
                "strong"
              ],
              "supported_features": 14271
            },
            "last_changed": "2024-09-12T17:32:12.200879+00:00",
            "last_reported": "2024-09-16T19:46:35.900445+00:00",
            "last_updated": "2024-09-16T19:46:35.900445+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "config",
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "unit_of_measurement": null,
          "state": {
            "entity_id": "select.medion_robot_s20_sw_mop_control",
            "state": "unavailable",
            "attributes": {
              "restored": true,
              "options": [
                "Low",
                "Medium",
                "High"
              ],
              "icon": "mdi:format-color-fill",
              "friendly_name": "Mop control",
              "supported_features": 0
            },
            "last_changed": "2024-09-12T17:32:12.192567+00:00",
            "last_reported": "2024-09-16T19:46:44.040916+00:00",
            "last_updated": "2024-09-16T19:46:44.040916+00:00"
          }
        }
      ]
    }
  }
}

Please check if there are messages from Tuya Local in the Home
Assistant log (Settings / System / Logs), and include those too.
Logger: homeassistant.config_entries
Source: config_entries.py:819
First occurred: 21:49:41 (8 occurrences)
Last logged: 21:49:41

Error unloading entry medion_robot_s20_sw for vacuum
Error unloading entry medion_robot_s20_sw for sensor
Error unloading entry medion_robot_s20_sw for button
Error unloading entry medion_robot_s20_sw for select
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 819, in async_unload
    result = await component.async_unload_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/vacuum/__init__.py", line 181, in async_unload_entry
    return await component.async_unload_entry(entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 201, in async_unload_entry
    raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!

If applicable, add screenshots to help explain your problem.

If the cause was this integration, I would expect a stack trace in the log mentioning an unhandled failure in this integration.  With the current info, it seems like Home Assistant itself has gotten into an inconsistent state, but there might have been a message implicating this integration earlier in the log, when the device failed to load.

I have also those 2
This error originated from a custom integration.

Logger: custom_components.tuya_local.device
Source: custom_components/tuya_local/device.py:575
integration: Tuya Local (documentation, issues)
First occurred: September 12, 2024 at 19:32:56 (24254 occurrences)
Last logged: September 16, 2024 at 21:46:41

Failed to fetch device status for medion_robot_s20_sw

This error originated from a custom integration.

Logger: custom_components.tuya_local.device
Source: custom_components/tuya_local/device.py:451
integration: Tuya Local (documentation, issues)
First occurred: September 12, 2024 at 19:32:15 (11 occurrences)
Last logged: September 16, 2024 at 21:49:05

medion_robot_s20_sw protocol error 901: Network Error: Unable to Connect
Test protocol error 901: Network Error: Unable to Connect

But that doesn't tell me much.
I think I will try to reinstall the integration later.

901 is a connection failure, either due to a networking issue, or some other app or integration blocking the local connection to the device.

this might makes sence,
a factory reset was applied, this means also a new id, but reconfigure does not allow to change the ID.
next to that, there were some special characters in my local key

Ei`/B.`DvM}p=B[H

(backquotes are hard to escape in github)
anyway, after a factory reset again I got a more normal key and now delete and add work without any issues.
So my assumption here is that backquotes are not allowed by the integration

It seems that the issue is resolved for you, and since there isn't enough info to followup, I will close this for now, though I expect there was something happening during the setup to leave it in an incomplete state.


Fix GCC 9.2 Warnings [-Wdeprecated-copy].

I think defaulted and deleted functions are not compatible with C++03.
Are you planning to drop pre C++11 in near future?

We need C++03 for the Mac port (gcc-4.2) and Windows port (gcc-4.6) as they are now.

Merged except the GCC patch which has been replaced by 4ee6ec4aee907e7bdc2f4989f52f061ff518a4a2