Failed to load Info.plist from bundle at path

When detox uninstalls the application, and then tries to install it again, xcrun throws an error:
An error was encountered processing the command (domain=IXUserPresentableErrorDomain, code=1):
This app could not be installed at this time.
Failed to load Info.plist from bundle at path /Users/name/Library/Developer/CoreSimulator/Devices/ID/data/Library/Caches/com.apple.mobile.installd.staging/temp.gkqkoQ/extracted/Payload/name.app
Failed to load Info.plist from bundle at path /Users/name/Library/Developer/CoreSimulator/Devices/ID/data/Library/Caches/com.apple.mobile.installd.staging/temp.gkqkoQ/extracted/Payload/name.app
Underlying error (domain=MIInstallerErrorDomain, code=35):
	Failed to load Info.plist from bundle at path /Users/name/Library/Developer/CoreSimulator/Devices/ID/data/Library/Caches/com.apple.mobile.installd.staging/temp.gkqkoQ/extracted/Payload/name.app

Description

Steps to Reproduce
/usr/bin/xcrun simctl install ID BLA.app
/usr/bin/xcrun simctl uninstall ID BLA.app
/usr/bin/xcrun simctl install ID BLA.app

Running uninstall twice before installing again fixes problem
Detox, Node, Device, Xcode and macOS Versions

Detox:
React Native: 56.0
Node: v8.3.0
Device: iphone 6s 12(tested on others, same thing)
Xcode: 10
macOS: mojave

These guys have the same problem https://github.com/appium/appium/issues/11350

I reproduced this once, and it indeed failed installation right after uninstall. But @noomorph has been running into this issue regardless of uninstall. Or am I wrong @noomorph ?

@nezaidu, Andrey, could you patch your local detox code according to the pull request and see whether it alleviates the issue?

@noomorph fix works, thank you very much!


Add option to export view space normals.

We can add this matrix, however this then definitely requires to change the push constants to a uniform buffer which changes every frame (https://stackoverflow.com/a/50956855).
For AMD hardware the current state of the master with 3 matrices seems to already bring forward a warning for the large push constant buffer. Changing this to a uniform buffer is required to be able to guarantee running the application without vulkan errors/warnings.


[QUARKS-84] [WIP] Broken home page link when on a recipe page

How about using relative path?
This issue is WIP status because redline conflict(I just edited 12th  line)
I'll check it next day

Thanks for the fix @Cazen, looks good!

Thank you @queeniema for review
I wondered why red background exist in git diff. But it looks like error-highlighting feature of GitHub's text editor(http://stackoverflow.com/questions/30667675/what-does-a-red-text-background-mean-in-github-comparison-view)
I'll remove WIP tag soon
Have a good day :)


RYA-174 Adding Mongo Cleanup in Test

Description
Modified tests with embedded mongo.  Embedded mongo now cleans  up after itself.
Tests
no new tests
Links
Jira
Checklist

[ ] Code Review
[ ] Squash Commits

People To Review

@dlotts Can you take a look at this?  I think I finally fixed it.


[P0] Easy UI changes but important changes in "Control Plane app" menus

P0 son these changes are available for the DEMO VIDEO RECORDING we're doing.
Also, add the link to open the MEC-Accelerator in a different browser tab, as in the menus below:

I've pushed a new version of the control plane ui image. Btw the alerts ui url is fetch from the env variable NEXT_PUBLIC_ALERTS_UI_URI, I will update the k8s deployment to include this setting

This is done, but check this related minor bug, though:
https://github.com/Azure/mec-app-solution-accelerator/issues/117


adding expressions url_encode() and url_decode()

provide expressions url_encode and url_decode to allow for those transformations to be done at ingestion and query within druid.
The default URL encoding/decoding functions of Java (java.net.URLEncoder and java.net.URLDecoder) were used.
Followed how IPv4Address macros was built as guideline for organization and naming.
The alternate design of leveraging 3rd party library was rejected to avoid any additional dependencies.
This PR has:

[x] been self-reviewed.
[x] added documentation for new or modified features or behaviors.
[x] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[x] been tested in a test Druid cluster.

@nbuesing Could you resolve the conflict? I think these two functions are useful, and I can review the PR.


Fixes

Replace never with empty
Use type imports

I think you don't need this $ElementType things because you have $Call ? (Also you could use real boolean)

https://github.com/types/npm-ramda/issues/269#issuecomment-364754563

@goodmind: Thanks!
Agreed, $ElementType is ugly and real booleans would be nice.
Seems TS has gotten better support for conditionals as well (T extends number ? A : B).
Over there I'd wanted to switch to function-based pattern matching before ($Call on an interface of multiple functions). Wonder if that'd be viable in Flow.
So far I was converting blind -- I was able to see compiler errors (notably that in), but when I separately compiled this test.ts file with some evident type issues, Flow seemed cool with it too, so I'm still sorta confused.

Also I think you can't just convert directly all this things

Yeah, sounds fair. So far I was really just seeing how far I could take this in a straight-forward conversion. I'm pretty sure you're right though.

maybe $ObjMapi?

Hmm. So $ObjMapi seems for when you already have a your object. My remaining in use case were generally about cases where I'd have a key / union of keys in a generic and wanna use that to make an object. In TS in / Record help with that, but in Flow I haven't seen this yet I think.

equivalent to TS's .d.ts is .js.flow
there's indeed no TS Compiler API, babel can manipulate nodes but no typecheck (would be cool if Flow had OCaml compiler plugins)
I think you can use what https://github.com/facebook/flow using for tests (either tests or newtests)

Thanks! Gonna have to check that out.

I think you can't iterate unions in flow

Lol you can actually do something like this, but I'm not sure about it
https://flow.org/try/#0MYewdgzgLgBA5gUygaQQTxgXhgCgGYCUWAfDADwAKAXDAFTE4AONFRmpA3gFAwwBOSAK58wMbr14BtRgF0aeHAR4wAvlzVcoaRghio0ELDEkByAIYmANDBMAjKzeAmZm7boAkAFRAB5WwCsEYCgyZGsAMVJsZXcAUQAPM2CyOIAbBABbBDAoTzcyZQBIL0FGdIBZM0ZQ63cAYTNU1LItHRA8eCR9COJiS2VeMEEM2wQ+ZV6BiS4AEyDUswEYADdFmDMaL18AoJD9CGtFEhghkbHiKa4AeiuYOPjgBEYoWL4+EHGcDbFv09G+ay2Gh-MbWYA0aB8ACWYDgKgIQA

Yeah, unions vs tuples huh. Not bad, thanks!

@tycho01 any progress?

not yet! I've gotten a bit distracted by the new TS features, which have narrowed the gap a bit. TS is still low on FP features though, so I still wanna try more on Flow.

I've been out of the loop for a bit, what are the new features that close the gap? Is there a way to read up on the progress you guys made? I read the TS changelogs obviously

@SimonMeskens it's version of typical for Flow

@SimonMeskens notably conditional types, essentially type-level type checks not unlike pattern matching.
My progress: I forked the testing lib so I could determine the TS version from here, tried to improve typings a bit based on the new TS, added docs... then tried to look into actually using this thing, and actually running tsc.
I made a bit of progress there, but for now I fear this lib is still for reading PoCs rather than for consumption.
At least I managed to not have non-terminating types prevent any attempt at compilation.
I've committed the tsc log to track progress on compiler errors, in addition to the existing log detailing behavioral progress.

hm. I hadn't tried much, but is there a way to see the inferred type in Flow? bad types give errors (yay), but it seemed good types just go through without further feedback. :/

@tycho01 flow type-at-pos?


Feature: Add Gitpod or Stackblitz button to README

Is your feature request related to a problem? Please describe.
As a new or returning contributor, I may not want to pull the repo down to my local machine in order to validate a change before submitting a PR. Having a button that opens the project in a sandbox environment such as Gitpod or Stackblitz would make contributing possible purely through the browser, and wouldn't require pulling anything to a local machine.
Describe the solution you'd like
Add a button to the root README that opens this repository in something like Gitpod or Stackblitz.
Describe alternatives you've considered
The alternative would be to continue recommending a full local clone of the project. Doing this is fine, but having the flexibility to set something up in the browser/cloud would be an additional help to folks wanting to contribute.
Additional context
Here's an example of the Gitpod button:

Source: https://github.com/lindsaykwardell/vite-elm-template
Article by Gitpod about adding such a button.

This is a great idea. We're definitely going to look into implementing this because we want the contributor flow to be as seamless as possible.


test

Changes

Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:

[ ] Follows the authoring recommendations
[ ] Includes docs (if user facing)
[ ] Includes tests (if functionality of task changed or new task added)
[ ] Commit messages follow commit message best practices
[ ] Complies with Catalog Organization TEP, see example. Note An issue has been filed to automate this validation

[ ] File path follows  <kind>/<name>/<version>/name.yaml

[ ] Has README.md at <kind>/<name>/<version>/README.md

[ ] Has mandatory metadata.labels - app.kubernetes.io/version the same as the <version> of the resource

[ ] Has mandatory metadata.annotations tekton.dev/pipelines.minVersion

[ ] mandatory spec.description follows the convention
  ```

  spec:
    description: >-
      one line summary of the resource

      Paragraph(s) to describe the resource.
  ```

See the contribution guide
for more details.

Catlin Output
FILE: task/golangci-lint/0.1/golangci-lint.yaml
WARN : Step "lint" uses image "docker.io/golangci/golangci-lint:$(params.version)" that contains variables; skipping validation

Catlin script lint Output
ERROR: /usr/bin/shellcheck, [-s sh] failed:

