Implemented data-bindable Position property for MediaElement

Description of Change
Position property now regularly reports change events while media is playing. Uses internal timer and supports arbitrary seeking. Also added a TimeSpanToDoubleConverter to allow controls such as Slider which use a double value to be bound to the TimeSpan properties.
Bugs Fixed

Fixes #330

API Changes
MediaElement - None
Added:
Xamarin.CommunityToolkit.Converters.TimeSpanToDoubleConverter
Behavioral Changes
Position property now reports value changes on an internal timer (200ms) to allow controls to be data-bound to the live value - e.g. slider control without having to implement a Timer and additional code.
PR Checklist

[ ] Has tests (if omitted, state reason in description)
[X] Has samples (if omitted, state reason in description)
[ ] Rebased on top of main at time of PR
[X] Changes adhere to coding standard

Rebased on top of mediaelement branch because that contains the latest work on the control.

@peterfoot thanks for your contribution. Can you rebase your branch against the MediaElement branch? Your changes are unding all work done in #342

Whoa. Not sure why this got closed without merging. I think the changes came in alright? @pictos @peterfoot could you please check what of your changes has gone into main and if everything seems in order?

@jfversluis nope, none of my changes made it. What happens now, do I start again against the main branch? 😢

Sorry about that! :( I guess whenever the target branch is merged it will automatically close open PRs against it.
If you would be willing and able to do that, that would be awesome <3

@jfversluis cool, I've created a new PR #381 against the main branch with the required changes.


Add on-demand jwt credentials

jwt.Credentials only works for a single audience at a time and must have knowledge of the audience beforehand. gRPC APIs, however, may not be able to determine the audience beforehand so JWTs should be generated on-demand during the before_request callback.
We previously had this behavior as part of jwt.Credentials, but it was removed because it made the behavior of the class ambiguous. This feature request is to bring that functionality back as a separate class jwt.OnDemandCredentials.
This class:

Doesn't accept an audience argument in its constructor.
Can be created from existing credentials using from_signing_credentials.
Holds a cache of JWTs for specific audiences using cachetools.LRUCache.
Generates a new JWT for the specific audience in before_request or uses an existing cached JWT.
Is always valid and never expires but never has a token.

Context.
@dhermes @lukesneeringer any concerns about the name or dependency on cachetools?
@jboeuf any concerns on the behavior here?

@jonparrott That looks about right to me. I assume that the from_signing_credentials class method for this new class would not take an audience parameter just like the constructor. Thanks!

I assume that the from_signing_credentials class method for this new class would not take an audience parameter just like the constructor.

correct.
@jboeuf is there any external (or internal) documentation you can share with me on this behavior? one of my biggest goals with this library is that it's well-researched and documented with references. Anything helps.

Would this work?
https://github.com/grpc/grpc/blob/master/doc/load-balancing.md
It explains how load balancing works on how the client opens different
connections to the balancers and to the backends but is not very specific
about the credentials story.
On Wed, Mar 22, 2017 at 4:30 PM, Jon Wayne Parrott<EMAIL_ADDRESS>
wrote:

I assume that the from_signing_credentials class method for this new class
would not take an audience parameter just like the constructor.
correct.
@jboeuf https://github.com/jboeuf is there any external (or internal)
documentation you can share with me on this behavior? one of my biggest
goals with this library is that it's well-researched and documented with
references. Anything helps.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/google-auth-library-python/issues/136#issuecomment-288571400,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-P7QtmpWOcTmdl31KUf6araWvgqMLmks5roa8DgaJpZM4MkwMQ
.

@jboeuf this helps but i was specifically talking about the auth metadata callback stuff.

Ah, OK.
This
http://www.grpc.io/docs/guides/auth.html#extending-grpc-to-support-other-authentication-mechanisms
documents the C++ interface but you have a similar one in python which is
not documented here.
This issue tracked the python implementation:
https://github.com/grpc/grpc/issues/3908
On Wed, Mar 22, 2017 at 5:05 PM, Jon Wayne Parrott<EMAIL_ADDRESS>
wrote:

@jboeuf https://github.com/jboeuf this helps but i was specifically
talking about the auth metadata callback stuff.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/google-auth-library-python/issues/136#issuecomment-288577412,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-P7f9Rw8EX-qrZmpCrJyE6U6AXGuE8ks5robdegaJpZM4MkwMQ
.

Thanks!
On Wed, Mar 22, 2017, 10:20 PM jboeuf<EMAIL_ADDRESS>wrote:

Ah, OK.
This
http://www.grpc.io/docs/guides/auth.html#extending-grpc-to-support-other-authentication-mechanisms
documents the C++ interface but you have a similar one in python which is
not documented here.
This issue tracked the python implementation:
https://github.com/grpc/grpc/issues/3908
On Wed, Mar 22, 2017 at 5:05 PM, Jon Wayne Parrott <
<EMAIL_ADDRESS>
wrote:

@jboeuf https://github.com/jboeuf this helps but i was specifically
talking about the auth metadata callback stuff.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<
https://github.com/GoogleCloudPlatform/google-auth-library-python/issues/136#issuecomment-288577412
,
or mute the thread
<
https://github.com/notifications/unsubscribe-auth/AF-P7f9Rw8EX-qrZmpCrJyE6U6AXGuE8ks5robdegaJpZM4MkwMQ
.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/google-auth-library-python/issues/136#issuecomment-288620245,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPUc2TnN5_pcB9csMwR0lmw4Ilyv9IHks5rogEagaJpZM4MkwMQ
.


cleanup-plugin: Add initial plugin

Awaits some cleanup in the editor-api packaage and then a dependency bump.

I think you need to update the prettier glob in the root package.json, and run prettier


CO-2371_Identifier_filter_on_My_Population_page_returns_duplicate_results

Remove MyPopulation search duplicates when a search for partial attribute value fetches the same result more than once

I see no issue with this from a UI perspective, and the pagination behaves as it should.

I think this is good enough for now, but I'd probably aim for a more generalized solution in PE.


Duplicate workflow and (probably) activity registrations panic

@johncburns1: I'm seeing this panic when registering a workflow that is already registered:
Neon.Cadence.CadenceCustomException : Panic: workflow name "TestCadence.Test_MultiClient.WorkflowWithResult1" is already registered
    MessageType: WorkflowRegisterRequest, RequestId: 18.
    goroutine 5025 [running]:
    runtime/debug.Stack(0xc0002ebce0, 0x12, 0x17)
    	C:/Go/src/runtime/debug/stack.go:24 +0xa4
    github.com/cadence-proxy/internal/endpoints.handleIProxyRequest.func1(0xf5db40, 0xc0000b6198, 0xc00042dbc0, 0xc00042dcc0)
    	C:/src/neonKUBE/Go/src/github.com/cadence-proxy/internal/endpoints/message.go:156 +0x11d
    panic(0xcc0640, 0xc000567210)
    	C:/Go/src/runtime/panic.go:522 +0x1c3
    github.com/cadence-proxy/vendor/go.uber.org/cadence/internal.RegisterWorkflowWithOptions(0xccb8c0, 0xc0002dcf60, 0xc00059e7b0, 0x30)
    	C:/src/neonKUBE/Go/src/github.com/cadence-proxy/vendor/go.uber.org/cadence/internal/workflow.go:255 +0x83
    github.com/cadence-proxy/vendor/go.uber.org/cadence/workflow.RegisterWithOptions(...)
    	C:/src/neonKUBE/Go/src/github.com/cadence-proxy/vendor/go.uber.org/cadence/workflow/workflow.go:95
    github.com/cadence-proxy/internal/endpoints.handleWorkflowRegisterRequest(0xf4b000, 0xc00008a130, 0xc0000b6198, 0xc0000b6198, 0xc0003f7bc0)
    	C:/src/neonKUBE/Go/src/github.com/cadence-proxy/internal/endpoints/request_handlers.go:503 +0x457
    github.com/cadence-proxy/internal/endpoints.handleIProxyRequest(0xf5db40, 0xc0000b6198, 0x0, 0x0)
    	C:/src/neonKUBE/Go/src/github.com/cadence-proxy/internal/endpoints/message.go:269 +0xd1d
    github.com/cadence-proxy/internal/endpoints.processIncomingMessage(0xf58500, 0xc0000b6198, 0xc00055c840)
    	C:/src/neonKUBE/Go/src/github.com/cadence-proxy/internal/endpoints/message.go:120 +0xed
    created by github.com/cadence-proxy/internal/endpoints.MessageHandler
    	C:/src/neonKUBE/Go/src/github.com/cadence-proxy/internal/endpoints/message.go:72 +0x165

This is a problem for us because stopping a worker with registrations doesn't seem to actually unregister the workflow and activity registrations.  So this series of operations fails:

Establish Cadence connection A
Register a workflow on A
Start a worker on A
Stop the A worker
Dispose connection A
Establish a new connection B
Register the same workflow on B

Step 7 fails with the error above.
I wonder if it's possible for you to catch and ignore these duplicate registration panics for workflows and activities.
Not a huge priority

Turns out this has a fairly high priority after all.  I've temporarily hacked the .NET side to ignore these errors but it would be better if you did this on the GOLANG side because you're more tightly coupled to the GO Cadence client.
Assign this back to me when this is done and I'll remove the hack from the .NET Client.

Just completed the fix for this.  Made a wrapper for the workflow.Register and activity.Register methods that catches panics and checks to see if the error contains the string "already registered".  If so then it ignore is, if not then panics the error again, which will trigger a panic response back to the .NET client.


with official pretrained model, i train a classification for 100 epochs, but find nothing record-file.

this really confuses me. it means i can only view training process through a not closed bash. right?

emmm, i was just wonder after getting mode_best.pth.tar, how can i evaluate again


README please

I found this repo from https://github.com/concourse/concourse/blob/master/ci/scripts/testflight#L29 but unsure what to expect it to do; how I might use it myself etc.

Added a basic one for starters.


Add nanoseconds to IsoDuration (and thus to IsoInterval)

Allows user to specify nanoseconds in ISO 8601 intervals, and to use them in Add() and Sub() operations as well.
To specify in string:
P3D4H5M6.000000001S

This PR also implements Display for IsoDuration, displaying nanoseconds in the above format.
I want to use this crate as the basis for an Interval type in Nushell.  It currently has a Duration type, which cannot add months or years to a date accurately.

Thanks for the contribution! Merged.


[4.2] Make upperBound != 0 a precondition for RNG.next(upperBound:) (#17627)

The function's definition is "Returns a random value that is less than the given upper bound," which cannot possibly be satisfied with upperBound == 0; previously the function returned zero, which was a bug.
Resolves SR-8143.
Explanation: Without this change, RNG.next(upperBound: bound) can return a value that does not satisfy the invariant bound < upperBound.
Scope: Minor, but we want to be able to guarantee this invariant holds.
Issue #: https://bugs.swift.org/browse/SR-8143
Risk: Very low.
Testing: Standard regression tests. Random is a new feature, and this only fixes an error case.
Reviewer: @lorentey

@swift-ci Please test

@swift-ci nominate


Failing to build the docker container (Example)

Getting some strange error when building the Docker image

Think the problem is in this line:
https://github.com/GoogleChromeLabs/lighthousebot/blob/master/builder/Dockerfile#L9
Has the location changed? http://dl.google.com/linux/chrome/deb/?

Just had a look around and this seems to fix the issue:
For anybody else interested:
https://github.com/boyney123/garie-lighthouse/blob/4c3aa1b4d68f7c3d89ba6c86a6318ca4f4229ae0/Dockerfile#L12


Feat: Add icons in Get in Touch Section.

Describe the feature
I want to add icon on form in "Get in Touch" section.
Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

I refork my repo that close all my previous commits.
Please reopen this issue once.
I have code ready.

Please help.


Array type with windowing like functionality?

Not sure if windowing is the right analogy.  I was reading through notes on a recent merge in DuckDB and saw potentially some useful ideas that might be added to OjG to optimize on nested data through Arrays.  I am not sure of what or all of the capabilities listed in the merge therein but wanted to use this issue to ask the question of "any useful ideas here that OjG can incorporate or in the future?"
Helping OjG becoming even faster with nested data.
https://github.com/duckdb/duckdb/pull/8983

This is probably more of a discussion item but I'll take a look.

You can convert it to a discussion indeed.  GitHub has a way to do that now I think.


GenRustJets: add FromStr and Display impl for jet enums

I would like to be able to round-trip these jets with a nice string serialization. The snake-case version of the names will do well.

Tested with rust-simplicity to confirm that the resultring code compiles (after adding a new error variant and removing the existing Display impl which forwards to Debug).

While I admit that the existing code is not up to to par, I do suggest the following implementation as better:
rustJetDisplay :: Module -> Doc a
rustJetDisplay mod =
  "impl fmt::Display for" <+> pretty modname <+>
    nestBraces ("fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result" <+>
      nestBraces ("match self" <+>
        nestBraces (vsep (
          map (<>comma)
            [ pretty modname <> "::" <> pretty (jetName jet) <+> "=> f.write_str" <> (parens . dquotes . pretty $ cJetName jet)
            | SomeArrow jet <- moduleJets mod
            ]))
      )
    )
 where
  modname = rustModuleName mod

rustJetFromStr :: Module -> Doc a
rustJetFromStr mod =
  "impl str::FromStr for" <+> pretty modname <+>
    nestBraces (vsep
    [ "type Err = Error;"
    , mempty
    , ("fn from_str(s: &str) -> Result<Self, Error>" <+>
        nestBraces ("match s" <+>
          nestBraces (vsep (
            map (<> comma)
              ([ dquotes (pretty (cJetName jet)) <+> "=> Ok" <> parens (pretty modname <> "::" <> pretty (jetName jet))
               | SomeArrow jet <- moduleJets mod
               ] ++ [ "x => Err(Error::InvalidJetName(x.to_owned()))" ]
              )))
      ))
    ])
 where
  modname = rustModuleName mod

With
import Prettyprinter ( Doc, (<+>), braces, comma, dquotes, fillSep, line, nest, parens, pretty, punctuate, semi, tupled, vsep

Thanks! That looks way better.

@roconnor-blockstream ok force-pushed to use your code


Test suite build failure on GHC 7.10

Resolving dependencies...
Configuring hdocs-<IP_ADDRESS>...
Building hdocs-<IP_ADDRESS>...
Preprocessing library hdocs-<IP_ADDRESS>...
[1 of 3] Compiling HDocs.Base       ( src/HDocs/Base.hs, dist/build/HDocs/Base.o )
[2 of 3] Compiling HDocs.Haddock    ( src/HDocs/Haddock.hs, dist/build/HDocs/Haddock.o )
[3 of 3] Compiling HDocs.Module     ( src/HDocs/Module.hs, dist/build/HDocs/Module.o )
In-place registering hdocs-<IP_ADDRESS>...
Preprocessing executable 'hdocs' for hdocs-<IP_ADDRESS>...
[1 of 1] Compiling Main             ( tools/hdocs.hs, dist/build/hdocs/hdocs-tmp/Main.o )
Linking dist/build/hdocs/hdocs ...
Preprocessing test suite 'test' for hdocs-<IP_ADDRESS>...
[1 of 1] Compiling Main             ( tests/Test.hs, dist/build/test/test-tmp/Main.o )

tests/Test.hs:19:26:
    Couldn't match type ‘transformers-<IP_ADDRESS>:Control.Monad.Trans.Except.ExceptT
                           String IO’
                   with ‘ErrorT String IO’
    Expected type: ErrorT String IO (M.Map String String)
      Actual type: transformers-<IP_ADDRESS>:Control.Monad.Trans.Except.ExceptT
                     String IO (M.Map String String)
    In a stmt of a 'do' block:
      sdocs <- fmt $ liftM snd $ readSource [] "tests/HelpTest.hs"
    In the expression:
      do { sdocs <- fmt $ liftM snd $ readSource [] "tests/HelpTest.hs";
           check
             "Documentation for file: Test.hs, test"
             (M.lookup "test" sdocs
              == Just "This is test function with documentation");
           edocs <- fmt $ moduleDocs [] "Prelude";
           check
             "Documentation for installed module: Prelude.null"
             (M.lookup "null" edocs == Just "Test whether a list is empty.") }
    In an equation for ‘main'’:
        main'
          = do { sdocs <- fmt
                          $ liftM snd $ readSource [] "tests/HelpTest.hs";
                 check
                   "Documentation for file: Test.hs, test"
                   (M.lookup "test" sdocs
                    == Just "This is test function with documentation");
                 edocs <- fmt $ moduleDocs [] "Prelude";
                 .... }
          where
              check str p = unless p $ throwError str
              fmt = liftM formatDocs

tests/Test.hs:22:26:
    Couldn't match expected type ‘ErrorT
                                    String IO (M.Map [Char] [Char])’
                with actual type ‘transformers-<IP_ADDRESS>:Control.Monad.Trans.Except.ExceptT
                                    String IO (M.Map String String)’
    In a stmt of a 'do' block: edocs <- fmt $ moduleDocs [] "Prelude"
    In the expression:
      do { sdocs <- fmt $ liftM snd $ readSource [] "tests/HelpTest.hs";
           check
             "Documentation for file: Test.hs, test"
             (M.lookup "test" sdocs
              == Just "This is test function with documentation");
           edocs <- fmt $ moduleDocs [] "Prelude";
           check
             "Documentation for installed module: Prelude.null"
             (M.lookup "null" edocs == Just "Test whether a list is empty.") }
    In an equation for ‘main'’:
        main'
          = do { sdocs <- fmt
                          $ liftM snd $ readSource [] "tests/HelpTest.hs";
                 check
                   "Documentation for file: Test.hs, test"
                   (M.lookup "test" sdocs
                    == Just "This is test function with documentation");
                 edocs <- fmt $ moduleDocs [] "Prelude";
                 .... }
          where
              check str p = unless p $ throwError str
              fmt = liftM formatDocs

Thanks. I'll fix it this evening

Fixed with https://github.com/mvoidex/hdocs/commit/1c434f1eb3829a598a5da9fd89073efa4372b5d1


Any objection to changing the file structure...

I'd like to rename the src folders 'lib' and rename the test folder to 'spec' to more closely match the bitcore codebase. Also, is 'examples' needed anymore? Could/Should we implement a test class for BlockchainSpv instead?

ACK, let's rename both.
Examples is outdated (we can rm it for now), in the future I'd like to add some, in order to have them for README.md as well.


DATAJDBC-454 - Redesigned events

Ids are only contained if it can not be guaranteed that an entity is contained which applies to the delete events.
As a side effect Idnetifier got simplified into a single simple class.
Issue: https://jira.spring.io/browse/DATAJDBC-454

That's merged and polished now.


Mh 13617 Duplicate encoding profiles for PrepareAV/SelectStreams

PrepareAV and SelectStreams share a number of encoding profiles, including that for muxing audio and video. Considering that these WOH serve different purposes, an independent configuration could be desired. This PR allows this by duplicating the encoding profiles, which also allows a correct format to be set (work vs. prepared).
Be aware that his PR also contains #956!
This work was sponsored by SWITCH.

@KatrinIhler Looks good, conflicts.  Looking at the file, it also looks like the defaults are set and uncommented.  These should be commented out, but left default :)

@gregorydlogan This was because the other included PR is now merged. Fixed!


Low level interceptor with shared context

Hello,
I'm trying to migrate to Unirest 4 and replace my previous interceptor logic based on Apache Http Client (leveraging HttpRequestInterceptor and HttpResponseInterceptor).
I have followed your suggestion to use the Unirest interceptor implementation. While I was able to succeed, I had to go around important drawbacks that I would like to address here and see if there can be any improvement made to the lib:

The Apache interceptors provide an HttpContext instance in the interceptor methods. This allows to pass some context around between the request and the response interceptors. In my case I needed to pass a unique identifier that is critical for logging. Unfortunately, I couldn't find an easy way to do this with the current Unirest implementation. My solution was a bit "hacky" as I had to add a header to the request and parse the request summary with a regex in the response interceptor. It's probably bad for performances not to count that a useless header is sent to the destination of the call.

The body provided in the response interceptor is already deserialized into a java object (by the object mapper) from the raw json response. In my case I want to log the body so I have to convert the object back to a string while taking multiple precautions about the object instance type. It would be much simpler if I could simply log the original raw response. I noticed an attribute "rawBody" but it's null, not sure if this is a bug or not but I could have probably used it if it was working.
I had a similar issue with the request where the body gets parsed into a "UnibodyString" that I need to dive into to find my original json body as a string. In this case there is no "rawBody" attribute. All in all I just need a "low level" interceptor to see what is going out and what is sent back as response with as minimal processing / interfering as possible in the middle.

I hope you can consider these issues and address them in a future version of the lib. If you have better suggestions / workarounds, I'm also willing to listen :)
Thanks a lot,

On a shared context:
I think adding the headers explicitly on the RequestSummary is reasonable. Would that fix this for you? Then you don't have a to parse them from the toString(). a explicit context for a request would be a lot more complicated and change a lot of signatures.
On the body
The body was originally a InputStream, and as such, can only be read once. It also may not even BE a string (binary data like Files, or Protobufs). If you want to deal with the lowest level you would need to end with asString() and then map the body later to JSON later. I have thought about adding a setting that would let all responses exist as both the mapped response and as a copy of the InputStream or as a String, however this is very dangerous and if some people turned it on would easily result in OOM errors as the response is too big.

Thanks for the quick reply,
Having the headers on the RequestSummary seems like a good compromise. I would still send a useless header but at least I don't have to do the regex parsing. I do understand the constraint of having to modify the signatures not a problem. Although I wonder if it would be possible to add a context map similar to the Apache HttpContext to the RequestSummary. That way you don't expose the headers of the request in the response interceptor and the context map remains separated from the headers (in the end it does serve a different purpose). The only downside I see with this solution is that it seems that the RequestSummary has been implemented to be rather "read-only" and it might be a bit awkward to make it updatable from the request interceptor.
Regarding the body, yes I've had my fair share of issues as well on that topic with the different types of interceptors of the Java world. Usually the body can only be read once but sometimes the InputStream is "markable" (markSupported) and you can reset the read marker so that it can be read twice. Other times that was not possible but with some tricks I was able to create a new response and "re" set it after reading the original one. I understand this limitation, it is probably set to avoid impacting performances but in our case we only use this for debug purposes... Regarding the body being too big, or being binary content I would check the content type and set a maximum configurable body size after which I truncate the content. Having a default limit prevents unaware users of the code from reaching memory limits and having configuration allows to be flexible and think well about the adequate number. Finally, if the content type is not text, I would just print "[NON TEXT FORMAT]" in the logs.
To wrap things up, I would very much appreciate if at minimum you could make a copy of the InputStream somehow safely available, although I would dream of a lib that can handle all the issues mentioned above ;-)
There's of course no pressure on the matter, since I do have a workaround at the moment. Let's just say it's the raw expression of a need, food for thoughts that could lead to a useful feature in the future.

headers are exposed on the Summary.

Thank you for the quick implementation.
Unfortunately, it does not seem to work as expected. I do get the original request headers but not the one I have added manually.
If I print httpResponse.getRequestSummary().asString() my header is visible in the generated string but if I call httpResponse.getRequestSummary().getHeaders(), my header is not part of the result collection.

Where did you add the header? I have a test here  https://github.com/Kong/unirest-java/blob/24dff3f4459cc033dd5d4262c1a86acc0a84c275/unirest-bdd-tests/src/test/java/BehaviorTests/HeaderTest.java#L408-L423
how is what you are doing different from that?

In the onRequest function of the interceptor, I add a header, for example: httpRequest.getHeaders().add(key, value).
Then in the onResponse function of the interceptor, I fetch the header: httpResponse.getRequestSummary().getHeaders()
I guess the difference with your test is that you don't add the headers in the context of an interceptor. In my case, I also get the headers that were added prior to the interceptor.

I have a fix but Maven Central  is having issues again, I'll try later

No worries, thanks a lot for the fix.

It finally went though with a few other things. see 4.1.0

Thank you, the fix is working, I can now get the header!


getLocalTimeDifference API not present in master branch

It seems that the getLocalTimeDifference API is not present in the master branch of Cardano-sl.
I have been building two different versions of Cardano-SL (official) and (fork).
With the official build Daedalus wallet always stuck at 100.00% syncing while with the fork the wallet runs nice and has been restored. The difference between the two builds it the getLocalTimeDifference API
Running the API on the official build:

root@43e7e58b48fa:/etc/ssl/certs# curl --cacert ca.crt -v https://localhost:8090/api/settings/time/difference
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to localhost (<IP_ADDRESS>) port 8090 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: ca.crt
  CApath: /etc/ssl/certs
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: DC=io; DC=iohk; O=Input Output HK; OU=Cardano Settlement Layer Server Node; CN=localhost
*  start date: Jul 19 17:31:34 2017 GMT
*  expire date: Jul 19 17:31:34 2027 GMT
*  common name: localhost (matched)
*  issuer: DC=io; DC=iohk; O=Input Output HK; OU=Daedalus Self-Signed Root CA; CN=Daedalus Self-Signed Root CA
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x7fee84964da0)
> GET /api/settings/time/difference HTTP/1.1
> Host: localhost:8090
> User-Agent: curl/7.52.1
> Accept: */*
>
* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
< HTTP/2 404
< date: Thu, 28 Dec 2017 13:31:50 GMT
< server: Warp/3.2.13
<
* Curl_http_done: called premature == 0
* Connection #0 to host localhost left intact

Running the API on the fork build:

root@50480d1625b2:/etc/ssl/certs# curl --cacert ca.crt -v https://localhost:8090/api/settings/time/difference
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to localhost (<IP_ADDRESS>) port 8090 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: ca.crt
  CApath: /etc/ssl/certs
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: DC=io; DC=iohk; O=Input Output HK; OU=Cardano Settlement Layer Server Node; CN=localhost
*  start date: Jul 19 17:31:34 2017 GMT
*  expire date: Jul 19 17:31:34 2027 GMT
*  common name: localhost (matched)
*  issuer: DC=io; DC=iohk; O=Input Output HK; OU=Daedalus Self-Signed Root CA; CN=Daedalus Self-Signed Root CA
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x7f39e3b61da0)
> GET /api/settings/time/difference HTTP/1.1
> Host: localhost:8090
> User-Agent: curl/7.52.1
> Accept: */*
>
* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
< HTTP/2 200
< date: Thu, 28 Dec 2017 13:43:09 GMT
< server: Warp/3.2.13
< content-type: application/json;charset=utf-8
<
* Curl_http_done: called premature == 0
* Connection #0 to host localhost left intact

