Support multiple public keys when verifying signatures

Background
As stated in https://github.com/confidential-containers/attestation-agent/issues/63, image-rs needs to support multiple public GPG keys.
Generally speaking, Simple signing (GPG key rings), cosign (ECDSA_P256 public keys) and other signing schemes may need more than one public key to verify images from different repositories, e.g., in sample policy.json.
However, now public key used in simple signing is fixed in /run/image-security/simple_signing/pubkey.gpg. Image-rs will firstly check whether this key ring exists or not. If not, it will be retrieved from KBS via GetResource gRPC. We can not retrieve different public keys.
TODO

Introduce a effective mechanism to support retrieving different public keys to verify different image signatures

Approaches
I think there may be three ways to handle this.
Way 1: Include keyData in policy.json instead of keyPath by default
As we know, current signing schemes (simple signing, and cosign under reviewing) has two field in the policy.json, s.t. keyData and keyPath. To avoid requesting for public keys, we can use the keyData instead of keyPath in policy.json. As image-rs will firstly check whether policy.json exists, and will request it from KBS if not. Together with the policies, the public key data will be retrieved. like
{
    "default": [{"type": "reject"}], /* Reject anything not explicitly allowed */
    "transports": {
        "docker": {
            /* Allow installing images from a specific repository namespace, without cryptographic verification.
               This namespace includes images like openshift/hello-openshift and openshift/origin. */
            "docker.io/openshift": [{"type": "insecureAcceptAnything"}],
            /* Similarly, allow installing the “official” busybox images.  Note how the fully expanded
               form, with the explicit /library/, must be used. */
            "docker.io/library/busybox": [{"type": "insecureAcceptAnything"}],
            /* Allow installing images from all subdomains */
            "*.temporary-project.example.com": [{"type": "insecureAcceptAnything"}],
            /* A sigstore-signed repository */
            "hostname:5000/myns/sigstore-signed-with-full-references": [
                {
                    "type": "sigstoreSigned",
                    "keyData": "<BASE64-ENCODED-DATA>"
                }
            ],
            /* A sigstore-signed repository, accepts signatures by /usr/bin/cosign */
            "hostname:5000/myns/sigstore-signed-allows-malicious-tag-substitution": [
                {
                    "type": "sigstoreSigned",
                    "keyData": "<BASE64-ENCODED-DATA>"
                    "signedIdentity": {"type": "matchRepository"}
                }
            ]
            /* Other docker: images use the global default policy and are rejected */
        },
        "dir": {
            "": [{"type": "insecureAcceptAnything"}] /* Allow any images originating in local directories */
        },
        "atomic": {
            /* The common case: using a known key for a repository or set of repositories */
            "hostname:5000/myns/official": [
                {
                    "type": "signedBy",
                    "keyType": "GPGKeys",
                    "keyData": "<BASE64-ENCODED-DATA>"
                }
            ],
            /* A more complex example, for a repository which contains a mirror of a third-party product,
               which must be signed-off by local IT */
            "hostname:5000/vendor/product": [
                { /* Require the image to be signed by the original vendor, using the vendor's repository location. */
                    "type": "signedBy",
                    "keyType": "GPGKeys",
                    "keyData": "<BASE64-ENCODED-DATA>",
                    "signedIdentity": {
                        "type": "exactRepository",
                        "dockerRepository": "vendor-hostname/product/repository"
                    }
                },
                { /* Require the image to _also_ be signed by a local reviewer. */
                    "type": "signedBy",
                    "keyType": "GPGKeys",
                    "keyData": "<BASE64-ENCODED-DATA>"
                }
            ],
            /* A way to mirror many repositories from a single vendor */
            "private-mirror:5000/vendor-mirror": [
                { /* Require the image to be signed by the original vendor, using the vendor's repository location.
                     For example, private-mirror:5000/vendor-mirror/productA/image1:latest needs to be signed as
                     vendor.example/productA/image1:latest . */
                    "type": "signedBy",
                    "keyType": "GPGKeys",
                    "keyData": "<BASE64-ENCODED-DATA>",
                    "signedIdentity": {
                        "type": "remapIdentity",
                        "prefix": "private-mirror:5000/vendor-mirror",
                        "signedPrefix": "vendor.example.com"
                    }
                }
            ]
        }
    }
}

We can see in this way all pubkeys are given by data rather than path.
Way 2: Using optional field to include the repository of the image
The optional field of ResourceDescription can bring extra information of the requested resource. Thus we can include the scope field in policy.json of the image to ask KBS for the concrete key. For example a ResourceDescription:
{
    "name" : "GPG Keyring",
    "optional": {
        "scope": "example.com/busy-box",
    }
}

will match the policy in policy.json
"example.com/busy-box": [
    {
        "type": "signedBy",
        "keyPath": "<Some-public-key>"
    }
]

This json indicates the GPG public keyring asked via GetResource gRPC is for "example.com/busy-box".
Way 3: Define a new URI scheme kbs://<resource-name>:<tag>
We can define a new URI scheme, which can be used in keyPath. Because the URI of the KBS and the name of KBC is already given by the caller of image-rs (the parameter decrypt_config), so we just need to involve the resource name and a tag in the new URI. Here the tag can specify the concrete resource, and the resource name here can be treated as a type (like GPG Keyring). For example, the example in Way 2 can be
"example.com/busy-box": [
    {
        "type": "signedBy",
        "keyPath": "kbs://gpg-keyring:112"
    }
]

This new URI is consumed in image-rs, and will be translated into a ResourceDescription and request it from the KBS as
{
    "name" : "GPG Keyring",
    "optional": {
        "tag": "112",
    }
}

Will request for the GPG Keyring tagged by 112. The mechanism is like a registry.
Cons & Pros

Way
Pros
Cons

Way 1
At most request from KBS once
Less flexibility

Way 2
Good mapping relationship and straightforward
If one specific public key is used to verify many different repositories, there may involve duplication of storage and configuration

Way 3
Straightforward, and compatible with other URI schemes
-

Here, "compatible with other URI schemes" here means we can use different URI schemes in keyPath field, like

"keyPath": "/path/to-pubkey"
"keyPath": "file:///path/to-pubkey"
"keyPath": "https://example.com/public-key"
"keyPath": "kbs://gpgkey-ring:1"
"keyPath": "kbs://gpgkey-ring:1"
"keyPath": "kms://example-kms/key-id"
...

I prefer to Way 3. Do you have any suggestions?

Thanks @Xynnn007 for create this issues to support multiple public keys when verifying signatures.
Here are my comments:

Way 1: this is a simple implement, no more change need be done in image-rs side, but we need end user use the keyData style in policy.json or need the KBS convert keyPath to keyData style when provide the policy.json to image-rs

Way 2: I wonder that only use scope maybe not enough, we should include the transport field too, refer to supported-transports-and-their-scopes
For example a ResourceDescription:

{
    "name" : "GPG Keyring",
    "optional": {
        "transport": "atomic",
        "scope": "example.com/busy-box",
    }
}

And we should noticed that in some cases, multiple public keys will be used in one scope, the keys should be return in a  array with correct order by get_resource API, and image-rs must deal the response correctly.
eg. in sample polic.json
            "hostname:5000/vendor/product": [
                { /* Require the image to be signed by the original vendor, using the vendor's repository location. */
                    "type": "signedBy",
                    "keyType": "GPGKeys",
                    "keyPath": "/path/to/vendor-pubkey.gpg",
                    "signedIdentity": {
                        "type": "exactRepository",
                        "dockerRepository": "vendor-hostname/product/repository"
                    }
                },
                { /* Require the image to _also_ be signed by a local reviewer. */
                    "type": "signedBy",
                    "keyType": "GPGKeys",
                    "keyPath": "/path/to/reviewer-pubkey.gpg"
                }
            ],

the return array should be something:
[
  "content of /path/to/vendor-pubkey.gpg",
  "content of /path/to/reviewer-pubkey.gpg"
]

Way 3. Define a new URI scheme kbs://<resource-name>:<tag> is a good way.
In the sample polic.json we can see there are many keys be used.

/path/to/sigstore-pubkey.pub
/path/to/official-pubkey.gpg
/path/to/vendor-pubkey.gpg
/path/to/reviewer-pubkey.gpg

So should we add the key name to the URI?
For example, the example in Way 2 can be
"example.com/busy-box": [
    {
        "type": "signedBy",
        "keyPath": "kbs://gpg-keyring/vendor:112"
    }
]

This new URI is only consumed in image-rs and only used in KBS-involved scenarios. It will be translated into a ResourceDescription and request it from the KBS as
{
    "name" : "GPG Keyring",
    "optional": {
        "name": "vendor"
        "tag": "112",
    }
}

The KBS will manager all gpg keys, and return the correct GPG public key by given key name and tag.
To reduce duplicate call about get_resource image-rs maybe need check whether the kbs://gpg-keyring/vendor:112 be downloaded to local already.
I prefer to Way 3 too for long time goal, we can use Way 1 for dev/test purpose short time surely.

Way 2: I wonder that only use scope maybe not enough, we should include the transport field too, refer to supported-transports-and-their-scopes
For example a ResourceDescription:

Yes, that's great.

So should we add the key name to the URI? For example, the example in Way 2 can be
"example.com/busy-box": [
    {
        "type": "signedBy",
        "keyPath": "kbs://gpg-keyring/vendor:112"
    }
]

This new URI is only consumed in image-rs and only used in KBS-involved scenarios. It will be translated into a ResourceDescription and request it from the KBS as
{
    "name" : "GPG Keyring",
    "optional": {
        "name": "vendor"
        "tag": "112",
    }
}

The KBS will manager all gpg keys, and return the correct GPG public key by given key name and tag. To reduce duplicate call about get_resource image-rs maybe need check whether the kbs://gpg-keyring/vendor:112 be downloaded to local already.

Yes, I agree with you. Here it will be represented as kbs://<resource-name>/<sub-type>:<tag>, and it looks like an image registry very much. In this way, the resource management on the KBS side will be easy to implement with a HashMap-like data structure.

I prefer to Way 3 too for long time goal, we can use Way 1 for dev/test purpose short time surely.

Agreed.

@Xynnn007 is this issue still relevant or can be closed?
If it's still relevant to what release do you think we should map it to (mid-November, end-December, mid-February etc...)?

For the way3, s.t. kbs URL.
This url is used inside image-rs, and will be translated into a ResourceDescriptor, which has a field name and a extra parameter hashmap optional. So we need a convenient kbs url format and a rule to map a kbs:// url into a ResourceDescriptor. There may be different designs, two are as following:
Way 1

