Provided plugins overwritten by detached-plugins on startup

Hi. How can the following behaviour be suppressed:
I configure a hash of plugins to be installed like so:
class { 'jenkins':   plugin_hash => {   <...>   } }
I would like the latest versions to be installed. But all plugins listed in the hash that are also packaged in the WAR as detached plugins get downgraded to this respective version. First, puppet correctly copies them as "hpi", but on service start they are deleted and replaced by the "jpi"s from the original WAR, virtually being downgraded.

Puppet: 4.10.12
Distribution: CentOS 7
Module version: 2.0.0
jenkins 2.176.2

I am having this exact issue.
It seems to only be happening with Jenkins 2.176.2 and up, at 2.176.1 all works as you'd expect.

Correct, 2.176.1 works. However I can confirm that this issue still exists in 2.176.3

Seems that this relates to https://issues.jenkins-ci.org/browse/JENKINS-57528
The plugins must not be installed as *.hpi files otherwise Jenkins will ignore them.

By making the following changes to manifests/plugin.pp I was able to successfully build a Jenkins Master at 2.176.3
`
@@ -99,7 +99,7 @@
}
$plugin_ext = regsubst($download_url, '^.*.(hpi|jpi)$', '\1')

$plugin     = "${name}.${plugin_ext}"

$plugin     = "${name}.jpi"
sanity check extension
if ! $plugin_ext {
fail("unsupported plugin extension in source url: ${download_url}")
@@ -122,29 +122,6 @@
default => absent,
}

at least as of jenkins 1.651, if the version of a plugin being downloaded

has a .hpi extension, and there is an existing version of the plugin

present with a .jpi extension, jenkins will actually delete the .hpi

version when restarted. Essentially making it impossible to

(up|down)grade a plugin from .jpi -> .hpi via puppet across extension

changes.  Regardless, we should be relying on jenkins to guess which

plugin archive to use and cleanup any conflicting extensions.

$inverse_plugin_ext = $plugin_ext ? {

 'hpi'   => 'jpi',

 'jpi'   => 'hpi',

}
$inverse_plugin     = "${name}.${inverse_plugin_ext}"

file {[

 "${::jenkins::plugin_dir}/${inverse_plugin}",

 "${::jenkins::plugin_dir}/${inverse_plugin}.disabled",

 "${::jenkins::plugin_dir}/${inverse_plugin}.pinned",

]:

 ensure => absent,

 before => Archive[$plugin],

}

Allow plugins that are already installed to be enabled/disabled.
file { "${::jenkins::plugin_dir}/${plugin}.disabled":
ensure  => $enabled_ensure,
`

I also tested updating and downgrading a plugin and all seemed to work.
I'm not able to make a Pull Request from work for this but might be able to get one done at home tonight.

In https://github.com/voxpupuli/puppet-jenkins/commit/5fb0dee289343b9e32e5bcadd7c3ab11d9c751d7 I made it possible to set the extension. This is at least a step in the right direction. https://github.com/voxpupuli/puppet-jenkins/commit/db25b59fd2d4f5bd3b52998e781f72ff655d16c6 does use this in the acceptance tests.


Update README.md with tex instead of image

Change math from image to tex. This fix the bug that in dark theme, the math is not visible.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


[Cabinet view] [User data] Signing in to the mobile app using a Google account is not possible

Environment:  IPhone 13, IOS 17.5.1, Google Chrome 110.0.5481.83
Reproducible: always
Build found: 31/07/2024
Preconditions

The mobile application "Green city" is installed on the phone
The user is registered with the Google account.

Steps to reproduce

Go to the mobile application "Green city"
Click on menu in the upper right corner
Click on 'SIGN IN'
Scroll up the sign in pop-up
Click on 'Sign in with Google'
Select the Google account registered on the site
Click on menu in the upper right corner.

Actual result

Login is failed.
It is suggested to log into the account.

Expected result

Login is complete.
The user's name is displayed.

Can not reproduce


program no longer requires a live sensor to have a sensor block