The difference is subtle but fatal: the official build returns 404 (Not Found) while the fork build returns 200 (OK) and as a consequence Daedalus is stuck on syncing at 100% (see discussion)
Is this a know issue? Which branch should be used to build the node? cardano-sl-1.0 is not there anymore:

root@43e7e58b48fa:/home/zmeel/cardano-sl# git checkout cardano-sl-1.0
error: pathspec 'cardano-sl-1.0' did not match any file(s) known to git.

Try using a267ae05daaf3947fe679eac56d1257a8775b27b revision of daedalus and master of cardano-sl. Those are last released versions.

@gromakovsky I have build from master of cardano-sl. The getLocalTimeDifference API is not in master.  Is daedalus revision a267ae05daaf3947fe679eac56d1257a8775b27b not expecting this API?

getLocalTimeDifference API is a new feature which hasn't been released yet.
a267ae05daaf3947fe679eac56d1257a8775b27b shouldn't expect this API.

Oke, thanks! I will give it a try.
Maybe you guys should clearify in the build instructions which versions should be build. Now it is suggested to build cardano-sl-1.0 which does not exist anymore. The build instruction for Daedalus do not specify any branch and therefore I have build from master which is not the correct branch.

Good catch, thank you, I will ask to update the instruction.
Daedalus should migrate to GitFlow soon and then master will be the right branch to use. Currently there is a bit of mess with branches, unfortunately.

