Release/2.2.1

Release/2.2.1
MOB-1063
Github PR #66
Jira Ticket MOB-1063

Added shippingAmount and poNumber to TransactionRequest so that integrating apps can now pass those in
Slightly refactored TakeMobileReaderPayment to make it a little more testable

MOB-1162 Fix rounding issue in Amount(dollars:) initializer
Github PR #67
Jira Ticket MOB-1162
MOB-1195 Update iOS SDK to use newest ChipDNA version
Github PR #68
Update ChipDNA to 3.05.87045472, the most recent version of the SDK.
THIS HAS NO FUNCTIONALITY CHANGES
MOB-1246 should be able to initialize without mobile reader credentials
Github PR #70

Fixes #76


TypeError when pane has no 'pane_current_path' key

Traceback (most recent call last):
  File "/usr/local/bin/tmuxp", line 9, in <module>
    load_entry_point('tmuxp==0.1.12', 'console_scripts', 'tmuxp')()
  File "/usr/local/lib/python2.7/dist-packages/tmuxp/cli.py", line 975, in main
    command_freeze(args)
  File "/usr/local/lib/python2.7/dist-packages/tmuxp/cli.py", line 351, in command_freeze
    sconf = freeze(session)
  File "/usr/local/lib/python2.7/dist-packages/tmuxp/workspacebuilder.py", line 308, in freeze
    'cd ' + p.get('pane_current_path')
TypeError: coercing to Unicode: need string or buffer, NoneType found

I have somehow managed to not have a current path for a pane in my tmux session.

@amonsch Do you still get this error?
I'm interested to know what path you were in when you tried to freeze your session. I'd like to be able to recreate this.


Refactor: Move AttachMenu to its own file

Override failing test not related to this change:
/override "Red Hat Konflux / ols-enterprise-contract / lightspeed-console"


Documentation for public API

This provides documentation for the entire public API except for the World::run() method, since this method is going to be changing a lot with the work to be done on #42.
This addresses part of #4, but does not close it completely. The private API should also be documented, although thorough examples are not required.

Codecov Report

Merging #43 (7ef09f5) into master (19e9a4b) will decrease coverage by 0.02%.
The diff coverage is 0.00%.

:exclamation: Current head 7ef09f5 differs from pull request most recent head 344396d. Consider uploading reports for the commit 344396d to get more accurate results

@@            Coverage Diff             @@
##           master      #43      +/-   ##
==========================================
- Coverage   19.30%   19.28%   -0.03%
==========================================
  Files          50       50
  Lines        3668     3672       +4
==========================================
  Hits          708      708
- Misses       2960     2964       +4

Impacted Files
Coverage Δ

src/entities/mod.rs
0.00% <ø> (ø)

src/entity/identifier/mod.rs
100.00% <ø> (ø)

src/hlist.rs
0.00% <ø> (ø)

src/lib.rs
100.00% <ø> (ø)

src/query/result/iter.rs
0.00% <ø> (ø)

src/query/result/par_iter.rs
0.00% <ø> (ø)

src/registry/seal/storage.rs
20.77% <0.00%> (-0.28%)
:arrow_down:

src/system/mod.rs
0.00% <ø> (ø)

src/system/null.rs
0.00% <ø> (ø)

src/system/par.rs
0.00% <ø> (ø)

... and 5 more

Continue to review full report at Codecov.

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


Add query-params, form-params, body and basic-auth to request docstring

Not sure if they where missing on purpose, but I like them
documented in the docstring so I can check all available options
from cider instead of opening the readme.

Please answer the following questions and leave the below in as part of your PR.

[X] I have read the developer documentation.

[ ] This PR corresponds to an issue with a clear problem statement.

[ ] This PR contains a test to prevent against future regressions

[ ] I have updated the CHANGELOG.md file with a description of the addressed issue.

Thanks!


add compress configuration for addonfactory

there will be a large workload in manifestWork if there are several CRDs in the addon manifests. in CRD, the Description info  takes up the most of size.
so  add compress config for the addonfactory build, currently we only support to remove the Description info of CRDs to reduce the workload size of manifestWork.
Signed-off-by: Zhiwei Yin<EMAIL_ADDRESS>

/assign @qiujian16


Optimize away get_parity_rows

Clone the rows from matrix and store the parity rows along with the internal matrix in codec.

Turns out that's not possible or necessary.
This has been gone through very intially actually but I forgot about it, and the current solution is sufficiently cheap.


Play Store Rejection Risk Due to use exact alarm

I noticed your package uses the use exact alarm permission. According to Play Store policies, this permission is restricted to apps with core alarm/calendar functionality. This could cause issues for apps using your package that don't fall into these categories. Could you consider alternative approaches for scheduling notifications to avoid this restriction? Also, could you please provide guidance on how to override the default AndroidScheduleMode.exact setting?

Hi @ruwiss,
Thanks for the PR.
I've just merged this and it's in the latest release for the framework, the new default for androidScheduleMode is AndroidScheduleMode.exactAllowWhileIdle


fix issue #1780

make is* methods public

This PR has multiple unrelated changes, so I am not inclined to merge.
Please also use descriptive PR titles and comments. Not the bug number (it might surprise you to know that I do not memorize every bug number), but a functional description of the change.


roll 'em all into one

[ ] closes #xxxx
[ ] tests added / passed
[ ] docs reflect changes
[ ] passes flake8 datafs examples tests docs
[ ] whatsnew entry

Coverage increased (+0.06%) to 96.39% when pulling 01c0506e81daa73ccb4a8adddfe3993e112cda43 on master-conda-update into a43761d2dc872d7e519c6f2d499d3d0a276bb405 on pyup-update-dask-0.15.0-to-0.15.1.


GH-93: Consume from existing queue

Resolves https://github.com/spring-cloud/spring-cloud-stream-binder-rabbit/issues/93
The Rabbit binder consumes from a queue named <destination>.<group>.
Add a property to omit the <destination>. part so users can use SCSt to consume from
existing queue(s).

Revised; I am not sure what you mean by

Although I would say the queue per se is confusing here anyway...

Note that this commit is for the 1.3.x branch; needs cherry-picking to master.

My concern that I don't understand why should we declare queue on the producer side at all.
Looks like the purpose of this request to be able to consume from the existing queue.
So, for me that looks like bindQueue = false on the producer side is fully enough: you still able to publish to the exchanges with an appropriate routing key and don't care who and how is bound to it.
I won't mind for proposed solution, but I would like to understand the mechanics a bit on the producer side.
Thanks

My concern that I don't understand why should we declare queue on the producer side at all.

See requiredGroups.

A comma-separated list of groups to which the producer must ensure message delivery even if they start after it has been created (e.g., by pre-creating durable queues in RabbitMQ).

It is a mechanism to avoid losing messages if the producer is deployed before the consumer. If we don't bind a queue during producer initialization, any messages sent before all the consumers are deployed will be lost.
There are several such producer properties; they are all tagged with...

Only applies if requiredGroups are provided and then only to those groups.

...in the reference manual.

We are waiting for this snapshot to unblock our high priority story .Would it be possible to merge this if everything looks good ?
@artembilan  @garyrussell

@omprak: As you'd notice, there's active discussion in progress - we can't just merge it already. Once we get to a consensus, we will move forward with it. Thanks for your patience.

Merged.
Will be available soon as 1.3.1.BUILD-SNAPSHOT.
And will be cherry-picked to master - for 2.0 version.
Although I still have some concerns they might be just because I don't know the features of this binder pretty well. I'll dig Docs and code to understand more lately. And if something crosses my mind, I'll raise appropriate issues.


Support Autoscaling replicatedJob

What would you like to be added:
I would like to support scale subresource and the metrics corresponding to HPA resource like this:
apiVersion: jobset.x-k8s.io/v1alpha2
kind: JobSet
metadata:
  name: autoscaling-sample
spec:
  scalePolicy:
    replicatedJobName:  workers  # Job Name
    replicas: 2                  # scaling target
    autoscaling:                 # typed `[]autoscalingv2.MetricSpec`
      minReplicas: 1
      maxReplicas: 10
      metrics:
        [...]
  replicatedJobs:
  - name: workers
[...]

Why is this needed:
In the machine learning field, we often support elastically scaling worker nodes such as PyTorch Elastic.
Here is Kubeflow TrainingOperator Example: https://github.com/kubeflow/training-operator/blob/e31d11faa9f6ce5111b60c01079d39295589e0ef/pkg/apis/kubeflow.org/v1/pytorch_types.go#L98-L135

cc: @andreyvelich @ahg-g

/kind feature

Thanks @tenzen-y, support for scale subresource was part of the original JobSet design https://bit.ly/k8s-jobset but we haven't been able to prioritize it yet. We will likely need other developers to do the implementation here, since I am currently busy with other work.

Thanks @tenzen-y, support for scale subresource was part of the original JobSet design https://bit.ly/k8s-jobset but we haven't been able to prioritize it yet. We will likely need other developers to do the implementation here, since I am currently busy with other work.

Yeah, actually during JobSet design in https://bit.ly/k8s-jobset, I mentioned the scale subresource :)
For sure, if anyone doesn't have enough bandwidth, I may be able to take this issue, but I'm not confident that I definitely have sufficient bandwidth for this issue now.

@tenzen-y it would be helpful if you or others could take this on, a short KEP would be great so we can align on the API changes to JobSet

@tenzen-y it would be helpful if you or others could take this on, a short KEP would be great so we can align on the API changes to JobSet

Yeah, definitely should create a small KEP. Once I find the time, I will try to assign this issue to me.

/remove-lifecycle stale

I can refer to this issue and try to implement it. I am willing to give it a try. :)

/assign

After the poc test, I found some problems.
I want to use this method to implement the scale subresource.
like this:
// +kubebuilder:subresource:scale:specpath=.spec.replicatedJobs[*].replicas,statuspath=.status.replicatedJobsStatus[*].active,selectorpath=
but got.
root@VM-0-6-ubuntu:/home/ubuntu# kubectl get hpa
NAME             REFERENCE               TARGETS              MINPODS   MAXPODS   REPLICAS   AGE
network-jobset   JobSet/network-jobset   cpu: <unknown>/80%   1         3         0          10h
root@VM-0-6-ubuntu:/home/ubuntu# kubectl describe hpa
Name:                                                  network-jobset
Namespace:                                             default
Labels:                                                <none>
Annotations:                                           <none>
CreationTimestamp:                                     Wed, 11 Sep 2024 22:46:13 +0800
Reference:                                             JobSet/network-jobset
Metrics:                                               ( current / target )
  resource cpu on pods  (as a percentage of request):  <unknown> / 80%
Min replicas:                                          1
Max replicas:                                          3
JobSet pods:                                           0 current / 0 desired
Conditions:
  Type         Status  Reason          Message
  ----         ------  ------          -------
  AbleToScale  False   FailedGetScale  the HPA controller was unable to get the target's current scale: Internal error occurred: the spec replicas field ".spec.replicatedJobs[*].replicas" does not exist
Events:
  Type     Reason          Age                     From                       Message
  ----     ------          ----                    ----                       -------
  Warning  FailedGetScale  2m43s (x2461 over 10h)  horizontal-pod-autoscaler  Internal error occurred: the spec replicas field ".spec.replicatedJobs[*].replicas" does not exist
root@VM-0-6-ubuntu:/home/ubuntu#

I'd like to implement this without changing too many of the original APIs, but []ReplicatedJob seems to be the main reason to implement this scale subresource.
// JobSetSpec defines the desired state of JobSet
type JobSetSpec struct {
	// ReplicatedJobs is the group of jobs that will form the set.
	// +listType=map
	// +listMapKey=name
	ReplicatedJobs []ReplicatedJob `json:"replicatedJobs,omitempty"`
...
}