KBS URL format: kbs://<basic-directory>/<resource-name>:<tag>
Rule: a url kbs://<basic-directory>/<resource-name>:<tag> (which is the same as kbs://<resource-description>/<sub-type>:<tag>, but changed the field name) will be mapped into the following ResourceDescriptor

{
    "name": "<resource-name>",
    "optional": {
        "directory": "<basic-directory>",
        "tag":"<tag>",
    }
}

For example, kbs://user1/credential:quay.io will be translated to
{
    "name": "credential",
    "optional": {
        "directory": "user1",
        "tag":"quay.io",
    }
}

to request for a credential. And kbs://policy:env1 to
{
    "name": "policy",
    "optional": {
        "directory": "",
        "tag":"env1",
    }
}

to request for a policy.json.
Way 2

KBS URL format: kbs://<resource-name>?<key1>=<val1>-like Query URL. All the keys and vals will be Percent-encoded
Rule: a url  kbs://<resource-name>?<key1>=<val1>&...<keyn>=<valn> will be mapped into the following ResourceDescriptor

{
    "name": "<resource-name>",
    "optional": {
        "<key1>": "<val1>",
        "<key2>": "<val2>",
        ...
        "<keyn>": "<valn>",
    }
}

For example, kbs://credential?registry=quay.io requests a credential of registry quay.io, will be translated into the ResourceDescriptor
{
    "name": "credential",
    "optional": {
        "registry": "quay.io",
    }
}

And kbs://publickey?type=cosign&keyid=2 will be translated into
{
    "name": "publickey",
    "optional": {
        "type": "cosign",
        "keyid":"2",
    }
}

The first one has fixed fields in the optional, s.t. directory and tag, the second has more extensibility.
Still, the content of a ResourceDescriptor is finally processed by a KBC, especially our CC-KBC under development.
Can anyone share some opinions upon this?

@Xynnn007 I like the Way 2 option, as it's more extensibility and easily to convert the kbs url to ResourceDescriptor request. And the optional fields need be processed by each KBC.


Test coverage for: Schemas, Util

Not ready yet!

Codecov Report

Merging #189 (e3787fd) into main (859da8a) will decrease coverage by 2.76%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #189      +/-   ##
==========================================
- Coverage   55.17%   52.41%   -2.76%
==========================================
  Files          40       35       -5
  Lines        4374     4024     -350
==========================================
- Hits         2413     2109     -304
+ Misses       1565     1535      -30
+ Partials      396      380      -16

Impacted Files
Coverage Δ

example/did/did.go

example/vc/vc.go

example/usecase/employer_university_flow/main.go

example/presentation/presentation.go

...ase/apartment_application/apartment_application.go

schema/jsonschema.go
91.67% <0.00%> (+25.00%)
:arrow_up:


Retrying on a new BulkWriter when commit task gets stuck

Description
This PR is attempting to address an occasional hang of Spark jobs executing bulk operations writing into Cosmos DB. The issue is hard to reproduce - and has only been experience on large containers >>1000 partitions. From the logs it indicates that there are very few (less than 10) outstanding write operations - the BulkWriter even today has logic which would result in retrying those operations - but from the logs these retries also fail - possibly because for one physical partition a reactor operation is still not finished (and the concurrency per physical partition is 1 here and here)
Changes in this PR
1.) When a BulkWriter gets stuck (3 minutes without any progress) the first time a new BulkWriter instance is created - resulting in a new reactor pipeline being created and retrying the remaining operations (in order)
2.) Added test hooks (interceptors in the CosmosClientCache for the ComsosClientBuilder and CosmosAsyncClient as well as in the BulkWriter when retrying a commit) - see 1. The new service traits are com.azure.cosmos.spark.CosmosClientBuilderInterceptor, com.azure.cosmos.spark.CosmosClientInterceptor and com.azure.cosmos.spark.WriteOnRetryCommitInterceptor
3.) Tests using 2) with FaultInjection to force a BulkWriter into a bad state - and validating recovery after the retried commit.
4.) As defense in depth this PR also enforces an end-to-end timeout for Batch-requests within the BulkWriter
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.

/azp run java - cosmos - spark

/azp run java - cosmos - spark

/azp run java - cosmos - spark

/azp run java - cosmos - spark


How much GPU memory is needed to run the demo

18GB of RAM suffices for loading processes, while 20GB of RAM is considered safe for serving and engaging in conversations (loading with bf16 or fp16).

18GB RAM 足以用于加载进程，而 20GB RAM 对于服务和参与对话被认为是安全的（使用 bf16 或 fp16 加载）。

Thanks your reply


[Netty 5] Static configuration

Netty uses static configuration, typically controlled via system properties, in many “lower level” classes. This can make configuration of Netty difficult to control from a programmatic stand point and also difficult to test. This is especially true if an application has multiple transitive dependencies on Netty and wants different behavior from each.
Where possible we should not use static configuration, and instead favor patterns like Builder/Factory.

It'd be nice to keep the system properties for the 'default of defaults', though, i.e. what would be the default values if a user didn't specify anything?

Should I give this a try?
We can have an abstract implementation which is then extended by various implementations like File-based configuration or Builder pattern?

@hyperxpro we probably want to attack it on a case-by-case basis. We have quite a number of things - logger factories, default buffer allocators, PlatformDependent - that are accessed statically and presumed to be statically configured, and it's not clear to me if we can really move away from that pattern on those.


Installing from source without Python

Hi,
I'm trying to install pinocchio from source without python using
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_PYTHON_INTERFACE=OFF

This is successful with the output:
INSTALL_PREFIX=/usr/local -DBUILD_PYTHON_INTERFACE=OFF
-- Package version (ROS package.xml): 2.6.12
-- The CXX compiler identification is GNU 9.4.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.6.3")
-- Performing Test R-pedantic
-- Performing Test R-pedantic - Success
-- Performing Test R-Wno-long-long
-- Performing Test R-Wno-long-long - Success
-- Performing Test R-Wall
-- Performing Test R-Wall - Success
-- Performing Test R-Wextra
-- Performing Test R-Wextra - Success
-- Performing Test R-Wcast-align
-- Performing Test R-Wcast-align - Success
-- Performing Test R-Wcast-qual
-- Performing Test R-Wcast-qual - Success
-- Performing Test R-Wformat
-- Performing Test R-Wformat - Success
-- Performing Test R-Wwrite-strings
-- Performing Test R-Wwrite-strings - Success
-- Performing Test R-Wconversion
-- Performing Test R-Wconversion - Success
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.17") found components: doxygen dot
-- Since urdfdom >= 1.0.0, the default C++ standard is C++11. The project is then compiled with C++11 standard.
-- Found Boost: code/boost_1_78_0 (found version "1.78.0") found components: filesystem serialization system
-- Pinocchio won't be compiled with its Python bindings. If you want to enable this feature, please set the option BUILD_PYTHON_INTERFACE to ON.
-- Found Boost: code/boost_1_78_0 (found version "1.78.0") found components: unit_test_framework
-- Doxygen rendering: using MathJax backend
-- Configuring done
-- Generating done
-- Build files have been written to: code/pinocchio/build

But the build fails with
code/pinocchio/build/include/pinocchio/utils/cast.hpp:8:10: fatal error: Eigen/Core: No such file or directory
    8 | #include <Eigen/Core>
      |          ^~~~~~~~~~~~

Apparently, Eigen is not correctly linked. Is that a known issue when building without Python?

Hi,
Are you sure you have the latest version of the sources, without changes ? Can you show use what do you have on git show -q and git status ?

Hi, I pulled latest master.
git pull
Already up to date.

git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean

your configuration logs show no trace of searching for eigen3, while the latest master has a requirement for it in
https://github.com/stack-of-tasks/pinocchio/blob/c0e7066c86018516abd08332966bc592fb68b0fb/CMakeLists.txt#L111
Don't you have this line ?
git show -q shows this c0e7066c86018516abd08332966bc592fb68b0fb commit ? You might be on a wrong remote.
Otherwise, do you have correctly set up the git submodule, either from a --recursive in your git clone or with git submodule update --init --recursive ?

Hi,
I'm using Eigen 3.4 for some other packages.
So, I'm using this version: https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.zip
Do you know how I can tell CMake to use the custom Eigen path?
I set the Eigen3 Include Dir already:
echo $EIGEN3_INCLUDE_DIR
/usr/include/eigen3/eigen-3.4.0

we can check if cmake correctly found your eigen 3.4 by looking into its cache: grep -i eigen3 CMakeCache.txt.

grep -i eigen3 CMakeCache.txt
//The directory containing a CMake configuration file for Eigen3.
Eigen3_DIR:PATH=/usr/lib/cmake/eigen3
_PACKAGE_CONFIG_DEPENDENCIES_FIND_DEPENDENCY:INTERNAL=SET(Boost_USE_STATIC_LIBS OFF);SET(Boost_USE_MULTITHREADED ON);SET(Boost_NO_BOOST_CMAKE ON);find_dependency(Eigen3 REQUIRED);find_dependency(urdfdom_headers REQUIRED);find_dependency(urdfdom REQUIRED);find_dependency(Boost REQUIRED COMPONENTS filesystem serialization system)
_PACKAGE_CONFIG_DEPENDENCIES_FIND_PACKAGE:INTERNAL=SET(Boost_USE_STATIC_LIBS OFF);SET(Boost_USE_MULTITHREADED ON);SET(Boost_NO_BOOST_CMAKE ON);find_package(Eigen3 REQUIRED);find_package(urdfdom_headers REQUIRED);find_package(urdfdom REQUIRED);find_package(Boost REQUIRED COMPONENTS filesystem serialization system)
_PACKAGE_CONFIG_DEPENDENCIES_PROJECTS:INTERNAL=Eigen3;urdfdom_headers;urdfdom;Boost

Thanks for those debug. I'll try to reproduce with a custom eigen.

Thank you for your help!

Hi,
I forgot to set the CMAKE_PREFIX_PATH.
Now it works as expected :+1:
Thank you so much!


gmsh: 4.3.0 -> 4.4.0

Motivation for this change
Things done

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

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

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] 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
[ ] Fits CONTRIBUTING.md.

@GrahamcOfBorg build gmsh

Changelog: https://gitlab.onelab.info/gmsh/gmsh/blob/master/CHANGELOG.txt


Fixed symmetric serialization of JsValue not equaling itself.

@patrick-bohan @rwhiten1 @slustbader
This fixes the generators to prevent the generation of JsValue's that can not be serialized and deserialized to equal themselves.

LGTM

LGTM


Recommended way of VS Code integration

