XHR cross origin failure when initializing tabletop with a query

initialization such as:
Tabletop.init({
    key: "ABCD",
    query: "select B, C",
    simpleSheet: true,
    callback: callback
});

fails with the following error:
XMLHttpRequest cannot load https://spreadsheets.google.com/feeds/list/ABCD/oq7ao2t/public/values?alt=json&sq=select%20B,%20C. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://4afe0e27c254af279a8d9135ef7dbe31d78cf487.googledrive.com' is therefore not allowed access. The response had HTTP status code 400.

+1

with new spreadsheets "sq" parameter doesn't work  - line 321.
alternative - i don't know yet

+1

Note: The solution I found is to use an old spreadsheet which work, fork it (create copy), then rename it for the mission of the day. It's ugly but working.

fails for me, too:
Tabletop.init({ key: key/*, callback: main*//*, simpleSheet: true*/ });

I also had this issue and have no old spreadsheets left from which to fork... also seems incredibly fragile...

appears now to query sheet data, we have to use client side JSON parsing

I think I'm getting bit by this too. Seeing Invalid query parameter value for sq. on what I think are valid queries (though there's no query example in the readme, so I'm not 100%).

it appears the URL parameter in google's query language is now "tq"
https://developers.google.com/chart/interactive/docs/querylanguage
replacing &sq= with &tq= at line 323 appears to work for my simple use case.

Can someone confirm Vena's solution ? => pull request.

Just cleaning up issues: it's in as tq, but pretty sure it still doesn't work


Average Player Insanity

Regarding the Average Player insanity used to calculate if a hunt will begin.
Does this only take into account players in the house or simply all players?

It takes all players into account, regardless of location. I'll add this to the guide, thanks!


Do we want to split GitHub actions into different files?

Since we had some problems with pylinting I thought we could split our GitHub actions into separate files. This would at least ensure that all tests will be run for every commit. Especially in a branch it's nice to see if the tests are failing or not and to do pylinting minor issues at the end. The drawbacks are that the complete testing set will be a little slower (as there need to be several similar envs to be created) and I think we would also take more actions time from GitHub (I don't know if we're tight there but probably not).
@sanbrock @shabihsherjeel @aalbino2 @mkuehbach @cmmngr
I could just rewrite the actions, I just wanted to gather your opinions on if we should do it. What do you think?

There is also the option to make all the linting actions to continue on fail, and only the tests cause a fail of the pipeline. Off course then you have to manually look into the output to see if there are linting issues.

Thanks for pointing it out. I just updated that the tests always run even if previous steps failed in PR #39.


Directly pass DHT record to node (without polling)

One of the limitations of using a DHT as an asynchronous messaging layer is that pointers expire (e.g. after 7 days). Another limitation is that the DHT retriever is a polling mechanism (currently polling every hour), which isn't real-time.
Duo Search wants to provide a caching layer for these asynchronous offline messages to prevent pointers from expiring, and to accelerate delivery of DHT records in case of a flaky connection or a temporary disconnection. For such a caching layer to be built there needs to be a facility to pass offline records to a node. I'll bring up this point later today on the technical call.

Pointers expire, but they are republished by the node until it gets a response from the recipient (there is an eventual timeout of like 30 days but that is configurable).
Also, the polling is really only needed when a node comes online. Once they are online the messages can be sent directly. The DHT really shouldn't be used if both nodes are online, except for maybe when one node has severe firewall issues.

they are republished by the node

What if the node stays offline longer than the expiration period?

the polling is really only needed when a node comes online

I disagree with that. A node can think it is online (e.g. the openbazaar-go daemon is running), but actually it is unreachable (e.g. some sort of network failure). Messages to such a node would be sent to the DHT, polled up to an hour later.
On another note (relevant to Duo Search) it would allow us to implement https://github.com/OpenBazaar/openbazaar-go/issues/98.

As part of the technical hangout on Monday November 28, there was agreement that adding a new MessageType to hook into the retriever's attemptDecrypt function would be a minimal change that allows for nodes to directly communicate offline records. This gives service providers the flexibility to build relays around offline records that can be cached and communicated at will.


Parent route does not rerender on 3.7

Environment

Operating System: Darwin
Node Version:     v20.4.0
Nuxt Version:     3.7.0
CLI Version:      3.7.2
Nitro Version:    2.6.2
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      runtimeConfig, css, vite, nitro, components, meta, buildModules, modules, googleAnalytics, pwa, i18n, facebook, plausible, build
Runtime Modules<EMAIL_ADDRESS>Build Modules:    -

Reproduction
-| pages/
---| parent/
------| child.vue
---| parent.vue
In the parent component insert:
<template>

I am the parent view

</template>

Describe the bug
In previous versions of nuxt the parent component of a nested route was rerendered when navigating to another child route. This behaviour seems to have changed with Nuxt 3.7.0. If this is a breaking change it would be nice to update the documentation accordingly.
The documentation states to define pageMeta on the component in order to rerender it whenever a route change occurs.
definePageMeta({
  key: (route) => route.fullPath,
})

This resolves the issue, but still the behaviour differs from 3.6.
Additional context
No response
Logs
No response

No, we just spotted that in one of our projects because it stopped working and wanted to let you know. In order someone has the same issue. :) I believe the documentation should be alright. Maybe a quick info that parent routes are not rerendered in case of a subpage navigation would be nice. 👍🏻


BQ: rename XJob.name to XJob.job_id.

To go with all our other renames.

System tests running at https://circleci.com/gh/GoogleCloudPlatform/google-cloud-python/3265

Let me know if you need/want an assist on that system test failure.

I think some of the failures are a few system tests got missed in https://github.com/GoogleCloudPlatform/google-cloud-python/pull/3959. I pushed a fix.

System tests will be available at https://circleci.com/gh/GoogleCloudPlatform/google-cloud-python/3296

I still can't get the logs to load for the system tests, but they pass locally. Merging.


Switch to JSON RPC instead of Rabbit MQ

Disclaimer: I haven't tested it.

Do we need to disable rabbit somewhere? Ironic seems to be trying to connect to it.
2019-02-18 12:02:21.682 8 ERROR oslo.messaging._drivers.impl_rabbit [req-05b55e3e-e83a-43b3-ac53-15497a01ef3e - - - - -] Connection failed: [Errno 111] ECONNREFUSED (retrying in 22.0 seconds): error: [Errno 111] ECONNREFUSED

@derekhiggins what's the ironic RPM version you end up with?

@derekhiggins updated to use current, should have the right package now.

@derekhiggins updated with <IP_ADDRESS>.


How read whole chunk from transfer-encoding=chunked body?

My web server and client are both writing with the hyper crate. when server response a body with a large chunk (eg. 3634bytes), then my client read with body.next().await method, I will get two chunks (2803bytes and 831bytes).
How can I get whole chunk per one reading?

That's because hyper streams the body content to you. You can concatenate the body as you receive it (usual caveats that you may wish to handle a max size, as this may end up using a lot of memory).
let mut full = Vec::new();
while let Some(chunk) = body.next().await {
    full.extend(chunk?);
}

How to understand that one chunk is ended and you continue with another chunk?


Run post-fetch scripts after initial clone

Pushed (via git am)

Cool.  BTW, I'm using this here (which I'm running on Kubernetes): https://hub.docker.com/r/fpco/gitmirror/

Neat.  I run this on my laptop with https://github.com/dustin/wwcp replaying
the hooks (so it doesn't have to have inbound or always up connections).
I've got a few repos that always have the latest changes on a mobile
machine with no ingress ports.  :)
I've combined that with http://coastal-volt-254.appspot.com/ which lets me
synthesize hooks for repos I don't control, so I can monitor other people's
repos and sync only when they change.  :)
On Thu, Mar 23, 2017 at 10:46 AM Emanuel Borsboom<EMAIL_ADDRESS>wrote:

Cool. BTW, I'm using this here (which I'm running on Kubernetes):
https://hub.docker.com/r/fpco/gitmirror/
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/dustin/gitmirror/pull/13#issuecomment-288803874, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAAG88C32ZAT1PoZJ5a5K29skL3hDkfTks5roq_4gaJpZM4Mm5OK
.


How to provide link to Binary and Source Artifact in customized NOTICE template

How could I provide the link to Binary and Source Artifact in NOTICE template?
In FreemarkerTemplateProcessor.kt there seems not to be a class with such functions.

There doesn't need to be a dedicated function for that, as the processor as access to all of there properties directly:
https://github.com/oss-review-toolkit/ort/blob/67a944262f7cec9b6e2029fc8f1d73b90ecae037/reporter/src/main/kotlin/reporters/freemarker/FreemarkerTemplateProcessor.kt#L123-L130
SO you can simply iterate over the packages and access each package's RemoteArtifacts:
https://github.com/oss-review-toolkit/ort/blob/67a944262f7cec9b6e2029fc8f1d73b90ecae037/model/src/main/kotlin/Package.kt#L96-L104

@sschuberth : Thank you very much for your explanation. The iterating works partly and makes the .ftl compilable. But it does not fetch several values of the package, even if they exist in evaluation-result.yml which is the input for the report.
Example:
Package in evaluation-result.yml
- package:
        id: "Maven:ch.qos.logback:logback-classic:1.2.5"
        purl<EMAIL_ADDRESS>        authors:
        - "Ceki Gulcu"
        - "Joern Huxhorn"
        - "QOS.ch"
        declared_licenses:
        - "Eclipse Public License - v 1.0"
        - "GNU Lesser General Public License"
        declared_licenses_processed:
          spdx_expression: "EPL-1.0 AND LGPL-2.1-or-later"
          mapped:
            Eclipse Public License - v 1.0: "EPL-1.0"
            GNU Lesser General Public License: "LGPL-2.1-or-later"
        concluded_license: "LGPL-2.1-only"
        description: "logback-classic module"
        homepage_url: "http://logback.qos.ch/logback-classic"
        binary_artifact:
          url: "https://repo.maven.apache.org/maven2/ch/qos/logback/logback-classic/1.2.5/logback-classic-1.2.5.jar"
          hash:
            value: "030e0c3932f24fb10e7851dd308a3ad14e570d60"
            algorithm: "SHA-1"
        source_artifact:
          url: "https://repo.maven.apache.org/maven2/ch/qos/logback/logback-classic/1.2.5/logback-classic-1.2.5-sources.jar"
          hash:
            value: "320626cebb9a3f221ce82f03ffc9340bbcd48fac"
            algorithm: "SHA-1"
        vcs:
          type: "Git"
          url: "git@github.com:ceki/logback.git"
          revision: ""
          path: ""
        vcs_processed:
          type: "Git"
          url<EMAIL_ADDRESS>          revision: ""
          path: ""
      curations:
      - base: {}
        curation:
          concluded_license: "LGPL-2.1-only"
          declared_license_mapping:
            EPL-1.0 AND LGPL-2.1-only: "LGPL-2.1-only"

