Equals&hashCode fixup

This pull request is according to #1504
I separated modified and added files into commits by categories. You can find commits dividing:

classes that I used instanceof + final in and corresponding test classes
classes that I added canEqual to and corresponding test classes
classes with ignored fields (excluding "coapRequest") in the EqualsVerifier tests and corresponding test classes (because maybe the ignored fields shouldn't be avoided at some point in the future)
classes which had not final fields (and in EqualsVerifier we suppressed the warning about it - we may deal with it in the future as mentioned in the issue) and corresponding test classes
classes which had not final fields (and we made them final) and corresponding test classes
pom files with added dependencies
fixup, fe. deleting unused variables, sorting imports and adding headers

I hope you will not be too afraid with all those comments ! Not the best way to welcome back :grin:
The idea to separate PR in several commits was good but with hindsight maybe we should do that more step by step.
Maybe we several small PR with just some classes :

you would have received fewer comments, but more frequently (which might have avoided lot of "same kind" comments)
and also I would be provide better review. (It's possible that I missed some point because to much to review at same time :sweat_smile:)

Reading you code, I also ask myself how Attribute class hierarchy should be compared :thinking: but this is out of scope of this PR.

Reading Objects.hash(Arrays.hashcode()), I see that HkdfAlgorithm has no hashcode/equals method but is used in OscoreSetting which could lead to expected result :thinking:  ?

Could you please explain https://github.com/eclipse-leshan/leshan/pull/1644#issuecomment-2324337706, I don't understand what you mean? That we don't know how HkdfAlgorithm will be hashed because it doesn't define equals/hashcode?

Could you please explain https://github.com/eclipse-leshan/leshan/pull/1644#issuecomment-2324337706, I don't understand what you mean? That we don't know how HkdfAlgorithm will be hashed because it doesn't define equals/hashcode?

I added this comment just to remember that I just see that  HkdfAlgorithm doesn't have custom equals/hashcode and I think we don't want to keep the default behavior.

Oh, OK sorry for misunderstanding 😄

All mentioned changes are implemented. I know that, as you mentioned in https://github.com/eclipse-leshan/leshan/pull/1644#issuecomment-2310532778, I should have created separate PRs... should I do that now or stick with this PR?

I  should have created separate PRs

My fault too, I should advice you to do that.

should I do that now or stick with this PR?

As you prefer. As I said small PR you will have better and faster feedback.
But now you have the whole code done, this will maybe be painful to split it.

@nkrzykala is this ready for review ?

@nkrzykala is this ready for review ?

Yes, sorry I didn't let you know

Fixed those 3 issues

Hi, I forgot to do rebase of my branch onto master before I pushed last commits - now my branch is behind by 4 commits:

Update demo webapp dependencies (again)
Add very simple Queue mode support to Leshan Server Demo.
Fix demo-server about unexpected "Device is not awake" message
Fix NPE, log warn message when no registration on notification.

I am not sure how to fix that as now locally I have the right version (those 4 commits + my commits, after rebase) and remotely I have all of my commits and not those 4 ones. I have question if you could help me clean that?

Hi, I forgot to do rebase of my branch onto master before I pushed last commits - now my branch is behind by 4 commits:

Not a big deal, if there is not so much conflict I can do that on myself.

I am not sure how to fix that as now locally I have the right version (those 4 commits + my commits, after rebase) and remotely I have all of my commits and not those 4 ones. I have question if you could help me clean that?

So generally, I create another local branch for the current remote. (so If I do something wrong and can easily go back to that state)
Then once I did all my history rewriting locally and I have my local branch in the wanted state, I just push -force the branch.
Let me know if you want to try to do that OR if I do it myself when I will integrate it in master ?
(I fetched your current remote code on my machine, so if something goes wrong I have a backup :wink:)

If it wouldn't be much work and a problem - I'd prefere you to take care of it. I don't think I trust myself with that 😄 Thank you very much!

Hi, while looking at another issue (https://github.com/eclipse-leshan/leshan/issues/1279) I found out that there is an old implementation of EqualsVerifiers test for Version class in VersionTest.java. I missed to delete it because my implementation of this test is in Lwm2mTest.

So,
I integrate this PR in master (commit : 70eec7dee8170dce907b5cbc712171469ede1e8d)
About importing junit5 "correctly", this is fixed by 629352345b65571843745f4e7019d1e20f3a3297)
About adding virtualHost to IpPeer equals/hashcode(), this is fixed by 47890ddd8946c5489bc7395a8817300e59283747
About VersionTest vs LwM2mTest, this is fixed by : ccd7bc91eb0ae2a37d86d3db4d329f1dd4a3afaf
So I think we can close this issue.
Thx a lot @nkrzykala for your contribution ! Really Good Job ! I really appreciate it :pray:


Wrapping axum query params makes them required

I have some optional query params in axum:
#[derive(Debug, Deserialize, IntoParams, Validate)]
pub struct ReadManyParams {
    /// Name to start after
    start_after: Option<String>,
    /// Limits the number of results
    #[validate(range(min = 1, max = 1000))]
    per_page: Option<usize>,
}

I created a wrapper validation type to call the validator crate. For example, in this case it ensures per_page query param is in [1, 1000]:
#[derive(Clone, Copy, Debug)]
pub struct Validated<T>(pub T);

#[async_trait]
impl<T, S> FromRequestParts<S> for Validated<T>
where
    T: Deref + FromRequestParts<S>,
    T::Target: Validate,
    S: Sync,
{
    type Rejection = ValidationErrorOr<T::Rejection>;

    async fn from_request_parts(parts: &mut Parts, state: &S) -> Result<Self, Self::Rejection> {
        let value = T::from_request_parts(parts, state)
            .await
            .map_err(ValidationErrorOr::Other)?;
        value.validate()?;
        Ok(Validated(value))
    }
}

(This is recommended in the axum examples)
My endpoint looks something like this:
#[utoipa::path(
    get,
    path = "/api/whatever",
    params(ReadManyParams),
)]
pub async fn read_many(
    Validated(Query(params)): Validated<Query<ReadManyParams>>,
) -> ... {
    ...
}

This mostly works, without Validated, both of the query parameters are marked optional by utoipa, which is correct. However, after wrapping it in my Validated type, they still show up but are now marked as required, which is incorrect since they're both optional and swagger UI is now too strict to use

I also just noticed that, even if you specify those incorrectly required fields, they won't show up in the request

I've found I need to wrap the struct with #[into_params(parameter_in = Query)]:
#[derive(Debug, Deserialize, Default, IntoParams)]
#[into_params(parameter_in = Query)]
pub struct TreeQueryParams {
    pub parent_id: Option<Uuid>,
}

@TheDan64

Maybe related to https://github.com/juhaku/utoipa/issues/609?

This might be related to #609 and #529. I just commented here https://github.com/juhaku/utoipa/issues/609#issuecomment-1630114176 about the nullability and requirability of the parameters.
I need to check whether the wrapping actually works as expected and I am not sure how bullet proof the implementation was. To what @eblocha commented, that you need to provide explicitly the #[into_params(parameter_in = Query)] attribute. If I remember this should not be necessary but might be useful when the automatic resolve fails just as can be seen from the attached picture. Yet this should not affect to the nullability or requirability but only default value for parameter_in attribute.
It might be as well that the wrapping makes the parameters behave weirdly not according to what is defined in the docs https://docs.rs/utoipa/latest/utoipa/derive.ToSchema.html#field-nullability-and-required-rules but that is something I need to check.


Add ProxSuite framework

@ jslee02 Would you be able to account for this PR? Thanks in advance for supporting this collection of valuable links and references.

Sure, thank you for your contribution!

Thanks a lot @jslee02


⚠ ClamAV has degraded performance

In c4d9eb6, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 555 ms

Resolved: ClamAV performance has improved in 0b32268.


server (socket-pairer) throws if client write() without noise

Server throws:
buffer.js:560
      if (list[i].length) {
                  ^

TypeError: Cannot read property 'length' of null
    at Function.concat (buffer.js:560:19)
    at Socket.onreadable (/self/hyperforward/node_modules/@hyperswarm/dht/lib/socket-pairer.js:606:36)
    at Socket.emit (events.js:400:28)
    at emitReadable_ (internal/streams/readable.js:555:12)
    at onEofChunk (internal/streams/readable.js:533:5)
    at readableAddChunk (internal/streams/readable.js:247:5)
    at Socket.Readable.push (internal/streams/readable.js:206:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:238:12)

client.js
const DHT = require('@hyperswarm/dht')
const net = require('net')

const serverKeyPair = DHT.keyPair(Buffer.from('524ad00b147e1709e7fd99e2820f8258fd30ed043c631233ac35e17f9ec10333', 'hex'))
const clientKeyPair = DHT.keyPair(Buffer.from('c7f7b6cc2cd1869a4b8628deb49efc992109c9fbdfa55ab1cfa528117fff9acd', 'hex'))

const node = new DHT({ keyPair: clientKeyPair })

const peer = node.connect(serverKeyPair.publicKey)
peer.on('open', function () {
  console.log('peer', peer.rawStream.remoteAddress + ':' + peer.rawStream.remotePort)

  const socket = net.connect(peer.rawStream.remotePort, peer.rawStream.remoteAddress)
  socket.end('hey')
})

server.js
const DHT = require('@hyperswarm/dht')
const net = require('net')

const serverKeyPair = DHT.keyPair(Buffer.from('524ad00b147e1709e7fd99e2820f8258fd30ed043c631233ac35e17f9ec10333', 'hex'))
const clientKeyPair = DHT.keyPair(Buffer.from('c7f7b6cc2cd1869a4b8628deb49efc992109c9fbdfa55ab1cfa528117fff9acd', 'hex'))

const node = new DHT({ keyPair: serverKeyPair })

const server = node.createServer({
  firewall: function (remotePublicKey, remoteHandshakePayload) {
    console.log('on firewall, public key:\n' + remotePublicKey.toString('hex'))
    return !remotePublicKey.equals(clientKeyPair.publicKey)
  }
})

server.on('connection', function (peer) {
  console.log('peer', peer.rawStream.remoteAddress + ':' + peer.rawStream.remotePort)
})

server.listen(serverKeyPair).then(() => console.log('server listening'))

It only throws if the client can reach server's ip:port, for example, listen and connect in the same local network or my machine as client -> DO as server (DO has ports open).
Aside from the issue, I just started experimenting with P2P so obviously I'm missing a lot but DHT should be able to connect(port, address) at will, while there is an active peer connection that keeps alive the initial holepunch.
In case two peers already knows each other ip:port (like two friends wanting to connect), it would be great to have a holepunch(port[, address]) and connect(port[, address]) to avoid querying bootstrap nodes and making direct connections.
Also, it's not crazy to think about having optional proxy support for bootstrap queries and connect() (which can fallback to relay servers and in that case it's ok), if an user trusts his proxy (like ProtonVPN or Tor) then it would extremely increase the DHT privacy and it can attract a lot of new users.
ProtonVPN has some P2P proxies, I never tested them but maybe in that specific case holepunch works and won't fallback to relay servers. I tested once a Plus proxy from Proton (which is paid) but the connection doesn't happen, that's why I said it would fallback to relays.