Hey there, I'd love to know about the recommended way to integrate with VS Code. It's a pretty popular editor these days, so it might be a good idea to add it to the readme. I'd love to help with this when I've found the best solution. Currently I'm using it with a "Run on Save" plugin (https://marketplace.visualstudio.com/items?itemName=emeraldwalk.RunOnSave). Are there other/better ways?

You can use it but personally I would not bother and use for example https://github.com/sheerun/modern-node that auto-formats files when commit is made

@pReya I use this extension for VSCode:
https://github.com/numso/prettier-standard-vscode


Add option to show permanently in notification area and not in the taskbar

The feature request is for the timer to reside permanently in the notification area and only in the notification area, whether it is timing or not.
An example of this was the discontinued TeaTimer app.
Timer not running:

Timer running:

I support the request.  My taskbar is way too full of app buttons already.
Alternatively this behavior could be built into the app with no option to control it.  There is already a notification icon and I can't see any value in having the app button as well.


We need feature for following logs.

Now, the app cannot check logs with follow mode.
Maybe, we want to choice follow/manual refresh mode for logs.
like this.

@kubor thanks for the feature request. Do you mean the log window should be live, continuously updating as the contents of the log file changes?

@kaushik-work Yes, but configurable with a button, as shown in the mock-up image

@mr-c so there is a benefit to not having it reload? Why not just have it live stream the log? Thanks.

Always stream the latest at the end
But allow users to pause the scrolling and to scroll backwards so they can study prior output without it scrolling away.

Closed by 2cbedfaaf43b4a88ee97ed5c896717376c090ab3


Wrong parse date in Firefox and EDGE

When I parse a date the year is wrong, it's 100 years less than the real date.
For example if my cell is 8/31/2016  12:00:00 AM the year will be 1906 instead of 2016.
The Problem is related to the date retrieved, If the cell is 8/31/2016  12:00:00 AM the date retrieved will be the string "8/31/16 12:00 AM", note the year is 16 instead of 2016
NOTE: The issue only happens with edge and firefox, it's working fine in Chrome and Safari

In chrome 52. The date cell  '8/14/2016' will be parsed to 8/14/16

@ignacio-chiazzo @shikelong can you share an offending file?  Also, can you check if the issue occurs in IE10/11?

We were able to reproduce.  Here's the story: if you are dealing with a file that stores a date in string form like "2/19/17", IE defaults to 1917 while Chrome defaults to 2017.  To determine whether the correction is needed, we now proactively try to convert a date and see if we get 2017 or 1917 and apply the 100-year adjustment accordingly.
If possible, can you check against the latest version?

@SheetJSDev I am 100% that that's the problem. We have to take into account that.  I cannot check the version now, but it was edge 10.x.

If that's the issue, I believe we applied the appropriate fix.  Closing, please reopen if this shows up in the future.

ok, I cannot check it now. Thanks for the response!


suspense useQuery infinite loop when query goes from success to false and query key changes

Describe the bug
The workaround in https://github.com/tannerlinsley/react-query/issues/2157 fixed only part of the issue we are having in Blitz. We still have a case on user logout where we get infinite loops.
Failing test case included below. They key thing that makes it go into the infinite loop is the query key changing. If the key doesn't change, then it works fine.
To Reproduce
Add the following test to src/react/tests/suspense.test.tsx
  it('should not have infinite loop', async () => {
    const key = queryKey()

    const consoleMock = mockConsoleError()

    let succeed = true

    function Page() {
      const [nonce] = React.useState(0)
      const fullKey = `${key}-${succeed}`
      const result = useQuery(
        fullKey,
        async () => {
          await sleep(10)
          console.log('query', fullKey)
          if (!succeed) {
            throw new Error('Suspense Error Bingo')
          } else {
            return nonce
          }
        },
        {
          retry: false,
          suspense: true,
        }
      )
      return (

          rendered {result.data}
          <button
            aria-label="fail"
            onClick={async () => {
              await queryClient.resetQueries()
            }}
          >
            fail
          </button>

      )
    }

    function App() {
      const { reset } = useQueryErrorResetBoundary()
      return (
        <ErrorBoundary
          onReset={reset}
          fallbackRender={({ resetErrorBoundary }) => (

error boundary

              <button
                onClick={() => {
                  resetErrorBoundary()
                }}
              >
                retry
              </button>

          )}
        >
          <React.Suspense fallback="Loading...">
            <Page />
          </React.Suspense>
        </ErrorBoundary>
      )
    }

    const rendered = renderWithClient(queryClient, <App />)

    await waitFor(() => rendered.getByText('Loading...'))
    await waitFor(() => rendered.getByText('rendered'))

    succeed = false
    fireEvent.click(rendered.getByLabelText('fail'))
    await waitFor(() => rendered.getByText('error boundary'))
    consoleMock.mockRestore()
  })

Version
React-query 3.13.9

cc @tannerlinsley @TkDodo

I could look into to fixing it, but not sure where to even start on this one

I have to quit for the day, but I tracked this down to this line not being called but it should be: https://github.com/tannerlinsley/react-query/blob/master/src/react/useBaseQuery.ts#L135

I think this project should have a readme so contributors can commit

but I tracked this down to this line not being called but it should be:

not sure if I'm of much help here. At the time where the line in question is called, result.isError is still false. When we log it, we can se that we still have one render cycle where succeed is true. When the infinite loop starts, we somehow never even get to this line of code....
  console.log
    query query_1-true

      at src/react/tests/suspense.test.tsx:35:19

  console.log
    result.isError false

      at useBaseQuery (src/react/useBaseQuery.ts:130:11)

  console.log
    query query_1-true

      at src/react/tests/suspense.test.tsx:35:19

  console.log
    query query_1-false

      at src/react/tests/suspense.test.tsx:35:19

  console.log
    query query_1-false

      at src/react/tests/suspense.test.tsx:35:19

  console.log
    query query_1-false

      at src/react/tests/suspense.test.tsx:35:19

  console.log
    query query_1-false

      at src/react/tests/suspense.test.tsx:35:19

Ok
On Sat, Apr 24, 2021, 11:29 AM Dominik Dorfmeister @.***>
wrote:

but I tracked this down to this line not being called but it should be:
not sure if I'm of much help here. At the time where the line in question
is called, result.isError is still false. When we log it, we can se that
we still have one render cycle where succeed is true. When the infinite
loop starts, we somehow never even get to this line of code....
console.log
query query_1-true
  at src/react/tests/suspense.test.tsx:35:19

console.log
result.isError false
  at useBaseQuery (src/react/useBaseQuery.ts:130:11)

console.log
query query_1-true
  at src/react/tests/suspense.test.tsx:35:19

console.log
query query_1-false
  at src/react/tests/suspense.test.tsx:35:19

console.log
query query_1-false
  at src/react/tests/suspense.test.tsx:35:19

console.log
query query_1-false
  at src/react/tests/suspense.test.tsx:35:19

console.log
query query_1-false
  at src/react/tests/suspense.test.tsx:35:19

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/tannerlinsley/react-query/issues/2187#issuecomment-826071631,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOMGT5WEN2SW6DO27VXEDC3TKKMP3ANCNFSM43PHVW4A
.

Whew, I spent awhile digging into this more. Haven't really got anywhere, but I did find that when query key changes, query status goes from loading to idle but when query key stays the same status goes from loading to loading.
Also it almost appears as if there are two observers for the same query fighting each other 🤔
I'd be grateful if someone else could take this from here.

same issue in react-query 3.18.0 version

:tada: This issue has been resolved in version 3.19.5 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


when starvation dmg is enabled it only does 1 tick of damage

specify damage, it only does 1 tick, real

fixed


Radio for one option doesn't disable entering text in the opposite option, which is then not saved

Virtualmin => Backup and Restore => Cloud Storage Providers => Amazon S3 (the same applies to Rackspace)
I filled the two fields "Access key" and "Secret key", but I didn't switch from "None set" to "Entered below ..", so when I clicked "Save", what I entered in those fields was not saved. So somebody could think they saved some important data even though they didn't, and they will later find out and be frustrated. 🙂
So the text fields need to be disabled like elsewhere. A good example is right below those two fields - "S3-compatible server hostname", and if "Use Amazon S3" is selected, the text field next to it is disabled. I suspect there are more instances of this issue somewhere in Webmin, but I can't seem to find them now.

That's should be done on server side script as it's always were.
You mean it's not saved, because user didn't toggle the radio, while textbox wasn't disabled and you could place data in it?

You mean it's not saved, because user didn't toggle the radio, while textbox wasn't disabled and you could place data in it?

Yes, exactly. I know it's user's fault, but it's easy to miss, especially because everywhere else the text fields are disabled until you select the radio option for them to enable them, so people are used to knowing that if a text field is enabled for typing, it will save.

Does it work differently in Virtualmin Framed Theme?

I bet it's very annoying and time consuming to do this on server side for Jamie and Joe, and that's the reason why it's not added everywhere.
I'll try doing it.

Thanks! But this is merely a pet peeve, not anything of priority.
On a similar note, if I select a dropdown box which is under the second radio button and select an entry, the radio button will not change to that and the first radio button will stay selected. See:

In modern applications and operating systems, when you do such a thing, it will automatically select the radio button for the option you are changing, because it's obvious that you want to change that option, and not stay with the other radio button.

I just realized, if the dropdown was disabled, then this couldn't even happen. Same applies to text fields.

That's all right, thank you for taking the time to look into this!
Best regards


Update flyway-core to 7.8.1

Updates org.flywaydb:flyway-core from 7.3.2 to 7.8.1.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.flywaydb", artifactId = "flyway-core" } ]

labels: library-update, semver-minor

Superseded by #489.


Feature/tablero con cambios

Codecov Report
Base: 24.39% // Head: 3.35% // Decreases project coverage by -21.03% :warning:

Coverage data is based on head (d28b8d3) compared to base (0e27892).
Patch coverage: 0.00% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff              @@
##             master      #3       +/-   ##
============================================
- Coverage     24.39%   3.35%   -21.04%
  Complexity        5       5
============================================
  Files             4      20       +16
  Lines            41     298      +257
  Branches          0      13       +13
============================================
  Hits             10      10
- Misses           31     288      +257

Impacted Files
Coverage Δ

src/main/java/edu/fiuba/algo3/modelo/Tablero.java
0.00% <0.00%> (ø)

...u/fiuba/algo3/modelo/buildings/protoss/Acceso.java
0.00% <0.00%> (ø)

...uba/algo3/modelo/buildings/protoss/Asimilador.java
0.00% <0.00%> (ø)

...ba/algo3/modelo/buildings/protoss/NexoMineral.java
0.00% <0.00%> (ø)

...du/fiuba/algo3/modelo/buildings/protoss/Pilon.java
0.00% <0.00%> (ø)