In golangci-lint-lint line 2:
golangci-lint run $(params.flags)
                  ^-------------^ SC2046: Quote this to prevent word splitting.

For more information:
  https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt...

/test .*

Catlin Output
FILE: task/maven/0.3/maven.yaml
ERROR: Resource path is invalid; expected path: task/maven/0.2/maven.yaml
HINT : Task: tekton.dev/v1beta1 - name: "maven" is missing a readable display name annotation("tekton.dev/displayName")
WARN : Step "mvn-goals" uses image "$(params.MAVEN_IMAGE)" that contains variables; skipping validation

Catlin script lint Output
ERROR: /usr/bin/shellcheck, [-s bash] failed:

In maven-mvn-settings line 4:
echo 'using existing $(workspaces.maven-settings.path)/settings.xml' && exit 0
     ^-- SC2016: Expressions don't expand in single quotes, use double quotes for that.

In maven-mvn-settings line 6:
cat > $(workspaces.maven-settings.path)/settings.xml <<EOF
      ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 24:
if [ -n "$(params.PROXY_HOST)" -a -n "$(params.PROXY_PORT)" ]; then
                               ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 31:
  if [ -n "$(params.PROXY_USER)" -a -n "$(params.PROXY_PASSWORD)" ]; then
                                 ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 42:
  sed -i "s|<!-- ### HTTP proxy from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                        ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 45:
if [ -n "$(params.SERVER_USER)" -a -n "$(params.SERVER_PASSWORD)" ]; then
                                ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 53:
  sed -i "s|<!-- ### SERVER's USER INFO from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                                ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 62:
  sed -i "s|<!-- ### mirrors from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                     ^-- SC2046: Quote this to prevent word splitting.

For more information:
  https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt...
  https://www.shellcheck.net/wiki/SC2166 -- Prefer [ p ] && [ q ] as [ p -a q...
  https://www.shellcheck.net/wiki/SC2016 -- Expressions don't expand in singl...

/test .*

Catlin Output
FILE: task/maven/0.3/maven.yaml
ERROR: Resource path is invalid; expected path: task/maven/0.2/maven.yaml
HINT : Task: tekton.dev/v1beta1 - name: "maven" is missing a readable display name annotation("tekton.dev/displayName")
WARN : Step "mvn-goals" uses image "$(params.MAVEN_IMAGE)" that contains variables; skipping validation

Catlin script lint Output
ERROR: /usr/bin/shellcheck, [-s bash] failed:

In maven-mvn-settings line 4:
echo 'using existing $(workspaces.maven-settings.path)/settings.xml' && exit 0
     ^-- SC2016: Expressions don't expand in single quotes, use double quotes for that.

In maven-mvn-settings line 6:
cat > $(workspaces.maven-settings.path)/settings.xml <<EOF
      ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 24:
if [ -n "$(params.PROXY_HOST)" -a -n "$(params.PROXY_PORT)" ]; then
                               ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 31:
  if [ -n "$(params.PROXY_USER)" -a -n "$(params.PROXY_PASSWORD)" ]; then
                                 ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 42:
  sed -i "s|<!-- ### HTTP proxy from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                        ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 45:
if [ -n "$(params.SERVER_USER)" -a -n "$(params.SERVER_PASSWORD)" ]; then
                                ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 53:
  sed -i "s|<!-- ### SERVER's USER INFO from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                                ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 62:
  sed -i "s|<!-- ### mirrors from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                     ^-- SC2046: Quote this to prevent word splitting.

For more information:
  https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt...
  https://www.shellcheck.net/wiki/SC2166 -- Prefer [ p ] && [ q ] as [ p -a q...
  https://www.shellcheck.net/wiki/SC2016 -- Expressions don't expand in singl...

/test .*

Catlin Output
FILE: task/maven/0.3/maven.yaml
ERROR: Resource path is invalid; expected path: task/maven/0.2/maven.yaml
HINT : Task: tekton.dev/v1beta1 - name: "maven" is missing a readable display name annotation("tekton.dev/displayName")
WARN : Step "mvn-goals" uses image "$(params.MAVEN_IMAGE)" that contains variables; skipping validation

Catlin script lint Output
ERROR: /usr/bin/shellcheck, [-s bash] failed:

In maven-mvn-settings line 4:
echo 'using existing $(workspaces.maven-settings.path)/settings.xml' && exit 0
     ^-- SC2016: Expressions don't expand in single quotes, use double quotes for that.

In maven-mvn-settings line 6:
cat > $(workspaces.maven-settings.path)/settings.xml <<EOF
      ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 24:
if [ -n "$(params.PROXY_HOST)" -a -n "$(params.PROXY_PORT)" ]; then
                               ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 31:
  if [ -n "$(params.PROXY_USER)" -a -n "$(params.PROXY_PASSWORD)" ]; then
                                 ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 42:
  sed -i "s|<!-- ### HTTP proxy from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                        ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 45:
if [ -n "$(params.SERVER_USER)" -a -n "$(params.SERVER_PASSWORD)" ]; then
                                ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 53:
  sed -i "s|<!-- ### SERVER's USER INFO from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                                ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 62:
  sed -i "s|<!-- ### mirrors from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                     ^-- SC2046: Quote this to prevent word splitting.

For more information:
  https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt...
  https://www.shellcheck.net/wiki/SC2166 -- Prefer [ p ] && [ q ] as [ p -a q...
  https://www.shellcheck.net/wiki/SC2016 -- Expressions don't expand in singl...

/test .*

/test .*

--- task/maven/0.2/README.md
+++ task/maven/0.3/README.md
@@ -5,7 +5,7 @@
Install the Task
-kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/maven/0.2/maven.yaml
+kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/maven/0.3/maven.yaml

Parameters

/test .*

/test .*

/test .*

Catlin Output

Catlin script lint Output
ERROR: /usr/bin/shellcheck, [-s bash] failed:

In maven-mvn-settings line 4:
echo 'using existing $(workspaces.maven-settings.path)/settings.xml' && exit 0
     ^-- SC2016: Expressions don't expand in single quotes, use double quotes for that.

In maven-mvn-settings line 6:
cat > $(workspaces.maven-settings.path)/settings.xml <<EOF
      ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 24:
if [ -n "$(params.PROXY_HOST)" -a -n "$(params.PROXY_PORT)" ]; then
                               ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 31:
  if [ -n "$(params.PROXY_USER)" -a -n "$(params.PROXY_PASSWORD)" ]; then
                                 ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 42:
  sed -i "s|<!-- ### HTTP proxy from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                        ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 45:
if [ -n "$(params.SERVER_USER)" -a -n "$(params.SERVER_PASSWORD)" ]; then
                                ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 53:
  sed -i "s|<!-- ### SERVER's USER INFO from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                                ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 62:
  sed -i "s|<!-- ### mirrors from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                     ^-- SC2046: Quote this to prevent word splitting.

For more information:
  https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt...
  https://www.shellcheck.net/wiki/SC2166 -- Prefer [ p ] && [ q ] as [ p -a q...
  https://www.shellcheck.net/wiki/SC2016 -- Expressions don't expand in singl...

/test .*

Catlin Output
FILE: task/maven/0.3/maven.yaml
ERROR: Resource path is invalid; expected path: task/maven/0.2/maven.yaml
HINT : Task: tekton.dev/v1beta1 - name: "maven" is missing a readable display name annotation("tekton.dev/displayName")
WARN : Step "mvn-goals" uses image "$(params.MAVEN_IMAGE)" that contains variables; skipping validation

Catlin script lint Output
ERROR: /usr/bin/shellcheck, [-s bash] failed:

In maven-mvn-settings line 4:
echo 'using existing $(workspaces.maven-settings.path)/settings.xml' && exit 0
     ^-- SC2016: Expressions don't expand in single quotes, use double quotes for that.

In maven-mvn-settings line 6:
cat > $(workspaces.maven-settings.path)/settings.xml <<EOF
      ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 24:
if [ -n "$(params.PROXY_HOST)" -a -n "$(params.PROXY_PORT)" ]; then
                               ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 31:
  if [ -n "$(params.PROXY_USER)" -a -n "$(params.PROXY_PASSWORD)" ]; then
                                 ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 42:
  sed -i "s|<!-- ### HTTP proxy from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                        ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 45:
if [ -n "$(params.SERVER_USER)" -a -n "$(params.SERVER_PASSWORD)" ]; then
                                ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 53:
  sed -i "s|<!-- ### SERVER's USER INFO from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                                ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 62:
  sed -i "s|<!-- ### mirrors from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                     ^-- SC2046: Quote this to prevent word splitting.

For more information:
  https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt...
  https://www.shellcheck.net/wiki/SC2166 -- Prefer [ p ] && [ q ] as [ p -a q...
  https://www.shellcheck.net/wiki/SC2016 -- Expressions don't expand in singl...

/test .*

/test .*

/test .*

/test .*

/test .*

/test .*

/test .*

/test .*

/test .*

/diff-task

/diff-task

/diff-task

Diff between version 0.2 and 0.3
diff --git a/task/maven/0.2/README.md b/task/maven/0.3/README.md
index 12dc37e..7401904 100644
--- a/task/maven/0.2/README.md
+++ b/task/maven/0.3/README.md
@@ -5,7 +5,7 @@ This Task can be used to run a Maven goals on a simple maven project or on a mul
 ## Install the Task

 ```bash
-kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/maven/0.2/maven.yaml
+kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/maven/0.3/maven.yaml
 ```

 ## Parameters

/test .*

