Cache module

Finally figured out a strategy for per-document caching that I’m happy with:

A new Cache module that has child modules.
The Cache module looks at IDocument.Source and the hash of all input documents and stores them for the next run. The first time through every input document is a cache miss so it runs them all through the child modules and then saves the output document for each input source.
If on the next run the source and hash of a given input document match the previous run, the saved output document for that source is output instead of sending the input document through the modules.
Cache should have a option to either run each input cache miss document through the child modules one at a time or all at once (similar to other modules with child modules).
Need a way to tell the engine not to dispose the output documents that are being cached for the next run. And need to make sure they get disposed when no longer being stored in the cache. What if two cache modules back to back? Probably need some kind of persistence no-dispose reference counter.
Need a way to expand the set of inputs considered for a cache hit to say “if the input document source and hash match the previous run and all these other documents also match...” - that’ll be useful in scenarios like Razor where we can key the cache off the input Razor document but also trigger a miss if any _*.cshtml documents change (which could be captured by another pipeline specifically to guide the cache).
Add a method to get a hash for the content to the content provider and then surface that in the document. The hash can/could be itself cached for some types of content providers.
Hash should be combined at the document level with the normal .GetHashCode() for each metadata key and value (excluding settings).
Need to consider if the child modules use documents from other pipelines how to handle that - maybe specifying other documents to trigger a miss if they change as described above is sufficient.
The Cache module should use a metadata value/setting to disable and clear it. This would dovetail nicely with the other issue for manual regeneration, something like a “Press c to regenerate without caching”.
Consider splitting Razor into two modules, one for compilation and another for rendering. This would allow the Cache module to aggressively cache Razor compilation since that doesn’t actually rely on other documents and pipelines - it may even be performed during the process phase. Then the Razor assembly for each page would get stored as document content (maybe a new content provider for dynamic assemblies?) and could be used in the render phase without caching (or with caching that looks at all other dependent pipelines).

I think the approach of making caching a module concern rather than try and deal with it more broadly in the engine or pipeline will be more powerful and flexible.

The caching model and a global persistent cache (in the form of storing hash codes for files in the output directory) have both been implemented for a while.


frameit 3.0 not work in FastFile

i install frameit 3.0.0, but write that not upgrade
frameit install 3.0.0, but write that not upgrade
### Stack

| Key                 | Value                                       |
| ------------------- | ------------------------------------------- |
| OS                  | 10.12                                       |
| Ruby                | 2.3.1                                       |
| Bundler?            | false                                       |
| Xcode Path          | /Applications/Xcode.app/Contents/Developer/ |
| Xcode Version       | 8.0                                         |
| Git                 | git version 2.8.4 (Apple Git-73)            |
| Installation Source | /usr/local/bin/fastlane                     |
| Host                | Mac OS X 10.12 (16A323)                     |
| Ruby Lib Dir        | /usr/local/Cellar/ruby/2.3.1_2/lib          |
| OpenSSL Version     | OpenSSL 1.0.2j  26 Sep 2016                 |

**No Appfile found**

### fastlane gems

| Gem                 | Version | Update-Status       |
| ------------------- | ------- | ------------------- |
| credentials_manager | 0.16.2  | ✅ Up-To-Date        |
| spaceship           | 0.36.1  | ✅ Up-To-Date        |
| fastlane_core       | 0.53.0  | ✅ Up-To-Date        |
| deliver             | 1.14.3  | ✅ Up-To-Date        |
| snapshot            | 1.16.2  | ✅ Up-To-Date        |
| frameit             | 2.8.0   | 🚫 Update availaible |
| pem                 | 1.3.2   | ✅ Up-To-Date        |
| cert                | 1.4.3   | ✅ Up-To-Date        |
| sigh                | 1.11.2  | ✅ Up-To-Date        |
| produce             | 1.2.1   | ✅ Up-To-Date        |
| gym                 | 1.11.3  | ✅ Up-To-Date        |
| pilot               | 1.11.0  | ✅ Up-To-Date        |
| scan                | 0.13.1  | ✅ Up-To-Date        |
| supply              | 0.7.1   | ✅ Up-To-Date        |
| match               | 0.8.1   | 🚫 Update availaible |
| screengrab          | 0.5.5   | ✅ Up-To-Date        |
| fastlane            | 1.106.0 | ✅ Up-To-Date        |