.../algo3/modelo/buildings/protoss/PuertoEstelar.java
0.00% <0.00%> (ø)

...du/fiuba/algo3/modelo/buildings/zerg/Criadero.java
0.00% <0.00%> (ø)

...edu/fiuba/algo3/modelo/buildings/zerg/Espiral.java
0.00% <0.00%> (ø)

...u/fiuba/algo3/modelo/buildings/zerg/Extractor.java
0.00% <0.00%> (ø)

...edu/fiuba/algo3/modelo/buildings/zerg/Guarida.java
0.00% <0.00%> (ø)

... and 7 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Update Travis config

Test latest and supported LTS Node versions
Remove sudo: false (no-op)
Remove cache (npm cached by default)
Re-enable email notifications
Clean up after_script syntax

Coverage remained the same at 100.0% when pulling 083b1de151354c73aac42649c8812af4bab1ea78 on travis-update into 0cfaa664069c770df2554875f59034c40a6570fb on master.


downsampled BAM cannot download

I cannot open the downsampled BAM download page。
http://www.bio8.cs.hku.hk/clairvoyante/orginalData_hg003/illumina/HG003.GRCh38.60x.1.bam
How can I still get this file？
Thankyou

Please use this link: https://www.bio8.cs.hku.hk/clairvoyante/data_hg003/illumina/HG003.GRCh38.60x.1.bam


PowerShell Functions Debugging

Enable F5 experience for PowerShell Functions leveraging the PS extension for VS Code
/cc @joeyaiello @TylerLeonhardt

Fixed in https://github.com/Microsoft/vscode-azurefunctions/pull/1075


Update tapir-akka-http-server, ... to 0.17.15

Updates

com.softwaremill.sttp.tapir:tapir-akka-http-server
com.softwaremill.sttp.tapir:tapir-enumeratum
com.softwaremill.sttp.tapir:tapir-json-circe
com.softwaremill.sttp.tapir:tapir-openapi-circe-yaml
com.softwaremill.sttp.tapir:tapir-openapi-docs
com.softwaremill.sttp.tapir:tapir-swagger-ui-akka-http

from 0.17.0-M8 to 0.17.15.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.softwaremill.sttp.tapir" } ]

labels: library-update, semver-pre-release

Superseded by #98.


a question ⁉

In the games section (getting the keys), a new and strange game has been added that can be entered 8 times and gives coins instead of keys.It is a game in the service of creating keys tile trilo and i don't have this in my account 😕 Is it the same for yours?
(please update the bot for this🙏🏻)

tile trio has been added and removed. it is not currently listed as a game.

tile trio has been added and removed. it is not currently listed as a game.

ohh thanks bro👍🏻


controller/framework test is flaky

From shippable, I noticed there are several failed cases, for example,
https://app.shippable.com/builds/552bfb376206490c009730c3
E0413 17:34:38.400974   17931 reflector.go:158] watch of *api.Pod ended with: Stop requested
--- FAIL: Example (0.61s)
got:
want:
a-hello
b-controller
c-framework
FAIL
coverage: 85.9% of statements
FAIL	github.com/GoogleCloudPlatform/kubernetes/pkg/controller/framework	7.652s
cc/ @lavalamp

another example:
https://app.shippable.com/builds/552bfdfa6206490c009730eb

ah-- this is a different thing. I will fix this, too.

I'm seeing this from an unrelated change
E0413 16:50:08.658895   18560 reflector.go:158] watch of *api.Pod ended with: Stop requested
--- FAIL: TestUpdate (2.02 seconds)
	controller_test.go:317: observed transition "to" -> "from" for a-0-0
FAIL
FAIL	github.com/GoogleCloudPlatform/kubernetes/pkg/controller/framework	3.220s

Yeah I think that's the one I expected to see.


Minor fix for COMMA join

As per the issue, I can also reproduce it locally.

simple fix

Codecov Report

Merging #11312 (b48699a) into master (02dc470) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #11312   +/-   ##
=======================================
  Coverage    0.11%    0.11%
=======================================
  Files        2231     2231
  Lines      120139   120139
  Branches    18218    18218
=======================================
  Hits          137      137
  Misses     119982   119982
  Partials       20       20

Flag
Coverage Δ

integration1temurin11
0.00% <ø> (ø)

integration1temurin17
?

integration1temurin20
0.00% <ø> (ø)

integration2temurin11
?

integration2temurin17
?

integration2temurin20
?

unittests1temurin11
0.00% <ø> (ø)

unittests1temurin20
?

unittests2temurin11
0.11% <ø> (ø)

unittests2temurin17
0.11% <ø> (ø)

unittests2temurin20
0.11% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Changed
Coverage Δ

...org/apache/pinot/sql/parsers/CalciteSqlParser.java
0.00% <ø> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


allow user to designate node position or justification

This graph:
graph TD
C==>D
D==>E
D==>F
E==>C
F==>C
leads to the following plot:

It'd be great to be able to specify that the D node in this situation should be centered, and the arrows go around it to make an upside Y shape, which would be much cleaner.

This might be a bit tricky. Dagre-d3 which is responsible for the layout does have support for weights fpr the relations between the nodes, perhaps that could be utilized somehow.
How do you propose the syntax should look like?
Btw: Meanwhile changing the order in the definition for changing the layout.

How should I change the order of the definition to get it centered? I've tried mutating the order a few times and haven't seen any different result.
For the syntax, I could see a left/right/center justification, or an explicit pixel designated position for the center of the node, with the latter preferred for flexibility. This could be designated with:
style A justification:left or style A left-position:400,right-position:500
What do you think?

This renders a different layout but this is perhaps not how you wanted to illustrate this:
graph TD
  D==>E
  C==>D
  D==>F
  E==>C
  F==>C

Anyways, I will tag this as a wanted enhancement and would be happy for help with it from someone.

Hi, I see this is an issue that has been open for quite some time, are there any developments on this question? I have a similar problem at hand now, I want to create a (basic) network diagram where I have for example 2 core routers A & B, and 2 distribution routers C & D. I want A & B to sit on the same height, and C & D below that.
graph LR
A-->B
C-->D
Works fine, both A & B and C & D are on equal heights. But when I add the diagonal and vertical connections ( A-->C, B-->D for vertical and A-->D,B-->C for diagonal ) the layout is not what I want it to be. I would like to have a square layout with the  diagonal lines forming an X shape between the nodes.
I think that this would be accomplished already if I could force nodes A & B to have a row height of 1 and C & D to be on height 2, but I cannot find anything in the docs relating to node position.
Please let me know if I missed something.

Flowchart layout is powered by https://github.com/dagrejs/dagre-d3
Anybody who wants to help please check how upstream project supports this feature.

Just to stress, idk, priority or something, this is a serious/blocking limitation for the system diagram I'm trying to create. Basically I have a central point that calls two bigger services which have sub services that are also called by the central service, plus several smaller independent ones called by the central point. This ends up spreading the subservices out across the entire diagram when they should really be grouped together under their non-central node parent service. Dagre seems to possibly have some features for this, but without writing my own solution in the mermaid code (I'm using the browser editor for now) this doesn't appear to be configureable through the mermaid config file.

Wanted to give my support to @n1els, having a text-based diagramming system for network diagrams would be amazing.  But the auto-layout engines don't always work like we want, so we can add everything but the images are 10 times larger than we need.  I've been playing with Graphviz, but I just can't quite get things right.  I love the inline text for connections on Mermaid!

hi , i found this https://466023746.github.io/face/
i have the same problem above, so i change my mind, use another way to solve this.
i use the color to distinguish each other, and without any loop.

  Some of the examples people post above (like n1els) are probably solved well with sub-graphs to ensure that certain nodes stay grouped.  Some seem like minor complaints about the exact way to draw the graph (FrankKooij) but it seems like at that point you should just be using a hand-drawn system.  Part of the point is that the diagrams are auto-generated, right?  If you want to specify absolute pixel coordinates, you aren't really auto-generating the diagram, you're just coding it in text and that seems like a different use-case to me.  Perhaps PDF is what you are really looking for?
There's also a divide, I think, between people who drawing static graphs, like where you are hand-writing the mermaid code for some documentation; and people who are dynamically generating graphs.  For example, I'm using mermaid to render a graphical view of a user-created flow chart on a website.  In this case I'm dynamically generating the mermaid code from user content and don't know a priori what the set of nodes or their relationships are.  Where-as with the static case you do and could potentially specify some alignments.  These two cases possibly need different tools.
To my point earlier about auto-generating, I think you have to accept some non-determinism in the generated graph, but I have also seen some weird behavior in a large chart where two nodes end up far apart even though the one node is not connected to anything else except the other node.  So, there's a long path between them and a lot of empty space in the diagram where they could have been closer together without changing any of the rest of the diagram.  Clearly the graphing algorithm is not optimizing on short connectors.  This seems like something that would fit in the language scheme: have a way of indicating layout optimization priorities.  Like, "I want nodes to show up in the order that I specify them", "I want to minimize average connector length", "I want to minimize connector intersections", or maybe "i want nodes to be orthogonally aligned".  Being able to specify a layout preference like this (or even an ordered list of preferences) would, I think, address a lot of the largest problems that people are calling out here.
The other thing I would love to have, and really is needed when the graph is dynamically created, is some way for the end user (viewer) to drag the boxes around.  This allows them to re-arrange things as needed for the semantics of the graph (that only they understand), or just to help them focus on one part of the graph versus another at any given time.

BTW, here's a sample of the sort of graph I'm working with (all text has been removed).  Note that the first node (in green) is no where near the top of the chart, even though it is declared first.  Also note the yellow nodes which only connect to one other node are often far from their one connection even though there is empty space they could be in closer to their connection.


Any way to save chips amount

Is there any way to save the chips data/amount. It resets as soon as I refresh the webpage. I tried to add a MySQL database connection but couldn't add it properly.

Hello, there is currently no way to save the chips, and since the game is not maintained, there won’t be any solution in the nearest future


Support for ETH module LSE-3

Hardware:
Deye SUN-12K-SG04LP3
Hi!
Before buying it, is modbus reading via ethernet module supported or just through wireless?

Good question. I do not own LSE-3. Afaik, modbus/tcp at port 8899/tcp does not work. I do not know if modbus/at at port 48899/udp works. You may try to find the answer at one of the forums like https://www.photovoltaikforum.com or https://diysolarforum.com
Also this thread sheds some light on the topic https://github.com/StephanJoubert/home_assistant_solarman/issues/247


Document --preserveWatchOutput in tsc --help

TypeScript Version:  3.4.1
I had to look up https://github.com/Microsoft/TypeScript/issues/26873 to find what the flag was in order to use it in a --build setup as it's not documenting in --help.