Request to eliminate rule that a pi must have a sensor of type n to run a program with a type n sensor block (so, for example, previously if a program included a light sensor, the pi had to have a light sensor attached to run).  This will eventually tie to the larger discussion of how we display data since this can, in theory, allow a user to collect a data sequence of null values (adds block that doesn't have an analogous physical sensor, attaches block to data storage block, runs program).  However, this can be addressed in a future dataview specific story.

Graphs still work.  Nothing is shown, since there is no data, but they do not crash or malfunction.


Upgrade to<EMAIL_ADDRESS>

https://github.com/jonathanKingston/broccoli-lint-eslint/issues/8
This is a bit messier than I'd like, as the upstream nightmare-mode eshint configs are designed for pre-2 eslint.
I'm also not quite sure how to test this standalone beyond the tests run by npm test, as I'm primarily an ember-cli user.

@jonathanKingston, I'm happy to chip in and support @ehntoo's work here; we're blocked by this for our own work, so let me know what if anything needs doing so we can get this merged. :smile:

Let me fix nightmare-mode first then lets compare. Thanks for your work guys!

@jonathanKingston Anything we can do to help get https://github.com/jonathanKingston/eslint-config-nightmare-mode where it needs to be? Happy to chip in some cycles to that end.

@chriskrycho I started the work here: https://github.com/jonathanKingston/eslint-config-nightmare-mode/tree/eslint/2.2.0
The tests are failing but everything else seems to be there mostly.

I’ll see if I can get the tests passing this morning!

Should be unblocked shortly!

@chriskrycho the version of nightmare-mode is @2.2.0. Thanks


ocamlPackages.ocamlformat-rpc-lib: 0.19.0 -> 0.21.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://opam.ocaml.org/packages/ocamlformat-rpc-lib/ocamlformat-rpc-lib.0.21.0.
meta.description for ocamlPackages.ocamlformat-rpc-lib is: "Auto-formatter for OCaml code (RPC mode)"
meta.homepage for ocamlPackages.ocamlformat-rpc-lib is: "https://github.com/ocaml-ppx/ocamlformat"
meta.changelog for ocamlPackages.ocamlformat-rpc-lib is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

Warning: a test defined in passthru.tests did not pass

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 0.21.0 with grep in /nix/store/qyj9ns1rn60ngvi1g5mwymq2dh3fdqir-ocaml4.13.1-ocamlformat-rpc-lib-0.21.0

found 0.21.0 in filename of file in /nix/store/qyj9ns1rn60ngvi1g5mwymq2dh3fdqir-ocaml4.13.1-ocamlformat-rpc-lib-0.21.0

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

0 x86_64-linux rebuild(s)
0 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
ocamlPackages.ocamlformat-rpc-lib

Instructions to test this update (click to expand)

Build yourself:
nix-build -A ocamlPackages.ocamlformat-rpc-lib https://github.com/StridBot/nixpkgs/archive/4612fe49d0923487dc5b402bc90be24decd33110.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/qyj9ns1rn60ngvi1g5mwymq2dh3fdqir-ocaml4.13.1-ocamlformat-rpc-lib-0.21.0
ls -la /nix/store/qyj9ns1rn60ngvi1g5mwymq2dh3fdqir-ocaml4.13.1-ocamlformat-rpc-lib-0.21.0/bin

Pre-merge build results
NixPkgs review skipped

Maintainer pings
cc @Zimmi48 @marsam for testing.

This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
Result of nixpkgs-review pr 165654 run on x86_64-linux 1

1 package failed to build and are new build failure:

ocamlPackages.ocaml-lsp: plain log  |  pretty log

2 packages built:

ocamlPackages.lsp
ocamlPackages.ocamlformat-rpc-lib

Closed by 7398520e8d3d544f77f656463488f66d5ef3b4b7 (#170142).


Modify metaclass to allow DataFrame[Foo] type propagation

The main goal of this was to enable the following pyright type annotations:
import patito as pt
import polars as pl

class Foo(pt.Model):
    name: str

df1 = Foo.DataFrame({"name":["Bean"]})
df2 = pt.DataFrame({"name":["Bean"]}).set_model(Foo) # Type of "df" is "DataFrame[Unknown]"

Before
df1 and df2 report:  # Type of "df" is "DataFrame[Unknown]"
After
df1 and df2 report:  # Type of "df" is "DataFrame[Foo]"
Discussion
This allows us to robustly pass around dataframes that have the patito Model embedded in the type annotation.
I am still a bit unsure on how I feel about a df being a DataFrame[Foo] before .validate() but after .set_model(). @dsgibbons and @JakobGM, any thoughts on this?

If Foo.DataFrame and set_model are supposed to be analogous to creating a Pydantic model, shouldn't we be running validate before returning the DataFrame? This would make patito function more like Pydantic, and, as a bonus, we then know that the resulting table is actually of type Foo. I guess the main issue is that validate may be quite expensive, but wouldn't everyone using this library want to run validate anyway?

I don't think the validation should be done in set_model under the hood, I don't think that it a problem either to have the DataFrame type without the validation. Maybe we can add the validate=False argument to set_model to make it clearer.
In any case, I think having the typing correct if a HUGE quality of life improvement, is there other things bloking this PR ?

I think I'll merge this one as-is, and we can have a think about further improvements going ahead.


Use CamelCase for gpio::Edge enum variants

ref: l4xx, f1xx, f4xx, f7xx

Looks good to me, thanks!

Looks good to me, thanks!

Reopened after it was closed by an errant bors

Reopened after it was closed by an errant bors

Thanks for the contribution!
bors r+

Thanks for the contribution!
bors r+


Migrate analyze_size to null safety

Part of #71511

Hello @jmagman
is there any work for me to migrate null safety?
Thanks


Causal site

Add site_id input in effect size simulation, so that the users can define which site IDs to include in the simulation.

This code deals with the issue https://github.com/tskit-dev/tstrait/issues/53, and allows users to input site IDs of their choice.

I think that num_causal and site_id can be squashed into a single flag: causal_sites that is either an integer or a list/array. (see conclusion #53) This will definitely reduce confusion. Either you specify the exact site_ids, or causal_sites sites get randomly picked. I feel like people might otherwise think we support the option to randomly pick sites from a provided subset.
Also, feel free to suggest other names for the single flag. Just a suggestion.

Thank you for your prompt feedback. I just incorporated those changes inside the function. I think the code is looking clearer now.

I like the idea, but we should think about how this interacts with simulating multiple traits (#54). Here's what the proposal is over there:
num_traits = 100
# Choose number of causal sites uniformly for each trait
num_causal = np.random.uniform(10, 100, size=num_traits)
df_traits = tstrait.sim_traits(ts, num_causal=num_causal)

We could do choosing specific sites with something like
num_traits = 100
causal_sites = []
for _ in range(num_traits):
     num_sites = np.random.uniform(10, 100)
     random_sites = np.random.choice(np.arange(ts.num_sites), num_sites)
     causal_sites.append(random_sites)
df_traits = tstrait.sim_traits(ts, causal_sites=causal_sites)

In this context it's unhelpful wrapping together the num_causal and causal_sites arguments because we want to interpret the first dimension as "number of traits". We could see the num_causal argument as a (mutually exclusive) shorthand for the causal_sites argument given here?

I have incorporated the multiple trait simulation in https://github.com/tskit-dev/tstrait/pull/56. With this modification, I think it is safe to implement this code to select causal sites. I would appreciate any suggestions from you.

@daikitag probably best to close this now?
Or should we update?

@jeromekelleher
The code architecture is different as before, so I think it is good that we close this issue now. I will work on improving this in the future.


OpenAPI: absolute URL for "Upload a release asset" endpoint

The route for Upload a release asset is POST :upload_url.
The OpenAPI spec works around a base URL -> relative paths -> http method, it throws an error for {upload_url} as it expects paths to start with a /.
I’m not quite sure where to put this route in the OpenAPI spec right now

However, it looks to me like upload_url might always be of the form:
https://uploads.github.com/repos/{user}/{repo}/releases/{release}/assets

Unfortunately the URL looks different for Enterprise Instances, I think its {enterprise_host}/api/uploads/repos/{user}/{repo}/releases/{release}/assets.
But that could potentially be addressed using servers I think.
Thanks so much for  your help!


fix: frame UI clear input

Change Summary

Fixes a bug where the frame UI's input would not clear after submitting a frame action by correctly coupling the input text value to the input field.
Fixes #169
Merge Checklist

[x] PR has a Changeset
[x] PR includes documentation if necessary
[x] PR updates the boilerplates if necessary

Thanks!


Add view holder adapter that supports arrays and collections

Simple alternative to list version

Just wondering if adding this mirror implementation is really necessary - might it be better to just add a convenience constructor to ViewHoldingListAdapter that invokes Arrays.asList()?

Yeah, might not need both, but the common denominator of array instead of List is better in my opinion.
More things are array friendly (implement Collection) and array lookup is faster than List.get()

Ah, personally I disagree - (even in general) I prefer List to array. I like the Collections framework, preferring to use it over array, and though there are situations where performance is better with array, I don't think that applies here. The bottleneck with ListViews is the creation & rendering of the views, not the random-access lookup of the backing element.
Of the Collections framework classes, List is definitely the most appropriate, android.widget.Adapter requires size, ordering and random-access, which narrows the choice of collection classes down to just List. All the other collection types and Arrays themselves can of course be coerced into List if required, and unless your array is several thousand elements long, the copying of the array into the internal List structure won't be a serious penalty.
If there's a good example of arrays providing a better experience, then cool, otherwise I think just a simple convenience constructor to ViewHoldingListAdapter is the best way to go.

The experience that I think is important is the flexibility to specify an array, a Collection, or varargs.
As long as all three could be supported at the constructor level, I don't think it matters much how things are stored internally.

Just one more comment, what is the upside of a List in this context as the internal storage field?
The only methods used internally are size(), get(), which array handles pretty well.


Add DB AETs and implement routes for editing and deleting AETs

[x] Create DatabaseService helper for database interactions and caching.
[x] Add DB entries (AETs)
[x] Add GET /api/aets/ route
[x] Add PUT /api/aets/:id(edit) route
[x] Add DELETE /api/aets/:id route
[x] Test endpoint

Finished.


added route for login.html and linked all css and js properly

Related Issue
added route for login.html and linked all css and js properly
Closes: #170
Describe the changes you've made
https://user-images.githubusercontent.com/55352601/117980838-fe978d80-b351-11eb-8b9e-ea939275daf7.mp4
Type of change
What sort of change have you made:

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Checklist:

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly whereever it was hard to understand.
[x] My changes generate no new warnings.
[ ] Any dependent changes have been merged and published in downstream modules.

@adarshvulli @ankitapuri kindly review my PR
You can check it by going to /login .
when navbar is ready just have to put /login in anchor tag


Support for spree_core 2-4-stable

Currently spree_payu_integration dependst on spree_core '~> 2.1.6'. Will it work with 2.4.* ?

There is a pull request with support for Spree 3.0 #12 and making it work was not so hard. You might find some hints how to make it compatible inside probably.


chore: promote react-spring to version 0.0.47

this commit will trigger a pipeline to generate the actual kubernetes resources to perform the promotion which will create a second commit on this Pull Request before it can merge

react-spring
Changes in version 0.0.47
Chores

release 0.0.47 (jenkins-x-bot)
add variables (jenkins-x-bot)

Other Changes
These commits did not use Conventional Commits formatted messages:

trigger release (iMckify)

[jx-info] Hi, we've detected that the pipelines in this repository are using a syntax that will soon be deprecated.
We'll continue to update you through PRs as we progress. Please check #8589 for further information.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign
You can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@iMckify: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

verify
2771e600a467153bf77e93315f46d48a336afd3f
link
/test verify

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.


🔧 Repository: Warnings of deprecated Node.js versions in various GitHub Actions

📜 Description
There are Warnings of deprecated Node.js versions in various GitHub Actions being used by this repo.
👍 Expected behavior
There are no warnings about deprecated Node.js versions in various GitHub Actions being used by this repo.
👎 Current Behavior
The following GitHub Actions have warnings:

Release workspace: The following actions uses node12 which is deprecated and will be forced to run on node16: backstage/changesets-action@291bfc1f76d1dcfbf967f5810dc0423592eae09a. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Automated changeset feedback: The following actions use a deprecated Node.js version and will be forced to run on node20<EMAIL_ADDRESS>For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Automated Renovate changeset: The following actions use a deprecated Node.js version and will be forced to run on node20<EMAIL_ADDRESS>For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Cron: The following actions use a deprecated Node.js version and will be forced to run on node20<EMAIL_ADDRESS>For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
PR: The following actions use a deprecated Node.js version and will be forced to run on node20<EMAIL_ADDRESS>For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Release all workspaces: The following actions uses node12 which is deprecated and will be forced to run on node16: backstage/changesets-action@291bfc1f76d1dcfbf967f5810dc0423592eae09a. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Renovate Cron: The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, dawidd6/action-download-artifact@v2, actions/upload-artifact@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/

👟 Reproduction steps
Look at any of the listed actions under Current Behavior, these will all have the warning. You can run them again to see the warning is there.
📃 Provide the context for the Bug.
In some cases these are using a very old version of Node, we should stay up to date to avoid any issues.
👀 Have you spent some time to check if this bug has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
Yes I am willing to submit a PR!

Some of these should be resolved by this PR https://github.com/backstage/actions/pull/156 and then updating the actions here to use the updated version.

This PR will address the Renovate Cron action: https://github.com/backstage/community-plugins/pull/1195

Looks like if we can update this fork with the latest that would get us the needed Node 20 upgrade as well: https://github.com/backstage/changesets-action


Characters clipped at left edge of terminal and not invalidated beyond right edge

Windows Terminal version (or Windows build number)
1.9.1942.0
Other Software
No response
Steps to reproduce

Occurs only when "useAcrylic": false, and "experimental.rendering.forceFullRepaint": false,
Affects antialiased (more noticeable with cleartype than grayscale) and italicized text--seems like it affects all text that is drawn wider than its bounding box
In Cascadia Code and Consolas, some wide characters often affected are %, @, and _.

In a command line or editor, or using a script:

in the leftmost column of the terminal, type a character that extends beyond the left edge of its bounding box; or,
in the rightmost column, repeatedly type and delete a character that extends past the right edge of its bounding box

PowerShell that repeatedly writes to the rightmost column:
Write-Host ("%`b " * 200000)

Script that does the same with all ASCII printable characters and erases the characters to show the artefacts more clearly:
# PowerShell needs to clear twice to remove artefacts
Clear-Host; Start-Sleep 0.1; Clear-Host
foreach ($i in 33..126) {
    [char]$c = $i
    [Console]::SetCursorPosition([Console]::WindowWidth - 1, ($i - 33) % [Console]::WindowHeight);
    Write-Host -NoNewline ("$c`b " * 200000) "`b$c "
    if (($i - 32) % [Console]::WindowHeight -eq 0) {
        Start-Sleep 1
        Clear-Host
    }
}

Expected Behavior
Text is rendered without artefacts.
Actual Behavior
Text is clipped at the left edge of the leftmost column. Text drawn past the right edge of the rightmost column is not erased when text is redrawn, causing pixels to accumulate over time.
After writing the same character to the same position many times in Cascadia Code:

Cropped and nearest-neighbour upscaled 400%:

leftmost column
rightmost column
erased leaving artefacts

aliased

grayscale

cleartype

aliased(italicized)

The "dead" pixels are burned in every time a character is written, the cursor blinks, or a character is scrolled in from offscreen, but not when scrolling text already on screen.
The edges where this occurs line up with the area that appears due to #5703 (#9381 seems related and is also visible here; #8993 might also be related):

Also noticed:

Resizing the terminal window after startup sometimes causes the issue to go away temporarily
Most programs remove the artefacts when clearing the terminal, but PowerShell Core's Clear-Host only works if no scrollbar is displayed


Using vector icons in navicon of toolbarAndroid

So question, I'm trying to use the "bars" icon from fontAwesome in my toolbarAndroid component, but can't seem to get it working. How would I use an icon for navbar? I saw a similar issue, do I have to convert the vector icon into an image in order to do that? If I do that, what will happen to the sizing of the image?

Yes you'd need to convert it to an image with Icon.getImageSource. However my last explorations into this yielded that ToolbarAndroid doesn't suport this yet. Superficially it should, so not sure why not.
But haven't tried with the latest release, please give it a try, reply with your results and I'll update the README.

hmm... so i'm a noob with js, so bare with me, but I tried this:
componentWillMount: function() {
Icon.getImageSource('bars', 30, 'white').then((source) => this.setState({ barsIcon: source }));
},
and in my render function this...
<ToolbarAndroid
style={styles.toolbar}
navIcon= {this.state.barsIcon}
actions={[{title: 'Settings', show: 'always'}]}
onActionSelected={this.props.openDrawer} >

and it gave me an error saying I was passing a null into navIcon. My guess is that it waits for the component to mount before setting the barsIcon state, so when the toolbarAndroid initially renders the state is null, and most likely toolbarAndroid doesn't support having something as null. Is there a way to have a static image for the toolbar? Or is the solution to have an if statement on rendering, such that if the component hasn't mounted yet, we just don't render the navIcon until it is rendered?

The solution like you suggest is to not render the ToolbarAndroid until this.state.barsIcon is populated. It's fairly quick, but it will be slower than the first render() call.

hmm... i have this:
var toolbarAndroid;
if (this.state.barsIcon !== false) {
  toolbarAndroid = <ToolbarAndroid
                    style={styles.toolbar}
                    navicon={this.state.barsIcon}
                    actions={[{title: 'real', show: 'always'}]}
                    onActionSelected={this.props.openDrawer} >
                  </ToolbarAndroid>;
} else {
  toolbarAndroid = <ToolbarAndroid
                    style={styles.toolbar}
                    navicon={menuImage}
                    actions={[{title: 'fake', show: 'always'}]}
                    onActionSelected={this.props.openDrawer} >
                  </ToolbarAndroid>

}

along with the getImageSource in componentWillMount. However, nothing is showing up for the navicon. going to try to do some more debugging... but looks like I'll probably have to just write my own toolbar :S

ah i had navIcon misspelled. after correcting the spelling... i get
"error while updating property 'navIcon' of a view manage by: ToolbarAndroid"

final code is this:
var toolbarAndroid;
if (this.state.barsIcon !== false) {
toolbarAndroid = <ToolbarAndroid
title="TITLE"
titleColor='white'
style={styles.toolbar}
navIcon={this.state.barsIcon}
actions={[{title: 'real', show: 'always'}]}
onActionSelected={this.props.openDrawer} >
;
}
return (

{toolbarAndroid}
and i get "error while updating property 'navIcon' of a view managed by: Toolbar Android"
seems like it still doesn't work for toolbarAndroid... no idea why though

Yeah, that's where I landed as well. I guess one of us ought to get into the code for that component in React Native core and fix that issue.

how hard do you think it'll be to fix? i'm pretty new to react native (and javascript in general), i can try taking a quick look but I don't know if I'd be much good haha :)

Don't know, please take a look :-) I'm currently tied up at work and don't use Android myself.

haha alright, i'll give it my best effort! but I'm trying to roll something out, so worst case i might just try to not use navIcon if I can't find anything in a couple of hours.

hmm weird... I actually gave your code another shot like such:
componentWillMount: function() {
Icon.getImageSource('bars', 30, 'white').then((source) => this.setState({ barsIcon: source }));
},
...
if (this.state.barsIcon !== false) {
  //var image = <Image source={this.state.barsIcon} />;
  toolbarAndroid = <Image source={this.state.barsIcon} style={styles.toolbarButton} />;
} else {
  toolbarAndroid = <ToolbarAndroid
                    title="TITLE"
                    titleColor='white'
                    navIcon={require('./assets/hamburger_menu.png')}
                    style={styles.toolbar}
                    actions={[{title: 'fake', show: 'always'}]}
                    onActionSelected={this.props.openDrawer} >
                  </ToolbarAndroid>

}

and when it rendered toolbarAndroid, the icon did not show. Wondering if there is something else wrong with my code, or if android doesn't properly call getImageSource

@cabooserwar: can you show me the toolbarButton style?

toolbarButton: {
width: 45,
height: 45,
},
this is all i had (i had other things but I took them out, I actually tried it without any styling too)

This is what I did
import React, { Component,View, ToolbarAndroid } from 'react-native';
import Icon from 'react-native-vector-icons/MaterialIcons';

export default class NavBar extends Component {
  constructor(props) {
    super(props);
    this.state = {
      icon: null
    }
  }
  componentWillMount() {
    Icon.getImageSource('android', 20, 'red').then((source) => this.setState({ icon: source }));
  }
    render() {
      const { icon } = this.state;

      if(!icon) return null;

      return (
        <View style={styles.container}>
          <ToolbarAndroid
            navIcon={icon}
            style={styles.toolbar}
            title="Title" titleColor="white" />
        </View>
      );
    }
}

But I got this error : Error while updating property navIcon of a view managed by : ToolbarAndroid.
I do not know if it helps but I'm stuck with this error too :+1:

I am facing the same problem. I've also created a stackoverflow thread. Because of this problem I'm using static images as a toolbar action icons instead vectors.

Right now, it's not supposed to work, if I read the docs correctly:

Although the Toolbar supports remote images for the logo, navigation and action icons, this should only be used in DEV mode where require('./some_icon.png') translates into a packager URL. In release mode you should always use a drawable resource for these icons. Using require('./some_icon.png') will do this automatically for you, so as long as you don't explicitly use e.g. {uri: 'http://...'}, you will be good.
– https://facebook.github.io/react-native/docs/toolbarandroid.html, emphasis added

But that's exactly what react-native-vector-icons does: setting an uri.

@alexbepple: actually {uri: 'http://...'} is supported (although discouraged), whereas local file paths are not it seems unless served the packager way. Maybe the only way forward is to subclass ToolbarAndroid.

Since https://github.com/facebook/react-native/commit/142f8c92de22a27bcbf09d8a0626a562c67a6aff is now released in 0.21 I can now happily announce ToolbarAndroid support in 1.3.0.

Was super excited to hear this and I definitely appreciate the updates, but icons are still not rendering for me in my Toolbar.
I'm following the exact example under the ToolbarAndroid heading in the README.
The first error I get is:
Error while updating property 'navIcon' of a view managed by: ToolbarAndroid
After commenting out the navIconName property, I then get a different error:
Error while updating property 'overflowIcon' of a view managed by: ToolbarAndroid
After commenting out the 'overflowIconName' property, there are no longer any errors. However, the icons specified in the actions property (i.e. gear-a and social-twitter) are not rendering in the toolbar and I see the title text instead.
I can confirm that the same icons will render perfectly if done outside ToolbarAndroid in a separate element like so:
<Icon name="gear-a"/>
An npm ls shows that I'm running<EMAIL_ADDRESS>and<EMAIL_ADDRESS>and I've re-ran react-native run-android and restarted the packager several times, as well as clearing all my watches. I'm not sure what else to try. Not sure if anyone else is having this issue.

@apastel: Did you run react-native upgrade?

Also did you fully integrate?

Yes to fully integrating, no to running react-native upgrade. Going through that process now, I'll let you know. Thanks.

Nope, still get the same errors and then no icons rendering in the toolbar. Really confused. <Icon.Button> works fine as well.
After upgrading react-native I used rnpm link and verified I have the correct lines in my android/settings.gradle, android/app/build.gradle, and MainActivity.java. I've recompiled, restarted the packager and all that. Hmm...

Does the IconExplorer example work for you?

Yes.

That one is using the ToolbarAndroid integration so then it's something in your project :-) Compare them and see if you can spot any differences.

Working on it. Thanks for the help :)

Finally got it to work. I ran react-native upgrade a second time and saw that there were still some available changes I hadn't yet merged into my android files that I must have rejected the first time around, specifically in android/build.gradle and android/app/build.gradle. I'll show the diffs here just for reference.
In android/app/build.gradle
	         compile project(':react-native-facebook-login')
	         compile fileTree(dir: "libs", include: ["*.jar"])
	         compile "com.android.support:appcompat-v7:23.0.1"
-            compile "com.facebook.react:react-native:0.20.+"
+            compile "com.facebook.react:react-native:+"
}

And in android/build.gradle
    repositories {
         mavenLocal()
         jcenter()
+        maven {
+            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
+            url "$projectDir/../../node_modules/react-native/android"
+        }

Incase anyone else comes across this - I can confirm @apastel solution and wanted to clarify you need to be sure to use react-native 0.21+

Hi,
I am using MaterialIcons it works fine in iPhone app but not showing icons in android. Any guess why? I follow everything explained and looks like my code have no issue, because I can see fontawesome icons fine.
Thank you

Same as @itcurves here, any clue?

Before get image source we must wait for getImageSource finished.
getImageSource  is an async func, so I forward to next view in then function when  getImageSource finished and certainly I got it .

Hope  help anyones

Working with react-native-router-flux ,i need to put right image .the prop requires an image and using getImageSource which returns a promise ,update the state and all that makes it so heavy and not worthy .the problem is the doc is not clear at all and there is not api doc ,it is confusing ...


Help install local

Hello, I followed the tutorial to install on my virtual machine (local) everything is running fine, however when I try to register or login, it presents me an error in the chrome console.
"Access to XMLHttpRequest at 'http://<IP_ADDRESS>:8080/auth/signup' from origin 'http://<IP_ADDRESS>:3333' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute."
http://prntscr.com/vjm886
When i acces <IP_ADDRESS>:8080 returns with Cannot GET /
and console: "GET http://<IP_ADDRESS>:8080/ 404 (Not Found)"
http://prntscr.com/vjm8u1
How can i proceed?

Make sure that the Frontend IP and port is correctly directed in the 'dist/app.js' path between lines 48 and 50, see if 'origin' is correctly passed on to the Frontend path. Backend interprets it as a whole, so putting '/' or any other character in front of the path defined in 'origin', will cause Backend to interpret only that way, the same method applies when passing to Web servers

Hello, I followed the tutorial to install on my virtual machine (local) everything is running fine, however when I try to register or login, it presents me an error in the chrome console.
"Access to XMLHttpRequest at 'http://<IP_ADDRESS>:8080/auth/signup' from origin 'http://<IP_ADDRESS>:3333' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute."
http://prntscr.com/vjm886
When i acces <IP_ADDRESS>:8080 returns with Cannot GET /
and console: "GET http://<IP_ADDRESS>:8080/ 404 (Not Found)"
http://prntscr.com/vjm8u1
How can i proceed?

Make sure that the Frontend IP and port is correctly directed in the 'dist/app.js' path between lines 48 and 50, see if 'origin' is correctly passed on to the Frontend path. Backend interprets it as a whole, so putting '/' or any other character in front of the path defined in 'origin', will cause Backend to interpret only that way, the same method applies when passing to Web servers

Thanks for the answer.
I didn't find frontend ip on 'dist/app.js', https://prnt.sc/vk0wty
This is how was configured on localhost, dont know if is correct because on readme teaches only on a VPS with domain name.
Frontend/.env = https://prnt.sc/vk0qcl
Backend/.env = https://prnt.sc/vk0pun
/etc/nginx/sites-available/whaticket-frontend = https://prnt.sc/vk0vlv
/etc/nginx/sites-available/whaticket-backend = https://prnt.sc/vk0w0l

Hi, @rapososoftwares. Try changing PROXY_PORT to 80

Thanks for the answer @canove .
Changed proxy port to 80 on whaticket/backend/.env and npm run build / sudo service nginx restart
still getting the error https://prnt.sc/vk4t3s

Thanks for the answer @canove .
Changed proxy port to 80 on whaticket/backend/.env and npm run build / sudo service nginx restart
still getting the error https://prnt.sc/vk4t3s

See the last part of my reply (edit now). You need to use DNS names and reach port 80 on your browser, not the service port itself (8080)

I don't know where I'm going wrong, https://prnt.sc/vk5a5h
but this is good for learning.
(for me who didn't know anything about linux, or nodejs is already an advance to get here.).
Thanks for now.

On backend.env, change PROXY_PORT to 80
delete backend/dist folder and run npm run build again

Working now, thank you so much for you help @canove !
https://prnt.sc/vk7szz


hyperostosis

Add:
hyperostosis
DEF: excessive growth or abnormal thickening of bone tissue; it may lead to exostosis
EXACT SYN: bone hypertrophy; bone overgrowth
SOURCE: https://en.wikipedia.org/wiki/Hyperostosis, HP:0100774
Review/correct synonyms for exostosis MP:0009877

Removed the synonyms "hyperostosis" and "poroma" from the term exostosis (MP:0009877)
Added hyperostosis MP:0030222


update labels created by clusternet controller manager

What type of PR is this?
kind/bug
What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

cc @stpolar

Codecov Report

Merging #714 (421c5a3) into main (e2ffa5f) will decrease coverage by 0.65%.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##             main     #714      +/-   ##
==========================================
- Coverage   13.60%   12.95%   -0.65%
==========================================
  Files          66       76      +10
  Lines        7492     8724    +1232
==========================================
+ Hits         1019     1130     +111
- Misses       6391     7510    +1119
- Partials       82       84       +2

see 50 files with indirect coverage changes


Add domain unix socket supports

The unix domain socket is more efficient than TCP socket in local linux machine.
The PR add support to unix domain socket.

So, on my local test, I didn't see any difference in performance running dora-benchmark.
Wonder if this makes a difference on very specialized hardware.

So, on my local test, I didn't see any difference in performance running dora-benchmark.
Wonder if this makes a difference on very specialized hardware.

Thanks for your testing! That's my mistake. It is because that the write method is blocked by UnixStream.
I will update it ASAP.
The following is UnixStream with set_nonblocking(true)
Latency:
size 0x0     : 632.856µs
size 0x8     : 633.242µs
size 0x40    : 843.875µs
size 0x200   : 796.246µs
size 0x800   : 1.177051ms
size 0x1000  : 603.893µs
size 0x4000  : 851.743µs
size 0xa000  : 489.578µs
size 0x64000 : 143.565254ms
size 0x3e8000: 5.95041138s
Throughput:
size 0x0     : 19565 messages per second
size 0x8     : 17443 messages per second
size 0x40    : 12432 messages per second
size 0x200   : 5754 messages per second
size 0x800   : 2374 messages per second
size 0x1000  : 4059 messages per second
size 0x4000  : 1105 messages per second
size 0xa000  : 543 messages per second
size 0x64000 : 56 messages per second
Input `latency` was closed
Input `throughput` was closed
size 0x3e8000: 7 messages per second

the following is TcpStream:
Latency:
size 0x0     : 952.865µs
size 0x8     : 974.297µs
size 0x40    : 402.752µs
size 0x200   : 657.945µs
size 0x800   : 1.223403ms
size 0x1000  : 414.758µs
size 0x4000  : 538.546µs
size 0xa000  : 499.841µs
size 0x64000 : 203.923098ms
size 0x3e8000: 7.378916741s
Throughput:
size 0x0     : 14439 messages per second
size 0x8     : 12762 messages per second
size 0x40    : 13734 messages per second
size 0x200   : 6339 messages per second
size 0x800   : 2075 messages per second
size 0x1000  : 4066 messages per second
size 0x4000  : 1333 messages per second
size 0xa000  : 360 messages per second
size 0x64000 : 39 messages per second
Input `latency` was closed
Input `throughput` was closed
size 0x3e8000: 6 messages per second

So, on my local test, I didn't see any difference in performance running dora-benchmark.
Wonder if this makes a difference on very specialized hardware.

I also did a test, got the same result. It's wired. In theory, it should be more efficient than Tcp socket. More details.
the following is UnixStream with set_nonblocking(true)
Latency:
size 0x0     : 537.864µs
size 0x8     : 674.116µs
size 0x40    : 397.551µs
size 0x200   : 566.487µs
size 0x800   : 1.306532ms
size 0x1000  : 462.612µs
size 0x4000  : 461.783µs
size 0xa000  : 398.878µs
size 0x64000 : 148.14771ms
size 0x3e8000: 6.20969162s
Throughput:
size 0x0     : 16925 messages per second
size 0x8     : 15287 messages per second
size 0x40    : 14140 messages per second
size 0x200   : 5721 messages per second
size 0x800   : 1886 messages per second
size 0x1000  : 3967 messages per second
size 0x4000  : 1166 messages per second
size 0xa000  : 451 messages per second
size 0x64000 : 59 messages per second
Input `latency` was closed
Input `throughput` was closed
size 0x3e8000: 7 messages per second

the following is UnixStream
Latency:
size 0x0     : 335.269µs
size 0x8     : 341.425µs
size 0x40    : 339.099µs
size 0x200   : 541.176µs
size 0x800   : 1.13206ms
size 0x1000  : 373.098µs
size 0x4000  : 354.6µs
size 0xa000  : 381.095µs
size 0x64000 : 236.397237ms
size 0x3e8000: 6.359789191s
Throughput:
size 0x0     : 754 messages per second
size 0x8     : 19929 messages per second
size 0x40    : 16591 messages per second
size 0x200   : 5783 messages per second
size 0x800   : 2154 messages per second
size 0x1000  : 4186 messages per second
size 0x4000  : 960 messages per second
size 0xa000  : 473 messages per second
size 0x64000 : 55 messages per second
Input `latency` was closed
Input `throughput` was closed
size 0x3e8000: 6 messages per second

the following is TcpStream
Latency:
size 0x0     : 425.477µs
size 0x8     : 454.158µs
size 0x40    : 485.851µs
size 0x200   : 625.459µs
size 0x800   : 1.45471ms
size 0x1000  : 504.22µs
size 0x4000  : 505.09µs
size 0xa000  : 549.074µs
size 0x64000 : 214.217185ms
size 0x3e8000: 6.407898767s
Throughput:
size 0x0     : 20018 messages per second
size 0x8     : 18672 messages per second
size 0x40    : 18060 messages per second
size 0x200   : 6620 messages per second
size 0x800   : 2312 messages per second
size 0x1000  : 3859 messages per second
size 0x4000  : 1342 messages per second
size 0xa000  : 501 messages per second
size 0x64000 : 53 messages per second
Input `latency` was closed
Input `throughput` was closed
size 0x3e8000: 6 messages per second

The overhead of TCP headers etc is probably small enough to not matter too much in our case. One of the comments in the stackoverflow post you linked reported 6us latency for TCP and 2us latency for Unix domain sockets. We have latencies of at least 400us, so the 4us difference don't matter much.


Peer to Peer Code Review

Hello @khitermedachraf 👋  you did an Amazing work 🥇 .

Clean Code 👍 .
Github workflow 👍 .

Here are some best practices may be you can implement to implove you code.

Please you should not nest  section tag into header tag.

HI @ndayishimiyeeric, Thank you so much for the useful observation from you and the morning session team👋:

I made the necessary changes, then I will close this issue. have a good day


Build Error - Does Not Contain Scheme that is Available Using the --list Option

Please describe the bug
Dear Swift Package Index team,
First of all: Thank you for building the Swift Package Index and maintaining the project!
We are currently encountering an error for our CardinalKit project: https://swiftpackageindex.com/builds/501AD011-0145-48C2-8D83-A286EF4D4683. The build error indicates that the CardinalKit-Package scheme is not present.
Running the "-list" option locally indicates that the CardinalKit-Package scheme is present.
We can also reproduce that building the Swift Package build works successfully using our GitHub action: https://github.com/StanfordBDHG/CardinalKit/actions/runs/4172050105/jobs/7222685888. This also applies to the last pushes on the main branch as well as the 0.3.0 release and previous releases.
We observed that some builds on the main branch had been successul, and we could access the documentation at some point in the past, which looked awesome! An amazing feature that the Swift Package Index offers; thank you for that!
Nevertheless, it looks like the latest changes on the main branch did fail and resulted in a time-out: https://swiftpackageindex.com/StanfordBDHG/CardinalKit/builds
Please let me know if there is anything that I could do to further help you reproduce the error and get the documentation hosting up and running on the Swift Package Index. I am happy to further help reproduce the issue and help you there!

Hi @PSchmiedmayer , thanks for raising this issue!
The error message here is misleading or probably outright wrong. I believe it's exactly the the existing CardinalKit-Package that is the problem. I've opened a PR against your .spi.yml to specify an explicit scheme that should fix this.
I suspect there was perhaps a change in your xcodeproj file that brought in the -Package scheme was started tripping us up. We're applying a number of heuristics to figure out which scheme to build and this can go wrong for larger projects.
The error message you're seeing is from the last stage in our attempts to fix it by deleting the project file and build via the auto-generated one. This then seems to fail in your case, presumably because autogeneration doesn't produce the -Package scheme.
Hope that helps!
I'll keep this issue open until we seen the main build flip back to green.

For what it's worth, I've had this happen to myself when you go from a simple Swift package library with a single target to a library that has multiple targets - for example, it bit me when I added an executable target that provided benchmarks for my library.

Ah yes, that'll do it I guess!

@finestructure Thank you a lot for your input! Thanks for providing some more detail about the inner workings of the build system!
Greatly appreciate the time and effort you put into maintaining this project!
The CardinalKit Swift Package exposes several targets that are exposed as products. Using the CardinalKit scheme would only build a single package and not the complete set of targets/products that are exposed and should probably be validated by the SPI build job.
I have not found any reference if it is possible to pass more than one scheme in the arguments (e.g., a yml list)?
Is there some more detail about the structure of the .spi.yml file beyond this article? Or is it completely fine if we just define the single scheme as this is our main product and the other targets/products are not build using the SPI build verification?
As far as I understood, the documentation building is independent of the selected scheme, so it should still expose all the other targets in the documentation?

@PSchmiedmayer We only support a single scheme. Think of it as choosing a scheme that's representative for a package's overall compatibility (typically the main product to be used by clients), not as an exhaustive CI-like check of a package. We're more like a probe rather than a CI system :)
Your documentation will still be built across all the targets listed, regardless of the scheme.

Thank you for the clarification @finestructure!
That sounds great, I will adjust the list of document targets that we want to build documentation for and will merge the proposed changes in our main branch. Thank you for your help! 🚀

@finestructure I have merged the suggested changes into the main branch but, unfortunately still observe a build error for the main branch as well as for the latest release: https://swiftpackageindex.com/StanfordBDHG/CardinalKit/builds
I am actively working on moving a few things out of the repo into other repos to make the build times more manageable + separate a few dependencies into separate projects, so there is no need to resolve all dependencies if you want to use the framework. That might help with the timeout issue. Nevertheless, the build error still persists for the main branch: https://swiftpackageindex.com/builds/4B8887A2-409E-4F45-8689-E81827960FD7
Is there anything that I can do to help with that issue? Is there a way to help reproduce the issue locally?

Thanks for following up, @PSchmiedmayer . There's something interesting going on: When I tested this with my patch it worked but the reason it worked was that I ran the build after changing the .spi.yml file on the same directory. It turns out that the build succeeds if run a second time after this error appears 🤪
< ... snip ... >
Resolve Package Graph
Resolve Package Graph
ResearchKit - https://github.com/StanfordBDHG/ResearchKit @ 2.2.8
❌ xcodebuild: error: The workspace named "checkout" does not contain a scheme named "CardinalKit". The "-list" option can be used to find the names of the schemes in the workspace.

I need to take a closer look into what's going on here.

I believe this is due to the project not having an xcodeproj file check in in combination with the way we're listing the schemes.
If you run
git clone https://github.com/finestructure/CardinalKit.git
cd CardinalKit
xcrun xcodebuild -IDEClonedSourcePackagesDirPathOverride="$PWD/.derivedData" -list

you'll notice that the first time you call -list here it returns
There are no schemes in workspace "CardinalKit".

If you run it again, it finds the schemes.
If instead you run
git clone https://github.com/finestructure/CardinalKit.git
cd CardinalKit
xcodebuild -list

it finds the schemes the first time around.
We need to use -IDEClonedSourcePackagesDirPathOverride="$PWD/.derivedData" so we don't clog up the build machines and have builds interfere with each other. I'm not sure why/how it screws up scheme listing but it obviously does.
We should be able to run -list a second time if we find no schemes.

@finestructure Thank you for the explanation!

We should be able to run -list a second time if we find no schemes.

That sounds like a good workaround, even though this might all originate from some bug or unexpected behavior in xcodebuild. It might make sense to file a radar for that, or do you have some other connections/ideas on how to fix the issue in the long run?
How can I help to get the workaround in the codebase for the Swift Package Index? Where are the build steps documented or implemented? Happy to make a contribution or support you in making these changes.

Turns out the -list command has no effect on the build but running the build a second time does work.
I've prepared a fix to add a build retry to our setup, although I wonder if adding an xcode project file would be the cleaner option here 🤔

Fixed by https://gitlab.com/finestructure/swiftpackageindex-builder/-/merge_requests/180

Ok, this is working better but I can already tell watching the build that it'll time out. We've got a 10min build time budget and the initial build only takes a minute or so. However, there are so many documentation targets defined (which all get built) that the overall process hits the limit.
I'd recommend perhaps starting with a small set of documentation targets initially, ones that are most relevant to the users.
PS: it did in fact time out while I was typing this:
Successfully merged into spi-builder-workspace/.docs-staging/stanfordbdhg/cardinalkit/0.3.1/index/index.json
Target:                   Scheduler
Resolve Package Graph
⚠  Signal to terminate received.
⚠  Reporting timeout result for 37AA2736-2752-424F-AEC2-CBA6D71B1D11 / 5.7 / ios...
⚠  Done.
Cleaning up project directory and file based variables 00:00
ERROR: Job failed: exit status 1

FYI @PSchmiedmayer ☝
I don't think there's more we can do here on our end, sadly.

@finestructure Thank you for merging the fix! Greatly appreciate the time and effort that goes into this project!
We are currently splitting the framework into smaller projects that are independent of each other, which should reduce the build time of the main repo by a lot. I will update you once this is further along, and I suspect the build times will decrease in that process.

👍  I'll go ahead and close this issue then in the meantime, ok? Feel free to re-open or add a new one if there are further issues!

Sounds good, thank you for your help @finestructure! 🚀


[TrueID] Add extractor

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] At least skimmed through contributing guidelines including yt-dlp coding conventions
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[ ] Bug fix
[ ] Improvement
[x] New extractor
[ ] New feature

Description of your pull request and other information
TODO:

[x] Support non-Indonesian domains (trueid.ph (?), vn.trueid.net, movie.trueid.net)
[ ] Series extractor? (Delegated for another PR)

Ready for review?


nodePackages: @shopify/cli init at 3.45.1

Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 228894 run on x86_64-linux 1

60 packages built:

antennas
balanceofsatoshis
bat-extras.prettybat
bitwarden-cli
castnow
commitlint
concurrently
create-cycle-app
discourse
discourseAllPlugins
emacsPackages.lsp-bridge
emanote
emanote.data
epgstation
fast-cli
flexoptix-app
google-clasp
graphite-cli
joplin
lighthouse
lv_img_conv
morgen
openmoji-black
openmoji-color
pm2
postcss-cli
pulsar
pyright
python310Packages.nbdev
python310Packages.nbdev.dist
python311Packages.nbdev
python311Packages.nbdev.dist
quarto
redoc-cli
shepherd
slack
teams
theLoungePlugins.plugins.closepms
theLoungePlugins.themes.flat-blue
theLoungePlugins.themes.flat-dark
thelounge
triton
uppy-companion
vimPlugins.coc-prettier
vimPlugins.coc-pyright
vimPlugins.coc-stylelint
vimPlugins.coc-sumneko-lua
vimPlugins.coc-vetur
vimPlugins.markdown-preview-nvim
vscode
vscode-extensions.ms-python.vscode-pylance
vscode-extensions.rust-lang.rust-analyzer
vscode-fhs
vscode-with-extensions
vscodium
vscodium-fhs
wasm-text-gen
wrangler
yaml-language-server
zx


code about encoder and decoder pretrain

Hi
I had read your paper "Learning Linear Transformations for Fast Image and Video Style Transfer".   And it was a great inspiration to me.
Now I want to use encoder and decoder module pretrained in my own dataset. I hope you can provide the code of the pretraining process. It will be very helpful to me. Thank you for taking the time.

We use the pre-trained encoder and decoder from the WCT paper, please reach out the authors for encoder and decoder training code.


Errror after gaps found

Hello,
I'm trying your code, find it incredibly useful, but i've got an error.
Do you have a clue about what's happening ?
(I'm on Windows10 x64, Python 3.5.2)
Thank you very much for this excellent code
(edit : I've got the problem with multiple mp4 files)

C:>video-remove-silence test.mp4
Extracting audio...
Finding gaps...
Found 1 gaps, 15.6 seconds total
Traceback (most recent call last):
File "C:\Users\Tensorflow\Desktop\REMOVE_SILENCES_FROM_VIDEO\video-remove-silence-master\video-remove-silence", line 162, in
frames = ffprobe.get_frames(args.path)
File "C:\Users\Tensorflow\Desktop\REMOVE_SILENCES_FROM_VIDEO\video-remove-silence-master\ffprobe.py", line 16, in get_frames
for stream in _get_json(path)['streams']:
File "C:\Users\Tensorflow\Desktop\REMOVE_SILENCES_FROM_VIDEO\video-remove-silence-master\ffprobe.py", line 6, in _get_json
result = subprocess.run(['ffprobe', path, '-loglevel', 'quiet', '-print_format', 'json', '-show_streams'], stdout=subprocess.PIPE)
File "C:\Program Files\Python35\lib\subprocess.py", line 693, in run
with Popen(*popenargs, **kwargs) as process:
File "C:\Program Files\Python35\lib\subprocess.py", line 947, in init
restore_signals, start_new_session)
File "C:\Program Files\Python35\lib\subprocess.py", line 1224, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] Le fichier spécifié est introuvable

It seems that it misses ffprobe.exe tool from FFmpeg. Can you place it to %PATH%?

Hello,
I did add them to path, actually I've tried with C:\ffmpeg ; C:\ffmpeg\bin and C:\ffmpeg\bin\ffprobe.exe and I tried rebooting my PC, I've got exactly same error.
The name I gave to the path variable is "ffprobe.exe", and i also tried "ffprobe", but it doesn't matter does it ?
Thk you so much for your help

Ok, I'll solve this problem myself, doing 'set PATH=%PATH%;C:\ffmpeg\bin' before executing does the job, but  unlucky, I still get an error

Extracting audio...
Finding gaps...
Found 1 gaps, 15.6 seconds total
Traceback (most recent call last):
File "C:\Users\Tensorflow\Desktop\REMOVE_SILENCES_FROM_VIDEO\video-remove-silence-master\video-remove-silence", line 162, in
frames = ffprobe.get_frames(args.path)
File "C:\Users\Tensorflow\Desktop\REMOVE_SILENCES_FROM_VIDEO\video-remove-silence-master\ffprobe.py", line 16, in get_frames
for stream in _get_json(path)['streams']:
File "C:\Users\Tensorflow\Desktop\REMOVE_SILENCES_FROM_VIDEO\video-remove-silence-master\ffprobe.py", line 8, in get_json
return json.loads(result.stdout)
File "C:\Program Files\Python35\lib\json_init.py", line 312, in loads
s.class.name))
TypeError: the JSON object must be str, not 'bytes'

I don't know if that will help you, but if I try forcing String type with return json.loads(str(result.stdout)) in ffprobe line 8, I get this error

Extracting audio...
Finding gaps...
Found 1 gaps, 15.6 seconds total
Traceback (most recent call last):
File "C:\Users\Tensorflow\Desktop\REMOVE_SILENCES_FROM_VIDEO\video-remove-silence-master\video-remove-silence", line 162, in
frames = ffprobe.get_frames(args.path)
File "C:\Users\Tensorflow\Desktop\REMOVE_SILENCES_FROM_VIDEO\video-remove-silence-master\ffprobe.py", line 16, in get_frames
for stream in _get_json(path)['streams']:
File "C:\Users\Tensorflow\Desktop\REMOVE_SILENCES_FROM_VIDEO\video-remove-silence-master\ffprobe.py", line 8, in get_json
return json.loads(str(result.stdout))
File "C:\Program Files\Python35\lib\json_init.py", line 319, in loads
return _default_decoder.decode(s)
File "C:\Program Files\Python35\lib\json\decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Program Files\Python35\lib\json\decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

@alexandreraufast May I ask you to start fresh cmd.exe and type:
ffprobe c:/test.mp4

ffprobe version N-93252-gf948082e5f Copyright (c) 2007-2019 the FFmpeg developers
built with gcc 8.2.1 (GCC) 20190212
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil      56. 26.100 / 56. 26.100
libavcodec     58. 47.102 / 58. 47.102
libavformat    58. 26.101 / 58. 26.101
libavdevice    58.  6.101 / 58.  6.101
libavfilter     7. 48.100 /  7. 48.100
libswscale      5.  4.100 /  5.  4.100
libswresample   3.  4.100 /  3.  4.100
libpostproc    55.  4.100 / 55.  4.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'c:/test.mp4':
Metadata:
major_brand     : mp42
minor_version   : 0
compatible_brands: mp41isom
creation_time   : 2018-08-11T15:10:44.000000Z
artist          : Microsoft Game DVR
title           : Meilleur texte en ligne GRATUIT! 2018 (voix r├®alistes) - YouTube - Google Chrome
Duration: 00:00:15.60, start: 0.000000, bitrate: 10371 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1376x744 [SAR 1:1 DAR 172:93], 9668 kb/s, 30.23 fps, 60 tbr, 30k tbn, 59.94 tbc (default)
Metadata:
creation_time   : 2018-08-11T15:10:44.000000Z
handler_name    : VideoHandler
encoder         : AVC Coding
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 169 kb/s (default)
Metadata:
creation_time   : 2018-08-11T15:10:44.000000Z
handler_name    : SoundHandler

@alexandreraufast necro post perhaps but I will leave it here if anyone else needs it.
In ffprobe.py change line 8 to
return json.loads(result.stdout.decode())


overlay: unbreak optimized stdenv

https://github.com/NixOS/nixpkgs/pull/215056 broke our, not so clean, method to add compiler flags to stdenv.
The new version uses proper functions from nixpkgs to modify stdenv.

Now I remember why I did not use that solution in the first place: it appears to some packages as if we are cross compiling for a new architecture, creating a whole new array of problems.


error: unsupported option '-fopenmp'

"error: unsupported option '-fopenmp'"
When I try to install the package on the MacOS according to the guidance, it showed the following error.
c++ -g -O3 -std=c++11 -fopenmp -fsigned-char -D_FILE_OFFSET_BITS=64  -I./include -I./htslib -I./minimap2 -I./fast5/include -I./src -I./src/hmm -I./src/thirdparty -I./src/thirdparty/scrappie -I./src/common -I./src/alignment -I./src/pore_model -I./src/io -I./eigen/ -MM  src/nanopolish_call_methylation.cpp src/nanopolish_call_variants.cpp src/nanopolish_extract.cpp src/nanopolish_getmodel.cpp src/nanopolish_haplotype.cpp src/nanopolish_index.cpp src/nanopolish_methyltrain.cpp src/nanopolish_phase_reads.cpp src/nanopolish_polya_estimator.cpp src/nanopolish_raw_loader.cpp src/nanopolish_read_db.cpp src/nanopolish_scorereads.cpp src/nanopolish_squiggle_read.cpp src/nanopolish_train_poremodel_from_basecalls.cpp src/nanopolish_variant_db.cpp src/nanopolish_vcf2fasta.cpp src/training_core.cpp  src/hmm/nanopolish_duration_model.cpp src/hmm/nanopolish_profile_hmm.cpp src/hmm/nanopolish_profile_hmm_r7.cpp src/hmm/nanopolish_profile_hmm_r9.cpp src/hmm/nanopolish_transition_parameters.cpp      src/common/fs_support.cpp src/common/logsum.cpp src/common/nanopolish_alphabet.cpp src/common/nanopolish_bam_processor.cpp src/common/nanopolish_bam_utils.cpp src/common/nanopolish_common.cpp src/common/nanopolish_iupac.cpp src/common/nanopolish_klcs.cpp src/common/nanopolish_variant.cpp  src/alignment/nanopolish_alignment_db.cpp src/alignment/nanopolish_anchor.cpp src/alignment/nanopolish_eventalign.cpp  src/pore_model/nanopolish_model_names.cpp src/pore_model/nanopolish_pore_model_set.cpp src/pore_model/nanopolish_poremodel.cpp  src/io/nanopolish_fast5_io.cpp src/io/nanopolish_fast5_loader.cpp src/io/nanopolish_fast5_processor.cpp      src/thirdparty/fet.c src/thirdparty/stdaln.c  src/thirdparty/scrappie/event_detection.c src/thirdparty/scrappie/scrappie_common.c         > ./.depend;
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
make: *** [.depend] Error 1
I wonder what should I do with that? I am sorry since I am new to bioinformatics without any prior knowledge in computing.
Thank you very much for helping1

See #279. This is usually a problem on the Mac, because the compiler that comes with it doesn't have OpenMP enabled. You can use https://brew.sh (Homebrew) to install gcc.
brew install gcc
Then you can find all the versions of GCC you've installed
brew list gcc
At the time of this comment this should be gcc-9. So you need to compile with
make CXX=g++-9 CC=gcc-9

I see. Thank you very much for helping! The problem is solved!


[cocoon] Move agent statuses to have its own api endpoint

The Flutter build dashboard does not show information regarding agent statuses, and is moving agent statuses to its own page.
This would create something similar to /api/public/get-agent-statuses. Additionally, this would be a good opportunity to experiment with sending JSPB instead of JSON.

This should also sort the agents to return the failing ones first.

There's a note in app_flutter/lib/agent_list.dart that says "TODO(chillers): Remove sort once backend handles sorting" and points at this issue. Does this issue being closed mean we can remove the logic to sort the agents?

Unfortunately not. Looks like that line was just using this issue as a reference for when it might be done.
The reason this was closed was because CommitStatuses and Agents are relevant to each other. The build dashboard should show what agent a task was run with, and the infra dashboard should know what tasks an agent is running.
Ideally, we would move this to have Tasks include an agent field for the build dashboard. The agent dashboard would include a task field in the agent. Alas, this creates a circular dependency.

What's wrong with the client sorting the agents?

For the amount of users that dashboard gets and the size of the data, there probably isn't much to gain sorting on the backend.
One nice thing about sorting on the backend is that with the caching done on the backend, any repeat visits only require the sort to be done once. However, that is a very small issue to worry about.


Fix eventBus to support multiples instances of Grid Layout

Hi,
I fixed eventBus to support multiples instances of Grid Layouts.

Can you supply a working example for this?

here:
<!DOCTYPE html>

    <meta charset="utf-8">
    <title>Vue Grid Layout Example 3 - Multiple instances</title>
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
    <link rel="stylesheet" href="app.css">

 app1

            <grid-layout :layout="layout"
                         :col-num="12"
                         :row-height="30"
                         :is-draggable="true"
                         :is-resizable="true"
                         :vertical-compact="true"
                         :use-css-transforms="true"
            >
                <grid-item v-for="item in layout"
                           :x="item.x"
                           :y="item.y"
                           :w="item.w"
                           :h="item.h"
                           :i="item.i"
                        >
                    {{item.i}}
                </grid-item>
            </grid-layout>

 app2

            <grid-layout :layout="layout"
                         :col-num="12"
                         :row-height="30"
                         :is-draggable="true"
                         :is-resizable="true"
                         :vertical-compact="true"
                         :use-css-transforms="true"
            >
                <grid-item v-for="item in layout"
                           :x="item.x"
                           :y="item.y"
                           :w="item.w"
                           :h="item.h"
                           :i="item.i"
                        >
                    {{item.i}}
                </grid-item>
            </grid-layout>

put this code inside 'vue-grid-layout/examples'. When drag a item 0 from app1, a item 0 from app2 will too move. This happen because eventeBus send drag event to all apps. Now, try same example in my branch, and this works.
Obs: the correct way to communicate components is explaned here, but I opted to do a quick fix and proceeded using eventBus.

About the correct way to component communication, can you be more specific?
Are you talking about using v-on on the parent component template? Because according to this, you cannot use $on to listen to events emitted by children.

ok, i'll try explain
it's we have:
"the parent need to pass data down to the child, and the child need to inform the parent of something that happened in the child"
You has implemented this behavior through the eventBus, but it is a bad way to implements this behavior, because eventBus is used by all components of type GridLayout and GridItem.
Vue documentations advise us:
"In Vue.js, the parent-child component relationship can be summarized as props down, events up. The parent passes data down to the child via props, and the child sends messages to the parent via events."
So, GridLayout should send data to GridItem through the props, not through eventBus. Still GridItem should send data to GridLayout through the  local events, as v-on:foo.

Yes, I had already read using v-on on the template, but that won't work here, since the grid-item components are declared on a slot whenever grid-layout is used by someone.
It would be necessary for everyone to declare all the v-on events severy time someone uses the grid.

I had forgot slots, sorry, you are correct.

#32 fixes this using provide/inject. Thanks for your help.


attiny code for shining pig?

Hi- is there some code to go with the shining pig? what does it do? thanks  :)