having this error
/usr/local/Cellar/ruby/2.3.1_2/lib/ruby/2.3.0/rubygems/dependency.rb:319:in `to_specs': Could not find 'frameit' (< 3.0.0, >= 2.8.0) - did find: [frameit-3.0.0] (Gem::LoadError)
Checked in 'GEM_PATH=/Users/Shared/Jenkins/.gem/ruby/2.3.0:/usr/local/lib/ruby/gems/2.3.0:/usr/local/Cellar/ruby/2.3.1_2/lib/ruby/gems/2.3.0', execute `gem env` for more information
	from /usr/local/Cellar/ruby/2.3.1_2/lib/ruby/2.3.0/rubygems/specification.rb:1438:in `block in activate_dependencies'
	from /usr/local/Cellar/ruby/2.3.1_2/lib/ruby/2.3.0/rubygems/specification.rb:1427:in `each'
	from /usr/local/Cellar/ruby/2.3.1_2/lib/ruby/2.3.0/rubygems/specification.rb:1427:in `activate_dependencies'
	from /usr/local/Cellar/ruby/2.3.1_2/lib/ruby/2.3.0/rubygems/specification.rb:1409:in `activate'
	from /usr/local/Cellar/ruby/2.3.1_2/lib/ruby/2.3.0/rubygems/core_ext/kernel_gem.rb:68:in `block in gem'
	from /usr/local/Cellar/ruby/2.3.1_2/lib/ruby/2.3.0/rubygems/core_ext/kernel_gem.rb:67:in `synchronize'
	from /usr/local/Cellar/ruby/2.3.1_2/lib/ruby/2.3.0/rubygems/core_ext/kernel_gem.rb:67:in `gem'
	from /usr/local/bin/fastlane:22:in `<main>'

Thanks for reporting this, I'll push a fix in a minute 👍

https://github.com/fastlane/fastlane/pull/6701
https://github.com/fastlane/fastlane/pull/6702
Almost ready

big thanks!!!

Cool, does it work for you now?


Sample for updating the defined capacity of an LPAR

Thanks for those samples who helped me a lot to retrieve LPAR/Images/CPC/etc... parameters.
I now want to update the Defined capacity of an LPAR through BCPII. I know how to do it with the previous BCPII method but do not find how to do it with this new way of working ?
Can you provide a sample for it ?
Thanks,
François

Hi François,
If you look at the data model section under LPAR object, scroll a little bit, you'll see defined-capacity property. The qualifier column for the property has a w indicating you can update this property.  To update a property you would invoke the Update Logical Partitions Properties REST API (POST /api/logical-partitions/{logical-partition-id}) and pass in the defined-capacity and its new value in the corresponding Request body contents.
The code flow would be something like this (re-using existing logic in the RXQUERY1.rexx sample):

Use getLocalCPCInfo or GetCPCInfo to obtain the CPCuri  and the CPCTargetName of the CPC the lpar is on. (need as input for the next step - 2)
Use GetlocalLPARInfo or getLPARInfo to obtain the LPARuri and the LPARTargetName of the lpar you would like to update. (needed as input for the next step - 3)
issue the Update Logical Partitions Properties REST API:

       userRequest.httpmethod = HWI_REST_POST
       userRequest.uri = LparUri
       userRequest.requestbody = '{"defined-capacity":newValue}'
                         <------ newValue is an integer representing the new value
       userRequest.targetname = LPARTargetName

       userRequest.encoding =
           1 (decimal)/HWI_ENCODING_UTF8(constant) for UTF-8
           2 (decimal)/HWI_ENCODING_IBM1047(constant) for
             IBM-1047
           Default, if initialized to 0, is IBM-1047.

        userRequest.REQUESTTIMEOUT =
             The 4 byte unsigned integer represents the time in
                milliseconds.
              • valid range is from 0 - 0x005265C0 (90 minutes)
           Default, if initialized to 0, is 60 minutes.

         Call HWIREST ->
             Address BCPII "HWIREST userRequest. response."

         Handle response ->
            - the HTTP status and reason codes section for this
               REST API indicates on success you should receive 204

            if RC = 0 & response.httpStatus = 204 Then
               say 'Successful update!'
            else
               call surfaceResponse RC, response.
               (surfaceResponse routine in RXQUERY1.rexx)

Let me know if that makes sense.

As additional guidance for issuing a POST REST API, search for DoPost: in the LPAR Load SYSREXX sample.

I could successfully perform the operation.  Thanks a lot for your your explanations !


Implement View Experiences

Description
This ticket defines functionality and data to be shown when the user views public experiences.
The user scenarios are as follows:

A user clicks the view experience page
A user scrolls through the list of experiences on the page

Definition of Done

Approved, public experiences are shown on the View Experiences page for both non-logged-in and logged-in users.

Tasks

[ ] Using the OH API, obtain all project files with the metadata tag public and approved.
[ ] Parse through all downloaded files and display the following experience fields

[ ] Date created
[ ] Experience description

Note: You will need a json parser to read each experience file and display the necessary data.

@jhlink can I take this up?

Go for it @anoura12 ! I've assigned you the issue

Sorry what's 'parse' through.

@SuziQpid , it means getting all the text in each file and processing it into to some useable form.
However, for this ticket, we assume that all experience data exists in the Django database. Although OpenHumans will possesses some data, the Django database will be the primary source of data.
Logic to send relevant research data to OpenHumans will be established a bit later in the current milestone.


Any migration to react-native?

it would be great!

is there any future plans ?

File this upstream with Quill. I doubt that it would work directly as it relies on browser/DOM objects.

What @alexkrolick said is correct. It is unlikely that Quill will ever be ported to React Native, as it is tied to the browser. Maybe, now that they switched to Parchment, they can consider it. But anyway, the call is on Quill itself to make, not React Quill.
Still, you should be able to run it in a webview 😌.


FDO Abstract: Incrementally building FAIR Digital Objects with Specimen Data Refinery workflows

https://docs.google.com/document/d/1qNvskBAgyK_8nJsA3XtrOF2UzzLFoxxnNo7frKvEGMw/edit#
To be submitted to First International Conference on FAIR Digital Object https://www.fdo2022.org/ by Sunday 2022-07-10.

See:
https://doi.org/10.5281/zenodo.7233688
https://doi.org/10.3897/rio.8.e94349


[Question] Purpose of events lifecycle in Lineage

Hi Team,
I am new to open lineage and I was looking at the open lineage spec and found out that each open lineage activity is recorded by an event which has a Lifecycle from START to COMPLETE. I wanted to know the use of different events and how during the lifecycle ( from START to COMPLETE ) if there are any intermediatery ( e.g PENDING ) events which provide more lineage information.
Since each event potentially has input and output , couldn't lineage information be communicated in just one event. Something like how is shown in the below event. Can anyone please elucidate any how and if intermediatery events can be used to record any more lineage information ( especially by Spark, Airflow )
{
"eventTime": "2020-12-09T23:37:31.081Z",
"run": {
"runId": "3b452093-782c-4ef2-9c0c-aafe2aa6f34d",
},
"job": {
"namespace": "my-scheduler-namespace",
"name": "myjob.mytask",
},
"inputs": [
{
"namespace": "my-datasource-namespace",
"name": "instance.schema.table",
}
],
"outputs": [
{
"namespace": "my-datasource-namespace",
"name": "instance.schema.output_table",
}
],
"producer": "https://github.com/OpenLineage/OpenLineage/blob/v1-0-0/client",
"schemaURL": "https://openlineage.io/spec/1-0-0/OpenLineage.json#/definitions/RunEvent"
}

Please refer to this: https://openlineage.io/docs/1.21.1/spec/object-model#run-state-update and this
https://openlineage.io/docs/1.21.1/spec/run-cycle  and https://openlineage.io/docs/spec/object-model#run-state-update
The standard assume there can be several events relating to a single run, so a backend should be prepared to aggregate the events based on runUuid.


🐛firebase_in_app_messaging. .gradle\caches\transforms-2\files-2.1\68cd8030821684af96bc1be5fd14c743\firebase-inappmessaging-display-20.0.0\AndroidManifest.xml:14:5-20:15: AAPT: error: unexpected element  found in .

Bug report
Describe the bug
A clear and concise description of what the bug is.
Steps to reproduce
Steps to reproduce the behavior:

Go to '...'
'...'
See error or incorrect behavior

Expected behavior
A clear and concise description of what you expected to happen.
Sample project
Providing a minimal example project which demonstrates the bug in isolation from your main App greatly enhances the chance of a timely fix.
Please link to the public repository URL.

Additional context
Add any other context about the problem here.

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
PASTE OUTPUT INSIDE HERE

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
PASTE OUTPUT INSIDE HERE

Hi @DineshTaral12
When opening an issue, please try to provide all of the information indicated in the template.
Closing this issue, since no information has been provided.
Thank you.


Adding resolvers to build.sbt doesn't work

steps
sbt version: 1.3.2, 1.3.0, 1.2.8
problem
when I add a resolver to my build.sbt using
resolvers in ThisBuild += "r1" at "https://jcenter.bintray.com/"

OR
resolvers += "r2" at "https://jcenter.bintray.com/"

resolver is not added. I've checked it via "show fullResolvers"
expectation
Resolver is added and used for artifacts resolution.
notes

I've deleted my ~/.sbt, ~/.ivy, ~/.m2 to be sure no tricky configuration options is getting in the way.
When I create ~/.sbt/repositories file and add url there everything work fine
I've attached super minimal sbt project to reproduce the issue, to do it please run:

$ sbt
sbt> show resolvers
sbt> show fullResolvers

and compare results (I expect that "fullResolvers" list contains all items from "resolvers" list)
My output is:
sbt:minimal-sbt> show resolvers
[info] * r1: https://jcenter.bintray.com/
[info] * r2: https://jcenter.bintray.com/
sbt:minimal-sbt> show fullResolvers
[info] * Raw(ProjectResolver(inter-project, mapped: ))
[info] * FileRepository(local, Patterns(ivyPatterns=Vector(${ivy.home}/local/[organisation]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)([branch]/)[revision]/[type]s/[artifact](-[classifier]).[ext]), artifactPatterns=Vector(${ivy.home}/local/[organisation]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)([branch]/)[revision]/[type]s/[artifact](-[classifier]).[ext]), isMavenCompatible=false, descriptorOptional=false, skipConsistencyCheck=false), FileConfiguration(true, None))
[info] * FileRepository(local-preloaded-ivy, Patterns(ivyPatterns=Vector(/Users/lukoyanov/.sbt/preloaded/[organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]), artifactPatterns=Vector(/Users/lukoyanov/.sbt/preloaded/[organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]), isMavenCompatible=false, descriptorOptional=false, skipConsistencyCheck=false), FileConfiguration(true, None))
[info] * local-preloaded: file:////Users/lukoyanov/.sbt/preloaded/
[info] * public: https://repo1.maven.org/maven2/
[info] * sbt-maven-releases: https://repo.scala-sbt.org/scalasbt/maven-releases/
[info] * sbt-maven-snapshots: https://repo.scala-sbt.org/scalasbt/maven-snapshots/
[info] * URLRepository(typesafe-ivy-releases, Patterns(ivyPatterns=Vector(https://repo.typesafe.com/typesafe/ivy-releases/[organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]), artifactPatterns=Vector(https://repo.typesafe.com/typesafe/ivy-releases/[organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]), isMavenCompatible=false, descriptorOptional=false, skipConsistencyCheck=false), false)
[info] * URLRepository(sbt-ivy-snapshots, Patterns(ivyPatterns=Vector(https://repo.scala-sbt.org/scalasbt/ivy-snapshots/[organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]), artifactPatterns=Vector(https://repo.scala-sbt.org/scalasbt/ivy-snapshots/[organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]), isMavenCompatible=false, descriptorOptional=false, skipConsistencyCheck=false), false)
[success] Total time: 0 s, completed 09.10.2019 23:40:35

project to reproduce
sbt-sample.tar.gz

@lukoyanov Thanks for the report. I agree with your expectation.
There's a setting called useJCenter (default: false) so that's likely interfering with manual addition of JCenter resolver.

@lukoyanov shouldn't rezolvers be added to plugins.sbt?

Well, as far as I remember it's correct to add resolvers to build.sbt.
I didn't find any restrictions in docs:
https://www.scala-sbt.org/1.x/docs/Resolvers.html

@MihaiAnei Thank you for sharing this piece of information. I've ended up adding required repositories into .sbt/repositories file (global configuration).

I can't reproduce this with the attached minimal sbt-sample file. sbt 1.2.8, 1.3.2; the original repeats of JCenter resolvers in the attached file, or two other different resolvers; useCoursier on and off in 1.3.2. All work as expected.
Do you possibly have -Dsbt.override.build.repos=true being set somewhere, like /usr/local/etc/sbtopts? (Installation-dependent, check sbt --help which should report where it is on your install). Or does your organization deploy custom sbt launchers that may set it?

Do you possibly have -Dsbt.override.build.repos=true being set somewhere ...
Indeed, I have this option set to true in /usr/local/etc/sbtopts.

Looks like this was the root cause of the issue. Thank you @ches!

In my case, I had the following in my shell:
SBT_OPTS=-Dsbt.override.build.repos=true

Unset it and it worked! :)


Log errors v0.1.0b5

Everything appears to be working
Logger: homeassistant
Source: /usr/src/homeassistant/homeassistant/runner.py:98
First occurred: 3:28:26 PM (13 occurrences)
Last logged: 3:29:02 PM

Error doing job: Exception in callback MqttConnHelper.on_socket_open.<locals>.call_bk() at /usr/local/lib/python3.9/site-packages/pyduke_energy/realtime.py:299
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/local/lib/python3.9/site-packages/pyduke_energy/realtime.py", line 302, in call_bk
    client.loop_read()
  File "/usr/local/lib/python3.9/site-packages/paho/mqtt/client.py", line 1572, in loop_read
    rc = self._packet_read()
  File "/usr/local/lib/python3.9/site-packages/paho/mqtt/client.py", line 2310, in _packet_read
    rc = self._packet_handle()
  File "/usr/local/lib/python3.9/site-packages/paho/mqtt/client.py", line 2936, in _packet_handle
    return self._handle_publish()
  File "/usr/local/lib/python3.9/site-packages/paho/mqtt/client.py", line 3216, in _handle_publish
    self._handle_on_message(message)
  File "/usr/local/lib/python3.9/site-packages/paho/mqtt/client.py", line 3444, in _handle_on_message
    self.on_message(self, self._userdata, message)
  File "/usr/local/lib/python3.9/site-packages/pyduke_energy/realtime.py", line 168, in _on_msg
    self.rx_msg.set_result((msg.payload.decode("utf8")))
asyncio.exceptions.InvalidStateError: invalid state

Logger: pyduke_energy.realtime
Source: /usr/local/lib/python3.9/site-packages/paho/mqtt/client.py:2404
First occurred: 3:28:26 PM (13 occurrences)
Last logged: 3:29:02 PM

Caught exception in on_message: invalid state

HA version 2021.11.0
Home Assistant Container
python version 3.9.7

Noticed that the HA Integration had 2 devices !?
deleted and reinstalled the HA Integration, now only 1 device
having 2 devices may have been the cause of the errors?
time will tell

I've seen some of these same logs. I'll try to look into what is causing them.
As for the 2 devices, the device in HA used to be tied 1:1 to the day's usage sensor entity. Now that I've added the real-time sensor entity, I had to change the device to be 1:many. That switch was creating 2 devices by default. I put migration code in place that was supposed to consolidate the 2 devices into 1, I guess for some reason it didn't work in your case.

Bump paho-mqtt to 1.6.1 (@emontnemery - #59339)
2021.11.2 may have fixed it

Got some debug logs today of this happening
2021-11-17 09:34:17 DEBUG (MainThread) [pyduke_energy.realtime] Socket readable, calling loop_read()
2021-11-17 09:34:17 DEBUG (MainThread) [pyduke_energy.realtime] Received PUBLISH (d0, q0, r0, m0), 'DESH/P210400903/out/sm/1/live', ...  (128 bytes)
2021-11-17 09:34:17 DEBUG (MainThread) [custom_components.duke_energy_gateway] Ignoring real-time update as still in throttling interval
2021-11-17 09:34:26 DEBUG (MainThread) [pyduke_energy.realtime] Socket readable, calling loop_read()
2021-11-17 09:34:26 DEBUG (MainThread) [pyduke_energy.realtime] Received PUBLISH (d0, q0, r0, m0), 'DESH/P210400903/out/sm/1/live', ...  (128 bytes)
2021-11-17 09:34:27 DEBUG (MainThread) [pyduke_energy.realtime] Sending PINGREQ
2021-11-17 09:34:27 DEBUG (MainThread) [pyduke_energy.realtime] Watching socket for writability.
2021-11-17 09:34:27 DEBUG (MainThread) [pyduke_energy.realtime] Socket readable, calling loop_read()
2021-11-17 09:34:27 DEBUG (MainThread) [pyduke_energy.realtime] Received PUBLISH (d0, q0, r0, m0), 'DESH/P210400903/out/sm/1/live', ...  (128 bytes)
2021-11-17 09:34:27 ERROR (MainThread) [pyduke_energy.realtime] Caught exception in on_message: invalid state
2021-11-17 09:34:27 ERROR (MainThread) [homeassistant] Error doing job: Exception in callback MqttConnHelper.on_socket_open.<locals>.call_bk() at /usr/local/lib/python3.9/site-packages/pyduke_energy/realtime.py:299
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/local/lib/python3.9/site-packages/pyduke_energy/realtime.py", line 302, in call_bk
    client.loop_read()
  File "/usr/local/lib/python3.9/site-packages/paho/mqtt/client.py", line 1556, in loop_read
    rc = self._packet_read()
  File "/usr/local/lib/python3.9/site-packages/paho/mqtt/client.py", line 2439, in _packet_read
    rc = self._packet_handle()
  File "/usr/local/lib/python3.9/site-packages/paho/mqtt/client.py", line 3033, in _packet_handle
    return self._handle_publish()
  File "/usr/local/lib/python3.9/site-packages/paho/mqtt/client.py", line 3327, in _handle_publish
    self._handle_on_message(message)
  File "/usr/local/lib/python3.9/site-packages/paho/mqtt/client.py", line 3570, in _handle_on_message
    on_message(self, self._userdata, message)
  File "/usr/local/lib/python3.9/site-packages/pyduke_energy/realtime.py", line 168, in _on_msg
    self.rx_msg.set_result((msg.payload.decode("utf8")))
asyncio.exceptions.InvalidStateError: invalid state
2021-11-17 09:34:28 DEBUG (MainThread) [custom_components.duke_energy_gateway] New measurement received: 855.000000
2021-11-17 09:34:28 DEBUG (MainThread) [pyduke_energy.realtime] Socket readable, calling loop_read()

Another one
2021-11-17 09:46:26 DEBUG (MainThread) [pyduke_energy.realtime] Socket readable, calling loop_read()
2021-11-17 09:46:26 DEBUG (MainThread) [pyduke_energy.realtime] Received PUBLISH (d0, q0, r0, m0), 'DESH/P210400903/out/sm/1/live', ...  (128 bytes)
2021-11-17 09:46:26 DEBUG (MainThread) [custom_components.duke_energy_gateway] New measurement received: 853.000000
2021-11-17 09:46:27 DEBUG (MainThread) [pyduke_energy.client] Requesting usage between 2021-11-17T05:00 UTC and 2021-11-18T05:00 UTC
2021-11-17 09:46:34 DEBUG (MainThread) [custom_components.duke_energy_gateway] Finished fetching homeassistant data in 7.585 seconds (success: True)
2021-11-17 09:46:34 DEBUG (MainThread) [pyduke_energy.realtime] Socket readable, calling loop_read()
2021-11-17 09:46:34 DEBUG (MainThread) [pyduke_energy.realtime] Received PUBLISH (d0, q0, r0, m0), 'DESH/P210400903/out/sm/1/live', ...  (128 bytes)
2021-11-17 09:46:34 DEBUG (MainThread) [custom_components.duke_energy_gateway] Ignoring real-time update as still in throttling interval
2021-11-17 09:46:35 DEBUG (MainThread) [pyduke_energy.realtime] Socket readable, calling loop_read()
2021-11-17 09:46:35 DEBUG (MainThread) [pyduke_energy.realtime] Received PUBLISH (d0, q0, r0, m0), 'DESH/P210400903/out/sm/1/live', ...  (128 bytes)
2021-11-17 09:46:35 ERROR (MainThread) [pyduke_energy.realtime] Caught exception in on_message: invalid state
2021-11-17 09:46:35 ERROR (MainThread) [homeassistant] Error doing job: Exception in callback MqttConnHelper.on_socket_open.<locals>.call_bk() at /usr/local/lib/python3.9/site-packages/pyduke_energy/realtime.py:299
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/local/lib/python3.9/site-packages/pyduke_energy/realtime.py", line 302, in call_bk
    client.loop_read()
  File "/usr/local/lib/python3.9/site-packages/paho/mqtt/client.py", line 1556, in loop_read
    rc = self._packet_read()
  File "/usr/local/lib/python3.9/site-packages/paho/mqtt/client.py", line 2439, in _packet_read
    rc = self._packet_handle()
  File "/usr/local/lib/python3.9/site-packages/paho/mqtt/client.py", line 3033, in _packet_handle
    return self._handle_publish()
  File "/usr/local/lib/python3.9/site-packages/paho/mqtt/client.py", line 3327, in _handle_publish
    self._handle_on_message(message)
  File "/usr/local/lib/python3.9/site-packages/paho/mqtt/client.py", line 3570, in _handle_on_message
    on_message(self, self._userdata, message)
  File "/usr/local/lib/python3.9/site-packages/pyduke_energy/realtime.py", line 168, in _on_msg
    self.rx_msg.set_result((msg.payload.decode("utf8")))
asyncio.exceptions.InvalidStateError: invalid state

There more but they similar to this. Seems to happen in bursts over 15-30 minutes.
One thing that stands out to me is that these timestamps are very close together. It might be possible we are receiving events too fast for the processing to handle at times.

FWIW - this won't cause anything to break, just that one of the readings will be skipped

I believe I've fixed this via mjmeli/pyduke-energy#6 and the corresponding version bump in v0.1.0b6. I'll watch my logs for a few days before closing this though.


math/big: Subsequent calls to Rat.SetString set incorrect value

What version of Go are you using (go version)?

$ go version
go version devel +e4ba40030f Mon Mar 25 22:29:26 2019 +0000 linux/amd64

Does this issue reproduce with the latest release?
No, as far as I know, the issue is limited to the development branch and has not been released. I've bisected the issue to commit e4ba40030f9ba4b61bb28dbf78bb41a7b14e6788.
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/me/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/me/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/lib/go"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build774704940=/tmp/go-build -gno-record-gcc-switches"

What did you do?
See https://play.golang.org/p/o3Oz63_fwGq (doesn't reproduce, because is using the released version) or add the following to src/math/big/rat_test.go with a current build from master:

func TestSubsequentSetStrings(t *testing.T) {
       a := new(Rat)
       a.SetString("-213.09")
       a.SetString("8.192")
       if a.FloatString(3) != "8.192" {
               t.Errorf("0) got %s want 8.192", a.FloatString(3))
       }
}

What did you expect to see?
8.192
What did you see instead?
1024.000

@griesemer I haven't had time to dig into the code yet, but my guess is that e4ba40030f9ba4b61bb28dbf78bb41a7b14e6788 is missing a (re)initialization in some case or another. Let me know if you have any trouble reproducing this.

@aclindsa You're right, pow5 is computed wrongly, it's use previous z.b.abs instead of nat(nil).

@Gnouc Thanks for the quick response and fix!
Would it be worth adding a variant of TestRatSetString (in ratconv_test.go) that uses the same big.Rat between all the tests instead of creating a new one for each SetString call - to be more sure it will catch other variants of this issue that may take different code paths?

@aclindsa IMHO, a separated test (I added in the CL) is enough, 2 or more are the same. Let wait @griesemer to take a look at it.

Yes, thanks for adding the test. It will prevent this exact bug from occurring again. My question is whether a single pair of SetString() calls will adequately test all the code flows through this function, and therefore be likely to prevent similar, but slightly different, bugs in the future.


Saving chat history in PostgreSQL

Saving chat history in Redis is very simple, but for my use case, I want to save all the chat history in Postgres. How do I do this?
Like in Vercel AI SDK we can call the onStart and onCompletion callbacks on the stream to save data into db
const response = openai.createChatCompletion({
  model: 'gpt-3.5-turbo',
  messages,
  stream: true
});

const stream = OpenAIStream(response, {
  onStart: () => {
    // save user message into db
  },
  onCompletion: () => {
    // save ai message into db
  }
});

As ragChat.chat() or aiUseChatAdapter does not provide any such methods, how can I achieve a similar experience?
Stack: - upstash/rag-chat & vercel ai sdk

There are many ways to save your data,
I've changed onChunk to create a temp and save those values there than send to a job, but I've moved away of it
The simplest one will be on the client side with onFinish method
  const { messages, append, setMessages } = useChat({
    api: `${baseUrl}api/chat`,
    onFinish: (message) => {
      saveMessageInBackground(message.content);
    },
  });

@rajdeep-ghosh this PR aims to implement onFinish callback
https://github.com/upstash/rag-chat/pull/98
putting @CahidArda on loop


Update htmlheader.blade.php

Changed {{ asset('/css/all.css') }} to {{ mix('/css/all.css') }}
Since it's using mix to compile the resources and
if (mix.config.inProduction) {   mix.version() } in webpack.mix.js on npm production it will generate filenames with hash. Hence after production run with asset you don't have access to css file.

Description
Describe your changes in detail.
Motivation and context
Why is this change required? What problem does it solve?
If it fixes an open issue, please link to the issue here (if you write fixes #num
or closes #num, the issue will be automatically closed when the pull is accepted.)
How has this been tested?
Please describe in detail how you tested your changes.
Include details of your testing environment, and the tests you ran to
see how your change affects other areas of the code, etc.
Screenshots (if appropriate)
Types of changes
What types of changes does your code introduce? Put an x in all the boxes that apply:

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:
Go over all the following points, and put an x in all the boxes that apply.
Please, please, please, don't send your pull request until all of the boxes are ticked. Once your pull request is created, it will trigger a build on our continuous integration server to make sure your tests and code style pass.

[x] I have read the CONTRIBUTING document.
[x] My pull request addresses exactly one patch/feature.
[x] I have created a branch for this patch/feature.
[ ] Each individual commit in the pull request is meaningful.
[ ] I have added tests to cover my changes.
[ ] If my change requires a change to the documentation, I have updated it accordingly.

If you're unsure about any of these, don't hesitate to ask. We're here to help!

Thanks!


Internship Application: Nino Alan Mamani Apaza

E-mail
<EMAIL_ADDRESS>Full Name
Nino Alan Mamani Apaza
URL perfil Linkedin
No response
Bio
Soy un joven que diseña sistemas web y es fan de aprender nuevas tecnologías y que sigue tendencias. Soy esforzado y comprometido con los proyectos
Send your CV

[X] I have sent my CV to<EMAIL_ADDRESS>
What projects are you interested in?

[ ] scicookie, is a template developed by Open Science Labs that creates projects from project templates and is based on Cookieninja A Cookiecutter Fork command-line utility. Repository
[ ] makim, is based on make and focus on improve the way to define targets and dependencies. Instead of using the Makefile format, it uses yaml format Repository
[ ] containers-sugar. The idea of this project is to organize your stack of containers, gathering some useful scripts and keeping this information centralized in a configuration file. So the command line would be very simple. Repository
[ ] github-actions-chatgpt-pr-reviewer. This GitHub actions uses OpenAI ChatGPT in order to review the changes presented in a PR and will recommend improvements. Repository
[ ] semantic-release-pr-title-check. Checks for Angular commit message format in the Pull Request Title. Repository
[ ] satellite-weather-downloader, is a system for downloading, transforming and analysing Copernicus weather data using Xarray. It consists in two major apps, satellite_downloader and satellite_weather. Repository
[ ] CrawlClima. This package contains the PEGATWEETS and PEGATEMPERATURA modules for automatically capturing tweets and weather data. Repository
[ ] dowloader-app. A shapefiles downloader. Repository
[ ] conda-forge-warning. Conda-Forge Warning aims to present conda-forge package without maintenance. Repository
[ ] pyreaddbc, is a Python library for working with DBase database file. Legacy systems from the Brazilian Ministry of Health still uses DBF and DBC formats to Publicize data. Repository
[ ] ghreport. A GitHub Report tool. Repository
[ ] gh-check-pr-is-updated. This GitHub actions aims to check if the current PR's branch is updated on top of the upstream branch. Repository
[ ] github-actions-self-hosted-runner. Dockerfile for the creation of a GitHub Actions runner image to be deployed dynamically. Repository
[X] fqlearn. A graphic solver tool to teach mass transfer and thermodynamics.Repository
[ ] pydatastructs. A project that aims to be a Python package for various data structures and algorithms (including their parallel implementations).Repository

Code of Conduct

[X] I have read the Code of Conduct and I agree.

Hi! @All-maker777  We have reviewed your application, thank you for applying. We have a few questions before we continue.
We welcome applicants from all levels of programming experience. Whether you're a coding enthusiast or just getting started, we'd love to know more about your background. Can you tell us if you have any experience with programming or if you've used any programming languages before? Feel free to share any related projects or experiences you've had, big or small.It will be cool if you share with us your availability. Tell us how many hours per week you can dedicate to the internship, and if you have any preferred start and end dates, please let us know. This information will help us tailor the internship experience suits your needs. Thanks.

Dear @All-maker777,
Thank you for your application to the Open Science Labs Internship Program.
We're excited to share that we've completed our selection process. You will receive an email from us tomorrow with the results.
Your patience and interest are greatly appreciated. If you have questions, contact us at<EMAIL_ADDRESS>Thank you for being part of our process.


Add admin.roles.{list|add|remove}Assignments API supports

The following three API endpoints are now publicly available. This SDK (and Python, Node ones too) should support them for Enterprise Grid admins.

https://api.slack.com/methods/admin.roles.listAssignments
https://api.slack.com/methods/admin.roles.addAssignments
https://api.slack.com/methods/admin.roles.removeAssignments

Category (place an x in each of the [ ])

[ ] bolt (Bolt for Java)
[ ] bolt-{sub modules} (Bolt for Java - optional modules)
[x] slack-api-client (Slack API Clients)
[ ] slack-api-model (Slack API Data Models)
[ ] slack-api-*-kotlin-extension (Kotlin Extensions for Slack API Clients)
[ ] slack-app-backend (The primitive layer of Bolt for Java)

Requirements
Please make sure if this topic is specific to this SDK. For general questions/issues about Slack API platform or its server-side, could you submit questions at https://my.slack.com/help/requests/new instead. :bow:
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you agree to those rules.

The org admin user token for my testing grid org receives the "not_allowed_token_type" error and I am still unsure about how this should be resolved. Will hold on working on this addition for now.


Autofill for Passwords

System Details

OS: Android 13
Thorium Version 117.0.5938.157

Problem
Password Manager is not detecting URL of specific page, instead it's point to URL org.chromium.thorium.
Screenshots
Additional Notes
The Password Manager used is Bitwarden.

I don't think a fix is required on Thorium's end. Bitwarden's mobile apps have a list of browsers that it supports autofill with, and a PR is needed every time a new browser wants to get support (at least from what I've seen looking into this for other browsers)
See bitwarden/mobile#2640 for an example

It also isn't working with Norton Password Manager

I don't think a fix is required on Thorium's end. Bitwarden's mobile apps have a list of browsers that it supports autofill with, and a PR is needed every time a new browser wants to get support (at least from what I've seen looking into this for other browsers)
See bitwarden/mobile#2640 for an example

I mean it works on Mac and Windows but not in android.....

No password manager tend to work with thorium in any website at least for autofill.

Just to add to the list: I just found out it's not working with Proton-Pass.


README Formatting

  Please Check The Preview

Update Tags

Split arduino-library ➞ arduino , library

Add analog , digital , converter

Update Description
Arduino Library for MPC3x6x Analog 🠖 Digital Converter.

Disable Unused Widgets:

Releases

Disable Unused Tabs:

Wiki

General formatting / spacing

Added license , status badge

If you have any questions.

In case you do not agree with some of the changes made in this PR,
please first let me know about them, before disregarding it entirely so
we can possibly find a middle ground and have it not go to waste.

thank you for your contribution. I am perfectly fine with the most of it. Just for the moment, as there are major bugs in the code, I would prefer to point this out in the readme so nobody will be surprised by this.

Thats why I added the status-unstable badge~

@nerdyscout Could you please follow up with this~

wow.


RNA-Seq BAMs

Hi @gaog94. Would this work for reads extracted from bulk RNASeq BAMs?
Thanks,
Yajas

Hi Yajas, to date we have characterized KIRCLE only on whole exome sequencing data. So unfortunately, we really don't know how it would perform on bulk RNAseq. Hope that helps!


Derive temporal dataset coverage from ODP services

We are currently using the ESGF service at CEDA of the ESA CCI ODP.
Its responses do not include any temporal dataset coverage as it is urgently required when we e.g. perform CLI commands such as
ect ds sync DATASET_ID START_DATE STOP_DATE

This information is also urgently required for the GUI, e.g. for displaying a dashboard that shows availability of data in time.

Temporal coverage is now shown when using command
ect ds info DS


Update Working with Vuex.md

thanks for correcting my Englisg, it looks better now ;)

No problem 🖖


Move work_split

Tracking issue : #11688 , Master Issue : https://github.com/tenstorrent/tt-metal/issues/11513
STATUS : In Progress

Need to move it to tt_metal/common

Draft PR : https://github.com/tenstorrent/tt-metal/pull/11834

STATUS : In Progress
Need to move it to tt_metal/common


Preparations for building curry thunks in Sema

This is the NFC part of https://github.com/apple/swift/pull/28698. I want to land it now to minimize future merge conflicts and to let the changes simmer in CI.

@swift-ci Please smoke test

@swift-ci Please test source compatibility

@swift-ci Please smoke test macOS


Removed the 'Maartje Check'

Please accept and make the site available for me as well...

Only because you asked so nicely


Sort by recent isn't working when query=*, which is odd, since it was working yesterday. I think it's a fault with their api.

Rest of the sorting methods are working for query *. recent is working for any other query too.
p.s. I can fork and contribute if you let me in on how you got api endpoints. thanks. I don't wanna go back to scraping.

It was a fault on their end. It's fixed now.

p.s. I can fork and contribute if you let me in on how you got api endpoints. thanks. I don't wanna go back to scraping.

I just looked at a lot of libraries to find available endpoints. I didn't find and new ones myself sadly.

p.s. I can fork and contribute if you let me in on how you got api endpoints. thanks. I don't wanna go back to scraping.

I just looked at a lot of libraries to find available endpoints. I didn't find and new ones myself sadly.


rename packet.crossplane.io to metal.equinix.crossplane.io

Description of your changes
Rename repository and APIGroup references from Packet to Equinix Metal. metal.equinix.crossplane.io
I hope the name length does not create a technical problem.
I don't believe users are likely to type this name in very often, so I'm not overly concerned with the length from that perspective.  Unfortunately, this length creates for resources like device.server.metal.equinix.crossplane.io.  On the other, hand metal.equinix is only 7 characters more than packet and nothing else is changing.
UPDATE: 5d82bd3 changed the name to APIGroup metal.equinix.com
I'm trying to leave room for other Equinix APIs to be introduced under alternate providers (fabric.equinix.crossplane.io, etc).
Checklist

I have:

[ ] Run make reviewable to ensure this PR is ready for review.
[ ] Ensured this PR contains a neat, self documenting set of commits.
[ ] Updated any relevant documentation, examples, or release notes.

Renamed the base APIGroup to metal.equinix.com


[google compute] Add node stop/start support

GCE now supports node (instance) stop/start.  This PR adds the two new driver methods and supporting tests to include these new features.  Note that these methods only return a boolean, so the node object must be queried again to get the new status.  For example,
>>> node = gce_driver.ex_get_node('foo', 'us-central1-f')
>>> print node.extra['status']
u'RUNNING'
>>> gce_driver.stop_node(node)
>>> node = gce_driver.ex_get_node('foo', 'us-central1-f')
>>> print node.extra['status']
u'TERMINATED'

Note that the correct state for a stopped node is TERMINATED.
Upstream docs are at:
https://cloud.google.com/compute/docs/instances#stopping_an_instance
https://cloud.google.com/compute/docs/instances#restarting_a_stopped_instance
/cc @Kami - I'd like to get this into the next release if you're OK with that.

Sorry for a late comment.
Currently both "terminated" and "stopped" states map to Libcloud "TERMINATED" state. Does GCE internally use the same value for a terminated / destroy node (node.destroy) and stopped node (ex_stop_node)?
If it doesn't, we should map "stopped" to Libcloud.STOPPED state, otherwise it's rather painful for our users - usually, actions you can perform on a server different depending if the node is destroyed or stopped (e.g. usually you can don't anything with a terminated node, but you can start a stopped node).

No worries, sorry for not waiting longer. I was anxious to get this in on the off chance you decided to cut a new release.
GCE uses "TERMINATED" when the node is stopped. On node.destroy(), the node is removed from the system and any subsequent requests to it would result in a ResourceNotFoundError.  If the node exists and is 'started', it is in the RUNNING state.  Since stop/start are async_requests, the user won't see any other intermediate states, but the flow works like this:
If it's running and we 'stop' it: RUNNING->STOPPING->TERMINATED
If stopped and we start it: TERMINATED->PROVISIONING->RUNNING
Based on that, are there any changes I should make?

Ah, OK, thanks for the clarification.
In this case it sounds like we can and should just map TERMINATED -> STOPPED. This way it's consistent and works consistently across different providers. It would also be good to add a comment to the code so people know why terminated is mapped to stopped.
A lot of Libcloud users dynamically build actions which are available for a particular node based on the node state and other information (are there any volumes / ip addresses attached, etc.). Other providers usually don't immediately delete node from a list when destroying a server, but the simply change state to TERMINATED and when a node is in this state no action can be performed on it.

Ok, here's how it stands right for the GCE driver (lines 793-800)[1]. Note that it's been this way for a while. I did not introduce this mapping in #442.
    NODE_STATE_MAP = {
        "PROVISIONING": NodeState.PENDING,
        "STAGING": NodeState.PENDING,
        "RUNNING": NodeState.RUNNING,
        "STOPPED": NodeState.TERMINATED,
        "STOPPING": NodeState.TERMINATED,
        "TERMINATED": NodeState.TERMINATED
    }

I think what you're proposing is to change it to:
    NODE_STATE_MAP = {
        "PROVISIONING": NodeState.PENDING,
        "STAGING": NodeState.PENDING,
        "RUNNING": NodeState.RUNNING,
        "STOPPING": NodeState.STOPPED,
        "TERMINATED": NodeState.STOPPED
    }

Note, that I removed STOPPED since we don't (no longer?) have that state[2].  Does this look correct?
[1] https://github.com/apache/libcloud/blob/trunk/libcloud/compute/drivers/gce.py#L793-L800
[2] https://cloud.google.com/compute/docs/instances#checkmachinestatus

Yeah, this should work:
 NODE_STATE_MAP = {
        "PROVISIONING": NodeState.PENDING,
        "STAGING": NodeState.PENDING,
        "RUNNING": NodeState.RUNNING,
        "STOPPING": NodeState.PENDING,
        "TERMINATED": NodeState.STOPPED
    }

(I just changed stopping to map to pending)

Ok, sgtm.  Heading out in a bit, but I'll get this fixed first thing tomorrow.
Thank you @Kami !

Ok, just submitted #445


feat: enable support for network policy in azure

Is it available in v4.7.0 of the Azure/AKS module.
Maybe we should only expose the parameter and not change de default yet, because it will force replacement of the cluster.

Changing the default behavior will enforce cluster recreation on upgrade.
Maybe we should expose the attribute en set it either to azure as default (will allow to override to null) or to null as default (will allow to override to azure).

Then it's up to the module caller to set the value ?

* Is it available in v4.7.0 of the Azure/AKS module.

* Maybe we should only expose the parameter and not change de default yet, because it will force replacement of the cluster.

Yes, it is supported in 4.7.0**.**


Provide a "single-node" subcommand to docker entrypoints

Hi @jackzampolin, the problem I see with the existing Docker-based tests is that unadorned arguments <chainID> <genesisAccount> are supplied during the test, without any context for the entrypoint.
I'd like to use my main Docker image and add functionality to its entrypoint so that single-node <chainID> <genesisAccount> can be accepted as arguments.  Since that's an extension to my existing entrypoint (rather than an incompatible change), it makes me happy.  One less Docker image to publish.
I've got a PR for gaia contrib single-node.sh, too: cosmos/gaia#343

After reviewing this a bit more its going to be difficult to incorporate this feature. I'm going to go ahead and close this PR.


Favicon

favicon
The favicon and start tile are broken in

Edge browser on Windows 10 desktop

Thanks Monty! I'm changing the category of this to 'enhancement' since I'm using bugs to track MVP 1.0 features.


Deprecated BUILD_UNIT_TEST + removed legacy files + updated README file (with pip installation)

Also, the master branch remains C++ 98/11/14/17/20, however, since the merging of the residual PR, the devel would no longer support C++ 98 standard. So we should make that change in the README as well.

@proyan -- I realized that some of the Python-based unit-tests were using deprecated functions. I have to clean up a bit this. Additionally, I am defining nthreads=1 for Python-based models as Crocoddyl doesn't yet support multithreading with Python models.

I will merge this PR as gitlab-ci passed and the CI for testing the code format in Travis passed (this is all we need to be sure that everything is alright!)

Pip is only for Linux. I would keep conda as default one.


Exercise Alignment

Describe the bug
When editing a workout, the exercises are not aligned to the center
It seems as though safari takes over all custom cursors, meaning that for certain browsers I do not need to account for the width of the custom scrollbar
Can probably fix with a simple media query
To Reproduce
Steps to reproduce the behavior:

Go to edit a workout

Context:

Phone
iOS/Safari

padding removed in #43, still looks a bit off center on desktop but at this point we prioritize mobile


no laion images

There are no images for laion in https://huggingface.co/datasets/FreedomIntelligence/ALLaVA-4V/resolve/main/allava_laion/images.zip?download=true

Hi @phellonchen , thanks for your close attention on our repo! We are encountering network issue when uploading the images. We've split them into chunks and they are still being uploaded, which is expected to finish in 15 hours. The download scripts will be updated as well. Stay tuned!

There are only 181393 images in https://huggingface.co/datasets/Vision-Flan/vision-flan_191-task_1k/resolve/main/image_191-task_1k.zip while the number is 203,065 in the Table in Readme.

The number of images you report for both datasets is correct. An image can correspond to more than 1 sample.

We have updated the laion images as well as the download scripts.

Some images are missing.


[zh-cn] sync /concepts/workloads/pods/_index.md

Signed-off-by: Gao Qian<EMAIL_ADDRESS>

/lgtm
/approve


Fix inner bullets

Before the fix

Good eyes. I ought to have fix that but somehow I forget. Thanks for your due deligence.


Apply semantic colour to components and patterns

Use semantic color scales generated from the "Temabygger" by Designsystemet to test applying variables to the UI.

Dashboard & Table

🔍Question: It is unclear how we want to combine the neutral-background-subtle (light) and neutral-background-default (dark) in the main and shell UI elements color scheme. What is the most visually appealing solution, and what makes the most sense when it comes to prominence?

💡Suggestion: We create specific use case aliases that can change based on the context (theme and color scheme).
💡Suggestion: If we need different colors in dark and light modes, we could create —bgColor-default and —bgColor-inset
💡Suggestion: Create foundational tokens for foreground(text) and background colors. This would encapsulate design decisions and simplify applying the correct token to elements. Here is an example from the GitHub Primer Design system: https://primer.style/foundations/primitives/color. In the previous color tokens, we looked at simple semantic tokens. These foundational tokens would be equivalent to that, but maybe even simpler and more specific.

🔍Question: Using the accent color scale for interactive elements looks visually appealing, but in dark mode, we get a conflict if we introduce a neutral background with hints of color (for example, bg colors based on slate-gray)

💡Suggestion 1: Use neutral gray colors for dark backgrounds
💡Suggestion 2: Create a new color scale for interactive elements in dark mode.
💡Suggestion 3: Use the neutral color scale for interactive elements in light and dark mode.

🔍Question: The accent color (based on Moss Green) generated by Temabygger from Designsystemet outputs a very dark accent color compared to the custom color Bente selected. The generated accent color is not as prominent as we might want for the primary button, checkbox, etc.

💡Suggestion 1: Use another color as the base for the accent color in dark mode


Geofencing API - Add Subscription type 'area-left-or-entered' to subscribe to both event in one time

Problem description
Today, to subscribe to area-entered and area-left for the same device, API's consumers need to subscribe twice.
Possible evolution
To simplify usage of API for those who want to subscribe to both event we propose to create a new subscription type 'area-left-or-entered'

I remember some discussion about the convenience to allow subscribing to several events in one subscription request and IIRC agreement was in favor of having a subscription per event type. Having a dedicated event name, just for subscriptions, that maps to 2 different triggered events is not that intuitive, and this mapping would have to be implemented in the backend, which may not be supported directly by some notification systems.

As discussed during the meeting, we all agree that developers would likely be interested in subscribing to both events at once, and manage both events with a single subscription, but it was not obvious the best design approach. Options and some pros/cons (others may be added):
A) Allow the subscription to multiple events in one request, changing the subscribed event to an array of event types

Pros: Clear specification, easy to understand. It is aligned with approach for CloudEvents Subcription API (WIP): https://github.com/cloudevents/spec/blob/main/subscriptions/spec.md#types
Cons: It was discussed in Commonalities and preference was to have a single event per subscription

B) Defining a new event, e.g. area-crossed, with an additional direction attribute, to keep same events for subscription and triggering, similar to the roaming-change event in Device Status

Pros: Keeps same event types for subscription and notification
Cons: We need an additional property in notification

C) Having a new subscription event type area-entered-or-left that maps to 2 possible triggered events: area-entered or area-left

Pros: Keeps current design with just one event per subscription
Cons: Requires an additional mapping in the server to map the subscribed event to several triggered events

D) Keep current design and ask developers to keep 2 separate subscriptions

Pros: Keeps current design with just one event per subscription
Cons: Complicates management by developers

Hi @jlurien,
Thanks for your synthesis.

As discussed during the meeting, we all agree that developers would likely be interested in subscribing to both events at once, and manage both events with a single subscription, but it was not obvious the best design approach. Options and some pros/cons (others may be added):
A) Allow the subscription to multiple events in one request, changing the subscribed event to an array of event types

Pros: Clear specification, easy to understand. It is aligned with approach for CloudEvents Subscription API (WIP): https://github.com/cloudevents/spec/blob/main/subscriptions/spec.md#types

Pros: could be a good choice for a centralized subscription system as requested in Commonalities #121

Cons: It was discussed in Commonalities and preference was to have a single event per subscription

Cons: Requires an additional mapping in the server to map the subscribed event types to several triggered events as in C)

B) Defining a new event, e.g. area-crossed, with an additional direction attribute, to keep same events for subscription and triggering, similar to the roaming-change event in Device Status

Pros: Keeps same event types for subscription and notification
Cons: We need an additional property in notification

Cons: Requires an additional mapping in the server to map the subscribed event and direction as in C)
Cons: type of event is not sufficient, need to look inside data to retrieve its direction (introduce complexity on both ends => new event+direction as same meaning as already existing event)

C) Having a new subscription event type area-entered-or-left that maps to 2 possible triggered events: area-entered or area-left

Pros: Keeps current design with just one event per subscription
Cons: Requires an additional mapping in the server to map the subscribed event to several triggered events

D) Keep current design and ask developers to keep 2 separate subscriptions

Pros: Keeps current design with just one event per subscription
Cons: Complicates management by developers

fyi @PedroDiez

I find A as the most intuitive one for users.
It is also more intuitive when mapping it to more than one event in the backend: The developer just loops over the event list and maps each one of them to one event (1-1). This is slightly better than breaking 1 event into 2 pieces.
In the future, if we would imagine more events, approach A keeps it still simple (Just the array gets longer).
In option C for instance, we would be constantly adding new "combined" events and developers would need to break them down into "single" events.

@patrice-conil @jlurien @alpaycetin74 @PedroDiez  Could you kindly provide your feedback also in this open issue in Commonalities if you would like to support optionA discussed above?
https://github.com/camaraproject/Commonalities/issues/154

As our new subscription model allows to pass an array of event-type we could probably close this one?
As a reminder the version supported for first meta release will not allow this multi-event feature but this point will be for consideration after this meta-release (allowing scenario A)
@jlurien @alpaycetin74 @patrice-conil wdyt? we can close this one?

Collaborator

I think so, yes. Thank you.

No objection from my side, I think we will be able to manage array of subscription type for the next release.

So for the current version clients will have to manage both events separately in 2 subscriptions, right. That is OK for me as well

As our new subscription model allows to pass an array of event-type we close this one.
As a reminder the version supported for first meta release will not allow this multi-event feature but this point will be for consideration after this meta-release (allowing scenario A)


DAT-15718 Release docker on liquibase release-published

Impact

[ ] Bug fix (non-breaking change which fixes expected existing functionality)
[x] Enhancement/New feature (adds functionality without impacting existing logic)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description

chore(release-extensions.yml): update release-extensions workflow to …include version input for Liquibase version
chore(release-published.yml): update package-deb workflow to use latest version of package-deb action (v0.5.3)
feat(release-extensions.yml): add release-extensions job to trigger the release of Liquibase extensions with the specified version

@jandroav don't we need to remove docker from the release-extensions.yml ?

@jandroav don't we need to remove docker from the release-extensions.yml ?

why @jnewton03 ? We were manually triggering release-extensions.yml until now, right?

ohh, i see the confusion.  You updated it to release all extensions when we release liquibase.  I had not thought about that.  Are you ok with that, @filipelautert ?


Test failure: TestLogEscapesIllegalFileNames

This issue was made automatically. If there is a problem contact ryanbrandenburg.
This test failed with the following error:
Assert.Equal() Failure
                 ↓ (pos 7)
Expected: Testing-https_localhost_5000
Actual:   Testingst_5000
                 ↑ (pos 7)

Other tests within that build may have failed with a similar message, but they are not listed here. Check the link above for more info.
This test failed on master.
CC Eilon

This comment was made automatically. If there is a problem contact ryanbrandenburg.
Please use this workflow to address this flaky test issue, including checking applicable checkboxes and filling in the applicable "TODO" entries:

Is this actually a flaky test?

No, this is a regular test failure, fix the test/product (TODO: Link to commit/PR)
Yes, proceed below...

Is this test failure caused by product code flakiness? (Either this product, or another product this test depends on.)

[ ] File a bug against the product (TODO: Link to other bug)
Is it possible to change the test to avoid the flakiness?

Yes? Go to the "Change the test!" section.
No?

[ ] Disable the test (TODO: Link to PR/commit)
[ ] Wait for other bug to be resolved
[ ] Wait for us to get build that has the fix
[ ] Re-enable our test (TODO: Link to PR/commit)
[ ] Close this bug

Is it that the test itself is flaky? This includes external transient problems (e.g. remote server problems, file system race condition, etc.)

Is there is a way to change our test to avoid this flakiness?

Yes? Change the test!

[ ] Change the test to avoid the flakiness, for example by using a different test strategy, or by adding retries w/ timeouts (TODO: Link to PR/commit)
[ ] Run the test 100 times locally as a sanity check.
[ ] Close this bug

No?

Is there any logging or extra information that we could add to make this more diagnosable when it happens again?

Yes?

[ ] Add the logging (TODO: Link to PR/commit)

No?

[ ] Delete the test because flaky tests are not useful (TODO: Link to PR/commit)

This comment was made automatically. If there is a problem contact ryanbrandenburg.
There were 5 failures with about the same error on master at 10:10:21 PM:

TestLogEscapesIllegalFileNames
TestLogEscapesIllegalFileNames
TestLogEscapesIllegalFileNames
TestLogEscapesIllegalFileNames
TestLogEscapesIllegalFileNames

@BrennanConroy ?

Fixed https://github.com/aspnet/Logging/pull/908


Conflicting Initialization for Multiple Select and Dropdown

When your page contains a multiple select and a dropdown, initializing the select before the dropdown by following the current documentation makes the multiple select close when an option is clicked.
Expected Behavior
It should not matter in which order a component is initialized
Current Behavior
Initializing a FormSelect marked with multiple before initializing Dropdown with the selector .dropdown-trigger as currently documented at https://materializecss.com/dropdown.html#initialization closes the select when an option is clicked.
Possible Solution

Using another class than dropdown-trigger for selects,
Using another class than dtopdown-trigger for dropdown or
Adding an explicit note in the documentation about initialization order

(This seems to mainly be a documentation problem but it would be nice if the initializers would not interact at all)
Steps to Reproduce
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-rc.2/css/materialize.min.css">

		<select name="notWorking" required multiple>
			<option value="" disabled>Choose your option</option>
			<option value="1">Opt1</option>
			<option value="2">Opt2</option>
			<option value="3">Opt3</option>
		</select>
		A multiselect that does not work

		<select name="working" required multiple>
			<option value="" disabled>Choose your option</option>
			<option value="1">Opt1</option>
			<option value="2">Opt2</option>
			<option value="3">Opt3</option>
		</select>
		A working multiselect

Also available as a codepen at https://codepen.io/anon/pen/djERMm?editors=1010
Your Environment

Version used: 1.0.0-rc2
Browser Name and version: Opera 54, Firefox 61.0.1
Operating System and version (desktop or mobile): Ubuntu 18.04

Still a problem in 1.0.0

Still a bug in 1.0.0 !!


Expose skipLazyInit on HtmlHelperextension

can you please expose the new parameter skipLazyInit in the HTML Helper extension?

Sure, send a PR
On Wed, May 12, 2021 at 11:28, Loren Dorez @.***> wrote:

can you please expose the new parameter skipLazyInit in the HTML Helper
extension?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/reactjs/React.NET/issues/1255, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAHGCFRYVCOXZY2KSRVQUP3TNKNBTANCNFSM44Y2XJQA
.

Also ill need some way to filter the ReactInitJavaScript() calls to filter out the loadable-components ones. Ill see if i can work up a PR for all of that. As this should allow load-able components to load fully.
I have everything working just need to wrap the initialize JS scripts in the loadableRead() function

im fairly new to the PR/Git stuff but ill do my best :)

@dustinsoftware Do you have any issues with me also adding some separate logic to leverage the loadable-components library for code splitting/dynamic imports?
Basically would add some flags an properties to keep track of components that are code split/Lazy Init and then render their JS separately with like Html.ReactLazyInitJavaScript()
This wouldn't require the project to take on a dependency of Loadable Components but would just have some helper sin place for people that want to use it. I can separate that into a separate pull request as the one above should be a quick 2 sec change really

Go for it :)
On Fri, May 14, 2021 at 09:57, Loren Dorez @.***> wrote:

@dustinsoftware https://github.com/dustinsoftware Do you have any
issues with me also adding some separate logic to leverage the
loadable-components library for code splitting/dynamic imports?
Basically would add some flags an properties to keep track of components
that are code split/Lazy Init and then render their JS separately with like
Html.ReactLazyInitJavaScript()
This wouldn't require the project to take on a dependency of Loadable
Components but would just have some helper sin place for people that want
to use it. I can separate that into a separate pull request as the one
above should be a quick 2 sec change really
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/reactjs/React.NET/issues/1255#issuecomment-841260682,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAHGCFS3FHI3GJ6GGHXJ5B3TNUT4DANCNFSM44Y2XJQA
.

Hi @PatrickNausha
Did you solve the issues with loadable-components integration? :)

Yes. We've been using loadable-components and server-side rendering with React.NET in production for a few months now. I essentially went with option 3 in my previous post above.
At the of taking this issue way off the topic of "Expose skipLazyInit on HtmlHelperextension," here's an overview of our solution below.
Step 1: Create a custom RenderFunctionsBase
We have a LoadableFunction custom render function that creates a Loadable Components ChunkExtractor for each render and returns the chunks in the ChunkExtractor back to C# after each render. This will later let us emit the proper link, script, and style tags into the page for our dynamic chunks.
React render calls look like
var componentHtml = html.React(
    ...,
    renderFunctions: new ChainedRenderFunctions(loadableFunction, ...)
).ToHtmlString();

The custom LoadableFunction (with specifics for my app stripped out) looks like
public class LoadableFunction : RenderFunctionsBase
{
    ...

    // Scripts for all loadable components rendered with this function. See https://loadable-components.com/docs/api-loadable-server/#chunkextractorgetscripttags
    public string Scripts { get; private set; } = "";

    // Get preload link tags for all loadable components rendered with this function. See https://loadable-components.com/docs/api-loadable-server/#chunkextractorgetlinktags
    public string Links { get; private set; } = "";

    // Get style link tags for all loadable components rendered with this function. See https://loadable-components.com/docs/api-loadable-server/#chunkextractorgetstyletags
    public string Styles { get; private set; } = "";

    public override void PreRender(Func<string, string> executeJs)
    {
        ...
        executeJs($"var extractor = new ChunkExtractor({{ ... }});");

        // Add chunks seen in previous renders into the new ChunkExtractor
        executeJs($"for (const chunk of {m_chunksJson}) {{ extractor.addChunk(chunk); }}");
    }

    public override string WrapComponent(string componentToRender)
    {
        return $"extractor.collectChunks({componentToRender})";
    }

    public override void PostRender(Func<string, string> executeJs)
    {
        // Store chunks so we can build a ChunkExtractor on the next render that essentially picks up where we left off.
        m_chunksJson = executeJs($"JSON.stringify(extractor.chunks)");

        // See https://loadable-components.com/docs/api-loadable-server/#chunkextractorgetscripttags
        Scripts = $"{executeJs("extractor.getScriptTags({ ... })")}";

        // See https://loadable-components.com/docs/api-loadable-server/#chunkextractorgetstyletags
        Styles = $"{executeJs("extractor.getStyleTags({ ... })")}";

        // See https://loadable-components.com/docs/api-loadable-server/#chunkextractorgetlinktags
        Links = $"{executeJs("extractor.getLinkTags({ ... })")}";
    }

    ...

    private string m_chunksJson = "[]";
}

In the head of the page in our Razor view, we invoke a method that essentially spits out loadableFunction.Links + loadableFunction.Styles.
Late in the body of our page we render
@Html.RenderReactInitJavascript()
followed by a method call that essentially returns just loadableFunction.Scripts.
We use our app's dependency injection system to make our LoadableFunction instance available to Razor but scope its lifetime to exactly one request.
Step 2: Create a custom ReactEnvironment
We need a way to override React.NET's default behavior of generating script elements that invoke ReactDOM.hydrate directly. This is because we need to wrap hydrate calls in a loadableReady callback.
Early in the page we define window.loadableReadyCallbacks.
<script type="text/javascript">
	window.loadableReadyCallbacks = [];
</script>

Our LoadableComponentsReactEnvironment below writes to window.loadableReadyCallbacks on renders.
using System.IO;
using React;

namespace Faithlife.Web.Infrastructure
{
	internal sealed class LoadableComponentsReactEnvironment : ReactEnvironment
	{
		public LoadableComponentsReactEnvironment(
			IJavaScriptEngineFactory engineFactory,
			IReactSiteConfiguration config,
			ICache cache,
			IFileSystem fileSystem,
			IFileCacheHash fileCacheHash,
			IReactIdGenerator reactIdGenerator
		)
			: base(engineFactory, config, cache, fileSystem, fileCacheHash, reactIdGenerator)
		{
			m_reactIdGenerator = reactIdGenerator;
		}

		// This is intended to be identical to React.NET's ReactEnvironment.CreateComponent except that it creates
		// a LoadableComponentsComponent instead of ReactComponent.
		public override IReactComponent CreateComponent<T>(
			string componentName,
			T props,
			string containerId = null,
			bool clientOnly = false,
			bool serverOnly = false)
		{
			if (!clientOnly)
				EnsureUserScriptsLoaded();
			ReactComponent reactComponent = new LoadableComponentsComponent(this, _config, m_reactIdGenerator, componentName, containerId)
			{
				ClientOnly = clientOnly,
				Props = props,
				ServerOnly = serverOnly,
			};
			_components.Add(reactComponent);
			return reactComponent;
		}

		private sealed class LoadableComponentsComponent : ReactComponent
		{
			public LoadableComponentsComponent(IReactEnvironment environment, IReactSiteConfiguration configuration, IReactIdGenerator reactIdGenerator, string componentName, string containerId)
				: base(environment, configuration, reactIdGenerator, componentName, containerId)
			{ }

			public override void RenderJavaScript(TextWriter writer)
			{
				var callbackStart = ClientOnly ?
					"window.addEventListener('DOMContentLoaded', function () {" :
					"window.loadableReadyCallbacks.push(function () {";
				writer.Write(callbackStart);
				base.RenderJavaScript(writer);
				writer.Write("});");
			}
		}

		private readonly IReactIdGenerator m_reactIdGenerator;
	}
}

Now that we have our list of callbacks (list of ReactDOM.hydrate calls), invoke them with loadableReady in the browser.
import { loadableReady } from '@loadable/component';

loadableReady(() => {
	for (const invokeCallback of window.loadableReadyCallbacks) {
		invokeCallback();
	}
});

We need something like this at app startup to actually use the custom IReactEnvironment.
// Override React.NET types
var container = AssemblyRegistration.Container;
container.Register<IReactEnvironment, LoadableComponentsReactEnvironment>()
    .AsPerRequestSingleton();

Step 3: Disable code-splitting in server JavaScript bundle
We use webpack to build a browser JS bundle and a server JS bundle. React.NET's JavaScript engines don't have a way to dynamically load JS, so just load everything on the server. This makes dynamic imports for loadable components a no-op since all the chunks are already there.
new webpack.optimize.LimitChunkCountPlugin({
	maxChunks: 1
}),

I'm probably forgetting some major things, but this is the best I can easily distill my project's approach. If I had more time, I'd create a minimal, open source demo app. I hope this information helps someone. Good luck!

Excellent write up, thanks Patrick
On Thu, Jan 20, 2022 at 19:25, PatrickNausha @.***>
wrote:

Yes. We've been using loadable-components and server-side rendering with
React.NET in production for a few months now. I essentially went with
option 3 in my previous post above.
At the of taking this issue way off the topic of "Expose skipLazyInit on
HtmlHelperextension," here's an overview of our solution below.
Step 1: Create a custom RenderFunctionsBase
We have a LoadableFunction custom render function that creates a Loadable
Components ChunkExtractor for each render and returns the chunks in the
ChunkExtractor back to C# after each render. This will later let us emit
the proper link, script, and style tags into the page for our dynamic
chunks.
React render calls look like
var componentHtml = html.React(
...,
renderFunctions: new ChainedRenderFunctions(loadableFunction, ...)
).ToHtmlString();
The custom LoadableFunction (with specifics for my app stripped out)
looks like
public class LoadableFunction : RenderFunctionsBase
{
...
// Scripts for all loadable components rendered with this function. See https://loadable-components.com/docs/api-loadable-server/#chunkextractorgetscripttags
public string Scripts { get; private set; } = "";

// Get preload link tags for all loadable components rendered with this function. See https://loadable-components.com/docs/api-loadable-server/#chunkextractorgetlinktags
public string Links { get; private set; } = "";

// Get style link tags for all loadable components rendered with this function. See https://loadable-components.com/docs/api-loadable-server/#chunkextractorgetstyletags
public string Styles { get; private set; } = "";

public override void PreRender(Func<string, string> executeJs)
{
    ...
    executeJs($"var extractor = new ChunkExtractor({{ ... }});");

    // Add chunks seen in previous renders into the new ChunkExtractor
    executeJs($"for (const chunk of {m_chunksJson}) {{ extractor.addChunk(chunk); }}");
}

public override string WrapComponent(string componentToRender)
{
    return $"extractor.collectChunks({componentToRender})";
}

public override void PostRender(Func<string, string> executeJs)
{
    // Store chunks so we can build a ChunkExtractor on the next render that essentially picks up where we left off.
    m_chunksJson = executeJs($"JSON.stringify(extractor.chunks)");

    // See https://loadable-components.com/docs/api-loadable-server/#chunkextractorgetscripttags
    Scripts = $"{executeJs("extractor.getScriptTags({ ... })")}";

    // See https://loadable-components.com/docs/api-loadable-server/#chunkextractorgetstyletags
    Styles = $"{executeJs("extractor.getStyleTags({ ... })")}";

    // See https://loadable-components.com/docs/api-loadable-server/#chunkextractorgetlinktags
    Links = $"{executeJs("extractor.getLinkTags({ ... })")}";
}

...

private string m_chunksJson = "[]";

}
In the head of the page in our Razor view, we invoke a method that
essentially spits out loadableFunction.Links + loadableFunction.Styles.
Late in the body of our page we render
@Html.RenderReactInitJavascript()
followed by a method call that essentially returns just
loadableFunction.Scripts.
We use our app's dependency injection system to make our LoadableFunction
instance available to Razor but scope its lifetime to exactly one request.
Step 2: Create a custom ReactEnvironment
We need a way to override React.NET's default behavior of generating
script elements that invoke ReactDOM.hydrate directly. This is because we
need to wrap hydrate calls in a loadableReady
https://loadable-components.com/docs/api-loadable-component/#loadableready
callback.
Early in the page we define window.loadableReadyCallbacks.

Our LoadableComponentsReactEnvironment below writes to
window.loadableReadyCallbacks on renders.
using System.IO;using React;
namespace Faithlife.Web.Infrastructure
{
internal sealed class LoadableComponentsReactEnvironment : ReactEnvironment
{
public LoadableComponentsReactEnvironment(
IJavaScriptEngineFactory engineFactory,
IReactSiteConfiguration config,
ICache cache,
IFileSystem fileSystem,
IFileCacheHash fileCacheHash,
IReactIdGenerator reactIdGenerator
)
: base(engineFactory, config, cache, fileSystem, fileCacheHash, reactIdGenerator)
{
m_reactIdGenerator = reactIdGenerator;
}
  // This is intended to be identical to React.NET's ReactEnvironment.CreateComponent except that it creates
  // a LoadableComponentsComponent instead of ReactComponent.
  public override IReactComponent CreateComponent<T>(
  	string componentName,
  	T props,
  	string containerId = null,
  	bool clientOnly = false,
  	bool serverOnly = false)
  {
  	if (!clientOnly)
  		EnsureUserScriptsLoaded();
  	ReactComponent reactComponent = new LoadableComponentsComponent(this, _config, m_reactIdGenerator, componentName, containerId)
  	{
  		ClientOnly = clientOnly,
  		Props = props,
  		ServerOnly = serverOnly,
  	};
  	_components.Add(reactComponent);
  	return reactComponent;
  }

  private sealed class LoadableComponentsComponent : ReactComponent
  {
  	public LoadableComponentsComponent(IReactEnvironment environment, IReactSiteConfiguration configuration, IReactIdGenerator reactIdGenerator, string componentName, string containerId)
  		: base(environment, configuration, reactIdGenerator, componentName, containerId)
  	{ }

  	public override void RenderJavaScript(TextWriter writer)
  	{
  		var callbackStart = ClientOnly ?
  			"window.addEventListener('DOMContentLoaded', function () {" :
  			"window.loadableReadyCallbacks.push(function () {";
  		writer.Write(callbackStart);
  		base.RenderJavaScript(writer);
  		writer.Write("});");
  	}
  }

  private readonly IReactIdGenerator m_reactIdGenerator;

}
}
Now that we have our list of callbacks (list of ReactDOM.hydrate calls),
invoke them with loadableReady in the browser.
import { loadableReady } from @.***/component';
loadableReady(() => {
for (const invokeCallback of window.loadableReadyCallbacks) {
invokeCallback();
}});
We need something like this at app startup to actually use the custom
IReactEnvironment.
// Override React.NET typesvar container = AssemblyRegistration.Container;container.Register<IReactEnvironment, LoadableComponentsReactEnvironment>()
.AsPerRequestSingleton();
Step 3: Disable code-splitting in server JavaScript bundle
We use webpack to build a browser JS bundle and a server JS bundle.
React.NET's JavaScript engines don't have a way to dynamically load JS, so
just load everything on the server. This makes dynamic imports for loadable
components a no-op since all the chunks are already there.
new webpack.optimize.LimitChunkCountPlugin({
maxChunks: 1}),
I'm probably forgetting some major things, but this is the best I can
easily distill my project's approach. If I had more time, I'd create a
minimal, open source demo app. I hope this information helps someone. Good
luck!
—
Reply to this email directly, view it on GitHub
https://github.com/reactjs/React.NET/issues/1255#issuecomment-1018045191,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAHGCFT57JNKMCWHMIY5AZDUXCRW3ANCNFSM44Y2XJQA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>


Error: Language supported but model not found

Traceback (most recent call last):
  File \"/usr/src/app/project/NER_API.py\", line 120, in post
    json_output = rpyc.classic.obtain(NER_service.root.processNERRequest(language, data_set))
  File \"/usr/local/lib/python3.8/site-packages/rpyc/core/netref.py\", line 253, in _call__
    return syncreq(_self, consts.HANDLE_CALL, args, kwargs)
  File \"/usr/local/lib/python3.8/site-packages/rpyc/core/netref.py\", line 76, in syncreq
    return conn.sync_request(handler, proxy, *args)
  File \"/usr/local/lib/python3.8/site-packages/rpyc/core/protocol.py\", line 469, in sync_request
    return self.async_request(handler, *args, timeout=timeout).value
  File \"/usr/local/lib/python3.8/site-packages/rpyc/core/async.py\", line 102, in value
    raise self._obj
_get_exception_class.<locals>.Derived: Language supported but model not found

========= Remote Traceback (1) =========
Traceback (most recent call last):
  File \"/opt/conda/envs/ner_service/lib/python3.6/site-packages/rpyc/core/protocol.py\", line 320, in _dispatch_request
    res = self._HANDLERS[handler](self, *args)
  File \"/opt/conda/envs/ner_service/lib/python3.6/site-packages/rpyc/core/protocol.py\", line 593, in _handle_call
    return obj(*args, **dict(kwargs))
  File \"NERService.py\", line 158, in exposed_processNERRequest
    raise e
  File \"NERService.py\", line 154, in exposed_processNERRequest
    model = NERService.__NER_instance.getModel(language)
  File \"NERService.py\", line 128, in getModel
    raise Exception(\"Language supported but model not found\")
Exception: Language supported but model not found

"

Using Docker. All required models are downloaded. Fresh build from the repo.

Hello,
I have tested the docker container, the one previous accepting your changes, and everything runs fine. Are you sure the changes that you proposed did not affect the loading of the models? Because I'm sure the error comes modifications done in the paths in the docker-compose file and config files:
Seeing the container I can see that there is some kind of duplicated files:

As you can see in the ulr_ner_rest-ner-1:/data/embeddings there is nothing
However in ulr_ner_rest-ner-1:/ner_service/embeddings you can notice that the embeddings (BERT and FastText) are found there:

And I have stopped the contained before:

And the embeddings that I downloaded before are there. They did not vanished.
So, while I originally accepted the changes that you proposed, the code seems to work perfectly.

Thus, I'm guessing that you use a modified version of the code in order to improve the quality of the docker. And that the changes done in the paths are the ones that affected the system finding the models. I hope that the images that I attached could give you an idea of what you and I did wrong. In the sense, that I'm sure that certain files shouldn't be duplicated (my mistake) and why your paths are wrong (?).

And just to make it clear, why it shows that I had a modified file in the branch:

While I downloaded all the FastText models, in order to test docker in my laptop I had to reduce the number of models to load as I don't have huge amounts of RAM. In this case, I chose Russian. Otherwise, the code was the same.

Unless the paths are changed, the models are downloaded on each container startup. In the latest commit to refactor branch I got everything working. The mount logic was flawed and the models were saved inside the container and not the mount.

The models will be downloaded on each container startup if the files are incomplete or did not finish the download. But otherwise, if I run docker-compose up the downloaded models are there:

It might look that the models are being tried to be donwloaded, but in fact the bash file is checking that everything was downloaded and unzip. I don't know if that was the issue.
I might be using the wrong command to do the startup, that could be possible.
I will check your branch, but if you could guide me on which is the command that was breaking the downloaded files it could be great.

I think the main problem was that all of the embeddings were downloaded into the same directories as the scripts and this actually made it to run each time. For that reason I added the "data" folder inside ner_service directory - it will only contain the downloaded models. Important is to mount the "ner_service/data" so it will be using a volume for the downloadable models. With that i got the startup time from ~30mins to 2 mins.
Also I have no idea why the model loading (not downloading) failed before. It seems to be working now tho :)

I will close the issue then, I'll check your branch during the weekend and merge it later. If there is another issue, don't hesitate in opening another issue or reopening this one.

Sure, but there still might be stuff I missed as I'm not too familiar with the code. For one I saw the vocab file for BERT being downloaded still each time. It's a small issue, but that hints there is still some small flaw in the mount/download logic.


want to provide a logo

What happened?
there is no logo

How can we reproduce this bug?
no
Desktop Information (Optional)
No response
Urgency (Optional)
High priority

@Shreyaa173 Please use this fix in issue #1210. There is no need to create a new issue for this.


Nested imports fail

I have three tengo files uno.tengo
due := import(`due`)

due.funcy(1)

the second file due.tengo,
tre := import(`tre`)

funcy := func(a) {
  return tre.fun(a)
}

due := {
  funcy: funcy
}
export due

and the third  tre.tengo
fun := func(a) {
  return a
}

tre := {
  fun: fun
}
export tre

All files are in the same folder. Invoking tengo uno.tengo within the same folder throws the error:

Compile Error: module 'tre' not found
at due.tengo:1:8

So it seems nested imports don't work.

Hi, it looks like there is a small bug, @d5 @geseq Can following patch fix this? Apparently, allowFileImport is not set for child compilers.
diff --git a/compiler.go b/compiler.go
index eb686ed..4d3dd60 100644
--- a/compiler.go
+++ b/compiler.go
@@ -1086,6 +1086,7 @@ func (c *Compiler) fork(
        child := NewCompiler(file, symbolTable, nil, c.modules, c.trace)
        child.modulePath = modulePath // module file path
        child.parent = c              // parent to set to current compiler
+       child.allowFileImport = c.allowFileImport
        return child
 }

Yes, please open PR with your change. Thanks @ozanh


[Bug] scroll to top button is missing in the settings

Describe the bug

scroll to top button is missing in the nova settings(im on the latest script which you provided before)

Browser: Chrome 999.0
...monkey 99.1
Nova 6.6.1

scroll to top is not present in the script you provided

its simply no there. don't know what's wrong


uint versions of Math.Max() and Math.Min() should return uint

uint versions of Math.Max() and Math.Min() should return uint. Following valid C# code fails to compile.
https://docs.microsoft.com/en-us/dotnet/api/system.math.max
https://docs.microsoft.com/en-us/dotnet/api/system.math.min
Steps To Reproduce
https://deck.net/ad39683e0a55faa5633d844b9f081f33
public class Program
{
    public static void Main()
    {
        uint uint1 = 10;
        uint uint2 = 20;
        uint1 = Math.Max(uint1, uint2);
        Console.WriteLine(uint1);
    }
}

Tested on 16.0.0-beta

We added Min/Max overloads for all integer types and float/double/decimal.
Its method signatures also changed to match .Net.
For example, int Min(params int[] values) -> int Min(int val1, int val2).
The changes merged into master branch and will be included into next Bridge.NET release.


Block builder

Create a block builder, allows to have a single path to build a block and to validate it.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@acad20a). Click here to learn what that means.
The diff coverage is 0%.

@@           Coverage Diff            @@
##             master    #510   +/-   ##
========================================
  Coverage          ?   44.3%
========================================
  Files             ?     167
  Lines             ?   15269
  Branches          ?       0
========================================
  Hits              ?    6765
  Misses            ?    8504
  Partials          ?       0

Impacted Files
Coverage Δ

chain-impl-mockchain/src/block/mod.rs
48.62% <ø> (ø)

chain-impl-mockchain/src/block/builder.rs
0% <0%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update acad20a...cdfa29d. Read the comment docs.


Scalacheck Exercises

This issue can be closed once https://github.com/scala-exercises/scala-exercises/pull/583 is merged.


Updates release to 4.2.1

Deploy is viewable here despite what the details say ;)
https://deploy-preview-12--objective-montalcini-de8891.netlify.com/


reading xdf in Python

This may be a beginner question... I'm trying to read a XDF in Python 2.7.14.
Based on the provided example by pyxdf, I get 9 streams for a file recorded in LabRecorder.
In Python, each of these streams in a dict with 4 elements: 'footer', 'info', 'time_series' and 'time_stamps'.  In this case, time_series is a list of size 91476:
In[74]: type(streams[5]['time_series'][0])
Out[74]: list
In[75]: type(streams[5]['time_series'][0][0])
Out[75]: unicode
The first element of the list is:
In[76]: streams[5]['time_series'][0]
Out[76]: [u"{'topic': 'pupil.0', 'circle_3d': {'center': [-2.3497767498603004, 2.654025112890184, 65.72036350503458], 'normal': [-0.36184812409195516, 0.2045810554549084, -0.9095122466685583], 'radius': 2.5317374778936554}, 'confidence': 0.5710644240694664, 'timestamp':<PHONE_NUMBER>41, 'diameter_3d': 5.063474955787311, 'ellipse': {'center': [138.12961511213774,<PHONE_NUMBER>4823018], 'axes': [42.43878278862324, 47.78052690005625], 'angle': -31.2436050134567}, 'norm_pos': [0.43165504722543047, 0.3963624481323742], 'diameter': 47.78052690005625, 'sphere': {'center': [1.9924007392431637, 0.19905244743128203, 76.63451046505729], 'radius': 12.0}, 'projected_sphere': {'center': [176.11921901548533,<PHONE_NUMBER>3757936], 'axes': [194.16839632302174,<PHONE_NUMBER>2302174], 'angle': 90.0}, 'model_confidence': 0.2126201167521935, 'model_id': 198, 'model_birth_timestamp':<PHONE_NUMBER>41, 'theta': 1.77683201806055, 'phi': -1.9494466265525878, 'method': '3d c++', 'id': 0}"]
Now, how can I access the 'ellipse': {'diameter'} value of each element in the list?

You're using the old Pupil plugin. The new one here has completely different structure.
But I guess you still have some data files using the old structure that you need to analyze. The old plugin made several streams. One of them, like the one you show here, has each sample is a python object encoded in a string. This is a bit difficult to work with because you first have to decode it (I don't think it's regular JSON but maybe). One of the other streams should have a representation of the data that is easier to work with. I think the streams you want have names like 'Pupil Primitive Data - Eye 0' and Eye 1.


typstyle formatter  is adding sometimes a trailing coma

Describe the bug
A clear and concise description of what the bug is.
Package/Software version:
VSCode version(Help -> About):
Version: 1.95.1
Commit: 65edc4939843c90c34d61f4ce11704f09d3e5cb6
Date: 2024-10-31T05:14:54.222Z (5 days ago)
Electron: 32.2.1
ElectronBuildId: 10427718
Chromium: 128.0.6613.186
Node.js: 20.18.0
V8: 12.8.374.38-electron.0
OS: Darwin arm64 24.1.0

tinymist extension version: v0.11.0. Get it by tinymist --version in terminal.
tinymist --version
zsh: command not found: tinymist (but installed 0.12)

Logs:
tinymist server log(Output Panel -> tinymist):

tinymist client log(Help -> Toggle Developer Tools -> Console):

Additional context
Add any other context about the problem here.
Installing tinymist in new profile and setting Tinymist: Formatter Mode to typstyle, then rightclick "Format document"
results in adding trailing comma to this code
// Remove gridlines from tables
#set table(
  inset: 6pt,
  stroke: none
)

So the results is
// Remove gridlines from tables
#set table(
  inset: 6pt,
  stroke: none,
)

the second formatter format it correctly into
// Remove gridlines from tables
#set table(inset: 6pt, stroke: none)

I will create the relevant issue on typstyle repository, the issue here might be closed


Added Daemon-isation

Thanks so much for this, i promise ill test it and then merge it in the next few weeks.  Flat out with changing jobs and houses at the moment!

I'm actually not sure this is necessary now, @carlossg has created an upstart config file, which allows it to run as a service without additional code in the python script.
I think this is a better solution, any comments? (@mrwhale)

Sounds good to me! probably a better way anyway. I just hacked this together so I could have it running in the background without using screen. Nice work @carlossg!

Awesome.  Closed.


Don't treat tsickle warnings as errors

Not sure if you want to merge this or not, but figured I'd put it here anyway.
Happy to add a new test if you want me to before merging.
PR Checklist
Please check if your PR fulfills the following requirements:

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature (please, look at the "Scope of the project" section in the README.md file)
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?

Issue Number: https://github.com/bazelbuild/rules_typescript/issues/377
What is the new behavior?
$ bazel build //src/reducers:reducers
INFO: From Compiling TypeScript (devmode) //src/reducers:reducers:
src/reducers/reducers.ts:38:1 - warning TS0: @namespace annotations are redundant with TypeScript equivalents

38 /** @namespace */
   ~~~~~~~~~~~~~~~~~

Target //src/reducers:reducers up-to-date:
  dist/bin/src/reducers/reducers.d.ts
INFO: Build completed successfully, 3 total actions

Does this PR introduce a breaking change?

[ ] Yes
[x] No

hmm @evmar just made some changes around this same thing, so that we always treat these as errors in google3
can you explain more why you need this? It's easier for our cognitive load if google3 and external work the same.

These tsickle warnings happen when code you've written does something that Closure compiler would interpret and we think you shouldn't have included it.  But for non-Google users who aren't necessarily targeting Closure compiler, it's not clear if we should fail their builds because of it.  On the other hand, printing warnings is kind of annoying as well.
I think maybe we should just swallow+hide these warnings entirely.  I wonder if maybe tsickle should return its warnings via some side channel so that it doesn't get mixed in with compiler warnings.
The other thing we talked about is that tsickle really shouldn't be in the business of complaining about this.  It sorta belongs in tsetse instead.  But the problem with that is that it would mean duplicating a bunch of tsickle logic into tsetse (to identify the problematic patterns).
What we recently changed in the tsickle CLI (which almost nobody uses) is this:
https://github.com/angular/tsickle/commit/7d01aeefb2e168f0f55895b0f04b950e11f2ad2d
PS: @JaredNeil for any change, remember to make the commit message explain why you're doing it.

Looking at this CL in particular I think it makes sense (to not fail compilations on warnings), so the only thing to wonder about is whether we want to warn users during their builds if they make tsickle mad.  The warnings are about stuff like "don't include types in your jsdoc".

We had some Typescript code that created a plugin interface object to interact with some old closure js code. It contained some closure annotations like this:
{
    'lucid':{
        'useragent': {
            /**
            * Determine if the user is using the chrome browser.
            * @memberOf    lucid.useragent
            * @method      is_chrome
            */
            'is_chrome': goog.bind(this.is_chrome, this),
        },
    }
}

And that's where we were getting the warnings.
However, since I opened this PR, we've actually done some refactoring and removed the closure comments, so this is no longer a problem for us. Happy to do some work if you still want this change, but I'm fine with closing the issue and PR as well.

I'm inclined to leave the warnings fatal for now, because I feel that showing warnings in the stdout of a compiler just causes warning blindness, not fixing the warning. If we like it, we should have a linter for it that reports later in the development process.

It sounds fine, but note that the consequence of this is that code written without being aware of tsickle may not compile under tsickle.  This can come up in an app that has some non-tsickle build and then they wanna run a tsickle-based build on the side.