@Tyriar @RyanCavanaugh Can I pick this up? Please assign it to me if it's not done yet.


Fix stubs where $column, $operator, $value pattern is used

Larastan Version:  <=1.0.0
--level used: any

Description
Laravel uses a pattern in some builder methods that will allow user to call the method just with 2 arguments which will treat the second argument as the value and the operator will always be =
Therefore the $operator argument should be typehinted with all the possible values.
Laravel code where the issue was found
User::whereYear('created_at', 2018);

produces
Parameter #2 $operator of static method Illuminate\Database\Eloquent\Builder<App\User>::whereYear() expects  non-empty-string, 2018 given.

Proposed error message:
Too much freedom is bad for your health while calling static method Illuminate\Database\Eloquent\Builder<App\User>::whereYear()

Hi,
Forgive me if I'm oversimplifying here, but based on looking through Laravel builder methods, would it not work by setting $operator = null? As the list of accepted operators depends on your database.

@canvural
for now the best alternative would be to ignore this error?


Feature request: Classes for code blocks

Would it be possible to add classes to code blocks as well?
Currently when I try this:
{:.foo}
```
test
```

It will result in this html:

test

@dhbradshaw, what do you think?

@pkaminski : that makes sense.
@TethysSvensson That makes sense.  Are you open to creating a pr?

I principle yes, but I have a bit too much on my plate right now.
For now I solved my problem by writing CSS that hides the div.foo object and applies some styling to the pre block that comes after the div.foo.


Can't run KameletBinding with the native mode

I am creating the following KameletBinding

apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
  annotations:
    trait.camel.apache.org/quarkus.package-type: native
  name: test
spec:
  sink:
    properties: {}
    uri: log:info?showStreams=true
  source:
    properties:
      message: "test"
    ref:
      apiVersion: camel.apache.org/v1alpha1
      kind: Kamelet
      name: timer-source

The KameletBinding gets stuck on the Creating phase.
The underlying integration gets stuck on the Building Kit phase

I have provided a PR with the reproducer.

Thanks for the reproducer, we can verify exactly what's going on there. @astefanutti was the native build also meant for KameletBinding? I think it was, but please, confirm if it's not the case.

Thanks for the reproducer, we can verify exactly what's going on there. @astefanutti was the native build also meant for KameletBinding? I think it was, but please, confirm if it's not the case.

@squakez Yes, native build is supposed to work with KameletBinding.
From a quick look at the test failure, the build actually completes successfully and the kit transitions to ready. However the integration associated to the kit failed to be reconciled once the kit is ready. So there must be something broken in the logic that filters kit events out in the integration controller, which fails to match the integration.


Add Resource Development Institute

@phamazu First stage of verification passed, official domain is rdi.edu.vn as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@phamazu Pull request merged. Thank you.


Fix: default regexes and references in docs

Description
Fixes a likely bug in the default message regexes.
Motivation and Context
A regex like ^feat* will match all of these: https://regex101.com/r/esaUhE/1

feat
feature
fea
featttttttttttttttttt
fealty