Hello, there is : it is the simple piece of code that drives the relay-based switching system, it is common to all the effects. You can find it here.

thanks!


[FEATURE] Add a search function in swap page

Issue to be solved
We need to add a token search function on the swap page to help users find the tokens they need more quickly.

Suggest A Solution
No response

Currently, we use link of increment in internal browser for swap function.
Still waiting for update from increment fi.
Will test this UI feature later.


fix: Change project domain

Why the changes were made
Change project domain for easier webhook integration with OADP.
Change were made following kubebuilder upgrade documentation.
How to test the changes made
Run the project following development documentation and check if nothing broke with the changes.

Why are we moving the group out of nac to just oadp?

@shawn-hurley , @mpryc first implementations with webhook in OADP side suggested would be easier if NAC objects have same group as OADP objects
@shubham-pampattiwar waiting to see if we will need this for that implementation. If not, I will close this one without merging

yeah we need this. Basically:

OADP Operator is responsible for installing the NAC CRDs, using oadp as a group makes it clear that the CRD/resource is part of the OADP ecosystem.
Another thing would be that oadp as a group fir NAC CRDs keeps the CRDs logically consistent and simplifies grouping for RBAC policies, docs and user understanding.

/hold

/retry oadp-compatibility-check

/unhold


fix: dir export with trailing comma