#2186

I can confirm that building Daedalus revision a267ae05daaf3947fe679eac56d1257a8775b27b and cardano-sl master build fine and wallet is restoring...

Okay, so does everything work for you now? Can we close this issue?

Yes. You can close this issue.


Receiving 404 Error for links containing parenthesis.

When using queueURL() and providing a link containing '()' simple crawler responds with a 404.

This could be an issue with escaping. Would you mind posting the code you're using to queue the URL?

Sorry for the delayed response. I agree and think that it has to do something with how characters are being escaped. Here is an example of how I am using the crawler.
var crawler = new Crawler();

crawler.host = "localhost";

crawler.queueURL("http://localhost:8080/paren-(example).html");

crawler
    .on("fetch404", function (queueItem) {
        console.log(queueItem);
    })
    .on("fetcherror", function (queueItem) {
        console.log(queueItem);
    })
    .on("fetchcomplete", function (queueItem) {
        console.log(queueItem);
    })
    .on("complete", function () {
        done();
    })
    .start();

Below is the results of the console log.
{ url: 'http://localhost:8080/paren-%28example%29.html',
  protocol: 'http',
  host: 'localhost',
  port: '8080',
  path: '/paren-%28example%29.html',
  depth: 2,
  fetched: true,
  status: 'notfound',
  stateData:
   { requestLatency: 210,
     requestTime: 210,
     contentLength: 45495,
     contentType: 'text/html; charset=utf-8',
     code: 404,
     headers:
      { 'content-security-policy-report-only': 'default-src https: \'unsafe-inline\' \'unsafe-eval\'',
        'x-content-security-policy-report-only': 'default-src https: \'unsafe-inline\' \'unsafe-eval\'',
        'x-frame-options': 'DENY',
        'x-xss-protection': '1; mode=block',
        'x-content-type-options': 'nosniff',
        'cache-control': 'no-cache, no-store, max-age=0, must-revalidate',
        'surrogate-control': 'no-cache, no-store, max-age=0, must-revalidate',
        'content-type': 'text/html; charset=utf-8',
        'content-length': '45495',
        etag: 'W/"b1b7-4p288R2BaF5nAThyGYwBzw"',
        date: 'Mon, 30 Nov 2015 20:53:21 GMT',
        connection: 'close' } },
  referrer: null }

Please let me know if you need anything else.

What server are you using? It seems like it doesn't understand the escaping — the URL appears correctly escaped for transport in the queue snippet you've posted.

We user express 4.X for our server along with an internal tool to help with handlebars. Sorry for the late response I have been trying to determine if it is some in either of those tools with no luck.
I started reading about URLs and found that parens are an un-reserved character and do not nee to be escaped. what-every-developer-should-know-about-urls Which lead me to look at how you are escaping the character in the URL. I found that in processURL you have this try/catch. If I commented out normalize() then it leaves the parens alone, which fixes the problem. I realize that you may have the normalize there for another reason I don't yet understand, but I wonder if it were made optional or if you were to use encodeURIComponet() if that wouldn't be just as good for simplecrawler.
try {
        newURL =
            uri(URL)
                .absoluteTo(context.url);
                // .normalize();

        if (crawler.urlEncoding === "iso8859") {
            newURL = newURL.iso8859();
        }

    } catch (e) {
        // Couldn't process the URL, since URIjs choked on it.
        return false;
    }

Ah, good catch. Sounds like a bug with URIjs. I'll first try updating the dependency and seeing if they've fixed it — otherwise we should probably raise a bug over there.

It also sounds like there could be a parallel bug in node's URL parsing. I'm surprised I never saw this before. What version of node is it?

Right now we are on Node 0.12 but we are in the process of moving to 4.X.