Catlin Output
FILE: task/maven/0.3/maven.yaml
ERROR: Resource path is invalid; expected path: task/maven/0.2/maven.yaml
ERROR: Task: tekton.dev/v1beta1 - name: "maven" is missing a mandatory annotation for category("tekton.dev/categories")
ERROR: Category not defined
You can choose from the categories present at location: https://raw.githubusercontent.com/tektoncd/hub/main/config.yaml"
HINT : Task: tekton.dev/v1beta1 - name: "maven" is missing a readable display name annotation("tekton.dev/displayName")
HINT : Task: tekton.dev/v1beta1 - name: "maven" is more usable if it has "tekton.dev/platforms" annotation about platforms to run
WARN : Step "mvn-goals" uses image "$(params.MAVEN_IMAGE)" that contains variables; skipping validation
<details><summary>Catlin script lint Output</summary>

ERROR: /usr/bin/shellcheck, [-s bash] failed:
In maven-mvn-settings line 4:
echo 'using existing $(workspaces.maven-settings.path)/settings.xml' && exit 0
^-- SC2016: Expressions don't expand in single quotes, use double quotes for that.
In maven-mvn-settings line 6:
cat > $(workspaces.maven-settings.path)/settings.xml <<EOF
^-- SC2046: Quote this to prevent word splitting.
In maven-mvn-settings line 24:
if [ -n "$(params.PROXY_HOST)" -a -n "$(params.PROXY_PORT)" ]; then
^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.
In maven-mvn-settings line 31:
if [ -n "$(params.PROXY_USER)" -a -n "$(params.PROXY_PASSWORD)" ]; then
^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.
In maven-mvn-settings line 42:
sed -i "s||$xml|" $(workspaces.maven-settings.path)/settings.xml
^-- SC2046: Quote this to prevent word splitting.
In maven-mvn-settings line 45:
if [ -n "$(params.SERVER_USER)" -a -n "$(params.SERVER_PASSWORD)" ]; then
^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.
In maven-mvn-settings line 53:
sed -i "s||$xml|" $(workspaces.maven-settings.path)/settings.xml
^-- SC2046: Quote this to prevent word splitting.
In maven-mvn-settings line 62:
sed -i "s||$xml|" $(workspaces.maven-settings.path)/settings.xml
^-- SC2046: Quote this to prevent word splitting.
For more information:
https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt...
https://www.shellcheck.net/wiki/SC2166 -- Prefer [ p ] && [ q ] as [ p -a q...
https://www.shellcheck.net/wiki/SC2016 -- Expressions don't expand in singl...

/test .*

Catlin Output
FILE: task/maven/0.3/maven.yaml
ERROR: Resource path is invalid; expected path: task/maven/0.2/maven.yaml
ERROR: Task: tekton.dev/v1beta1 - name: "maven" is missing a mandatory annotation for category("tekton.dev/categories")
ERROR: Category not defined
You can choose from the categories present at location: https://raw.githubusercontent.com/tektoncd/hub/main/config.yaml"
HINT : Task: tekton.dev/v1beta1 - name: "maven" is missing a readable display name annotation("tekton.dev/displayName")
HINT : Task: tekton.dev/v1beta1 - name: "maven" is more usable if it has "tekton.dev/platforms" annotation about platforms to run
WARN : Step "mvn-goals" uses image "$(params.MAVEN_IMAGE)" that contains variables; skipping validation

Catlin script lint Output
ERROR: /usr/bin/shellcheck, [-s bash] failed:

In maven-mvn-settings line 4:
echo 'using existing $(workspaces.maven-settings.path)/settings.xml' && exit 0
     ^-- SC2016: Expressions don't expand in single quotes, use double quotes for that.

In maven-mvn-settings line 6:
cat > $(workspaces.maven-settings.path)/settings.xml <<EOF
      ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 24:
if [ -n "$(params.PROXY_HOST)" -a -n "$(params.PROXY_PORT)" ]; then
                               ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 31:
  if [ -n "$(params.PROXY_USER)" -a -n "$(params.PROXY_PASSWORD)" ]; then
                                 ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 42:
  sed -i "s|<!-- ### HTTP proxy from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                        ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 45:
if [ -n "$(params.SERVER_USER)" -a -n "$(params.SERVER_PASSWORD)" ]; then
                                ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

In maven-mvn-settings line 53:
  sed -i "s|<!-- ### SERVER's USER INFO from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                                ^-- SC2046: Quote this to prevent word splitting.

In maven-mvn-settings line 62:
  sed -i "s|<!-- ### mirrors from ENV ### -->|$xml|" $(workspaces.maven-settings.path)/settings.xml
                                                     ^-- SC2046: Quote this to prevent word splitting.

For more information:
  https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt...
  https://www.shellcheck.net/wiki/SC2166 -- Prefer [ p ] && [ q ] as [ p -a q...
  https://www.shellcheck.net/wiki/SC2016 -- Expressions don't expand in singl...


Optimize the config-related code.

Note that the common/types.go file includes two types of logical code: database and config related operations. Is it possible to consider that

Split common/types.go to two files, common/config.go and  common/db.go.
Make the init  code in common/types.go file explicit with the singleton pattern.
Make hard coded port in dtmsvr/dtmsvr.go configured in config.yaml.
Remove RetryLimit, which is not used anywhere.

I have think about your suggestion:

Splitting config code from common/types.go to common/config.go is OK. But it seems not necessary to split out a standalone common/db.go?
Init func is already a convenient singleton pattern in Go. There is no essential difference.
Making port in dtmsvr/dtmsvr.go configured in config.yml and env is a good suggestion.
Removing RetryLimit is OK.

Do you agree with the above content? If so, can you make a PR? Thank you very much.


'Out of sort memory' error when downloading data

@nclaidiere experienced the following error when trying to download data:

I haven't seen this myself with v0.6.0, but I also don't have tremendously large datasets yet (a few thousand rows). @nclaidiere Can you give us a rough estimate of the number of trials that you're trying to download here? And I'm guessing this doesn't happen with small datasets, right?

I haven't seen this before myself either. It may be solved by just setting a parameter in the server settings, or the system that omm-server is currently run on simply has to little RAM and increasing this will solve the issue.

I think it may be linked to the multiple connections problem... but we will need to run a bunch of studies to see if that comes up again. Let's wait and see!

Alright. Keep me posted. And if it does occur again, please provide the steps which may help us reproduce the problem.

Has this error popped up more frequently? If not, could it have been spurious or hardware dependent?

We haven't had another long go at it so we don't know, we are waiting for the next release, I'll let you know if it appears again.

Hi Guys!
So this error is back! Pascal was just prevented from pulling data for an experiment with a few hundred rows (so there is no problem with the RAM), from what I read it seems to appear when mysql is sorting json tables:
https://github.com/mozilla/addons-server/issues/15970
Our investigations so far:
The query to reproduce it is simply SELECT * FROM scanners_results ORDER BY scanners_results.created DESC LIMIT 10;
The problem is that created is not indexed - we thought it was
That forces MySQL to do a filesort for this query. Because some rows are quite large (they contain raw json) MySQL needs a lot of space to do the sorting
We're hoping an index would fix it. We're going to try to reproduce locally.
It's still possible it was caused by the upgrade, but it could just be bad luck, just caused by one big row added to the table recently.
See also the full thread on:
https://github.com/open-cogsci/omm-server/issues/92
The problem with increasing the sorting is clearly that the issue will reappear with large experiments.
What are your thoughts?
Cheers,
Nico (& Pascal)

Thanks for this thorough investigation :+1:

Thanks for looking into this. I need to dive into this a bit further. I think we indeed sort by a timestamp such as created_at, so it might be possible to make this an index which could resolve this sorting problem.
It may also be problematic because an index has to have a unique value, and there is no such guarantee for a timestamp. For instance if two participants add a datapoint at exactly the same time, the database will give an error. Even though such a chance is quite slim, it should be taken into account.

Thanks for looking into this. I need to dive into this a bit further. I think we indeed sort by a timestamp such as created_at, so it might be possible to make this an index which could resolve this sorting problem.
It may also be problematic because an index has to have a unique value, and there is no such guarantee for a timestamp. For instance if two participants add a datapoint at exactly the same time, the database will give an error. Even though such a chance is quite slim, it should be taken into account.

Also, if I work on this it is hard for me to reproduce this problem to determine my changes fixed it. @smathot have you been able to reproduce this issue?

@dschreij I haven't reproduced it myself, but I assume it's just a matter of seeding the database with enough data until the sort error occurs.

I just asked Pascal if the error is still occurring (I know he restarts the experiment regularly), if it is I could get download the DB and send it to you (I might need some directions to do that...). What do you think?

I seeded the database with 1000 participants, which all had completed a study with 15 jobs. This results in 15.000 rows of data in Excel, which my laptop had no trouble exporting.
I don't know how much data I have to seed to reproduce the problem, but if you already say the error occurred for you with around 250 records, I think we have to look at other causes or factors than mysql.
Can you tell me a bit more about the hardware on which you are running the system? For instance, how much GB of RAM (memory) does it have, or what is the age of the machine?

Another difference is that Sebastiaan and I are running on Linux and MacOS, while you are probably using Windows. Additionally, @smathot are you using a locally installed MySQL or the Docker container? I am using the former atm, so it may be worth trying the same with a Docker container again.

Further reading suggests that rather than increasing the sort_buffer_size, I should try to optimize the used query and only perform order by and group by operations on variables that are indexed (as @nclaidiere already pointed out in his investigation above). The query I use now does use a lot of order and group bies on variables that are not indexed, so there is definitely room for improvement in this regard. I needed to do this to efficiently aggregate the data collected for jobs, but I may be able to improve on this by using subqueries. The only problem is that I cannot tell if my changes or improvements have any effect, because I cannot reproduce this issue myself.
https://github.com/open-cogsci/omm-server/blob/master/app/Models/Study.js#L314-L332