Description

when genarate exports from dirs , if the export statement have a trailing comma , unimport.modifyDynamicImports() will contain a blank name export (const : typeof import('./export')[''])

To fix this case,  filter the exports with name!==''
Linked Issues
Additional context
Maybe this problem should resolve through fix the modifyDynamicImports function which from unjs/unimport ?

upstream PR merged ,this commit can be closed

related https://github.com/unjs/mlly/pull/59


Many Config Files

Logiks Configuration System currently loads the configuration file per request basis, that can be reduced to few files, or use use some compiling system to compile them into a single loadable php cache file or something. That would help in request load time eventually.

Resolved in Logiks 4.0. We now compile them in groups into temp PHP files and then use them.


Refer to the ZIO ecosystem documentation

It's pretty confusing that the documentation for zio-mock is available at zio.dev and not on the microsite.
I've added a link back to the proper page in the microsite.
I've also included this link as the main documentation link in the README.

Thanks!


.Net: Added IChatHistoryReducer for ChatCompletion with AzureOpenAI and OpenAI

Motivation and Context
When using Auto-Invocation for Tools with OpenAI and AzureOpenAI, there is no way to intercept and reduce the chat history after tools are being invoked.
This is needed as some tools might return long responses and we might want to execute different prompt compression / optimization based on the tool result.
Note: AutoFunctionInvocationFilters cannot be used as they are invoked only before the result of the tools is added to the chat history.
The alternative to this approach would be to intercept the http call to Open AI and alter the request directly but that will cause multiple allocation, serializations and deserializations and won't scale to other Connectors.
Description
This change is extracting IChatHistoryReducer from Agents.Core project and moving it to SK.Abstrations.AI.ChatCompletions.
IChatHistoryReducer was renamed to IAgentChatHistoryReducer in order to avoid confusion as it requires 2 more methods: Equals and GetHashCode that are used to compute the agent channel key. It now inherits IChatHistoryReducer.
Added tests to ensure that a DI registered reducer is used in the ChatCompletionService of both OpenAI and AzureOpenAI connectors.
Important notice: the reducer is not mutating the ChatHistory, as it might be that new tool invocation or chat turns will require different reducing logic. (e.g. context-aware summarization)
Contribution Checklist