RFC 3986 actually claims parens as reserved characters, and AFAICT that's the latest standard. This seems to be an error in the article you linked that others have pointed out as well.
I actually did not find that removing the normalize call prevented the parens from being encoded. This was my test case:
it("should not escape parens in URL's", function () {

    var links =
        discover("Link");

    links.should.be.an("array");
    links.length.should.equal(1);
    links[0].should.equal("https://example.com/section(name)");
});

Maybe this is an error with your server somehow?

@Roninnanaki did you track down the cause of this problem? It doesn't seem to lie with URI.js (which is what simplecrawler relies on for the URL encoding)

@fredrikekelund I think that you maybe right about the server. Or it could be one of our other services that feed us the URLs. I did read that in the RFC 3986, my bad for not posting an update. Though at the time I was working on it once I comment the normalize() call our implementation of the crawler had no problem with the urls. At this point I no longer an on that project and won't be investigating any longer. As this was only an issue that I found in my teams situation I will close the issue. Thank you for all of your help and investigation.


Update instream video ad demo documentation

Description
This PR updates the following in the instream video ad demo documentation:

Remove incorrect information about how deprecatedReplaceInURN() can be used to substitute the domain
Add links to the full-sized sequence diagrams

pre-commit.ci autofix


Polish the English in the documentation

Hi!
Awesome library - I've been using it in a project and it does exactly what I want without any fuss - thanks for making it! :+1: from me.
I've polished the English a bit in the documentation - I haven't changed the meaning, just made it read better.
Is README.md generated automatically from the root doc comment or should I update it manually?
Cheers!
-- Kneasle

Thanks.

Is README.md generated automatically from the root doc comment or should I update it manually?

Yes. I'm using cargo readme > README.md (cargo-readme). But you can do the same manually, I guess.

Cool - README.md has been updated!

Thanks!


pharmaverse story in blog

I was thinking of writing a post about what is pharmaverse, why we should choose it, where we can find its packages, and list some useful links.
Most of those information came from Ross Farrugia presentation on R/Pharma 2022 and were the base of the slides that were shared with the Council.

love that idea - be nice to get that into the blog site for those coming from linkedin.
should be short as we don't want to re-create already existing documents - just link out to them like you said.

Thanks for the advice, will work on that!


typst: 0.11.0 -> 0.11.1

Description of changes
Changelog: https://github.com/typst/typst/releases/tag/v0.11.1
cc  @figsoda  @drupol @kanashimia

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.


Using pynt on build server