After doing some more reading, I found that this is a reported bug in MySQL :)
https://bugs.mysql.com/bug.php?id=103225
The culprit is indeed the json column (as stated earlier) and even sorting on indexed columns did not remedy this issue in some cases. The bug should be fixed from MySQL 8.0.28 and onwards. Can you check if redownloading the mysql container and forcing a downloading the new version fixes this issue? You can discard your current mysql container by clicking the trash can icon next to it in Docker desktop. If you execute docker-compose up -d again, the new mysql should automatically be pulled in again.

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-28.html
This version is not released yet so the above

Good to hear that at least the cause is clear! The bug report also says that MySQL 8.0.17 did not suffer from this issue. Since we don't know when 8.0.28 will be released, and we shouldn't let @nclaidiere et al wait unnecessarily, can they also downgrade the MySQL container to 8.0.17?

Yes you can indicate the specific version you'd like to have in the docker-compose.yml file
https://support.circleci.com/hc/en-us/articles/115015742147-Pinning-a-Docker-Image-to-a-Specific-Version
If you then delete and pull in mysql again you should have that version

Ok, good. Can you update the docker-compose.yml, test it, and then give clear instructions to everyone on how to pull the correct versions? That way we can sort this out right now. :smile_cat:

Fantastic, that sounds like a very good solution. Happy new year to you!

Ok, good. Can you update the docker-compose.yml, test it, and then give clear instructions to everyone on how to pull the correct versions? That way we can sort this out right now. 😸

I can test it, but because I cannot reproduce the issue myself, the real testing has to be done by @nclaidiere.
I tried downgrading MySQL from 8.0.27 to 8.0.16, but this does not work out of the box. Apparently the mysql log format is tied to its specific version, so when I launch MySQL with the older version, I get this message after startup
[InnoDB] Unknown redo log format (4). Please follow the instructions at http://dev.mysql.com/doc/refman/8.0/en/ upgrading-downgrading.html.

and the process shuts down.
According to https://stackoverflow.com/a/50401030/16169022) this can be remedied by deleting the log files but the data needs to be backed up beforehand.
The MySQL devs themselves say downgrading MySQL versions is not supported: https://dev.mysql.com/doc/refman/8.0/en/downgrading.html
So, this is not an easy thing to do and will have some risk for data loss. What do you recommend? It may be worth the wait for MySQL 8.0.28 after all. I expect this version to be released sometime soon, as there have been 3 months at most between previous releases:

Ok, I can't do it myself for now, the lab is shut down because of covid for at least two weeks. So this would have to be Pascal and I prefer not to mess too much with Pascal's system so I suggest we wait for a bit and cross our fingers!!!! Meanwhile, extracting the data through other means would be great.

The new mysql version 8.0.28 has recently been released. You should be able to update it simply with docker-compose pull mysql in the folder which contains the docker-compose.yml. Let me know if this fixes the issue, or the hunt goes on.

I think this can be closed now.

This error (or something that resembles it) still persists with MySQL 8.0.29, although it seems to require more data now. I left an automated test run running overnight and in the morning it had crashed. The direct reason for the crash seems to be that the current_job_idx endpoint also crashes with an out-of-sort-memory error.
My tentative diagnosis is the following: this test experiment was 'infinite', which means that there were only two jobs (for two conditions) which were continuously reset at the end of each trial. This is a typical scenario for a default experiment that is mainly there to give monkeys something to do.
The test run crashed after about 250 trials, each of which stored quite a bit of data (all variables were logged), resulting in about 500 Kb of data stored across two blobs in these two job_statuses. I suspect that the size of the individual blobs is what causes issues, and not so much the number of jobs.
Relevant screenshots:

So the crash is no longer limited to downloading the data, but also affects other endpoints. Downloading the data is also affected though:

This is with OMM 0.7.4 and MySQL 8.0.29:

Can you provide me with an sql file with a DB export?

Can you provide me with an sql file with a DB export?

I cleared the database, but you can reproduce it with the match-to-sample task from the examples. To save time, you can change the touch_response so that it times out very quickly, and change the entry point so that it automatically announces the same participant over and over again. In the screenshot below you see how you can do that, notably by having _s around the participant name. (For technical reasons.) This way you can do an automated test run, which will trigger this issue after a few hundred trials.

https://github.com/open-cogsci/omm-client/tree/master/osexp

Thanks, I'll try it out soon, but I will need to set up the omm-client first on my machine.
It seems that ordering by a non-index column often causes the out of memory error. I may be able to solve this by also indexing the job position column, or create a composite index of (id, position) columns on the jobs table.

:+1: Thanks, that sounds good. Did you run any tests with the procedure I described above? I want to make sure that this passes before we do more extensive testing in cubicles at Rousset.

The next step is to stress test the system with this new query by creating massive amounts of data as suggested by Sebastiaan above.

Nope ;)
I assumed there was lot to be gained from improving the query and adding some indices so I did that first. I am fairly sure this was the cause of the problem after doing some research into this error, but I still need to setup an OpenSesame installation to do the automated stress test

I am fairly sure this was the cause of the problem after doing some research into this error, but I still need to setup an OpenSesame installation to do the automated stress test

Please test first! You don't need to do an extensive stress test (we will do that), but it's important to test the basics in the context in which it will be used, i.e. with the OMM client.

I cleared the database, but you can reproduce it with the match-to-sample task from the examples. To save time, you can change the touch_response so that it times out very quickly, and change the entry point so that it automatically announces the same participant over and over again. In the screenshot below you see how you can do that, notably by having _s around the participant name. (For technical reasons.) This way you can do an automated test run, which will trigger this issue after a few hundred trials.

https://github.com/open-cogsci/omm-client/tree/master/osexp

I tried setting this up, but the match to sample task in the examples folder is completely different from your screenshot above? In any case, the example experiment doesn't even include an announce item. I will tinker a bit to try and get it to work, or maybe you have a better suggestion to use as an alternative experiment.

The match-to-sample experiment should be uploaded to the server, but not opened in OpenSesame. Rather, in OpenSesame you need to create an entry point with the OMM extension, which is what you see in the screenshot above.

Right, thanks! (duh...)
I got a bit further, but now I get the error
File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\libqtopensesame\misc\process.py", line 158, in run
    exp.run()
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\libopensesame\experiment.py", line 477, in run
    self.items.execute(self.var.start)
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\libopensesame\item_store.py", line 103, in execute
    self.run(name)
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\libopensesame\item_store.py", line 122, in run
    self[name].run()
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\libopensesame\loop.py", line 394, in run
    self.experiment.items.execute(self._item)
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\libopensesame\item_store.py", line 103, in execute
    self.run(name)
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\libopensesame\item_store.py", line 122, in run
    self[name].run()
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\libopensesame\sequence.py", line 51, in run
    self.experiment.items.run(_item)
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\libopensesame\item_store.py", line 122, in run
    self[name].run()
  File "C:\Program Files (x86)\OpenSesame\share\opensesame_plugins\OMMAnnounce\OMMAnnounce.py", line 45, in run
    exp = self._openmonkeymind.announce(self.var.omm_participant[1:-1])
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\openmonkeymind\_openmonkeymind.py", line 196, in announce
    return self._get_osexp(json)
  File "C:\Program Files (x86)\OpenSesame\Lib\site-packages\openmonkeymind\_openmonkeymind.py", line 143, in _get_osexp
    raise InvalidJSON(safe_decode(json))
openmonkeymind._exceptions.InvalidJSON: {'participants': [{'id': 101, 'name': 'Automated Anny', 'meta': None, 'pivot': {'participant_id': 101, 'study_id': 10, 'status_id': 1, 'priority': 1, 'created_at': '2022-08-04 14:42:26', 'updated_at': '2022-08-04 14:42:26'}}], 'jobs_count': 2, 'files': [{'id': 2, 'study_id': 10, 'path': '/files/10/jobs.csv', 'filename': 'matchtosample-jobs.csv', 'type': 'jobs', 'size': 40, 'created_at': '2022-08-04 14:27:29', 'updated_at': '2022-08-04 14:27:29'}], 'id': 10, 'name': 'Match to sample', 'description': 'Match to sample task', 'active': 1, 'created_at': '2022-08-04 14:27:16', 'updated_at': '2022-08-04 14:27:16', 'information': 'Nothing to be afraid of', 'participant_id': 101, 'study_id': 10, 'status_id': 1, 'priority': 1}

when trying to obtain a participant, even though the json appears to be valid?

The study appears to run now, but it doesn't go really fast. Looks like one trial every 5 seconds or so. I changed the timeout of the touch response to 50 ms. Am I doing something else incorrectly?

The touch response should indeed have a short timeout, and you can also reduce the duration of other items (if any), such as sketchpads. What remains is of course the delay due to the communication with the server, but for me this is very small, so I think it ran at about 3 trials per second.

Hmm ok, I changed all timeouts to 1ms, but still communicating with the server takes long, about 2 seconds per request on average:

so I think I am going to abort this test run to be able to look into the other bugs, and leave this running overnight on something.

No I have everything running on my (actually very new) PC, but on Windows. mysql runs in docker, and omm-server runs locally (with npm run dev) as does the client.