/remove-lifecycle stale


i thik source fixed now arcana

i think source sync fixed because it sync ok on cirrus community cluster

Source is not ready yet

And wtf you building if xootd have official
And the official also using cirrus

And wtf you building if xootd have official And the official also using cirrus

u mean if any device has official build we should not build another right🤔🤔🤔🤔🤔


Making sure that DocBot exits with appropriate error codes and helpful error messages (stderr) in all cases. If there are no errors, exit with 0. Otherwise, exit with a non-zero exit code (e.g., 1).

Description of the Solution
It was existing in some cases, but not all.
api.py

In this code block an system exit code is mentioned with 1 when there is no API Key provided.

In this code block the system exit with 1, when the Gorq client fails to initialize, another one is when there is no source file found and also when there is an error when  the source file fails to read.

Next one is when there is an IO error, if it fails to write the generated content it will raise an system error with 1, and finally an error when Gorq clients fails to generate a README.
DocBot.py

In this first screenshot, we can see that there is a system error with 0, when the version call is displaying successfully. Next two are of exit calls with 1, in which first one when there is no file is provided and the other one is about when there is no file in existence in the given path.

In this screenshot we can see that there is three system exit calls with 1, first case is when the README generation is failed, second one is the same in this case when there is no multi file and the README generation fails. Finally it is when the writing  the README to the file fails.
I believe this is very use fully in the future for proper error handling and debugging information,Thus this feature should be implemented.

60d3b22
Issue closed with pull request #8


Suppress console.log output from tests that succeed

I do not want to see debug output from tests that succeed but would like to see it for tests that fail. Is there a way to achieve this currently?
I have seen some recommendations to only conditionally log based on environment variables in responses to similar questions but I would like to see the debug information if the test fails which is slightly different. It seems like that would be a mocha level or reporter level feature, not something the code under test could control.

@justinmchase Only via plugins, if any exist. No place for this in mocha's core, imo.
Proxying console.log feels error prone. As a first thought, safest bet feels like creating a log utility that stores the calls' argument arrays to later log them on test 'fail' (via hooking into mocha).

Thanks for the reply! That sounds totally reasonable.
Do you have an example of hooking into the mocha fail event that I could reference? I am having trouble figuring out where to begin.

This is an old issue, but I found this StackOverflow answer useful. Inspecting this.currentTest.state in an afterEach handler on the root suite looks like a good way to hook into all test failures.
// On the root suite - so outside any describe() block
afterEach(function() {
  if (this.currentTest.state === 'failed') {
    // a test just failed
  }
  if (this.currentTest.state !== 'passed') {
    // a test, before(), beforeEach() hook just failed
  }
});

There's been a pretty long thread about this in the past. A possible workaround was proposed here: https://github.com/mochajs/mocha/issues/1582#issuecomment-87464832

there should be a flag --errors-only, which would mean the only Mocha output would be for failing tests, but not sure if it exists.

The solution I've come up with since is to use the debug package and to use that in all of your code. Then you can send a command line flag to turn on console logging in tests as desired.
var debug = require('debug')
var log = debug('myapp')

log('useful debugging output')

Then when run:
$ mocha # no console output from app

or
$ DEBUG=myapp mocha # prints out console output from app

@justinmchase Not sure to quite understand.
I'm developing a console app which logs things. I don't want these logs to happen during tests because it could potentially render mocha output unreadable. How does your solution apply to this ?

For a lot of apps, console logging is only for developer debugging, like for a webserver maybe. In those cases just using the debug library works great.
If your app is itself an actual console application, which intentionally emits console output as a feature then you'll probably need another layer of abstraction. One other thing i have done since this issue was originally opened, which I thought worked well is to separate the logic of the application from the console front end part of the application. Sort of treat it like your code may have multiple front ends and then treat your tests as a 2nd front-end.
Or in other words, do not actually do any console logging inside of your application but instead emit events which the front end can handle. In the case of the console front-end, it will result in writes to standard out. In the case of unit tests it will result in passing/failing assertions.
For example:
// console.js
import { App } from './app'