[x] The code builds clean without any errors or warnings
[x] The PR follows the SK Contribution Guidelines and the pre-submission formatting script raises no violations
[x] All unit tests pass, and I have added new tests where possible
[x] I didn't break anyone :smile:

Hi @sandrohanea thanks for creating this PR. The team met to discuss and a few things came up

We currently mutate ChatHistory when automatic function calling is enabled. A function calling loop can be long and have many round trips to the model and truncating the ChatHistory could have undesired side effects. In general the consensus was that we don't want to chat history reducer to be called by the chat completion service.
The code shows how to use the reducer with Dependency Injection but we also need to handle non DI cases.

The consensus was that developers have control over the ChatHistory that they send to the chat completion service so they can reduce it as necessary and also decide which messages from the response get added back into the ChatHistory. We're going to work on some samples (during the current sprint) for this we will share with you once we have them.

Closing this PR as it's not currently aligning with SK plan for abstractions.

@markwallace-microsoft Can the Reducer implementation in #7570 be moved to Core? I believe it is useful not just for the Agent.


vim-gtk sometimes(in fact at most time on my machine) quite slow under gnome3

What steps will reproduce the problem?
1.$ gvim -U NONE -u NONE somefile.c (somefile.c should exist and contain some
lines);
2.use 'j' to move cursor down;
3.If it cannot reproduce, repeat 1-2.