Thanks, sounds like a bug. Btw keep the issue focused around a single bug / issue, otherwise it's hard to track things :)

Sorry, you're right.

To answer your other question, we are not doing to support connect(port, host) as a dht api, as all peers are identified by pub keys and that's bootstrapping default encryption / authentication. That signature also won't translate to holepunching so will only work for non firewalled machines, ie the cloud.

I was trying to connect(port, host) + somehow noise-peer and expecting that to work (wanted to receive a connection even with blocked ports), but I was on limited sleep so I created the issue and I went to sleep lol.

You can run your own server that you discover through the DHT if that's important to you (and we might add some classic find (host, port) pairs through a lookup later on)

Bootstrap nodes are only hit for discovery of other initial nodes. It's an ultra cheap operation.

Right, it would be awesome having in the README how it starts from the peer A -> bootstrap nodes -> initial nodes -> lookup -> holepunch -> peer B (I don't actually know the path, it's an example), thay way everyone can have a sense of how it works.

Holepunching is done through other nodes in the dht itself (you ALWAYS need another node for holepunching).

Ooh, okay, I didn't know that you need another node for holepunching, I'll try to learn more!
Really thanks for all the responses and explanation, very helpful :)

Instead of socket.end('hi'), doing socket.write() also crashes the server (in this case, the client crashes as well).
Client:
internal/streams/writable.js:285
      throw new ERR_INVALID_ARG_TYPE(
      ^

TypeError [ERR_INVALID_ARG_TYPE]: The "chunk" argument must be of type string or an instance of Buffer or Uint8Array. Received undefined
    at new NodeError (internal/errors.js:322:7)
    at Socket.Writable.write (internal/streams/writable.js:285:13)
    at NoiseSecretStream.<anonymous> (/self/hyperforward/cl2.js:14:10)
    at NoiseSecretStream.emit (events.js:400:28)
    at ReadableState.afterOpen (/self/hyperforward/node_modules/streamx/index.js:493:12)
    at NoiseSecretStream._open (/self/hyperforward/node_modules/@hyperswarm/secret-stream/index.js:296:14)
    at NoiseSecretStream.start (/self/hyperforward/node_modules/@hyperswarm/secret-stream/index.js:96:12)
    at Pair.c.pair.onconnection (/self/hyperforward/node_modules/@hyperswarm/dht/lib/connect.js:210:23)
    at Pair._ontcpconnection (/self/hyperforward/node_modules/@hyperswarm/dht/lib/socket-pairer.js:272:10)
    at Socket.onconnect (/self/hyperforward/node_modules/@hyperswarm/dht/lib/socket-pairer.js:464:12) {
  code: 'ERR_INVALID_ARG_TYPE'
}

Server:
events.js:377
      throw er; // Unhandled 'error' event
      ^

Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:209:20)
Emitted 'error' event on NoiseSecretStream instance at:
    at WritableState.afterDestroy (/self/hyperforward/node_modules/streamx/index.js:442:19)
    at NoiseSecretStream._destroy (/self/hyperforward/node_modules/@hyperswarm/secret-stream/index.js:365:5)
    at WritableState.updateNonPrimary (/self/hyperforward/node_modules/streamx/index.js:189:16)
    at WritableState.update (/self/hyperforward/node_modules/streamx/index.js:174:70)
    at WritableState.updateWriteNT (/self/hyperforward/node_modules/streamx/index.js:482:8)
    at processTicksAndRejections (internal/process/task_queues.js:77:11) {
  errno: -104,
  code: 'ECONNRESET',
  syscall: 'read'
}

I used npm i hyperswarm/dht because installing from npm I don't see the new test in test/connections.js, is there something wrong on my side?

Just in case, this is the client:
const DHT = require('@hyperswarm/dht')
const net = require('net')

const serverKeyPair = DHT.keyPair(Buffer.from('524ad00b147e1709e7fd99e2820f8258fd30ed043c631233ac35e17f9ec10333', 'hex'))
const clientKeyPair = DHT.keyPair(Buffer.from('c7f7b6cc2cd1869a4b8628deb49efc992109c9fbdfa55ab1cfa528117fff9acd', 'hex'))

const node = new DHT({ keyPair: clientKeyPair })

const peer = node.connect(serverKeyPair.publicKey)
peer.on('open', function () {
  console.log('peer', peer.rawStream.remoteAddress + ':' + peer.rawStream.remotePort)

  const socket = net.connect(peer.rawStream.remotePort, peer.rawStream.remoteAddress)
  socket.write()
})

The server code is the same.

Same effect by doing peer.write() (no arguments as before like socket.write()) but it could be the same cause.

Same effect by doing peer.emit('error', new Error('random')).

Oh, it's not that emitting an error on the peer makes the server crash, it's the ECONNRESET.
So, just doing throw new Error('random') looks the same than doing peer.emit('error', ..).

Sorry for too much comments.
I was wondering why CTRL+C somehow closes gracefully and it doesn't have the ECONNRESET, but process.exit() does.
No need for net.connect(..).

Ya that’s expected. You need to error handle. Very much send me other crashes you find that are unhandled though :)


Update recipes under recipes-ros-infrastructure for new versions found in newer-platform-components.list

Merged in:
d85431585..6d4554a24  thud-draft  -> ros/thud-draft


How can I change the channel to which the bot joins ?

I am sorry that this was hard coded for channel #1, and I haven't write the code for bot channel configuration.


help

Challenge Use a CSS Class to Style an Element has an issue.
User Agent is: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:

CatPhotoApp

Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.

CatPhotoApp

But please use Chat button in the top bar or gitter chat for questions or doubts in curriculum.


WIP - Ensure pipelines treat dataScience branch as a master branch

For #9435