const app = new App()
app.on('started', () => console.log('application started...')
app.on('done', () => console.log('application done.')
app.run()

// app.spec.js
import { App } from './app'
import sinon from 'sinon'
import { expect } from 'chai'

it('runs successfully', (done) => {
  const started = sining.stub()
  const app = new App()
  app.on('started', started)
  app.on('done', () => {
    expect(started.called).to.be.true
    done()
  })
  app.start()
})

The point is that the code in App does not actually call console.log anywhere. Instead it is emitting events or messages or whatever pattern you want irrespective of how those events is displayed to the end user or interpreted by the front-end.

my only advice would be to use a logging module like bunyan instead of console.log and filter out the output that is above level error

@justinmchase I really like this idea of the console front end... It looks kind of obvious when you think of it.
My current solution is to mock console.log with https://github.com/sinonjs/sinon, make expectations about what it should log and then calling the original console.log through for what is not expected.
https://github.com/bastienmichaux/db-importer/blob/dev/test/test-db-commons.js#L17-L21
Your solution is much cleaner... Well, my logging activity is tested now.

I can't believe this is not a "thing", I am new to using TDD and one of the first things that annoys me is on
test failure I end up inserting console.log's in tests to check object states etc, then when all fixed I am back removing all log's as it pushes results output out of view of console window.
I would love something like onTestFail( console.log(....) );

I agree. During development I will often console.log complex objects, for example React props from HOC components like Apollo. This works great in browser were the object can be collapsed and expanded, but just one of those during tests can render the output next to useless.
Like @sladec I'm confused as to how this is not a common problem with a built-in solution, but that is the case with many issues I've hit upon adopting Mocha and TDD.
In any case another workaround if you use Webpack might be to suppress console.log in your test config. A quick search suggests using UglifyJSPlugin or something like webpack-strip. I haven't tested it though..

Again, @ViggoV I think what you should do is use the debug library instead of console.log directly for in app debugging. Then to emit actually to the console in your app, handle events in a front-end component which logs to the console.
For example:
import debug from 'debug'

const log = debug('server');

export function server () {
  // ...
  debug('server started...')
}

Now when you run this locally or in a test nothing will be written to stdout by default. To enable this debug output to be written to stdout you would enable it with an environment variable.
For example:
$ npm test              # <> is emitted
$ DEBUG=server npm test # <server started...> is emitted

Unfortunately ~if~ when some prerequisite package contains 'console.log' calls, we have very few control over it at that level.
For example, oas3-tools 2.0.2 contains page-long dumps from here:
./node_modules/oas3-tools/dist/middleware/swagger.router.js:36:
console.log("handlerCache[handlerId]: "); console.log(handlerCache[handlerId]);
As I can't pause our processes for months until a fix for that would make it to the official packages, (and this is just one such package among several,) all I can do now is to suppress these messages on the test-suite level.
Now, I'll need one of the hacks/workarounds, which will make the testcases more complex: As I don't intend to copy it into each and every testcase file, I'll need to compartmentalize it into some module and refer that from the testcase files, and so on.
I think I'm not alone with this issue, and now each of us is reinventing the same wheels, reimplementing the same workarounds, so if there is popularity survey for having that as a built-in framework feaure, you definitely have my vote for it.

I wrote my own module to solve the same exact issue with minimal effort so I'll leave a link if anyone is interested.
https://www.npmjs.com/package/mocha-suppress-logs
Here's some example code that will hide logs of tests that succeed and show only the ones of tests that failed:
const suppressLogs = require('mocha-suppress-logs');

describe('Something', () => {
  suppressLogs();

  it('should do something', () => {
    // test code
  });
});

You can also do so globally over the entire test suite.


Add okokNotify Compatibility

Hi @KamiDaStreet Thank you for the contribution.
However the way it is implemented is not how I want it to be and has a lot of flaws in terms of scaling it to more notification systems. So I will have to close this PR


Faster U3 composition

What should we add?
Recently dealing with circuits with large numbers of U / U3 gates has become important.  When looking into the composition of U3 gates Optimize1qGates it was noted that (if you use U over U3 due to overheads in the latter) that Optimize1qGates.compose_u3, and in particular calls to Quaternion become the bottleneck.  It would be nice to push this bit of code down into Rust to get an easy 100x improvement in compose_u3.  Here is some example Cython code that is a drop in replacement for the current code, and is hopefully easy for someone to port over:

import numpy as np
cimport numpy as np
cimport cython

from libc.stdlib cimport malloc, free
from libc.math cimport cos, sin, atan2, acos, M_PI, abs

@cython.boundscheck(False)
@cython.cdivision(True)
def cy_compose_u3(double theta1, double phi1, double lambda1, double theta2, double phi2, double lambda2):
    cdef double[::1] out_angles = np.zeros(3, dtype=float)
    cdef size_t kk

    # temp arrays
    cdef double * q = <double *>malloc(3*sizeof(double))
    cdef double * r = <double *>malloc(3*sizeof(double))
    cdef double * s = <double *>malloc(3*sizeof(double))
    cdef double * temp = <double *>malloc(4*sizeof(double))
    cdef double * out = <double *>malloc(4*sizeof(double))
    cdef double * mat = <double *>malloc(9*sizeof(double))
    cdef double * euler = <double *>malloc(3*sizeof(double))

    q[0] = cos(theta1/2.0)
    q[1] = 0
    q[2] = sin(theta1/2.0)
    q[3] = 0

    r[0] = cos((lambda1 + phi2)/2.0)
    r[1] = 0
    r[2] = 0
    r[3] = sin((lambda1 + phi2)/2.0)

    s[0] = cos(theta2/2.0)
    s[1] = 0
    s[2] = sin(theta2/2.0)
    s[3] = 0

    # Compute YZY decomp (q.r.s in variable names)
    temp[0] = r[0] * q[0] - r[1] * q[1] - r[2] * q[2] - r[3] * q[3]
    temp[1] = r[0] * q[1] + r[1] * q[0] - r[2] * q[3] + r[3] * q[2]
    temp[2] = r[0] * q[2] + r[1] * q[3] + r[2] * q[0] - r[3] * q[1]
    temp[3] = r[0] * q[3] - r[1] * q[2] + r[2] * q[1] + r[3] * q[0]

    out[0] = s[0] * temp[0] - s[1] * temp[1] - s[2] * temp[2] - s[3] * temp[3]
    out[1] = s[0] * temp[1] + s[1] * temp[0] - s[2] * temp[3] + s[3] * temp[2]
    out[2] = s[0] * temp[2] + s[1] * temp[3] + s[2] * temp[0] - s[3] * temp[1]
    out[3] = s[0] * temp[3] - s[1] * temp[2] + s[2] * temp[1] + s[3] * temp[0]

    # out is now in YZY decomp, make into ZYZ
    mat[0] = 1 - 2 * out[2] * out[2] - 2 * out[3] * out[3]
    mat[1] = 2 * out[1] * out[2] - 2 * out[3] * out[0]
    mat[2] = 2 * out[1] * out[3] + 2 * out[2] * out[0]
    mat[3] = 2 * out[1] * out[2] + 2 * out[3] * out[0]
    mat[4] = 1 - 2 * out[1] * out[1] - 2 * out[3]*out[3]
    mat[5] = 2 * out[2] * out[3] - 2 * out[1] * out[0]
    mat[6] = 2 * out[1] * out[3] - 2 * out[2] * out[0]
    mat[7] = 2 * out[2] * out[3] + 2 * out[1] * out[0]
    mat[8] = 1 - 2 * out[1] * out[1] - 2 * out[2] * out[2]

    # Grab the euler angles
    if mat[3*2+2] < 1.0:
        if mat[3*2+2] > -1.0:
            euler[0] = atan2(mat[3*1+2], mat[3*0+2])
            euler[1] = acos(mat[3*2+2])
            euler[2] = atan2(mat[3*2+1], -mat[3*2+0])
        else:
            euler[0] = -atan2(mat[3*1+0], mat[3*1+1])
            euler[1] = M_PI
    else:
        euler[0] = atan2(mat[3*1+0], mat[3*1+1])

    for kk in range(3):
        if abs(euler[kk]) < 1e-15:
            euler[kk] = 0.0

    out_angles[0] = euler[1]
    out_angles[1] = phi1+euler[0]
    out_angles[2] = lambda2+euler[2]

    # free pointers
    free(q)
    free(r)
    free(s)
    free(temp)
    free(out)
    free(mat)
    free(euler)

    return np.asarray(out_angles)

Thanks Paul - this is definitely a good candidate for moving into Rust.  I don't know if anybody external to Terra is using the Quaternion class. Perhaps we could move that entire thing into Rust, and everyone can have the speed-ups if so.
@HM0880: you mentioned you were interested in getting started on some Rust bits and bobs.  This might be another good choice for you, if you'd like.  No pressure, just flagging it so you know.

I have some interest in this improvement and could potentially try porting to Rust (at least the Cython snippet, not sure about all of Quaternion). Just to check first:

@HM0880 Would you like to work on this as @jakelishman suggested above? It's great if you'd like to, but if not I'm also happy to try.
@ajavadia / @nonhermitian  Does it still make sense to move this code to Rust given other ongoing work in this area? Or e.g. do you expect this code is about to be replaced by something that also handles Parameters?
I just started learning Rust, so while this looks straightforward I might need some feedback to optimize well.

I think there are two different workstreams.  One is to do symbolic manipulation for special cases where it is possibly faster to do so.  The second is basically this issue here, where faster numerical manipulation is desired.  As such, I think it is fine to go head with this.
Moving the whole class to Rust seems like something interesting to try.  That would give performance somewhere between doing it all in one shot (as the code above does) and the current NumPy code; You would still have some NumPy array creation overhead, but not as much as is there now.

As was mentioned by @mtreinish , this particular piece of code is not used in the preset passmanagers.  Those rather use Optimize1qGatesDecomposition.  Unlike here, where the form of the matrix is defined by the U angles, Optimize1qGatesDecomposition works on arbitrary gates by first expressing their matrix representation and then performing multiplication.  This is more difficult to speed up then the case here.  Namely there are multiple NumPy arrays being created in the process, and that becomes the bottleneck; the __array__ method of the gates is near the top of the profiling.  Perhaps if each gate had its decomposition in terms of U gate angles as an attribute then that routine could see similar benefits.
As a general statement, we are working in kind of a worst case regime for using Python and NumPy as numerics because the overheads of function calls and array creation takes longer than the floating-point evaluations for such small matrices.

It would require a pretty major reorg of the circuit data structures, but if we moved the parameters out of the gate instances and into a numpy tensor. Ie the circuit has a (n1,2,2) tensor for all the 1q gates, a (n2,4,4) tensor for all the 2q gates, etc, and the gate instances have indices into the corresponding tensor. If we had that then the unroll-all-the-1q-gates-in-a-circuit type cases could be vectorized nicely and avoid all the numpy dispatch overhead. Ie, instead of the current (pseudocode):
for g in oneq_gates:
    u = np.array(g)
    theta = 2 * math.atan2(abs(u[1, 0]), abs(u[0, 0]))
    phiplambda2 = cmath.phase(u[1, 1])
    phimlambda2 = cmath.phase(u[1, 0])
    phi = phiplambda2 + phimlambda2
    lam = phiplambda2 - phimlambda2

instead have a (n, n, 2) tensor us of all the 1q unitaries and do the decomposition on all of them at once:
thetas = 2 * np.arctan2(abs(us[:, 1, 0]), abs(us[:, 0, 0]))
phiplambda2s = np.angle(us[:, 1, 1])
phimlambda2s = np.angle(us[:, 1, 0])
phis = phiplambda2s + phimlambda2s
lams = phiplambda2s - phimlambda2s

Some dirty tests with %timeit suggests about 200x speedup from this kind of vectorization.
I'm also assuming here that the internal working representation of gates would become the unitary matrix, which also saves a lot of time from the repeated conversions between unitary and euler representations we otherwise end up doing during compilation, delaying that to conversion just once at the final stage. I looked into using 1q unitaries internally a while back and it was complicated by UnitaryGate being in qiskit/extensions rather than part of the circuit library. Somehow this caused circular import problems or something - I don't remember the exact issue.

could consider moving the parameters out of the gate instances and into a numpy tensor

interesting idea, though that's a bigger project than I'm personally up for at the moment. 😅
Since it sounds useful at least in the short term, here's a first draft of a Rust port of the Cython snippet above. It agreed with Cython on a set of random imports (further below). I have not looked at timing yet.
const PI:f64 = std::f64::consts::PI;

fn compose_u3_rust(theta1:f64, phi1:f64, lambda1:f64,
                   theta2:f64, phi2:f64, lambda2:f64) -> [f64; 3] {

    let q = [(theta1/2.0).cos(), 0., (theta1/2.0).sin(), 0.];
    let r = [((lambda1+phi2)/2.0).cos(), 0., 0., ((lambda1+phi2)/2.0).sin()];
    let s = [(theta2/2.0).cos(), 0., (theta2/2.0).sin(), 0.];

    // Compute YZY decomp (q.r.s in variable names)
    let temp: [f64; 4] = [
    r[0] * q[0] - r[1] * q[1] - r[2] * q[2] - r[3] * q[3],
    r[0] * q[1] + r[1] * q[0] - r[2] * q[3] + r[3] * q[2],
    r[0] * q[2] + r[1] * q[3] + r[2] * q[0] - r[3] * q[1],
    r[0] * q[3] - r[1] * q[2] + r[2] * q[1] + r[3] * q[0]
    ];

    let out: [f64; 4] = [
    s[0] * temp[0] - s[1] * temp[1] - s[2] * temp[2] - s[3] * temp[3],
    s[0] * temp[1] + s[1] * temp[0] - s[2] * temp[3] + s[3] * temp[2],
    s[0] * temp[2] + s[1] * temp[3] + s[2] * temp[0] - s[3] * temp[1],
    s[0] * temp[3] - s[1] * temp[2] + s[2] * temp[1] + s[3] * temp[0]
    ];

    // out is now in YZY decomp, make into ZYZ
    let mat: [f64; 9] = [
    1. - 2. * out[2] * out[2] - 2. * out[3] * out[3],
    2. * out[1] * out[2] - 2. * out[3] * out[0],
    2. * out[1] * out[3] + 2. * out[2] * out[0],
    2. * out[1] * out[2] + 2. * out[3] * out[0],
    1. - 2. * out[1] * out[1] - 2. * out[3]*out[3],
    2. * out[2] * out[3] - 2. * out[1] * out[0],
    2. * out[1] * out[3] - 2. * out[2] * out[0],
    2. * out[2] * out[3] + 2. * out[1] * out[0],
    1. - 2. * out[1] * out[1] - 2. * out[2] * out[2]
    ];

    // Grab the euler angles
    let mut euler: [f64; 3] = [0.,0.,0.];
    if mat[3*2+2] < 1.0 {
        if mat[3*2+2] > -1.0 {
            euler[0] = mat[3*1+2].atan2(mat[3*0+2]);
            euler[1] = (mat[3*2+2]).acos();
            euler[2] = mat[3*2+1].atan2(-mat[3*2+0]);
        } else {
            euler[0] = -1.*(mat[3*1+0].atan2(mat[3*1+1]));
            euler[1] = PI;
        }
    } else {
        euler[0] = mat[3*1+0].atan2(mat[3*1+1]);
    }
    for kk in 0..3 {
        if euler[kk].abs() < 1e-15 {
            euler[kk] = 0.0;
        }
    }

    let out_angles: [f64; 3] = [euler[1], phi1+euler[0], lambda2+euler[2]];
    out_angles
}

I ran the Cython code on 1000 random pairs of input u3 angles:
random_angles = np.random.rand(1000,6)*2*np.pi
for angles in random_angles:
    results_cython.append(cy_compose_u3(*angles))

and found they equaled the results of feeding the same random_angles into the Rust function (function call not shown):

So remaining steps could be:

check the timing & optimize as appropriate
integrate with Qiskit (I need to learn how)
test/verify vs original Qiskit behavior

That looks like a good start it should be pretty performant there are no obvious performance red flags to me. To integrate it into qiskit it's pretty easy, you just leverage the #[pyfunction] macro from pyo3 to have it generate the python c api interface function and then add that to a module (either a new one or as part of an existing one). https://github.com/Qiskit/qiskit-terra/blob/main/src/sparse_pauli_op.rs#L63-L67 is a simple example of this (with the pyfunction use on L39). The only other thing to do is if adding a new module (instead of putting it in an existing one) is to add that to the root _accelerate module here: https://github.com/Qiskit/qiskit-terra/blob/main/src/lib.rs#L41-L48 and add the submodule path to qiskit: https://github.com/Qiskit/qiskit-terra/blob/main/qiskit/init.py#L23-L31

Thanks, hopefully I have it configured correctly now. Seeing 20-40x speedup (may depend on the random angles chosen). I guess I'll just remove the original function definition and make a PR.

The original Cython code gave around 60x, so seems about right.


Slovak Translations

It definitely contains some typos. I will double check all translations tomorrow. But I also plan to start using FL in Slovak as soon as this is deployed and I will fix any typos as I find them.

@rakvat All your comments are valid, I somehow missed those! Thank you!

@reneklacan wow... money... that was quick... you hire someone to do that?!?! :-p

@johnbaku then it's good that you don't mind!


Updating SQL 2017 CU23 links

SQL CU23 CABs are same as CU22, updating table

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


Adding relevant heartbeat config to common settings

Since the stomp connector was complaining about heartbeat not being set, I decided to expand the module to include a default heartbeat_interval of 30 secs, that can be overridden in the class declaration.

Hi, sorry this was not touched for over a year.
It looks good to me, generally, but there should be tests. @frconil do you feel up to the task of adding some?

I'll give it a try after I rebase my changes I guess.

Great! Please let us know if you hit any snags along the way.

@frconil how're you getting along?
if you need help you can come online in #puppet-community (on freenode)

Sorry for the delay. Will these do?

LGTM :+1:

thanks all!


When creating REST APi using SOAP endpoint, get "Cannot access referenced schema for the schema defined at: " + schemaUrl" warn if not having the "schemaLocation" as an attribute

Steps for reproducing:

Used this wsdl[1] and generated the REST api
Then print the warn as follows.

WARN {org.wso2.carbon.apimgt.impl.soaptorest.WSDL11SOAPOperationExtractor} -  Cannot access referenced schema for the schema defined at: http://schemas.xmlsoap.org/soap/encoding/ {org.wso2.carbon.apimgt.impl.soaptorest.WSDL11SOAPOperationExtractor}
Debug result:
referenced schema become null and print the warn. Reason is schemaLocation become null and unable to find that through the namespace value.
Schema referencedSchema = ((SchemaImport) schemaVector).getReferencedSchema();
if (referencedSchema != null && referencedSchema.getElement() != null) {
    if (referencedSchema.getElement().hasChildNodes()) {
        schemaNodeList.addAll(SOAPOperationBindingUtils
                .list(referencedSchema.getElement().getChildNodes()));
    } else {
        log.warn(
                "The referenced schema : " + schemaUrl + " doesn't have any defined types");
    }
} else {
    log.warn("Cannot access referenced schema for the schema defined at: " + schemaUrl);
}

In this case, only the WSDL namespace will be populated in the schemaVector object since there's no defined schemaLocation in the import. We might need to investigate if there's a way to get the referenced schema only using WSDL namespace in wsdl4j library.
Workaround:
If set the "schemaLocation" in the WSDL as an attribute like below, can overcome this issue.
<s:schema targetNamespace="http://ws.cdyne.com/PhoneVerify/query/AbstractTypes">
      <s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" schemaLocation="http://schemas.xmlsoap.org/soap/encoding/"/>
      <s:complexType name="StringArray">

Action Item:
Need to check this behaviour further and identify a mechanism to get the schema when only configured the namespace on WSDL.
[1]. http://ws.cdyne.com/phoneverify/phoneverify.asmx?wsdl

@nadeepoornima In which version, is this reproduced?
Please add or suggest appropriate labels (issue type, priority, etc.) to the issues when you create them.

Hi Samitha,
It is reproducing in APIM 2.6.0. Please not we don’t have put labels or set
priority permission. If possible please add them.
Thanks,
Nadee
On Mon, Oct 14, 2019 at 5:14 PM Samitha Chathuranga <
<EMAIL_ADDRESS>wrote:

@nadeepoornima https://github.com/nadeepoornima In which version, is
this reproduced?
Please add or suggest appropriate labels (issue type, priority, etc.) to
the issues when you create them.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/wso2/product-apim/issues/5897?email_source=notifications&email_token=ADUBNHUFKGBWX4WFEAOCJV3QORLSDA5CNFSM4I3CORDKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBEJVEA#issuecomment-541629072,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADUBNHRQ2HVFFNRZ7Z4HDYLQORLSDANCNFSM4I3CORDA
.

Tag

Tagging https://github.com/wso2/product-apim/issues/7130


Add support for Solar AI models

Hello,
I have added a Solar model client. Solar is an LLM and embedding model from Upstage, a company based in South Korea, and is especially optimized for Korean and Japanese embeddings.
Links

Upstage
Solar Embedding Benchmarks

If needed, I can provide my API key for your use.

Hi.  Is this model have openai API compatability?  That would be a preferred direction to ease with maintenance.

@jee14 @markpollack Solar model has OpenAI API compatibility.

Hi. Is this model have openai API compatability? That would be a preferred direction to ease with maintenance.

Yes. Please refer to @jsilverman26 comment.
There are a lot of features that need to be added to this PR (e.g. streaming), but I think more people can participate in the contribution to this model if it merges.


Archiving a report form_change record removes the Generate Reports button[5]

Describe the Bug:
The readonly prop defined here is determined by the length of the set of edges for Quarterly/Annual reports (maybe other places?) being equal to 0. This means that if a report is archived, the component will think it is readonly because the archived report(s) are counted in the set. The readonly prop is used to determine whether or not to show the Generate Reports button, so archiving a report hides that button and all reports from here on must be created manually.
This bug could have other side effects that have not been diagnosed.
This needs some investigation to see if there is a better way to define the readonly prop & if there are other side effects of how this prop is being set.
If it's determined that checking the size of the edges is still the best way to set the readonly prop, then that size check needs to ignore archived reports.
Probability (how likely the bug is to happen, scored from 1-5): 2
Effect (how bad the bug is when it does happen, scored from 1-5): 3
Steps to reproduce the behaviour:
Create a project
See that there is a Generate Reports button on the quarterly/annual report form page
Add a quarterly or annual report
Submit the project
Create a revision
Archive the quarterly/annual report
See that despite there being no reports, the Generate button is still gone
If the readonly prop is logged, you can see that it is set to "true" despite being in edit mode

I think we can have a sql function to determine if we have any other non-archived Quarterly reports for this revision but I feel like that would be an overkill and we can just simply filter out archived form changes.

@dleard suggested renaming the readonly prop to something more meaningful.


tools/omnissm registration api, host initialize, process inventory

amazon systems manager automation for hybrid mode.

Hi @ChrisRx thanks for the review!


IACS-456 Improving uart_mux_disconnect() by checking return values.

These changes are designed to prevent the following issues:

16:48:48  2024-11-11 15:48:47,427 - read_serial_thread_device - INFO - [00:01:15.104,000] <err> modem_cmd_handler: command ATH ret:-116
16:48:48  2024-11-11 15:48:47,427 - read_serial_thread_device - INFO -
16:48:48  2024-11-11 15:48:47,439 - read_serial_thread_device - INFO - [00:01:15.205,000] <err> modem_gsm: AT returned -116, retrying...
16:48:48  2024-11-11 15:48:47,440 - read_serial_thread_device - INFO -
16:48:48  2024-11-11 15:48:48,479 - read_serial_thread_device - INFO - [00:01:16.160,000] <err> gsm_mux: Cannot allocate buffer
16:48:48  2024-11-11 15:48:48,479 - read_serial_thread_device - INFO - [00:01:16.160,000] <err> gsm_mux: [0x2000aa38] Cannot allocate header
16:48:48  2024-11-11 15:48:48,485 - read_serial_thread_device - INFO - [00:01:16.210,000] <err> gsm_mux: Cannot allocate buffer
16:48:48  2024-11-11 15:48:48,485 - read_serial_thread_device - INFO - [00:01:16.210,000] <err> gsm_mux: [0x2000aa38] Cannot allocate header
16:48:48  2024-11-11 15:48:48,486 - read_serial_thread_device - INFO - [00:01:16.212,000] <err> pppsupport: resetting modem
16:48:48  2024-11-11 15:48:48,487 - read_serial_thread_device - INFO -
16:48:53  2024-11-11 15:48:53,632 - read_serial_thread_device - INFO - [00:01:21.307,000] <err> clrc663: SendReqACmd: Error occurred: 0x10
16:48:53  2024-11-11 15:48:53,633 - read_serial_thread_device - INFO - [00:01:21.905,000] <err> gsm_mux: [0x2000aa38] Cannot allocate DLCI 1
16:48:53  2024-11-11 15:48:53,634 - read_serial_thread_device - INFO - [00:01:21.905,000] <err> modem_gsm: Cannot attach DLCI 1 (GSM_2) to serial@40008000 (-12)

and
12:05:48  2024-11-12 11:05:48,074 - pythonlib.cloud.mqtt.client - DEBUG - Sending PINGREQ
12:05:48  2024-11-12 11:05:48,089 - pythonlib.cloud.mqtt.client - DEBUG - Received PINGRESP
12:05:54  2024-11-12 11:05:54,552 - read_serial_thread_device - INFO - [00:29:14.763,000] <err> clrc663: SendReqACmd: Error occurred: 0x10
12:05:54  2024-11-12 11:05:54,553 - read_serial_thread_device - INFO -
12:05:56  2024-11-12 11:05:55,874 - read_serial_thread_device - INFO - [00:29:16.084,000] <err> clrc663: SendReqACmd: Error occurred: 0x10
12:05:56  2024-11-12 11:05:55,875 - read_serial_thread_device - INFO -
12:06:30  2024-11-12 11:06:26,020 - read_serial_thread_device - INFO - [00:29:46.233,000] <err> gsm_mux: [0x2000aa38] Cannot allocate DLCI 1
12:06:30  2024-11-12 11:06:26,021 - read_serial_thread_device - INFO - [00:29:46.233,000] <err> modem_gsm: Cannot attach DLCI 1 (GSM_2) to serial@40008000 (-12)
12:06:30  2024-11-12 11:06:26,022 - read_serial_thread_device - INFO -
12:06:30  2024-11-12 11:06:30,903 - read_serial_thread_device - INFO - [00:29:51.116,000] <err> pppsupport: resetting modem
12:06:30  2024-11-12 11:06:30,904 - read_serial_thread_device - INFO -
12:06:33  2024-11-12 11:06:33,227 - tests.conftest - INFO - Fixture cleanup: default_settings
12:06:33  2024-11-12 11:06:33,455 - pythonlib.cloud.mqtt.client - DEBUG - Received PUBLISH (d0, q0, r0, m0), '$aws/things/acs-test-system/shadow/update/delta', ...  (386 bytes)
12:06:33  2024-11-12 11:06:33,457 - pythonlib.cloud.mqtt.client - DEBUG - Received PUBLISH (d0, q0, r0, m0), '$aws/things/acs-test-system/shadow/update/accepted', ...  (1259 bytes)
12:06:33  2024-11-12 11:06:33,459 - pythonlib.cloud.mqtt.client - DEBUG - Received PUBLISH (d0, q0, r0, m0), '$aws/things/acs-test-system/shadow/update/documents', ...  (2522 bytes)
12:06:34  2024-11-12 11:06:34,500 - read_serial_thread_device - INFO - [00:29:54.711,000] <inf> cloudstatemachine: Sync of 0x1f requested while online
12:06:34  2024-11-12 11:06:34,501 - read_serial_thread_device - INFO -
12:06:36  2024-11-12 11:06:36,622 - read_serial_thread_device - INFO - [00:29:56.838,000] <err> gsm_mux: [0x2000aa38] Cannot allocate DLCI 1
12:06:36  2024-11-12 11:06:36,623 - read_serial_thread_device - INFO - [00:29:56.838,000] <err> modem_gsm: Cannot attach DLCI 1 (GSM_2) to serial@40008000 (-12)
12:06:36  2024-11-12 11:06:36,623 - read_serial_thread_device - INFO -
12:06:50  2024-11-12 11:06:48,475 - pythonlib.cloud.mqtt.client - DEBUG - Sending PINGREQ
12:06:50  2024-11-12 11:06:48,490 - pythonlib.cloud.mqtt.client - DEBUG - Received PINGRESP
12:07:39  2024-11-12 11:07:35,905 - read_serial_thread_device - INFO - [00:30:56.117,000] <err> pppsupport: resetting modem
12:07:39  2024-11-12 11:07:35,906 - read_serial_thread_device - INFO -
12:07:42  2024-11-12 11:07:41,679 - read_serial_thread_device - INFO - [00:31:01.889,000] <err> gsm_mux: [0x2000aa38] Cannot allocate DLCI 1
12:07:42  2024-11-12 11:07:41,680 - read_serial_thread_device - INFO - [00:31:01.889,000] <err> modem_gsm: Cannot attach DLCI 1 (GSM_2) to serial@40008000 (-12)
12:07:42  2024-11-12 11:07:41,680 - read_serial_thread_device - INFO -
12:07:48  2024-11-12 11:07:48,551 - pythonlib.cloud.mqtt.client - DEBUG - Sending PINGREQ
12:07:48  2024-11-12 11:07:48,569 - pythonlib.cloud.mqtt.client - DEBUG - Received PINGRESP
12:08:12  2024-11-12 11:08:09,063 - read_serial_thread_device - INFO - [00:31:29.278,000] <err> clrc663: SendReqACmd: Error occurred: 0x10
12:08:12  2024-11-12 11:08:09,064 - read_serial_thread_device - INFO -


Switch Airbrake to Honeybadger

[closes #667]

Will hold off on merge until we get to install it in an app and extract and compare the solution, or @calebthompson tells us that this is the best implementation for suspenders.
Thank you both!

Yeah that looks about right, but I might still wait to see it in an app.

As a client of Thoughtbot, I can only :+1: this so many times. Airbrake is my least favorite choice. I prefer BugSnag but HoneyBadger might also let you make the change from NewRelic to Skylight with more confidence (https://github.com/thoughtbot/suspenders/pull/692) since bigger HoneyBadger plans also include some tools for performance.

:shipit:

@tute I went to run my specs and I'm getting the follow warnings and error.
warning: parser/current is loading parser/ruby22, which recognizes
warning: 2.2.4-compliant syntax, but you are running 2.2.3.
warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.

And then
/Users/brandoncordell/Code/suspenders/tmp/dummy_app/config/initializers/callback_terminator.rb:5:in `<top (required)>': undefined method `halt_callback_chains_on_return_false=' for ActiveSupport:Module (NoMethodError)

I've tried install ruby 2.2.4 and 2.3.0 but then I get a Ruby version mismatch between .ruby-version and the Gemfile, but what's weird is the version referenced in the "Gemfile" of the error seems to change to whatever version I'm not using.
I'm at a loss right now. The only thing I've changed recently is that I did a brew update && brew upgrade recently. I didn't run into this issue when I worked on #670

This looks good to me. @mcmire or @calebthompson, are you positive that this is all we need suspenders' side? I'd like to see a project generated on this branch and successfully talking with Honeybadger (and I won't have the time in the short term).
If it is ready, I'm good for merge!

According to this, yes.
http://docs.honeybadger.io/lib/ruby.html

Thanks! Merging.

Ping @starrhorne :tada:

Why require the command to be run? They support ENV variables appropriately:

Don't like config files? You can place your API key in the $HONEYBADGER_API_KEY environment variable.

Or if the command is the preferred option (maybe for the Heroku integration), might I suggest including a .gitignore line for the yml file that setup command generates?


The size of the build is changing if i add axios in vendor webpack.

Hello, i have just added axios to the vendor build in webpack and got some unexpected changes in the app file size.
This is with axios

and this is with out axios

As you can see the size of the vendor increase but i do not understand why the size of the app js  is decrease if i just added the file to the vendor.
This is the place where i add the axios:

Thank you very much.

As is expected... You might want to read up on how chunking works in webpack.


[Feature Request] Template Functionality

Describe the solution you'd like

The table class should provide a method that takes another table (or a list of headers) as an argument and adds all columns of the second table to the current one if they do not exist already (initializing new cells as necessary).
The Templates_fromJsonString function should return a JS list or dict.

Done this will be part of alpha09 release


Encounter Extractor and Context Util Function

Summary
This adds a util function for getting Encounters from context. It also adds a simple FHIREncounterExtractor.
New behavior
This repo doesn't use the context util function yet, so there are no new behavior changes related to that portion of this PR.
A new extractor was added for FHIR Encounters, because we will now need to extract these separately since we require them to be in context for other extractors in the Epic-MEF.
Code changes

Adds the util function and tests it
Adds the extractor and tests it
Also registers the new extractor in the MCODEClient

Testing guidance
There will be instructions in the Epic-MEF to test the new util function, but ensure the tests here cover the functionality. Ensure that you can use the new extractor, but that will also need to be tested in the Epic-MEF branch.
Note that there will likely be merge conflict to resolve since I added code in the same places as #82, but I can resolve those once that gets in.

Is this good to merge? @jafeltra

LGTM


Query: why are all aggregate functions payable?

Hi,
I'm new to multicall functions, and trying to use it with my own project in Next.js & ethers.js.
With stateMutability as payable, I got a transaction object as result of calling aggregate functions.
If I want to get the results data, they only way I found is to modify the aggregate function's stateMutability to view in the ABI file.
May I know why these functions are set as payable in the first place?
I guess users wants the results data more?
OR, did I use it the wrong way?
If so, what is the correct way for calling aggregate functions with stateMutability as payable?
Thanks in advance.

All functions are not view (and therefore are mutable) because there are two uses for this multicall contract: (1) it can be used on-chain to batch multiple calls into a single transaction, or (2) used off-chain to read a lot of data with a single RPC call. Anecdotally, it seems (2) is more common and it sounds like that's what you are using it for.
Because the methods are not view, ethers.js thinks you want to send a transaction when calling those methods (and this would be true even if they were not payable). But you don't want to send a transaction, you just want to read data. So instead of calling multicall.aggregate3(calls), you can use multicall.callStatic.aggregate3(calls) where callStatic tells ethers you want to execute this as a staticcall to retrieve the return data and not send a transaction (wheremulticall is your ethers.js contract instance).
Some methods are also payable because it saves a tiny amount of gas, as you can read about here: https://github.com/mds1/multicall#gas-golfing-tricks-and-optimizations
Closing this issue, but feel free to ask any more questions here!

Hey @mds1 ,
Thanks a lot for the detailed explanation & linked info!
I have no further query.


[BUG] Non critical error in epicli if no 'path' is provided

Describe the bug
I faced the issue in devcontainer:
vscode@c91ba3ea365b:/workspaces/epiphany/core/src/epicli$ epicli --version
1.2.0dev
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/genericpath.py", line 19, in exists
    os.stat(path)
TypeError: stat: path should be string, bytes, os.PathLike or integer, not NoneType

It also occurs with any help (usage) message.
How to reproduce
Steps to reproduce the behavior in devcontainer:

alias epicli="PYTHONPATH=$(pwd) python3 cli/epicli.py"
execute epicli --version, epicli init -h ... or any different --help

Expected behavior
No error message
*epicli version: [epicli --version]
1.2.0dev

DoD checklist

[ ] Changelog updated (if affected version was released)
[ ] COMPONENTS.md updated / doesn't need to be updated
[ ] Automated tests passed (QA pipelines)

[ ] apply
[ ] upgrade

[ ] Case covered by automated test (if possible)
[ ] Idempotency tested
[ ] Documentation updated / doesn't need to be updated
[ ] All conversations in PR resolved
[ ] Backport tasks created / doesn't need to be backported

Fixed.
Also added the possibility to run epicli commands directly from the terminal, without having to use a debugger :heart:
vscode@25a37e0ee9e8:/workspaces/epiphany/core/src/epicli$ epicli --version
1.2.0dev
vscode@25a37e0ee9e8:/workspaces/epiphany/core/src/epicli$ epicli init -h
usage: epicli <command> [<args>] init [-h] -p {aws,azure,any} -n NAME [--full]

Creates configuration file in working directory.

required arguments:
  -p {aws,azure,any}, --provider {aws,azure,any}
                        One of the supported providers: azure|aws|any
  -n NAME, --name NAME  Name of the cluster.

optional arguments:
  -h, --help            show this help message and exit
  --full                Use this flag if you want to create verbose
                        configuration file.


Form select and checkbox documentation

Could you make the select and checkbox documentation more detailed. Specifically I'm trying to understand what attributes and values need to be provided to prefill these form elements, say if the form was already posted. When I tried to use v-model, I received a warning 'v-model doesn't support element DIV'

The select sort of works for me, but the option value is being shown in the option labels in addition to the label. When the menu is collapsed, the values show instead of the labels.
The checkbox is making an inverse selection for me.

See jsfiddle here:
http://jsfiddle.net/0Ltpdcj1/3/

Looks like you found a bug. I'll probably push a fix out soon. To be clear the select component is working fine, the checkbox is not (specifically: its not initializing to the original selected values).

In the select, when the values are selected, I expected to see "1st,2nd" rather than "1,2". Is that a bug?
Also in the select dropdown, see how the options show "1st 1" rather than just "1st". Is something wrong in my code?

Should be fixed. Will be included in 1.0.4 release soon.


Images of cards are not updated in the API

Last beta patch bringed on some localization updates. Can't speak for all languages but in russian "card_text" for some cards was updated and "large_image" wasn't. Some examples
— Battlefield Control
— Eclipse
— Roseleaf Rejuvenator
And around 5 more

Correct.  These will come close to launch.


French locale missing startsWith and endsWith validation messages

French locale missing startsWith and endsWith validation messages that are available in the other languages. Any help from French speakers welcome!

I'll translate missing messages next week. (Probably Wednesday)

Fixed in 1.2.0


Added token file as input param instead of token value

What does this PR do?

This PR attempts to fix #10144  issue to accept tokenfile as input from the user in static config for external client.
Motivation

This will ease out the user to directly just place the token value in the file and supply the file path in the static config file.
More

[ ] Added/updated tests
[ ] Added/updated documentation

Additional Notes

I will update the docs once these changes are reviewed.

Hello @sssash18 and thanks for your contribution,
We discussed this issue and we think that having a different option to specify the token as a file (e.g. tokenFilePath) is better. Furthermore, this option should also be added to the IngressRoute and Gateway providers.
As this pull request is an enhancement, please could you rebase it on the 3.0 branch?

Hello @sssash18 and thanks for your contribution,
We discussed this issue and we think that having a different option to specify the token as a file (e.g. tokenFilePath) is better. Furthermore, this option should also be added to the IngressRoute and Gateway providers.
As this pull request is an enhancement, please could you rebase it on the 3.0 branch?

@kevinpollet so should we return error in case the user gives both token and tokenFilePath options ?
Also since I am new to the community, would like to know if there is a faster way to connect with the maintainers, like slack or something else ?

so should we return error in case the user gives both token and tokenFilePath options ?

You are right, this is not ideal and can lead to errors. After digging deeper, I think we will stick only with the token option to stay consistent with other options accepting a value or a file path (e.g. https://doc.traefik.io/traefik/routing/overview/#rootcas).
This means that you will have to change the type of the field to (https://github.com/traefik/traefik/blob/master/pkg/tls/certificate.go#L77), and maybe move it the FileOrContent type to the types pkg (in a separate commit).

Also since I am new to the community, would like to know if there is a faster way to connect with the maintainers, like slack or something else ?

We have nothing like that, asking questions in the pull request is the way to go. We will likely see the message during the issues and pull requests triage every monday and thursday.

@kevinpollet I have pushed the changes. However the unit tests are failing on pipeline, but they are running fine on local, can you check it once please ?

@sssash18 no worries, some tests are flaky and are failing sometimes in the CI. Everything is green now 👍

Hello @sssash18,
I've added a few minor comments.
Could you please also make updates to the documentation?

Hi @kevinpollet ,
Implemented all your suggestions along with the doc changes. Please review it.
Also I can't understand why the validate-generate pipeline is failing and unit tests are also passing on local.
Can you please help me with this ?

Hi @kevinpollet ,
Have incorporated your review suggestions along with the doc updates.
Please review it and suggest changes if any.


Error: ENOENT: no such file or directory, open ''

Hi,
I am getting the following error when using lint-staged:
> husky - npm run -s precommit
> husky - node v6.10.2

 ❯ Running tasks for *.js
   ✖ prettier --single-quote --no-bracket-spacing --jsx-bracket-same-line --write
     → /home/tnguyen541/project/sub-dir/client/js/App.js/home/tnguyen541/project/sub-…
     git add
 ↓ Running tasks for gitDir [skipped]
   → No staged files match gitDir
🚫 prettier --single-quote --no-bracket-spacing --jsx-bracket-same-line --write  found some errors. Please fix them andtry committing again.

Unable to read file:
Error: ENOENT: no such file or directory, open ''

The empty string seems odd to me.

Are you on the latest version? What config are you using?

I am using v3.4.2
My config is:
  "lint-staged": {
    "*.js": [
      "prettier --single-quote --no-bracket-spacing --jsx-bracket-same-line --write ",
      "git add"
    ],
    "gitDir": "../"
  }

FWIW, even with the updated config (adding the linters property), I still had the problem.
I then realized that it was caused by the extra space at the end of "prettier --.... --write ".
Thought I should put it here, in case it helps anyone else (hopefully no one makes that silly mistake though).


chore: update @sifrr/dev to 0.0.9

Pull Request Test Coverage Report for Build 2627

0 of 0   changed or added relevant lines in 0 files are covered.
343 unchanged lines in 19 files lost coverage.
Overall coverage decreased (-19.06%) to 64.167%

Files with Coverage Reduction
New Missed Lines
%

packages/server/sifrr-seo/src/constants.js
1
0.0%

packages/server/sifrr-api/src/api/constants.js
1
0.0%

packages/server/sifrr-api/src/api/graphqlexecutor.js
5
0.0%

packages/server/sifrr-api/src/utils/filterobject.js
5
0.0%

packages/server/sifrr-seo/src/getcache.js
5
0.0%

packages/server/sifrr-api/src/api/flatten.js
6
0.0%

packages/server/sifrr-api/src/sifrr.api.js
7
0.0%

packages/server/sifrr-api/src/api/reqtovariables.js
9
0.0%

packages/server/sifrr-api/src/api/graphql/basetype.js
13
0.0%

packages/server/sifrr-api/src/api/graphql/connection.js
16
0.0%

Totals

Change from base Build 2608:
-19.06%

Covered Lines:
1155

Relevant Lines:
1800

💛  - Coveralls


SystemReady IR ACS v2.1.1 tests are terminated with an error

Hi,
Recently I bumped IR ACS tests from v2.1.0 to v2.1.1. I just replaced previous prebuilt image with v24.03_2.1.1. Could you please tell me if any other component should be updated as well?
I ask because, ACS v2.1.1 is terminated with an error on my system while v2.1.0 runs well. I'm also a bit confused with the error log.
Do you mind taking a look at the logs below? Sorry they could be a bit long. I'd appreciate it if you can give me some suggestions on debugging the failure.
In my environment with ACS v2.1.1, UEFI SCT runs well until the last test case UpdatePackageListFunction. It reports timeout.
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pexpect/expect.py", line 111, in expect_loop
    incoming = spawn.read_nonblocking(spawn.maxread, timeout)
  File "/usr/lib/python3/dist-packages/pexpect/pty_spawn.py", line 482, in read_nonblocking
    raise TIMEOUT('Timeout exceeded.')
pexpect.exceptions.TIMEOUT: Timeout exceeded.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File ".../lib/oeqa/runtime/cases/arm_systemready_ir_acs.py", line 22, in test_acs
    match_id = self.target.expect(self.console, test_patterns,
  File "xxx/../layers/meta-arm/meta-arm/lib/oeqa/controllers/fvp.py", line 145, in call_pexpect
    result = attr(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/pexpect/spawnbase.py", line 340, in expect
    return self.expect_list(compiled_pattern_list,
  File "/usr/lib/python3/dist-packages/pexpect/spawnbase.py", line 369, in expect_list
    return exp.expect_loop(timeout)
  File "/usr/lib/python3/dist-packages/pexpect/expect.py", line 119, in expect_loop
    return self.timeout(e)
  File "/usr/lib/python3/dist-packages/pexpect/expect.py", line 82, in timeout
    raise TIMEOUT(msg)
pexpect.exceptions.TIMEOUT: Timeout exceeded.
<pexpect.pty_spawn.spawn object at 0x7fe1e3d23340>
command: .../tmp_systemready-glibc/hosttools/telnet
args: ['.../tmp_systemready-glibc/hosttools/telnet', 'localhost', '5009']
buffer (last 100 chars): b'PE 4KB Granule Support          \r\r\n       PSCI_CPU_ON: failure[-2]\r\r\n       PSCI_CPU_ON: failure[-2]'
before (last 100 chars): b'PE 4KB Granule Support          \r\r\n       PSCI_CPU_ON: failure[-2]\r\r\n       PSCI_CPU_ON: failure[-2]'
after: <class 'pexpect.exceptions.TIMEOUT'>

But it still reports SCT completes and starts BSA test suite as usual. However, after BSA tests are running for a while, it will repeat the following steps (SCT completion message, lots of asserts and some BSA test cases) for several times.
WARNING: arm-systemready-ir-acs-2.1.1-r0 do_testimage: Could not load artifacts list, skip artifacts retrieval
Timed out waiting for login prompt.
Boot log follows:

Press any key within 5 seconds
Press any key within 4 seconds
Press any key within 3 seconds
Press any key within 2 seconds
Press any key within 1 seconds
SCT has completed run. Press any key to start SCT execution from the beginning. WARNING: Ensure you have backed up the existing logs.

Press any key within 5 seconds
Press any key within 4 seconds
Press any key within 3 seconds
Press any key within 2 seconds
Press any key within 1 seconds
Running CapsuleApp

ASSERT_EFI_ERROR (Status = Not Found)

ASSERT [CapsuleApp] /home/runner/work/arm-systemready/arm-systemready/IR/Yocto/meta-woden/build/tmp/work/generic_arm64-oe-linux/uefi-apps/1.0-r0/edk2/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.c(94): !(((INTN)(RETURN_STATUS)(Status)) < 0)

... # Lots of ASSERTs

ASSERT [CapsuleApp] /home/runner/work/arm-systemready/arm-systemready/IR/Yocto/meta-woden/build/tmp/work/generic_arm64-oe-linux/uefi-apps/1.0-r0/edk2/MdePkg/Library/DxeHobLib/HobLib.c(49): mHobList != ((void *) 0)

Starting UEFI Debug dump

Connect No drivers could be connected.

Press any key to start BSA in verbose mode.

If no key is pressed then BSA will be run in normal mode

Press any key within 10 seconds
Press any key within 9 seconds
Press any key within 8 seconds
Press any key within 7 seconds
Press any key within 6 seconds
Press any key within 5 seconds
Press any key within 4 seconds
Press any key within 3 seconds
Press any key within 2 seconds
Press any key within 1 seconds

 BSA Architecture Compliance Suite

          Version 1.0.8

 Starting tests with print level :  3

 Creating Platform Information Tables

  PE_INFO: Number of PE detected       :   16
  GIC CPUIF not present
   ...
  Peripheral: Num of UART controllers  :    1

      *** Starting PE tests ***

Operating System View:

   1 : Check Arch symmetry across PE

       PSCI_CPU_ON: failure[-2]
       ...
       Checkpoint -- 290                           : Result:  FAIL

   2 : Check for number of PE                     : Result:  PASS

   3 : Check for AdvSIMD and FP support

       PSCI_CPU_ON: failure[-2]
       ...
       PSCI_CPU_ON: failure[-2]

Eventually it reports an error and terminates the whole test.
WARNING: arm-systemready-ir-acs-2.1.1-r0 do_testimage: Can not get target disk usage: Failed to start FVP.
Transitioned to off
RESULTS:
RESULTS - arm_systemready_ir_acs.SystemReadyACSTest.test_acs: ERROR (72571.22s)
SUMMARY:
arm-systemready-ir-acs () - Ran 1 test in 72571.222s
arm-systemready-ir-acs - FAIL - Required tests failed (successes=0, skipped=0, failures=0, errors=1)

Thank you.

More detailed logs during the repeated part are shown below. As this log shows, although time-out is reported above, the SCT test summary still claims that it completes well.
------------------------------------------------------------

  Remaining test cases: 0

  Protocol test: UpdatePackageListFunction

  Instances: 1/1

  Iterations: 1/1

------------------------------------------------------------

Arm ACS Version: SystemReady IR ACS v2.1.1

BBR ACS 1.0.5 (EBBR)

UpdatePackageListFunction

Revision 0x00010000

Test Entry Point GUID: 00C3A3A0-1A1E-4609-9B0F-F2835301432E

Test Support Library GUIDs:

  1F9C2AE7-F147-4D19-A5E8-255AD005EB3E

------------------------------------------------------------

UEFI 2.6

Test Configuration #0

------------------------------------------------------------

Function auto test for HII Database Protocol UpdatePackageList().

------------------------------------------------------------

Logfile: "\EFI\BOOT\bbr\SCT\Log\HIITest\HIIDatabaseProtocolTest0\UpdatePackageListFunction_0_0_00C3A3A0-1A1E-4609-9B0F-F2835301432E.log"

Test Started: 06/15/24  08:04p

------------------------------------------------------------

Returned Status Code: Success

UpdatePackageListFunction: [NOT SUPPORTED]

  Passes........... 0

  Warnings......... 0

  Errors........... 0

------------------------------------------------------------

UEFI 2.6

Revision 0x00010000

Test Entry Point GUID: 00C3A3A0-1A1E-4609-9B0F-F2835301432E

------------------------------------------------------------

Logfile: "\EFI\BOOT\bbr\SCT\Log\HIITest\HIIDatabaseProtocolTest0\UpdatePackageListFunction_0_0_00C3A3A0-1A1E-4609-9B0F-F2835301432E.log"

Test Finished: 06/15/24  08:04p

Elapsed Time: 00 Days 00:00:00

------------------------------------------------------------

Done!

- [ok]

- [ok]

- [ok]

Reset the system ...

resetting ...

U-Boot 2023.07.02 (Jul 11 2023 - 15:20:44 +0000) arm_fvp

Model: RD Kronos
DRAM:  2 GiB (effective 4 GiB)
Arm FF-A framework discovery
FF-A driver 1.0
FF-A framework 1.0
FF-A versions are compatible
Core:  25 devices, 16 uclasses, devicetree: board
MMC:   mmci@c050000: 0
Loading Environment from nowhere... OK
In:    serial@2a400000
Out:   serial@2a400000
Err:   serial@2a400000
Net:   eth0: virtio-net#0
Hit any key to stop autoboot:  2  1  0
Failed to load 'boot.img'
Failed to load 'Image'
## Executing script at 8fb00000
Wrong image format for "source" command
## Warning: Input data exceeds 1048576 bytes - truncated
## Info: input data size = 1048578 = 0x100002

Device 0: 0000 VirtIO Block Device
            Type: Hard Disk
            Capacity: 676.9 MB = 0.6 GB (1386368 x 512)
... is now current device
Scanning virtio 0:1...
78Card did not respond to voltage select! : -110
FF-A driver 1.0
FF-A framework 1.0
FF-A versions are compatible
EFI: MM partition ID 0x8003
EFI: FVP: Capsule shared buffer at 0x81000000 , size 8192 pages
BootOrder not defined
EFI boot manager: Cannot load any image
Found EFI removable media binary efi/boot/bootaa64.efi
906752 bytes read in 4 ms (216.2 MiB/s)
Booting /efi\boot\bootaa64.efi
Welcome to GRUB!

error: no such device: ((hd0,gpt1)/efi/boot)/EFI/BOOT/grub.cfg.

error: serial port `com0' isn't found.

GNU GRUB  version 2.06

┌────────────────────────────────────────────────────────────────────────────┐││││││││││││││││││││││││││└────────────────────────────────────────────────────────────────────────────┘     Use the ▲ and ▼ keys to select which entry is highlighted.

      Press enter to boot the selected OS, `e' to edit the commands

      before booting or `c' for a command-line.                             Linux Boot                                                                 *bbr/bsa                                                                     SCT for Security Interface Extension (optional)                             Linux Boot for Security Interface Extension (optional)                                                                                The highlighted entry will be executed automatically in 10s.                   The highlighted entry will be executed automatically in 9s.                    The highlighted entry will be executed automatically in 8s.                    The highlighted entry will be executed automatically in 7s.                    The highlighted entry will be executed automatically in 6s.                    The highlighted entry will be executed automatically in 5s.                    The highlighted entry will be executed automatically in 4s.                    The highlighted entry will be executed automatically in 3s.                    The highlighted entry will be executed automatically in 2s.                    The highlighted entry will be executed automatically in 1s.                    The highlighted entry will be executed automatically in 0s.                   Booting `bbr/bsa'

/EndEntire

file path: /HardwareVendor(e61d73b9-a384-4acc-aeab-82e828f3628b)[0: ]

/HardwareVendor(63293792-adf5-9325-b99f-4e0e455c1b1e)[1: 00 ]

/HD(1,800,4b000,93b0673f6bc06444,2,2)/File(\EFI\BOOT)/File(Shell.efi)/EndEntire

UEFI Interactive Shell v2.2

EDK II

UEFI v2.100 (Das U-Boot, 0x20230700)

Mapping table

      FS0: Alias(s):HD0b:;BLK1:

          /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/VenHw(63293792-adf5-9325-b99f-4e0e455c1b1e,00)/HD(1,GPT,3f67b093-c06b-4464-b5de-e25bd3799a0f,0x800,0x4b000)

      FS1: Alias(s):HD0c:;BLK2:

          /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/VenHw(63293792-adf5-9325-b99f-4e0e455c1b1e,00)/HD(2,GPT,aca83039-223d-40e0-b333-160db624d83a,0x4b800,0x106f5e)

     BLK0: Alias(s):

          /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/VenHw(63293792-adf5-9325-b99f-4e0e455c1b1e,00)

Press ESC in 5 seconds to skip startup.nsh or any other key to continue.Press ESC in 4 seconds to skip startup.nsh or any other key to continue.Press ESC in 3 seconds to skip startup.nsh or any other key to continue.Press ESC in 2 seconds to skip startup.nsh or any other key to continue.Press ESC in 1 seconds to skip startup.nsh or any other key to continue.

Shell> echo -off

Press any key to stop the EFI SCT running

Press any key within 5 seconds
Press any key within 4 seconds
Press any key within 3 seconds
Press any key within 2 seconds
Press any key within 1 seconds
SCT has completed run. Press any key to start SCT execution from the beginning. WARNING: Ensure you have backed up the existing logs.

Press any key within 5 seconds
Press any key within 4 seconds
Press any key within 3 seconds
Press any key within 2 seconds
Press any key within 1 seconds
Running CapsuleApp

ASSERT_EFI_ERROR (Status = Not Found)

ASSERT [CapsuleApp] /home/runner/work/arm-systemready/arm-systemready/IR/Yocto/meta-woden/build/tmp/work/generic_arm64-oe-linux/uefi-apps/1.0-r0/edk2/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.c(94): !(((INTN)(RETURN_STATUS)(Status)) < 0)

 ... # Lots of asserts

ASSERT [CapsuleApp] /home/runner/work/arm-systemready/arm-systemready/IR/Yocto/meta-woden/build/tmp/work/generic_arm64-oe-linux/uefi-apps/1.0-r0/edk2/MdePkg/Library/DxeHobLib/HobLib.c(49): mHobList != ((void *) 0)

Starting UEFI Debug dump

Connect No drivers could be connected.

Press any key to start BSA in verbose mode.

If no key is pressed then BSA will be run in normal mode

Press any key within 10 seconds
Press any key within 9 seconds
Press any key within 8 seconds
Press any key within 7 seconds
Press any key within 6 seconds
Press any key within 5 seconds
Press any key within 4 seconds
Press any key within 3 seconds
Press any key within 2 seconds
Press any key within 1 seconds

 BSA Architecture Compliance Suite

          Version 1.0.8

 Starting tests with print level :  3

 Creating Platform Information Tables

 PE_INFO: Number of PE detected       :   16
 ...
 Peripheral: Num of UART controllers  :    1

      *** Starting PE tests ***

Operating System View:

   1 : Check Arch symmetry across PE

       PSCI_CPU_ON: failure[-2]
       ...
       Checkpoint -- 290                           : Result:  FAIL

   2 : Check for number of PE                     : Result:  PASS

   3 : Check for AdvSIMD and FP support

       PSCI_CPU_ON: failure[-2]
       ...
       PSCI_CPU_ON: failure[-2]Connection closed by foreign host.

Hi @davidhuziji,
We will look into the issue and will keep you updated on the findings.
Can you also try the latest IR build image on the system and share observations.
Image Link: https://github.com/ARM-software/arm-systemready/actions/runs/9537746488/artifacts/1606480747
Thanks,
ACS team

Thanks a lot @chetan-rathore . I will try and update you.

Hi @chetan-rathore, I tried this new prebuilt image and it worked as expected.
Thank you so much.
May I know if you have a plan to update v24.03_2.1.1 prebuilt image in this public repo?

Hi @davidhuziji,
We have updated the stable build.
Thanks,
ACS team

Hi @chetan-rathore,
Thank you so much.
May I know how to track the prebuilt image changes? Currently I can only rely on the SHA values to distinguish different image versions. Is any tags or minor versions available for reference? Thank you.


[dv + sign-off, spi_device] Bump up verif_stage to V2S

This should allow us to close spi-device sign-offs:

#22473
#23489

CHANGE AUTHORIZED: hw/ip/spi_device/data/spi_device.hjson

CHANGE AUTHORIZED: hw/ip/spi_device/data/spi_device.hjson

Docs-only change, so skipping CI


Fix PEX_EXTRA_SYS_PATH propagation.

Previously PEXes were not behaving like a Python interpreter when
PEX_EXTRA_SYS_PATH was used to add entries to the sys.path. In a
traditional Python interpreter those would be added with PYTHONPATH
which subprocesses forked from the Python interpreter would inherit by
default.
Fixes #1825

OK, this is now robust for all permutations of relevant Pex inheritance settings and execution modes and is ready for review.

Sorry for the thrash on ":" vs os.pathsep. The relevant code is here and it uses a system-specific DELIM value: https://github.com/python/cpython/blob/4bed0db7c222f8df1b4e31107c0305214caf3f56/Modules/getpath.py#L637-L640
This was particularly confusing since our PEX_EXTRA_SYS_PATH specifies a fixed value of ":". I guess when Windows support is added PEX_EXTRA_SYS_PATH can be retroactively made to work like PYTHONPATH and use ";" (os.pathsep)on Windows without breaking pre-existing Pex users.

I'll submit shortly to get out the 2.1.95 release. @thejcannon hopefully the unit test directly addresses your use case.

Yeah sorry haven't had time to test it out. You're always very thorough with your changes and tests, so I'm not worried 😉

Ah, I was just hoping for a code review of the code / test case. Actually testing against this Pex code is above and beyond. I'll go ahead and submit then.


docs: fix grammatical error, rewrite sentence to make clearer

The semicolon between "instead of depending on a released version" and "your contributors can also conveniently update the docs as they implement features" is grammatically incorrect because the two clauses are not independent. This rewrites the sentence to be more clear without the grammatical error.

Pre-flight checklist

[x] I have read the Contributing Guidelines on pull requests.
[ ] ~If this is a code change: I have written unit tests and/or added dogfooding pages to fully verify the new behavior.~
[ ] ~If this is a new API or substantial change: the PR has an accompanying issue (closes #0000) and the maintainers have approved on my working plan.~

Motivation
I was reading through this page and noticed a minor grammatical error. The semicolon between "instead of depending on a released version" and "your contributors can also conveniently update the docs as they implement features" is grammatically incorrect because the two clauses are not independent. This rewrites the sentence to be more clear without the grammatical error.

Test Plan
No code changed, so not tested on local device.

Test links
Current docs:
https://docusaurus.io/docs/installation#monorepos

Deploy preview: https://deploy-preview-_____--docusaurus-2.netlify.app/

oops, wrong repo :)


I just need some help guys I’m so sorry for putting it in like that

Hey, I just needed someone to discuss that occurred to me problem to, bc I am a little bit lost. So, I wanted to hear your opinion on recovering the dropped notes password (password that i had reset through settings) on notes from iCloud. It was just the first impulsive thing that came up to my mind, now I am indeed regretting it, but there’s nothing to change about it now. The confusing me thing is that Notes that had been secured with that password (i am looking just for one) now have zcryptoiterationcount setted to 0 in NoteStore.sqlite db. They have different zcryptosalts in 16 bytes and different zwrappedkeys in 16 bytes, even though it is still the same password. Znotedata is encrypted, they have tags, initialisation vector in there as well, they have no crypto verifier, but I don’t know how was the wrapped key gotten — it’s like a mystery. I have a little acknowledgment to the whole process, I know that they do PBKDF2-SHA256 to a password with a salt and 20000 iterations, with that they get KEK. Then they wrap key with AES key wrap algorithm and, I guess, that’s how they get 24-byte key (by adding an extra 8-bytes on to the key material during wrapping), I have read it all. If I am not right about it — pls, correct me with the explanation about steps in wrapping the key. I have all, literally all the variants of that password (I just don’t know the things like order of upper and lower cases), and I have had a thought that 1) maybe the wrapped 16-bytes (32 symbols in hex) key I saw in NoteStore.sqlite is the result of one-time PBKDF2-SHA256, maybe it was used just once. And I tried to do PBKDF2-SHA256 with one salt on my passwords as well and tried to look for coincidences with that wrapped key I have, the right one from db (to make it clear, i mentioned earlier that notes that have been protected with that one password, they have different pairs of salt and wrapped key, so i used one salt and one wrapped key from one row to that, to see the coincidences) — but all of that didn’t bring me the result I wanted, bc there is no match, so it isn’t right answer. And the second thought was that the wrapped key I saw in db NoteStore.sqlite was just somehow gotten out of salt?  Or it’s just indeed the KEK? I can’t see another explanations, but maybe you’ve got something in mind. I haven’t found anything applicable to case in which you did the reset of iCloud Notes password. I would really appreciate any suggestions and I would be more than grateful if you know something and can share it or explain it to me. Cause, guys, these notes, they are life-needing. Please, shine some light on my mind.

I hope this blog post will give you the answers you need to figure out what is going on. Have a great day!

Sorry, I'm not sure I can help you at all. If your backup is after you changed the password, the original key is gone. See this reference.

To change the passphrase on a secure note, the user must enter the current passphrase, as Touch ID and Face ID aren’t available when changing the passphrase. After choosing a new passphrase, the Notes app rewraps the keys of all existing notes in the same account that are encrypted by the previous passphrase.

I wish you the best in trying to recover these.


IE 11 fixes for react-sortable-hoc

Added window.pageYOffset and window.pageXOffset to updatePosition and animateNode to allow proper drag and drop animation for Internet Explorer 11

Just published 0.6.6 with this fix, thanks again for your contribution 😄

@clauderic @humiston I'm running storybook with this fix, and I still see the issue with IE11. Both in my code and in your Drag Handle storybook example. Items aren't draggable at all.

It's because IE11 doesn't support Array.From() which is being used in the code. I just ran into this myself.


Added Mode parameter to the example

https://github.com/MicrosoftDocs/OfficeDocs-Enterprise/issues/462

@chrfox - PR is ready for final review. Thank you.


Add diagnostics command

This adds a diagnostics command along with diagnostics list as the first subcommand to use the new Diagnostics API.
https://jira.mesosphere.com/browse/DCOS_OSS-5397
https://jira.mesosphere.com/browse/DCOS_OSS-5306

A few general thoughts:

I think this PR fails to build due to the import of dcos-diagnostics. AFAIK we have seen this failure in the past and decided to just "do a little copying" of types needed for the responses of dcos-diagnostics. We also preferred that over importing because dcos-diagnostics is a huge dependency. @ArmandGrillet probably can confirm this.
Thanks for adding the unit tests, can we add an TODO of adding some integration tests too once this command becomes user-facing?

Might be too late for this first version but we should consider adding the spec to https://github.com/dcos/client-go at some point and using the generated client, as we're trying to adopt it more across our projects.

@mesosphere-ci run linux integration tests

@mesosphere-ci run linux integration tests

Please bump your PR to fix CI.

@mesosphere-ci run linux integration tests

Re-triggering should fix the build. Seems like we got a race condition in our integration tests...
We have a 2 step process where we build the Go binary in the mesos-ubuntu node, and then run integration tests in the mesos node.
Each node will checkout the codebase and rebase against the target branch to make sure it picks the latest changes. However here, we built the Go binary on top of 1896b885581b8db2553f8e6f66a783c9600d505e (as highlighted in the build log with Commit message: "Merge a2a21c9f7a05e7b7a25226432264d18bfc142e08 into 1896b885581b8db2553f8e6f66a783c9600d505e").
But later on the integration tests were ran on top of cc31576da855bf651ea3710b476ed0c660e7eb6c (as highlighted with the build log message Commit message: "Merge a2a21c9f7a05e7b7a25226432264d18bfc142e08 into cc31576da855bf651ea3710b476ed0c660e7eb6c").
So integration tests were expecting the new Go dcos package search command but it was actually using the Python one, thus the AssertionError: assert b'no packages found' in b'No packages found.\n' error.


Regression of issue #68

Describe the bug
see issue #68
To Reproduce
see issue #68
Expected behavior
see issue #68
Environment (please complete the following information):

ksqlDb version: [7.6.0]
ksqlDb.RestApi.Client Nuget package version [6.0.2, 6.1.0]
TFM [net8.0]

Additional context
The workaround mentioned in #68 still works

Hello @mrt181,
could you provide a test case, please? The existing test passes, but probably additional coverage is needed.
Thank you!

Hi @mrt181, could you please help me reproduce this issue?

Sorry, for coming back so late to this. I was away.
I can not reproduce this anymore.


Is $promise.then supposed to receive the results as the first arg?

I've been noticing that when I port $resource models over to restmod, that calling $promise.then doesn't work quite right.
For example:
model.$search({}).$promise.then(function(items) {
  //items is not defined
});

However, these ways work:
model.$search({}).$asPromise().then(function(items) {});
model.$search({}).$then(function(items){});

I was wondering why using $promise.then as with $resource models doesn't work in the same way. Is there a subtle difference between it and $asPromise?

Closing as solved.


GetCommitmentsAlongPath to take multiple keys as a parameter

As explained in #182 the interface to GetCommitmentsAlongPath should be modified to accept several keys, in order to deduplicate commitments and extension statuses at this level.

Fixed in d368c16


Secret does not get updated

What steps did you take and what happened:
I use a secret provider class to sync kubernetes secrets from the mounted volume to environment variables.
This works fine, initially.
But when adding new secrets to the Keyvault, updating the SecretProviderClass and the Deployment, the secrets are not patched to the kubernetes secret.
What did you expect to happen:
Adding keys to and existing secret must work.
Anything else you would like to add:
A workaround is, to delete the entire deployment and the secret.
Which access mode did you use to access the Azure Key Vault instance:
User Assigned Managed Identity
Environment:

Secrets Store CSI Driver version: mcr.microsoft.com/oss/kubernetes-csi/secrets-store/driver:v1.0.0
Azure Key Vault provider version: mcr.microsoft.com/oss/azure/secrets-store/provider-azure:v1.0.0-rc.0
Kubernetes version:  v1.22.2  Ubuntu 18.04.6 LTS   5.4.0-1062-azure
Cluster type: AKS

You'll want to ensure that you've enabled SecretRotation and the rotationPollInterval.  For example if deploying as a Helm chart:
--set secrets-store-csi-driver.enableSecretRotation=true
--set secrets-store-csi-driver.rotationPollInterval=30m
When secrets are added or updated in Keyvault they will be patched into the kubernetes secret when the csi driver next polls Keyvault based on the value you've provided.
Keep in mind that even once the secret is patched into kubernetes the new secrets or updated values will not be available as environment variables in pods already running.  There is no connection from a running pod back to Keyvault since the volume mount takes place on pod restart.
Best method I've found to update, is a rollout restart for the namespace.  This creates new secretproviderclass pods for every deployment and updates all pods to use the latest kubernetes secret values in the mounted volume.  Have not noticed any loss of availability either since the new pods are created prior to terminating those already running.
kubectl rollout restart deploy -n {namespace}

Thanks for adding the details @JawnnyB!
As mentioned, enabling secret rotation will update the volume mount and kubernetes secret with the latest/new values. If the feature isn't enabled, here are the steps for the new secret to be added to the pod and kubernetes secret: https://secrets-store-csi-driver.sigs.k8s.io/known-limitations.html#mounted-content-and-kubernetes-secret-not-updated

Is there any update on this issue? We have same issue after upgrading from 0.0.6 to 1.0.0. having same environment and cluster.

Is there any update on this issue? We have same issue after upgrading from 0.0.6 to 1.0.0. having same environment and cluster.

@NikhilRajNR What is the issue you're seeing? This issue is specific to the enable secret rotation feature not being enabled. If you have the feature enabled and aren't seeing the mounted content updated with new values, please provide your environment information, scenario and relevant logs.
Here is a link to the troubleshooting guide: https://azure.github.io/secrets-store-csi-driver-provider-azure/troubleshooting/

Is there any update on this issue? We have same issue after upgrading from 0.0.6 to 1.0.0. having same environment and cluster.

@NikhilRajNR What is the issue you're seeing? This issue is specific to the enable secret rotation feature not being enabled. If you have the feature enabled and aren't seeing the mounted content updated with new values, please provide your environment information, scenario and relevant logs.
Here is a link to the troubleshooting guide: https://azure.github.io/secrets-store-csi-driver-provider-azure/troubleshooting/

We have enabled secret rotation feature. But secret is not getting updated. Although after restart pods getting Mount location secret updated. But to get secret updated we have to delete secret and then restart the pod.

We have enabled secret rotation feature. But secret is not getting updated. Although after restart pods getting Mount location secret updated. But to get secret updated we have to delete secret and then restart the pod running with nginx image.

Please create a new github issue and provide the following:

Installation commands used
Driver and provider version
SecretProviderClass yaml
Pod yaml


AF_UNIX path too long when running CodeChecker analyze

Using CodeChecker 6.5.1
My files are in path (I changed the name for the purpose of public report):
/local/usernameeeeeee/cooooooooooooooooooooooooooooooooooooooooooooooooooode/llvm
with many sub-folders in there, as you would expect in LLVM code base.
$ CodeChecker analyze compilation.json -o ./reports
[INFO 2018-04-19 22:06] - Starting static analysis ...
Process SyncManager-1:
Traceback (most recent call last):
File "/local/usernameeeeeee/folderrrrrrrrrrrrrrrrrrrrrrrrrrr/CodeChecker/codechecker-64bit-6.5.1/python/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/local/usernameeeeeee/folderrrrrrrrrrrrrrrrrrrrrrrrrrr/CodeChecker/codechecker-64bit-6.5.1/python/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/local/usernameeeeeee/folderrrrrrrrrrrrrrrrrrrrrrrrrrr/CodeChecker/codechecker-64bit-6.5.1/python/lib/python2.7/multiprocessing/managers.py", line 550, in _run_server
server = cls._Server(registry, address, authkey, serializer)
File "/local/usernameeeeeee/folderrrrrrrrrrrrrrrrrrrrrrrrrrr/CodeChecker/codechecker-64bit-6.5.1/python/lib/python2.7/multiprocessing/managers.py", line 162, in init
self.listener = Listener(address=address, backlog=16)
File "/local/usernameeeeeee/folderrrrrrrrrrrrrrrrrrrrrrrrrrr/CodeChecker/codechecker-64bit-6.5.1/python/lib/python2.7/multiprocessing/connection.py", line 132, in init
self._listener = SocketListener(address, family, backlog)
File "/local/usernameeeeeee/folderrrrrrrrrrrrrrrrrrrrrrrrrrr/CodeChecker/codechecker-64bit-6.5.1/python/lib/python2.7/multiprocessing/connection.py", line 256, in init
self._socket.bind(address)
File "/local/usernameeeeeee/folderrrrrrrrrrrrrrrrrrrrrrrrrrr/CodeChecker/codechecker-64bit-6.5.1/python/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
error: AF_UNIX path too long
Traceback (most recent call last):
File "/local/usernameeeeeee/folderrrrrrrrrrrrrrrrrrrrrrrrrrr/CodeChecker/codechecker-64bit-6.5.1/cc_bin/CodeChecker.py", line 92, in main
args.func(args)
File "/local/usernameeeeeee/folderrrrrrrrrrrrrrrrrrrrrrrrrrr/CodeChecker/codechecker-64bit-6.5.1/lib/python2.7/libcodechecker/libhandlers/analyze.py", line 443, in main
analyzer.perform_analysis(args, context, actions, metadata)
File "/local/usernameeeeeee/folderrrrrrrrrrrrrrrrrrrrrrrrrrr/CodeChecker/codechecker-64bit-6.5.1/lib/python2.7/libcodechecker/analyze/analyzer.py", line 152, in perform_analysis
manager = Manager()
File "/local/usernameeeeeee/folderrrrrrrrrrrrrrrrrrrrrrrrrrr/CodeChecker/codechecker-64bit-6.5.1/python/lib/python2.7/multiprocessing/init.py", line 99, in Manager
m.start()
File "/local/usernameeeeeee/folderrrrrrrrrrrrrrrrrrrrrrrrrrr/CodeChecker/codechecker-64bit-6.5.1/python/lib/python2.7/multiprocessing/managers.py", line 528, in start
self._address = reader.recv()
EOFError

This looks like an issue with Python itself. The exception is raised even before CodeChecker could try invoking clang or anything that is, at the point where the process pool for the analysis is created.
At this point, I can't seem to suggest anything better than setting up symbolic links and executing CodeChecker from there (to see if it's only a Python thing or will Clang also unable to handle the already massive command line of analysis arguments coupled with massive paths!), or recompiling the kernel to allow longer paths and file descriptor names.

I looked a bit more into this. Using symbol links for CodeChecker or the analyzed code didn't seem to change the behavior. But looking at this more closely, the path of the socket is dependent on the temporary folder path. My Jenkins job sets a temp folder (TEMP, TMPDIR env var) within the workspace folder, which is longer than your typical /tmp. The max path seems to be tied to char        sun_path[108], see http://man7.org/linux/man-pages/man7/unix.7.html
For example, this path temp path:
/tmpppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp/
means a socket with this path:
/tmpppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp/tmpg19pn_/original_env.pickle
which is: 109 - trailing slash - leading slash = 107
and this works!
But if you add a single character to this temp path, then it breaks with the error above.
I don't really think it should be something fixed by CodeChecker, but maybe it could be in a FAQ or somewhere appropriate? Basically, the solution is to use a reasonably short temp folder path for sockets to reside in.


2nd call to EnumDisplayDevices with //.//Display2 is failing

https://github.com/konnogatto/SwitchDisplay/blob/5e3d845c13eac3a0bd7103b9b198132a79ca97b7/DisplayHandler.cs#L26
i copied the code exactly as is, i have 2 monitors connected to my device.
Although the 2nd call the EnumDisplayDevices is failing.
The first call passes and gives the correct adapter.

Can you provide more information?