What is the expected output? What do you see instead?
The cursor should move quickly, but the cursor takes seconds to move. So do
following cursor movements.

What version of the product are you using? On what operating system?

It's on linux.

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled May 20 2011 20:24:03)
Included patches: 1-198
Compiled by xuhong@xuhong-PC
Huge version with GTK2 GUI.  Features included (+) or not (-):
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
+conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con_gui +diff
+digraphs +dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi
+file_in_path +find_in_path +float +folding -footer +fork() +gettext
-hangul_input +iconv +insert_expand +jumplist +keymap +langmap +libcall
+linebreak
+lispindent +listcmds +localmap -lua +menu +mksession +modify_fname +mouse
+mouseshape +mouse_dec +mouse_gpm -mouse_jsbterm +mouse_netterm -mouse_sysmouse
+mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg +path_extra -perl
+persistent_undo +postscript +printer +profile +python/dyn +python3/dyn
+quickfix +reltime +rightleft -ruby +scrollbind +signs +smartindent -sniff
+startuptime +statusline -sun_workshop +syntax +tag_binary +tag_old_static
-tag_any_white -tcl +terminfo +termresponse +textobjects +title +toolbar
+user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace
+wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim +xsmp_interact
+xterm_clipboard -xterm_save
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/local/share/vim"
Compilation: icc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread
-I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0
-I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0
-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1
-I/usr/include/freetype2 -I/usr/include/libpng12     -O3
Linking: icc   -L/usr/local/lib -Wl,--as-needed -o vim   -pthread -lgtk-x11-2.0
-lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0
-lgdk_pixbuf-2.0 -lm -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig
-lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0   -lSM -lICE -lXpm
-lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lnsl  -lselinux   -lacl -lattr -lgpm