Likely this was intended to act like ^feat.*, but as it was working correctly on "feat: add xyz" it must not need to match the whole string, so the trailing "any characters .*" is unnecessary.
In some of these, it may be desirable to add a \b on the end to match only whole words, not partial... but likely not all, as e.g. allowing "feat" to match "feature", and "fix" to match "fixes" is probably a good thing.  I haven't done that here mostly because that seems like a lot more of a design choice than a bug :)
How Has This Been Tested?
Prior to changing the regex in integration_tests.rs, adding this:
diff --git a/git-cliff-core/tests/integration_test.rs b/git-cliff-core/tests/integration_test.rs
index d226469..6d4e8a2 100644
--- a/git-cliff-core/tests/integration_test.rs
+++ b/git-cliff-core/tests/integration_test.rs
@@ -56,6 +56,7 @@ fn generate_changelog() -> Result<()> {
                                Commit::new(String::from("abc124"), String::from("feat: add zyx")),
                                Commit::new(String::from("def789"), String::from("invalid commit")),
                                Commit::new(String::from("qwerty"), String::from("fix: fix abc")),
+                               Commit::new(String::from("qwerty"), String::from("final: invalid commit")),
                                Commit::new(
                                        String::from("hjkl12"),
                                        String::from("chore: do boring stuff"),

fails because the "final: invalid commit" is included in the output:
     Running tests/integration_test.rs (target/debug/deps/integration_test-464c48ac65477f2c)

running 1 test
test generate_changelog ... FAILED

failures:

---- generate_changelog stdout ----
thread 'generate_changelog' panicked at 'assertion failed: `(left == right)`

Diff < left / right > :
<"this is a changelog\n\n        ## Release v2.0.0\n        \n        ### fix bugs\n        \n        - fix abc\n        \n        ### shiny features\n        \n        - add xyz\n        - add zyx\n        \n        ## Release v1.0.0\n        \n        ### chore\n        \n        - do nothing\n        \n        ### feat\n        \n        - add cool features\n        \n        ### fix\n        \n        - fix stuff\n        - fix more stuff\n        eoc - end of changelog\n"
>"this is a changelog\n\n        ## Release v2.0.0\n        \n        ### fix bugs\n        \n        - fix abc\n        - invalid commit\n        \n        ### shiny features\n        \n        - add xyz\n        - add zyx\n        \n        ## Release v1.0.0\n        \n        ### chore\n        \n        - do nothing\n        \n        ### feat\n        \n        - add cool features\n        \n        ### fix\n        \n        - fix stuff\n        - fix more stuff\n        eoc - end of changelog\n"

', git-cliff-core/tests/integration_test.rs:114:

Using ^fix (as in this PR) correctly filters it out.
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Documentation (no code change)
[ ] Refactor (refactoring production code)
[ ] Other

Checklist:

[x] My code follows the code style of this project (after rustup default nightly, all pass)
[x] I have updated the documentation accordingly.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Should I amend my commit(s) to have the end commit message, and keep one / a branch to merge / will you squash and rewrite?  generally I just copy from the PR description (minus process-checkmarks and similar), but I'm happy to rewrite to whatever you'd prefer.

Codecov Report

Merging #7 (0f4a389) into main (8fb18b7) will increase coverage by 0.34%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main       #7      +/-   ##
==========================================
+ Coverage   42.38%   42.72%   +0.34%
==========================================
  Files          13       13
  Lines         597      597
  Branches      162      162
==========================================
+ Hits          253      255       +2
+ Misses        254      250       -4
- Partials       90       92       +2

Impacted Files
Coverage Δ

git-cliff-core/src/repo.rs
43.08% <0.00%> (+3.08%)
:arrow_up:

Continue to review full report at Codecov.

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

Hello! Thanks for taking time to submit this, I know something was odd with my regexes 😄

Likely this was intended to act like ^feat.*, but as it was working correctly on "feat: add xyz" it must not need to match the whole string, so the trailing "any characters .*" is unnecessary.

Makes sense.

In some of these, it may be desirable to add a \b on the end to match only whole words, not partial... but likely not all, as e.g. allowing "feat" to match "feature", and "fix" to match "fixes" is probably a good thing. I haven't done that here mostly because that seems like a lot more of a design choice than a bug :)

That's right 👍🏼

Types of changes

[x]  Breaking change (fix or feature that would cause existing functionality to change)

arguably at least

I think that's fine. Matching only the type of the commit (e.g. feat) was the intended behavior anyways.

Checklist:

[x]  My code follows the code style of this project.

cargo fmt --all -- --check --verbose has multiple unrelated failures on main, so I'm not too concerned there

CI seems to be failing, can you run cargo fmt and push the changes?

Should I amend my commit(s) to have the end commit message, and keep one / a branch to merge / will you squash and rewrite? generally I just copy from the PR description (minus process-checkmarks and similar), but I'm happy to rewrite to whatever you'd prefer.

I can squash the commits, no problem.
And I was wondering if we should update the regexes in the other templates as well. ({detailed,keepachangelog}.toml) What do you think?

Checklist:

[x]   My code follows the code style of this project.

cargo fmt --all -- --check --verbose has multiple unrelated failures on main, so I'm not too concerned there

CI seems to be failing, can you run cargo fmt and push the changes?
edit/note: rustfmt.toml requires Rust nightly.

I'd thought cargo did that, but it looks like no - will do.

And I was wondering if we should update the regexes in the other templates as well. ({detailed,keepachangelog}.toml) What do you think?

Yep - I only searched for "feat*" or something, so I just missed them.  I'll add them as well.

Huh.  cargo +nightly fmt --all behaves differently than rustup default nightly + cargo fmt --all.
I also realized that you may want to change the version regexes.  Currently they're v[0-9]* which allows v on its own.  v[0-9]+ might be what you want, which means at least one number?

I also realized that you may want to change the version regexes. Currently they're v[0-9]* which allows v on its own. v[0-9]+ (require at least one digit) might be what you want?

They are glob patterns not regex so v[0-9]+ won't really work I think.
Other than that everything seems fine to me. Just one thing, I recently pushed b5df656e61035f6230f2613f3dba6a92f88708cd and the regexes in this commit (^doc*) should be updated as well. Can you do it or should I do it myself after merge? We can merge if you're not planning to make any further changes.

I think I'm going to merge this and update the other regexes afterwards. Thanks again!


Able to copy by when paste to RTF like keynote/microsoft words, does not have color theme applied.

(Original issue 1238 created by None on 2016-05-07T17:19:54.029985+00:00)
i did pygmentize -f rtf micropost.rb and i got the source code copied with no colors at all, its all black any idea why?

(Original issue was assigned to alex_gaynor)

(Original comment by camilstaps on 2016-06-01T07:18:06.999609+00:00)
Could you give more information? What pygments version are you using and what are the contents of this file? Does pygmentize work for other files?


Apply name convention to unit tests

All unit tests have to have names in the following format:
command-name: some text

For instance, exit code is 0 when run 'git-elegant check -a' rename to check: exit code is 0 when run 'git-elegant check -a'

Done in #104


remove ImageColor patch

Please select one of the following

[x] I am removing an existing difference between facebook/react-native and microsoft/react-native-macos :thumbsup:
[ ] I am cherry-picking a change from Facebook's react-native into microsoft/react-native-macos :thumbsup:
[ ] I am making a fix / change for the macOS implementation of react-native
[ ] I am making a change required for Microsoft usage of react-native

Summary
This PR does a quick clean of a patch that is not needed anymore; it was wiped empty during the 0.66 PR (as you can see in this git history) but it was not a problem because the fix was implemented upstream on this commit on 0.66: https://github.com/facebook/react-native/commit/842bcb902ed27928255b60cb20524e9318d9bf70
Test Plan
Nothing to test - it was an empty file already ;)

Looks like CI is failing because of https://github.com/microsoft/react-native-macos/pull/1175


Ability to skip impact analysis for a set of files

In some cases, users would like to skip the impact analysis phase for a set of copybooks, include or macros files. This could be because this file is used in basically all the programs, and changes are assumed to be backward compatible.

merged to development via #60


On Linux, actions (buttons) are not working

According to my researches (and to my surprise) it looks like this is currently not supported on Linux. Can somebody confirm that this is a limitation on Linux, or is there a way to make it work there as well?

it's working on my Ubuntu system

No buttons are being showed in my Zorin system. Also, timeouts and callbacks are not working either


Sign in request and badge does not dissapear using a custom authentication provider

VS Code Version: 1.93.1
OS Version: Ubuntu 22.04 LTS

The bug has already been reported on stack overflow:
https://stackoverflow.com/questions/77555434/the-sign-in-option-wont-disappear-after-signing-in-vscode
The sign-in request and badge do not disappear after a successful login using a custom authentication provider. It seems only to work using the existing Microsoft or GitHub authentication provider, as it disappears using GitHub CoPilot.

Ah thanks, it works!
I've missed adding the scopes to getSession.


ot-br-posix built with Yocto cannot ping/reach external addresses.

Hi all,
we tried to build ot-br-posix (58d09bee8) based on Yocto recipe provided in: https://github.com/openthread/ot-br-posix/blob/main/etc/yocto/otbr_git.bb by @gabekassel.
We were able to build an OS image for the raspberry-pi with a SiLabs RCP and start the otbr-agent service and create a Thread network using CLI commands. We could also join one or more nodes to the Thread network and ping between them.
When we used the manual installation we were able to ping e.g. google (ping 64:ff9b::808:808) with above mentioned hardware setup (raspi + SiLabs RCP) but with the Yocto recipe based version this is not possible.
By comparing the two different setups, manual (working google ping) and Yocto based (not working google ping) we observed that in the manual setup a nat64 interface is created. Not so for the Yocto based setup. Screenshot of the manual setup is attached. Parts marked in red are missing in the Yocto recipe based setup.
Another observation is that the tayga/NAT64 service in the manual setup is running. In the Yocto-based OTBR the tayga/NAT64 service is not running. However, we still haven't managed to create the nat64 interface that tayga needs to work.
It seems that something (tayga/NAT64 + interface?) is missing in our Yocto recipe which would enable external communication over the border router.
Can someone advise please?
Thanks a lot!
ArtLiW
Expected behavior A clear and concise description of what you expected to happen.
ot-br-posix built with Yocto able to communicate with external/internet addresses e.g. ping 64:ff9b::808:808
Console/log output If applicable, add console/log output to help explain your problem.
ping 64:ff9b::808:808
results in
"Packet loss = 100.0%"

@ArtLiW , not sure if it helps, but the setup script that configures NAT64 is script/_nat64.

+1 to @jwhui 's recommendation. The yocto recipe provided in OTBR only helps install otbr-agent and ot-ctl. Tayga, avahi-daemon, and other helper services need to be installed and started separately.
Further, you'll still need to add a NAT64 route to the thread network data (e.g. ot-ctl route add FOO n) and configure tayga appropriately. Happy to share examples of a tayga configuration file if helpful, but I think the suggested otbr setup scripts should help.

Hi @jwhui and @gabekassel,
thanks a lot for your hints and help!
We were able to resolve the external connectivity problem by adding two IP rules in the nat table:
iptables -t nat -A POSTROUTING -s <IP_ADDRESS>/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
We added above two lines between the two following lines in our script and it worked:
ip route add <IP_ADDRESS>/24 dev nat64
(add here)
systemctl start tayga.service
Regarding the rest of the configuration we have some concerns about our DNS64. We are trying to understand how we can test the DNS64 configuration and if it is possible to do “ping www.google.com" with that configuration from our end devices. The same applies to the NetworkManager and DHCP configurations. We don’t know how to test these configurations.
It would be great if that would be explained in the Openthread Border Router documentation.
Please let me know if this is already available.
Thanks again!!
Best Regards,

Closing stale issue.


User Management

Description
A list of all possible features:

User Accounts
Data protection (by user affiliation)
Permissions system
Group Management
Impersonate User
SSO
Management page in Admin UI

User Accounts
Right now, no real users exist, the IDs provided from an authentication provider through SSO are used to authenticate users. A new user entity should be created containing the ID, the name and the email for instance (once the user has used SSO to sign in), as well as an information about the Affiliation to a given information.
Data protection
Right now, only members of the institution where the DMP Tool is deployed have access to the DMP Tool (and therefore for instance the information from the project database => DMP TU Wien Tool, SSO with TISS, only for TU WIEN members).
When implementing user accounts, members from other institutions could access the DMP tool. The access to potentially sensible data, such as the projects or the person database should be restricted to members of a given institution (for instance by setting a institution ID in a config file and comparing it to the affiliation of the user, obtained through the SSO provider).
Permissions system
A User should have different possible permissions levels on a DMP:

Read
Read + Write
Owner: The owner can transfer the ownership (and therefore lose it) to another user (should probably also be able to be changed in the Admin UI if the owner loses access to his account?)

Group Management
Instead of adding users manually to a project, users could be added to groups to share permissions with an entire group. These group could either be project specific, but there could also be "global" groups or admin only creatable groups, that can always be selected. Those groups could refer to departments or research groups for instance.
DMP Owners could share access to single users or entire groups, the backend would have to check for permissions therefore also by "resolving" the groups into their members. The highest permission should always apply.
Impersonate Users
Similar to how an Admin can view the Tool from the perspective of any arbitrary user in Invenio RDM, an Admin should be able to "borrow" a JWT for any user, while still keeping his own JWT. To be able to escape the "user perspective", the frontend could just switch the JWT back to the admin JWT.
SSO
In order to allow users from different institutions, an SSO provider such as ACONET or EDUGAIN should be used, instead of a institute specific SSO provider.
Management page in Admin UI
Users should be able to be filtered in a list view in an admin only panel, to be able to edit / delete (?) them.
Related to: https://github.com/tuwien-csd/damap-frontend/issues/322

Clarifications on the User Management:
This issue is a major effort for DAMAP that would mainly allow having external users (with non-local institutional SSO) being able to use DAMAP and see DMPs (or selected DMPs).
The features should all be implemented individually (see the list at the top of the description).


[docker] terraform latest version

Hey,
Can we get the docker image built for the latest terraform build?

Failed to read plan from plan file: plan file was created by Terraform 0.14.8, but this is 0.14.7; plan files cannot be transferred between different

Thanks in advance.

ping @alikhajeh1 - thanks in advance

Thanks for reporting this! I sent a PR to bump the version.

@uncodable I've actually pushed this now to infracost/infracost:latest.


Check SoftDeletes on HasOne or BelongsTo relations

Right now, if the related table uses SoftDeletes, it is not handled via the performJoin method.

Sorry for late reply. The PR looks good. Will try to test this on actual project next week and possibly add a test case for this scenario.

Released on v8.4.2, thanks a lot! 🥂


IO-Spec Update

This PR includes the updated IO specification to resolve the issue with valid interfaces for packets destined for the local AS.

Can we merge this already in master instead of the IO spec?

Yes, I would merge this directly into master.

Yes, I would merge this directly into master.

oops, my bad. this commit history confused me.


not all tracing times end up in the cache files

These lines in cost_func:
https://github.com/benvanwerkhoven/kernel_tuner/blob/master/kernel_tuner/strategies/minimize.py#L121-L130
Come after the config has been stored in the cache, which means the times computed here do not end up in the cachefile. Also, brute_force is not using cost_func so it can't be used this way to produce these trace timings. Both issues can probably be solved by moving these lines into the runner.
We also need the simulation runner to somehow simulate the same compile_time, framework_time, and so on when tuning with a search strategy under a time limit. We can probably simulate this by moving the clock used to check the time limit.

Need to fix this as well: https://github.com/benvanwerkhoven/kernel_tuner/blob/master/kernel_tuner/strategies/minimize.py#L122 perf_counter is already in seconds


Fix Keep message drafts #1459

Closes ___ (e.g. #230)
What does this PR do?
use localStorage to keep draft of messages (wall and pickups messages) even if page is refreshed. The Key refers to the ConversationId and the value to the messsage. The key-value pair is destroyed only when the draft is submited, or the user voluntary quit the page or escape the form.
(briefly describe what this PR is about)
Links to related issues
[https://github.com/yunity/karrot-frontend/issues/1459]
)## Checklist

[ ] added a test, or explain why one is not needed/possible...
[ ] no unrelated changes
[ ] asked someone for a code review
[ ] joined #karrot-dev channel at https://slackin.yunity.org
[ ] added an entry to CHANGELOG.md (description, pull request link, username(s))

HI @tiltec  I just pushed a new commit that addresses most of the points mentioned. I unfied the way we handle the conversationId, even for wall conversation. I kept a 'wallConv, key to keep the draft of new wall conversation( no iD as long as message is not submitted). I kept the deletion of the draft on Leave, because it is the only way to delete the draft. As explained earlier it is a UI decision, you can remove if your prefer, but that would involve the localstorage will never get cleaned. I will want on an alterbative leveraging vuex and vuex-persistant as you mentioned, but I not sure it is a good idea as the data is really used only in a single component (ConversationCompose). I wanted to finalise his PR so at leats we have something that works.  as of now people can also edit existing messages. the message showing on the page is the one that is coming from backend, but if they come back to finalise an edit they started earlier, this draft will be used in the edit form. it is only if they submit that the draft will replace previous message. Please test it and let me know if it does the job.

I kept a 'wallConv, key to keep the draft of new wall conversation( no iD as long as message is not submitted).

There's more than one wall: each group and each place has one. You implemented it in a way that would remember one message draft for walls, no matter where the user originally typed it in.
I think that's sligthly confusing to users and rather unexpected to both developers and users - what do you think? It should be possible to use conversation ID as well, it exists already for empty walls.

Thanks for your feedback, In fact I am using conversation in all the places. as of today, I saw usage of ConversationCompose on the wall and in pickups. for both of them I am using the conversationId so it is universal and it wil store all drafts based on this conversationId. but if you look at the top of the wall page, users can enter directly in Converation compose to edit a new conversation. This conversation can not have an idea because it is not yet part of any conversation. this is only for this one that i created the wallConv. if people edit an existing conversation or add new comment on an existing conversation, the feature will save the draft based on its conversationId. because local storage is used, the draft will be saved only for this specific user (and specific device in fact) so there is no conflict with other groups or places. But if it happens that users are part of different groups or places then I would have to use the groupId and PlaceId in my key used in local storage. that would be easy to implement


Multiple ApEx

Can I/how do I use it with multiple AirPort Express devices?

With home assistant? Create one binary_sensor per Airport Express and change the hostname requested. It should work.


mark/flag somewhere in the plugin GUI that this one is no longer developed

was replaced with label-fusion-ng earlier, was no longer developed in its original home , and this home was removed (Jan 2022) from CTC Fiji update site... so its normally not accessible anymore


[DRAFT] kafka: dependency upgrades

Commit Message: kafka: dependency upgrades (kafka source for protocol, librdkafka, test utils)
Additional Description: dependency upgrades
Risk Level: Low
Testing: Integration tests, manual tests (draft PR until I finish all manual stuff)
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

/wait-any

/wait-any

oh my goodness release dates
/wait-any

/wait-any

/wait-any

good for review
/assign @mattklein123 @moderation

Great to get these deps upgraded! Thanks
/lgtm deps


Fix gas refund from contract called not passed to caller

Description
At block 81383 there is a CALL opcode to a contract where several SSTORE opcodes are called, some of which result in gas being added to be refunded (that is ProgramState.gasRefund is increased). In the code of the CallOps this gasRefund from the ProgramResult of the call to the contract wasn't being added to the gas to be refunded.
This for example is done in EthereumJ in https://github.com/ethereum/ethereumj/blob/master/ethereumj-core/src/main/java/org/ethereum/vm/program/Program.java#L571.
Fix
Update the CallOps so that the gas refunded in the contract being called are passed to the caller of them.

That's a good point @rtkaczyk :smile:
I hadn't thought about that, I will add it to this PR as it doesn't look too difficult to add that fix :+1:

@rtkaczyk @AlanVerbner I just updated this PR with fixes to the problem for the gas refund for the CREATE opcode, please take a look at it


[Feature Request] Set default font size for paragraph text

The current default font size is pretty small and hard on the eyes. And having to manually adjust the font size every time you create a journal entry is tedious. It would be amazing to set a default font size for Stylish paragraph text.

@weepingminotaur This is a good idea. I'm not sure I have the time to code it though. I have been promoted at my day job and time for hobbies has been very limited. I'll see what I can do though.

As a short-term fix, I have increasded the default size of text to a minimum of 16pt.


Reversible encoding support: OPC UA datatypes cannot be decoded with the pubsub json format

Describe the bug
If we subscribe e.g. the ServerStatus node (i=2256) of an OPC UA server we can't decode its value using the JsonDecoderEx implementation.
                   var decoder = new JsonDecoderEx(input.Body.AsStream());                     while (decoder.ReadEncodeable(null, typeof(NetworkMessage)) is NetworkMessage message) ...
The value of the corresponding payload entry for this node is NULL.
To Reproduce
Steps to reproduce the behavior:

Subscribe the node "Id": "nsu=http://opcfoundation.org/UA/;i=2256" of an OPC UA server via publishednodes.json
Create an azure function with an EventHubTrigger for the incoming events
Deode the event data using the JsonEncoderEx
See the value of the "nsu=http://opcfoundation.org/UA/;i=2256" payload is NULL

Expected behavior
I would expect, any other value than NULL.
Please advice, how to work with the OPC UA PubSub json formatted event data of the publisher in an appropriate way.

I can confirm that this is fixed in the latest version of OPC Publisher currently under development and produces the following JSON pyload for node ID 2256 (ServerStatus):
"ServerStatus": {
"Value": {
"Type": 22,
"Body": {
"TypeId": {
"Id": 862
},
"Body": {
"StartTime": "2021-01-15T11:30:18.4093264Z",
"CurrentTime": "2021-01-15T11:30:24.1766754Z",
"State": 0,
"BuildInfo": {
"ProductUri": "https://github.com/Azure/iot-edge-opc-plc.git",
"ManufacturerName": "Microsoft",
"ProductName": "IoTEdge OPC UA PLC",
"SoftwareVersion": "1.4.363.107+a837774969718713af74ec66d8890e6fc131ddf1",
"BuildNumber": "1.4.363.107",
"BuildDate": "2020-10-09T13:23:30Z"
},
"SecondsTillShutdown": 0
}
}
},
"SourceTimestamp": "2021-01-15T11:30:24.1766754Z",
"ServerTimestamp": "2021-01-15T11:30:24.1767558Z"
}
Until this version is released (sometime this spring), as a workaround, please subscribe to leaf nodes, i.e. the nodes with ID 2257, 2258, etc.

I can confirm that this is fixed in the latest version of OPC Publisher currently under development and produces the following JSON pyload for node ID 2256 (ServerStatus):
"ServerStatus": {
"Value": {
"Type": 22,
"Body": {
"TypeId": {
"Id": 862
},
"Body": {
"StartTime": "2021-01-15T11:30:18.4093264Z",
"CurrentTime": "2021-01-15T11:30:24.1766754Z",
"State": 0,
"BuildInfo": {
"ProductUri": "https://github.com/Azure/iot-edge-opc-plc.git",
"ManufacturerName": "Microsoft",
"ProductName": "IoTEdge OPC UA PLC",
"SoftwareVersion": "1.4.363.107+a837774969718713af74ec66d8890e6fc131ddf1",
"BuildNumber": "1.4.363.107",
"BuildDate": "2020-10-09T13:23:30Z"
},
"SecondsTillShutdown": 0
}
}
},
"SourceTimestamp": "2021-01-15T11:30:24.1766754Z",
"ServerTimestamp": "2021-01-15T11:30:24.1767558Z"
}
Until this version is released (sometime this spring), as a workaround, please subscribe to leaf nodes, i.e. the nodes with ID 2257, 2258, etc.

Changed to feature request, the decoding can only work with reversible encoded payload and currently the whole payload is encoded non-reversible.

In 2.9.0 with support for metadata messages and reversible encoding decoding using both to original OPC UA should be possible.  Recommend using UADP as encoding for compact wire format and chunking.


Edit pass on Multi-Geo topics

Edited 13 topics under Solution guidance > Multi-Geo, including updates to the TOC.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/features/hub-site/hub-site-overview.md
:white_check_mark:Succeeded
View

docs/general-development/access-sharepoint-from-mobile-and-native-device-apps.md
:white_check_mark:Succeeded
View

docs/general-development/sharepoint-add-ins-compared-with-sharepoint-solutions.md
:white_check_mark:Succeeded
View

docs/general-development/what-s-new-for-developers-in-social-and-collaboration-features-in-sharepoint-201.md
:white_check_mark:Succeeded
View

docs/scenario-guidance/Branding.md
:white_check_mark:Succeeded
View

docs/scenario-guidance/Development-models.md
:white_check_mark:Succeeded
View

docs/scenario-guidance/Enterprise-Content-Management.md
:white_check_mark:Succeeded
View

docs/scenario-guidance/Long-running-scheduled-operations.md
:white_check_mark:Succeeded
View

docs/scenario-guidance/Multi-geo-capabilities.md
:white_check_mark:Succeeded
View

docs/scenario-guidance/Performance.md
:white_check_mark:Succeeded
View

docs/scenario-guidance/Responding-to-changes.md
:white_check_mark:Succeeded
View

docs/scenario-guidance/Security.md
:white_check_mark:Succeeded
View

docs/scenario-guidance/Site-provisioning.md
:white_check_mark:Succeeded
View

docs/scenario-guidance/Transformation.md
:white_check_mark:Succeeded
View

docs/scenario-guidance/User-information.md
:white_check_mark:Succeeded
View

docs/schema/startpage-element-propertiesdefinition-complextypesharepoint-add-in-manifest.md
:white_check_mark:Succeeded
View

docs/solution-guidance/Extending-SharePoint-Online-for-Germany-China-USGovernment-environments.md
:white_check_mark:Succeeded
View

docs/solution-guidance/Office-365-development-patterns-and-practices-solution-guidance.md
:white_check_mark:Succeeded
View

docs/solution-guidance/Sandbox-Solution-Transformation-Guidance-Event-Receivers.md
:white_check_mark:Succeeded
View

docs/solution-guidance/Sandbox-Solution-Transformation-Guidance-Feature-Receivers.md
:white_check_mark:Succeeded
View

docs/solution-guidance/Sandbox-Solution-Transformation-Guidance-WebParts.md
:white_check_mark:Succeeded
View

docs/solution-guidance/Sandbox-Solution-Transformation-Guidance.md
:white_check_mark:Succeeded
View

docs/solution-guidance/Transform-farm-solutions-to-the-SharePoint-app-model.md
:white_check_mark:Succeeded
View

docs/solution-guidance/Use-remote-event-receivers-in-SharePoint.md
:white_check_mark:Succeeded
View

docs/solution-guidance/app-only-elevated-privileges-sharepoint-add-in.md
:white_check_mark:Succeeded
View

docs/solution-guidance/branding-sharepoint-sites-sharepoint-add-in.md
:white_check_mark:Succeeded
View

docs/solution-guidance/custom-actions-sharepoint-add-in.md
:white_check_mark:Succeeded
View

docs/solution-guidance/custom-field-type-sharepoint-add-in.md
:white_check_mark:Succeeded
View

docs/solution-guidance/delegate-controls-sharepoint-add-in.md
:white_check_mark:Succeeded
View

docs/solution-guidance/document-id-provider-sharepoint-add-in.md
:white_check_mark:Succeeded
View

docs/solution-guidance/elevated-privileges-in-sharepoint-add-ins.md
:white_check_mark:Succeeded
View

docs/solution-guidance/event-receiver-and-list-event-receiver-sharepoint-add-in.md
:white_check_mark:Succeeded
View

docs/solution-guidance/feature-stapling-sharepoint-add-in.md
:white_check_mark:Succeeded
View

docs/solution-guidance/how-to-provide-add-in-app-only-tenant-administrative-permissions-in-sharepoint-online.md
:white_check_mark:Succeeded
View

docs/solution-guidance/information-management-policy-sharepoint-add-in.md
:white_check_mark:Succeeded
View

docs/solution-guidance/list-definition-template-sharepoint-add-in.md
:white_check_mark:Succeeded
View

docs/solution-guidance/list-instance-sharepoint-add-in.md
:white_check_mark:Succeeded
View

docs/solution-guidance/localization-sharepoint-add-in.md
:white_check_mark:Succeeded
View

docs/solution-guidance/master-pages-sharepoint-add-in.md
:white_check_mark:Succeeded
View

docs/solution-guidance/mms-manipulation-sharepoint-add-in.md
:white_check_mark:Succeeded
View

docs/solution-guidance/modules-sharepoint-add-in.md
:white_check_mark:Succeeded
View

docs/solution-guidance/multigeo-apps.md
:white_check_mark:Succeeded
View

docs/solution-guidance/multigeo-bcsandsecurestore.md
:white_check_mark:Succeeded
View

docs/solution-guidance/multigeo-contenttypehub.md
:white_check_mark:Succeeded
View

docs/solution-guidance/multigeo-discovery.md
:white_check_mark:Succeeded
View

docs/solution-guidance/multigeo-introduction.md
:white_check_mark:Succeeded
View

docs/solution-guidance/multigeo-managedmetadata.md
:white_check_mark:Succeeded
View

docs/solution-guidance/multigeo-onedrive.md
:white_check_mark:Succeeded
View

docs/solution-guidance/multigeo-permissions.md
:white_check_mark:Succeeded
View

docs/solution-guidance/multigeo-sampleapplicationsetup.md
:white_check_mark:Succeeded
View

This comment lists only the first 50 files in the pull request.
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Update Fuchsia open flags

These are being changed internally-- see here.
I wasn't sure about the best way to cfg the entries that were architecture specific, so I just blocked them out and inserted them at a higher level. Let me know if there's a better way to organize the cfgs.
cc @smklein

Double checked the O_* values with the planned change from Fuchsia, I can vouch that they match.

Thanks! Perhaps fuchsia though could get it's own hierarchy now? We tend to prefer inline cfg blocks like this as it can be quite difficult to maintain over time

Sure, that seems reasonable. I was trying to keep this particular diff minimal, but I'll open a new CL with a new Fuchsia target.


Local Nav Link - No Disabled State

Local Nav Link components have no disabled prop/state. Need to add one.

:tada: This issue has been resolved in version 1.0.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Use response selector keys for confusion matrix labelling

Proposed changes:

At the moment, when running an NLU evaluation for response selectors the plotted confusion matrix with use the training data utterances as plot labels. This small PR uses the response selector keys and predicted (sub)-intents as labels instead. This make the confusion matrix a lot more readable and useful.
Similarly, the response_selection_report.json uses the same labels leading to better comprehension.

Examples
Before

After

Status (please check what you already did):

[ ] added some tests for the functionality
[ ] updated the documentation
[x] updated the changelog (please check changelog for instructions)
[x] reformat files using black (please check Readme for instructions)

Thanks for submitting a pull request 🚀 @tttthomasssss will take a look at it as soon as possible ✨

@dakshvar22 Thanks for the feedback. I applied your suggestions. Please see commit 021bcb1

@dakshvar22 Is anything else required for this PR?

@dakshvar22 To my dismay I discovered that my refactoring reintroduced a bug in my original PR. Unfortunately, it was captured by any of the unit the tests. I came across it when running a new response selector evaluation today. Please see  this commit for a fix: https://github.com/hotzenklotz/rasa/commit/fd037beac900a4a47c00cfb071f4563d72b44fd1
In short, the default value for a response selector key was wrong. It needs to default to None for all "regular" intent examples or otherwise those won't be filtered out further down the pipeline and crash the sklearn reports.
cc @tmbo


docs-community: Enable preview rendering for pull requests

Given this project is using read the docs, we may as well use PR preview rendering.
I don't know who is an admin of the project on RTD, though -- @willingc perhaps?
A

The only person with access to the RTD pages is @willingc: https://readthedocs.org/projects/docs-community/
There's a "Build pull requests for this project" checkbox on this page. You will also need to click save at the end of the page before closing it.
We probably wanna also increase our bus factor for the RTD page. You can add more folks on this page as long as you know their RTD usernames. :)

Mariatta and I have access now. Thanks Carol!
I've completed the setup for PR previews, you can check it in https://github.com/python/docs-community/pull/37 :)


Structure of (non)personal contacts

Continuing the discussion in (the now closed) https://github.com/erasmus-without-paper/ewp-specs-api-institutions/issues/8:

I think personal and non-personal contacts should be structurally different

You may be right. This is one of the issues I have delayed on purpose, because I'm still thinking about it. On one hand, clients might simply display all the contacts to the viewer (in this case, having one abstract contact "view" might be enough). On the other hand, other clients might want to store them to their databases (in this case, we need more precise structure). We will come back to this.

Ok. Maybe an attribute could differentiate?

It depends. If it turns out that this information has to be stored by the client in an actual PERSON table, then attribute might not be enough (we might need separate first name and last name fields).

This also touches another discussion we had about fact sheets, where the conclusion was that they should always be PDF URLs, to avoid security problems. Doesn't this apply to (at least non-personal) contacts as well, @wrygiel ?

This also touches another discussion we had about fact sheets, where the conclusion was that they should always be PDF URLs, to avoid security problems. Doesn't this apply to (at least non-personal) contacts as well, @wrygiel ?

It doesn't. Security issues we talked about in fact-sheets were related to displaying foreign (and possibly malicious) HTML in local web pages. The <contact> element does not allow HTML in any of the fields, so there are no such concerns here.

Ok. But are you any closer to concluding on the structure of non-personal contacts?
As it is, they are not included in the model.

But are you any closer to concluding on the structure of non-personal contacts?

You mean "how certain am I that XSDs won't change"?

But are you any closer to concluding on the structure of non-personal contacts?

You mean "how certain am I that XSDs won't change"?

No, I mean "do you have a suggestion or tentative conclusion"?

I'm not sure if I understand your question, but currently the XSDs use abstract contacts only. I'm quite certain that we need both personal and non-personal ones in the model, but both of them are currently represented using the same abstract view in XSD.
Of course, we can add more fields to this abstract view, allowing the reader to easily detect programmatically if the contact is personal or not - is this what you're missing?

After some thought, I have renamed the Coordinator entity to Contact/Fact Sheet, and generalized it to include both personal and non-personal contacts, as well as fact sheet information. I think this solves the problem, and it also obviates all the Address and URL attributes that have been cluttering up the diagram.
Posting a new version of the model soon...


traefik controller access to secrets

The traefik controller shall have access to secrets for the k8s basic authentication (#1488) to work

I wonder if we should formulate this in a more conditional manner. Presumably, secrets access will only be required by those that actually use basic authentication?

Answering myself:

I wonder if we should formulate this in a more conditional manner. Presumably, secrets access will only be required by those that actually use basic authentication?

Sadly, Traefik does not conditionally watch for secrets as of now. See also #1784.
So this one seems okay.


[6.5.x] RHBPMS-4413: DRL file with spaces in name fails first validation

See https://issues.jboss.org/browse/RHBPMS-4413

Before:

After:

The buildChanges method from the KieBuilderSetImpl was failing because this validation had a false negative due to this comparison.

@Rikkola @mariofusco Could you please review this?

+1, but maybe @mariofusco wants to take a look too since this is in drools.


Gonzales 3.2 - Fix placeholder-in-extend rule

Fixes the placeholder-in-extend rule to work with the latest version of gonzales.
Note: Travis will fail as there are broken tests on gonzales-3-develop branch. Verify by checking placeholder-in-extend rule test success.
DCO 1.1 Signed-off-by: Ben Griffith<EMAIL_ADDRESS>

:+1:


setCurrentDate() makes app no respond

when my calendar focus at 23 July,I use setSelectedDate(CalendarDay.today()) and setCurrentDate(CalendarDay.today()) to return today and set viewpager return to current month.
But I found setCurrentDate() will makes app no respond,if my target month is not current month.
And if I use old version library,there is no such problem.What should I do？Is my usage wrong?

sry,it cause by myself,I called setCurrentDate in setOnMonthChangedListener that caused a loop


Add device to compatibility list

Hello, just wanted to tell you that with firmware 3.5.0 the device Sonoff G1 works like a charm only specifying
sonoff:
user: email
pass: pass

Thanks!

Thanks!


Novel way of GPU computing

Hello All,
Please Checkout our Novel way of GPU computing at: https://www.vivid-sparks.com/
Many Thanks!

Does it run OpenCL? Can you present a demo OpenCL program with timings running on your hardware?

Currently, it only supports CUDA Lite programming model


Is there a way to index within a decision variable array with another local decision variable in Or-tools Sat

Hi,
I have implemented a CSP model in minizinc that uses a local decision variable in order to index within another decision variable array. This works well once the flatzinc file is generated by minizinc and solved with fzn-or-tools using the sat solver flag.
I have been trying to implement the same work within python using your sat-python library and I was wondering how that might be possible or even possible at all?
Here is a simple example implementation in minizinc that works perfectly with fzn-or-tools once flattened with mzn2fzn:
array[1..3] of var 1..3: K;
var 1..3:dummy;
constraint let{ array[1..3] of var bool: B;
                     constraint forall (i in 1..3)(
                                    if dummy > 1 then
                                    B[i] = true else
                                    B[i]= false endif);
                    } in K[sum(i in 1..3)(B[i])] = 1;
solve satisfy;

Thanks alot,
Hooman

Array var int element is supported in CP-SAT. See element in the proto, AddElement in python and C#, addElement in java.


Upgrade to 0.4.0-build179 failed

This is my file

import org.jetbrains.compose.compose
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    kotlin("jvm") version "1.4.20"
    id("org.jetbrains.compose") version "0.4.0-build179"
}

group = "me.eee"
version = "1.0"

repositories {
    jcenter()
    mavenCentral()
    maven { url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") }
}

dependencies {
    testImplementation(kotlin("test-junit5"))
    testImplementation("org.junit.jupiter:junit-jupiter-api:5.6.0")
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.6.0")
    implementation(compose.desktop.currentOs)
}

tasks.test {
    useJUnitPlatform()
}

tasks.withType<KotlinCompile>() {
    kotlinOptions.jvmTarget = "11"
}

compose.desktop {
    application {
        mainClass = "MainKt"
        nativeDistributions {
            targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
            packageName = "dd_shop_desktop"
        }
    }
}

error
A problem occurred configuring root project 'dd_shop_desktop'.
> * Illegal version for 'Msi': '1.0' is not a valid version.
    * Correct format: 'MAJOR.MINOR.BUILD', where:
      * MAJOR is a non-negative integer with a maximum value of 255;
      * MINOR is a non-negative integer with a maximum value of 255;
      * BUILD is a non-negative integer with a maximum value of 65535;
    * You can specify the correct version using DSL properties: nativeDistributions.windows.msiPackageVersion, nativeDistributions.windows.packageVersion, nativeDistributions.packageVersion

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

update version = "1.0" to version = "1.0.0" Solved my problem

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.