Ensure PR, CI, nightly and flaky pipelines run against this new branch
Will make changes to pipeline to upload a VSIX for datascience from this new branch (so we don't have to wait for stuff to be merged back into master - useful for PMs)

Codecov Report

Merging #9436 into master will decrease coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master   #9436      +/-   ##
=========================================
- Coverage   60.93%   60.9%   -0.03%
=========================================
  Files         529     529
  Lines       28578   28578
  Branches     4338    4338
=========================================
- Hits        17413   17406       -7
- Misses      10214   10220       +6
- Partials      951     952       +1

Impacted Files
Coverage Δ

src/client/common/utils/platform.ts
64.7% <0%> (-11.77%)
:arrow_down:

src/client/linters/pylint.ts
94.82% <0%> (-3.45%)
:arrow_down:

src/client/linters/pydocstyle.ts
86.36% <0%> (-2.28%)
:arrow_down:

src/client/datascience/debugLocationTracker.ts
76.56% <0%> (-1.57%)
:arrow_down:

src/client/common/process/proc.ts
14.7% <0%> (-0.74%)
:arrow_down:

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 8089c7e...65278f0. Read the comment docs.

For #9435

Ensure PR, CI, nightly and flaky pipelines run against this new branch
Will make changes to pipeline to upload a VSIX for datascience from this new branch (so we don't have to wait for stuff to be merged back into master - useful for PMs)

Seems good. Question that I have no clue on myself. Are we fine on resources for builds adding in all the dataScience builds as well? Nighly and Nightly Flake are long and slow and use a lot of machines.


Is this gem no longer maintained? EOM

The Spree project relies heavily on state_machine, and we are going to release our own fork for now:
https://github.com/spree-contrib/state_machine
We don't really have time to manage a canonical fork of this project, but if no one else is going to we're going to maintain a much smaller version for Rails 4.2+.  We also only currently require ActiveModel/ActiveRecord support so we may drop the other ORM's as well if they become a problem.  If people would be interested in helping to maintain a fork, such as, this one or would be interested in us using their own fork let me know.

@seuros if you haven't already are you planning to do a stable gem release?

Did you see this work : https://github.com/state-machines/ ? I'm using the activemodel integration in a personal project without any issue ! :)

Oh nice no I hadn't @alouanemed will have to try that out.

We had switched to https://github.com/aasm/aasm, but that looks a little more compatible.

:+1:

No stable gem release to depend on...  Looks like it would work if I didn't have to point to the git repo.

@JDutil , i can release an alpha, there are still few bugs with AR42 integration and internalization.

@seuros that would be good after incorporating some of the fixes we needed:
https://github.com/pluginaweek/state_machine/pull/333

@JDutil , #333 break most of the test suite and remove features.

Hmm might have been other commits not in there:
https://github.com/spree-contrib/state_machine/commit/d7b298e155e6e6023096105694a57891ae0cdd3c
https://github.com/spree-contrib/state_machine/commit/8a08e9e75162d13218be382bbae36019e3d7cd50
https://github.com/spree-contrib/state_machine/commit/1c31e969e740dab53f3d6b8a91ebf4c8fb8472fb
We did start removing features we don't need for Spree, but would prefer not to have to.  Will see if we can get the remaining specs passing.

So theres state-machines/state_machines-activerecord and spree-contrib/state_machine now.
Where to go to?

spree-contrib/state_machine is going away we will be using state-machines/state_machines-activerecord

@seuros I can help maintain this if you want. I want to build on top of the rspec for this. Let me know if there's anything I can do for you.

So a few years down the line... @seuros: I see your fork seems to be the most current of all the forks. Can you consider releasing a stable gem version of your own and integrating the pull requests that are around here, or is everyones consensus that state-machines/state_machines-activerecord is the way to go?
I've inherited an ancient code base that uses state_machine a lot, and currently points to an arbitrary master/head of one of the many forks. Since the code base needs to be modernized anyway, it would be good to know if it makes sense to hold out with this state machine implementation as long as it works, or if I need to migrate somewhere else in order to be future proof.
(Needless to say, that state_machine still works after that long a time without much maintanence speaks for the quality of the implementation. Good job @pluginaweek :) ).

@sriedel Unless you are monkeypatching the old gem. Switching to the new one should be just a Gemfile modification only.
Remember that the new gem don't include the integrations by default.

@sriedel I'm suspecting you are looking at the forked and outdated https://github.com/seuros/state_machine? If so then have a look at https://github.com/state-machines/state_machines which is recent, stable and released as a gem thanks to @seuros. While it has been split up to several gems it's pretty much just needs a Gemfile change IIRC.


fix(protocol): fix casing on "keyCode"

@EthanWaite,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Add border to the challenge card

The PR #434 adds the challenge card. The card is missing the border with shadow visible in the Figma mockup.

Added to Sprint 22.08


[VS Code] Starting collaboration session: Could not connect to the server. Check that you are connected to the internet.

LiveShareLogs.zip

Error:
Starting collaboration session: Could not connect to the server. Check that you are connected to the internet.
Steps to Reproduce:
1.
2.

Version Data

extensionName
VSLS

extensionVersion
1.0.379

protocolVersion
2.2

applicationName
VSCode

applicationVersion
1.35.1

platformName
Windows

platformVersion
10.0.17134

@Priya91 probably a general network connectivity issue. There are logs available.

From the logs, a previous GET request has passed from the same machine, while trying to Post to our service, looks like our service terminated the connection due to authentication error.
@Ryyder Looks like your system settings could have used wrong cipher suites, or wrong tls protocol configured. To figure out what exactly is causing this, collect network trace, and inspect the SSL handshake packages to know why you are not able to authenticate.
[2019-06-17 12:50:10.214 Agent.Http V] > GET <https://prod.liveshare.vsengsaas.visualstudio.com/d5851e87> (c301ms s<null>ms) => 200 OK
[2019-06-17 12:50:10.214 Agent.Rpc.Auth V] < #3 {Id=7}
[2019-06-17 12:50:10.524 Agent.Http V] > GET <https://prod.liveshare.vsengsaas.visualstudio.com/d5851e87> (c617ms s<null>ms) => 200 OK
[2019-06-17 12:50:10.524 Agent.Rpc.Auth V] < #3 {Id=6}
[2019-06-17 14:01:58.040 Agent.Rpc.Firewall V] > #3 {Id=8 Name=firewall.getFirewallStatus}
[2019-06-17 14:01:58.135 Agent.Firewall I] AgentApplicationName: C:\Users\bruce\.vscode\extensions\ms-vsliveshare.vsliveshare-1.0.379\dotnet_modules\vsls-agent.exe
[2019-06-17 14:01:58.136 Agent.Firewall I] Firewall vsls-agent rule protocol: 6
[2019-06-17 14:01:58.137 Agent.Firewall I] Firewall vsls-agent rule action: NET_FW_ACTION_ALLOW
[2019-06-17 14:01:58.137 Agent.Rpc.Firewall V] < #3 {Id=8}
[2019-06-17 14:01:58.141 Agent.Rpc.Workspace V] > #3 {Id=9 Name=workspace.shareWorkspace}
[2019-06-17 14:01:58.267 Agent.Workspace V] Using local IP addresses: [(2601:601:8380:14e9:859:93bd:9c53:1353, <IP_ADDRESS>), (<IP_ADDRESS>, <IP_ADDRESS>)]
[2019-06-17 14:01:58.269 Agent.Workspace I] Creating new workspace: 65FA779795221C6FE0A9 (<8:d498d5bc>)
[2019-06-17 14:01:58.616 Agent.Http V] < POST <https://prod.liveshare.vsengsaas.visualstudio.com/8d18ae76>
[2019-06-17 14:01:58.617 Agent.Proxy I] WinHttpGetProxyForUrl failed with win32 error code: 12180
[2019-06-17 14:01:58.618 Agent.Proxy I] Read system proxy settings with auto winhttp mode, and proxy was null
[2019-06-17 14:02:13.754 Agent.Http E] > POST <https://prod.liveshare.vsengsaas.visualstudio.com/8d18ae76> => The SSL connection could not be established, see inner exception.
[2019-06-17 14:02:13.790 Agent.Rpc.Workspace E] HTTP exception in workspace.shareWorkspace request handler: System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception. ---> System.IO.IOException: Authentication failed because the remote party has closed the transport stream.
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest)
--- End of stack trace from previous location where exception was thrown ---
   at System.Net.Security.SslState.ThrowIfExceptional()
   at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result)
   at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult)
   at System.Net.Security.SslStream.<>c.<AuthenticateAsClientAsync>b__47_1(IAsyncResult iar)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location where exception was thrown ---
   at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
   at System.Threading.Tasks.ValueTask`1.get_Result()
   at System.Net.Http.HttpConnectionPool.CreateConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Threading.Tasks.ValueTask`1.get_Result()
   at System.Net.Http.HttpConnectionPool.WaitForCreatedConnectionAsync(ValueTask`1 creationTask)
   at System.Threading.Tasks.ValueTask`1.get_Result()
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.AuthenticationHelper.SendWithAuthAsync(HttpRequestMessage request, Uri authUri, ICredentials credentials, Boolean preAuthenticate, Boolean isProxyAuth, Boolean doRequestAuth, HttpConnectionPool pool, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at Microsoft.VisualStudio.LiveShare.Tracing.TracingHttpMessageHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in E:\A\_work\231\s\src\Tracing\Tracing\TracingHttpMessageHandler.cs:line 63
   at Microsoft.Cascade.Agent.ForwardResponseMessageHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in E:\A\_work\231\s\src\Agent\ForwardResponseMessageHandler.cs:line 50
   at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
   at Microsoft.Cascade.Agent.WebApiCollection`1.CreateAsync(T itemTemplate, CancellationToken cancellationToken) in E:\A\_work\231\s\src\Agent\WebApiCollection.cs:line 51
   at Microsoft.Cascade.Agent.WorkspaceService.ShareWorkspaceAsync(WorkspaceShareInfo shareInfo, CancellationToken cancellationToken) in E:\A\_work\231\s\src\Agent\WorkspaceService.cs:line 312
   at Microsoft.Cascade.Rpc.RpcDispatcher`1.<>c__DisplayClass24_2.<<CreateDispatchMethod>b__4>d.MoveNext() in E:\A\_work\231\s\src\Rpc\RpcDispatcher.cs:line 309
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.Cascade.Rpc.RpcDispatcher`1.HandleRequestAsync(RequestMessage request, IProgress`1 progress, CancellationToken cancellationToken) in E:\A\_work\231\s\src\Rpc\RpcDispatcher.cs:line 102
   at Microsoft.Cascade.Rpc.RpcSession.RequestAsync(IRpcService service, RequestMessage message, CancellationToken cancellation) in E:\A\_work\231\s\src\Rpc\RpcSession.cs:line 665

have you proxy environment?
have you Auth proxy?
I have it. so much env too.
Can owners help to us.

This issue should now be resolved. Please re-open it if you're still experiencing this problem. Thanks!


Multiple device support

This is basic multiple device support for task and thread decorators.
Currently, a shortcoming is that devices are invoked sequentially, when they could really be invoked at (more or less) the same time. However, this probably involves moving the serial interface to asyncio or similar, which for the current time might complicate the codebase unnecessarily. So, for now, devices will be invoked sequentially, and if a need comes to move to asyncio, we can figure that out later.

Codecov Report

Merging #4 (6fbd63a) into main (3ae9414) will decrease coverage by 2.01%.
The diff coverage is 80.59%.

@@            Coverage Diff             @@
##             main       #4      +/-   ##
==========================================
- Coverage   89.83%   87.82%   -2.02%
==========================================
  Files           4        4
  Lines         187      230      +43
  Branches       32       41       +9
==========================================
+ Hits          168      202      +34
- Misses          9       14       +5
- Partials       10       14       +4

Flag
Coverage Δ

unittests
87.82% <80.59%> (-2.02%)
:arrow_down:

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

Impacted Files
Coverage Δ

belay/device.py
84.27% <80.30%> (-1.94%)
:arrow_down:

belay/__init__.py
100.00% <100.00%> (ø)

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


Not closed tag inside if blocks are not highlighted by parser

Description:
If you include a component inside an if block without closing tag the parser compile template wihtout error and when the condition is true the if content is rendered correctly in the page.
However when condition is false  the content inside else block is not rendered in the page.
Content after both blocks is rendered correctly in both case.
Another issue appears with not closed HTML tags: if condition is true both if and else blocks are displayed.
Should parser throw an error on those situations?
Versions affected:

0.9.x
edge

Platforms affected:

All

Reproduction:
Component scenario

Open https://jsfiddle.net/hjgmp41r/
When showMe is false "I'm inside the else" is not displayed.

Ractive.components.MyComp = Ractive.extend({
    template: 'Hi, I\'m a template!!!!!',
});

const r = window.r = new Ractive({
    el: '#main',
    template: '#template',
    data: {
        showMe: false,
    }
});

HTML scenario

Open https://jsfiddle.net/axxw71xp/
When showMe is true both blocks are displayed.

Ractive.components.MyComp = Ractive.extend({
	template: 'Hi, I\'m a template!!!!!',
});

const r = window.r = new Ractive({
  el: '#main',
  template: '#template',
  data: {
  	showMe: false,
  }
});

TL;DR the {{else}} is being eaten as a plain interpolator because the component context owns the parser when it appears.
The issue is kinda due to the tacked-on alternate branching of handlebars. If else was actually a block directive, it would be completely obvious where to end the component, but as it's just a special-cased interpolator that the if block handles, the component is free to eat it. That leaves the component content partials as {{else}}I'm inside the else where the interpolator will most likely be empty unless you do this.set('else', ...) in the component.
That could be worked around in the parser, but I don't think it's exactly a trivial change. I'll flag it as an enhancement, and it would be a good first PR for anyone wanting an introduction to the parser :wink:

Strange... I would think Ractive would throw an error due to one of the following:

Component tag is open but the next thing that closed is an {{/if}}.
An {{else}} was encountered without a preceding {{#if}} in the component body.

This is probably a bug as well as improved error messaging.

Ractive doesn't know what's a component and what's a regular element at parse time, though, and html is very (perhaps a bit too) forgiving about closing tags. The closing block scope of the if also implicitly closes the tag, that just happens to be a component at runtime in this case.
That {{else}} has no special treatment outside of section processing, and then only if it's an immediate child of the section, can be remedied. It needs to be added as a block scope terminator for other block scoped items as well, which I think is not a particularly simple change.


Update zh_cn

Translated the block/item Circle as defined in math (as the texture says so). hope it fits well, would be changed if not good enough.

The circle is no more than a circle, it's just a silly easter egg


How to combine with other node command

Let's say I have the following commands.

npm run one
npm run two
npm run three

I want to kill the command "two" after a specific time so I have a script file called timeout.js that includs this code setTimeout(() => process.exit(1), 360000);
and then I run like that.
npm run one && concurrently -k  "node ./timeout.js" "npm run two" && npm run three
It never reaches to "npm run three" because concurrently always kills the process.

The exit code of concurrently will be 1 so bash never runs the command after &&.
If it is really such a simple use case, I'd probably go without concurrently and instead use the command timeout, for example.
If there are other reasons for you to stay with concurrently, you could adjust the command to:
# to always run "npm run three"
npm run one && concurrently -k  "node ./timeout.js" "npm run two"; npm run three

# or to run "npm run three" only if concurrently wasn't successful (timeout reached and therefore killed)
npm run one && concurrently -k  "node ./timeout.js" "npm run two" || npm run three

See also https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Lists.


Refactor Subscriber Stream shutdown

Change the shutdown process to no longer process pending callbacks. When the number of pending callbacks was too high the thread pool would hang. This new behavior also seems to be more expected.
Change the wait behavior to only wait on pending change requests. Limit waiting on pending change requests, so the Subscriber does not block indefinitely.
We can make this change because we are using the Unary pusher and not the Stream pusher, because the Unary pusher does not require that we keep the stream open to send change requests.

I don't understand why Kokoro is failing. It doesn't look related to this PR though. Perhaps because #2276 is not yet merged?
@TheRoyalTnetennba should we be concerned about the Kokoro failures?

Yeah, it just can't find the build config's because they haven't merged yet.


Fix for extra whitespace in DnfRepositories fact entries

On a clean RHEL 9.3 install, pyinfra.facts.dnf.DnfRepositores doesn't work as expected because there are extra spaces appended to dictionary keys, and prepanded to values.
That's because the parsing code splits on '=' but doesn't handle whitespace.
Also relevant for the 3.x branch

GH seems to be confused (as usual) and is throwing a total nonsense error for this PR only despite no changes in that area.

Sure, here's an excerpt from one file:
[rhel-atomic-7-cdk-3.6-source-rpms]
name = Red Hat Container Development Kit 3.6 /(Source RPMs)

And here's another (which is parsed correctly without this change):
[epel]
name=epel

Apologies for taking so long here @bbonf; I've cherry-picked this into v3 with a test in https://github.com/pyinfra-dev/pyinfra/commit/2c5aa7493573807ed75e003f7da7436a2777a075, thank you for the fix!


add japanese localisation

file provided by touge

@BrotherSharper @touge Many thanks for the contribution! I'll be releasing a minor version today that will include it.


Update NAR Hash

Apple updated one or some of their fonts and there's a hash mismatch. I'll update the hashes and make a PR if I have time later.

Fixed in #2


Improve user experience

Trying to make videos out of the examples I've noticed some things that could make the examples more useful

[ ] Better file names. The current are focused on technology over use case. For example change chrome_pdf_qa.py to chat_with_pdf.py.
[ ] Better code. As these examples will be reference examples for users and copied around, we should try to implement them in the best practice possible. For example breaking down long functions into smaller. Making the apps fast etc. For example the chrome_pdf_qa.py could be improved
[ ] Use the EnvironmentWidget to get OPENAI_API_KEY etc.
[ ] Better UX. For example make sure that users cannot send etc. before the keys and assets (like pdfs) have been provided.

I will give it my take in https://github.com/holoviz-topics/panel-chat-examples/pull/41.

I can rename all the files appropriately, but I'm afraid once I do, it'll cause your PRs to have a lot of merge conflicts. I'm thinking of merging your PR first if you think it's mostly ready?


NIFI-3705: Using consistent logic when verifying connection creation

NIFI-3705:

Using consistent logic when verifying connection creation. Removed some unnecessary checks as verification has been changed to run in cluster and standalone mode.

@mcgilman looks good. I agree with the logic change and code looks clean. Everything appears to still work well. Merged to master.


feat(SWA-231): add source field to the submission model

This PR adds source field to help data team identify the place of where submission was created.
JIRA - https://artsyproduct.atlassian.net/browse/SWA-231, https://artsyproduct.atlassian.net/browse/SWA-232

@fladson I going to merge this one, fell free to ping me if you want to change something.


testutil: singlevm: use hostname to get primary interface

use hostname -i to get the ciao ip address.
Signed-off-by: Kristen Carlson Accardi<EMAIL_ADDRESS>

@mcastelino Does this look okay to you?

Not sure how this PR will interact with #696 as from the man page

   -i, --ip-address

          Display the network address(es) of the host name. Note that this works only if the host name can be resolved. Avoid  using
          this option; use hostname --all-ip-addresses instead.

It could be that the change to modify /etc/hosts is giving the correct forward resolution that makes this work. Deferring to @mcastelino

@rbradford good observation. I have seen this fail sometimes... I think I have an idea to address this whole linking to the host business.. I will update https://github.com/01org/ciao/pull/695 to add this.
This make the single vm fully independent of the host (except the hostname)

@kaccardi @rbradford fixed this issue with an alternate implementation which eliminates the need to use the host IP completely.  https://github.com/01org/ciao/pull/696
Once that PR gets merged, I think we can drop this one?

ok, I'll close this pull request.


Better branch filter

replace the check for an existing local branch,  as it's no longer useful.
It should now be an inspection of the push fork to see if it already has a branch with that name, and move on to other updates in that case.
This is surprisingly not at all simple, as you need to pass data around more, need new methods and an async list Filter. Each package checks for an existing branch, and these are async operations.

Hard to test :( as the OcotkitClient requires github creds to work, and you should not and cannot check working github creds into a github repo.
Proof of it working is that two runs produce 2 different PRs ( https://github.com/NuKeeperDotNet/JustEat.StatsD/pulls ) as the second run detects the branch made by the first run, and doesn't try (and fail) to make it again.


Add eigen recipe

Package added following the docs in https://blog.jupyter.org/mamba-meets-jupyterlite-88ef49ac4dc8 .

Hi @traversaro, awesome! Hopefully we can get this across the finish line on Monday or Tuesday, it shouldn't be too hard :)

A tiny space after the \  was breaking the recipe apparently! :)

A tiny space after the \  was breaking the recipe apparently! :)

Agh, sorry for that. It is not the first time it happens to me.

@wolfv the post-merge CI job failed: https://github.com/emscripten-forge/recipes/runs/7412543614 .


Fix name of sidebar CSS in index.html

Accidentally overlooked by @r0ckarong in e461305f69a7d120325b2bad5940c9eb611b468c

That's actually my shortcoming, I never created a new release for the latest changes (which would have triggered a gh-pages update). There is still some small things on my todo that I'd like to finish before the next release, but I hope to release soon. Thanks for the patch!


Crossplane to use ArgoCD version variable

Purpose

ArgoCD install using Crossplane to bootstrap workload clusters using same variable for version.
The Crossplane workload cluster to bootstrap to the /infra folder to match CAPZ

Does this introduce a breaking change?
[ ] Yes
[x] No

Pull Request Type
What kind of change does this Pull Request introduce?
[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

@seenu433 can you please review/approve?


transaction selection - consider blobs

There are 2 hive tests (blob ordering) that tests that max blobs are included in a block. Besu does not consider blobs right now for transaction selection, which is why these tests are failing.

geth is also failing these 2 tests so don't think this is high priority
Results: engine-cancunTest Engine API on Cancun.go-ethereum_cancun-gitGeth/v1.13.0-unstable-79f3c2d9-20230829/linux-amd64/go1.20.7🕒 06/09/2023, 08:08:25⌛ 8min0ssimulator logShow 102550100 entriesSearch:

Test
Status
⌛
Logs

Blob Transaction Ordering, Multiple Clients (go-ethereum_cancun-git)

Results: engine-cancun
Test Engine API on Cancun.
go-ethereum_cancun-git
Geth/v1.13.0-unstable-79f3c2d9-20230829/linux-amd64/go1.20.7
🕒 06/09/2023, 08:08:25
⌛ 8min0s
simulator log
Show
100
entries
Search:
Test	Status	⌛	Logs
Blob Transaction Ordering, Multiple Clients (go-ethereum_cancun-git)

@Gabriel-Trintinalia @macfarla @jflo let's check for close / complete. Thank you!

Test is passing.


Not Work

Can u send the full screenshot?

Not sure but this might help
In the path search
C:%Username%\UR_USER\d0060d24-c4a5-480f-803a-ec978344350d.dat
Shit + del it and might help.

This is the filter file, so it should of worked for the first time...


tinyformat stuck on g

Referencing https://github.com/MoneyBagCoin/MoneyBagCoin/issues/7 as it looks to be the same
I"m attempting to make Dogecoin
Recent logs:
tinyformat.h:786:9: note: here
         case 'x': case 'p':
         ^~~~
tinyformat.h:791:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
             out.setf(std::ios::uppercase);
             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
tinyformat.h:792:9: note: here
         case 'e':
         ^~~~
tinyformat.h:797:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
             out.setf(std::ios::uppercase);
             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
tinyformat.h:798:9: note: here
         case 'f':
         ^~~~
tinyformat.h:802:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
             out.setf(std::ios::uppercase);
             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
tinyformat.h:803:9: note: here
         case 'g':
         ^~~~

it'st been stuck on the latter for over 15 minutes.. expecting an error soon.
(Ubuntu)

Closed, just needed more RAM

is not true :)
is warn of compile about use Ubuntu 18x, you could use ubuntu 16.04 to avoid them


heart-beat settings

how to set heart-beat value in headers ?
ex - headers ={ login:"",passcode:"",heart-beat:"20000,50000"}
not work for me.

@iamvasim786 Could you provide a full code snippet?

@beevelop this is my code -
var connectHeaders =  {login:"xxx",passcode:"xxx",heart-beat:"20000,50000"};

$stomp
      .connect('/endpoint', connectHeaders)

      // frame = CONNECTED headers
      .then(function (frame) {
        var subscription = $stomp.subscribe('/dest', function (payload, headers, res) {
          $scope.payload = payload
        }, {
          'headers': 'are awesome'
        })

        // Unsubscribe
        subscription.unsubscribe()

        // Send message
        $stomp.send('/dest', {
          message: 'body'
        }, {
          priority: 9,
          custom: 42 // Custom Headers
        })

      })```

Looking into the stomp-websocket docs, it seems as if this is not possible via connect headers:
http://jmesnil.net/stomp-websocket/doc/#heartbeat
I'm thinking about making heartbeat.outgoing and heartbeat.incoming configurable with the help of an Angular-Provider.

@iamvasim786 You can checkout the feature-heartbeat branch. You should be able to configure incoming and outgoing heartbeat settings with the $stompProvider:
function ($stompProvider) {
  $stompProvider.setIncomingHeartbeat(1337)
  $stompProvider.setOutgoingHeartbeat(1337)
}

All the rest should be backwards compatible with the Readme example.

https://github.com/beevelop
thanks, it's working now .

@iamvasim786 Thank your for verifying. I'll incorporate the changes into the next release.


InAppWebViewChromeClient ChooserActivity bug

Environment

Technology
Version

Flutter version
1.22.2

Plugin version
master

Android version
10.0

iOS version

Xcode version

Expected behavior:
input/ capture tags should lead to a ChooserActivity, not only a filepicker.
Current behavior:
Filepicker is being displayed immediately.
I think i found a bug in "InAppWebViewChromeClient" line 894: The acceptTypes array is NOT empty in my case, it contains one element with an empty string. This leads to the photo and video capture dialogs never being shown, regardless of the usual permission struggles.

On master, testing for wildcard mimetype in lines "984"  and "997" in "nAppWebViewChromeClient.java" fix the problem:
return isArrayEmpty(mimeTypes) || arrayContainsString(mimeTypes, "image") || Arrays.asList(mimeTypes).contains("*/*");
@pichillilorenzo Are you still working on the plugin? Would you be interested in a pullrequest for that?

I don't think the author will continue this plugin, which is a pity beause it's the best working webview plugin.
Should anybody else have the same problem, the change described above is not enough. There's quite some stuff that needs to be fixed to get everything working.
I'm living with a fork so far and hope @pichillilorenzo will pick up the plugin again later.

@wurstnudl I'm sorry for that but I'm very busy with my work! I can work on this plugin only on my free time.
I hope to update it as soon as possible!
Thanks

@wurstnudl Adding a check for wildcard mimetypes in both the images/videos method will force the returned file to always be an mp4 as they both use the same outputFileUri and the video is created last.
That'll probably be the case on the master release for input's with an accept of both image/* and video/*.

@pichillilorenzo @wurstnudl I have a WIP pull request that fixes the issue. Some more testing is needed and the example app should probably request camera permission so this can be easily tested.


It is no longer possible to collect scrape metrics from multiple scrape managers

What did you do?
Context: https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/30934
The OpenTelemetry collector can create multiple "prometheus receivers", which each has its own scrape manager.  After https://github.com/prometheus/prometheus/pull/12958 if we pass prometheus.DefaultRegisterer to the scrape manager, we get duplicate registration errors.  Thankfully (or, sadly), we aren't using the scrape metrics right now, so we can pass a no-op registerer.  But we would like to be able to use these metrics in the future.
What did you expect to see?
No error when creating multiple scrapemanagers with the same registerer.
It looks like promhttp handles this by checking for an already registered error: https://github.com/prometheus/client_golang/blob/d69fe9a80254b8a262bb071cad63595fcbff6dab/prometheus/promhttp/http.go#L260, and using the existing instrument, if it is found.
What did you see instead? Under which circumstances?
N/A
System information
N/A
Prometheus version
v0.49.1

Prometheus configuration file
N/A

Alertmanager version
N/A

Alertmanager configuration file
N/A

Logs
N/A

https://github.com/prometheus/prometheus/pull/13375
This should fix your issue.

@roidelapluie that looks like it is related to Service Discovery metrics, not scrape manager metrics, which was changed in https://github.com/prometheus/prometheus/pull/12958.  The issue looks similar, though.


Fix Windows wrapper scripts to support spaces in paths.

Update install notes to further explicate Windows antics.

My user name at home is 'Walter Korman' and the space in the resulting path breaks the scripts. In sorting through installation both at work and at home I also wrestled with annoying npm and build tool antics and so thought it worth adding some Windows specific installation notes.

...a. k. a., how I spent part of my Friday, and Saturday morning.


Allow input parameters in ESOH model

Description
Allows input parameters in the ESOH model. This allows for use of the initial_soc keyword in sim.solve for variables such as Positive electrode active material volume fraction, which previously errored.
Fixes #2981
Type of change
Please add a line in the relevant section of CHANGELOG.md to document the change (include PR #) - note reverse order of PR #s. If necessary, also add to the list of breaking changes.

[ ] New feature (non-breaking change which adds functionality)
[ ] Optimization (back-end change that speeds up the code)
[x] Bug fix (non-breaking change which fixes an issue)

Key checklist:

[ ] No style issues: $ pre-commit run (or $ nox -s pre-commit) (see CONTRIBUTING.md for how to set this up to run automatically when committing locally, in just two lines of code)
[ ] All tests pass: $ python run-tests.py --all (or $ nox -s tests)
[ ] The documentation builds: $ python run-tests.py --doctest (or $ nox -s doctests)

You can run integration tests, unit tests, and doctests together at once, using $ python run-tests.py --quick (or $ nox -s quick).
Further checks:

[ ] Code is commented, particularly in hard-to-understand areas
[ ] Tests added that prove fix is effective or that feature works

Can you fix coverage?

Can you fix coverage?

will do it tomorrow. I'm guessing that line cannot be accessed or should not be accessed.

Can you fix coverage?

will do it tomorrow. I'm guessing that line cannot be accessed or should not be accessed.

Breaking things into new functions tends to make it easy to cover those safety lines. Generally if you write it in a "functional" style (i.e. constant arguments into the function, returns the values, no state changes to member variables) then it gets trivial to test.

Can you fix coverage?

will do it tomorrow. I'm guessing that line cannot be accessed or should not be accessed.

Breaking things into new functions tends to make it easy to cover those safety lines. Generally if you write it in a "functional" style (i.e. constant arguments into the function, returns the values, no state changes to member variables) then it gets trivial to test.

Taking a look through the code, this case (known_value not in ["cell capacity", "cyclable lithium inventory"]) isn't caught anywhere else. It's pretty far outside of the scope of this PR, so I'm going to delete the extra line and move on.
This function is only 13 lines of code, do you really think it should be broken out into multiple separate functions? Or am I misunderstanding something

This function is only 13 lines of code, do you really think it should be broken out into multiple separate functions? Or am I misunderstanding something

I did not look at the whole function, recommending methods for testing error handling. I will say that in general it is best to end an if-elif chain with an else. It lets future developers know that no cases were forgotten and that the intention was to end the chain that way. So my preference would be leaving the else but adding a test for it

This function is only 13 lines of code, do you really think it should be broken out into multiple separate functions? Or am I misunderstanding something

I did not look at the whole function, just recommending methods for testing error handling. I will say that in general it is best to end an if-elif chain with an else. It lets future developers know that no cases were forgotten and that the intention was to end the chain that way. So my preference would be leaving the else but adding a test for it

I agree, hence why I added the else in the first place, I just think it's a separate issue from this PR given that the chain in question occurs quite a few times throughout pybamm without ever having an else.

@abillscmu Cleanup as we go is usually a good thing, but if you don't want to do it here then can you make a ticket for it with a couple examples of places it appears?
You can assign it to me and I will refactor it later

There are some other changes that would be good to make to the eSOH stuff (see https://github.com/pybamm-team/PyBaMM/issues/3930), so happy to make that ticket into a place to track all the refactoring needed.

I am happy to merge this PR once @kratman approves it

@tinosulzer All I was waiting for was a ticket for the places where @abillscmu found the missing else statements. Since he already knew where they were

They really aren't hard to find, all of them I know of are in pybamm/models/full_battery_models/lithium_ion/electrode_soh.py
I guess my comment

the chain in question occurs quite a few times throughout pybamm without ever having an else.

caused some confusion -- "throughout pybamm" lol is a bit of a stretch.
In any case, I added specific exceptions to a few of the higher-level occurrences of this chain that should catch all of them. Any more will likely require a more in-depth refactor, and anyone completing the refactor should have no issues finding the chains (assuming they are still there after the refactor).

Looks like tests are related to #3530 being merged in so you'll need to merge develop and fix conflicts


fix(drop-down): close dropdown onClickOutside

As a fix I removed dismissOnClick={false} this from the Dropdown component  so it is closed onCickOutside or when user selects one item from the dropdown
fix  #527
Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change contains documentation update

Breaking changes
Please document the breaking changes if suitable.
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Test Configuration:

Firmware version:
Hardware:
Toolchain:
SDK:

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules
[ ] I have checked my code and corrected any misspellings

Hi, @Tejas9535.
Thanks for your interest to work on this one, but I'm pretty sure that just changing the documentation will not fix the issue. I do recommend you check the video that I posted on the issue.
The problem is that once you click on some item at the Dropdown, it can't be closed by clicking outside of it.
I do expect that when the Dropdown has dismissOnClick={false}, and you click on a Dropdown item it doesn't close the dropdown, but if I click outside of it, it should close.

Hi @rluders ,
I have Added close on outside click  and also wrote Test cases for the same.
do tell me if any more changes are needed

I still have the problem, I'll try to record a video to demonstrate it 'cause it is hard to explain.

I can open the dropdown and close it without any problem. However, if I click into some dropdown option and then click outside, it doesn't close, well... if I click in some specific places if closes (at the document?)... for example if I click close to the button or inside the card, it doesn't close - well, sometimes it does, but not always.
I'm using Brave, but it seems that it also happens on Firefox.
https://user-images.githubusercontent.com/191027/223697304-4bcd5a07-c587-4203-b8f4-38deff42551c.mov

@rluders I can't replace that on Firefox, personally. So I'm not sure what's happening, to be honest.

This one was solved by #840


Getting 404 Error when try to add New Protocol for added Application

Add a new "Passive STS web application" and provide the necessary information.
2. Try to edit the application
3. Move to Access Tab, click Add new Protocol
4. Select WS TRUST from Manual Setup list
5. click next and see an error

This issue is not reproduced in the 5.11.0-beta4 pack as we have removed the Passive STS web application template. But adding the WS TRUST protocol in the edit section works without issues. Therefore closing this issue @NilukaSripalim.


Uploads workflow event payload after tests for PRs

Summary

Recently, we have been seeing PRs that are opened by Dependabot failing due to a token permissions issue when the Test PR workflows attempt to auto-approve the PR. Our understanding is that this behavior by GitHub is correct, but it breaks our current workflow for these types of PRs. We would like to move to a workflow that will work in all cases.
This PR is the start of an attempt to create a pair of workflows that work in conjunction to give us this outcome. First, the existing portions of the Test PR workflow will execute, then a subsequent workflow that is separate, and with elevated permissions will run to perform the step to auto-approve the bot PR. In order to pass details about the Test PR to the second workflow, we will need to upload that information to the workflow's artifact store. This PR does that for each of the Test PR workflows.
The next steps from this will be a follow-on PR that then creates a second workflow that can download this artifact and act on it to auto-approve the bot PR.
Checklist

[x] I have viewed, signed, and submitted the Contributor License Agreement.
[x] I'm happy with the commit history on this PR (I have rebased/squashed as needed).

@ryanmoran what bits about the workflow are included in the "workflow artifact" that gets uploaded? It's hard for me to imagine what the next workflow will look like without knowing that.
Also, I see that the existent Auto-Approve part is still there right now. Will this be removed in the next PR in favour of that 2nd workflow? Also could you briefly describe how a second workflow could have the "right" permissions that we couldn't set in this workflow?

what bits about the workflow are included in the "workflow artifact" that gets uploaded?

We will just be uploading the event payload. This is the JSON metadata that includes information like which PR triggered the workflow, etc.

Also, I see that the existent Auto-Approve part is still there right now. Will this be removed in the next PR in favour of that 2nd workflow?

The approve job will be moved into its own workflow and setup to execute when the "Test PR" workflow completes successfully. In that step we will download the event payload artifact and then perform the steps to audit the PR to determine if it can be automatically approved.

Also could you briefly describe how a second workflow could have the "right" permissions that we couldn't set in this workflow?

The new workflow that will be added as described above will have write permissions (which grants access to secrets) and so will be able to approve PRs. If you read through these docs, you can see a more detailed explanation of the permissions granted for different types of workflows.
In short, we are going to be moving to the prescribed workflow structure outlined in this blog post: https://securitylab.github.com/research/github-actions-preventing-pwn-requests/. They have an example of the "second" workflow that leverages some gnarly JS code. I'd like to see if we can encapsulate that same type of logic in our own action.

Thank you for the explanation!


fix: invalid secret IDs

Harness Developer Pull Request
The example for referencing secrets uses secret id that are not possible, we do not allow - in IDs in harness.
I change the example secret name to match the secret shown in the screenshot above the examples to make the whole guide flow better, feel free to change the example ID if you want.
What Type of PR is This?

[ ] Issue
[ ] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screen Shoot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app


[hmac,dv] Test msg_length_upper

FAILING at the moment, might be an RTL issue !

@gdessouky
As discussed in the chat together, can you try to run this at your end and see if you understand what's wrong here.
With the current test as it is, you can run hmac_smoke test and I guess it should fail.


Build error

curl http://downloads.openwrt.org/sources/last_x264.tar.bz2 -I -L
HTTP/1.1 301 Moved Permanently
Server: nginx/1.10.3
Date: Fri, 03 Jan 2020 13:04:39 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: http://sources.openwrt.org/last_x264.tar.bz2
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: DNT, X-CustomHeader, Keep-Alive, User-Agent, X-Requested-With, If-Modified-Since, Cache-Control, Content-Type, Content-Range, Range

HTTP/1.1 404 Not Found
Server: nginx/1.10.3
Date: Fri, 03 Jan 2020 13:04:40 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive

same here failed to download last_x264.tar.bz2 when run build.sh
--2020-07-07 03:12:07--  http://download.videolan.org/pub/videolan/x264/snapshots/last_x264.tar.bz2
Resolving download.videolan.org (download.videolan.org)... <IP_ADDRESS>, 2a01:e0d:1:3:58bf:fa02:c0de:5
Connecting to download.videolan.org (download.videolan.org)|<IP_ADDRESS>|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2020-07-07 03:12:08 ERROR 404: Not Found.

Download failed.
--2020-07-07 03:12:08--  http://mirror2.openwrt.org/sources/last_x264.tar.bz2
Resolving mirror2.openwrt.org (mirror2.openwrt.org)... <IP_ADDRESS>, 2a01:4f8:221:3d45::2
Connecting to mirror2.openwrt.org (mirror2.openwrt.org)|<IP_ADDRESS>|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2020-07-07 03:12:09 ERROR 404: Not Found.

Download failed.
--2020-07-07 03:12:09--  http://downloads.openwrt.org/sources/last_x264.tar.bz2
Resolving downloads.openwrt.org (downloads.openwrt.org)... <IP_ADDRESS>, 2a01:4f8:150:6449::2
Connecting to downloads.openwrt.org (downloads.openwrt.org)|<IP_ADDRESS>|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://downloads.openwrt.org/sources/last_x264.tar.bz2 [following]
--2020-07-07 03:12:09--  https://downloads.openwrt.org/sources/last_x264.tar.bz2
Connecting to downloads.openwrt.org (downloads.openwrt.org)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://sources.openwrt.org/last_x264.tar.bz2 [following]
--2020-07-07 03:12:10--  https://sources.openwrt.org/last_x264.tar.bz2
Resolving sources.openwrt.org (sources.openwrt.org)... <IP_ADDRESS>, 2a01:4f8:210:5087::2
Connecting to sources.openwrt.org (sources.openwrt.org)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2020-07-07 03:12:13 ERROR 404: Not Found.

Download failed.
No more mirrors to try - giving up.

Same here.
Weirdly, it tries both x264 and x265:
$ cd /ffmpeg-static/build
$ tar --skip-old-files -xzvf /ffmpeg-static/dl/x264-stable.tar.gz
--2020-09-02 07:09:10--  https://bitbucket.org/multicoreware/x265/downloads/x265_2.7.tar.gz
Resolving bitbucket.org (bitbucket.org)... <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, ...
Connecting to bitbucket.org (bitbucket.org)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2020-09-02 07:09:10 ERROR 403: Forbidden.

Download failed.
--2020-09-02 07:09:10--  http://mirror2.openwrt.org/sources/x265_2.7.tar.gz
Resolving mirror2.openwrt.org (mirror2.openwrt.org)... <IP_ADDRESS>, 2a01:4f8:221:3d45::2
Connecting to mirror2.openwrt.org (mirror2.openwrt.org)|<IP_ADDRESS>|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2020-09-02 07:09:10 ERROR 404: Not Found.

Download failed.
--2020-09-02 07:09:10--  http://downloads.openwrt.org/sources/x265_2.7.tar.gz
Resolving downloads.openwrt.org (downloads.openwrt.org)... <IP_ADDRESS>, 2a01:4f8:150:6449::2
Connecting to downloads.openwrt.org (downloads.openwrt.org)|<IP_ADDRESS>|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://downloads.openwrt.org/sources/x265_2.7.tar.gz [following]
--2020-09-02 07:09:11--  https://downloads.openwrt.org/sources/x265_2.7.tar.gz
Connecting to downloads.openwrt.org (downloads.openwrt.org)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://sources.openwrt.org/x265_2.7.tar.gz [following]
--2020-09-02 07:09:11--  https://sources.openwrt.org/x265_2.7.tar.gz
Resolving sources.openwrt.org (sources.openwrt.org)... <IP_ADDRESS>, 2a01:4f8:210:5087::2
Connecting to sources.openwrt.org (sources.openwrt.org)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2020-09-02 07:09:11 ERROR 404: Not Found.

Download failed.
No more mirrors to try - giving up.

Seems I fixed the problem by replacing the source mirrors:
Remove this:
#download \
#  "x264-stable.tar.gz" \
#  "" \
#  "nil" \
#  "https://code.videolan.org/videolan/x264/-/archive/stable/"

#download \
#  "x265_2.7.tar.gz" \
#  "" \
#  "b0d7d20da2a418fa4f53a559946ea079" \
#  "https://bitbucket.org/multicoreware/x265/downloads/"

And add this instead:
download \
  "master.tar.gz" \
  "" \
  "nil" \
  "https://github.com/videolan/x265/archive/"

download \
  "v0.1.6.tar.gz" \
  "fdk-aac.tar.gz" \
  "223d5f579d29fb0d019a775da4e0e061" \
  "https://github.com/mstorsjo/fdk-aac/archive"

However, now I do have a NASM compilation error from another issue #90 ;)


ilo_oem_utils.py is missing

Hello Dear,
I performed all prerequisites. but when I run my playbook I am facing with the following error below;
fatal: [localhost]: FAILED! => {"changed": false, "msg": "missing required fucntions in ilo_oem_utils.py"}

Hi @ckirim1 !
Could you tell us which playbooks you are trying to run?

I am trying use ;

name: Perform firmware upload to ilo repository
ilo_firmware:
category: UpdateService
command: FirmwareUpload
baseuri: "{{ baseuri }}"
username: "{{ username }}"
password: "{{ password }}"
image_uri: "{{ image_uri }}"
file_name: "{{ file_name }}"
register: result

name: Status
debug:
msg: "{{ result }}"

Did you do all the below setup?
Ansible set up
To install Ansible and Community general package use:
sudo python -m pip install ansible
ansible-galaxy collection install community.general
pip install python-ilorest-library

hi,
all requirements or dependencies are installed. like below;
hpe@sapdeploy:~/ansible$  python3 -m pip install ansible
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: ansible in /usr/local/lib/python3.10/dist-packages (8.1.0)
Requirement already satisfied: ansible-core~=2.15.1 in /usr/local/lib/python3.10/dist-packages (from ansible) (2.15.1)
Requirement already satisfied: PyYAML>=5.1 in /usr/lib/python3/dist-packages (from ansible-core~=2.15.1->ansible) (5.4.1)
Requirement already satisfied: cryptography in /usr/lib/python3/dist-packages (from ansible-core~=2.15.1->ansible) (3.4.8)
Requirement already satisfied: jinja2>=3.0.0 in /usr/lib/python3/dist-packages (from ansible-core~=2.15.1->ansible) (3.0.3)
Requirement already satisfied: packaging in /usr/lib/python3/dist-packages (from ansible-core~=2.15.1->ansible) (21.3)
Requirement already satisfied: resolvelib<1.1.0,>=0.5.3 in /usr/local/lib/python3.10/dist-packages (from ansible-core~=2.15.1->ansible) (1.0.1)
hpe@sapdeploy:~/ansible$ ansible --version
ansible [core 2.15.1]
config file = None
configured module search path = ['/home/hpe/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.10/dist-packages/ansible
ansible collection location = /home/hpe/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/local/bin/ansible
python version = 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0] (/usr/bin/python3)
jinja version = 3.0.3
libyaml = True
hpe@sapdeploy:~/ansible$ ansible-galaxy collection install community.general
Starting galaxy collection install process
Nothing to do. All requested collections are already installed. If you want to reinstall them, consider using --force.
hpe@sapdeploy:~/ansible$ pip install python-ilorest-library
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: python-ilorest-library in /home/hpe/.local/lib/python3.10/site-packages (<IP_ADDRESS>)
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from python-ilorest-library) (1.16.0)
Requirement already satisfied: jsonpatch in /home/hpe/.local/lib/python3.10/site-packages (from python-ilorest-library) (1.33)
Requirement already satisfied: urllib3 in /usr/lib/python3/dist-packages (from python-ilorest-library) (1.26.5)
Requirement already satisfied: jsonpath-rw in /home/hpe/.local/lib/python3.10/site-packages (from python-ilorest-library) (1.4.0)
Requirement already satisfied: jsonpointer in /home/hpe/.local/lib/python3.10/site-packages (from python-ilorest-library) (2.4)
Requirement already satisfied: ply in /home/hpe/.local/lib/python3.10/site-packages (from jsonpath-rw->python-ilorest-library) (3.11)
Requirement already satisfied: decorator in /home/hpe/.local/lib/python3.10/site-packages (from jsonpath-rw->python-ilorest-library) (5.1.1)

Hi @ckirim1 , We have made the appropriate changes and released a new build on Ansible galaxy. Could you verify using the new files? Kindly notice the changes done to the readme as well. We have added 2 new modules to install.

why are the repos out of sync? Should I not trust the github repo?

Hi @dblviking ,
The code is uniform throughout Ansible galaxy and this GitHub repository. We just use Ansible galaxy as our main point of contact.

I seem to have same issue and after troubleshooting, and fixing the following code, everything started to work
diff --git a/plugins/module_utils/ilo_oem_utils.py b/plugins/module_utils/ilo_oem_utils.py
index 48d627f..ad05889 100644
--- a/plugins/module_utils/ilo_oem_utils.py
+++ b/plugins/module_utils/ilo_oem_utils.py
@@ -2784,12 +2784,13 @@ class iLOOemUtils(RedfishUtils):
     def get_phy_nic_info(self):

         # Get on self.root_uri + self.service_root + /systems/1
-        response = self.get_systems_data()
+        #response = self.get_systems_data()
+        response = self.get_request(self.root_uri + self.systems_uri)

         if not response["ret"]:
             return response

-        json_data = response["msg"]["data"]
+        json_data = response["data"]
         # check whether gen11 server or not
         if "Gen11" not in json_data["Model"]:
             nic = []

Otherwise i was getting the following error:
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: AttributeError: 'iLOOemUtils' object has no attribute 'get_systems_data'
fatal: [localhost]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n  File \"/root/.ansible/tmp/ansible-tmp-1701068368.6391258-2277-114105298413712/AnsiballZ_ilo_network.py\", line 107, in <module>\n    _ansiballz_main()\n  File \"/root/.ansible/tmp/ansible-tmp-1701068368.6391258-2277-114105298413712/AnsiballZ_ilo_network.py\", line 99, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/root/.ansible/tmp/ansible-tmp-1701068368.6391258-2277-114105298413712/AnsiballZ_ilo_network.py\", line 47, in invoke_module\n    runpy.run_module(mod_name='ansible_collections.hpe.ilo.plugins.modules.ilo_network', init_globals=dict(_module_fqn='ansible_collections.hpe.ilo.plugins.modules.ilo_network', _modlib_path=modlib_path),\n  File \"/usr/lib64/python3.8/runpy.py\", line 207, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/lib64/python3.8/runpy.py\", line 97, in _run_module_code\n    _run_code(code, mod_globals, init_globals,\n  File \"/usr/lib64/python3.8/runpy.py\", line 87, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_hpe.ilo.ilo_network_payload_j202uv9r/ansible_hpe.ilo.ilo_network_payload.zip/ansible_collections/hpe/ilo/plugins/modules/ilo_network.py\", line 228, in <module>\n  File \"/tmp/ansible_hpe.ilo.ilo_network_payload_j202uv9r/ansible_hpe.ilo.ilo_network_payload.zip/ansible_collections/hpe/ilo/plugins/modules/ilo_network.py\", line 219, in main\n  File \"/tmp/ansible_hpe.ilo.ilo_network_payload_j202uv9r/ansible_hpe.ilo.ilo_network_payload.zip/ansible_collections/hpe/ilo/plugins/module_utils/ilo_oem_utils.py\", line 2787, in get_phy_nic_info\nAttributeError: 'iLOOemUtils' object has no attribute 'get_systems_data'\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}

and if we are using delegate_to to delegate the task to another node then you are expected to have python redfish module on the destination host. which seems to be missing from the README

@sai438
Will take a look.


How to set page margin?

I couldn't find this in documentation, but any help would be appreaciated.
How to set page margins?
Or should I set them on the template it self?
Thanks

Hi, yes, setting it on the template is the way to go.

Closing the issue but feel free to reopen if you still have questions about this.


The example in chapter 11 is not working.

The import 'bootstrap/dist/css/bootstrap.css'; does not work because the file does not.
When commenting out the file the browser output is messed up.

@gungmas This should be fixed now. Try running npm install and npm start again.


Death by Snu-Snu

Death by Snu-Snu, if they initiate loving while they have the lovin thought already active there's a 50% chance they die and their pelvis is smashed

@mrsamuelstreamer

Michał "Luigi" Głuś — Today at 13:05
But only if one of them has the big-boned trait
The chair breaking one

Roll1D2Games — Today at 13:06
Oh a scaling chance based on pawn bodysize duh
its so obvious in hindsight


[Step 2] Remove Transaction support and enable driver-level 'autocommit'

The autocommit property on BaseConnection was not safe for multi-threaded code. The BaseConnection objects were being shared among threads, but the transaction code was treating it as if it was the sole owner of the autocommit value.
We don't actually need the transaction feature, so rather than doing the work to make it isolated, I'm just going to remove it entirely. This allows us to simplify the code by relying on the database driver's "autocommit" feature instead of implementing it ourself.

Oh, I was going to change the base branch and the commit title prior to merging. But no big deal. I will create a new PR against master for each one.


Test failures since version 0.13.2: NameError: name 'dirty_equals' is not defined

Our CI started failing after 0.13.2 release with
    def use_valid_old_values(old_value, new_value):

>       if isinstance(new_value, dirty_equals.DirtyEquals):
E       NameError: name 'dirty_equals' is not defined

.venv/lib64/python3.12/site-packages/inline_snapshot/_inline_snapshot.py:285: NameError

thank you for the report, this is fixed in 0.13.3

Cheers, thank you!
I was quite confused since dirty_equals is mentioned only once in the documentation.
I am wondering to make things clearer if it would make sense to introduce a new optional extras groups with this optional dependency?


After trying to log in, login pop-up not closing and inside that pop-up window application is rendering

Core Library
MSAL.js v2 (@azure/msal-browser)
Core Library Version
2.32.0
Wrapper Library
MSAL React (@azure/msal-react)
Wrapper Library Version
1.4.6
Public or Confidential Client?
Public
Description
The issue is intermittent.
In login pop-up window the user typed valid credentials to log in his Microsoft account.
In most cases the user will successfully be logged in and pop-up will close.
However, sometimes login pop-up doesn't close and inside that pop-up window the user can use the same application.
I noticed that app is also running in the parent app window but user is not logged in.
I have noticed that logging out from your MS account in the browser, makes the popup require the email again and it works. IF there isn't a fix for this, is there a way I can always ask for the credentials even though I am signed in in the browser?
When this happens, the URL contains a hash #code=0.AXQABc3mS.
Error Message
No response
Msal Logs
No response
MSAL Configuration
export const msalConfig: Configuration = {
  auth: {
    clientId: process.env.REACT_APP_AZURE_CLIENT_ID,
    redirectUri: process.env.REACT_APP_AZURE_REDIRECT_URI,
    postLogoutRedirectUri: process.env.REACT_APP_AZURE_POSTLOGOUT_REDIRECT_URI,
  },
  cache: {
    cacheLocation: "localStorage",
    storeAuthStateInCookie: isIE || isEdge || isFirefox,
  },
  system: {
    asyncPopups: true,
    allowRedirectInIframe: true, // Needed for Front-channel logout
    loggerOptions: {
      loggerCallback: (level, message, containsPii) => {
        if (containsPii) {
          return;
        }
        switch (level) {
          case LogLevel.Error:
            console.error(message);
            return;
          case LogLevel.Info:
            console.info(message);
            return;
          case LogLevel.Verbose:
            console.debug(message);
            return;
          case LogLevel.Warning:
            console.warn(message);
            return;
          default:
            return;
        }
      },
    },
  },
};

Relevant Code Snippets
<MsalAuthenticationTemplate
        interactionType={InteractionType.Popup}
        authenticationRequest={authRequest}
        errorComponent={ErrorComponent}
        loadingComponent={LoadingComponent}
 />

Reproduction Steps
User clicks to log into application with his Microsoft account.
Pop-up window shows up and user enters valid credentials to sign in with his MS account.
The pop-up does not close and inside that pop-up window application is rendering.
Expected Behavior
After giving valid credentials the login pop-up window is always closing and user is logged into application.
Identity Provider
Azure AD / MSA
Browsers Affected (Select all that apply)
Chrome, Firefox
Regression
No response
Source
Internal (Microsoft)

https://user-images.githubusercontent.com/105778530/206939863-26310509-bd11-4e38-9b60-2747bedf97a9.mp4

I have noticed that this is added when the popup fails to close

@diamant-isufi-sveasolar The video you attached does not appear to include the hash in the popup window. Can you explain/show where you are seeing it?
Additionally, have you tried increasing the frequency with which MSAL checks the hash by reducing the pollIntervalMilliseconds system configuration option? You can try 20 or 15 ms.

@jo-arroyo I have screen recorded it, and it displays for a very short period of time before opening the app inside the popup.  About the pollIntervalMilliseconds, you say increasing but the default value is 30. Should I try and decrease it?

Anyone has a suggestion?

@hectormmg I will add that and will comment here if solved. Thing is the issue is intermittent, so I would appreciate leaving this issue opened until I try to reproduce it again with the added pollIntervalMilliseconds. Thanks!

I have screen recorded it, and it displays for a very short period of time before opening the app inside the popup.

This is the issue. It should not disappear.  To fix this you need to ensure that your router (or anything else) is not manipulating the url in any way. The best way to accomplish this is to use a static blank page as your redirectUri and do not include it in your routing logic

@tnorling but most of the times this will work, and couple of times it fails.. Why would it work in some of the cases, and the same routing logic taking place?

Because this is a race condition. When it fails it means whatever is removing the hash won the race. When it succeeds it means MSAL.js won the race. By ensuring that your router is not acting upon the redirectUri page you eliminate the race and ensure that MSAL.js always has access to the hash.

@tnorling It is worth saying that this never happens locally, only when deployed..Now I need the router logic after it's finished cause that is the thing that redirects the user to the Private routes.

@diamant-isufi-sveasolar Do you need anything else from us at this point or have you figured it out?

@tnorling It is worth noting that this does not happen when I run the app locally. Only when it is deployed..So if it was for the router it should've happened locally too.

I was able to fix my issue by setting pollIntervalMilliseconds to 0.

I have the same issue, I tried with pollIntervalMilliseconds, and continue to happen sometimes

Same here, login window sits there for a good 15-30 secs or so, setting pollIntervalMilliseconds to 0 fixes the issue.

Same here, login window sits there for a good 15-30 secs or so, setting pollIntervalMilliseconds to 0 fixes the issue.
I have the same issue, repeating every time I change branches. How do you specify this parameter?

Clearing the cache, rebuilding, deleting node_modules and dist, does not solve the issue. But, after some tries it start working by itself and does not fail until another branch is selected.

where is the pollIntervalMilliseconds setting? This issue is killing me. :)

never mind, found it. Thanks

I don't know where the setting is too. Thank you for sharing your knowledge.

pollIntervalMilliseconds

Please see this: https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/configuration.md
It is under 'system' configuration value.


Use self instead of window when referring to the global object

What

Use self instead of window when referring to the global object

Why

This came up recently in a few cases: https://github.com/Azure/azure-sdk-for-js/issues/11067 and in this discussion: https://github.com/Azure/azure-sdk-for-js/pull/13232#discussion_r557793538
window is not always the global object, but self's reference changes depending on the context and will point to the right global object

We made this change in azure-sdk-for-js but we should make it here as well.

The version number needs to be updated

package.json
lib/util/constants.ts

@jeremymeng Thanks! First time making changes in this repo :smile:
Feel free to let me know if there's anything else I need to change (and I'll keep an eye on CI)


multilevel wavelet and print DWT Scaling Coefficients

Hi,
How can I create a discrete wavelet with 8 levels and print the DWT Scaling Coefficients, like in the following example in R? http://ideone.com/h3oOqm
python:
N = 8
res = [2] * 256
w = pywt.Wavelet('haar')
res = pywt.wavedec(res, wavelet=w, mode='per', level=N)
print res

the python code only calculates level 8...is that expected? i only see one coefficient, which is 32
i did the following, but is there a way to avoid this loop? how can i set the max_level?
res = []

for i in range(1, 9):
  scaling_coeffs = pywt.wavedec(x, 'haar', level=i)
  res.append(scaling_coeffs[0][0])

print res

The current behaviour is to only calculate the approximation coefficient at the highest level using wavedec. I think the wavelet packet module allows you to pick an arbitrary coefficient & level. I have not used it much in my work so I don't really know the details of it. I think this is correct:
wp = pywt.WaveletPacket(data, 'haar')
coeffs = [wp['a' * level].data for level in range(1, 9)]

If you do not want to use that, then using dwt on the previous scaling coefficient in your loop would be more efficient, since your method starts from the base level on each loop iteration:
data = [2] * 256
coeffs = [pywt.dwt(data, w, mode='per')[0]]
for i in range(1, 8):
  coeffs.append(pywt.dwt(coeffs[-1], w, mode='per')[0])

Closing as solved. If the proposed solutions don't work, or you think there is a use-case for modifying the behaviour of wavedec, please comment and re-open.


Use resource loader for script existence check

Latest versions of godot can produce bytecode gdc files on export, so script existence check with FileAccess is not so reliable. ResourceLoader should manage this problem.
Resolves #209.

Kinda critical, so merging it without deep testing, hope there won't be any issues.


stuck after adding custom attribute on existing userpool created with nodejs8.x lambdas

Describe the bug
PLEASE HELP!!! I have a bit of a pickle Im stuck in :cucumber:
I recently needed to add a custom attribute to my cognito user pool. Our project uses amplify and we have made this change on the cloudformation template before, so i added the snipped that will add a custom attribute to the user pool. while on that file, i noticed that the lambda function that amplify used in the past was set to the node environment of 8.x. knowing that AWS has stopped support for 8.x i changed that to 12.x, I then moved on to pushing (which does a build on the Amplify console)
my build failed due to another lambda function in another file being set to 8.x (I didnt go looking through all the files for 8.x lambdas for obvious reasons). however, the rollback on cloudformation is in a UPDATE_ROLLBACK_FAILED state due to the reason that “a custom user attribute cannot be deleted or modified once it is set on the user pool”. basically the lambda failed to pass the >8.x  check only AFTER the custom attribute was added to the userpool
I have no clue which github board this issue would sit on... so im posting here
To Reproduce
add a custom user attribute to a user pool that was created with 2 lambdas using the 8.x nodeJS runtime environment. and updating only the runtime environment of the userpool lambda function
Expected behavior
update should fail and rollback should complete by removing the newly added custom attribute for the user to try again after making the appropriate changes. OR don't add the attributes until the lambda function check is not completed
Screenshots

npx envinfo --system --binaries --browsers --npmPackages --npmGlobalPackages
npx: installed 1 in 2.691s

  System:
    OS: macOS 10.15.2
    CPU: (8) x64 Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
    Memory: 336.87 MB / 16.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 10.15.1 - ~/.nvm/versions/node/v10.15.1/bin/node
    Yarn: 1.17.3 - /usr/local/bin/yarn
    npm: 6.4.1 - ~/.nvm/versions/node/v10.15.1/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  Browsers:
    Brave Browser: <IP_ADDRESS>
    Chrome: 79.0.3945.130
    Firefox: 68.0.1
    Safari: 13.0.4
  npmPackages:
    @bugsnag/js: ^6.0.0 => 6.3.2
    @bugsnag/plugin-react: ^6.0.0 => 6.2.0
    @types/amplify: ^1.1.24 => 1.1.24
    @types/classnames: 2.2.7 => 2.2.7
    @types/color: ^3.0.0 => 3.0.0
    @types/country-data: ^0.0.0 => 0.0.0
    @types/debug: ^4.1.1 => 4.1.4
    @types/dotenv: 6.1.0 => 6.1.0
    @types/graphql: 14.0.5 => 14.0.5
    @types/jest: 24.0.0 => 24.0.0
    @types/jwt-decode: ^2.2.1 => 2.2.1
    @types/lodash: ^4.14.121 => 4.14.135
    @types/moment: ^2.13.0 => 2.13.0
    @types/node: 10.12.24 => 10.12.24
    @types/react: 16.8.2 => 16.8.2
    @types/react-color: 2.14.0 => 2.14.0
    @types/react-copy-to-clipboard: ^4.2.6 => 4.2.6
    @types/react-countup: ^4.0.1 => 4.0.1
    @types/react-daterange-picker: ^2.0.1 => 2.0.1
    @types/react-dom: 16.8.0 => 16.8.0
    @types/react-dropzone: ^4.2.2 => 4.2.2
    @types/react-lottie: ^1.2.1 => 1.2.2
    @types/react-router-dom: 4.3.1 => 4.3.1
    @types/react-select: ^2.0.13 => 2.0.19
    @types/react-table: 6.7.21 => 6.7.21
    @types/react-toggle: ^4.0.2 => 4.0.2
    @types/react-truncate: ^2.3.3 => 2.3.3
    @types/styled-components: 4.1.8 => 4.1.8
    @types/styled-system: 3.2.1 => 3.2.1
    @types/url-parse: ^1.4.3 => 1.4.3
    @types/uuid: ^3.4.4 => 3.4.5
    apollo-cache-inmemory: 1.4.2 => 1.4.2
    apollo-client: 2.6.3 => 2.6.3
    apollo-link-context: ^1.0.17 => 1.0.18
    apollo-link-error: 1.1.7 => 1.1.7
    apollo-link-http: 1.5.11 => 1.5.11
    apollo-link-retry: 2.2.10 => 2.2.10
    aws-amplify: 1.1.19 => 1.1.19
    aws-amplify-react: 2.3.2 => 2.3.2
    axios: ^0.18.0 => 0.18.1
    bugsnag-build-reporter: ^1.0.2 => 1.0.2
    bugsnag-sourcemaps: ^1.2.2 => 1.2.2
    chart.js: 2.7.3 => 2.7.3
    classnames: 2.2.6 => 2.2.6
    color: ^3.1.2 => 3.1.2
    color-string: ^1.5.3 => 1.5.3
    country-data: ^0.0.31 => 0.0.31
    debug: ^4.1.1 => 4.1.1
    dotenv: 6.2.0 => 6.2.0
    formik: ^1.5.4 => 1.5.7
    glob: ^7.1.5 => 7.1.5
    glyphicons-only-bootstrap: ^1.0.1 => 1.0.1
    graphql: 14.1.1 => 14.1.1
    graphql-tag: 2.10.1 => 2.10.1
    hex-to-rgba: ^1.0.2 => 1.0.2
    history: 4.7.2 => 4.7.2
    husky: 1.3.1 => 1.3.1
    invert-color: ^2.0.0 => 2.0.0
    jest-canvas-mock: ^2.0.0-alpha.3 => 2.1.0
    jest-dom: 3.1.0 => 3.1.0
    jest-styled-components: 6.3.1 => 6.3.1
    jwt-decode: ^2.2.0 => 2.2.0
    lint-staged: 8.1.3 => 8.1.3
    lodash: ^4.17.11 => 4.17.11
    moment: ^2.24.0 => 2.24.0
    moment-range: ^4.0.2 => 4.0.2
    patch-package: ^6.0.4 => 6.1.2
    postinstall-postinstall: ^2.0.0 => 2.0.0
    prettier: 1.16.4 => 1.16.4
    react: 16.8.1 => 16.8.1
    react-apollo: 3.0.0 => 3.0.0
    react-chartjs-2: 2.7.4 => 2.7.4
    react-color: 2.17.0 => 2.17.0
    react-copy-to-clipboard: ^5.0.1 => 5.0.1
    react-countup: ^4.1.3 => 4.1.3
    react-daterange-picker: ^2.0.1 => 2.0.1
    react-dom: 16.8.1 => 16.8.1
    react-driftjs: ^1.1.6 => 1.1.6
    react-dropzone: 8.1.0 => 8.1.0
    react-feather: 1.1.6 => 1.1.6
    react-ga: ^2.5.7 => 2.6.0
    react-jsonschema-form: ^1.6.1 => 1.6.1
    react-lottie: ^1.2.3 => 1.2.3
    react-player: ^1.9.3 => 1.11.1
    react-router-dom: 5.0.0 => 5.0.0
    react-scripts: 2.1.3 => 2.1.3
    react-select: ^2.4.1 => 2.4.4
    react-spring: 8.0.7 => 8.0.7
    react-table: ^6.10.0 => 6.10.0
    react-testing-library: 5.5.4 => 5.5.4
    react-toastify: ^5.1.0 => 5.3.1
    react-toggle: ^4.0.2 => 4.0.2
    react-trello: 2.1.4 => 2.1.4
    react-truncate: ^2.4.0 => 2.4.0
    styled-components: 4.1.3 => 4.1.3
    styled-normalize: 8.0.6 => 8.0.6
    styled-system: 3.2.1 => 3.2.1
    tslint: 5.12.1 => 5.12.1
    tslint-config-prettier: 1.18.0 => 1.18.0
    typeface-poppins: 0.0.54 => 0.0.54
    typescript: 3.3.3 => 3.3.3
    url-parse: ^1.4.7 => 1.4.7
    uuid: ^3.3.2 => 3.3.2
    whatwg-fetch: 3.0.0 => 3.0.0
  npmGlobalPackages:
    @aws-amplify/cli: 3.2.0
    @openzeppelin/cli: 2.5.1
    @webiny/cli: 3.0.0
    aws-cdk: 1.15.0
    expo-cli: 3.4.1
    express: 4.17.1
    ganache-cli: 6.3.0
    next: 9.0.3
    npm: 6.4.1
    pm2: 3.5.1
    rimraf: 2.7.0
    serverless: 1.53.0
    sls: 0.1.0
    truffle: 5.0.2

Smartphone (please complete the following information):

Device: Mac
OS: 10.15.2

@yashutanna Apologizes on just circling back on this, please let us know if you are still experiencing this issue. This would fit into our Amplify CLI workflow so I have reassigned the ticket to their repository.

Hi @yashutanna, which version of the CLI are you using? With version >4.7.0 you will get a prompt to automatically upgrade your NodeJS Lambda runtime versions, from nodejs8.10 to nodejs10.x

Hey guys
Sorry it’s been a while since I posted here
I think the final solution was for me to

upgrade my local amplify cli to latest to get the prompt to upgrade
override the version of amplify cli on amplify console to latest
do a amplify push from my own machine
do a normal git push from them onwards to automatically trigger builds

Thanks!
Sent from my iPhone
On 04 Jun 2020, at 1:27 AM, Nikhil Lingireddy<EMAIL_ADDRESS>wrote:

Hi @yashutannahttps://github.com/yashutanna, which version of the CLI are you using? With version >4.7.0 you will get a prompt to automatically upgrade your NodeJS Lambda runtime versions, from nodejs8.10 to nodejs10.x
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/aws-amplify/amplify-cli/issues/4455#issuecomment-638512710, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABTC7J2NXEJG2K432PPGJQ3RU3L4XANCNFSM4NR7C2UQ.

Resolving based on the customers response


Fixing config issue emissary helm chart

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


iox-#1062 Implement stream operator for ChunkReceiveResult and AllocationError

Pre-Review Checklist for the PR Author

[x] Code follows the coding style of CONTRIBUTING.md
[x] Tests follow the best practice for testing
[x] Changelog updated in the unreleased section including API breaking changes
[x] Branch follows the naming format (iox-#123-this-is-a-branch)
[x] Commits messages are according to this guideline

[x] Commit messages have the issue ID (iox-#123 commit text)
[x] Commit messages are signed (git commit -s)
[x] Commit author matches Eclipse Contributor Agreement (and ECA is signed)

[x] Update the PR title

Follow the same conventions as for commit messages
Link to the relevant issue

[x] Relevant issues are linked
[x] Add sensible notes for the reviewer
[x] All checks have passed (except task-list-completed)
[x] Assign PR to reviewer

Notes for Reviewer

This PR overloads operator<< for ChunkReceiveResult and AllocationError to be able to use it with ostream and LogStream. I need this for a follow up PR to have a nice gTest output on test failure
Checklist for the PR Reviewer

[x] Commits are properly organized and messages are according to the guideline
[x] Code according to our coding style and naming conventions
[x] Unit tests have been written for new behavior

[x] Each unit test case has a unique UUID

[x] Public API changes are documented via doxygen
[x] Copyright owner are updated in the changed files
[x] PR title describes the changes

Post-review Checklist for the PR Author

[ ] All open points are addressed and tracked via issues

References

Closes #1062

@elfenpiff I would combine the macro with the proposal from above and do everything in a follow up PR.