I let it run for a while, and the error still occurs:
code: 'ER_OUT_OF_SORTMEMORY',
  errno: 1038,
  sqlState: 'HY001',
  sqlMessage: 'Out of sort memory, consider increasing server sort buffer size',
  sql: 'select `jobs`.*, `job_states`.`job_id` as `pivot_job_id`, `job_states`.`participant_id` as `pivot_participant_id`, `job_states`.`data` as `pivot_data`, `job_states`.`status_id` as `pivot_status_id`, `job_states`.`status_id` as `pivot_status_id` from `jobs` inner join `job_states` on `jobs`.`id` = `job_states`.`job_id` where `study_id` = 10 and `job_states`.`status_id` in (1, 2) and `job_states`.`participant_id` = 101 order by `pivot_status_id` desc, `position` asc limit 1',
  status: 500

Quite a bummer. I'm running out of ideas here and will need more time to investigate again.

Ok, I think this is a fundamental design issue due to how multiple results for a single job are stored in a single large JSON field. This is bound to break at some point for experiments that run infinitely, thus resulting infinitely growing JSON fields. If we optimize things (as you probably did now), it will just take longer to break, but not really fix anything.
Let's consider this a limitation, and work around it by implementing infinite experiments through very large job tables. For that purpose though, #115 should be improved, because right now uploading large job tables (of say > 10,000) is slow to the point of being unusble.

Ok, I think this is a fundamental design issue due to how multiple results for a single job are stored in a single large JSON field. This is bound to break at some point for experiments that run infinitely, thus resulting infinitely growing JSON fields. If we optimize things (as you probably did now), it will just take longer to break, but not really fix anything.