I see many deprecated gtk codes in the vim source. Maybe it's caused by them?

Original issue reported on code.google.com by xuhdev on 25 May 2011 at 2:41

This is a duplicate of #1199 , isn’t it?

Its a different issue. This one is about gtk2 I think.


Under Account Linking, Client ID is not available.

In Configuration -> Actions Console
Step 2 - From the top navigation menu under Develop > Account linking (left nav):
Account creation > select Yes, allow users to sign up for new accounts via voice.
Linking type > select Google Sign In.
Client information > copy Client ID > Save.
Instead of Client ID, two blank fields "Authorization URL" and "Token URL" are visible. I double checked that Linking type is Google Sign In.

i am also having the same problem

We're aware of this.

I now see that it is working as expected.


[WIP] Add method to_instruction for components for registerless circuit

Summary
Address #626, #525
Basically, adding to_instruction method to all components, then users can easily append the component to a circuit as an instruction.
Details and comments

closing it for now since an elegant way to write instruction directly is not available yet and write a circuit first and then converting to an instruction takes extra time as compared to current approach.
If users would like to have registerless circuit for now, they can call construct_circuit method without giving the register argument and then convert such circuit to instruction.


Grafana API triggers several rules

Description
I have a (very) advanced setup of CRS.. I am using it via Coraza-WASM as a plugin to Envoy (configured by istio) inside a k8 cluster.  I have enabled CRS rules on the edge at my ingress pod (running Envoy).  I am using it to cover my entire application set.
Specifically I am running grafana 10.1.5.  I found that CRS was blocking the API traffic that the grafana webapp was making back to itself.   Remote Command Execution: Windows Powershell Alias Command Injection [file<EMAIL_ADDRESS>[line "4074"] [id "932125"] [rev ""] [msg "Remote Command Execution: Windows Powershell Alias Command Injection"] [data "Matched Data: |md.+|dasd.+)\"}[$__rate_interval found within ARGS_POST:json.queries.2.expr: rate(node_disk_io_time_seconds_total{job=\"node-exporter\", instance=\"<IP_ADDRESS>:9100\", device=~\"(/dev/)?(mmc"] [severity "critical"] [ver "OWASP_CRS/4.0.0-rc2"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-shell"] [tag "platform-windows"] [tag "attack-rce"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/152/248/88"] [tag "PCI/6.5.2"] [hostname "<IP_ADDRESS>"] [uri "/api/ds/query?ds_type=prometheus&requestId=Q193"] [unique_id "xmNsKaiDWCCsXxQMQfc"][msg_match_1 "Remote Command Execution: Windows Powershell Alias Command Injection"] [data_match_1 "Matched Data: |md.+|dasd.+)\"}[$__rate_interval found within ARGS_POST:json.queries.1.expr: rate(node_disk_written_bytes_total{job=\"node-exporter\", instance=\"<IP_ADDRESS>:9100\", device=~\"(/dev/)?(mmcbl"][msg_match_2 "Remote Command Execution: Windows Powershell Alias Command Injection"] [data_match_2 "Matched Data: |md.+|dasd.+)\"}[$__rate_interval found within ARGS_POST:json.queries.2.expr: rate(node_disk_io_time_seconds_total{job=\"node-exporter\", instance=\"<IP_ADDRESS>:9100\", device=~\"(/dev/)?(mmc"]	thread=26
Your Environment

CRS version (e.g., v3.3.4):  "OWASP_CRS/4.0.0-rc2"

Paranoia level setting (e.g. PL1) :   PL1

ModSecurity version (e.g., 2.9.6):  n/a using Coraza-proxy-wasm 0.4.0

Web Server and version or cloud provider / CDN (e.g., Apache httpd 2.4.54):  envoy 1.20.1
Image:         docker.io/istio/proxyv2:1.20.1
Image ID:      docker.io/istio/proxyv2@sha256:d58efa92c283c26765a5cdb2d66c4a26ea6e9cb7042242dd2f8a89fc2a520f9c

Operating System and version: n/a

Confirmation
[X] I have removed any personal data (email addresses, IP addresses,
passwords, domain names) from any logs posted.

Hi @ryanobjc and thanks for reporting this.
This is the exact data which is matched by rule 932125:
|md.+|dasd.+)"}[$__rate_interv
(in fact, this is sufficient: |md.+|d)
We are matchind keyword md which is a Windows shell command and in the data above it really looks like a payload.
Can you explain what this data means in the context of the application you are using?
(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|md.+|dasd.+)

