Re-work sighash type conversion methods

This PR has evolved into a full blown clean up of the conversion methods for all three sighash types based on the discussion below.
Everything is split up into very small patches to aid review (and bikeshedding, this PR is almost totally just naming things).
EDIT: I'm not convinced this should be an RC-fix, the changes are too wide spread now. It started as just a single method rename. Leaving label as is for others to consider.

This is also good, I also wouldn't mind nuking the inner method. Your preference.

Let's nuke it :)

@apoelstra please re-ack, if you agree, PR now uses to_u32_standard. Thanks.

ouch, I was on the wrong branch and rebased on master. Sorry fellas, no changes made. Please re-ack and give me a virtual slap.

Thanks for the bump, I have been exclusively looking at taproot release PRs. Feel free to tag me for review.
I will look at your amazing places, but so far I was only tunnel visioning on 0.28  milestone. I missed the RC fix label.

I think the new name is a good idea, given our current crappy handling of non-standard flags.

This is not true. It is possible to have non-standard values if they are explicitly constructed from serialize::Deserialize with non-standard u32. I would rather it be called to_u32.
The purpose of PsbtSigHashType is to capture non-standard sighash types, but users would need their own parsing code to deal with it. All high level APIs like ecdsa_hash_ty and schnorr_hash_ty will fail and the user would need to parse the sighash byte separately and deal with it. No information should be lost in ser/de using psbt serialize methods.

Ok, given @sanket1729's comments I rescind my ACK

It is possible to have non-standard values if they are explicitly constructed from serialize::Deserialize with non-standard u32.

This sounds massively broken. Either we should enforce it's standard in all constructors or in neither. I believe we agreed standard is better?

My recollection was that we agreed "only support standard for now but we should revisit this when we have more room to make breaking API changes". I don't remember whether "only support standard" extended to preventing de/serialization of nonstandard flags.
I agree that the current behaviour is "massively broken" but I think it represents an awkward (and temporary!) compromise.

I don't remember whether "only support standard" extended to preventing de/serialization of nonstandard

Me neither but I strongly believe it should. The next release is massively-breaking anyway, so I'm not convinced being breaking is a good argument against it.

I believe PsbtSigHashType addresses all concerns for non-standard sighash types too. The methods to and from EcdsaSigHashType and SchnorrSigHashType return error on invalid/non-standard sighash types. The ser/de explicitly maintains the inner value. You can do something as follows to deal with non-standard things
if let Err(NonStandardSigHashType) = psbt.input[idx].sighash_ty.ecdsa_sighash_ty() {
	let sighash_u32 = psbt.input[idx].sighash_ty.as_u32();
}

Does this address all concerns?

There is however no direct constructor for making PsbtSigHashType type. It has to be created by serialize::Deserialize. I believe that adding a  PsbtSigHashType::from_non_standard_u32 or PsbtSigHashType::from_u32_raw should be enough.

Ah, all these types are starting to confuse me (or rather myself not remembering all of them). Let's check if I got this right:

We have EcdsaSigHashType, SchnorrSigHashType, PsbtSigHashType
PsbtSigHashType doesn't enforce anything - so it's consensus compatible. Therefore it should make sense to have methods to_consensus and from_consensus
The other two sighash types enforce standardness among other things, they should have methods to_standard and from_standard
PsbtSIgHashType can be infallibly created from other two and fallibly converted to them.

Is this correct?
BTW I noticed PsbtSigHashType is missing link in docs.rs which seems to be caused by us forgetting to reexport it in a public module?

BTW I noticed PsbtSigHashType is missing link in docs.rs which seems to be caused by us forgetting to reexport it in a public module?

I have not attended to this one, FTR the type is re-exported in the psbt module which is public. If you have it handy @Kixunil can you share the command again that builds the docs as they are built for docs.rs please? You told it to me before and I defined a shell alias for it but forgot to sync my shell rc files before going traveling :(

Is this correct?

I went to read the code to see if you were correct and all these patches fell out of it :) I think you were/are correct, except for I added the integer type in the method names e.g. from_u8_standard.

I'm referring to this: https://docs.rs/bitcoin/0.28.0-rc.1/bitcoin/util/psbt/struct.Input.html#structfield.sighash_type
The command is RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --features std,secp-recovery,base64,rand,use-serde,bitcoinconsensus --open
Integer type in method should be fine (although it has Hungarian vibes).

Integer type in method should be fine (although it has Hungarian vibes).

I agree, we had other methods already there with the integer in the name so I went with that. I can change them all to remove them but this is already getting way too involved for a rc fix. Thoughts?

I'll fix the 1.29 CI fails tomorrow.

already getting way too involved for a rc fix

Yeah, I think so.

Since I commented above that I believe this should not be an rc-fix I elected to remove all the _u*_ integer types from the methods added/changed by this PR as suggested.

Mostly ACK, modulo the schnorr signature changes. As there is no notion of standardness validity for those, I think we should call them from_u8. (or any other better name)
I get that adding return types in signatures might not be ideal, but I think we should make this one exception for ecdsa sighash types because they are sometimes serialized as 1 byte when attached to signatures, and serialized as 4 bytes while computing sighash.

they are sometimes serialized as 1 byte when attached to signatures, and serialized as 4 bytes while computing sighash

That's an interesting argument though I think it's still better to refer to these cases by their purpose. Something like serialize_for_signature() and serialize_for_sighash(), please bikeshed.

@Kixunil I find u8 and u32 much clearer as to what they do and where they'd be used. for_signature and for_sighash I would need to read the function bodies of to check that they actually do what I need them to do.

Hmm, maybe have both purpose and type?

I think the type implies the purpose. If you are using these methods, you're writing consensus-related signature code and need to know all of the rules, and your logic would be obfuscated by having long names for everything.

I'm not really sure. I often read docs (or code) of ambiguous things like this. "What does this value mean?" Even if I think it does the expected thing.
That's also why I always document non-obvious impls and such.

This discussion is getting super confusing, attempting to find clarity/consensus.

I get that adding return types in signatures might not be ideal, but I think we should make this one exception for ecdsa sighash types because they are sometimes serialized as 1 byte when attached to signatures, and serialized as 4 bytes while computing sighash.

@sanket1729 is this comment typed correctly? Specifically is the 'ecdsa' correct or did you mean 'schnorr'?
We don't currently provide a way to get EcdsaSigHashType as a u8. (For SchnorrSigHashType we return a u8 which can be cast safely to a u32).
Furthermore:

We have not reached consensus on the naming of the EcdsaSigHashType conversion method that returns a u32, currently it is as_u32, in this PR it is changed to to_standard.
We have loose consensus that to/from_u32 is best for PsbtSigHashType.

If I've missed anyone's view point the fault is my own, please re-state them :)

There are two different issues:
Issue 1: serialized types dependent on modes of operation
Ecdsa signature hash as u32 in signature hash caculation methods for segwit_signature_hash and legacy_signature_hash.
https://github.com/rust-bitcoin/rust-bitcoin/blob/2c1077e6817cbe1f04d6668dda56b62d920e0c92/src/util/sighash.rs#L567
Ecdsa signature hash as u8 in signatures when they are serialized as witnesses in transactions.
https://github.com/rust-bitcoin/rust-bitcoin/blob/2c1077e6817cbe1f04d6668dda56b62d920e0c92/src/util/ecdsa.rs#L62
But for schnorr signatures, it is always serialized as u8 (both in sighash calculation and signature serialization)
Issue 2: Standardness
EcdsaSigHashTypes are raw u8 in consensus, but only a few values listed in EcdsaSigHashType are allowed as per standardness rules. When used in sighash calculation it is serialized as u32. Other raw u8 values not listed in EcdsaSigHashType are consensus valid, but not standardness valid.
There is no notion for standardness validity for SchnorrSignatureType. They are either a valid SchnorrSignatureHashType or just invalid.
Based on the above, In my opinion:

We have loose consensus that to/from_u32 is best for PsbtSigHashType.

Agreed with this.

We have not reached consensus on the naming of the EcdsaSigHashType conversion method that returns a u32, currently it is as_u32, in this PR it is changed to to_standard.

I/ (slightly)prefer the names as_u32 party because 1) I am used to it. 2) And to_standard would be confusing to me because the type can also support standard things. I would not mind changing it to as_sighash_msg_u32 (feel free to suggest names here), but I don't feel too strongly about this API would be rarely used in practice. Most people should use legacy_signature_hash API or segwit_signature_hash API that will use the correct serialization. People who would use this are expected to read the BIP for exact ser/de and would pay careful attention to the name API to use.
But, I do feel strongly about the u8 ser/de because that is what almost everyone will be directly using. I think our current API does a good job at cleanly erroring on non-standard values. and only serializing to standard values.
As for the schnorr API naming, I prefer if those don't involve standard/consensus names in them. We designed the new soft forks clearly so that we can have cleaner implementations without worrying about these things. I prefer not confusing users with consensus/standard names when it is really not necessary.

Thanks  for your input @sanket1729.

I/ (slightly)prefer the names as_u32 party because

Did you mean to_u32 not as_u32?

I am used to it. 2) And to_standard would be confusing to me because the type can also support standard things.

I've used to_u32since it is objectively more correct (idiomatic) than as_32. I have added to the commit message a note that we have not managed to reach consensus on this naming.

But, I do feel strongly about the u8 ser/de because that is what almost everyone will be directly using. I think our current API does a good job at cleanly erroring on non-standard values. and only serializing to standard values.

I'm not sure if the current state of the PR is in line with this comment or violates it?

As for the schnorr API naming, I prefer if those don't involve standard/consensus names in them. We designed the new soft forks clearly so that we can have cleaner implementations without worrying about these things. I prefer not confusing users with consensus/standard names when it is really not necessary.

I've dropped the from_u32 -> from_consensus change since we do not have consensus on it either.

With the above discussion in mind the changes in this PR represent an improvement to the code but not a perfect solution. I've tried to distill out the things that are good to merge given that this is still marked as rc-fix. Further improvements and reaching consensus is left for another day.

Changes in rebase:

Fixed bug in docs, indentation was incorrect
Improved docs, added backticks
Re-based on master

This is the last RC-fix labelled open PR, is this all that's holding up the Taproot release or have we some other work to do?

 I did my best to get some resolution though.

Change in force-push: Used links as suggested by @dr-orlovsky