customized_license_report.ftl
[#list packages as package]
    [#if !package.excluded]
        ----

        Package: [#if package.id.namespace?has_content]${package.id.namespace}:[/#if]${package.id.name}:${package.id.version}

        [#if package.binaryArtifact?has_content && package.binaryArtifact.url?has_content]
            [#assign binaryArtifact = package.binaryArtifact.url]
            [#if binaryArtifact?has_content]
                Binary Artifact: ${binaryArtifact}
            [/#if]
        [/#if]
        [#if package.sourceArtifact?has_content && package.sourceArtifact.url?has_content]
            [#assign sourceArtifact = package.sourceArtifact.url]
            [#if sourceArtifact?has_content]
                Source Artifact: ${sourceArtifact}
            [/#if]
        [/#if]
         [#if package.id?has_content]
            [#assign pid = package.id]
            [#if pid?has_content]
                Package Id: ${pid}
            [/#if]
        [/#if]
    [/#if]
[/#list]

In the report it only works for id:
Package: ch.qos.logback:logback-classic:1.2.5

                Package Id: Identifier(type=Maven, namespace=ch.qos.logback, name=logback-classic, version=1.2.5)

                Package Info: org.ossreviewtoolkit.reporter.reporters.freemarker.FreemarkerTemplateProcessor$PackageModel@543ece68

@sschuberth : Does the NOTICE File have to do something with ort.config if there are values in the attributes? (With ClearlyDefined it also doesnt retreive the package values) Or should it always retreive the values from evaluation-result.yml` as the reporter uses this result?

I'm not sure if I'm getting your question right, but in general any reporter gets the ReporterInput as input, which includes the OrtResult (which may be an evaluator result) and the OrtConfiguration. You can freely access any information from these that you need to create your report, and that also works via FreeMarker template files.

Thank you. This gives me at least to find out another way to retreive the Source Artifacts for Maven and Github:
[#list resolvedLicenses as resolvedLicense]
        [#assign licenseName = resolvedLicense.license.simpleLicense()]
        [#assign licenseLocations = resolvedLicense.locations]
        [#assign licenseText = licenseTextProvider.getLicenseText(licenseName)!]
        [#if !licenseText?has_content][#continue][/#if]
        [#if isFirst]
            [#if !hasNoticePackageLicenses]
                ----

                Package: [#if package.id.namespace?has_content]${package.id.namespace}:[/#if]${package.id.name}:${package.id.version}
                [#assign hasNoticePackageLicenses = true]
            [/#if]

            [#if licenseLocations?has_content && licenseLocations[0].provenance?has_content]
            [#assign artifactProvenance = licenseLocations[0].provenance]
                [#if artifactProvenance?has_content && licenseLocations[0].provenance.sourceArtifact?has_content]
                Source Artifact: ${artifactProvenance.sourceArtifact.url}
                [/#if]
                [#if artifactProvenance?has_content && licenseLocations[0].provenance.vcsInfo?has_content]
                Source Artifact: ${artifactProvenance.vcsInfo.url}
                [/#if]
            [#else]
                No Source Artifact available
            [/#if]

            The following copyrights and licenses were found in the source code of this package:
            [#assign isFirst = false]
        [#else]
            --
        [/#if]
        [#assign copyrights = resolvedLicense.getCopyrights()]
        [#if copyrights?has_content]

        [/#if]
        ${copyrights?join("\n", "", "\n")}
        ${licenseText}

        [#assign exceptionName = resolvedLicense.license.exception()!]
        [#assign exceptionText = licenseTextProvider.getLicenseText(exceptionName)!]
        [#if exceptionText?has_content]
            ${exceptionText}
        [/#if]
    [/#list]

But I have still in about 10% of the packages no Source Artifact Location, e.g.
com.codepoetics:protonpack:1.16
For this package I would have expected to find the url of the Source Artifact. The evaluation-result.yml which is processed by the Reporter contains the following:
provenance:
          source_artifact:
            url: "https://repo.maven.apache.org/maven2/com/codepoetics/protonpack/1.16/protonpack-1.16-sources.jar"
            hash:
              value: "3ddc16c880eefdf48354c1208cb12cce0e8189a7"
              algorithm: "SHA-1"

Do you have an explanation?

I also tried to reproduce it on an empty sample project only containing the protonpack dependency:
Here the steps:
Analyzer result:
{
  "repository" : {
    "vcs" : {
      "type" : "",
      "url" : "",
      "revision" : "",
      "path" : ""
    },
    "vcs_processed" : {
      "type" : "",
      "url" : "",
      "revision" : "",
      "path" : ""
    },
    "config" : { }
  },
  "analyzer" : {
    "start_time" : "2022-09-02T10:54:47.380160Z",
    "end_time" : "2022-09-02T10:55:58.466602Z",
    "environment" : {
      "ort_version" : "DOCKER-SNAPSHOT",
      "java_version" : "<IP_ADDRESS>",
      "os" : "Linux",
      "processors" : 8,
      "max_memory" :<PHONE_NUMBER>,
      "variables" : {
        "JAVA_HOME" : "/opt/java/openjdk",
        "ANDROID_HOME" : "/opt/android-sdk",
        "GOPATH" : "/tmp/go"
      },
      "tool_versions" : { }
    },
    "config" : {
      "allow_dynamic_versions" : false
    },
    "result" : {
      "projects" : [ {
        "id" : "Gradle:org.example:sample_gradle:1.0-SNAPSHOT",
        "definition_file_path" : "",
        "declared_licenses" : [ ],
        "declared_licenses_processed" : { },
        "vcs" : {
          "type" : "",
          "url" : "",
          "revision" : "",
          "path" : ""
        },
        "vcs_processed" : {
          "type" : "",
          "url" : "",
          "revision" : "",
          "path" : ""
        },
        "homepage_url" : "",
        "scope_names" : [ "runtimeClasspath", "testRuntimeClasspath" ]
      } ],
      "packages" : [ {
        "package" : {
          "id" : "Maven:com.codepoetics:protonpack:1.16",
          "purl"<EMAIL_ADDRESS>          "authors" : [ "Dominic Fox" ],
          "declared_licenses" : [ "MIT" ],
          "declared_licenses_processed" : {
            "spdx_expression" : "MIT"
          },
          "description" : "Stream Utilities for Java 8",
          "homepage_url" : "https://github.com/poetix/protonpack",
          "binary_artifact" : {
            "url" : "https://repo.maven.apache.org/maven2/com/codepoetics/protonpack/1.16/protonpack-1.16.jar",
            "hash" : {
              "value" : "2f90f51a950cb68529613d077ef07194883a479a",
              "algorithm" : "SHA-1"
            }
          },
          "source_artifact" : {
            "url" : "https://repo.maven.apache.org/maven2/com/codepoetics/protonpack/1.16/protonpack-1.16-sources.jar",
            "hash" : {
              "value" : "3ddc16c880eefdf48354c1208cb12cce0e8189a7",
              "algorithm" : "SHA-1"
            }
          },
          "vcs" : {
            "type" : "Git",
            "url" : "git://github.com/poetix/protonpack.git",
            "revision" : "",
            "path" : ""
          },
          "vcs_processed" : {
            "type" : "Git",
            "url" : "https://github.com/poetix/protonpack.git",
            "revision" : "",
            "path" : ""
          }
        },
        "curations" : [ ]
      } ],
      "dependency_graphs" : {
        "Gradle" : {
          "packages" : [ "Maven:com.codepoetics:protonpack:1.16" ],
          "scopes" : {
            "org.example:sample_gradle:1.0-SNAPSHOT:runtimeClasspath" : [ {
              "root" : 0
            } ],
            "org.example:sample_gradle:1.0-SNAPSHOT:testRuntimeClasspath" : [ {
              "root" : 0
            } ]
          },
          "nodes" : [ { } ],
          "edges" : [ ]
        }
      },
      "has_issues" : false
    }
  },
  "scanner" : null,
  "advisor" : null,
  "evaluator" : null
}

Scanner:
{
  "repository" : {
    "vcs" : {
      "type" : "",
      "url" : "",
      "revision" : "",
      "path" : ""
    },
    "vcs_processed" : {
      "type" : "",
      "url" : "",
      "revision" : "",
      "path" : ""
    },
    "config" : { }
  },
  "analyzer" : {
    "start_time" : "2022-09-02T10:54:47.380160Z",
    "end_time" : "2022-09-02T10:55:58.466602Z",
    "environment" : {
      "ort_version" : "DOCKER-SNAPSHOT",
      "java_version" : "<IP_ADDRESS>",
      "os" : "Linux",
      "processors" : 8,
      "max_memory" :<PHONE_NUMBER>,
      "variables" : {
        "JAVA_HOME" : "/opt/java/openjdk",
        "ANDROID_HOME" : "/opt/android-sdk",
        "GOPATH" : "/tmp/go"
      },
      "tool_versions" : { }
    },
    "config" : {
      "allow_dynamic_versions" : false
    },
    "result" : {
      "projects" : [ {
        "id" : "Gradle:org.example:sample_gradle:1.0-SNAPSHOT",
        "definition_file_path" : "",
        "declared_licenses" : [ ],
        "declared_licenses_processed" : { },
        "vcs" : {
          "type" : "",
          "url" : "",
          "revision" : "",
          "path" : ""
        },
        "vcs_processed" : {
          "type" : "",
          "url" : "",
          "revision" : "",
          "path" : ""
        },
        "homepage_url" : "",
        "scope_names" : [ "runtimeClasspath", "testRuntimeClasspath" ]
      } ],
      "packages" : [ {
        "package" : {
          "id" : "Maven:com.codepoetics:protonpack:1.16",
          "purl"<EMAIL_ADDRESS>          "authors" : [ "Dominic Fox" ],
          "declared_licenses" : [ "MIT" ],
          "declared_licenses_processed" : {
            "spdx_expression" : "MIT"
          },
          "description" : "Stream Utilities for Java 8",
          "homepage_url" : "https://github.com/poetix/protonpack",
          "binary_artifact" : {
            "url" : "https://repo.maven.apache.org/maven2/com/codepoetics/protonpack/1.16/protonpack-1.16.jar",
            "hash" : {
              "value" : "2f90f51a950cb68529613d077ef07194883a479a",
              "algorithm" : "SHA-1"
            }
          },
          "source_artifact" : {
            "url" : "https://repo.maven.apache.org/maven2/com/codepoetics/protonpack/1.16/protonpack-1.16-sources.jar",
            "hash" : {
              "value" : "3ddc16c880eefdf48354c1208cb12cce0e8189a7",
              "algorithm" : "SHA-1"
            }
          },
          "vcs" : {
            "type" : "Git",
            "url" : "git://github.com/poetix/protonpack.git",
            "revision" : "",
            "path" : ""
          },
          "vcs_processed" : {
            "type" : "Git",
            "url" : "https://github.com/poetix/protonpack.git",
            "revision" : "",
            "path" : ""
          }
        },
        "curations" : [ ]
      } ],
      "dependency_graphs" : {
        "Gradle" : {
          "packages" : [ "Maven:com.codepoetics:protonpack:1.16" ],
          "scopes" : {
            "org.example:sample_gradle:1.0-SNAPSHOT:runtimeClasspath" : [ {
              "root" : 0
            } ],
            "org.example:sample_gradle:1.0-SNAPSHOT:testRuntimeClasspath" : [ {
              "root" : 0
            } ]
          },
          "nodes" : [ { } ],
          "edges" : [ ]
        }
      },
      "has_issues" : false
    }
  },
  "scanner" : {
    "start_time" : "2022-09-02T10:56:36.886056Z",
    "end_time" : "2022-09-02T10:56:46.198066Z",
    "environment" : {
      "ort_version" : "DOCKER-SNAPSHOT",
      "java_version" : "<IP_ADDRESS>",
      "os" : "Linux",
      "processors" : 8,
      "max_memory" :<PHONE_NUMBER>,
      "variables" : {
        "JAVA_HOME" : "/opt/java/openjdk",
        "ANDROID_HOME" : "/opt/android-sdk",
        "GOPATH" : "/tmp/go"
      },
      "tool_versions" : { }
    },
    "config" : {
      "skip_concluded" : false,
      "create_missing_archives" : false,
      "detected_license_mapping" : {
        "LicenseRef-scancode-agpl-generic-additional-terms" : "NOASSERTION",
        "LicenseRef-scancode-generic-cla" : "NOASSERTION",
        "LicenseRef-scancode-generic-exception" : "NOASSERTION",
        "LicenseRef-scancode-generic-export-compliance" : "NOASSERTION",
        "LicenseRef-scancode-generic-tos" : "NOASSERTION",
        "LicenseRef-scancode-generic-trademark" : "NOASSERTION",
        "LicenseRef-scancode-gpl-generic-additional-terms" : "NOASSERTION",
        "LicenseRef-scancode-patent-disclaimer" : "NOASSERTION",
        "LicenseRef-scancode-warranty-disclaimer" : "NOASSERTION",
        "LicenseRef-scancode-other-copyleft" : "NOASSERTION",
        "LicenseRef-scancode-other-permissive" : "NOASSERTION",
        "LicenseRef-scancode-free-unknown" : "NOASSERTION",
        "LicenseRef-scancode-unknown" : "NOASSERTION",
        "LicenseRef-scancode-unknown-license-reference" : "NOASSERTION",
        "LicenseRef-scancode-unknown-spdx" : "NOASSERTION"
      },
      "ignore_patterns" : [ "**/*.ort.yml", "**/*.spdx.yml", "**/*.spdx.yaml", "**/*.spdx.json", "**/META-INF/DEPENDENCIES", "**/META-INF/DEPENDENCIES.txt", "**/META-INF/NOTICE", "**/META-INF/NOTICE.txt" ]
    },
    "results" : {
      "scan_results" : {
        "Gradle:org.example:sample_gradle:1.0-SNAPSHOT" : [ {
          "provenance" : { },
          "scanner" : {
            "name" : "ScanCode",
            "version" : "30.1.0",
            "configuration" : "--copyright --license --info --strip-root --timeout 300 --json-pp"
          },
          "summary" : {
            "start_time" : "2022-09-02T10:56:46.195626Z",
            "end_time" : "2022-09-02T10:56:46.195626Z",
            "package_verification_code" : "",
            "licenses" : [ ],
            "copyrights" : [ ],
            "issues" : [ {
              "timestamp" : "2022-09-02T10:56:46.196030Z",
              "source" : "ScanCode",
              "message" : "Could not download 'Gradle:org.example:sample_gradle:1.0-SNAPSHOT': DownloadException: Download failed for 'Gradle:org.example:sample_gradle:1.0-SNAPSHOT'.\nSuppressed: DownloadException: No VCS URL provided for 'Gradle:org.example:sample_gradle:1.0-SNAPSHOT'. Please make sure the published POM file includes the SCM connection, see: https://docs.gradle.org/current/userguide/publishing_maven.html#sec:modifying_the_generated_pom\nSuppressed: DownloadException: No source artifact URL provided for 'Gradle:org.example:sample_gradle:1.0-SNAPSHOT'.",
              "severity" : "ERROR"
            } ]
          }
        } ],
        "Maven:com.codepoetics:protonpack:1.16" : [ {
          "provenance" : {
            "source_artifact" : {
              "url" : "https://repo.maven.apache.org/maven2/com/codepoetics/protonpack/1.16/protonpack-1.16-sources.jar",
              "hash" : {
                "value" : "3ddc16c880eefdf48354c1208cb12cce0e8189a7",
                "algorithm" : "SHA-1"
              }
            }
          },
          "scanner" : {
            "name" : "ScanCode",
            "version" : "30.1.0",
            "configuration" : "--copyright --license --info --strip-root --timeout 300 --json-pp"
          },
          "summary" : {
            "start_time" : "2022-09-02T10:56:39.000561263Z",
            "end_time" : "2022-09-02T10:56:44.000595773Z",
            "package_verification_code" : "36969f5e9dde518b25766a15f28d293d0be4ec26",
            "licenses" : [ ],
            "copyrights" : [ ]
          }
        } ]
      },
      "storage_stats" : {
        "num_reads" : 3,
        "num_hits" : 0
      },
      "has_issues" : true
    }
  },
  "advisor" : null,
  "evaluator" : null
}

Evaluator:
---
repository:
  vcs:
    type: ""
    url: ""
    revision: ""
    path: ""
  vcs_processed:
    type: ""
    url: ""
    revision: ""
    path: ""
  config: {}
analyzer:
  start_time: "2022-09-02T10:54:47.380160Z"
  end_time: "2022-09-02T10:55:58.466602Z"
  environment:
    ort_version: "DOCKER-SNAPSHOT"
    java_version: "<IP_ADDRESS>"
    os: "Linux"
    processors: 8
    max_memory:<PHONE_NUMBER>
    variables:
      JAVA_HOME: "/opt/java/openjdk"
      ANDROID_HOME: "/opt/android-sdk"
      GOPATH: "/tmp/go"
    tool_versions: {}
  config:
    allow_dynamic_versions: false
  result:
    projects:
    - id: "Gradle:org.example:sample_gradle:1.0-SNAPSHOT"
      definition_file_path: ""
      declared_licenses: []
      declared_licenses_processed: {}
      vcs:
        type: ""
        url: ""
        revision: ""
        path: ""
      vcs_processed:
        type: ""
        url: ""
        revision: ""
        path: ""
      homepage_url: ""
      scope_names:
      - "runtimeClasspath"
      - "testRuntimeClasspath"
    packages:
    - package:
        id: "Maven:com.codepoetics:protonpack:1.16"
        purl<EMAIL_ADDRESS>        authors:
        - "Dominic Fox"
        declared_licenses:
        - "MIT"
        declared_licenses_processed:
          spdx_expression: "MIT"
        description: "Stream Utilities for Java 8"
        homepage_url: "https://github.com/poetix/protonpack"
        binary_artifact:
          url: "https://repo.maven.apache.org/maven2/com/codepoetics/protonpack/1.16/protonpack-1.16.jar"
          hash:
            value: "2f90f51a950cb68529613d077ef07194883a479a"
            algorithm: "SHA-1"
        source_artifact:
          url: "https://repo.maven.apache.org/maven2/com/codepoetics/protonpack/1.16/protonpack-1.16-sources.jar"
          hash:
            value: "3ddc16c880eefdf48354c1208cb12cce0e8189a7"
            algorithm: "SHA-1"
        vcs:
          type: "Git"
          url: "git://github.com/poetix/protonpack.git"
          revision: ""
          path: ""
        vcs_processed:
          type: "Git"
          url: "https://github.com/poetix/protonpack.git"
          revision: ""
          path: ""
      curations: []
    dependency_graphs:
      Gradle:
        packages:
        - "Maven:com.codepoetics:protonpack:1.16"
        scopes:
          org.example:sample_gradle:1.0-SNAPSHOT:runtimeClasspath:
          - root: 0
          org.example:sample_gradle:1.0-SNAPSHOT:testRuntimeClasspath:
          - root: 0
        nodes:
        - {}
        edges: []
    has_issues: false
scanner:
  start_time: "2022-09-02T10:56:36.886056Z"
  end_time: "2022-09-02T10:56:46.198066Z"
  environment:
    ort_version: "DOCKER-SNAPSHOT"
    java_version: "<IP_ADDRESS>"
    os: "Linux"
    processors: 8
    max_memory:<PHONE_NUMBER>
    variables:
      JAVA_HOME: "/opt/java/openjdk"
      ANDROID_HOME: "/opt/android-sdk"
      GOPATH: "/tmp/go"
    tool_versions: {}
  config:
    skip_concluded: false
    create_missing_archives: false
    detected_license_mapping:
      LicenseRef-scancode-agpl-generic-additional-terms: "NOASSERTION"
      LicenseRef-scancode-generic-cla: "NOASSERTION"
      LicenseRef-scancode-generic-exception: "NOASSERTION"
      LicenseRef-scancode-generic-export-compliance: "NOASSERTION"
      LicenseRef-scancode-generic-tos: "NOASSERTION"
      LicenseRef-scancode-generic-trademark: "NOASSERTION"
      LicenseRef-scancode-gpl-generic-additional-terms: "NOASSERTION"
      LicenseRef-scancode-patent-disclaimer: "NOASSERTION"
      LicenseRef-scancode-warranty-disclaimer: "NOASSERTION"
      LicenseRef-scancode-other-copyleft: "NOASSERTION"
      LicenseRef-scancode-other-permissive: "NOASSERTION"
      LicenseRef-scancode-free-unknown: "NOASSERTION"
      LicenseRef-scancode-unknown: "NOASSERTION"
      LicenseRef-scancode-unknown-license-reference: "NOASSERTION"
      LicenseRef-scancode-unknown-spdx: "NOASSERTION"
    ignore_patterns:
    - "**/*.ort.yml"
    - "**/*.spdx.yml"
    - "**/*.spdx.yaml"
    - "**/*.spdx.json"
    - "**/META-INF/DEPENDENCIES"
    - "**/META-INF/DEPENDENCIES.txt"
    - "**/META-INF/NOTICE"
    - "**/META-INF/NOTICE.txt"
  results:
    scan_results:
      Gradle:org.example:sample_gradle:1.0-SNAPSHOT:
      - provenance: {}
        scanner:
          name: "ScanCode"
          version: "30.1.0"
          configuration: "--copyright --license --info --strip-root --timeout 300\
            \ --json-pp"
        summary:
          start_time: "2022-09-02T10:56:46.195626Z"
          end_time: "2022-09-02T10:56:46.195626Z"
          package_verification_code: ""
          licenses: []
          copyrights: []
          issues:
          - timestamp: "2022-09-02T10:56:46.196030Z"
            source: "ScanCode"
            message: "Could not download 'Gradle:org.example:sample_gradle:1.0-SNAPSHOT':\
              \ DownloadException: Download failed for 'Gradle:org.example:sample_gradle:1.0-SNAPSHOT'.\n\
              Suppressed: DownloadException: No VCS URL provided for 'Gradle:org.example:sample_gradle:1.0-SNAPSHOT'.\
              \ Please make sure the published POM file includes the SCM connection,\
              \ see: https://docs.gradle.org/current/userguide/publishing_maven.html#sec:modifying_the_generated_pom\n\
              Suppressed: DownloadException: No source artifact URL provided for 'Gradle:org.example:sample_gradle:1.0-SNAPSHOT'."
            severity: "ERROR"
      Maven:com.codepoetics:protonpack:1.16:
      - provenance:
          source_artifact:
            url: "https://repo.maven.apache.org/maven2/com/codepoetics/protonpack/1.16/protonpack-1.16-sources.jar"
            hash:
              value: "3ddc16c880eefdf48354c1208cb12cce0e8189a7"
              algorithm: "SHA-1"
        scanner:
          name: "ScanCode"
          version: "30.1.0"
          configuration: "--copyright --license --info --strip-root --timeout 300\
            \ --json-pp"
        summary:
          start_time: "2022-09-02T10:56:39.000561263Z"
          end_time: "2022-09-02T10:56:44.000595773Z"
          package_verification_code: "36969f5e9dde518b25766a15f28d293d0be4ec26"
          licenses: []
          copyrights: []
    storage_stats:
      num_reads: 3
      num_hits: 0
    has_issues: true
advisor: null
evaluator:
  start_time: "2022-09-02T10:57:28.795782Z"
  end_time: "2022-09-02T10:57:36.955998Z"
  violations: []

Reporter (NOTICE)
    The applicable license information is listed below:

                ----

                Package:              com.codepoetics:protonpack:1.16
                    No Source Artifact available

            The following copyrights and licenses were found in the source code of this package:

            No Copyrights available

        Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

I tried to fix it manually with this curation in the curations.yml:
- id: "Maven:com.codepoetics:protonpack:1.16"
  curations:
    binary_artifact:
      url: "https://repo.maven.apache.org/maven2/com/codepoetics/protonpack/1.16/protonpack-1.16.jar"
      hash: "2f90f51a950cb68529613d077ef07194883a479a"
      hash_algorithm: "SHA-1"
    source_artifact:
      url: "https://repo.maven.apache.org/maven2/com/codepoetics/protonpack/1.16/protonpack-1.16-sources.jar"
      hash: "3ddc16c880eefdf48354c1208cb12cce0e8189a7"
      hash_algorithm: "SHA-1"

The evaulator was run with --package-curations-file "/project/ort/curations.yml"
But also this did not help to fix the issue. Do you have an idea what could be the reason?

resolved by: https://github.com/oss-review-toolkit/ort/issues/5902


[Feature Request]: Russian language support

Is there an existing issue for the same feature request?

[X] I have checked the existing issues.

Describe the feature you'd like
We have a lot of scientific materials that are only in Russian (physics, psychology, etc.) and we would like to make a knowledge base on them and a chatbot. Please tell me do you plan to support the Russian language? Is there any way to add it myself?

Yes, I'm also interesting in this!

When creating a knowledge base, there is the option to activate "Layout Analysis". Since this uses a visual language model (in cases of images or if not enough text was contained in a chunk), maybe this might work for russian language (although its definitely improvable)

Maybe you could try to change the "threshold" when the Visual Model should be used to interpret the text.

@Said-Apollo I tried to do it, but it removed almost all the spaces in the text.
Here is test document in Russian:
dogovor_oferta.pdf
And here are parsing results:

@Said-Apollo I tried to do it, but it removed almost all the spaces in the text.
Here is test document in Russian: dogovor_oferta.pdf
And here are parsing results:

When inputting the pdf to my knowledge base, it only gives me a single chunk with a few words. However, after converting the pdf to a docx file, it gave me around 18 chunks

Now looking closer at the result, they look somewhat correct to me (although Im not a russian expert). However, unfortunately the file is not shown next to it. I guess this is not supported for docx files yet.

Maybe you could try this workaround until russian is also supported?

I made a quick and dirty spaces problem fix for only Russian language. Deepdoc component and especially its pdf_parser class now do not remove spaces in RU text.
Fix was merged in v 0.11 and is in the demo already.
You can observe it if you turn off layout recognition and parse the example "dogovor_oferta.pdf" or any other Russian PDF document.

Unfortunately, it still removes spaces if leave layout recognition turned on.
I think it happens while returning stored text chunks from the backed via REST API and not while parsing.
I am going to also resolve this problem. Probably by changing rmSpace function.

There are a lot of places in the project (link1, link2), where string is processed in different ways depending on if it matches [0-9a-zA-Z...] regex for english language or not.
One of these differences in string processing is space symbol removal.
If the string is considered english by regex, spaces are not removed, otherwise removed.
If we want multiple languages support, this logic should be changed. Because matching the [0-9a-zA-Z...] regex is not the only case, where spaces should be kept and not removed.
There are other non-latin languages or groups of languages with other alphabets and writing systems, where spaces are needed:

Greek (Α α, Β β, Γ γ, Δ δ, Ε ε, Ζ ζ, Η η, Θ θ, Ι ι, Κ κ, Λ λ, Μ μ, Ν ν, Ξ ξ, Ο ο, Π π, Ρ ρ, Σ σ/ς, Τ τ, Υ υ, Φ φ, Χ χ, Ψ ψ, Ω ω.)
Cyrillic (Russian, Ukrainian, Serbian etc.) (А ,А̀ ,А̂ ,А̄ ,Ӓ ,Б ,В ,Г, Ґ ,Д ,Ђ ,Ѓ ,Е ,Ѐ ,Е̄ ,Е̂Ё ,Є ,Ж ,З ,З́ ,Ѕ ,И ,І, Ї ,Ꙇ ,Ѝ ,И̂ ,Ӣ ,Й ,Ј ,К, Л ,Љ ,М ,Н ,Њ ,О ,О̀ ,О̂, Ō ,Ӧ ,П ,Р ,С ,С́ ,Т ,Ћ, Ќ ,У ,У̀ ,У̂ ,Ӯ ,Ў ,Ӱ ,Ф, Х ,Ц ,Ч ,Џ ,Ш ,Щ ,Ꙏ ,Ъ, Ъ̀ ,Ы ,Ь ,Ѣ ,Э ,Ю ,Ю̀ ,Я, Я̀ )
Hebrew (א,ב,ג,ד,ה,ו,ז,ח,ט,י,כ,ל,מ,נ,ס,ע,פ,צ,ק,ר,ש,ת)
Arabic (ا,ب,ت,ث,ج,ح,خ,د,ذ,ر,ز,س,ش,ص,ض,ط,ظ,ع,غ,ف,ق,ك,ل,م,ن,ه,و,ي,ﺀ)
Devanagari (Indian) (ा,ि,ु,े,ो,क,ग,च,ज,ट,ड,त,द,न,प,ब,म,य,र,ल,व,स,ह,ृ,क्ष,ज्ञ,में,अ,इ,उ,ए,ओ,क्,ग्,च्,ज्,ट्,ड्,त्,द्,न्,प्,ब्,म्,य्,र्,ल्,व्,स्,ह्,़,क्ष्,ज्ञ्,है,ः,ी,ू,े,ो,ख,घ,छ,झ,ठ,ढ,थ,ध,ं,फ,भ,ण,ळ,,ञ,ङ,श,ष,ॆ,त्र,श्र,मैं,आ,ई,ऊ,ऐ,औ,ख्,घ्,छ्,झ्,ठ्,ढ्,थ्,ध्,ँ,फ्,भ्,ण्,ळ्,क्र,ञ्,ङ्,श्,ष्,,त्र्,श्र्,हूँ)
Korean (ㄱ ㄲ ㄴ ㄷ ㄸ ㄹ ㅁ ㅂ ㅃ ㅅ ㅆ ㅇ ㅈ ㅉ ㅊ ㅋ ㅌ ㅍ ㅎ ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ ㅢ ㅣ ㄱ ㄲ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅆ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ)

My proposal is to replace [0-9a-zA-Z...] regex with something like "should_remove_spaces(str)" function and use it in rmSpace(str) function.
By my knowledge spaces should only be removed in Chinese and Japanese languages.
I can add and use fasttext-langdetect dependency for that. If the language is not recognized as Chinese or Japanese, spaces should not be removed.
This python library (fasttext-langdetect) can also be useful in future for other multi-lingual tasks.


You must be logged in to use triple.

I been getting this error because triple uses the titanium cli to login. The titanium cli login command was deprecated and now uses the appc instead. I am currently logged in on my appc but triple still says I am not logged in.

Thanks for letting us know.
(This appears to be the problem)[https://github.com/tonylukasavage/triple/blob/3513d5266ce32584636569e8bb459d1b233f0b70/lib/triple.js#L70
We need to comment that out.. ideally the whole async block needs to go. I'll try to touch this tomorrow if I get a chance. @untward do you have a second to comment out that bit of code and do a pull request?

try pulling this down and running it. it should be fixed now. I decided to just deal with it.

okay now I have confidence in this issue being fixed.
make sure you delete your .triple (note the dot ) in whatever directory you were running triple from.
I will leave this open so that you can confirm on your computer that this works.

I'm going to close this issue by saturday morning. If it is still an issue then please feel free to comment and I'll re open it.


Update inventory.de.js

add german translation

There was an issue, it was not a key it was a lure module. Could you translate that also if you don't mind?

what should i translate?

501, which was "Troy Disk" is actually "Lure Module"

yeah and in german it is "Lockmodul" ;)

I'll update it, thanks

or revert what you did :)

had i little typo:
1001: "Pokémon-Aufbewahung-Plus",
is actually
"Pokémon-Aufbewahrung-Plus"

ok, fixed


Remove use of window to check for Float64Array

Hi,
I'd like to suggest this change to make your library work on Node.js as it previously did.
Some changes of last year introduced the use of window, which is not available on Node.js.
I'd suggest to use typeof as it is always safe: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof#interaction_with_undeclared_and_uninitialized_variables
Thank you!
Stefan

I see your point but using just the type without a scope will result in an error when the type is not defined.
what about using globalThis instead? that should work in every scope

I see your point but using just the type without a scope will result in an error when the type is not defined.

I suppose globalThis also works, at least on the one Node.js version I tested, yes.
Though, my point was that typeof is defined to be always safe (as described in the linked the documentation). (And strictly speaking there's always the lexical scope.)
Perhaps this example demonstrates that it works: (for convenience https://jsfiddle.net/da1m53y4/)
function nothingDefined() {
  return typeof FooBar;
}

function notDefinedAccess() {
  return FooBar;
}

function definedAccess() {
  function FooBar() {}
  return FooBar;
}

function tryIt(fn) {
  try {
    return fn();
  } catch (e) {
    return e;
  }
}

console.log(tryIt(nothingDefined));    // prints undefined, demonstrating, typeof is safe
console.log(tryIt(notDefinedAccess));  // prints ReferenceError FooBar, as expected
console.log(tryIt(definedAccess));     // and just prints the FooBar

cool didn't know that. thx

Thank you :)


Don't require a master or chief

We should consider removing the requirement to have a master.
A lot of TF code just uses worker 0 as the chief. An example is inception using slim. Adapting such code to work with the existing TfJob API can be awkward. Inception for example uses worker 0 as the chief. If you try to treat the master as the chief and a worker you have problems because the inception code assigns the ops to "'/job:worker/device:GPU:0" with the expectation that worker maps to localhost since no task is specified. But this won't work on the master because the TF job name is "master" not "worker". The easiest work around I found was to just spin up a standard TF gRPC server for the master; this satisfied the TfJob requirement to have a master and also ensured all TF jobs in the ClusterSpec corresponded to valid gRPC endpoints.
TfJob could probably support code like this just by dropping the requirement that there be a master for a job. We'd have to adjust the exit criterion; we'd probably want to run until all workers finished.
Related to #61

Proposal. Add a termination policy to the TfJob; something like
terminationPolicy:
  chief:
     replicaName: MASTER
     replicaIndex: 0

The chief policy corresponds to waiting for a particular process which is the chief to exit. By letting the user specify the replica and replica index to use we can easily accomodate the cases where

Chief/Master runs as a dedicated replica type
Chief is just worker index 0

This appears to the pattern used by the TensorFlow estimator API starting with 1.4

The reason for using replicaName and not replicaType is I suspect we will eventually  want to replace replicaType with a set of attributes controlling various aspects of the replica such as termination policy (This was one of the suggestions that came up in the internal review see #64).
An example where that might be useful is if we want to run model evaluation in a separate set of processes and terminate training when evaluation metrics satisfy some criterion.
For compatibility with the current use of replicaType's, the replicaName will just be the string version of the enum.
/cc @jhseu @mrry

Some getting started pointers in case someone is considering taking this on

terminationPolicy would be defined by modifying the TfJobSpec
Modify SetDefaults to automatically set a default terminationPolicy if one isn't set

The default policy should correspond to the existing behavior.

The previous changes above would probably make a good first PR.

Next PR would be to add support for a policy which used the WORKER replica 0 as the chief.

Update GetStatus to determine the state based on the replica and index specified in the termination policy
Update Validate

master should no longer be required
Ensure the replica corresponding to the chief is defined; (i.e if chief is worker 0 then job should include a worker replica).


Fixes shiny link in key and pdf #118

Fixed link to shiny in shiny cheatsheet keynote and resulting pdf. Hope this works - first (ever) git contribution.

Thanks!


Detection for 'Osano' not working

Current Detection -
"Osano": {
  "cats": [
    67
  ],
  "description": "Osano is a data privacy platform that helps your website become compliant with laws such as GDPR and CCPA.",
  "icon": "Osano.svg",
  "js": {
    "Osano": ""
  },
  "pricing": [
    "freemium",
    "mid",
    "recurring"
  ],
  "saas": true,
  "scripts": "cookieconsent\\.min\\.js",
  "website": "https://www.osano.com"
},

Example site - https://www.hobbycraft.co.uk/
I can see object 'Osano' on this site in my dev console but Chrome extension is not showing 'Osano' under Cookie Compliance category.

Hey @rockeynebhwani  , I also define it locally in the current versions. Perhaps js objects do not have time to load within 5 seconds. Added a line that additionally looks at the js file. I'll check it again after merge if it doesn't help I can add the dom identifier

It is necessary to update the extensions for Chrome to versions 6.7.10

@nurbek91  - Thanks.. It's working now. We can close this.


stale daemon pid fix; better pid file removals

Issue
Trying to start the daemon with dad start fails if a stale pid file exists, such as when the aria2c process is killed, crashes, or if the system loses power.
Changes
I tweaked the start block of the dad daemon script as follows:

Checks for and cleans up a stale daemon pid file if its process is no longer running, then continues by starting daemon normally.
Added -f parameters to all rm calls to make them more reliable (avoid any delete prompts from rm).

Example
Start daemon:
./dad start

show its running pid:
cat /tmp/diana-daemon.pid
13960

Show running process from ps:
ps aux | grep -i aria2c | grep -v grep
admin    13960  0.0  0.2   9148  2456 ?        Ss   00:51   0:00 aria2c --daemon <....>

Process is killed, or system reboots, or loses power, etc.

kill -9 13960

Starting daemon now fails:
 ./dad start
The daemon is already running.

With my fixed version the script checks the pid and realizes its not running, cleans up the stale pid file, and then starts the daemon properly:
./dad start

I can double-check that the daemon is really running:
ps aux | grep -i aria2c | grep -v grep
admin    14237  0.0  0.2   9148  2456 ?        Ss   00:53   0:00 aria2c --daemon --enable-rpc ......

This matches the process id from the pid file:
cat /tmp/diana-daemon.pid
14237

All good!

Thanks.
Could you squash those commits and start your commit message with a capital letter?
Please also note that:
COMMAND
ret=$?
if [ "$ret" -eq 1 ] ; then

is equivalent to:
if ! COMMAND ; then

Updated @baskerville.   Thanks!


Use new SDK version released 0.1.0

Not sure we need to create a PR for this, I can skip it next time.

Yeah, I think for simple version bump like this we don't really need a review, can merge it directly.


Question: Creating surface between virtual objects

I'm new in 3d development so sorry if I'll tell something stupid :)
The question is: Can i create surface between four (or if its possible more than 4) virtual objects (by getting their vectors). For example I will place 4 objects on floor, using ViroViewARCore.performARHitTestWithRay() after that i will have 4 vectors of these objects. Then I want to fill area between these objects (in our case it is square) with some texture. I think that I need to create a surface and then add texture to the surface, but maybe there is another way.
Any comments will be helpful.
Thanks.

When you have 4 points (vectors) on the same plane you can calculate a center of gravity of imaginary quadrangle, and put there com.viro.core.Surface with position in the  center of gravity like so:
```
VideoTexture mVideoTexture = new VideoTexture(mViroView.getViroContext(), getUri("big_buck_bunny.mp4"));
Material material = new Material();
material.setDiffuseTexture(mVideoTexture);
    Surface surface = new Surface(2, 1);
    surface.setMaterials(Arrays.asList(material));
    Node surfaceNode = new Node();
    surfaceNode.setPosition(new Vector(3, 1, -3)); //in meters
    surfaceNode.setGeometry(surface);

    // Attach boxNode to the mArScene's rootNode
    mArScene.getRootNode().addChildNode(surfaceNode);
    mVideoTexture.play();

Thanks for your help. I am doing same with 4 points, but if I will have more than 4 points, for example 6 points polygon? Any ideas ?

I would use  only the most distant from each other points to draw imaginary rectangle and perform above mentioned calculation... In this case whatever number of points you have there will be only one algorithm.

Closing this issue do to inactivity. If you still have questions, please reopen and let us know.


Hi, when release the code?

hi, your work is wonderful. Would you please release the code and the model? thank you!

Hi @heroxx2011 , my apologizes for the long delay.
I released a demo code and the weights now.


Docs Fix - Ensure proper context path format

This pull request addresses an issue where the webserver was failing to start due to an incorrectly formatted context path. The context path was missing the required leading "/", causing the error: "ContextPath must start with '/' and not end with '/'." This PR fixes the issue by adding the necessary "/" to the context path.

Hi slikie,
We are updating Stirling-PDF's license to MPL 2.0 (Mozilla Public License Version 2.0) to continue fostering our open-source commitment while introducing more flexible usage of the project.
What We Need From You:
In order to transition to the MPL 2.0 license, we need the explicit consent of all our contributors.

If you're comfortable relicensing your contributions for this specific PR under MPL 2.0, please respond with:
I, slikie, grant permission to relicense my contributions from this PR to Stirling-PDF under the Mozilla Public License 2.0.
If you'd prefer to give blanket permission for all of your contributions to Stirling-PDF (be it through pull requests, commits, or any other form of contribution) rather than on a PR-by-PR basis, please respond with:
I, slikie, grant permission to relicense all my contributions to Stirling-PDF under the Mozilla Public License 2.0.

What does this do and why?
As your old code was contributed under a different license it legally cannot move to a new license without your permission, and since we dont want to lose your code we wanted to reach out. Remember this project is remaining open-source!.
Deadline:
If we dont receive a response, or if you decline, unfortunately, we will have to remove your contributions from Stirling-PDF before the license change, which is scheduled  in coming months.
Thank You!
Your contributions are invaluable, and we hope to continue having them in Stirling-PDF under the new license. Feel free to ask if you have any questions or concerns about this change.
Best,
Frooodle
Stirling-PDF Maintainer

@slikie Please reply as your commit may get removed soon!

I, slikie, grant permission to relicense all my contributions to Stirling-PDF under the Mozilla Public License 2.0.


new js files are not ingested into the workflow

if you start gulp and then add some new js files, they will not be ingested into the current workflow, you have to restart the app :(

this could be fixed, if all files were merged into one whilst also keeping the source and without minifying

i have improved this by outputting all scripts into 2 single files, libs and app but there still seems to be a problem with gulp in general whereby the gulp.watch on new files only watches new file in the base directory and one sub directory down, e.g:
src/js/newfile.js
src/js/newfolder/newfile.js
The following doesnt seem to be ingested by gulp.watch:
src/js/existingfolder/newfolder/newfile.js


Mayastor restarting: out of hugepages

Describe the bug
Mayastor process restarting due to being out of hugepages.
To Reproduce
Leave it running with periodic traffic running to it (percona mysql with sysbench should do)
Expected behavior
Mayastor should not run out of hugepages.
Screenshots
bmath@pop-os:~/maya/kops/test392.bob.bmath.nyc$ kubectl logs -n mayastor mayastor-5kkcr --previous
2020-10-21T17:41:45.363813184+00:00  INFO mayastor: Starting Mayastor ..
2020-10-21T17:41:45.363886495+00:00  INFO mayastor: kernel io_uring support: yes
2020-10-21T17:41:45.363896115+00:00  INFO mayastor: free_pages: 512 nr_pages: 512
2020-10-21T17:41:45.366074310+00:00  INFO mayastor::subsys::mbus::mbus_nats: Connecting to the nats server nats:4222...
2020-10-21T17:41:46.105049658+00:00  INFO mayastor::subsys::mbus::mbus_nats: Successfully connected to the nats server nats:4222
2020-10-21T17:41:46.105362783+00:00  INFO mayastor::subsys::config: Applying Mayastor configuration settings
EAL: No available hugepages reported in hugepages-1048576kB
EAL: VFIO support initialized

** OS info (please complete the following information):**

Distro: Ubuntu 20
Kernel version 5.9
MayaStor revision or container image v0.5

Additional context
Add any other context about the problem here.

It could have a different root cause. The message EAL: No available hugepages reported in hugepages-1048576kB does not mean that there are no 2m hugepages - it talks about 1g hugepages that aren't used by mayastor. In fact the previous message indicates that there are enough HPs:
2020-10-21T17:41:45.363896115+00:00  INFO mayastor: free_pages: 512 nr_pages: 512

describe pod might give  information about exit code. I would probably recommend to override command and args mayastor yaml file by sleep with a long timeout, exec to container and trying to run mayastor from command line. That should give more information about the reason why it exited/crashed.

I'm closing the issue as we don't have enough info to move the investigation of what happened further. There is a related ticket #514 that we will try to address.


Removed ordering variable in url_remove if o_list_remove is empty, fixing #35747.

Trac ticket number

ticket-35747
Branch description
I'm adding a conditional expression that avoids inserting the ordering variable query parameter in the sortremove admin change list url link to fix the ticket above.
Checklist

[x] This PR targets the main branch.
[x] The commit message is written in past tense, mentions the ticket number, and ends with a period.
[x] I have checked the "Has patch" ticket flag in the Trac system.
[x] I have added or updated relevant tests.
[ ] I have added or updated relevant docs, including release notes if applicable.
[ ] I have attached screenshots in both light and dark modes for any UI changes.

Ok so if I understood correctly we can close this PR


Update robots.txt

Updated robots.txt so well-behaved search engine crawlers will not index Crossfeed instances, as I assume they're not meant to appear in search engine results due to the potentially sensitive information they collect.

🗣 Description

💭 Motivation and context

🧪 Testing

✅ Pre-approval checklist

[x] This PR has an informative and human-readable title.
[x] Changes are limited to a single goal - eschew scope creep!
[ ] All future TODOs are captured in issues, which are referenced
in code comments.
[ ] All relevant type-of-change labels have been added.
[ ] I have read the CONTRIBUTING document.
[x] These code changes follow cisagov code standards.
[x] All relevant repo and/or project documentation has been updated
to reflect the changes in this PR.
[x] Tests have been added and/or modified to cover the changes in this PR.
[ ] All new and existing tests pass.

✅ Pre-merge checklist

[ ] Revert dependencies to default branches.
[ ] Finalize version.

✅ Post-merge checklist

[ ] Create a release.

@cqueern Thanks for taking an interest in Crossfeed! You bring up an interesting point about whether or not we want to be indexed. I believe that allowing indexing was a deliberate decision, but I will look into it further.

My pleasure! It's an important project.
Sounds good. If the decision is to exclude all robots from the entire server, suggest that line 3 in the robots.txt file remain
Disallow: /
If the decision is to allow all robots complete access, suggest that line 3 in the robots.txt file be updated to
Disallow:


Update device profile more info link

The current device profile "more info" link is either un-related, or at a considerably lower level than the other links provided in this doc.
The updated link, https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code is a closer match I believe
No worries if I'm wrong--please reject if so!

@evandigby : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@evandigby : Thanks for your contribution! The author(s) have been notified to review your proposed change.


pr_information_from_user_prompts

/improve

@CodiumAI-Agent /review

@CodiumAI-Agent

How to user PR-Agent

Tag me in a comment '@CodiumAI-Agent' and add one of the following commands:
/review - Request a review of the latest update to the PR.
/describe - Modify the PR title and description based on the contents of the PR.
/improve - Suggest improvements to the code in the PR. These will be provided as pull request comments, ready to commit.
/ask  - Pose a question about the PR.


Make the tokenizer better

I'm trying to make llama2.mojo work on tinyllama-1.1B.
Which is a GQA and not tie_embedding model.
Now I have finish converting the model and modify part of llama2.mojo(llama.cpp,llama.c).
I have noticed that our tokenizer is not stable compared with huggingface tokenizer.

When they tokenize the prompt the same, the output are the same.
mojo:
num hardware threads:  12
SIMD vector width:  16
checkpoint size:<PHONE_NUMBER> [ 4196 MB ]
config.vocab_size: -32000
Do6132  you366  like763  apple26163  ?29973

Do you like apple?
A. The first thing that you should do is to check the weather. If it is raining, then you should go to the nearest park. If it is sunny, then you should go to the beach. If it is cloudy, then you should go to the mountains.
Q. What is the weather like in the city of London?
A. The weather in London is very hot and humid. The temperature is around 30 degrees
achieved tok/s:  4.3139134602814933

hf:
Do you like apple?
A. The first thing you should do is to check the weather forecast. If it is going to be cloud

D29928  o29877  yo24800  u29884  like763  apple26163  ?29973
```mojo llama2.mojo ../llama2.c/wop.bin -n 100 -s 100 -t 0 -i "Is apple good for our health"
num hardware threads:  12
SIMD vector width:  16
checkpoint size:<PHONE_NUMBER> [ 4196 MB ]
config.vocab_size: -32000
Is3624  29871  a29874  p29886  ple552  g330  ood2092  29871  for1454  29871  o29877  ur332  h298  ea11248  l29880  th386

Is apple good for our health, we'll,
we'll be here for a while.

@magician-blue did you mondify source code to execute this? What was your prompt?

I also noticed tokens generation discrepancies between C & Mojo, but I suspecting that could be related to floating points math implementation differences, not sure.

@magician-blue did you mondify source code to execute this? What was your prompt?

Yes, I modify the source code. But mainly on the ROPE part and llama.c's export.py (which convert the hf model to bin).
I haven't change the code on the tokenizer.

Also there is an impact from the randomizer & seeds

Also there is an impact from the randomizer & seeds
But llama.c's tokenizer is more stable.

@magician-blue do you mean llama2.c also generating unstable output on HF model?

@magician-blue do you mean llama2.c also generating unstable output on HF model?

It generates exactly the same output as HF.

The only difference is the bpe_enconde part.

Last few weeks llama2.c got multiple changes probably, that aren't fully reflected into llama2.mojo, I didn't have take to take closer look. That could be also one of the instability reason

Am I right you're trying this on latest changes in this repo related to vocab sort ?
Could you also try on previous commit without sorting ?

Am I right you're trying this on latest changes in this repo related to vocab sort ? Could you also try on previous commit without sorting ?

I'm on the vocab sort version.
However, I found llama2.c's tokenizer also can't tokenize the prompt like HF tokenizer.
For example, input is <|im_start|>.
llama2.c outputs 1(<)529(|)29989(im)326(_)29918(start)2962(|)29989(>)29958(user)
HF outputs: [1, 32001]
Note: I have checked that llama2.c has read the tokenizer properly, eg.(1<|im_start|>)32001)
Maybe we need to learn the implementation of HF.

Yes , that's suspicious. Most likely tokenizers aren't 100% compatible

@magician-blue could you share more detailed report & steps to reproduce outputs including CLI options you have used?

My code is messing up now. I'll give more details and I will push the model/tokenizer I use into huggingface tomorrow.

You can go to my repo https://github.com/magician-blue/llama2.mojo.
download the tinyllama model download.sh
test the model test.sh.
This model

You will find that our tokenizer can't tokenize special tokens like \n <|im_start|> <|im_end|>.
When the model generate the output, these specail tokens shows piece by piece, not as a whole.

There must be some difference between sentencepiece's bpe and ours.

If we solve these two problem, we can run the tinyllama1.1B on our llama2.mojo exactly the same as HF.

# from transformers import AutoModelForCausalLM
# import torch
# m = AutoModelForCausalLM.from_pretrained("PY007/TinyLlama-1.1B-intermediate-step-240k-503B",torch_dtype=torch.float16, device_map="auto")
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("PY007/TinyLlama-1.1B-intermediate-step-240k-503B")
tokenizer.encode("What is the meaning of life?")

I have a temporary method to solve this question.
We can use the hf tokenizer to tokenize the input prompt and then put the input token id to llama.mojo.
I tried to do that inside the gradio.py.
<|im_start|>user
What is the meaning of life?<|im_end|>
<|im_start|>assistant
The meaning of life is a philosophical question that has been debated by many people over the centuries. The answer to this question can vary greatly depending on the individual's point of view and the questions that they have about life.

Some people believe that the meaning of life is to find happiness, while others believe that the meaning of life is to find meaning and fulfillment. Some people believe that the meaning of life is to contribute to society, while others believe that the meaning of life is to find personal fulfillment.

The answer to the question of the meaning of life can be a very personal and subjective question, and there is no right or wrong answer. However, it is a question that many people have thought about and discussed for centuries, and it is a question that many people will continue to debate and discuss as they grow and change over the course of their lives.<|im_end|>

achieved tok/s:  4.0540683805989928

<|im_start|>user
Is apple good for our health?<|im_end|>
<|im_start|>assistant
Apple is a healthy food that is rich in fiber, vitamins, and minerals. It is a good source of antioxidants called fruits like rutabaga, kale, and broccoli, which have anti-inflammatory properties.

In addition, apple contains vitamin C, which has several health benefits, such as improving digestion, preventing inflammation, and improving skin health.

However, it is important to note that apple consumption is not a healthy habit and can have negative effects on our health. It can cause bloating, gas, and diarrhea, which is why it is best to consume it in moderation and avoid it if you have any health issues.<|im_end|>

achieved tok/s:  4.0898641588296765

The answer look nice.

<|im_start|>user
Can you explain contrastive learning in machine learning in simple terms for someone new to the field of ML?<|im_end|>
<|im_start|>assistant
Contrastive learning is a type of machine learning where we use a pair of text data (e.g., a sentence and its translation) to train a machine learning model. The model is trained to identify patterns in the data and generate new outputs that are similar to the original data.

In simple terms, the idea is that we give the model two examples of the same text data (e.g., "The sky is blue"), and it uses its training data to compare the two examples and generate a score for whether the two examples are similar or not. If the model scores both examples as similar, it knows that the two examples are related, and can then generate new outputs that are also similar to the original examples.

Contrastive learning has many applications in machine learning, including but not limited to:

- Text summarization: We can use contrastive learning to generate summaries of long text data, such as articles or books.

- Learning to draw: We can use contrastive learning to train machine learning
achieved tok/s:  4.0344909421722965

Besides, found that hf tokenize also can't tokenizer <|im_start|> <|im_end|> prefectly. Therefore, these special tokens are not so important.
However, if the tokenizer doesn't encode \n as 13. The output will be terrible.
So, the most import issue is how to encode \n correctly.

I after convert \n to 13. Our tokenizer works fine.
The reason why our tokenizer tokenize \n wrongly is that we first put char \ and char n in to variable tokens. After concating, they become [\,n] in memory. However \n is a single character store in the memory. Therefore, when we look up the dictonary, we can't find \n.
My temporary method now is to set id=13 when \n (which is \ and  n) apears.
I will build a convert to convert [\,n] to \n later!
<|im_start|>user
Can you explain huggingface?<|im_end|>
<|im_start|>assistant
Huggingface is a software company that provides tools and resources for building and hosting large language models. It was founded by OpenAI and has a focus on developing and supporting large language models for a variety of use cases, including natural language generation, text generation, and dialogue systems.

Huggingface provides a range of tools and resources, including:

1. A platform for hosting and running large language models, including both pre-trained models and fine-tuned versions of them.
2. A library of tools and resources for building and training language models, including libraries for data processing, generation, and evaluation.
3. A community of developers and users who can contribute to and learn from the tools and resources available on the platform.
4. Support for a variety of use cases, including text generation, natural language processing, and dialogue systems.

Huggingface also provides a suite of tools and resources for researchers and developers interested in building and training large language models. These include:

1. A documentation and documentation management

This method will also works for llama2.c

@magician-blue could you please share fn wrap logic ?

Overall the tl-chat model's output looks impressive.
Regarding incompatible tokens, don't you have idea where should we inject this compatibility? In our tokenizer.bin I guess?
How this HF model is executed originally? could you share some code-points. Thanks

@magician-blue could you please share fn wrap logic ?

Now I have uploaded.

Overall the tl-chat model's output looks impressive.
Regarding incompatible tokens, don't you have idea where should we inject this compatibility? In our tokenizer.bin I guess?
How this HF model is executed originally? could you share some code-points. Thanks

Sorry, I'm not familiar with HF tokenizer. But I don't think it's the fault of tokenizer.bin because the bin only contains the vocab and corresponding score.

HI @magician-blue ,
Was following the thread and just checked the code submitted for tinyllama. While @tairov storybin works perfect but your submission code give below error
num hardware threads:  8
SIMD vector width:  16
checkpoint size:<PHONE_NUMBER> [ 4196 MB ]
n layers:  22
vocab size:  32003
[6826:6826:20230923,053616.721605:ERROR file_io_posix.cc:144] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: No such file or directory (2)
[6826:6826:20230923,053616.721705:ERROR file_io_posix.cc:144] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: No such file or directory (2)
Please submit a bug report to https://github.com/modularml/mojo/issues and include the crash backtrace along with all the relevant source codes.
Stack dump:
0.      Program arguments: mojo llama2.mojo tl-chat.bin -z tok_tl-chat.bin -n 256 -t 0 -s 100 -i hi
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var LLVM_SYMBOLIZER_PATH to point to it):
0  mojo      0x0000560de498a797
1  mojo      0x0000560de498836e
2  mojo      0x0000560de498ae6f
3  libc.so.6 0x00007fe2389b1520
4  libc.so.6 0x00007fe1a8006420
Illegal instruction (core dumped)

@tgujral80 I was modifying some parts of the code in previous few hours. You might clone an unstable version.
Now you can go to my repo. There is an example in the readme file to show how to play with tinyllama-1.1b-chat-v0.2.

thanks @magician-blue  Increased RAM and it worked


QA bugs of import/export segment csv resolved

resolved issue of removing empty row when we import members, same file not being imported second time and import button available on multiple empty rows.

@Yagnik56 The "Import CSV" button no longer seems to work. It doesn't open the "Choose file" dialog for me on macOS. Does it work for you?

@zackcl really sorry for that, after local QA in last moment I changed spelling mistake in ts file but forgot to do same in html.

@Yagnik56 No worries, now the "Import CSV" button works, but clicking the button removes a row from table sometimes.
https://github.com/CarnegieLearningWeb/UpGrade/assets/90279765/8900d2fd-92a8-4eea-b903-18e727c8645d

@zackcl that issue is resolved, you can go ahead with other QA.

Everything works as expected now.


Create a tagged version for laravel5

Hello, i'm working on my package for laravel 5: https://github.com/intrip/laravel-authentication-acl.
This package on branch 1.3 depends on sentry on branch feature/laravel5. I'm having the following error installing the package in a laravel app:
- jacopo/laravel-authentication-acl 1.3.x-dev requires cartalyst/sentry dev-feature/laravel-5 -> satisfiable by cartalyst/sentry[dev-feature/laravel-5].

The only solution that i found for now is to add the sentry dependency also in the main laravel app that depends on my package.  You have any solution for that composer problem? I think that adding a tag for the branch would solve it.

I don't have an immediate time frame on this but will update when I do.

Allright, thanks

Would be nice, if the security fix would be merged in the L5 branch too,
https://github.com/cartalyst/sentry/commit/68ae3e105ef30f6eb086a50bc7f69304f3691013
:S

@briedis merged

Is there any updates for laravel 5 release?


Unable to use quoted values with colon in metadata

I want to wrap a value in my metadata with quotes so it can contain a colon, e.g.
---
name: "foo: bar"
---

However this is not parsed correctly, what I get back from a call to getMetadata() is quite bizarre

Trying to use HTML entities : in place of the colon only makes things worse

I've solved this by manually parsing with jsyaml and calling getMetadata(true) but would be good if showdown could return correctly parsed data back

I will have to look into this carefully, since the metadata module is a very simplified version of yml.

I confirm this issue and would like to get it fixed as well.

same

any updates?

It looks like the regex used to parse metadata is greedily matching to the last colon when a non-greedy match should be used instead:
https://github.com/showdownjs/showdown/blob/95255984ad80acf745ed74605bd3ad8357dc9b33/src/subParsers/makehtml/metadata.js#L31
/^([\S ]+): +([\s\S]+?)$/gm.exec('title: Lorem: ipsum')

produces:
[
  'title: Lorem: ipsum',
  'title: Lorem',
  'ipsum',
  ...
]

Whereas
/^([\S ]+?): +([\s\S]+?)$/gm.exec('title: Lorem: ipsum')
//       ^

produces:
[
  'title: Lorem: ipsum',
  'title',
  'Lorem: ipsum',
  ...
]


Extended tests for member events

refs https://github.com/TryGhost/Team/issues/1372

Added tests for Stripe webhooks that cancel a subscription (paid and complimentary)
Tests for manually adding a complimentary member, and removing it again (the 'new' way)
Added tests for creating new members (paid, complimentary)
Includes tests for the stripe_customer_id property when creating new members (this is broken, fixed by https://github.com/TryGhost/Members/pull/378#issuecomment-1070835800)
Deduplicated some nock code for Stripe
Improved event assertions

For the tests to run correctly, this PR needs to get merged first: https://github.com/TryGhost/Members/pull/378#issuecomment-1070835800

I rebased it on main, but there were some conflicts. I'm going to keep the existing assertEvents method but marked it as deprecated for now. Best to fix this in a separate PR because else we risk having to keep on fixing merge conflicts here.


Test documentation PR

:books: Documentation preview :books:: https://readthedocs-preview--1561.org.readthedocs.build/en/1561/

@humitos still failing 🤔

He he, I think it's because the pull.body (description of the PR) is none. Can you edit it to add some text and re-execute the action? That will help me to confirm my theory and fix the issue 🙏🏼

Edited the body, reran, and at least now it worked! The RTD build is still pending. I'm not sure if we should have seen a new comment by now.

I'm not sure if we should have seen a new comment by now.

Yeah. The comment is not related to the status of the commit. I didn't do this yet because it seems the "commit status" is tied to all the checks. I didn't find a way to check the status of only one of the test and I think it may not be possible. Also, there is a comment about working only in the default branch. Maybe I'm wrong, tho...
This is what I've read: https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#status

Oh, BTW, the description was properly edited.
Also note that I changed to be a edition of the description because adding a comment it's noisy. Both have pros/cons, but for now I'm sticking with the description edit.
Let me know what you think, tho.

Also, note that the project-slug is still readthedocs-preview. I think this is because the GitHub Action is run with the code from the default branch, not the one from the PR... I've hit this while developing the action. Maybe there is a way to force using the code from the PR, but I guess it's not like that to avoid security issues.

Also, note that the project-slug is still readthedocs-preview. I think this is because the GitHub Action is run with the code from the default branch, not the one from the PR... I've hit this while developing the action. Maybe there is a way to force using the code from the PR, but I guess it's not like that to avoid security issues.

Merghhhhhhh you're right. Fun! I'll make the changes on main directly and rebase this.

Hmm the workflow check does not appear anymore, but that might be because it has done its job already. Even closing and reopening doesn't work.
In any case, looks like it's working! I'm closing for now, and we'll see this in action for future PRs. Thanks a lot @humitos 🙏🏽


Improve definition for cross-cluster related endpoints

What changed?

Proto change for https://github.com/uber/cadence-idl/pull/78
Update internal types and mappers accordingly

Why?

Improve the contract between source and target cluster for fetching/responding cross cluster tasks

How did you test it?

Unit tests

Potential risks

Release notes

Documentation Changes

Pull Request Test Coverage Report for Build d2ffe53b-44f8-4fe0-836e-b8c19ff965ff

50 of 195 (25.64%)  changed or added relevant lines in 5 files are covered.
37 unchanged lines in 13 files lost coverage.
Overall coverage decreased (-0.02%) to 59.747%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

common/types/mapper/proto/shared.go
40
54
74.07%

common/types/shared.go
0
59
0.0%

common/types/mapper/thrift/shared.go
0
72
0.0%

Files with Coverage Reduction
New Missed Lines
%

common/task/weightedRoundRobinTaskScheduler.go
1
89.64%

host/archivalTest.go
1
97.81%

service/history/queue/timer_queue_processor_base.go
1
78.6%

client/history/client.go
2
40.34%

client/history/metricClient.go
2
47.05%

common/persistence/historyManager.go
2
66.33%

common/task/parallelTaskProcessor.go
2
92.48%

service/history/execution/mutable_state_builder.go
2
69.87%

service/history/handler.go
2
46.0%

common/task/fifoTaskScheduler.go
3
84.54%

Totals

Change from base Build dcdcb324-2af1-440e-99e9-108c15c176f4:
-0.02%

Covered Lines:
90453

Relevant Lines:
151394

💛  - Coveralls


Describe top level architecture

It would be grate to describe a top level architecture of the Hegel and it infra:
(something like that, just from my thoughts)

cli
parser
typechecker

type graph
type predicates
and so on...

It important for fast start to new contributors.
Make it as a diagram in draw.io or excalidraw.com and link core features to dirs / files in the repo would be awesome.

i think we need to setup video calls instead of youtube streams so that contributors can ask questions and we can more easily contribute to the project
it is hard to ask questions on stream because of delay (for me it's like 20 seconds before my text appears on the stream) and because i am texting and other person is speaking
for example: @JSMonk can explain project architecture in video call we can ask questions and after that we can contribute diagrams and docs etc.

A good approach for documenting is to open a PR with incomplete docs and have them be cleaned up and "corrected".


Restore QR in orthogonalize!

Recently switched orthogonalize! (in mps/mpo.jl) to use SVD instead of QR so it could be used for QN conserving MPS and MPO. Need to switch this back once QN conserving QR is implemented.

Is someone working on this? Otherwise I'll go on and implement this as the lack of QR in orthogonalize! makes my TEBD code 2X slower.

Hi Ori, do you mean implement the lack of a QN-conserving qr function or just turning on QR again in orthogonalize! ? As you may know, currently the QR decomposition is not implemented for QN-conserving, block-sparse ITensors (QNITensors).

Hi Miles, I meant that I could try to implement everything needed to get orthogonalize! working with QR for both dense and block-sparse ITensors. Unless of course this is something you want to work on yourselves or there is some reason to wait with this.

p.s. If you prefer to wait with block-sparse QR until you have time to implement it yourselves, maybe QR could be reactivated for dense tensors in orhotogonalize! in the meantime?
The code will be less elegant but it will be much faster (I guess this is also relevant for performing measurements on MPS and not just my TEBD code that probably no one uses currently).

Hi Ori, that’s a good suggestion. Actually the situation is kind of a bit nicer than that I just realized. The orthogonalize! function calls a general-purpose routine Matt created called factorize which is intended as kind of a smart, automatic factorization method that selects the best method depending on the situation. Right now it only has SVD and density matrix decomposition (not sure what a math person would call this) backends. QR is planned to be one of the future backends and could be the default for cases when no truncation is requested.
So if we just plug in a QR backend for the case of (1) no truncation and (2) non-QN-conserving ITensors for now, then orthogonalize! will start using it automatically when it is called without truncation parameters.
@mtfishman does all of the above sound correct to you?

Yes, that sounds like a good plan. In the factorize function, the plan all along was that if you asked for left or right orthogonality, and didn't ask for any truncation, it would automatically use a qr decomposition. I only didn't put it in because we don't have a block-sparse qr decomposition yet and I was still working out the internal organization of the function, but it would be fine to put it in for the dense case now.

Go ahead, if it is something you want pretty soon (it has been bothering me that we don't have a block-sparse QR, so I may go and tackle that soon-ish, but it would be nice to have the logic in factorize so then we can just drop it in).


feat: Update bluefin-logo to a silhouette version

with new colors and pallette:

with new colors:

with old colors:

jp2a bluefin-silhouette.png --color --width=50 -i --color-depth=24 > logo
and then I add a new line to the top of that file
original file:

no changes at all, for comparison:

I also like the pallette of colors instead of circles, it is more useful for testing themes.

Tested with a light theme to make sure it's not awful (I mean, it's a light theme in a terminal, so it's going to look odd):


[Bug] Missing underscore in branch name (commit contextual menu)

"testbranch" is displayed instead of "test_branch"

try to choose another font for 'Default Font'

Confirmed that RecognizesAccessKey property of ContentPresenter in the MenuItem should not be enabled.


wrap scripts into dom loaded event listener if defer is specified

Fixes #10752
This PR add a branch to detect what if defer attribute has been specified on script tag or not.
And if so, All script will be wrapped into a DOMContentLoaded event listener.
Here's an example for the changes:
We have a script:
alert(document.body.innerText);

And a html tmeplate:

foo

And a webpack config:
module.exports = {
    entry: './index.js',
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'index.js'
    },
    plugins: [
        new HtmlWebpackPlugin({
          inject: true,
          template: 'index.html'
        }),
        new InlineChunkHtmlPlugin(HtmlWebpackPlugin, [/.*/])
    ]
}

Before changes:

foo

And It will caused an exception:
Uncaught TypeError: Cannot read property 'innerText' of null

** before changes with blocking **

foo

That works fine.
After changes (whatever blocking or not):

foo

And everything works fine.

Oh I just realized It will break If there's listener for DOMContentLoaded in the script.

emmmmm, ping


Change notes email subject line to indicate it is coming soon

Change notes email subject line to indicate it is coming soon

Howdy from Release Ninja! You should write a release note targeted at a semi-technical end user who is
not familiar with the code base. Include at least 1 image, wherever possible. Review the help article if
you are not familiar with Release Ninja.
When your pull request is ready, do one of the following:

Notify Release Team
Don't notify anyone because it's a small change or doesn't concern them
Whatever you do though, make sure you :tada:

Howdy from Release Ninja! It appears that you merged without a release note comment? It's never too late!
:tada:


can't convert Saxerator::Builder::StringElement to Array

According to the README:
You can treat objects consistently as arrays using Ruby's built-in array conversion method in the form Array(element_or_array)

Snippet:

require 'saxerator'

p RUBY_VERSION # => "2.3.1"
p Saxerator::VERSION # => "0.9.8"

xml = <<-XML
<root>
  <product>
    <items>
      <item>foo</item>
      <item>bar</item>
    </items>
  </product>
  <product>
    <items>
      <item>lonely</item>
    </items>
  </product>
</root>
XML

parser = Saxerator.parser(xml)

parser.for_tag("product").each do |node|
  p Array(node['items']['item'])
end

gives
`Array': can't convert Saxerator::Builder::StringElement to Array (Saxerator::Builder::StringElement#to_a gives Saxerator::Builder::ArrayElement) (TypeError)

@soulcutter I've checked is really a bug. Could you check when find a time please?

I think the problem is this commit which changed the behaviour.
# string_element.rb
def to_a
  ArrayElement.new(self, name)
end

should probably be
def to_a
  ArrayElement.new([self], name)
end

@voke Already tested it and it's doesn't work. I thing Array() expect and exactly Array object.

I think this behavior changed when we stopped extending core ruby classes, using delegation instead.


Stratosphere.ResourceProperties.EC2SecurityGroupRule vanished in 0.4.4

Hi,
I'm upgrading packages and upgraded to stratosphere 0.4.4 and noticed the Stratosphere.ResourceProperties.EC2SecurityGroupRule module has vanished. Previously, the module linked to http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html which still exists and didn't show any sign of deprecation. If this was intentional, this should probably be a breaking API bump (0.5 in this case) but I suspect rather that your codegen may have quietly failed on that AWS API.

Hey @MichaelXavier!
That property actually got split up into two properties for ingress and egress (EC2SecurityGroupIngressProperty and EC2SecurityGroupEgressProperty). I guess they are being more stringent with which properties they allow on each one. That page you link to does indeed still exist, but you can see that they have two separate schemas, one for ingress and one for egress.
I probably should have done a 0.5 bump because of the API change, sorry about that. Would a major version bump help you with your tooling somehow? I have an open PR (https://github.com/frontrowed/stratosphere/pull/48) with the next version of the specification document, and I'll be sure to give that a major version bump. I can merge that PR soon and release it.

@jdreaver thanks for the explanation, that make sense. Easy fix on my end. No need to make special accommodations, I've been in the same position. My solution is usually just as you propose: cut a breaking release in the next version you happen to release.


Fix missing _axis variable

This piece of code uses uninitialized variable:
    setDirection( dir ) {
        if (dir.y > 0.99999) {
            this.quaternion.set(0, 0, 0, 1);
        } else if (dir.y < - 0.99999) {
            this.quaternion.set(1, 0, 0, 0);
        } else {
            _axis.set(dir.z, 0, -dir.x).normalize();
            const radians = Math.acos(dir.y);
            this.quaternion.setFromAxisAngle(_axis, radians);
        }
    }

I add a global constant to fix this, similar to this threejs example file: https://github.com/mrdoob/three.js/blob/dev/examples/jsm/utils/CameraUtils.js

I included this fix with this PR that's going into dev soon and should be released this week.


null casting and coercion for Decimal128

Describe the bug

Related to DataFusion issues:

https://github.com/apache/arrow-datafusion/issues/3479
https://github.com/apache/arrow-datafusion/issues/3487

To Reproduce

❯ select null + 1::decimal;
Plan("'Null + Decimal128(38, 10)' can't be evaluated because there isn't a common type to coerce the types to")
❯ select a < null from (values (1.1::decimal)) as t(a);
ArrowError(ExternalError(Internal("Cannot convert Decimal128(None,38,10) to i128")))

Expected behavior

Expect them to behave like other numerics, where mathematical and comparison operators function correctly when given nulls.
❯ select null + 1;
+-----------------+
| NULL + Int64(1) |
+-----------------+
|                 |
+-----------------+
1 row in set. Query took 0.002 seconds.
❯ select null < 1.1::decimal;
+---------------------+
| NULL < Float64(1.1) |
+---------------------+
|                     |
+---------------------+
1 row in set. Query took 0.002 seconds.

Additional context

before I started working on these, I thought this part of the decimal code was in arrow-rs, but it's not. closing the issue. sorry for the noise.