Is it though? I am not completely convinced of this yet. What I read about the out of sort memory error is that it is often due to sorting on or grouping by columns that are not indexed. In that case, Mysql reverts to some inefficient sorting algorithm that requires a lot of memory.
I also did some more searching on this problem, and found that you can increase the sort memory buffer size with a config setting (see https://stackoverflow.com/questions/29575835/error-1038-out-of-sort-memory-consider-increasing-sort-buffer-size) but I don't know what a sensible value would be or, what you also say, we just hit the ceiling later and we will be confronted with this problem again for bigger data sizes (as is being aptly said in this comment)

Also, see https://stackoverflow.com/a/65128692
Since we use docker, we can easily play around with setting the sort buffer sizes by adding them to the docker-compose.yml, e.g.:
db:
    image: mysql:8
    command: --sort_buffer_size=512K

Before we invest any more effort in this, consider this: given that an infinite experiment may, after a while, accumulate tens of thousands of result sets for a single job, and that all of these have to be stored in a single JSON field, will this ever work? Even if the sort error can be solved, then at some point we're going to run into other limits, right? I'm not 100% sure about this, because I don't know how MySQL behaves when fields become extremely large.

Hi, just to set some reasonable limits, 10 000 times the same job is definitely within reach (a long but normal experiment), 100 000 times too (this is typically a background task that comes on a regular basis), I think 1M is a reasonable limit for the system (this would take several years of background tasks, a new experiment with a new name could then be started). I hope this helps.

Closing in favor of #155


Verification Manual Examples

Add VM examples
We need to add the first 10 verification manual examples.  These are perfect examples for the gallery as they run fast and can be integrated with our functional testing.  At the same time we can provide a bridge to academia so they can see that pymapdl is a great tool for working on academic examples.

[x] VM1
[x] VM2 #728
[x] VM3
[x] VM4
[x] VM5
[x] VM6 #756
[x] VM7 #785
[ ] VM8 #820
[ ] VM9 #853
[ ] VM10 #855

Goals for our VM examples

At the bare minimum, replicate the VM examples in the same format as in VM #1. This means at a minimum these will have a picture, analytical equations, and will be in the pymapdl format (avoiding VWRITE and other non-interactive commands).
Include the analytical equations behind the verification manual example.
Change the API as needed. If we identify a bug or don't like the API, we should change it as we proceed.  For example, if get_value isn't working, we provide a patch, merge it, then continue work on the VM.  We should want to use pymapdl, and the best way is to make our VM examples usable.

Hi Alex
VMs are done!
thank you very much that you helped me during this task.

VMs are done!

Nearly. @germa89, can you please review?

Sure thing.


Feature request: typing.Literal

Could we have PEP586 implemented in the type extension? I think that would be handy in a configuration language. There's enum, but that requires using the enum constructor. For me it would be nice to express that a certain argument expects something from a set of specific values, especially strings.

We don't currently have any plans to refine the type system to follow the latest Python type specification.


Seeds Loading Icon (Lottie File)

Is your feature request related to a problem? Please describe.
When user is waiting for screens, they will see an animated version of the Seeds Logo.
https://lottiefiles.com/share/otlqqp4o

is there a way for me to download this file?

@JGDoh

@gguijarro-c-chwy Was this issue resolved with the last merge?

Please take a look at the latest code, and let me know if its working as expected

@JGDoh


Jumbotron - current day (date)

Display the current day at the top of the calendar when a user opens the planner.
Acceptance criteria:

current date is displayed on "jumbotron"
Technical Acceptance Criteria:  date utility library is used to work with date and time

credits: https://www.jsdelivr.com/package/npm/moment ) used to fulfil challenge criteria


dashboard UI broken

First of all, thanks for a great library.
But I am unable to load dashboard properly.

Can you please help me out on this?

Duplicate of #260, which we'd accept a pull request for :)


all Samples Error

An exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.ni.dll but was not handled in user code
WinRT information: Cannot find a resource with the given key.
Additional information: Unspecified error
Error occures in bootstrapper.cs
var unused = Application.Current.Resources["ExtendedSplashBackground"];

Thank you for this report. I see the error. Fixed in recent commit.


uv lock to use overrides from tool.uv (#4108)

Summary
This will make uv lock read override-dependencies from  the [tool.uv] section of pyproject.toml.
Resolves #4108
Test Plan
Unit test

Currently, this can have effects on neighbouring packages: Say you have a non-project workspace root and in it two package foo, bar and baz.
foo has:
tool.uv.override-dependencies = [
   "anyio==4.3.0"
]

bar has:
dependencies = [
    "anyio==4.4.0"
]

baz has:
tool.uv.override-dependencies = [
   "lib_that_uses_anyio=1.2.3"
]

This means foo changes the resolution of both bar and baz, once directly and once indirectly. Since overrides apply globally, i think we should only allow them in the workspace root.

This means foo changes the resolution of both bar and baz, once directly and once indirectly. Since overrides apply globally, i think we should only allow them in the workspace root.

I assume you mean foo, bar and baz don't depend on each other.
You're right, but it's also not entirely new. The fact that one virtualenv is shared by all workspace members is bound to have side-effects.
As convinient as a shared virtualenv is, I kinda wish there was a way to require a private one per member.
As it stands right now dependency versions are negotiated by unrelated workspace members.
Also you can have a line in bar that references lib_that_uses_anyio or foo, and it'll work fine in the virtualenv, but not when bar is shipped as a standalone library.
On an unrelated note, if someone could also take a look at https://github.com/astral-sh/rye/pull/1015 I'd appreciate it. I'm a bit stuck with one of my projects.

I've tried a different implementation, I think it's more in line with existing code.

Updated, it now gets overrides from the workspace only.

I think this looks correct.


Add search bar on first/home page

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
I'm always frustrated when I need to search something in the documentation:
On the 'home' page there is no search bar:
https://inveniordm.docs.cern.ch/

So I need to click on one of the other tabs:
https://inveniordm.docs.cern.ch/features/

To get my search bar.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Add the search-bar to the 'home' page.

Fixed by the amazing @Samk13 as part of the dark mode work


[fela]: renderer.renderStatic does not honor plugins

renderer.renderStaticStyles does not honor fela plugins (see https://github.com/robinweser/fela/issues/876).
This means that various authorable style features in renderer.renderStyles may not be made available in renderer.renderStaticStyles (e.g. pseudo/nested selectors, theme/responsive plugin).

Closing and associating with https://github.com/uinix-js/uinix-theme/issues/3 instead


Reference scopeRoot in DSL instead of component by ID if referenced n…

…ode is a root
Signed-off-by: Mykola Mandra<EMAIL_ADDRESS>

LGTM!


CB-13232: added test for cordova's unquie local style require

This is in response to https://github.com/apache/cordova-js/pull/146

Ah, this test clarifies the style so much better.
I know we've thrown the idea around to change this, but until we do, I think it may be worth documenting this. The README, in general, I think, needs updating.


goblet_cell_definition - Fixes #2453

@JABelfiore -  Please review text for clarity

Suggested text amend:
A specialized, columnar, mucus-secreting epithelial cell shaped like a flask or goblet. The cell has a narrow basal end containing the nucleus and a swollen apical end filled with mucus-laden secretory granules. Short microvilli extend from the apical plasma membrane.

Thanks! Revised.  @JABelfiore Please ask @aleixpuigb  about doing suggested edits for these.  Might be quicker.
Also needs GO update.  @aleixpuigb  would you be able to show @JABelfiore how to run these?

Also needs GO update. @aleixpuigb would you be able to show @JABelfiore how to run these?

We can do during the sprint meeting, so @Caroline-99 and @AvolaAmg can also learn it if they don't know how to update imports. It will take only 2 minutes

Thanks @aleixpuigb
I would benefit from knowing how to run the GO update.

#gogoeditdiff

Needs approval before merge. Can you give it a quick check over?


Fix bt_audio_codec_cfg_get_chan_allocation() calls

c6cc034b5cbaad096e1a1e91dbd0705a6b1a263f changed the prototype of bt_audio_codec_cfg_get_chan_allocation()
to take an extra parameter.
But to calls where left with the old one. Let's fix it.

CC @valeriosetti


Osriris keeps onj crashing

After I knife someone or complete a mission it crashes, please fix

Attach debugger.


Add auto-detection of self-implemented methods

This adds the feature to auto-detect existing methods so the creation doesn't have to be prevented by hand. This has been confusing our users for a while (see #324, #416).  It should become True by default when the new APIs emerge (attr.auto/attrs.define – this is actually one of the last blockers for me to start working on them).
Typing requires an update to the mypy plugin to work correctly (currently it says tests/typing_example.py:193: error: Name '__init__' already defined on line 190).
There is really only one controversial open question: if a method is detected, should it just prevent the one method or all of the related ones? E.g. if I define __eq__, what about __ne__?
I have decided to take the presence of any method that belongs to a flag to set the flag to False because it's easier to reason about. I'm open to discussion tho.

Is the concept with __init__ that it replaces the auto-created init, or that it gets turned into post_attr_init_?

Replaces. In the case of init we could consider special-case it to optionally create a __attrs_init__ that the user can call whenever to fix the “how can I call super()” problem forever.

There is really only one controversial open question: if a method is detected, should it just prevent the one method or all of the related ones? E.g. if I define __eq__, what about __ne__?

As a user, I would expect it to work like functools.total_ordering.

I have added an example for @total_ordering in 2cd16a2fe825887008084b618c0e3bcba2a88b55.

Honestly to me this is much less about the complexity to implement it (that's a one-time deal mostly) and much more about the clarity and obviousness when looking at attrs-using code.
I don't think expecting people to add one line to their code is too much to ask, if it makes the whole thing more explicit and clear about what happens. Also once we implement #602 (which after this lands might be a very good opportunity), the users can directly deduct attrs behavior from the settings.
attrs was always about saving boilerplate but it also was always about being explicit and clear.  Here we have to choose what is more important and my gut feeling is telling me that clarity wins.

Well, my contention is that there are two very intuitive options here and I think either option would be surprising to some people because the semantics of this are simply not obvious.
One problem I have with the "specifying any one method flips the default for all methods" version is that it seems very unlikely that I would want that behavior, so I'd want to have to be explicit about it. If you make it so that specifying __lt__ silently flips ord=True to ord=False, I think you'll get a lot of users confused as to why x > y is not working as they expected.
I think some people will want to explicitly define a partial ordering, but those people will know that they want it, and they'll either implement all the methods or they can explicitly provide ord=False.
Given the asymmetry in expectations, I would think that the intuitive options are:

Specifying a partial ordering / partial equality with auto detection and eq/ord not explicitly set raises an exception (so anyone who thinks it works like the second option are put on notice).
Specifying a partial ordering / partial equality with auto detection defines a total ordering in terms of the user-defined methods.

 Of course, people thoughtlessly complain about everything with non-obvious semantics as if the semantics should be obvious, so that's not necessarily a lot to go on.
That said, maybe I'm completely missing some edge cases where this could lead to major footguns, so I'm totally willing to be convinced.
As I said before, if we go with option 2 (throwing in the ambiguous case), we should have the option to switch to option 1 in the future in a backwards-compatible way if it turns out I'm right about the asymmetry in use cases and intuition.

I've come around to agreeing with @hynek about users just using total_ordering explicitly if that's what they want.
I'm sympathetic to the argument that if ord=true (or unspecified, since it's normally the default), that rather than altering the default behavior when you add an __lt__ method, raising an exception may be more correct in a sense. But attrs changes the defaults in other similar cases, so I don't think that we should inconsistent about that in this one.

Hm, I feel like I must be missing something, because my most recent post started out conceding the point and as I started trying to write out my reasoning for that I ended up going in exactly the opposite direction.
For me the issue comes down to what behavior users would want and what they would expect. I would think that most people who define a partial ordering want a total ordering. I can think of very few scenarios where that isn't the case, and in all of those scenarios, I'd be trying to craft specific semantics and I would test those semantics explicitly.
To me it seems like the fraction of people who don't want total order extrapolation, are expecting that defining a partial order will set ord=False and who don't carefully test their implementation is very low. On the other hand, in addition to the prior of "the user wants total ordering" being much higher, I think the fraction of those people who don't carefully test the ordering semantics is higher as well, so I'd expect a lot of broken classes being deployed unless ord=None + partial ordering = total ordering OR ord=None + partial ordering = exception.
But maybe my priors are way off. Do you disagree with my premises, my reasoning or am I maybe missing another line of reasoning here?
(Note: I will admit that the "should you generate __eq__ when only __ne__" question almost had me change my mind here, since generating __eq__ from __ne__ seems weird, but having eq do something other than ord would be very bad. In the end, I decided that these practical concerns override my squeamishness about generating an __ne__).

As Paul wrote correctly: no matter what way we go, someone is going to be confused. I think this is the premise that everything starts from.

There has been a lot of text and I'm a bit lost, but it seems to me, that Paul is arguing for an implicit total ordering?
As I've laid out before, I don't like it because it it's too much implicit behavior. I like being able to look at an attrs class and know what's happening without considering all kinds of implications and I think asking the user to add one line @functools.total_ordering is a good compromise here.
Making the existence of methods switch off a switch is a very clear semantic that can be easily communicated: "if you implement __eq__ then eq=False". This is not true if we just skip implementing certain methods based on their presence. The value of eq suddenly means nothing anymore. There's no way we make it the behavior introspectable in any way.
This feels harder to understand and harder to reason about – especially if we magically start applying a total ordering to the class.
But maybe I'm just misunderstanding? We def – at least partially – argue about different things here.

Random nit: in future APIs ord will be False by default I think. Most people don't need it so it's unnecessary baggage.

There has been a lot of text and I'm a bit lost, but it seems to me, that Paul is arguing for an implicit total ordering?

I like implicit total ordering as the behavior of ord=True (and the default behavior if ord defaults to True) when a partial ordering is defined, but I am not sure I totally grok the arguments against it since yes it is a bit magical but I think in the sense that it will magically do what almost everyone wants and probably won't bother the people who don't want that behavior. I'm definitely willing to concede that you and @wsanchez understand the ways the semantics can get hairy better than me, so my position is "I'm probably wrong about this."
The thing I am more confident about is that if you don't go with total ordering, I think that unless ord is explicitly set to False, I think it should be an exception to define a partial ordering, because I think almost no one actually wants a partial ordering, and it's better to loudly fail and say, "If you really want a partial ordering, set ord=False, if you want a total ordering, using functools.total_ordering".

Making the existence of methods switch off a switch is a very clear semantic that can be easily communicated: "if you implement __eq__ then eq=False". This is not true if we just skip implementing certain methods based on their presence. The value of eq suddenly means nothing anymore. There's no way we make it the behavior introspectable in any way.

This is very fair, and I think I'm starting to understand the concern here. I was thinking that eq=True would mean "this class is guaranteed to define both __eq__ and __ne__" and ord=True would mean "this class is guaranteed to define a total ordering" and not necessarily "if x is True/False, attrs generates these methods". I think that's fairly easy to grok, but if you think that what people care about is what methods attr.s will generate or if exposing that information in a public interface is a critical design goal, then I concede the point about total ordering (though I'm still not quite convinced on the point of silent vs. exception).

Paul, to sum it up (and me stopping procrastinating on this): you would be (begrudgingly) OK with the current implementation, if we raise a Warning if the the user forgets to implement certain methods.
Am I understanding you correctly?

@hynek Yeah, that sounds about right.

So I've implemented the warning and realized that there's a problem: we'd force the decorator order on the users.
@attr.s(auto_detect=True)
@total_ordering
class C:
    ...

would be fine while
@total_ordering
@attr.s(auto_detect=True)
class C:
    ...

would annoy the users.
I'm not really sure what to do here?

Hm... That is indeed annoying.
I think it really depends on something I don't have a huge amount of information about, which is the baseline rates of this kind of confusion. If a lot of people are going to be silently getting broken behavior from this because they don't know they need to use functools.total_ordering with auto_attrib=True if they want to define a custom comparison, then it's probably justified to warn people who do the decorator in the wrong order (possibly with an additional line like, "Make sure the @attr.s decorator is on top to avoid this warning").
If almost everyone who writes one knows to use functools.total_ordering but tends to put it outside the attr.s decorator, then it's just annoying people for no reason.
Luckily, I don't think either decision is irreversible (at least when deciding between warning / nothing rather than deciding between exception / warning / nothing). You can always start raising a warning later if you find people are having this problem a lot, or you can start with the warning and remove it if people complain a lot.
I think you probably have a better handle than me on what attrs users will want, so I'm confident that whatever you choose is right. Sorry if all I've managed to add to this thread was delays and extra noise.

You can always start raising a warning later if you find people are having this problem a lot, or you can start with the warning and remove it if people complain a lot.

Yeah I think we'll go without for now – with a fat warning (that nobody will read).

I think you probably have a better handle than me on what attrs users will want, so I'm confident that whatever you choose is right.

With 26 million downloads per month, I don't think there's such a thing as an “attrs user”. :)  I guess the best thing I can do is to build something I want to use.

Sorry if all I've managed to add to this thread was delays and extra noise.

Heh delays caused by food for thought are always very welcome.

Since I believe we have agreement on the design/API, I hope someone will find the time to give the implementation a review. ❤🐶

OK I don't think waiting any further will make anyone come forward so I'm just YOLOing it in.  Otherwise I'll never get Operation import attrs done.


Zoom to actual size

Is there a way to zoom the image to the actual image size?  When I try setZoom(1), it changes the zoom, but the image is always larger than the actual image size.  For example, I know I have an image of 600x400 and I initialize Croppie with a viewport of 600x400.  Croppie is initialized with the image zoomed in some to create padding around the viewport and borders of the image.  If I call setZoom(1), I get the same result here.  In that scenario, I can obviously zoom out all the way and I know that's the actual image size, but in a case where the crop viewport is not the same size as the image size, there is no way to zoom to the actual size.  By the way, I love the simplicity of the plugin!

I'm doing some changes to zoom a landscape/portrait image with space in both sides.
I'll have the pull request prepared for tomorrow or Friday.


hcloud: 1.13.0 -> 1.14.0

Build with buildGoModule instead of legacy buildGoPackage.

Motivation for this change
New version 1.14.0.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @zauberpony

@GrahamcOfBorg build hcloud


Intercom.io Toggl Button Missing

Environment details

Operation system:
macOS 10.12.6 (16G29)
Extension version:
1.11.1
Chrome Version
Chrome 68.0.3440.106 and 69.0.3497.81

Expected behavior
Toggl button to appear in the chat box in an Intercom conversation.
Actual behavior
No Toggle button
Steps to reproduce the behavior
N/A
Additional details
This was supposedly fixed in #1015
I disabled all other Chrome extensions during my troubleshooting.

screenshots or screencapture

Any update on this ? I still can't see the button on Intercom.io

Another user is reporting that the button is missing and they'd like it back: case link
Perhaps remove the domain from the Permissions list until we can commit to a fix, or is this a quick fix?


Fix typo error in index.html

Replace '22th' with '22nd'.

Note: The check has failed, however the checks do not account for anything I have changed.


Fire MoveEntityEvent for ridden entites

Also does some rotation stuff.
Untested as of yet, but any eyes over it would be nice.
Should fix #3607

Zidane has asked me to include the changes from my PR #3751 into this PR. I did this in a new branch and I'm not sure if I should open a new PR or not so for now I will just link my commit here: https://github.com/Yeregorix/Sponge/commit/34d5fee1121597e18b172f00548c7d1d2f562a1e.
I added comments in my commit to explain why certain changes were needed.

@Yeregorix
Thank you for your work. Feel free to close your last PR and open a new one with these combined changes. Closing this PR out and discussion can continue on your new one.


Avoid Hearing Imperaid

Bare with me as i'm new to all this and subliminal. It seams that the downloaded subtitles -not always but mostly- it downloads the HI version even though the --hi option is not selected.
How can i avoid completely those ?
thank you

If your questions is about the CLI then there is no way to do that currently. At the library level however you can change the scores to your liking.

Yes its for the CLI. Thanks for the feedback


Error: http error: getaddrinfo ENOTFOUND registry.npmjs.org

Description of the bug:
The cli is trying to call registry.npmjs.org on every run, and assumes the network is on, DNS resolves, and the site is accessible.
It is a problem because of delays in synth, dev experience suffers.
And it is problematic to use in corp environments.
Reproduction Steps:
Set up the vanilla typescript app, and run the synth while the network connection is off.
Error Log:
➜  app git ✗ time (npm run compile && yarn cdk8s synth)

><EMAIL_ADDRESS>compile
> tsc --build

yarn run v1.22.17
warning ../package.json: No license field
$ /path/cdk8s/app/node_modules/.bin/cdk8s synth
/path/cdk8s/app/node_modules/cdk8s/lib/_loadurl.js:39
    throw new Error(`http error: ${err.message}`);
    ^

Error: http error: getaddrinfo ENOTFOUND registry.npmjs.org
    at RedirectableRequest.<anonymous> (/path/cdk8s/app/node_modules/cdk8s/lib/_loadurl.js:39:11)
    at Object.onceWrapper (node:events:510:26)
    at RedirectableRequest.emit (node:events:390:28)
    at ClientRequest.eventHandlers.<computed> (/path/cdk8s/app/node_modules/cdk8s/node_modules/follow-redirects/index.js:14:24)
    at ClientRequest.emit (node:events:390:28)
    at Socket.socketErrorListener (node:_http_client:447:9)
    at Socket.emit (node:events:390:28)
    at emitErrorNT (node:internal/streams/destroy:157:8)
    at emitErrorCloseNT (node:internal/streams/destroy:122:3)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)
------------------------------------------------------------------------------------------------
A new version undefined of cdk8s-cli is available (current 2.1.26).
Run "npm install -g cdk8s-cli" to install the latest version on your system.
For additional installation methods, see https://cdk8s.io/docs/latest/getting-started
------------------------------------------------------------------------------------------------
Synthesizing application
  - dist/app.k8s.yaml

Environment:
Any

This is :bug: Bug Report

Thanks for reporting. I think there are two issues here:

The CLI shouldn't print the upgrade message if it failed to fetch it.
We can provide a configuration file setting that disables this check.

In the meantime, you can pass --no-check-upgrade on any cdk8s command to disable this check.


Breakable showyboxes with boxed title bad behaviour

While creating a breakable box, with a boxed title which vertical anchor is  top or horizon, the space for the body seems to be not enough:
#showybox(
  frame: (
    radius: (top: 5pt),
    thickness: 3pt
  ),
  title-style: (
    boxed: true
  ),
  boxed-style: (
    anchor: (x: center, y:top),
    radius: 0pt
  ),
  shadow: (
    offset: 4pt
  ),
  breakable:true,
  title: "Sharp corners",
  width: 50%,
)[#lorem(40)]

Since the last implementation of boxed-style, this Issue seems to be solved, but it helped to notice another related issue: while creating a showybox with width <100%, and a shadow, it looks like this:

Probably due to bad width assignation.

Setting the width of the shadow with the given value in the arguments, or using it in main-showyblock if there's no shadow, fixes this issue


Problem with a registration

When trying to sign up it says "Invalid Password. Please enter a valid password".
I was trying multiple passwords over 8 characters with small and big letters, special characters, and numbers. In all cases, I got the same error on "bulkmailer.cf" and "localhost" as well.

Hey, @WebaseGlobal thanks for letting us know. Are you interested in working on this issue?

Closing this issue as no response received from @WebaseGlobal


Cannot position and size text in front matter

I can find no way to position and size text boxes in front matter.
 supports @x and @y, but there may be multiple paragraphs in a box, and boxes may have width and height, which is not supported. I would think
 would behave as a block-level element (like HTML) but it seems to be missing any positioning or sizing attributes.

Currently I have the following markup within <front>:
<front xml:id="m-40">
  <pb xml:id="m-23" n="1"/>

Second livre
                <lb xml:id="m-30"/>
                    de chansons à quatre
                <lb xml:id="m-31"/>
                    Nicolas Duchemin
                <lb xml:id="m-32"/>
                    1549

Qu’est il besoing chercher toutes les nuictz

Crequillon

</front>

Would allowing @x and @y on
 be sufficient?  Or does it also need @x2 and @y2 in order to define its bounding box?  Would @ulx, @uly, @lrx, and @lry better suit this purpose?  Should these bounding box attributes be added to all block-level elements -- those in model.textcomponentLike (lg, model.listLike (biblList, castList, list), p, quote, table)  -- and any x and y coordinate attributes removed?
Without opening up a discussion just yet of a similar music style attribute/specification), would it be a reasonable alternative for text block elements to allow a @style attribute with CSS content?

Do the same requirements also apply to <anchoredText>?

It might be splitting hairs, but I see @ulx, etc. to be defining a box that sits on top of the content (e.g., in the <zone> element), while @x, @y, @x2 and @y2 to be defining a box for the content. So for this particular case, I think the latter would be a better solution.
I tried looking it up in TEI, but it doesn't seem like they have the same concept of block-level elements.
I think we should wait on @style until after this release. That's a much bigger can of worms.
It would be nice to have it on <anchoredText> too.

When you say "[i]t would be nice to have it", what "it" are you referring to -- @style or the x/y attributes?
BTW, I think you're right -- your view of @ulx, etc. vs. @x, etc. is splitting hairs.  :-)

"It" = the @x/@y/@x2/@y2 constellation of attributes for positioning and sizing blocks.

As used up to this point, the @x/@y/@x2/@y2 attribute set has been used to identify a start/end pair of coordinates.  As a simple example, <line> uses x, y to mark its starting point and @x2, @y2 to identify its terminal point.  I don't think a bounding box fits with this approach.  I'm more inclined to see bounding boxes as bounding boxes, regardless of whether they contain content or are "on top of" content.  Even when they're "on top of" something, they're still identifying stuff that falls in the box (and by extension, excluding stuff that falls outside).

If that's the case, then I think we should choose one system and stick with it, since we now have at least three ways of defining spatial layout:

@x/@y/@x2/@y2 -- could be a line, but can also be a box.
@x/@y/@width/@height
@ulx/@uly/@lrx/@lry

Personally, I think that if we're to tackle any sort of overhaul of this, it should be for the next release since it will affect backwards compat. Adding @x2/@y2 or @width/@height seems like the simplest solution since it will not affect backwards compat.

The "problem" is not as dire you imply --

@x/@y/@x2/@y2 is employed for lines and curves, not boxes (although there's some fudging going on with <hairpin>)
@x/@y/@width/@height is only used on <graphic> where it mimics HTML usage
@ulx/@uly/@lrx/@lry is used for bounding boxes/coordinate system definitions

A single system cannot work in all cases.  For example, some things, such as slurs and ties, may need @x/@y/@x2/@y2 to mark the endpoints of the curve AND @ulx/@uly/@lrx/@lry to define its bounding box.  Also, @x/@y + @width\@height is a commonly accepted substitute for @ulx/@uly/@lrx/@lry where @x/@y represent the bottom left corner of the image and the upper right corner is defined by width and height.  This "shortcut" is a reasonable way to scale an image when the coordinate system is unknown, as when embedding images in text.  Ultimately, of course, everything has to work within a single coordinate system, but there's a lot of stuff going on, each perhaps with its own spatial markup requirements.

OK, so possibly just @x/@y/@width/@height for
 would be a suitable solution?

I'm inclined to agree, but wanted someone else to confirm it.  I think this mean that @ulx / @uly / @lrx / @lry should be available on elements that currently use @x / @y and that we have to keep @x / @y / @x2 / @y2 to identify start-end points for things like ties and slurs, but that we can add @ulx / @uly / @lrx / @lry for bounding boxes.  Some elements may end up with one or the other or both sets of attributes.

My previous comment implies that I'm not as conflicted as I actually am.  For instance, what should be used on <accid> -- @x / @y, @ulx / @uly / @lrx / @lry, just @ulx / @uly or some other "corner"?

I think this depends on the task at hand. Do you try to encode an existing source's accid? In that case, wouldn't a @facs be more appropriate? In case of prescribing how to render it: Wouldn't that require way more than just a simple bounding box? I'm thinking about the definition of an "attachment point" (probably somewhere at the notehead, but where?), about the definition of measurement units etc. I don't think that any kind of bounding box mechanism based on @x/@y, @width/@height or @ulx/@uly + @lrx/@lry will be able to cover this properly. @lpugin, @craigsapp, @th-we?

Using positional attributes on text elements is way too procedural; the positioning of the divs in your example belongs outside of MEI (ie your processing).

@x / @y are intended to be page coordinates (or viewport coordinates in the electronic realm):
<classSpec ident="att.xy" module="MEI.shared" type="atts">
  <desc>Output coordinate attributes. Some elements may have their exact rendered *output*
  coordinates recorded. x and y attributes indicate where to place the rendered output.
  Recording the coordinates of a feature in a facsimile requires the use of the facs
  attribute.</desc>

Offsets (@ho / @vo / @to) address relative position, although not in terms of an attachment point, but rather in terms of the position determined by software (or by markup, I guess).
In many cases, certainly for an accidental attached to a note, it's not necessary to explicitly set the position of the affected note as the attachment point.  This is already taken care of by the fact that the <accid> element is a child of the <note>.

Raff -- While I agree that in most cases, text layout can be left to the renderer / browser, there has to be provision for absolute, author-determined positioning.  It's often best to put this info in an external location, like a CSS file, but it's also acceptable to put it inside the markup.  HTML allows it, why not MEI?

I am also not sure where this would lead us. We do not necessary want to
have a full css system built-in and this should be a separated module, but
since we have @x and @y on /p it is a good opportunity to clarify this. I
am not sure the bounding box is a good way to go. They make sense for
facsimile, where @ulx, @uly, etc. are perfect. To me, it would make more
sense to have additional attributes for specifying the size of the text and
the alignment. With text elements, I would expect @x and @y to refer to the
baseline of the text (left, right or center depending on the alignment
attribute mentioned above).
On Mon, Oct 26, 2015 at 4:08 PM, pe-ro<EMAIL_ADDRESS>wrote:

Raff -- While I agree that in most cases, text layout can be left to the
renderer / browser, there has to be provision for absolute,
author-determined positioning. It's often best to put this info in an
external location, like a CSS file, but it's also acceptable to put it
inside the markup. HTML allows it, why not MEI?
—
Reply to this email directly or view it on GitHub
https://github.com/music-encoding/music-encoding/issues/272#issuecomment-151167904
.

Size of the text and alignment don't always capture all of the necessary information. You can have a text box that does not take up the full width of the page (as above) but is not positioned at either left, center, or right. So you would need, at a minimum, x/y/w/h.
If I don't store it in MEI, where should I store it, @raffazizzi? It seems like a strange line to draw, especially since we're already doing positioning on many other elements.

We have <rend> to do these things.  As an element, it operates on the text inside the element.  This syntax was chosen specifically to avoid having to provide positional info on the outer element itself.  For instance,

  <rend fontname="myFont" fontsize="12pt" halign="center">This text is centered.</rend>

The question remains, however, do we need to provide some mechanism for positioning the paragraph and/or giving its dimensions?  These can be left (as @raffazizzi has advised) outside of MEI entirely, in which case we should probably remove @x / @y from text block elements.  But if these attributes aren't sufficient, then ... ?

Even having x/y/w/h on <rend> would be fine, I think.

But I think Jo's right that ulx / uly / lrx / lry are preferable to x / y / w / h.  Do you see a problem with this configuration?

The next question is, Can @x / @y on text block elements go away?

If need be, I second adding x/y/w/h (or ulx/uly/lrx/lry) on <rend>. The element is explicitly procedural so at least it allows to keep this information off
 (and other similar declarative elements).

I still see an important distinction between a box "above" (i.e., in a descriptive role) and a box "containing" (i.e., in a prescriptive role). Maybe I'm just in a mental rut, wouldn't it be useful keep the two systems separate?

I am not sure <rend> makes a lot of difference. Actually, this would mix levels of what you are defining as procedural with declarative ones, which in a way makes is worse than having attributes.

Sorry, I did not see all the comments when sending my last one. @ahankinson : if @x / @y refer to the left point, center point, or right point of a text element (for left, center or right aligned text respectively), why do you need a box?

Because text can wrap within these boxes, so you need to know the rightmost boundary (if x,y refers to the leftmost). Or am I missing something obvious?

OK, I would assume you would encode the line breaks, as we do for page or system breaks.

I don't think I would assume that there would always be line breaks.

OK, so possibly just @x/@y/@width/@height for
 would indeed be a suitable solution, I think. And since MEI uses left to right and bottom up orientation, I would assume the point to be the bottom left one.

Isn't @ulx / @uly / @lrx / lry a better option?  It removes any question about which point @x / @y represent.

Hi all, just trying to get really old stuff done or at least close old tickets. Can anyone of you revise this against the current schema and help us decide wheter tand how to fix this or dismiss it

As far as I can see it is still not possible to define a box of text with a fixed position and size. anchoredText seems like a good candidate, but it doesn't allow you to set the width and/or height.


m.route(element, defaultRoute, router) should not overwrite list of routes if element is different on a second call

Something I've been thinking in relation to this: What if there was an extra routing mode that was basically pure internal state only (m.route.mode = "internal" or so)? So basically your Mithril app/component would not trigger any visible URL changes or push history entries, but routing would still work all the same code-wise. This would naturally not allow navigation via a browser's back/forward actions, but I think it would make life much easier for multiple Mithril tenants. As an extra, if it would be somehow possible to detect if a routing Mithril entity exists as part of a parent Mithril entity, the sub-Mithril would automatically default to internal routing. This, I imagine, would make building Mithril apps composed of other Mithril apps/components much easier.
Another thing that would be cool is what I guess could be best described as "subrouting", so basically think like you had a Mithril app that defined route /foo/bar, in where another Mithril app with routing was embedded. Then in said app's routing '/' would automatically default to /foo/bar/. I haven't thought too deeply about how this one though.

@Daiz That's a great idea to drop into another bug.

Cleaning up old issues. If you feel this needs brought up again, please file a new issue.


use black code style

Unify projects codestyle

Pull Request Test Coverage Report for Build 429

97 of 102 (95.1%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.005%) to 98.884%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

logwrap/_log_wrap.py
26
31
83.87%

Totals

Change from base Build 421:
-0.005%

Covered Lines:
443

Relevant Lines:
448

💛  - Coveralls


naabu: 2.1.8 -> 2.1.9

Diff: https://github.com/projectdiscovery/naabu/compare/refs/tags/v2.1.8...v2.1.9
Changelog: https://github.com/projectdiscovery/naabu/releases/tag/v2.1.9
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 260503 run on x86_64-linux 1

1 package built:

naabu


chore: gitignore ./target if a symlink

Fix https://github.com/fedimint/fedimint/issues/2067

Thanks, I forgot about my own issue.


Verify grouping logic in count functions

We've often run into trouble with different de-duping mechanisms prior to grouping variants, epitopes, etc.  This should be better tested.

Are there issues here to be aware of or is this just saying errors are possible?

The latter; I didn't think too hard about the exact grouping mechanisms for each count, and I know different grouping/de-dup'ing strategies have gotten us into trouble before.


Allow Noise2Noise with different in and out channels

Description
Until now, Noise2Noise was only possible with the same number of input and output channels. But one can envision have multiple channels in (e.g. time frames) and supervising with a single frame.
This PR relaxes the constraints on Noise2Noise.

What: Remove algorithm_model constraint on N2N, and change the configuration convenience function.
Why: We might try to run Noise2Noise with different in and out channels.
How: See what.

Changes Made

Modified: algorithm_model and create_n2n_configuration, and the corresponding tests.

Please ensure your PR meets the following requirements:

[x] Code builds and passes tests locally, including doctests
[x] New tests have been added (for bug fixes/features)
[x] Pre-commit passes
[x] PR to the documentation exists (for bug fixes / features)

Requires https://github.com/CAREamics/careamics/pull/149 to be merged for tests to pass.


[Feature] Please support theme setting?

I want to use this library to build xmind files, but now I need to do a simple theme setup, is there a quick way to implement it? I tried to add the theme field to content.json, but looking like dataStructureVersion:2 would cause the data currently parsed by xmind to fail to open.
If you have time, please give me an answer, thks

I found a solution

I found a solution

Can you please share the details of the solution ?

Hi @code-lixm, what is your solution? How did you handle theme problem?