Hi,
I really like pynt and would like to use it as a build tool for some of my python projects.
My builds are already using docker to allow me to create a container, install my dependencies and then run the tests. To use pynt as a build system I need to install it outside the container on the build server. Do you have any ideas on the easiest way to do that (assuming I can't just pip install things on the build server)?

One option is to bundle pynt with the source code, so it can run on any machine without requiring additional pip install.
Look at virtualenv
http://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/


WASM: 'class UserDefault' should 'save' also on web versions of my app.

WASM: class UserDefault should 'save' also on web versions  of my app
@all
Maybe there is an easy way anywhere?

Hi,
You use use my impl:
https://github.com/paulocoutinhox/axmol-native-helper
And to save locally the UserDefault im using it:
https://github.com/nativium/nativium-modules/tree/main/custom/modules/shared-data/implementation/cpp/nativium/data
Maybe help you.


Homekit Setup code mandatory

Hi, thanks for this plugin. Homekit detects it, but Won’t be added without a setup code.
I could not find it

I see. It’s the homebridge code. Never mind and thanks again


Add SetPassword + SetAddress + HandShake

Hello, here's my code for adding setpassword, setaddress and handshaking function.
There's associated examples, and i also review some of your code to :

replace readparam by handshaking in examples
added readparam example
modify some way of results display in examples
remove compilation warning for examples
added LEN and PKG for future functions (as described in the doc)

Everything is tested (and working) on a raspi zero and a R502a module

@NicoFR75
Thank you for the contribution, please remove the .DS_Store file and check for trailing & leading whitespaces in the code.

@DanBrezeanu
It should be ok now.


Fix vendoring for golang-http

Signed-off-by: Alex Ellis (OpenFaaS Ltd<EMAIL_ADDRESS>Description
Fix vendoring for golang-http by reverting to method prior to workspaces
How Has This Been Tested?

Tested with a private Go module which was vendored, setting GO111MODULE: off in build_args in stack.yml
I also created a nested package called pkg and referenced it as "handler/function/pkg" from handler.go which worked as expected.
Closes: #78
How are existing users impacted? What migration steps/scripts do we need?
Imports remained the same, but we will need to check docs and blog posts
https://www.openfaas.com/blog/golang-deep-dive/
https://github.com/openfaas/golang-http-template#20-golang-http
Checklist:
I have:

[ ] updated the documentation and/or roadmap (if required)
[x] read the CONTRIBUTION guide
[x] signed-off my commits with git commit -s
[ ] added unit tests

For the privately vendor code:
version: 1.0
provider:
  name: openfaas
  gateway: http://<IP_ADDRESS>:8080
functions:
  jwtme:
    lang: golang-http
    handler: ./jwtme
    image: alexellis2/jwtme:latest
    build_args:
      GO111MODULE: off
      GOFLAGS: -mod=vendor

For using Go modules w/o any vendoring:
package function

import (
        "fmt"
        "net/http"

        handler "github.com/openfaas/templates-sdk/go-http"
        "github.com/sirupsen/logrus"
)

// Handle a function invocation
func Handle(req handler.Request) (handler.Response, error) {
        var err error

        logrus.Info("Function started")

        message := fmt.Sprintf("Body: %s", string(req.Body))

        return handler.Response{
                Body:       []byte(message),
                StatusCode: http.StatusOK,
        }, err
}

The stack.yml file was unchanged.

Interestingly, this worked locally on Docker for Mac (ARM64), but in CI fails with:
Step 18/37 : RUN sh modules-cleanup.sh
[111](https://github.com/openfaas/golang-http-template/actions/runs/3229551144/jobs/5286982535#step:4:112)
 ---> Running in 7290f2036272
[112](https://github.com/openfaas/golang-http-template/actions/runs/3229551144/jobs/5286982535#step:4:113)
vendor not found
[113](https://github.com/openfaas/golang-http-template/actions/runs/3229551144/jobs/5286982535#step:4:114)
cleaning up go.mod
[114](https://github.com/openfaas/golang-http-template/actions/runs/3229551144/jobs/5286982535#step:4:115)
mv: can't rename './function/go.sum': No such file or directory
[115](https://github.com/openfaas/golang-http-template/actions/runs/3229551144/jobs/5286982535#step:4:116)
The command '/bin/sh -c sh modules-cleanup.sh' returned a non-zero code: 1
[116](https://github.com/openfaas/golang-http-template/actions/runs/3229551144/jobs/5286982535#step:4:117)
[0] < Building golang-http-ci done in 27.59s.
[117](https://github.com/openfaas/golang-http-template/actions/runs/3229551144/jobs/5286982535#step:4:118)
[0] Worker done.

That should do it.

The files definitely are there in ./template/golang-http/function. It's now failing with go: open /go/src/handler/function/go.mod: no such file or directory [134](https://github.com/openfaas/golang-http-template/actions/runs/3229572616/jobs/5287026392#step:4:135)

https://www.diffchecker.com/lhoTkAHq shall we keep remove_workspaces? does the arm build still break?

@mrwormhole sorry, what question are you asking?

@alexellis is ARM build running successfully? before the changes, we did run modules-cleanup.sh right before test -z command

Why? There is no repo in openfaas-incubator? That's deprecated.

This is now available for pinning:
https://github.com/openfaas/golang-http-template/releases/tag/0.8.0
cc @willfore - this change makes vendoring private Go modules possible again with golang-http.


WindowsError in removing temp files

WindowsError: [Error 2] The system cannot find the file specified: 'C:\\Python27\\lib\\site-packages\\gooey-0.1.0-
py2.7.egg\\gooey\\python_bindings\\da56848393418e7c55974af7edbbb2d2.pyc'

This just results from the inclusion of the decorator in any program

I'm getting the same error:
...
main()
File "C:\Python27\lib\site-packages\gooey-0.1.0-py2.7.egg\gooey\python_bindings\gooey_decorator.py", line 119, in inner
parser = get_parser(main_module_path)
File "C:\Python27\lib\site-packages\gooey-0.1.0-py2.7.egg\gooey\python_bindings\gooey_decorator.py", line 162, in get_parser
return source_parser.extract_parser(module_path)
File "C:\Python27\lib\site-packages\gooey-0.1.0-py2.7.egg\gooey\python_bindings\source_parser.py", line 145, in extract_parser
client_module = modules.load(module_source)
File "C:\Python27\lib\site-packages\gooey-0.1.0-py2.7.egg\gooey\python_bindings\modules.py", line 33, in load
os.remove(tmp_pyc_file)
WindowsError: [Error 2] The system cannot find the file specified: 'C:\Python27\lib\site-packages\gooey-0.1.0-py2.7.egg\gooey\python_bindings\e68dbae79cf81af7bd68c8d4b59c07e.pyc'
I have Python 2.7 installed. Installed master Gooey. Seems like it has problem compiling binding?

Could you post the code you were attempting to run? Stacktrace alone doesn't give quite enough info.

import argparse
from gooey import Gooey
@Gooey
def main():
parser = argparse.ArgumentParser(description='UV Metadata Uploader.')
parser.add_argument('server_url',
help='URL of the UV server where the metadata will be uploaded.')
parser.add_argument('api_key',
help='Server API key that authenticates to an account with permissions to manage metadata of a feed.')
parser.add_argument('feed_id', type=int, nargs=1,
help='ID of the feed for which the metadata will be uploaded.')
parser.add_argument('gpx_files', type=argparse.FileType('r'), nargs='+',
help='File containing GPX metadata that will be uploaded to the UV server.')
args = parser.parse_args()
print('test')
# there was more code but this is enough to produce the same error

if name == "main":
main()

I think I've found the problem. I didn't have exit() at the end. It now works.

So.. Safe to close? :)

Well, the error is not really descriptive. This is what generates it:
  try:
    with open(tmp_py_file, 'w') as f:
      f.write(module_source)
    return __import__(tmp_filename)
  finally:
    os.remove(tmp_py_file)
    os.remove(tmp_pyc_file)

Which means that if there is an error either creating or importing the code, there is no other feedback than the failure to remove the files.

I saw the same error for tab-indented main() functions. See my pull request for a fix.
This doesn't solve the broader issue, as @piksel pointed out, since other errors can lead to the same place.


Linking to authoritative version.

Replacing document with link to current version on docs.microsoft.

Debraj GuhaThakurta<EMAIL_ADDRESS>has signed off on this change too. We do not want multiple versions of this doc out and about.

OK. To merge. Reviewed this with @bradsev


adds new dom finders

#463

can we have it finders tests please?
I know it's tested implicitly via props, but once we start moving find responsibility from execution contexts to finders, I'd like to have it covered directly instead of working with non-obvious side-effect test failures.

@ro0gr I added basic tests, but not sure about options though.
resetScope - it seems like a sign of a bad architecture, breaks "page is a tree" concept.
contains, at, last - these will make tests brittle.
testContainer - don't know where it will be used. It seems to work in Integration and Acceptance tests without passing it to this function.

I think all of the mentioned options make sense in certain situations.

resetScope

resetScope is needed when you want to test elements which semantically belong to a parent element but rendered out of a normal flow.
For example, let's consider a custom select element. It's usual that after you click on it you would see a dropdown which in fact rendered somewhere in a location(at the root of you testContainer) which doesn't belong to select's DOM element. Sometimes it's also possible to experience when you deal with modals, tooltips and whatnot..

contains, at, last - these will make tests brittle.

I believe something like the following should work good enough.
  const node = create();

  await render(hbs`<ul><li>item 1</li><li>item 2</li><li>item 3</li></ul>`)

  assert.equal(findOne(node, 'li', { contains: '2' }).innerText.trim(), 'item 2');
  assert.equal(findOne(node, 'li', { at: 2 }).innerText.trim(), 'item 2');
  assert.equal(findOne(node, 'li', { last: true }).innerText.trim(), 'item 3');

can't get what the issue is. Can you ellaborate please?

testContainer

There are many contents around you test's viewport which is mostly QUnit stuff, and we want to scope our search. So by default it's #ember-testing. However, some libraries/addons might do some special things and render its DOM bound to body or some other unconventional locations.
It happens rare enough, but in this situation testContainer is very helpful!

@ro0gr

assert.equal(findOne(node, 'li', { at: 2 }).innerText.trim(), 'item 2');
assert.equal(findOne(node, 'li', { last: true }).innerText.trim(), 'item 3');

collections can be used.
If order was changed, test will be broken, users shouldn't rely on index.

Coverage decreased (-0.7%) to 98.119% when pulling cc1a7edd46a4ca1425f1e1ab7c3c219df46c372d on yratanov:new-dom-finders into 629ddd3787b875567a011ad490805d348e9c2811 on san650:master.

ah... I see your point. If we decide they are bad then I think we should not support it for new finders at all.
However...

collections can be used.

that's true, and that's what we do actually use to make collections work.

if order was changed, test will be broken,

true as well, but we need last to make work clickOnText.

users shouldn't rely on index.

I'm not 100% sure about that. It's pretty usual to me to use myCollection[0], myCollection[1],.. in my tests. Until my test data is stable, I can say "if order has changed, it's probably some issue in my code".

I agree that eaither of these options can be misused in userland. From the other hand if we as users wanted to implement custom collections or clickOnText, for example, we couldn't do it w/o such finder options. That makes me think we should leave them and treat as a public API.

@ro0gr It's more like a discussion about future APIs, rather than current implementation details. I believe collection implementation will be changed for no-jquery version in the future, so I thought we might think about the need of having jquery-like selector options.

From the other hand if we as users wanted to implement custom collections or clickOnText

I think we can provide some basic collection API outside (if it's needed?).
clickOnText seems to be very ambigous, imo we shouldn't promote this approach in testing as it can break easily on a small change.

@ro0gr not sure why coveralls is complaining...

not sure why coveralls is complaining...

I guess it's because you've removed a previously covered 'map' function. Fine for me

I think we can provide some basic collection API outside (if it's needed?).

JQuery's last is bit different. We need it to find the closest parent of a text:

Test

 $('div:contains("Test"):last').id === 'c'

Sorry I might have misunderstood your last comment. Do I get it correct that you propose to not expose some of the options to the user?
My initial idea was to provide a very close alternative to existing finders so migration is smothier. But now I'm curious what would be your minimal set of options needed?

@ro0gr I would leave only resetScope and testContainer. I believe everythimg else can be achieved using query selectors, etc.

I would leave only resetScope and testContainer

I'm afraid that would break all the existing attributes, cause unfortunatelly they accept exactly the same options as the finders do:
  {
    myAttr: attribute('my-attribute', {
      // any finder option is supported here
    })
  }

So we have to provide a clear alternative for each option which we are going to deprecate and then remove. That was not a point of the original issue #463.
I'm not sure if it's worth efforts to fight with all the existing options at this point. TBH I'd be glad if we can figure out a path forward at least for multiple, cause I think it's more like a design flow  complicating internals, not only an anti-pattern. And I believe we have a good alternative for that: Collections and findMany.
Also, I'd like to try new finders in the actions PR. And as I've said earlier, by removing contains/last,...(?), we would make it more difficult to achieve.
That being said, I'd vote for leaving everything(but multiple) in place in order to keep changes incremental. Does it make sense for you?

So we have to provide a clear alternative for each option which we are going to deprecate and then remove. That was not a point of the original issue #463.

To be more clear, I mean I'm not opposed to options removal from attributes. It just feels related to finders only partially and probably should be considered in a separate ticket.

@ro0gr I've added required tests. But for findMany I haven't added at and last, since it doesn't seem to make any sense in this case.
pageObjectKey is mysterious, I found that it used in error messages, so added a test for this case.

for findMany I haven't added at and last, since it doesn't seem to make any sense in this case.

great finding! I think we need to remove their mentions from the findMany docs and maybe even ensure they don't have effect on a find result by picking whitelisted options and pass only them to the getExecutionContext(pageObjectNode).find(...
I think whitelisting part is not super critical, but it can be a good opportunity to have a bit cleaner API for new finders.

@ro0gr added for both findOne, findMany. Instead of picking only whitelisted options I throw error if something not from this list is passed. What do you think?

instead of picking only whitelisted options I throw error

I think it can be a bit ubtrosive. Typically JS is quite forgiving, and if you pass an unknow option to some object argument, an unknown option would be just ignored by a function. Throwing is not expected to me in this case. I think I'd just explicitly pick and pass known options down to the search function.

I think it can be a bit ubtrosive.

@yratanov just re-read my comment 😨  That was a typo, sorry! I meant obtrusive for sure.

@ro0gr updated. Tests are failing on CI, but passing locally. Any advice? :)


Adding an env var for the license file

Adding an environment variable for BINTRAY_LICENSE_FILE since license.json will be the initial version of the license, any new license in the repository will have a different naming convention.

if we add a variable for the file name, they can just as well set the license variable; KONG_LICENSE_DATA

@john-paul-keenan any progrress with the updated script for license generation?

closing this, will need additional updates anyway once Bintray is deprecated


🐛 Resizable pane constraints aren't respected when side bar is visible

Description
I've noticed some weird behavior with resizable pane where if you have the sidebar opened and try to resize one of the panes, it doesn't respect the minimum width of other panes that have minimum width set.
I've attached a video below showing this in more detail. You could see that the behavior isn't very consistent.
Steps To Reproduce

Open the example app and click on Buttons tab
Click on the navigation toggle button on the top right hand corner
Try resizing the left pane all the way to its maximum size
Toggle on the navigation bar
Try step 3 again and you should see the right hand tab going off the screen/window

Expected behavior
Resizable pane when combined in the same view, should respect each other's constraints in order to avoid panes going off the screen/window.
Screenshots
https://user-images.githubusercontent.com/11186948/163723368-d06765d1-c700-4ce1-b3b2-30e5cc4079f7.mov

@whiplashoo do you know if this behavior is expected for native macOS applications that have multiple resizable panes?

I am not sure. I could try implementing this in a native app to see how it behaves.

I am not sure. I could try implementing this in a native app to see how it behaves.

That would be great, thank you.

I am not sure. I could try implementing this in a native app to see how it behaves.

were you ever able to do this?


Guava dependency suffers from CVE-2018-10237

Description
Used guava dependency suffers from CVE-2018-10237. Even though the severity is medium while docker-client is not affected, it could be good to have it addressed to eliminate the vulnerability from downstream users' security reports

This should not be closed.  The dependency on the vulnerable version of guava is still there.

This should not be closed. The dependency on the vulnerable version of guava is still there.

This should not have been closed, is it possible to re-open it please?


[Do Not Merge, need carbon-platform-integration 4.5.0 ] Introducing deployer suite listeners and jdbcGroup test suite

@madumalt Can we merge this ?

Close since this is no complete.


Add sanakirja to benchmarks

What are the benchmarks results, then? 😃

+--------------------+--------------+------------+--------+---------+--------+-----------+
|                    | redb (1PC+C) | redb (2PC) | lmdb   | rocksdb | sled   | sanakirja |
+========================================================================================+
| bulk load          | 1907ms       | 1495ms     | 1171ms | 5670ms  | 4878ms | 1084ms    |
|--------------------+--------------+------------+--------+---------+--------+-----------|
| individual writes  | 242ms        | 403ms      | 421ms  | 731ms   | 665ms  | 401ms     |
|--------------------+--------------+------------+--------+---------+--------+-----------|
| batch writes       | 2538ms       | 2757ms     | 1919ms | 1592ms  | 1461ms | 2150ms    |
|--------------------+--------------+------------+--------+---------+--------+-----------|
| random reads       | 621ms        | 658ms      | 581ms  | 5701ms  | 1530ms | 631ms     |
|--------------------+--------------+------------+--------+---------+--------+-----------|
| random reads       | 646ms        | 667ms      | 577ms  | 5634ms  | 1393ms | 634ms     |
|--------------------+--------------+------------+--------+---------+--------+-----------|
| random reads       | 645ms        | 649ms      | 580ms  | 5511ms  | 1386ms | 646ms     |
|--------------------+--------------+------------+--------+---------+--------+-----------|
| random range reads | 1572ms       | 1574ms     | 1101ms | 8996ms  | 4662ms | 1049ms    |
|--------------------+--------------+------------+--------+---------+--------+-----------|
| random range reads | 1594ms       | 1578ms     | 1015ms | 9046ms  | 4702ms | 1083ms    |
|--------------------+--------------+------------+--------+---------+--------+-----------|
| random range reads | 1530ms       | 1579ms     | 1046ms | 9041ms  | 4697ms | 1089ms    |
|--------------------+--------------+------------+--------+---------+--------+-----------|
| removals           | 1361ms       | 1185ms     | 716ms  | 2566ms  | 2024ms | 1138ms    |
+--------------------+--------------+------------+--------+---------+--------+-----------+

Sanakirja is impressively fast!

Hey @cberner,
Do you think you could update the graph on the README with the one in your previous message?
Have a nice day 🌻

yep, I'll update them shortly. I have some newer benchmarks that also include multi-threaded read workloads. Surprisingly Sanakirja does poorly on that benchmark.


Add a panel component, tab styling

This adds a panel component for callouts/sidebars and some minimal styling to improve the look and behavior of the tab component.

:+1:


Bug: Marketplace fees UX/UI

[x] BPS set to 1,000 should appear as 10% fee. It's currently appearing as 0.1%.

Fee is not being considered in final calculation:

[x] When listing item the fee should be removed from 'You get' amount using same calculation as royalty fees
[x] When making offer the fee should be added to the 'Total cost' amount using same calculation as royalty fees

- [ ] Marketplace fee is not being calculated in total cost when making an offer

Ready for staging


[python checkers] if a non movable piece is selected it gets stuck

let me make an example
.    X    .    X    .    X    .    X
.    .    X    .    X    .    X    .
.    X    .    X    .    X    .            O    .    O    .    O    .
.    O    .    O    .    O    .    O
O    .    O    .    O    .    O    .
FROM?
0,0
TO?
1,1
TO?
1,0
TO?
0,1
TO?
-1,0
TO?

Thank you for reporting this issue! I think I've addressed this bug in the following PR: https://github.com/coding-horror/basic-computer-games/pull/678


Cannot install vagrant-serverspec plugin

Vagrant aborts the installation of this plugin due to a dependency needing a newer version of ruby,
vagrant version
Installed Version: 2.2.6
Latest Version: 2.2.6

vagrant plugin install vagrant-serverspec
Installing the 'vagrant-serverspec' plugin. This can take a few minutes...
Fetching: diff-lcs-1.3.gem (100%)
Fetching: rspec-expectations-3.9.0.gem (100%)
Fetching: rspec-mocks-3.9.0.gem (100%)
Fetching: rspec-3.9.0.gem (100%)
Fetching: rspec-its-1.3.0.gem (100%)
Fetching: net-telnet-0.1.1.gem (100%)
Fetching: sfl-2.3.gem (100%)
Fetching: specinfra-2.82.2.gem (100%)
Fetching: serverspec-2.41.5.gem (100%)
Fetching: os-0.9.6.gem (100%)
Vagrant failed to properly resolve required dependencies. These
errors can commonly be caused by misconfigured plugin installations
or transient network issues. The reported error is:

activesupport requires Ruby version >= 2.5.0.

/opt/vagrant/embedded/bin/ruby --version
ruby 2.4.9p362 (2019-10-02 revision 67824) [x86_64-darwin13]

Please let me know if I should report this bug to the vagrant team.

By default, it will try to install activesupport 6.0.0, which requires Ruby 2.5.0.  This can probably be fixed by adding this line to the vagrant-serverspec.gemspec file
Gem.add_runtime_dependency ‘activesupport’, ‘< 6.0.0’
The activesupport gem is actually being pulled in by rspec_html_formatter, which requests activesupport >= 4.1.4

@vvchik Now that #38 is merged, would it be possible to cut a new gem to make installation easier? That would close this issue. Thanks!

Also experiencing this issue, any chance we get a new gem soon with the issue being fixed on master already?
Thanks!

I have trouble too from this issue.
Do you have any temporary solution with this issue?

These workaround I use:

Attempt installation of plugin
After install fails, modify the gemspec file, ~/.vagrant.d/gems/2.4.4/specifications/vagrant-serverspec-1.3.gemspec on my system, and manually add activesupport < 6.0.0 dependency
Install serverspec plugin, which works for me at this point.

On my Windows x64 system the serverspec-1.3.gemspec file is never created, so i can't use @01deEng1ish workaround. Even if i upgrade Ruby to > 2.5.0 the command vagrant plugin install vagrant-serverspec still fails with activesupport requires Ruby version >= 2.5.0.
ruby --version
ruby 2.6.5p114 (2019-10-01 revision 67812) [x64-mingw32]


src: move uv_free_cpu_info to uv-common.c

CI: https://ci.nodejs.org/view/libuv/job/libuv-test-commit/1543/

Landed in https://github.com/libuv/libuv/commit/040543eebf4983b1459a1e0e0e26dae68b80cc28 with Ben's suggestion. Thanks!


Validate URL for optional related content links for collections.

I was allowed to deposit a collection like this:

The issue here is that the link on the PURL then does not display correctly.

Alternate suggestion: display a sample URL in the box that is in the correct format, such as https://sdr.stanford.edu.

Also do the item page in the same manner.


Refactor and fix Cortex-R device tree

Refactor and fix Cortex-R device tree
This commit adds device bindings for Cortex-R4(F) and Cortex-R5(F).

These were supposed to be added during the initial development of
Cortex-R port, but it was not due to an incorrect device tree
specification.

1. Replace the non-existent CPU device binding ("Cortex-R") specified
   by the CPU node with a proper one.

2. Relocate CPU node declaration to SoC dtsi:

  The CPU node should be declared in the SoC dtsi because the core
  type is SoC-dependent. In fact, this is exactly how it is done in
  the Cortex-M port.

3. Remove core_intc (supposedly Cortex-R VIC):

  Unlike the NVIC of Cortex-M, the VIC of Cortex-R is not a true
 interrupt controller in the conventional sense and merely acts as
 a CPU input port for aggregated interrupt request and vector index
 signals. For this reason, there is no point in declaring it in the
 device tree and specifying it as an interrupt parent. All SoCs
 incorporating Cortex-R implement a separate true interrupt
 controller (for instance, GIC for Zynq MPSoC and VIM for Hercules).

This PR is part of the preparations for #19644.

@ulfalizer, I wonder if you have got more comments/feedback on this PR? :)


Add query subcommand

The tool is suitable only write queries. (Maybe development team will add also read part of it.)

so , if add read part .please tell us .I will happy one week


Add an upper limit for the maxFeePerGas field

We want to use Hardhat Ignition for our deployments but sometimes a network fee is too high and we don't want to spent so much money for it.

Can you add new parameter to the hardhat.network object - feePerGasLimit? If calculated value of a maxFeePerGas is grater, than a feePerGasLimit then sending tx will fail. Something like this:

if (latestBlock.baseFeePerGas !== undefined) {
            // Logic copied from ethers v6
            const maxPriorityFeePerGas =<PHONE_NUMBER>n; // 1gwei
            const maxFeePerGas = latestBlock.baseFeePerGas * 2n + maxPriorityFeePerGas;
            if(maxFeePerGas > hre.network.config.feePerGasLimit) throw new FeeOutOfBoundError(maxFeePerGas);
            return {
                maxFeePerGas,
                maxPriorityFeePerGas,
            };
        }

It will be great, if we can set maxPriorityFeePerGas at hardhat.config.js.

We are opting for creating the setting under networks in the Hardhat config:
networks: {
   mainnet: {
       ignition: {
           maxFeePerGas
       }
   }
}

The reasoning is that maxFeePerGas is a property of the relation between Ignition and a particular network. In a hierarchical structure, you could put it in either networks > mainnet > ignition or ignition > networks > mainnet. Since Ignition is a core part of HH, we will choose to add the config to the integral concept: networks.


Prescribing Dynamic Vegetation Parameters for CATCHCN

PURPOSE:
The CatchmentCN (CATCHCN) model may replace the catchment (CATCH) model in the next S2S forecasting system. CATCHCN is significantly slower than CATCH mainly due to the computer time of Carbon and Nitrogen module (CLM). Thus, we decided to bypass the CLM in the S2S implementation, yet capture the variability of dynamic vegetation parameters of CLM, by implementing a system that prescribes daily climatologies of LAI and SAI from CLM and uses a pre-determined time scale parameters.
The script and the program in this branch works as the pre-processor to set up CTACHCN prescribe DYNVEG parameters for S2S.
NOTE
I am aware that S2S is run on NAS and there is a hard-wired path to a directory in discover in the program. I have tested the software which works the way we intend it to. For now, I just want to tag this with the develop branch (Note that there is no develop branch, so I had to branch off master) for safe keeping until we finalize S2S implementation.

Is this related to https://github.com/GEOS-ESM/GEOSgcm_GridComp/pull/61 ?

@JustinPerket Can you or someone appropriate please review this PR so that it can be closed.   Also if it could be annotated as zero-diff it might be useful in future forensics.

Apologies if my description is not clear.
These modifications are for CATCHCN which itself is not the default model. So it is zero-diff.
This is a pre-processor sits outside the model physics. One would run to set up a PRESCRIBE_DVG experiment for CATCHCN from the experiment directory. The pre-processor would create some input files for user grid/tiles.

@smahanam You may have been clear - I was just trying to get this cleared through the system and could not immediately spot any statement  in a quick scan.    Still would like to get one other relevant scientist to concur with a review before I merge.

No objections. Will test do a quick test of functionality. but it looks like it requires a file from
https://github.com/GEOS-ESM/GEOSgcm_GridComp/pull/61/ :
https://github.com/GEOS-ESM/GMAO_Shared/blob/8c3ae56b5c3c76a2b0e14456d7a0e9667a910a60/GEOS_Util/pre/DYNVEG/regrid_DYNVEG.csh#L36
That pull request is on hold for the moment. GEOS_LandGridComp.rc should be put on it's own pull request. Additionally, this pull request is also needed for functionality:
https://github.com/GEOS-ESM/GEOSgcm_App/pull/39
This is all related to this issue, which I will update to centralize that discussion:
https://github.com/GEOS-ESM/GEOSgcm_App/issues/30

If it helps, I can send a separate PR for this particular file GEOS_LandGridComp.rc. It is where land physics parameters sits - so everything is linked to that file.

As suspected, fails with error

grep: RC/GEOS_LandGridComp.rc: No such file or directory

@smahanam, yes, let's get GEOS_LandGridComp.rc in and functional GEOS-ESM/GEOSgcm_App#30

Yes, S2S forecast group showed an interest in replacing the current CATCH with CATCHCN. We designed this efficient system particularly for the S2S because fully coupled CATCHCN model requires about 7 times more computer time than CATCH.


Participation overview is empty even though participated

Bug description
I have a wallet in which i'm participating in a proposal. If i look at the explorer, i see that i  indeed participate (https://explorer.shimmer.network/testnet/output/0x8ce2354a3fb8fa32ed18e4cb573bcac618d67f25e636564e20ff26c9135bef950000). But if i call getParticipationOverview for that wallet, i get {participations: {}}
it is reproducable if i recover the profile from the mnemonic
Steps To reproduce the bug
Explain how the maintainer can reproduce the bug.

Recover profile with embark suspect tenant spider this august flee apart pulse mammal volcano wall pitch neutral fun program paddle life attend knife amount crystal clay fringe
select wallet with index 4 (has a balance of 1889.0654 SMR)
call getParticipationOverview
get {participations: {}}

Expected behaviour
If i call getParticipationOverview for that wallet, i should get {participations: {0x00d77d8fe83ed844ee67027c8d6e22da6a6ddbcb84dccedd0a1517d56e8ae258: { } }}
Actual behaviour
I get {participations: {}}

@MarkNerdi is the node you use when you recover actually tracking this event?

yes it is

@Thoralf-M
I also called registeredParticipationEvent on the recovered account for the corresponding proposal

@MarkNerdi I tested locally and it also failed, but only because I didn't update the inx participation plugin yet, could this be also the case for you?
Anyways, the answers should be optional, so I changed that and errors that aren't 404 not found will in the future also be returned instead of ignored as before


Saturation calculation error?

Hi Jacob, thanks for developing PhyKIT, I find it very useful in calculating various summary statistics. However, I'm encountering an error with the saturation function, and I am not sure what the problem is. The error is as follows:
  File "/home/zhangy/miniconda3/envs/phykit/bin/phykit", line 10, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/zhangy/miniconda3/envs/phykit/lib/python3.11/site-packages/phykit/phykit.py", line 2375, in main
    Phykit()
  File "/home/zhangy/miniconda3/envs/phykit/lib/python3.11/site-packages/phykit/phykit.py", line 251, in __init__
    self.run_alias(args.command, sys.argv[2:])
  File "/home/zhangy/miniconda3/envs/phykit/lib/python3.11/site-packages/phykit/phykit.py", line 340, in run_alias
    return self.saturation(argv)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/zhangy/miniconda3/envs/phykit/lib/python3.11/site-packages/phykit/phykit.py", line 2192, in saturation
    Saturation(args).run()
  File "/home/zhangy/miniconda3/envs/phykit/lib/python3.11/site-packages/phykit/services/tree/saturation.py", line 38, in run
    patristic_distances, pairwise_identities = self.loop_through_combos_and_calculate_pds_and_pis(
                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/zhangy/miniconda3/envs/phykit/lib/python3.11/site-packages/phykit/services/tree/saturation.py", line 80, in loop_through_combos_and_calculate_pds_and_pis
    pairwise_identities = self.calculate_pairwise_identities(
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/zhangy/miniconda3/envs/phykit/lib/python3.11/site-packages/phykit/services/tree/saturation.py", line 104, in calculate_pairwise_identities
    if seq_one[idx] == seq_two[idx]:
                       ~~~~~~~^^^^^
IndexError: string index out of range

Thanks!
Miles

Hi Miles,
Thanks for using PhyKIT!
Can you please send over the files you used as input and note the version of PhyKIT you used?
best,
Jacob

Hi Jacob,
So I think it is actually because I had a taxon name discrepancy between the MSA and the tree, sorry false alarm. Running it now (albeit taking forever due to the large dataset).
Best,
Miles

Great - thanks, Miles!


Take down the old readthedocs link?

Description
#1104 made the old documentation obsolete. However, it is still hosted at https://keylime-docs.readthedocs.io/en/latest/, containing outdated information. Even worse, that's the first result on google if you search for keylime docs.
Could it be taken down in favor of the new documentation hosted at https://keylime.readthedocs.io/en/latest/? The repo is archived anyway. Or, the old readthedocs should point to the new documentation if you don't want to take em down.

Hello @lukehinds, could you please help us with this?

The old doc now points to the latest documentation (as of 20:05 UTC). Feel free to close this issue if you get a confirmation from @lukehinds.

Taking down the old doc has become an issue, since we lost the password to the aforementioned repository during the PTL (multiple) transitions... @mpeters @lukehinds The best we can aim for is to keep synchronizing the new and old doc repositories for the time being, IMO


Add new templates and update met-api config

-Add new html templates
-Update met-api config
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the met-public license (Apache 2.0).

Codecov Report

Merging #2096 (09d874b) into main (4a6c238) will decrease coverage by 0.22%.
Report is 6 commits behind head on main.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main    #2096      +/-   ##
==========================================
- Coverage   69.40%   69.19%   -0.22%
==========================================
  Files         456      457       +1
  Lines       14523    14648     +125
  Branches     1120     1120
==========================================
+ Hits        10080    10135      +55
- Misses       4253     4323      +70
  Partials      190      190

Flag
Coverage Δ

metapi
77.41% <100.00%> (-0.64%)
:arrow_down:

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

Files Changed
Coverage Δ

met-api/src/met_api/config.py
94.55% <100.00%> (-2.02%)
:arrow_down:

... and 13 files with indirect coverage changes


SQL syntax is not supported (as shown in the figure)

select * from (
with tv as (
select * from dual
)
select * from  tv)
union
select * from (with tv as (
select * from  dual
)
select * from  tv)

Please post the error message.

Please post the error message.

StatementCallback; bad SQL grammar [with tv as ( select * from dual ) select * from tv) union select * from (with tv as ( select * from dual ) select * from ( select * from tv)]; nested exception is java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束

StatementCallback; bad SQL grammar [with tv as ( select * from dual ) select * from tv) union select * from (with tv as ( select * from dual ) select * from ( select * from tv)]; nested exception is java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束


Add support for degree bursaries

When trainees have more than 1 degree, providers need to select which degree is attracting the bursary.
This is done by adding a conditional degree selection page shown after adding a degree - but only if there's more than 1 degree already.
Most trainees won't have multiple degrees, so most will never see this section.
I'm a little unclear about what basis providers might pick between them, so the content will need further work once people are back from the Christmas break.

Perhaps showing my ignorance here... will there always be one that needs to be selected? For example, can a trainee have multiple degrees yet none be used for busary selection?

Perhaps showing my ignorance here... will there always be one that needs to be selected? For example, can a trainee have multiple degrees yet none be used for busary selection?

Perhaps showing my ignorance here... will there always be one that needs to be selected? For example, can a trainee have multiple degrees yet none be used for busary selection?

I've asked Ben, and we can raise at the next BAU meeting.

Perhaps showing my ignorance here... will there always be one that needs to be selected? For example, can a trainee have multiple degrees yet none be used for busary selection?

I've asked Ben, and we can raise at the next BAU meeting.

 Add degree selection for bursaries to prototype

 Add degree selection for bursaries to prototype


NaturalGradient not recognized in QNN

Environment

Qiskit Machine Learning version: 0.2.1
Python version: 3.8.10
**Operating system **:  Qiskit v0.32.1 (ipykernel) in IBM Quantum Experience Lab

What is happening?
When instantiating an instance of the OpflowQNN using the NaturalGradient function from qiskit.opflow, the OpflowQNN doesn't recognize the NaturalGradient as a parameter input and returns the statement "Cannot compute gradient operator! Continuing without gradients!". After initializing a NeuralNetworkClassifier object, the fit function returns an error of "QiskitMachineLearningError: 'Input data has incorrect shape, last dimension is not equal to the number of inputs: 2, but got: 3.'"
How can we reproduce the issue?
import numpy as np
import pandas as pd
from ipywidgets import IntProgress
from IPython.display import display
import time
# Importing standard Qiskit libraries
from qiskit import QuantumCircuit, transpile, Aer, IBMQ
from qiskit.tools.jupyter import *
from qiskit.visualization import *
from ibm_quantum_widgets import *
from qiskit.providers.aer import QasmSimulator
from qiskit_machine_learning.neural_networks import OpflowQNN
from qiskit.opflow import StateFn, PauliExpectation, Gradient, NaturalGradient, Z, I
from qiskit.opflow.gradients import NaturalGradient
from qiskit.algorithms.optimizers import GradientDescent
from qiskit.utils import QuantumInstance
from qiskit_machine_learning.datasets import ad_hoc_data
from qiskit.circuit.library import ZZFeatureMap, RealAmplitudes
from qiskit_machine_learning.algorithms import NeuralNetworkClassifier, NeuralNetworkRegressor
from qiskit.providers.ibmq import least_busy

from sklearn.metrics import confusion_matrix, accuracy_score
from sklearn.model_selection import train_test_split
from sklearn import datasets
from sklearn.svm import SVC
from sklearn.svm import SVR #For regression
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler, MinMaxScaler
from sklearn.metrics import accuracy_score
from sklearn.metrics import plot_roc_curve
from sklearn.ensemble import RandomForestClassifier
# Loading your IBM Quantum account(s)
provider = IBMQ.load_account()

from qiskit_machine_learning.datasets import ad_hoc_data

training_features, training_labels, test_features, test_labels = ad_hoc_data(
    training_size=20, test_size=10, n=2, one_hot=False, gap=0.5
)

# the training labels are in {0, 1} but we'll use {-1, 1} as class labels!
training_labels = 2 * training_labels - 1
test_labels = 2 * test_labels - 1

dim = 2
feature_map = ZZFeatureMap(dim, reps=1)  # let's keep it simple!
feature_map.draw('mpl', style='iqx')

ansatz = RealAmplitudes(num_qubits=dim, entanglement='linear', reps=1)  # also simple here!
ansatz.draw('mpl', style='iqx')

circuit = feature_map.compose(ansatz)
circuit.draw('mpl', style='iqx')

hamiltonian = Z ^ Z  # global Z operators

gd_qnn_loss = []
def gd_qnn_callback(*args):
    gd_qnn_loss.append(args[2])

gd = GradientDescent(maxiter=100, learning_rate=0.01, callback=gd_qnn_callback)

backend_sim = Aer.get_backend('qasm_simulator')

q_instance = QuantumInstance(backend_sim, shots = 8192, seed_simulator = 2718, seed_transpiler = 2718)

qnn_expectation = StateFn(hamiltonian, is_measurement=True) @ StateFn(circuit)

qnn = OpflowQNN(qnn_expectation,
                input_params=list(feature_map.parameters),
                weight_params=list(ansatz.parameters),
                gradient=NaturalGradient(regularization='ridge'),  # <-- Natural gradients
                quantum_instance=q_instance)

#initial_point = np.array([0.2, 0.1, 0.3, 0.4])
classifier = NeuralNetworkClassifier(qnn, optimizer=gd)
regressor = NeuralNetworkRegressor(qnn, optimizer=gd)

#print(np.unique(label_train))
#label_train = label_train.reshape(-1,1)
#label_train = label_train.transpose()
startTime = time.time()
classifier.fit(sample_train, label_train)
executionTime = (time.time() - startTime)
print('Execution time in seconds: ' + str(executionTime))
#print(label_train.shape)```

What should happen?
QNN should execute/recognize the NaturalGradient as a parameter input and the fit function should properly train the QNN without error
Any suggestions?
All I can think of is it has something to do with how NaturalGradient() and OpflowQNN objects are interacting.

I am also having this issue in a similar context.

Hi,
This issue was due to a problem in qiskit-terra that was fixed between version 0.18.3 and 0.19.0.
Upgrading qiskit to version 0.33.0 or later should allow the above code to run.
Let me know if you have any further problems!

@babcockt18 @mikevitz Could you please review the issue and confirm the problem is solved as mentioned above?

For the curious, I believe it was this pull request that fixed the problem.

@adekusar-drl I have reviewed and can confirm -- the code above works now.  Thanks!


Update linking to correct CMake target

Since ecflow is built as a module (i.e. a shared library, dynamically loaded by the Python interpreter), the linkage in macOs requires passing flags -undefined and -dynamic_lookup. This is handled directly by CMake which, since CMake 3.15, defines a specific target Python3::Module to be used when building Python modules.
Re ECFLOW-1950

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 84.54%. Comparing base (80f8405) to head (1d9e56b).

Additional details and impacted files
@@           Coverage Diff            @@
##           develop      #98   +/-   ##
========================================
  Coverage    84.54%   84.54%
========================================
  Files          606      606
  Lines        54037    54037
========================================
  Hits         45686    45686
  Misses        8351     8351

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Logging

Hi there, I have adjusted the logging to warn for Nodered, but this module keeps logging the payload it send to Splunk, with teh result code
My Settings.js
/** Configure the logging output /
logging: {
/* Only console logging is currently supported /
console: {
/* Level of logging to be recorded. Options are:
* fatal - only those errors which make the application unusable should be recorded
* error - record errors which are deemed fatal for a particular request + fatal errors
* warn - record problems which are non fatal + errors + fatal errors
* info - record information about the general running of the application + warn + error + fatal errors
* debug - record information which is more verbose than info + info + warn + error + fatal errors
* trace - record very detailed logging + debug + info + warn + error + fatal errors
* off - turn off all logging (doesn't affect metrics or audit)
/
level: "error",
/* Whether or not to include metric events in the log output /
metrics: false,
/* Whether or not to include audit events in the log output */
audit: false
}
},
Displays in the docker log.
Sending payload {
message: { _msgid: 'f995fa1dcb5742b7', payload: 'Hello 2' },
metadata: {
source: 'nodered',

sourcetype: 'nodered:event',

index: 'stm_dev_nodered',

host: 'xxxx'

},
severity: 'info'
}
Regards
Willem

I just noticed that my node-red-out.log was 27G because of the logging. It would be great if this did not log anything and had an output for success and failure, in that way something could be logged to Splunk and then continue in the flow which could be to log the output or fail and another action could be taken. Another feature that caused me to use my own http request node to log to Splunk is I want to remove the additional message structure so just the raw payload data is logged and able to be referenced by name without the additional cumbersome and uneeded message.payload json references in Splunk. So the option would be to log the payload only as-is to the index.

I have a fork where I have fixed both of these things, I've added a config node where you can set the default log level among other things, but then also adjust it via the msg object (msg.LogLevel) if you need to do something special.
I've also added a checkbox for console logging on/off. I haven't added a pull request here because there is one sitting from a few years back, but also because I removed the metrics part of it as I don't require it.

@rXc3NtR1c
Sorry, I have been inactive on here.  I am going to be more active now.  Feel free to make a pull request.


Rename driver to :evil_cuprite

In rails 7 there is already a driver for :cuprite and it doesn't work to overwrite it. I recently fixed the same thing for selenium.

Thanks...im not quite sure if this is technically a breaking change if a user hooks off of the :cuprite driver created by EvilSystems...

Well, users who are using evil systems will break because it doesn't work anymore and have unexplainable errors like I just described so see no real way around it.
I'm open for suggestions though. This change here makes evil systems work for me in rails 7 projects.

@mhenrixon sorry didnt mean to forget about ya! Merging and bumping to 1.0.0 since this could be a potentially breaking change.


ESP32 BLE pairing

I need to connect esp32 ble with another Ble device via service uuid only no need of charuuid. after connecting, the advertising device must notify to pair or not. After pairing it should discover the spsm characteristic and read psm value. this should trigger bonding and l2cap channel connection must be established. Then write data to l2cap. receiving and sending data via serial monitor must be enabled. I need a code for this which works in Arduino IDE software.
@chegewara @nkolban @benjaminaigner
@srounce   @boonkerz @hetlelid

Dear @sonu11-cloud,
sorry, issues don't work this way.
Do you have a problem with this repository?
If yes, describe the problem and people (hopefully) fix it.
Is it an enhancement? Kindly ask if the developers implement it.

I need a code for this which works in Arduino IDE software.

What did you try so far?
Personally, I'm not an expert on this level of BLE.
And I think this way of request won't help you here, kindly ask and provide your current progress.
Nobody is just implementing this for you, you have to try it on your own. If you are not willing to develop it by yourself, go to upwork.com or any other platform and pay for the implementation.
Greetings & good luck with your project.


Milestone 4 tasks

So far we have this for Milestone 4:

[ ] TA feedback:

[ ] #53
[x] #54
[ ] #55
[ ] #56
[ ] #57

[ ] Firas feedback #52

[ ] Docker build

[ ] EDA / Selenium
[ ] Reports generation / knitting

[ ] Finalize & cleanup everything we know / care about

[ ] Final image deployment

Feel free to add / comment stuff here!

Hey,
I already corrected the EDA and added a partial_clean section to the makefile. Also, added a dependecy so that in the graph test_results_sample.csv depends on model.pic (but I made the partial clean so that it does not delete the test_results_sample.csv, and everytime we run the quick version we just run the quick model)


Licensing the web demo

Hey @silvanshade, we use a web demo based on your tower-lsp-web-demo licensed under Apache-2.0 WITH LLVM-exception.
The rest of this project is dual-licensed under Apache-2.0 and MIT, which makes the situation a bit awkward because we need to distinguish between the web demo components and the rest of the project.
Hence, I wanted to ask if you would be willing to relicense tower-lsp-web-demo at f44085e39430f0f9a9f98e251f67a40a00e3da56 to us under the dual-license Apache-2.0 and MIT.
It is of course fine if you prefer not to. Thanks!

Okay, I have relicensed the project as Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT.


Do those plugins in the data agent support running locally?

Do those plugins in the data agent support running locally? Will data information and privacy be leaked when analyzing data?

OpenAgents can be used locally, you can totally run the demo by localhost, and use the local LLM to make sure the data information and privacy. For plugins, they will not use the data, just make some queries of questions and get information.

thx


feat: Introduce operational metrics in OpenTelemetry Collector

Refactor the current Prometheus.go file by adding a middleware metriccollector.go to handle initialization and metrics collection for both Prometheus and OpenTelemetry.
About e2e test:

Add opentelemetry install in setup_test.go. This opentelemetry has promethues exporter.
Add env and flag when KEDA is running in e2e test env.
Fecth metric from opentelemetry  through promethues port to test

Checklist

[X] I have verified that my change is according to the deprecations & breaking changes policy
[X] Tests have been added
[X] Changelog has been updated and is aligned with our changelog requirements
[ ] A PR is opened to update our Helm chart (repo) (if applicable, ie. when deployment manifests are modified)
[x] A PR is opened to update the documentation on (repo) (if applicable)
[X] Commits are signed with Developer Certificate of Origin (DCO - learn more)

Relates to https://github.com/kedacore/keda/issues/3078
Relates to https://github.com/kedacore/keda-docs/pull/1215

We also need to expose this in our Helm chart but that's a separate PR as well

/run-e2e sequential

@SpiritZhou do you think you can address the last few points? We plan to cut the release tomorrow (Wednesday). Also, we need to update Helm Charts as well.

@zroubalik There are still two parts I don't see the decision. One is should we deprecate "scaler.errors.total" in this PR (https://github.com/kedacore/keda/pull/4860#discussion_r1328369583). Another one is should we add prefix "keda." in otel metric name (https://github.com/kedacore/keda-docs/pull/1215#discussion_r1334803007). Other points I can update soon.

@JorTurFer @zroubalik in my opinion prefixing with keda is a good idea but don't have a strong opinion

@JorTurFer @zroubalik in my opinion prefixing with keda is a good idea since we own the metric names pushed to OTEL Collector but don't have a strong opinion

Agree with @tomkerkhove on this, drop total errors and prefix fix keda please.

+1

@zroubalik @JorTurFer Just updated the code. Hope it can meet the ddl.

/run-e2e sequential

/run-e2e sequential

@zroubalik I fixed the test and update the "experimental feature". Could you help to review them again?

/run-e2e sequential

Talked to @SpiritZhou and he'll start Helm chart PR, if he can't finish it today I'll take over tomorrow. That should allow us to merge this one in time

It is strange. The prometheus_metrics_test can be passed in my local minikube env...

/run-e2e sequential

@zroubalik @JorTurFer @tomkerkhove The failed e2e test may not be caused by OpenTelemetry PR. I found it happened in this PR before (https://github.com/kedacore/keda/actions/runs/6308971553). And I also found that the correct metric value can be retrieved after around 15s. I don't have any idea why it becomes slow.

Right, it is failing on main as well. So it is not relevant to this PR. You can ignore it in this PR, great work, thanks!

I will pick up Helm chart later today


Hosted control named [Contoso Help]'s hosting type suggested to set as [Chrome Process]

Hosted control named [Contoso Help]'s hosting type suggested to set as [Chrome Process], not [IE Process], as we have suggested the reader to use [Chrome Pross]

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 3b1e303e-da91-e9b0-7bf3-263ee688218e
Version Independent ID: ca002be0-6e4f-72ca-00e2-e4d5fa6071a1
Content: Walkthrough 2: Display an external webpage in your agent application
Content Source: ce/unified-service-desk/walkthrough2-unified-interface-display-an-external-webpage-in-your-agent-application.md
Service: usd
GitHub Login: @kabala123
Microsoft Alias: kabala

@luoyong0201 : Thanks for reaching out to us. There are different hosting types. IE Process and Chrome Process are available. You can use either of the two.


Add SweepToSolid to the PolyfaceBuilder

Is your feature request related to a problem? Please describe.
I have to show the extrusion from a mesh surface.
Describe the solution you'd like
I would like a function solidSweep(mesh, vector3d, wantside?) to be added to the PolyfaceBuilder.
That function could take a polyface or a mesh and have an option to specify if we want the sides.
This function existed in the c++ codebase and could be ported.
Describe alternatives you've considered
Right now I draw the mesh, draw the mesh in the extruded direction using transform.
Then, I calculate the edges and perform a linearSweep to create the side.

Great suggestion! The native method is PolyfaceHeader::SweepToSolid(). I'll work on porting this to PolyfaceBuilder.

Thank you again for working on this. @dassaf4
Just wanted to know, do you have an ETA on this?

Looking like a couple more days.