@tcharding I'd like to also update our version of rust-secp in this RC.

Did PR for you: https://github.com/rust-bitcoin/rust-bitcoin/pull/875

Thanks for the review @dr-orlovsky

Sorry, needs rebase because of #806. But yes, @Kixunil we need your approval.

No changes in force push, rebase only.

Changes in force push:

I added back ticks to a u32 in the docs change in 06e7b09 Rename as_u32 -> to_u32.
rebased

While checking over the diff before force pushing I noticed that this PR adds a From<&str> method that immediately calls to_string() on the argument. Do you want me to change this to a From<String> method @Kixunil and then call to_string at the call site? (Noticed while reviewing: https://github.com/rust-bitcoin/rust-bitcoin/pull/898)

This PR had a bunch of unrelated changes to the SchnorrSigHashType, these were conflicting with work being done by @dr-orlovsky in https://github.com/rust-bitcoin/rust-bitcoin/pull/898. I've pulled all those changes out and put them in a separate PR so we can more easily handle the conflicts.

ACK 51ac67356d6b581a99f4775546962a964c18b77b
Not merging yet to give @apoelstra and @Kixunil another day to comment.

ouh, this now requires rebase :( :( :(

I think we should focus on getting this in before any other merge now :)

Force push is rebase only, no other changes.

@Kixunil where have you gone man, are you ok with this one? Its not perfect but is it acceptable?

Merging now, if there will be major comments from other reviewers will do a follow-up PR. We waited for more than a week for the comments already.

BOOM!


make config command non-interactive

I.e. if an argument flag exists, skip that interactive step. If all required arguments exist, the command will be non-interactive.

Reviewing with Yoni. We think this is low priority and a someday nice to have


add .env file

Contains the SOFTWARE_INFO property which causes the showcase button to be displayed when running the front-end only.

Hmm, does make problems when .env already exists (overwrites it without warning). Closing it.


Month displayed in DatePicker and DateRangePicker has the placeholder text still taking space when valorized

Provide a general summary of the issue here
The Segment containing the month placeholder text still takes space when the date field is not empty.

🤔 Expected Behavior?
The correct display of that field should look like this:

😯 Current Behavior
There's a white space (marked in red in the screenshot below):

💁 Possible Solution
Maybe said element should get a display: none; when the filed is not empty.
🔦 Context
No response
🖥 Steps to Reproduce
Create a DatePicker or a DateRangePicker and select a date to fill it's value.
Version
3.32.2
What browsers are you seeing the problem on?
Chrome
If other, please specify.
it's not a browser specific issue
What operating system are you using?
Windows 11
🧢 Your Company/Team
No response
🕷 Tracking Issue
No response

Does the discussion in https://github.com/adobe/react-spectrum/issues/3355 offer an explanation for what you're seeing?

Does the discussion in #3355 offer an explanation for what you're seeing?

Yes I'd say it's the same issue.


Revert UI and layout, leaderboard in-game to OW1

Created by: SametChan
If this is possible and would be great!

Created by: SametChan

It should be possible to make custom scoreboard, but I'm not sure if workshop let you disable the default scoreboard and lets you detect the tab key press.
Low priority enhancement for now.

That is great, but about UI at ability and ultimate, stuff at OW1 should be everything back too, that is also possible?

Created by: snappycreeper
That's impossible to do, overwatch doesn't let us edit the UI

moved from ow1_emulator_backup#597

Created by: MaxwellJung
It should be possible to make custom scoreboard, but I'm not sure if workshop let you disable the default scoreboard and lets you detect the tab key press.
Low priority enhancement for now.


VM with multiple disks

Hi,
do you have any plans to support  Source/Initial/VDI VM's with multiple disks?
Thank you,
Jernej

Hello,
no, I don't think so.
The idea of VM's being ephemeral makes no use of multiple disk drives. If you need some additional storage, perhaps you should use network FS mounts inside VMs (CIFS, NFS, etc).


[quickwin] Select Network

What problem does this new feature solve?
Select Network Quick wins
Describe the solution you'd like
Update
• Search bar added to the network selection, to give the user the opportunity to quickly find which one he wants in case their is a lot more
https://www.figma.com/file/jjt28S7DTuKxVAYLdb8vmn/Web3Modal?type=design&node-id=4114-50100&t=gsyisLKthX9yo8GY-4

Implemented in v3


Fixed:739 -- Minor function renames with old fun deprecation message

https://github.com/scalaz/scalaz-zio/issues/739

Sorry . I still have some places to change. ZSink, FunctionIO, Fiber

Can you please help if there is a way,  i can run only particular Build job of travis pipeline (eg: https://travis-ci.org/scalaz/scalaz-zio/jobs/519403078) or i need to do fresh commit to trigger whole build jobs.

@jadireddi Restarted! 👍

@jadireddi Let me know when you're ready for me to take a look!

Sure @jdegoes . Changes for void and effectBlocking done across.
Will be doing today for BIO, RIO, IO and provideSome and let you know for review.

@jadireddi Can we first merge in the non-IO related changes? The IO related changes need to be discussed because they are too major to make and would not be backward compatible.
Thanks for your work on this!

Sure @jdegoes , in that case i would revert last two commits and update you.
During renaming contramap => provideSome found that ZSink already contains the function with different behaviour(https://github.com/scalaz/scalaz-zio/blob/master/streams/shared/src/main/scala/scalaz/stream/ZSink.scala#L200). If we make this change , it would be conflict of function names. Can we stall this change also or any taughts.

@jadireddi Yes, let's push the IO changes out of this PR since the other ones will be discussed and may be controversial.
I took a look at provideSome, it works on R, the other one works on the input to the sink (A). They are both an example of provideSome / contramap (contravariant map), just with different names and different type parameter slots.
I am not sure I have a great idea here, maybe provideSomeInput. Which one gets the default name probably depends on consistency and commonality. @iravid Any thoughts here?

@jdegoes , This PR contains changes for only void and effectBlocking .  Kindly review them.

Thank you for your hard work on this, and congratulations on becoming a ZIO contributor!

Thank you @jdegoes for continuous support and encouragement. Getting appreciations from you always mean a lot.


How to use graffiti-mongoose to generate the original graphql schema.js ?

Hi,
I have a mongoose Schema, and I'd like to have a look at the original Graphql that is generated by graffiti-mongoose. Is there some way to let graffiti-mongoose export a Schema.js file?
btw, thank you for the great work :+1:

Hi @sulliwane,
you can save the user readable version of the schema to a file by using this script:
require('babel-polyfill');
const fs = require('fs');
const path = require('path');
const graffitiMongoose = require('@risingstack/graffiti-mongoose');
const graphqlUtils = require('graphql/utilities');
const mongooseSchema = require('./schema');

const schema = graffitiMongoose.getSchema(mongooseSchema);

// Save user readable type system shorthand of schema
fs.writeFileSync(
  path.join(__dirname, './schema.graphql'),
  graphqlUtils.printSchema(schema)
);

@tothandras I just tried your code, and I get this error:
/node_modules/@risingstack/graffiti-mongoose/lib/model/model.js:121
  return mongooseModels.map(getModel).reduce(function (models, model) {
                        ^

TypeError: mongooseModels.map is not a function
    at getModels (/node_modules/@risingstack/graffiti-mongoose/lib/model/model.js:121:25)
    at Object.getSchema (/node_modules/@risingstack/graffiti-mongoose/lib/schema/schema.js:260:45)
    at Object.<anonymous> (/exportSchema.js:9:33)
    at Module._compile (module.js:425:26)
    at Object.Module._extensions..js (module.js:432:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Function.Module.runMain (module.js:457:10)
    at startup (node.js:136:18)
    at node.js:972:3

I npm install<EMAIL_ADDRESS>, and also put require("babel-core/register"); at the top of your script as my schema use import and it was not recognized.
I use node v5.
Any idea where the problem comes from? Is it related with babel 6? Thank you for you help

@sulliwane
You need to pass an array to the getSchema function. In this case mongooseSchema must be an array.

ok, it works now! awsome. Relay compatibility layer is still black magic though, so I need to take some time to make sense out of it...thanks!

@sulliwane take a look at graffiti-todo!

@sulliwane also :) https://blog.risingstack.com/graffiti-mongoose-mongodb-for-graphql/

@tothandras awesome, thanks for the notification :)

hi tothandras, When exporting the graphql.schema file using graffiti-mongoose and your script, the file is not written in plain javascript. It's graphql syntax I guess. Is there any way to export a javascript version? Also, where are the resolve functions in this file? (replaced by resolve-hooks?)
trying to understand what's going on... Thanks

@sulliwane I am not sure what do you mean "javascript" version. :) You can print it out as it is if you like, but looking at the source code would make more sense.
You can find a resolve function on every query, mutation and field. Take a look at the source code or the graphql-js documentation.

this is what it looks like when exported using graffiti-mongoose:
input addCardInput {
  title: String
  description: String
  clientMutationId: String!
}

type addCardPayload {
  viewer: Viewer
  changedCardEdge: changedCardEdge
  clientMutationId: String!
}

type Card implements Node {
  title: String
  description: String
  _id: ID
  id: ID!
}

and this is what my schema looks like ("javascript"):
const Query = new GraphQLObjectType({
  name: 'RootQuery',
  fields: () => ({
    hello: {
      type: GraphQLString,
      resolve() {return 'world';}
    },
});

const Schema = new GraphQLSchema({
  query: Query,
  mutation: Mutation
});

export default Schema;

I need to read more about graphql, I may not be using it the right way...

@sulliwane It's calling a lot of constructors as you can see, I am pretty sure you can't view it as it is.


Linter errors should be reported somehow

For example, if RuboCop cannot lint a file for some reason, the output will be parsed through our violations regex, which will not pickup errors that might have happened. An example of RuboCop throwing an error is using TargetRubyVersion: 2.3.1.
It would be a good to report this to the end-user somehow (maybe via GitHub status).

This has been done by #108.


If terminal.integrated.shell doesn't have a matching terminal.integrated.profiles entry the shell path will be ' '

VS Code Version: 1.55.1
OS Version: Windows 10 20H2 build 19042.867

Hello 👋 The Python extension uses the content of the terminal.integrated.shell.<os> setting to determine which shell is currently used and which virtual environment activation command should be sent.
However, as reported in https://github.com/microsoft/vscode-python/issues/15919#issuecomment-820354564, if the path specified in terminal.integrated.shell.<os> does not have a corresponding terminal.integrated.profiles.<os> entry, the value returned by terminal.integrated.shell.<os> will be '', and terminal type detection will fail.
Steps to Reproduce:

Install Powershell 7 in a non-standard path (for example, outside of the system drive)
Add the path to the newly installed shell to terminal.integrated.shell.windows
Retrieve the value of terminal.integrated.shell.windows using workspace.getConfiguration()

Does this issue occur when all extensions are disabled?: Yes

shell/profiles have changed a lot in the upcoming version, but the python extension should not be doing this (definitely in 1.56) as there's a env.shell extension API for this purpose which should work. In fact that extension was added specifically for the Python extension so I'm a bit confused https://github.com/microsoft/vscode-python/issues/6050

Oh sorry I linked to the wrong file! We do use the env.shell API you mention (in VSCEnvironmentShellDetector), but for some reason the shell path being detected goes from '' to bash.exe, and never F:\\Program Files\\PowerShell\\7\\pwsh.exe:

Info 2021-04-15 16:39:05: Shell path ''
Info 2021-04-15 16:39:05: Shell path identified as shell 'other'
Info 2021-04-15 16:39:05: Terminal name '' identified as shell 'other'
Info 2021-04-15 16:39:05: [object Object]. Shell identified as other (Terminal name is )
Info 2021-04-15 16:39:05: Shell path 'C:\Program Files\Git\bin\bash.exe'
Info 2021-04-15 16:39:05: Shell path identified as shell 'bash'
Info 2021-04-15 16:39:05: Terminal shell path 'C:\Program Files\Git\bin\bash.exe' identified as shell 'bash'
Info 2021-04-15 16:39:05: [object Object]. Shell identified as bash (Terminal name is )
Info 2021-04-15 16:39:05: Shell identified as 'bash'

Although here the API works as intended, so there's probably something else going on. Let me close it and dig a little bit further on the extension side, especially since shells and profiles are being revamped 🙂 Thank you!

I don't totally understand how profiles would interact with shell in stable but we've made some major changes in this area and introduced a new defaultProfile setting in Insiders. I'll double check that all plays nice with env.shell.

Also of interest - when I set "terminal.integrated.shell.windows" to a valid executable path, and don't have "terminal.integrated.defaultProfile.windows" set, II get The terminal process failed to launch: Path to ___ does not exist when I click the plus to create a new default terminal

Can you try this on Insider's? I believe this issue has been fixed.

Closing because I think this has been resolved

to verify:
using the extension terminal sample, log the values of env.shell and getConfiguration().get('terminal.integrated.shell.windows')
these should be non-null and reflect what you've set terminal.integrated.shell.windows to, regardless of whether or not that path is found in terminal.integrated.profiles.windows.

Following up regarding https://github.com/microsoft/vscode-python/issues/16175#issuecomment-839718867,

This also means that such users won't be able to change their default shell using the Terminal: Select default profile command, which can be confusing.
Currently the API vscode.env.shell doesn't use terminal.integrated.defaultProfile even if the shell setting is not specified, and returns the default value instead. Does that also change with https://github.com/microsoft/vscode/pull/123174? I expect it to fallback on the profile setting instead.

@karrtikr you're right, https://github.com/microsoft/vscode/pull/123174 won't fix that because it's actually quite a big change to make that happen which I've been working on most of today, I believe this is too risky to try to get into the recovery build as it involves moving a bunch of stuff around to live under different processes. It's unfortunate that users may get confused and I'm not happy at all with the issues that came with default profiles.
I suggest once the recovery build ships (tomorrow?), in the Python extension check if the user has set defaultProfile but not shell or shellArgs and warn them that the default profile won't be used in this case. Since https://github.com/microsoft/vscode/pull/123174 will be in the recovery build, that should catch all the bad cases

@Tyriar Thanks for the quick fix, although I'm still having some issues with the vscode.env.shell API when trying the latest insiders build. Steps to repro on windows:

Make sure settings related to shell and defaultProfile are clean.
Observe API detects the default shell type correctly.
Change default profile to Command prompt and quickly open a new terminal which triggers an event.
API still detects the shell as powershell.
Open another terminal .
API is now detecting the shell type correctly.

It seems it takes some time for the terminal change to be propagated to to the API. If a wait a bit before opening the terminal, the problem does not happen.

@karrtikr Same here as well. Sometimes on reopening VS Code, the settings seem to vanish as well.

@connor4312 is this verification-found?

I did not try to verify, but after reading the thread reopened from @karrtikr's report of continued problems.

@connor4312 it takes up to 2 seconds after changing a profile to apply the changes by design.

it takes up to 2 seconds after changing a profile to apply the changes by design.

This is true for changes to "terminal.integrated.defaultProfile.windows", but no matter how long I seem to wait, env.shell is not updated after changes to "terminal.integrated.shell.windows". The only way I see it updated is if I reload the window
Version: 1.58.0-insider (user setup)
Commit: 3e0c442a8ee9fdc037d627d70fe291f72af04cfd
Date: 2021-06-16T05:17:51.956Z
Electron: 12.0.11
Chrome: 89.0.4389.128
Node.js: 14.16.0
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19043

@ejizba created https://github.com/microsoft/vscode/issues/128079 for that, thanks


waydroid service cannot be manually stopped completely (automatically starts again)

Describe the bug
waydroid-container systemd service cannot be stopped completely. It starts again automatically right after being stopped.
Steps To Reproduce
virtualisation.waydroid.enable = true;

$ systemctl stop waydroid-container

Expected behavior
waydroid-container gets stopped completely after systemctl stop waydroid-container.
Screenshots
$ sudo journalctl -b -u waydroid-container -e
Aug 14 14:01:01 v16 systemd[1]: Stopping Waydroid Container...
Aug 14 14:01:26 v16 systemd[1]: waydroid-container.service: Deactivated successfully.
Aug 14 14:01:26 v16 systemd[1]: waydroid-container.service: Consumed 498ms CPU time, 61.5M memory peak, 0B memory swap peak, read 24.7M from disk, written 0B to disk, no IP traffic.
Aug 14 14:01:26 v16 systemd[1]: Started Waydroid Container.

Additional context
$ systemctl cat waydroid-container.service
# /etc/systemd/system/waydroid-container.service
[Unit]
Description=Waydroid Container

[Service]
Environment="LOCALE_ARCHIVE=/nix/store/9dij3pl4dkdxmxhasjw1pa9hzqv4rjlp-glibc-locales-2.39-52/lib/locale/locale-archive"
Environment="PATH=/nix/store/ysqx2xfzygv2rxl7nxnw48276z5ckppn-coreutils-9.5/bin:/nix/store/36rvynxwln7iz0qq3k1v3r1mna8bma8s-findutils-4.9.0/bin:/nix/store/d9xr7s3z0r8rf0ba22q6ilqv68agymdb-gnugrep-3.11/bin:/nix/store/7xwbkzfrs6flyvjyvd23m8r2mlnycinq-gnused-4.9/bin:/nix/stor>
Environment="TZDIR=/nix/store/jyh52p2cxrjn8r4ywdv2am5pjkj1xcqa-tzdata-2024a/share/zoneinfo"
ExecStart=/nix/store/qvki6wzc69hs5vs00x0ayk615rl7d10b-waydroid-1.4.2/bin/waydroid -w container start
ExecStop=/nix/store/qvki6wzc69hs5vs00x0ayk615rl7d10b-waydroid-1.4.2/bin/waydroid container stop
ExecStopPost=/nix/store/qvki6wzc69hs5vs00x0ayk615rl7d10b-waydroid-1.4.2/bin/waydroid session stop

[Install]
WantedBy=multi-user.target

waydroid container stop in ExecStopPost causes the systemd service to start again.
systemd.services.waydroid-container.serviceConfig.ExecStopPost =
  pkgs.lib.mkForce "";

Allows the systemd service to stop completely without further automatic start. But this way it skips waydroid session stop step.
Notify maintainers
@CajuM, @c-h-johnson
Metadata
$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.9.8-zen1, NixOS, 24.05 (Uakari), 24.05.20240711.a046c12`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.22.2`
 - nixpkgs: `/nix/store/2k0r4pk0hzjzk9iwyi61xc0z4qv791j9-source`

Waydroid now uses the following systemd service by default: https://github.com/waydroid/waydroid/blob/main/systemd/waydroid-container.service guess ExecStop and ExecStopPost are redundant.

I fixed my post, where ExecStopPost was missing (because I overridden it). So, waydroid session stop actually causes systemd service to start again.

Waydroid now uses the following systemd service by default: https://github.com/waydroid/waydroid/blob/main/systemd/waydroid-container.service guess ExecStop and ExecStopPost are redundant.

Yeah, since 1.4.0 waydroid version, ExecPost and ExecStopPost directives are removed from waydroid-container.service. Currently, version 1.4.2 is the latest in nixpkgs.


Add bin_mask parameter to gate.density2d() to facilitate the reuse of density gates

Introduce a DensityGate class, which is returned from and can be reused with gate.density2d.
Closes https://github.com/taborlab/FlowCal/issues/267.

Rationale
Keeping track of different density gates seemed like a prime opportunity for object-oriented programming, so I introduced our first gate class. I tried to keep it simple (I started with a namedtuple, but ultimately wanted richer equality and hash functions and a clear docstring).
I hid the _bin_edges and _accepted_bin_indices attributes because they're implementation-specific and could theoretically change in the future.
I revealed the boundaries attribute because users might want to know how to visualize the gate boundaries. I chose "boundaries" over "contours" because boundaries appears to be the more general multi-dimensional word for contours (I didn't change contours anywhere it's already in use, though).
I tried to be as specific and general as possible in describing the attribute data types (see DensityGate docstring) without imposing additional constraints on existing data structures.

Testing
Many new unit tests were written, and they all pass in Python 3.8 + Anaconda 2020.02 and Python 2.7 + Anaconda 4.4.0.
The following script, which applies a density gate trained on one data set to another data set, also appears to produce the correct output:
import FlowCal as fc
import matplotlib.pyplot as plt

d2 = fc.io.FCSData('./examples/FCFiles/Data002.fcs')
d3 = fc.io.FCSData('./examples/FCFiles/Data003.fcs')
d2 = fc.transform.to_rfi(d2)
d3 = fc.transform.to_rfi(d3)

out2 = fc.gate.density2d(d2, channels=['FSC','FL1'], gate_fraction=0.5, full_output=True)
out3_gate2 = fc.gate.density2d(d3, channels=['FSC','FL1'], density_gate=out2.density_gate, full_output=True)

fig,ax = plt.subplots(nrows=2, ncols=2, figsize=(7,7))
plt.sca(ax[0,0])
fc.plot.density2d(d2, channels=['FSC', 'FL1'], title=d2.infile, mode='scatter')
for cntr in out2.density_gate.boundaries:
    plt.plot(cntr[:,0], cntr[:,1], color='red')
plt.sca(ax[0,1])
fc.plot.density2d(d3, channels=['FSC', 'FL1'], title=d3.infile, mode='scatter')
for cntr in out2.density_gate.boundaries:
    plt.plot(cntr[:,0], cntr[:,1], color='red')
plt.sca(ax[1,0])
fc.plot.density2d(out2.gated_data, channels=['FSC', 'FL1'], title='Gated w/ Data002.fcs density gate', mode='scatter')
for cntr in out2.density_gate.boundaries:
    plt.plot(cntr[:,0], cntr[:,1], color='red')
plt.sca(ax[1,1])
fc.plot.density2d(out3_gate2.gated_data, channels=['FSC', 'FL1'], title='Gated w/ Data002.fcs density gate', mode='scatter')
for cntr in out3_gate2.density_gate.boundaries:
    plt.plot(cntr[:,0], cntr[:,1], color='red')

plt.tight_layout()
plt.savefig('reuse_density_gate.png', dpi=600.0)

We may also want to mention this functionality in the tutorial somewhere, but I couldn't find an obvious place to put it.

I am not convinced that an object is the right data structure for this. Objects should contain data and perform operations, but DensityGate does not contain any methods other than the boilerplate equality functions. I would prefer if bin_edges and accepted_bin_indices are direct arguments to density2d(). This would make it more consistent with the function-oriented nature of the module, where the arguments are simple and no objects other than FCSData are involved. In addition, it would directly signal the user that these arguments can be generated from scratch, although why they would do this is not clear to me.
Also, would it be better to change accepted_bin_indices to something like bin_mask? We're using mask as the name of one of the outputs already, and this is kind of a similar concept although applied to a different axis.

I would prefer if bin_edges and accepted_bin_indices are direct arguments to density2d(). This would make it more consistent with the function-oriented nature of the module

Hmm, I like preserving the function-oriented nature of the module, but how would one reuse gates? Would one have to keep track of multiple different bin_edges and their associated accepted_bin_indices? That seems kludge to me.
We ultimately have to define an API for specifying density gates, and I see a trade-off between consistency and simplicity. Here, I favor simplicity; I thought specifying bin_edges and accepted_bin_indices was too complicated for a normal (casual) user and offering them a black-box DensityGate class would be simpler. Moreover, the underlying implementation could change and break the API, whereas packaging the necessary underlying data structures into an object would allow seamless modification of the underlying algorithm with no change to the API. I also would not recommend specifying bin_edges and accepted_bin_indices manually because they are very interrelated and pretty technical (accepted_bin_indices must correctly index an unraveled 2D histogram created from bin_edges).
So I thought all but the most technical users would prefer to carry around different DensityGate instances (e.g. from their control samples) and simply pass them back to density2d() and not worry about what's going on under the hood. (And a technical user should be comfortable making their own DensityGate instance if it's well documented.)

Also, would it be better to change accepted_bin_indices to something like bin_mask? We're using mask as the name of one of the outputs already, and this is kind of a similar concept although applied to a different axis.

Hmm, that would certainly make it a lot easier to explain to users, and possibly obviate my desire to hide the implementation details behind a black-box DensityGate class. As the algorithm is currently implemented, though, I don't think it's an appropriate description of the data structure.
To me, "mask" implies a Boolean array of the same size as the array being masked. accepted_bin_indices is a set of integers (not bools), and its length does not match the length of the data structure it is indexing. Moreover, it relies heavily on how numpy unravels 2D arrays, making it hard to specify manually.
If the algorithm could be modified to use a more traditional mask (e.g., a 2D Boolean array—which I think indexes other 2D arrays of the same size intuitively?), then I might be on board with ditching the DensityGate class.

Offline, @castillohair sanctioned adding a proper bin_mask parameter to gate.density2d() and indicated that a proper mask would be better and more intuitive.

62efdd028f4ec2273c35d5f5a8f8e8a0e033c572 replaces DensityGate with a new bin_mask parameter for gate.density2d().
Unit tests were updated accordingly and pass in Python 3.8 + Anaconda 2020.07 and Python 2.7 + Anaconda 5.2.0.
A script applying a density gate trained on one data set to another data set is shown below along with the script output:

script and output
import FlowCal as fc
import matplotlib.pyplot as plt

d2 = fc.io.FCSData('./examples/FCFiles/Data002.fcs')
d3 = fc.io.FCSData('./examples/FCFiles/Data003.fcs')

d2 = fc.transform.to_rfi(d2)
d3 = fc.transform.to_rfi(d3)

out2 = fc.gate.density2d(d2, channels=['FSC','FL1'], gate_fraction=0.5, full_output=True)

plt.figure(figsize=(3,3))
plt.imshow(out2.bin_mask.T, origin='lower', cmap='gray')
plt.xlabel('row index (FSC)')
plt.ylabel('column index (FL1)')
plt.title('`bin_mask`')
plt.tight_layout()
plt.savefig('bin_mask.png', dpi=600.0)

out3_gate2 = fc.gate.density2d(d3, channels=['FSC','FL1'], bins=out2.bin_edges, bin_mask=out2.bin_mask, full_output=True)

fig,ax = plt.subplots(nrows=2, ncols=2, figsize=(7,7))

plt.sca(ax[0,0])
fc.plot.density2d(d2, channels=['FSC', 'FL1'], title=d2.infile, mode='scatter')
for cntr in out2.contour:
   plt.plot(cntr[:,0], cntr[:,1], color='red')

plt.sca(ax[0,1])
fc.plot.density2d(d3, channels=['FSC', 'FL1'], title=d3.infile, mode='scatter')
for cntr in out2.contour:
   plt.plot(cntr[:,0], cntr[:,1], color='red')

plt.sca(ax[1,0])
fc.plot.density2d(out2.gated_data, channels=['FSC', 'FL1'], title='Gated w/ Data002.fcs density gate', mode='scatter')
for cntr in out2.contour:
   plt.plot(cntr[:,0], cntr[:,1], color='red')

plt.sca(ax[1,1])
fc.plot.density2d(out3_gate2.gated_data, channels=['FSC', 'FL1'], title='Gated w/ Data002.fcs density gate', mode='scatter')
for cntr in out2.contour:
   plt.plot(cntr[:,0], cntr[:,1], color='red')

plt.tight_layout()
plt.savefig('reuse_density_gate.png', dpi=600.0)

A note on an arbitrary decision that was made: When bin_mask is specified and full_output==True, contour is set to None. I did this because contour is calculated from the smoothed density calculated from the data, which is not available if bin_mask is specified by the user. This behavior is noted in the docstring.

Running the Excel UI on the example files fails with the following error message:
Reading experiment.xlsx...

Processing Beads table (1 entries)
==================================

Beads ID B0001...
Loading file "FCFiles/Beads006.fcs"...
Performing data transformation...
Performing gating...
Traceback (most recent call last):
  File "/Users/castillohair/Documents/Programs/FlowCal-recent/FlowCal/FlowCal/excel_ui.py", line 456, in process_beads_table
    beads_sample_gated, __, gate_contour = FlowCal.gate.density2d(
ValueError: too many values to unpack (expected 3)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/castillohair/.pyenv/versions/3.8.2/lib/python3.8/runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/Users/castillohair/.pyenv/versions/3.8.2/lib/python3.8/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/Users/castillohair/Documents/Programs/FlowCal-recent/FlowCal/FlowCal/excel_ui.py", line 1710, in <module>
    run_command_line()
  File "/Users/castillohair/Documents/Programs/FlowCal-recent/FlowCal/FlowCal/excel_ui.py", line 1703, in run_command_line
    run(input_path=args.inputpath,
  File "/Users/castillohair/Documents/Programs/FlowCal-recent/FlowCal/FlowCal/excel_ui.py", line 1580, in run
    beads_samples, mef_transform_fxns, mef_outputs = process_beads_table(
  File "/Users/castillohair/Documents/Programs/FlowCal-recent/FlowCal/FlowCal/excel_ui.py", line 465, in process_beads_table
    raise ExcelUIException(ve.message)
AttributeError: 'ValueError' object has no attribute 'message'

Ooo, good catch. Fixed in aca96d8b53b0970f0da23464f7894e5998cd2394.


Include issue

I have an issue with include.
This call isn't working. The type navigation property isn't loaded
GalerieIndexViewModel model = await _ctx.Galeries
        .Include(i => i.Book)
        .Include(i => i.Book.BookType)
        .Where(g => g.Id == id)
        .Select(s => new GalerieIndexViewModel
         {
          .......... removed for clarity ........
         Properties = _ctx.VisuelProperties.Include(i => i.type).Where(p => p.galerieId == id).ToList(),
         .......... removed for clarity ........
         })
         .AsNoTracking()
         .FirstOrDefaultAsync();

But if I extract it from the call like this:
 model.Properties = _ctx.VisuelProperties.Include(i => i.type).Where(p => p.galerieId == id).ToList();
It works perfectly.
I assume it's not normal.
Thanks.
Further technical details
EF Core version: 2.0
Database Provider: Microsoft.EntityFrameworkCore.SqlServer
Operating system: Windows 10 x64 April 2018 Update
IDE: Visual Studio 2017 15.7

Hello @JulienM28
You should use ThenInclude for that. Like this:
GalerieIndexViewModel model = await _ctx.Galeries
        .Include(i => i.Book)
                ThenInclude(b => b.BookType)
        .Where(g => g.Id == id)

See more examples at https://docs.microsoft.com/en-us/ef/core/querying/related-data#including-multiple-levels

Thank you for your answer, I'll do that in the future,
but the problem isn't with
.Include(i => i.Book)
.Include(i => i.Book.BookType)

The problem is with
Properties = _ctx.VisuelProperties.Include(i => i.type).Where(p => p.galerieId == id).ToList()
Thanks.

@JulienM28 It would be good for you to share your project so that someone here can do a repro.
As @SSkovboiSS  quoted, the most correct way would be to use ThenInclude

Duplicate of #8722


iOS yellow box: Module RNShare requires main queue setup since it overrides...

Steps to reproduce

create new react-native app and install/link react-native-share
react-native run-ios
check out yellow box warning with contents including the title

Expected behaviour
RNShare should load without warnings
Actual behaviour
There is a compatibility warning containing this text:
"Module RNShare requires main queue setup since it overrides constantsToExport but doesn't implement requiresMainQueueSetup. In a future release React Native will default to initializing all native modules on a background thread unless explicitly opted-out of."
Environment

react-native 0.56
iOS 11.3 (in a simulator, model A1586)

react-native-share
Version: npm version 1.1.0
Possible patch:
Looks like this might be the simplest similar patch (though I suppose you could re-think the whole thing...): https://github.com/kmagiera/react-native-gesture-handler/commit/310c3905dc68d9594861551b070238ab53544b7f
Workaround:
import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(
['requires main queue setup']
);

fixed here: https://github.com/react-native-community/react-native-share/pull/331
try master branch

Sorry I logged what is obviously a duplicate! And not just once either. I searched issues prior but only open ones (oops! lesson learned). Thanks for the reply, and thanks for this useful library

@mikehardy don't worry, that's ok.
Thank you for opening the issue and remembering me to create a new release: https://github.com/react-native-community/react-native-share/releases/tag/v1.1.1

@Maple13 done!


Update Keyvault-certificates Readme

Purpose: update readme based on Preview3.
Total changes: 4

no content for link "Iterating lists of certificates"

original

Proposal

Incorrect code snippet, should put parameter "x509CertificateProperties: { subject: "cn=MyCert" }" into method "client.createCertificate()" and const "certificatePolicy"

original

Proposal

incorrect code snippet "getResult"

original

Proposal

incorrect code snippet, certificate can not be updated to a version with given "certificatePolicy", extra code

original

Proposal

close for not valid anymore.


Add table showing critical licenses

Add a table showing critical licenses (clustered by criticality high or medium).  The table should have two columns: One should contain the license name and the other one total number.
Make sure to use deduplicated data as described in #943.

Currently the statistics popup looks like this:

After a verbal discussion with @vasily-pozdnyakov and @Billwuzl, it was understood that the goal of this issue is to essentially extract a table, out of the Signals per Sources table, that contains the high (red) and medium (orange) critical license names and their total numbers.

Exactly, this would be the goal. In the long run one could also image to merge both tables into a more complex one with sorting and filtering. However, for the moment a new one like the one you describe would be nice.


Security feature email alert

A email alert to me if someone else is trying to login to my account

You can work on this issue
On Sun, 30 May 2021, 02:24 github-actions[bot], @.***>
wrote:

Hello @arpit456jain https://github.com/arpit456jain,
Thank you for opening an issue. 🥳
To get assigned to this particular issue please wait for maintainers

Check this guide
https://github.com/vikasdo/Book-Recommendation-Analysis#readme before
contributing.*

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/vikasdo/Book-Recommendation-Analysis/issues/128#issuecomment-850897296,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKT3M7GOKFKY4PPXREB3QMDTQFH7NANCNFSM45YUJ24A
.

@vikasdo @Akshay6890 what will be the level

@vikasdo @Akshay6890 what will be the level

level3, of course, because it's a feature of high priority.


reproducer: use matrix parameters for routing

DO NOT MERGE

There were the following issues with your Pull Request

Commit: 14fce4f41541ea032c57ffcf797f71f4316fd7e0
Commits must be in the following format: %{type}(%{scope}): %{description}

Guidelines are available at https://github.com/fabric8io/fabric8-ui

This message was auto-generated by https://gitcop.com

@sanbornsen @joshuawilson @michaelkleinhenz @maxandersen here is a simple of example of how you can use matrix parameters for routing whilst still lazy loading children. It uses a custom matcher to achieve this.
Note that order matters with the routes (as it always does) and that you can't do this on a route with no path (i.e. put plan on a parent - this causes some 'undefined' errors). This would need making more robust, and all links etc. updating to end with ;view=board when using the board view.
Note that I also started to make the app-routing into more of a hierarchy, with :entity/:space as a parent componentless route, which we should do anyway, as it will make the routing easier to reason about.

You have to directly enter http://localhost:3000/rhn-support-pmuir/BalloonPopGame/plan;view=board in your nav bar to use it, I didn't update any links.

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io

@pmuir snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-559-fabric8-ui.int.rdu2c.fabric8.io


Frontend/login

Added login / register page

@vivilenard, its different from the FIGMA design and colors are off, why?
Also the native bootstrap modals look nice and easy to implement (with adjustments to Figma design) https://getbootstrap.com/docs/5.3/examples/modals/

Its not perfect yet, i just wanted to create the basics so that we can connect it to backend and see if it works.

It's better now. I think it's quite close to figma design?

@vivilenard Better, but the font is different and text smaller? on main layer primary font is Press Start 2P and secondary is Inter
If u want to introduce third font that is ok, but more fonts may cast whole universe into madness of chaos so tread carefully..
Also, Add 42 logo to a button, it looks cool.
Also, according to studies SIGN IN and SIGN UP are way better than Register, Login, join etc. (https://ux.stackexchange.com/questions/1080/using-sign-in-vs-using-log-in)
Im strict because the idea is to submit PR with finished or almost finished (but completed in next PR) stuff so that we dont have to return to it later. Most likely what is submitted in a PR and works will go into production, so it is vital to maintain quality closer to final. Thats also why first we design in Figma, so that we have clear guidance what we want to achieve.

no idea whats going on here, but PR has open for months now with no activity, so assuming its not needed anything


Fix Windows Arguments Passed to Unity

Changes

Wrap Unity arguments with quotes to allow for spaces in arguments
Fix missing customBuildName parameter for Windows builds
Add spaces to build name in build tests
Bump action versions in build tests
Fix artifact naming for v4

Checklist

[x] Read the contribution guide and accept the
code of conduct
[x] Docs (If new inputs or outputs have been added or changes to behavior that should be documented. Please make a PR
in the documentation repo)
[x] Readme (updated or not needed)
[x] Tests (added, updated or not needed)

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

Comparison is base (5ba8197) 37.40% compared to head (d4b0fce) 37.40%.

:exclamation: Current head d4b0fce differs from pull request most recent head fdbe53d. Consider uploading reports for the commit fdbe53d to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files

@@           Coverage Diff           @@
##             main     #623   +/-   ##
=======================================
  Coverage   37.40%   37.40%
=======================================
  Files          75       75
  Lines        3048     3048
  Branches      605      605
=======================================
  Hits         1140     1140
  Misses       1908     1908


TSC Meeting (05 May 2020) Agenda

[ ] Drop Mistral support
[ ] Drop RHEL 6 support
[ ] Drop Python 2.7 in ST2 v3.3?

[ ] Packaging

[ ] How will this affect Ubuntu 16 packages?
[ ] How will this affect RHEL 7 packages?
[ ] What else is involved?

[ ] Pinning build dependencies

[ ] pip
[ ] setuptools

[ ] Convert Makefile to use Python's Invoke

[ ] ci
[ ] st2
[ ] orquesta ?
[ ] orquestaconvert ?

More items to add to the meeting agenda:

v3.2.0 retrospective:

what went well
what didn't went well
improvements/suggestions to the process

Follow-up for EL8 support and U14 deprecation from v3.2:

Ansible, Puppet and Chef deployments

st2web and st2chatops maintenance issues:

potential security vulnerabilities due to outdated dependencies
seeking support/contributors/maintainers for the repositories
potential v3.2.1 patch release to address dependencies

Move away from JS-based st2chatops (https://github.com/StackStorm/discussions/issues/8)

Based on current developments there is a chance of v3.2.1 patch release before committing efforts towards v3.3.0.

More Javascript maintenance debt to add to discussion:

Issues in generating https://api.stackstorm.com/ due to JS issues https://github.com/StackStorm/st2apidocs/issues/9. More context: https://github.com/StackStorm/st2/issues/4051


model: daal4py: Update scikit learn patching

Scikit-learn patching with daal4py is deprecated and will be removed in the future.
Use Intel(R) Extension for Scikit-learn* module instead (pip install scikit-learn-intelex).
To enable patching, please use one of the following options:
1) From the command line:
    python -m sklearnex <your_script>
2) From your script:
    from sklearnex import patch_sklearn
    patch_sklearn()
Intel(R) oneAPI Data Analytics Library solvers for sklearn enabled: https://intelpython.github.io/daal4py/sklearn.html

Why don't we make this a  configuration option in scikit models itself ?
for ex: We can have a boolean config option , in  ScikitConfig, like patch_scikit, which when set to True ,  would patch the scikit API with sklearnex and otherwise wouldn't.
and deprecate and later remove daal4py ?

If you need any help with transition to Intel Extension for Scikit-learn - let me know :)


Refactor xmin to dxmin

when trying to pull the gds files to run the tests:

why don't we set the default max cell name length to 32? that's the limit for older tools, and what value does a cell name longer than that bring anyways? anything longer than 32 characters is pretty much unreadable, no?

sorry, i was on the plane, now it should be better

i still get the error when pulling the test gds files

Looks good to me, but didn't test yet


fix: Replace backslash in MD urls

This are valid in GHFM, but OpenBuild seems to choke

OPS Build status updates of commit 1a8f167:
:clock10: Pending: waiting for processors (7 builds ahead of you)
:warning: OPS Build is busy, currently there are 7 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

OPS Build status updates of commit 1a8f167:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/docs-conceptual/overview.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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

OPS Build status updates of commit d6b05b8:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/docs-conceptual/overview.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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

OPS Build status updates of commit 5b65aa5:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/docs-conceptual/overview.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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

OPS Build status updates of commit c1078b0:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/docs-conceptual/overview.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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


Unable to import pandas on arm64

Describe the bug
Unable to import pandas as I import aws-data-wrangler lambda layer in one of my functions.
[ERROR] Runtime.ImportModuleError: Unable to import module 'handlers/import_data_es': Unable to import required dependencies:
numpy:

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.

We have compiled some common reasons and troubleshooting tips at:

    https://numpy.org/devdocs/user/troubleshooting-importerror.html

Please note and check the following:

  * The Python version is: Python3.9 from "/var/lang/bin/python3.9"
  * The NumPy version is: "1.21.4"

and make sure that they are the versions you expect.
Please carefully study the documentation linked above for further help.

Original error was: No module named 'numpy.core._multiarray_umath'
Traceback (most recent call last):

Environment
Python Version: 3.9
Lambda Arch: arm64
Package            Version
------------------ ---------
asn1crypto         1.4.0
awswrangler        2.13.0
beautifulsoup4     4.10.0
boto3              1.20.39
botocore           1.23.39
certifi            2021.10.8
charset-normalizer 2.0.10
decorator          5.1.1
et-xmlfile         1.1.0
idna               3.3
jmespath           0.10.0
jsonpath-ng        1.5.3
lxml               4.7.1
numpy              1.22.1
openpyxl           3.0.9
opensearch-py      1.0.0
packaging          21.3
pandas             1.3.5
pg8000             1.22.1
pip                20.0.2
pkg-resources      0.0.0
ply                3.11
progressbar2       3.55.0
pyarrow            6.0.1
PyMySQL            1.0.2
pyparsing          3.0.6
python-dateutil    2.8.2
python-utils       3.1.0
pytz               2021.3
redshift-connector 2.0.903
requests           2.27.1
requests-aws4auth  1.1.1
s3transfer         0.5.0
scramp             1.4.1
setuptools         44.0.0
six                1.16.0
soupsieve          2.3.1
urllib3            1.26.8

To Reproduce
Steps to reproduce the behavior.

Create a lambda function python with version 3.9 with arm64 arch.

Add Aws Data Wrangler Layer

The underlying Docker image used to create the Wrangler Lambda layer is lambci/lambda. As far as I could find, only x86 architectures are supported in Lambda images at the moment.

@HAK-CODE we've changed the underlying Docker image used to create the aws-data-wrangler lambda layer and updated our internal build project. We are now able to build layers dedicated to arm64 for Python 3.8 and 3.9. Hopefully these should be available in the next release of aws-data-wrangler!


Fix type definition of Position (#139 Position Class missing types)

Missing type definition of Position caused tslint to throw an "implicity any error"

The typings of driver.js were written in not strict mode but was referenced in strict tsconfig.json which shows the errors, this PR is really great covering this case 👍

Thanks :)


Parse and display EDN values for NaN, +Infinity and -Infinity. Fixes …

…#232
@victorporof can you elaborate on what EDN escaping you're talking about in the TODO? And is there any other Float formatting issues you had in mind when writing that TODO?
While we're here, is null a special EDN type? From what I gather, this should be printed as nil (that's what our parser looks for, anyway)

@jsantell Should make sure that escaped characters in strings are printed/parsed in an isomorphic manner. See https://github.com/edn-format/edn#strings
Nil is indeed an EDN type: https://github.com/edn-format/edn#nil Should be printed as nil, not null though, https://github.com/mozilla/mentat/blob/rust/edn/src/edn.rustpeg#L31

Also filed https://github.com/mozilla/mentat/issues/240

Sorry you'll have to rebase this on top of https://github.com/mozilla/mentat/commit/c038c110173e6e476a93f72720ad67fd1bb4da26
Please make sure the formatting respects the other rules in the peg file.


crash with multiblocked

hi, i'm getting a crash with multiblocked, are this kind of crashes to be comunicated to them or it's ok to you?
the log

This has already been fixed by me in the latest version of multiblocked. So please update the version you are using.
https://www.curseforge.com/minecraft/mc-mods/multiblocked/files/5078880


RPC monitor on debugbar

Summary of changes

Show RPC connection information on Debugbar.

Show RPC endpoint parameters in Messages tab.
Show RPC connection query times in Timeline tab.

I force pushed the commits while the previous PR was closed, so I have to create a new PR instead. Sorry @tjoelsson @xinningsu

Thank you. @tjoelsson @xinningsu


⚠ Bofrost.at has degraded performance

In f558f13, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1524 ms

Resolved: Bofrost.at performance has improved in 9f292f6.


Return just focal point

Is it possible just to return a focal point (rather than getting crop info) upon which a library like https://github.com/jonom/jquery-focuspoint can then reposition an image around when used in a re-sizing window?

No, this library does not produce a (focal) point, it evaluates different crops (rectangles) against the image and picks the best one.
What I have done in the past is that if there is a manually defined focal point: I'd use that one for cropping, otherwise I use smartcrop to produce a good crop. With that said I do the cropping on the servers and not on the client. It's of little use to send the entire image to the client if only a bit of it is going to be used.
You could try to get smartcrop to find a smallish rectangle (by setting min & max scale) and then take the center of that as a center point.
IFF you really want a focal point you are probably better off using face detection (for what it's worth) and some simple edge detection + blob detection for finding a center point in other cases.
But it is, at least in my opinion, a harder problem to find a 'focal point' than to find a good crop. For the good crop you can try to include all the things that appear to be important (in focus, contrasty, faces etc.) and even arrange them in a pleasing way, for the focal point you have to pick one point and hope you got it really rong.
This answer is already to long but long story short:
Smartcrop finds good crops, not (focal) points. I think that's the better problem to solve for a computer. I think focal points are useful as a quick way & easy for humans to annotate what is important in an image. A better system is IMO to allow them to just draw an importance map (highlight the important bits with a marker) and then again let the computer find a nice crop containing those.
Cheers,
Jonas


[stable/redis] metric container doesn't connect to redis master

Describe the bug
Pod metrics can't connect to redis.
Redis container is working well but metrics container don't, it can't connect to redis.
My redis work well with password secret. I don't know if they have something to do with my redis password?
Version of Helm and Kubernetes:
helm version
Client: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"}
kubectl version
Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.0", GitCommit:"70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState:"clean", BuildDate:"2019-12-07T21:20:10Z", GoVersion:"go1.13.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"14+", GitVersion:"v1.14.8-gke.33", GitCommit:"2c6d0ee462cee7609113bf9e175c107599d5213f", GitTreeState:"clean", BuildDate:"2020-01-15T17:47:46Z", GoVersion:"go1.12.11b4", Compiler:"gc", Platform:"linux/amd64"}
Which chart:
redis-10.3.4
What happened:
Metrics container doesn't connect to redis.
kubectl logs -f redis-master-0 -c metrics
time="2020-02-05T15:47:48Z" level=info msg="Redis Metrics Exporter v1.0.3    build date: 2019-06-21-01:14:12    sha1: ec9e6402eda3ea70583a23858c9e698c4390ba36    Go: go1.12.6"
time="2020-02-05T15:47:48Z" level=info msg="Providing metrics at :9121/metrics"
time="2020-02-05T15:47:58Z" level=error msg="Couldn't connect to redis instance"
time="2020-02-05T15:47:59Z" level=error msg="Couldn't connect to redis instance"
time="2020-02-05T15:48:28Z" level=error msg="Couldn't connect to redis instance"
...
What you expected to happen:
No errors in metric container
How to reproduce it (as minimally and precisely as possible):
Here you can found my configuration of my custom_values.yml
https://privatebin.net/?f0106c7378edc041#9cFujE9RrX2GeeMjjFKNn2jimJCdF1rNoW7fuqnDbXPb
Anything else we need to know:
helm install --name redis stable/redis -f custom_values-dani.yaml
k get secret redis-secret-env -oyaml apiVersion: v1 data:   REDIS_PASS: Zmtuc2tmODdUVUpkbWZuCg== kind: Secret metadata:   annotations:     kubectl.kubernetes.io/last-applied-configuration: |       {"apiVersion":"v1","data":{"REDIS_PASS":"Zmtuc2tmODdUVUpkbWZuCg=="},"kind":"Secret","metadata":{"annotations":{},"name":"redis-secret-env","namespace":"default"},"type":"Opaque"}   creationTimestamp: "2020-01-30T15:44:22Z"   name: redis-secret-env   namespace: default   resourceVersion: "31027"   selfLink: /api/v1/namespaces/default/secrets/redis-secret-env   uid: 62bb24cc-4377-11ea-b0bf-42010a140409 type: Opaque

Hi @neodani ,
In your values you have metrics.enabled=false maybe those are not the values you are actually using.
Also I tested the default deployment:
helm install stable/redis --set metrics.enabled=true

Hi!
I've tested and only happens when password is configured in your own secret.
This "default way" works
usePassword: true
#password:
usePasswordFile: false

But when you try with your existing secret, metrics doesn't work, could you try?
existingSecret: redis-secret-env
existingSecretPasswordKey: REDIS_PASSWORD
usePasswordFile: false

Thank you


Unable to parse json when unisphere setting changed to True on WrapJsonRoot

The default setting is False.
/bb/sanmgmt/SMAS/jboss/domain/deploy0/smc0.ear/smc.war/WEB-INF/web.xml
com.emc.em.restapi.WrapJsonRoot
true

Tommy, I'll chat to you about this one again.  We don't recommend making changes to the JSON root parameter PyU4V is set to work out of the box.  I suggest using PyU4V with unmodified install of PyU4V.

hi Paul, this is fine. I thought since unisphere has that setting so user should be able to change it and PyU4V should be able to deal with it. anyways we will use embedded management unisphere for our project so unmodified PyU4V should be ok, but it raised another version parsing issue which I reported issue #90. details were sent to you via internal email. Hope that can be addressed. Thanks, Tommy.


Clearing terminal keeps find annotations

Testing https://github.com/microsoft/vscode/issues/145920
I ran clear while I had the find widget open, and the find result highlighting + sidebar annotations didn't update.
I have shell integration on.

They don't for the current line, which is expected. Can you attach a gif? They're getting cleared for me. Also are you on windows?

@meganrogge after clear on Windows:

interesting - on mac:
https://user-images.githubusercontent.com/29464607/160142736-32add2d0-53ec-4662-a635-8026b823d10d.mov

I also can't reproduce this on windows. @rzhao271 are you still able to?

I'm not able to repro the exact bug. I still do see the scroll bar annotations stay even after I clear a query, though.

Open the terminal find widget.
Search for something that has results (like a single letter).
Clear the query.
:bug: The scroll bar annotations stay.

I've seen that too. For clarity, closing this and will make a new issue for that one.


[Feature Request] Allow expansion of RDF classes

Community Note

Please use a 👍 reaction to provide a +1/vote. This helps the community and maintainers prioritize this request.
If you are interested in working on this issue or have submitted a pull request, please leave a comment.

Graph Explorer Version (and Graph Database and Version used if applicable)
Any
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm frustrated when [...]
None
Describe the solution you'd like
A clear and concise description of what you want to happen.
Current solution allows user to expand individuals but not classes. Feature request is to allow user to expand a class.  For example if :Mike is an instance of class :Person, I can fully expand :Mike, but I cannot expand :Person to look at its neighbors. Some of those neighbors could be interesting to follow in the canvas. For example, if :Person is linked to a SHACL shape or an R2RML mapping, I might want to inspect the shape or mapping.
Additional context
Add any other context or screenshots about the feature request here. Describe any alternatives you've considered.

@charlesivie, should we use Oink for this?


BUG: sometimes in the profile-page-menu the "empty" articles/streams are not getting hidden

There isn't any code to hide the tabs, but this is something I've been wanting to fix. I've just put it off because I wanted to find a better solution than tabs before I fixed it

This may be fixed in the alpha version, at least I've added code to hide the tabs if no articles or stream events are found on at least 3 relays https://next.nostrudel.ninja/

A few days ago, i think it worked.
but git-version today. not working. still showing up :(
i also have another problem. Sometimes my badges show up, sometimes not.


Any chance of a way to ignore through hole from output?

I see there is a way to do this per item, but this could become tedious.
Vanilla KiCad has a option to ignore through hole from production files, is this something that can be done in the plugin?

I might add a feature to output only THT/SMT in the future.
For now, You will have to ignore the manually.

Thanks mate, that would be appreciated.
Great plugin by the way!

Maybe, if there's no JLC/LCSC Part Number present in BOM (or if explicit DNP or similar value in JLC/LCSC field), then, it would be interesting to remove those components from all fabrication outputs.
Thanks!


GAM Delete Mobile

I'm getting a temp error InternalError message when trying to use the "gam delete mobile" command. Any suggestions?

The issue tracker is for full bug reports, please ask your question on the forum first before assuming it's a bug:
https://groups.google.com/forum/#!forum/google-apps-manager


New release with fix for #230

Hi,
can we get a new release with the fix for #230 ?
Thanks!

Anybody?


The default antialiasing setting is very bad for some users

Workaround: change the AA setting in the menu.
If you experience this, please comment with:

your OS
your monitor type and DPI
which AA value works best for you

Screengrab from the web interface, it has exactly the same look on the desktop app, but in this sketch it was particularly visible/annoying for me. Pen width changed to make the effect most apparent.
OS: Windows 11
Monitor type: LCD
PPI: 90, and my laptop monitor 144 which predictably looks much less bad.
On both monitors, my preferred AA setting is 2.0
I'm happy there is a setting for this, but I imagine it could be a total non-issue for most users. I have been making a lot of pixel art in my life, which often contains manual AA, and therefor got trained to spot 'bad' AA. It stands out to me, but I bet it's invisible to many others!

I got curious how other software implements AA.
Adobe illustrator CC (2015) was the worst, maybe they've improved by now?
Inkscape makes thin lines a lower opacity, which works quite well until you zoom out too much
Foxit pdf reader refuses to draw lines thin, which means it's very unrealistic when you zoom out, but it is quite effective! I think this is my favorite implementation actually.

Thank for the useful feedback!

It stands out to me, but I bet it's invisible to many others!

I'm pretty sure many, if not all, could be bothered by this. I certainly aim, based on the screen shot you provided.
FWIW, here is a screenshot on my screen (200+ dpi if I'm not mistaken), with AA = 0.5:


Success

Description
Success
Screenshot

Service Manual
https://www.gov.uk/service-manual/design/confirmation-pages

@gavinwye This is a GOV.UK pattern. It is a confirmation page.

closing this as it's in the service manual


[BUG] Package shows up twice

Describe the bug
The package shows up in the installed package list twice.
To Reproduce
I ran the script to allow the current repository to be used by available packages and then installed 0.1.2_1.  I removed one of the installed packages and they both were removed.  Reinstalled the package and two copies appeared.  Looking in the configuration XML there is only one copy of the package referenced.
Expected behavior
That the package will only appear once in the installed package list.
Screenshots

Version information (please complete the following information):

PfSense: 2.6.0.a.20210604.0100
WireGuard-tools: 1.0.20210424
WireGuard-kmod: 0.0.20210503
pfSense-pkg-WireGuard: 0.1.2_1

@vajonam @Tigger2014

I'm seeing the same, there is something funky going on with the repo.

@theonemcdonald  this is going to be an issue unless we change our package name to WireGuad-devel. Since the package is available in both repos the current "Installed Packages" code doesn't expect that. so I think the answer is our repo we have to rename our package to -devel or something like that, otherwise.

@andrewluebke  in the meanwhile while we sort this out. I would use the command line to add/upgrade the packages not sure which repo its going to be installed from. I had to specify the full version like pkg install pfSense-pkg-WireGuard-0.1.2_1 to get it to choose the right one.

The available packages shows.

But installed shows them as duplicates.

@andrewluebke  This should be fixed now.
please remove the repo using the script and re-add it using the same script. This will not affect your installed packages, should fix up the duplicate packages showing up.

@vajonam That fixed it!  Thanks very much.


Suport LiveView-based interactions?

Hey, thanks for sharing the neat Flop libraries!
Would it be possible for Phoenix helpers to work with LiveView instead of HTTP?

Hey @dalerka, that would be a nice addition, but I haven't looked into it yet. If you want to work on it yourself, pull requests are welcome. Otherwise I hope I can find some time to work on it myself.


Fix broken link in Cargo.toml

Hi,
I noticed that the repository link for egg on crates.io leads to https://github.com/egraph-good/egg which does not seem to exist. The small change in this PR changes the URL in the cargo manifest to https://github.com/egraphs-good/egg. I assume that this will fix the link on creates.io when the next version of egg is released.
Feel free to close this PR and fix the link yourself, if there is some problem

Good catch! Thanks!


modelscope notebook运行成功，但是什么都不能点

I also encountered this problem when using modelscope notebook. It seems that the proxy of AliYun PAI-DSW restricts direct access to WebUI Assets. I later deployed directly using AliYun PAI-DSW. The process is similar and there is no such problem.
BTW, PAI-DSW has a free trial quota that can be claimed.

I also encountered this problem when using modelscope notebook. It seems that the proxy of AliYun PAI-DSW restricts direct access to WebUI Assets. I later deployed directly using AliYun PAI-DSW. The process is similar and there is no such problem. BTW, PAI-DSW has a free trial quota that can be claimed.

@wangxingjun778 please check this out.

@leafiy This is caused by the existing memory fragmentation issue. Currently, there is a restart mechanism on ModelScope that can ensure its use.


add config for sonar

:tada: This PR is included in version 3.4.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Deploy: Fix deprecation warning with pypa/gh-action-pypi-publish@master

https://github.com/pypa/gh-action-pypi-publish#-master-branch-sunset- says:

The master branch version has been sunset. Please, change the GitHub Action version you use from master to release/v1 or use an exact tag, or a full Git commit SHA.

And there are warnings for example at https://github.com/python-twitter-tools/twitter/actions/runs/3051809874
So let's use pypa/gh-action-pypi-publish@release/v1
Also bump actions/checkout whilst we're here.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 31.316%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
652

Relevant Lines:
2082

💛  - Coveralls


DefinitelyTyped for goja and goja-node?

Over at https://github.com/pocketbase/pocketbase/discussions/5512 we are having a discussion about the PocketBase JSVM typings, and I recognize that goja's core and node typings underly PocketBase's extensions.
Do you know if there has been any discussion or attempts at creating something like @types/goja and @types/goja-node? It would be hugely useful for anyone using TS to target a Goja environment.

There hasn't been any discussion as far as I'm aware, but neither goja, nor goja_nodejs define any types of their own (except maybe for GoError).

For example, @types/node introduces many typings and modules that are not available in the goja environment. It seems that es2020 is fairly suitable for defining the basic goja types. Can you help me understand if there might be suitable typings existing already?

There is a long-standing issue about listing all ECMAScript features and their status. Unfortunately, I haven't had time for it so far. Having said that, most of the features are there, so taking es2020 as a basis is not a bad shot.
As for node, very few modules have been implemented, and most of those that are implemented are incomplete, so no, I don't think there are suitable typings available.


removed port from ruby service path, zipkinB3Filter did not correctly match urls

@objectiser could you please review?

@pavolloffay LGTM :+1:


[RFC] Support Chrome's $XDG_CONFIG_DIR/google-chrome*/PepperFlash habit

Prologue
On systems where Chrome cannot update itself, it downloads updates to flash to a user-writable directory and runs it from there.
The way it works is Google downloads each version of PepperFlash to a folder:
$XDG_CONFIG_DIR/google-chrome{|-beta|-unstable}/PepperFlash/<pepperflash-version>

and keeps a note of the latest version at
$XDG_CONFIG_DIR/google-chrome{|-beta|-unstable}/PepperFlash/latest-component-updated-flash

which is a json file with the following sample contents:
{
  "Hash": "PRcNGh3ilV6Ryn8FuYwP8oETM5BJCogYtoNBayBNPSE=",
  "HashAlgorithm": 0,
  "PluginPath": "/home/pritam/.config/google-chrome-unstable/PepperFlash/<IP_ADDRESS>/libpepflashplayer.so",
  "PluginVersion": "<IP_ADDRESS>",
  "Version": 16
}

Proposal
I propose to implement support for detecting presence and freshness (no pun intended) of such libpepflashplayer.sos. I intend to go about it in the following manner:

Implement scanning for the latest-component-updated-flash json file, given an $XDG_CONFIG_DIR path. How to distinguish between the absolute paths that are hardcoded in pepperflash_path_list inside config_pepperflash.c right now and the new $XDG_CONFIG_DIR paths is also something I'm seeking comments on. Right now I'm thinking of checking the first character of each path to see if it's a / or a $. Other ideas I can think of are:

Expanding all paths and checking for both libpepflashplayer.so (as is done right now) and latest-component-updated-flash in each expanded path, and
Using separate variables for absolute paths (e.g.: the current pepperflash_path_list will be renamed to pepperflash_absolute_path_list or something like that) and xdg paths.

Implement going through all paths and picking the latest version available. Right now, freshplayer simply picks the first path that has a regular, readable libpepflashplayer.so.

I was thinking of implementing #1 in config_pepperflash.c, but found that the version choosing logic is in np_entry.c. I could simply do the scanning and choosing amongst xdg paths in config_pepperflash.c and return from fpp_config_get_plugin_path_list with just that one path added, but that would still require maintaining two copies of the version choosing logic. Which is why I'd like to move all of the version choosing logic into config_pepperflash.c.

Waiting for comments

Which is why I'd like to move all of the version choosing logic into config_pepperflash.c.

I think that option would be the best one. There is also no need of returning a list, one path is good enough.

@i-rinat What do I do about the usage of fpp_plugin_get_plugin_paths in config_nacl.c, config_libpdf_backend.c, and config_libpdf_frontend.c`? Do I also refactor the three of them to return a single path?

Also, what is the current status of those three plugins? Are they even enabled/used?

Do I also refactor the three of them to return a single path?

That would be great. I think, it would be fine if they return just single "/opt/google/chrome", without and searing logic involved.

Also, what is the current status of those three plugins? Are they even enabled/used?

They are both disabled by default. NaCl isn't working at all, it's not finished. Libpdf backend part is kind of working, but it's useless without frontend part, which is not implemented. Latter requires porting Javascript code from Chrome PDF extension.

@i-rinat I have initiated a PR (which is a Work-In-Progress right now). The first (and only, right now) commit in it moves version choosing logic into each plugin. Do have a look.

Implemented in da0120a018d634f8825f15988f3b8fcec11ce6c6. Code searches in all paths, then selects one with newest version. Chrome beta and unstable paths were removed, since they almost always have some beta-versions with higher numbers in version strings.


Revert "fix KafkaInputFormat with nested columns by delegating to und…

Revert "fix KafkaInputFormat with nested columns by delegating to underlying inputRow map instead of eagerly copying (#13406) (#13447)"
This reverts commit 23500a4c28767c0a74b2557f8966e13720b7511b.

Description
Garbage collection for the memory allocated by this process is taking up most of CPU usage for indexers. Reverting the commit to test the theory

Fixed the bug ...
Renamed the class ...
Added a forbidden-apis entry ...

Release note

For tips about how to write a good release note, see Release notes.

Key changed/added classes in this PR

This PR has:

[ ] been self-reviewed.

[ ] using the concurrency checklist (Remove this item if the PR doesn't have any relation to concurrency.)

[ ] added documentation for new or modified features or behaviors.
[ ] a release note entry in the PR description.
[ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[ ] added or updated version, license, or notice information in licenses.yaml
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[ ] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[ ] added integration tests.
[ ] been tested in a test Druid cluster.

Closing this PR, and will create a new one. My local configs were not set properly that's why getting local email as a committer, which can't sign the agreement.


fix:  stop request but not calling setStatusCode will trigger an exception In APISIX

Please answer these questions before submitting a pull request

Why submit this pull request?

[x] Bugfix

[ ] New feature provided

[ ] Improve performance

Related issues

Bugfix

Description
see #55
How to fix?
Use 500 as the default HTTP Status Code when setStatusCode is not called.

New feature or improvement

Describe the details and related test reports.

Source branch

Related commits and pull requests

Target branch

@dmsolr pls review it


Self signed certificate valid :)

With the last change the added support to self-signed certificates ;-)
changes

I already updated the API, but haven't tested the self-signed certificates yet, I'll test it and update the README soon, thanks

Webhooks works on the new cersion

But the self signed certificates must be issued by hand


Publishing API takes time and returns 504 error when AI features are enabled

Description
In the Distributed setup, when the AI features are enabled, publishing an API takes time and the following 504 Gateway timeout error occurs.

After refreshing, could see that the API is Published successfully. This behaviour needs to be fixed. This issue is not observed for the Pizzashack api.

Steps to Reproduce
When AI features are enabled after configuring a token as well, try to create and publish an API from the publisher portal through the Stepper UI.
Affected Component
APIM
Version
4.3.0
Environment Details (with versions)
No response
Relevant Log Output
No response
Related Issues
No response
Suggested Labels
No response

Fixed via https://github.com/wso2/carbon-apimgt/pull/12399


Multiple parents for a state

This is more of an RFC.
Lets say I have a child state I want to use in multiple areas of my app. Or perhaps it's more like a mixin, etc. How would you go about doing this? Should I define multiple parent states, or what?

FWIW, this solution worked for me since I only had two parent states that should both be able to access a child view: https://github.com/angular-ui/ui-router/issues/1323#issuecomment-54134290

the only possible way of doing this at the moment, is to do things "off" angular, like dynamically creating a module. I created a reusable "login" module that could be used in admin, buy and user profile pages by wrapping the angular.module inside an init function like this:

export function init(namespace: string){
  angular.module('Login', [
    'ui.router',
    'User',
    'Resources'
  ]).config(['$stateProvider', function($stateProvider) {
      $stateProvider.state('login.register', {
           views:{
                'login': {
                    templateUrl: '/templates/shared/login-register.html'
                }
           }
      });

      $stateProvider.state('login.do', {
           views:{
                'login': {
                    templateUrl: '/templates/shared/login-do.html'
                }
           }
      });

      $stateProvider.state('login.forgot', {
           views:{
                'login': {
                    templateUrl: '/templates/shared/login-forgot.html'
                }
           }
      });

      $stateProvider.state('login', {
         // this act as an abstract, the states are always set to either login.forgot, login.do or login.register
         parent: namespace, // this is the trick
         templateUrl: '/templates/shared/login.html', // has a

 along with markup
         controller: Controllers.Login,
         controllerAs: 'login'
      });
  }]);
}

this way I can still use "login.do" and "login.forgot" without having to resource to namespaced state names, like "buy.login.do" or "admin.login.forgot". constructing the module is straight forward:
import Login = require('../shared/login');

Login.init('buy');
//Login.init('admin');
//Login.init('user');

angular.module('Base', [
   'Login'
]).config(['$stateProvider', ($stateProvider) => {
  $stateProvider.state('buy', {
     // the parent
  });
}]);

@pocesar That's a nice solution. I think you might be able to improve it by creating the state inside a constant function. That function can then be injected into the config calls. For example,
angular.module('myApp').constant('loginDialog', function ($stateProvider, parent) {
  $stateProvider.state('login', {
    parent: parent,
    url: '/login'
  });
})
.config(['$stateProvider', 'loginDialog', function($stateProvider, loginDialog) {
  loginDialog($stateProvider, 'buy');
  loginDialog($stateProivder, 'admin');
  loginDialog($stateProvider, 'user');
}]);

Does that work? That generates non-unique state names. You essentially have multiple states in your application called login (even though they are located at buy.login and admin.login). I would think this would cause state resolution bugs.

Good point. Concatenating the parent into the state name should solve that.
angular.module('myApp').constant('loginDialog', function ($stateProvider, parent) {
  $stateProvider.state(parent + '.login', {
    url: '/login'
  });
})
.config(['$stateProvider', 'loginDialog', function($stateProvider, loginDialog) {
  loginDialog($stateProvider, 'buy');
  loginDialog($stateProivder, 'admin');
  loginDialog($stateProvider, 'user');
}]);

@ProLoser the point was to be able to use ui-sref="login.do" regardless if I'm in admin, user or buy page. I can also do $state.go('login.register') when the current state is user.main.new without breaking the state or the flow, since I needed slightly different configurable versions of the login screen

@pocesar I actually am not so sure that makes sense after I thought about it. If you only have 1 module running at a time, why throw it underneath x module? Why not just make it a top-level state?

@ProLoser inheritance plus nested views unrelated to the login, but can still use login related stuff

Honestly that is starting to sound like a directive or something. I'd be curious to see your setup. Login is sort of a weak example of this design pattern honestly.

+1 (modal states)

@ProLoser can this be closed?

@eddiemonge uh i don't know, up to you if you're leading the project. I am not super present. I can always reopen if the latest version isn't sufficient.

Hi, I have a user case that maybe rellevant to this scenario:
We have a group of products that are editable with a specific state.
I would like to access to that state from /products/:productId and from /categoryA/:productId, so when user finishes editing that product I can just do $state.go('^') and keep user navigation experience consistent.
Actually I'm working on how this can be achieved, but @mfoody solutions seems the best. I'm just learning how ui-router works, so if there's an alternative and easier solution to this, please tell me. :)

It would be great if we have a state that can be appended to any state, haven't thought much though on its implication and detail. But I think it would greatly help

https://christopherthielen.github.io/ui-router-extras/example/stickymodal/index.html#/people/managers
Check this ui-router-extras project, I bet what you want is called sticky state


Initial pass with top level form selection and deletion

Could maybe do with more methods and tests, but this is already working and the tests are passing. I haven't checked visual selections yet, I presume I will need to add more functions and mappings for that.
The general tree sitter / selection code seems to be working though. I might also refactor this a bit to reuse code between the "current form" and "top level form" functions. There's a lot of overlap there but I thought I'd take the simple copy/paste approach first.
Also I went with "top level" to describe this concept, in my tooling I call it "root" but you already have terms for root and I didn't want to muddy those waters.

Okay, code deduplicated and another test for visual selections added. Let me know what you think / what you'd like to change! And feel free to just take this and run with it if you want to make changes of course 😄
I hope this helps!
See #12 for more information about this feature. (for future readers / people without context)

I'm glad you like it! And thanks for building this great plugin, it's a really nice framework to extend.
(so thankful that this is lua, I can't bring myself to contribute / work with VimL these days at all 😬 )

I'm glad you like it! And thanks for building this great plugin, it's a really nice framework to extend.

You're welcome 🤗 It's the least we can do in exchange for Conjure ;)

(so thankful that this is lua, I can't bring myself to contribute / work with VimL these days at all 😬 )

I know! My aversion to VimL was a large factor in why this project even happened! Haha


Manual approval required for workflow run<PHONE_NUMBER>

Workflow is pending manual review.
URL: https://github.com/pushpendrasingh3/manual-approval/actions/runs/7911201975
Required approvers: [pushpendras21 pushpendrasingh3]
Respond "approved", "approve", "lgtm", "yes" to continue workflow or "denied", "deny", "no" to cancel.

approve

approve

approve

All approvers have approved, continuing workflow and closing this issue.

comment

approve