I wonder if there is a WINDOWS TAG and if something like https://github.com/owasp-modsecurity/ModSecurity/wiki/Reference-Manual-(v2.x)#secruleremovebytag would help here cc @fzipi @jptosso

There is actually!
I haven't tested yet, but SecRuleRemoveByTag platform-windows should disable all Windows rules.

Maybe we should add that more clearly to the website for documentation.

Here are several tags you can disabled is unuseful https://github.com/coreruleset/coreruleset/blob/v4.0/dev/util/APPROVED_TAGS

@ryanobjc Have you resolved your problem? Can we close this issue?

Yes, thank you!
On Wed, May 1, 2024 at 5:10 AM azurit @.***> wrote:

@ryanobjc https://github.com/ryanobjc Have you resolved your problem?
Can we close this issue?
—
Reply to this email directly, view it on GitHub
https://github.com/coreruleset/coreruleset/issues/3523#issuecomment-2088379233,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAMX6COU76VM2UZ4DYVOZTZADLURAVCNFSM6AAAAABCR3NJ36VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBYGM3TSMRTGM
.
You are receiving this because you were mentioned.Message ID:
@.***>

Thanks for confirmation! Closing.


Optionally open empty splits instead of copying split window

Pretty much the title. 99% of the time I make a split I want to open another file (possibly drag and dropped from elsewhere), and it's much clearer to have a blank editor than a duplicate wall of text.
It looks like the copy functionality is pretty hardcoded in the depths of splitEditor so I have a PR that optionally skips it. Would be great if someone could point me how to go about adding to the configuration settings, or suggest another way to do it.

workbench.action.newGroupLeft, workbench.action.newGroupRight, workbench.action.newGroupAbove, workbench.action.newGroupBelow
solves does this


Remove nonce from execute function's arguments

The current implementation of the Account contract requires the nonce as argument even though it's not used in the function. In fact the current nonce is read from a storage variable current_nonce, hence there's no need to have nonce as a function parameter.

That's to comply with the standard interface. Other Account implementations might have different nonce strategies, so it's required even though this particular implementation does not make use of it.


[9.x] Don't use array_values when returning from hmget

As describe by issue #46534, there is no benefit of parsing the
returned redis key/values with array_values. In fact, we are
loosing an information (the keys) which could be handy to keep when
it is read from another code/service/framework, as well as, to
confirm that the values correspond to the requested keys.
A last point, is that performance wise not using array_values
could be beneficial as well.
ref #46534

I'm afraid this will be a breaking change as people would expect other keys right now.

@driesvints most probably, I agree.

@driesvints I am wondering if there is a difference between predis and phpredis regarding the values return when using hmget , do we know if predis returns the keys as well?

I'm not sure...

@tillkruss do you maybe know?

I guess one can use hgetall

@driesvints you can close that PR if you think it is not useful.
May I ask if you have an idea why the test does not pass?

@dave2309 Do PhpRedis and Predis both return key value pairs?

@tillkruss that's what we're asking you 😅

    /**
     * @group connected
     * @requiresRedisVersion >= 2.0.0
     */
    public function testReturnsValuesOfSpecifiedFields(): void
    {
        $redis = $this->getClient();

        $redis->hmset('metavars', 'foo', 'bar', 'hoge', 'piyo', 'lol', 'wut');

        $this->assertSame(['bar', 'piyo', null], $redis->hmget('metavars', 'foo', 'hoge', 'unknown'));
        $this->assertSame(['bar', 'bar'], $redis->hmget('metavars', 'foo', 'foo'));
        $this->assertSame([null, null], $redis->hmget('metavars', 'unknown', 'unknown'));
        $this->assertSame([null, null], $redis->hmget('unknown', 'foo', 'hoge'));
    }

So it seems like (at least for tests) that predis would returns the values of keys and not the pair key=>value for each.

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.

So it seems like (at least for tests) that predis would returns the values of keys and not the pair key=>value for each.

Yep. Hence them being removed for PhpRedis. I guess you can call array_merge them yourself afterwards?

I would use hgetall ... It does returns the keys+values :)

Or array_combine() it.


Add powerSet function

The power set of {0, 1, 2} is the set of all subsets of {0, 1, 2} including the empty set ∅ and the set itself:
powerSet(new Set([0, 1, 2]))

produces:
new Set([
    new Set([]),
    new Set([0]),
    new Set([1]),
    new Set([2]),
    new Set([0, 1]),
    new Set([0, 2]),
    new Set([1, 2]),
    new Set([0, 1, 2])
])

Thanks. Due to time complexity required for all subsets generation I'd rather implement it as a generator and I'll delegate to the user how many sets to be generated.


tws_async with concurrent.futures

@erdewit
Compliments for the code! Instead running one TWS connection with one thread, I'd like to have more than one TWS instance (each one able to pass orders and downloading market data independently); ideally running in different processes but at the same time able to pass results between processes by using one of the IPC solutions. I have tried, without success, three solutions:

wrap the each TWS_async in one process with multiprocessing.Process, it works but it is impossible to pass the data from one process to another. I tried with Manager, Queue, Listener/Client, etc... it seems that each async event loop is ring-fenced.
Then I tried using concurrent.futures with ProcessPoolExecutor but actually didn't open a new process. Instead, nevertheless the error, it runs the two different TWS requests in a unique thread (as expected from async). Of course, in this case passing data between the two TWSs is trivial.
In addition, I need to connect one TWS only at specific time, so I tried to use the apscheduler.scheduler.asyncio, but without success.
Let me know if you want to see the code for the cases above.
Do you have an idea how to modify your code in order to able to launch a second TWS with concurrent.future in another process and to use apscheduler?
Many Thanks in advance

If you keep it in one process then it is super easy to use multiple TWS clients:
import asyncio
from tws_async import TWSClient

class TWS1(TWSClient):
    def __init__(self):
        TWSClient.__init__(self)

    def connectAck(self):
        self.reqAccountUpdates(1, '')

    def updateAccountValue(self, key, val, currency, accountName):
        print('Account 1 update: {} = {} {}'.format(key, val, currency))

class TWS2(TWSClient):
    def __init__(self):
        TWSClient.__init__(self)

    def connectAck(self):
        self.reqAccountUpdates(1, '')

    def updateAccountValue(self, key, val, currency, accountName):
        print('Account 2 update: {} = {} {}'.format(key, val, currency))

tws1 = TWS1()
tws2 = TWS2()
tws1.connect(host='<IP_ADDRESS>', port=7497, clientId=1)
tws2.connect(host='<IP_ADDRESS>', port=7497, clientId=2)
loop = asyncio.get_event_loop()
loop.run_forever()

@erdewit
Thanks for the prompt answer, but I need to run tws2 in another process because I need to download some different data in parallel, doing some calculations on these data and return results to the main process that never stops downloading the other data. I have to figure out why the concurrent.futures ProcessPoolExecutors does not work here... AsyncIO module does allow to run some other task in parallel in another thread/process.
In addition, I have to schedule the tws2 to run only at some point of the day for every day, I tried to use the apscheduler module but it was ignored. I think for the same reason of the above.
Many Thanks anyway.
Regards
V.

tws1 and tws2 will download different data at the same time with no problem. If the calculation takes a short time (say a few ms) you can let it run in the same process too.
I don't know about apscheduler, the docs say it should work with asyncio. But it's easy to schedule anything yourself. There is loop.call_later or it can be done in a coroutine. Here is an example of the latter, it also shows how to run a long calculation in a separate process pool:
import asyncio
import time
import math
from concurrent.futures import ProcessPoolExecutor
from tws_async import TWSClient

loop = asyncio.get_event_loop()
executor = ProcessPoolExecutor(1)

class TWS1(TWSClient):
    def __init__(self):
        TWSClient.__init__(self)

    def connectAck(self):
        self.reqAccountUpdates(1, '')

    def updateAccountValue(self, key, val, currency, accountName):
        print('Account 1 update: {} = {} {}'.format(key, val, currency))

class TWS2(TWSClient):
    def __init__(self):
        TWSClient.__init__(self)

    def connectAck(self):
        self.reqAccountUpdates(1, '')

    def updateAccountValue(self, key, val, currency, accountName):
        print('Account 2 update: {} = {} {}'.format(key, val, currency))

def bigCalculation(n):
    x = 0
    i = 1
    t = time.time()
    while time.time() - t < 0.5:
        x += math.sin(n / i)
        i += i
    return x

async def scheduler():
    n = 0
    while True:
        result = await loop.run_in_executor(executor, bigCalculation, n)
        print(result)
        await asyncio.sleep(0.5)
        n += 1

tws1 = TWS1()
tws2 = TWS2()
tws1.connect(host='<IP_ADDRESS>', port=7497, clientId=1)
tws2.connect(host='<IP_ADDRESS>', port=7497, clientId=2)
loop.create_task(scheduler())
loop.run_forever()

@erdewit
your code works well, but if you try to start a second connection in the loop.run_in_executor doesn't work (same error when I try to launch the 2nd connection by apscheduler.asyncio...)
I am still investigating on this and I'll let you know.
BTW,
Thank you very much for your help! the tws_async is incredible faster the the IBAPI!
where are you based?

Glad it works faster for you. But I'm not sure why you're intent on running the second client in a separate process; There is absolutely no need for it. The easiest thing is to use one event loop to rule them all.
Btw  I'm in The Hague in the Netherlands.