openssl build failed with VS2019

libspdm build failed with VS2019.
Build command:
cmake -G"NMake Makefiles" -DARCH=x64 -DTOOLCHAIN=VS2019 -DTARGET=Debug -DCRYPTO=openssl ..
nmake copy_sample_key
nmake
Build error:
C:\Workspace\project\rebase_spdm\libspdm\build>nmake
Microsoft (R) Program Maintenance Utility Version 14.28.29336.0
Copyright (C) Microsoft Corporation.  All rights reserved.
[  0%] Building C object os_stub/cryptlib_openssl/CMakeFiles/cryptlib_openssl.dir/cipher/aead_aes_gcm.c.obj
aead_aes_gcm.c
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29333\include\vcruntime.h(197): error C2371: 'size_t': redefinition; different basic types
C:\Workspace\project\rebase_spdm\libspdm\os_stub\cryptlib_openssl\cipher\aead_aes_gcm.c: note: see declaration of 'size_t'
NMAKE : fatal error U1077: 'C:\PROGRA~2\MIB055~1\2019\BUILDT~1\VC\Tools\MSVC\1428~1.293\bin\Hostx64\x64\cl.exe' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29333\bin\HostX64\x64\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29333\bin\HostX64\x64\nmake.exe"' : return code '0x2'
Stop.

I will check it.

It is known issue. Assign to @steven-bellock

I may have a fix for this. Does CI run all build configurations?

Right now it's Linux (Mbed TLS, OpenSSL) and Windows / VS2019 (Mbed TLS). Once this issue gets fixed we'll add VS2019 / OpenSSL to CI.

Does it do the 32/64 bit flavors of each?

Right now Linux is only 32-bit. I think we can do 32-bit Windows. @Wenxing-hou can comment on that.

The current CI test include:

Linux x64 openssl build;
Linux x64 mbedtls build;
windows x64 mbedtls build;

When @rkongintel fix the windows openssl x64 build issue, I will add the windows x64 openssl build CI test asap.
The all ia32 build CI test is not added.

Should be fixed by https://github.com/DMTF/libspdm/pull/407


Ingest of unsufficient data should return proper error code and not 200 Success

ingest with path only (or parent or uuid) doesnt acceptable by CMWELL but the return code is 200
Proper error message should return

most appropriate code seems like 422:

The 422 (Unprocessable Entity) status code means the server understands the content type of the request entity (hence a 415(Unsupported Media Type) status code is inappropriate), and the syntax of the request entity is correct (thus a 400 (Bad Request) status code is inappropriate) but was unable to process the contained instructions. For example, this error condition may occur if an XML request body contains well-formed (i.e., syntactically correct), but semantically erroneous, XML instructions.
Wikipedia
The request was well-formed but was unable to be followed due to semantic errors.

Following returns with error code 422:
ingested data was well formed, but is meaningless and has no affect. error logged with id [01S]
Following in ws log:
2017-10-24 13:03:58,159 [ForkJoinPool-1-worker-35]                   WARN  controllers.InputHandler             - [01S] bad user ingest resulted in parsed response: ParsingResponse(Map(),Map(),Set(cm-well-uk-
lab.int.thomsonreuters.com),Map(),Map(),List(),Map())


gh-pages: Flushing out index page; FSW 2023 presentation

This merge request improves gh-pages by

adding some structure to the top-level index page, rather than just showing a somewhat cryptic link
adding the slide deck from my FSW 2023 presentation for public consumption

Merging.


Examples for last release

Hi, I'm wondering if any examples will be added according to this release: https://azure.microsoft.com/ru-ru/blog/route-matrix-isochrones-ip-lookup-and-more-added-to-azure-maps/
I'm interesting in New map styles functionality but can't find it anywhere, hope you guys can point me to the right direction, thank you

I've been away on parental leave all summer but plan to add samples for these new services this month.

@rbrundritt accept my congratulations! Thank you for update


Uncaught (in promise) RedirectRequest

Hello,
I'm using redirectTo in my custom decorator
import React from 'react';
import { redirectTo } from '@reach/router';

export default WrapperComponent => class CheckPrivate extends WrapperComponent
{
    componentDidMount()
    {
        if (WrapperComponent.private)
            redirectTo('/auth');

        super.componentDidMount();
    }
}

This decorator i apply to my react component
import React, { Component } from 'react';
import CheckAuth from '~/utils/checkAuth';

@CheckAuth
export default class extends Component
{
    static private = true;
    static redirect = '/auth';

    render()
    {
        return (

Hello

        );
    }
}

I have error: Uncaught (in promise) RedirectRequest { uri: '/auth' }

related to #91
I'll need a codesandbox to investigate further, will reopen if one is provided :)

Hey any update on this?

Same issue +1

@ryanflorence here is the issue in a codesandbox. Click on Dashboard to redirectTo Home and you will see the error logged in the console.

@bhanuka-diff @Rutulpatel7077 @joserocha3
I faced same issue, but I found that reach-router explicitly throw error if Redirect comopnent used,
so if you want to suppress error, pass 'noThrow' props like below.
<Redirect noThrow={true} to="/foo/bar/baz"/>

@joserocha3 Thanks for the sandbox.  I'll tackle this later this week unless anyone else calls dibs.
Unrelated to the issue, just a friendly reminder to those reviewing the sandbox to clean up their timeouts to avoid memory leaks 😄
const Dashboard = () => {
  useEffect(() => {
    const id = setTimeout(() => {
      try {
        redirectTo("/");
      } catch (error) {
        console.log(error);
      }
    }, 1000);

    return () => clearInterval(id);
  });

@bhanuka-diff @Rutulpatel7077 @joserocha3
I faced same issue, but I found that reach-router explicitly throw error if Redirect comopnent used,
so if you want to suppress the error, pass 'noThrow' props like below.
<Redirect noThrow={true} to="/foo/bar/baz"/>

This didn't work when I tried it. Any other suggestions?

Hi! same issue with redirectTo(uri).
Any updates ? :(


Make date error guidance consistent

I've:

removed duplicative information and examples from the 'date pattern' page
updated information and examples on the 'date input' (component) page

I've moved one of the examples from 'date pattern' to 'date input' - so can we move the example to the correct folder?
Closes #868

You can preview this change here:
Built with commit 9b16c1c44756d4f6c65cb329ae7ce7b974e63fc7
https://deploy-preview-1155--govuk-design-system-preview.netlify.com

@StephenGill the changes to the component page don't appear to be included at the minute.

The example we give for highlighting just the day, month or year doesn't meet our guidance.
We say:

If the date is in the future when it needs to be in the past
Highlight the date input as a whole.
Say ‘[whatever it is] must be in the past’.
For example, ‘Date of birth must be in the past’.

But we use an example of 'the date your passport was issued must be in the past' and highlight just the year.
Can we change the second example to use either an incomplete or incorrect date, so that it follows the guidance?

I've pushed a commit that moves the corresponding example from the dates pattern to the date-input component.

If there’s more than one error, show the highest priority error message

Does this mean that if there was more than one error, a user would have to submit the form more than once to find out how to fix all the errors?
Also wonder if the section with all the error examples may be made more readable by using bullets to distinguish each line:

Breaking the lines with br feels a bit wrong here when you could use a list?

@christopherthomasdesign on showing errors one by one, I think the problem is errors interact/conflict so it's probably more confusing to show all. For example if the date was supposed to be in the past and I put a year of 202- (typo) the year is impossible, and the date as a whole is not in the past. But I think showing both errors would be more confusing than one, the one we think is often the more 'core' error.

The example we give for highlighting just the day, month or year doesn't meet our guidance.
We say:

If the date is in the future when it needs to be in the past
Highlight the date input as a whole.
Say ‘[whatever it is] must be in the past’.
For example, ‘Date of birth must be in the past’.

But we use an example of 'the date your passport was issued must be in the past' and highlight just the year.
Can we change the second example to use either an incomplete or incorrect date, so that it follows the guidance?

Good spot.
Before we change the example, it's worth checking that we're happy that the guidance is right. IIRC this use case was one we didn't feel very strongly about either way - is that right @joelanman?

I agree with the comment here:
https://github.com/alphagov/govuk-design-system/issues/868#issuecomment-490495742
So in the case of 'must be in the past/future', highlight the all the date inputs, as we can't be sure it's just one field that is wrong.

Nick and I updated the example - so I think this is ready for a final review if anyone has a minute

Apologies if this has been covered already. In this section:

Should it say "If there's incorrect information in more than one field, or it's not clear which field has the incorrect information,..."?

@timpaul thanks - I've added info on what to do if it's not clear which part of the date input is wrong.
Should be ready for approval now.


PP-10278 GooglePay payments: Log properties all the time

WHAT

We currently log about fields only if they are available in the GooglePay payload. Log fields all the time so we can know about the info from GooglePay for payments.
Also simplifies handling properties

Thanks, @alexbishop1. Made changes so properties are not logged when not available in the payload


Add container service and readded NewxxClientBaseURI

Added container service code in compute package.
Readded NewxxClientBaseURI method.
version change 3.0.0-beta -> 3.1.0-beta
go-autorest version v7.0.7.

This will fix #356, #345.

Just curious, why 3.1.1-beta rather than 3.1.0-beta?

To reflect go-autorest recent fixes.

LGTM as well, CI failing due to gofmt issues in containerservice code

Thanks.


Add missing include to cstdint for usage of uint8_t

While at it, sort the includes alphabetically to satisfy the monk.
Fixes https://github.com/tobias-loew/flags/issues/27

Thanks a lot!


Added Background and Icon Color Variables + Updated Gradle + Updated Kotlin + Migrated to androidX

Added Background and Icon Color Variables so we can customise better, with different background colors and different icon colors
Updated Gradle to 4.10
Updated Kotlin to 1.3.20
Migrated from support library to androidX

@thomhurst  very good job 👍 !  See my comments and tell me what you think. It will be merged later.
And THANKS for your pr 🙏!

Cool!

Pretty cool, will publish it to jcenter later. Thanks for your contribution.


Two App Registrations?

I'm a bit confused as to the overall architecture here. So with Blazor WASM Hosted using AAD for Auth, are we saying that we need to create two different app registrations, one for the server API and one for the client?
I understand the desire not to explain/re-explain an app registration in a Blazor web doc, but I think some explanation of the overview/background behind all of the steps involved here would be helpful.

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

ID: 3039ff79-ee86-20b1-0082-d3899a84c823
Version Independent ID: af4a3a75-ae52-5f6d-2120-737bc2fefb07
Content: Secure an ASP.NET Core Blazor WebAssembly hosted app with Azure Active Directory
Content Source: aspnetcore/blazor/security/webassembly/hosted-with-azure-active-directory.md
Product: aspnet-core
Technology: aspnetcore-blazor
GitHub Login: @guardrex
Microsoft Alias: riande

Even just like an end state set of images showing what is configured in Azure would be helpful (food for thought).

Hello @taylorchasewhite ... These are considered advanced topics for these scenarios, so we do assume (and cross-link in Azure docs) a number of basic concepts. I probably will try to improve the introductions of these topics when I reach this topic for a UE (user experience) pass this ⛄ holiday 🎁 when I have more time on https://github.com/dotnet/AspNetCore.Docs/issues/19286.
WRT the two registrations ... The product unit recommends that the client (one AAD registered app) authenticates the user for the client app, and the user/client is configured to authz for access to the server API (a different AAD registered app). It's a general security best practice notwithstanding any technical barriers to using one registration.
btw ... We avoid images, especially because the portal changes every 7.5 minutes :smile:. We can't keep up.
I'll cross-link this to my tracking issue so that I review your suggestion when I reach these topics. Thanks for commenting.

Sounds good. FWIW, following the steps correctly in .net 5 I had no issue linking everything up. It just surprised me because I didn't remember creating two app registrations the first time around way back when I first created an app. So from an accuracy standpoint, it looks good!
And makes sense on screenshots.
My only critique is that I just wish I knew why I was doing what I was doing, but I suppose that's more of an assessment of my understanding than this Blazor doc :)

They'll say that it's a security best practice. Different apps should always have separate registrations in AAD/B2C.
It also hampers some flexibility in terms of pointing a client app at a different server API and/or making changes to either app's registration ... you can't customize anything by-app if they're sharing a registration.

two app registrations the first time around way back when I first created an app

I'm not saying it wouldn't work ... just that it isn't recommended.


o1labs unlocked keys can send outsized reward to small pools with few delegators

https://discord.com/channels/484437221055922177/808895957978447882/1183852862296576110
"Thanks <@445391540119011329> , <@1128664134720962731> .
Actually, I think there's a special case when 99.9% of a validator's stake comes from a delegation by the foundation and o1labs. If the o1labs delegation wins a block, earning a supercharged reward, and then a third-party delegation is added—even if it's very small—the script will assign the entire additionnal coinbase to it, even if they delegate just one mina! Not very fair to the block producer 😉"
Consider adding options to burn or keep o1 supercharged rewards.

Not going to address; starting to work on removing all the supercharged code that won't be necessary after the fork.


bibtex output

Bibtex output issue
Journal names often not output in a format to be imported to endnotes
In the first two references, the journal is not imported; in the third it is. Problem of "booktitle =" versus "journal ="
@article{55446,
author = {Bradley, J.C.},
booktitle = {Mémoires de la Sociéte Royale Entomologie de Belgique},
pages = {127-137},
title = {The wing-venation of Chalcidoidea and of some allied Hymenoptera.},
volume = {27},
year = {1955}
}
@article{56016,
author = {Bucher, G.E.},
booktitle = {Canadian Journal of Research (D)},
pages = {230-281},
title = {The anatomy of Monodontomerus dentipes Boh. an entomophagous chalcid.},
volume = {26},
year = {1948}
}
@article{56257,
author = {Burks, B.D.},
booktitle = {Annals of the Entomological Society of America},
journal = {Annals of the Entomological Society of America},
month = jun,
pages = {157-160, 1 plate},
title = {A study of chalcidoid wings (Hymenoptera).},
volume = {31(2)},
year = {1938},
stated_year = {1938},
issn = {0013-8746},
month_numeric = {6}
}

The third record is incorrectly classified as an Article in TaxonWorks, it should be classified as a Book.

Checking the other two things.

The third record is the only one that works….

On Aug 31, 2020, at 5:52 PM, Matt<EMAIL_ADDRESS>wrote:
The third record is incorrectly classified as an Article in TaxonWorks, it should be classified as a Book.
Checking the other two things.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/SpeciesFileGroup/taxonworks/issues/1689#issuecomment-684126027, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHF2MJEOTIVW4SKXOBXNEIDSDRAWRANCNFSM4QRCJ3IA.

The data were imported incorrectly, populating the booktitle field when it should have been journal, in most cases.  I will convert them all back to journal.
If the third is working its for the wrong reasons.
The books will have to be spotted as such and changed to books, with the corresponding journal moved there manually.  There was no way for us to distinguish between them, but we still put the value in the wrong field.
Moving this to a UCD issue: https://github.com/chalcid/jncdb/issues/34


Client Connections limit?

Hi,
I have a strange issue with max client connections limit. It is by default set to 100 in my.cnf (/etc/mysql/my.cnf). But when I check the connections I have more than that. Do I need to tell the node-mariasql client where the my.conf file is? I thought that the server should handle this.
The number of connections is also never decreasing. I have the default setting: wait_timeout		= 600 which is 10 min.
I just added: read_default_file:
var c = new Client({
  host: '<IP_ADDRESS>',
  db: 'myDB',
  user: 'jackass',
  charset: 'utf8',
  password: '*****',
  read_default_file: '/etc/mysql/my.cnf'
});

No difference.

The config files do not dictate the maximum number of connections, that's entirely up to your code.
wait_timeout is a server-side variable. There is a documentation issue, as there is no pingInterval option or a default ping interval of any kind anymore. There are pingInactive and pingWaitRes options which are connection inactivity and ping response timeouts respectively, but they are not enabled by default.
So as long as you're using the most recent version of mariasql on npm, the connections should time out after 10 minutes of inactivity with your current configuration if your wait_timeout is under the [mysqld] section, otherwise MySQL's default of 8 hours will be used.

Hi,
thanks for the explanation.
I have it under [myslqd].
I am using v 0.2.5.
I will update to v 0.2.6 on my dev server and see if it works.

Updated to v 0.2.6, restarted node server and tested with node and waited 15 minutes. No connections have timed out. I double checked that I only have a /etc/mysql/my.cnf file also with the right settings. I am using Ubuntu 14.0.4 and MariaDB 10.1.17.

Have you tried querying the wait_timeout value from information_schema (both global and session variables tables) to make sure the appropriate value is in fact being used by the server?

Checked now and that was problem: wait_timeout 28800
So I have to set it programmaticaly in the information_schema?

I have both changed the global and session vars now. Thanks for the support! Closing


fractional scaling implementation

Hyprland Version
Hyprland, built from branch  at commit 1b48642fd15c433c53876f1b933dcd46265caf8f dirty (). Tag: v0.30.0
Bug or Regression?
Bug
Description
Foot incorrectly redraws in the presence of fractional scaling; text can get cut off in the terminal.
FYI: This also occurs with KWin
From https://codeberg.org/dnkl/foot/issues/1527:

If it only happens with fractional scaling, and if setting damage-whole-window "fixes" it, then everything points to a compositor bug.
Foot's rendering, and damage report to the compositor is always in buffer coordinates. I.e scaling has no effect on this part of foot's code.

How to reproduce
Use foot with fractional scaling value >1 in Hyprland (via monitor).
Crash reports, logs, images, videos
No response

It does not happen on rare occasion, and occurs in a full screen window via /etc/bash.bashrc, but this does not occur when manually typed.
Crash reports, logs, images, videos
With auto:

With 1.1:

With 1:

The last image shows that it still occurs without fractional scaling, so that isn't the issue.

This may not be a Hyprland issue, so I will close it as needed.

For reference, issue does not occur in kitty, but occurs in wezterm and foot.

The issue no longer occurs.


Add helper function to generate bids_db

BIDSLayout  is used by mriqc and fmriprep. However the indexing is quite slow and needs to be wiped out and rebuilt when new subjects are added.
We can write a custom function to index newly added subjects using pybids - see this example

Fixed by #163


Dark Mode Quick Toggle

Add a quick toggle for Dark Mode because pictures doesn't show right in the Dark Mode and user has to go under the settings to turn it on/off.
It would be great if user has capability to change the mode directly when reading the pages.

Yes, either this or having some setting to ignore images when inverting colors for dark mode.


Added back the 'Tensor.init(stacking:alongAxis:)' test.

I believe this failure may be related to TF-681 actually.


Updates

updates for dashboards, readme, and ports.

LGTM
Tested locally and all dashboards look fine.


Added GitHub Actions to create and check for reminders in pull requests.

This branch provides functionality to create reminders on pull requests. The command to do so is:
/remind me <action> [in] <time>

Current granularity of the reminders is by day, so valid uses would be:
/remind me to re-review this PR in 2 days
/remind me to check for updates tomorrow
/remind me to evaluate reminders in 2 months

Example of adding a reminder and the following reminder posted by the action is:

A side-effect of this change is that it may generate a huge number of spam messages for anyone "watching" this repository (like me). It would be much better to generate GitHub notifications instead of comments. My 2 cents.


Why Adam? section added to README.md

This PR addresses #497

Can one of the admins verify this patch?

Jenkins, test this please

When I touch this file in a fix for #1307, I'll make the list of formats comprehensive, add mention of Jupyter, and add links for the workbook technologies.  This looks good for now.  Thank you, @tverbeiren!

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/ADAM-prb/1678/
Test PASSed.

Thank you, @tverbeiren!

+1, thank you @tverbeiren and Joke!


Getting strange error and download doesnt start

What model and region are you entering?

I get the same when entering SM-G781U1 with XAA region.

@Ickerday I can't reproduce the issue with that combination on 1.0.10.

because on this version i am getting new error

Try 1.0.11 once it builds.

Try 1.0.11 once it builds.

working fine now , thanks dev


Update should syntax to new expect syntax

This error happens while doing your tutorial at https://blog.codecentric.de/en/2013/08/cucumber-setup-basics/
DEPRECATION: Using should from rspec-expectations' old :should syntax without explicitly enabling the syntax is deprecated. Use the new :expect syntax or explicitly enable :should with config.expect_with(:rspec) { |c| c.syntax = :should } instead.

Cool, thank you.


Cannot find module<EMAIL_ADDRESS>

Environment
npx nuxi info
Nuxi 3.6.5                                                                                15:48:16
15:48:16
RootDir: C:/HalykLife/nuxt/efo/efo                                                                                15:48:16
Nuxt project info:                                                                                15:48:16

Operating System: Windows_NT
Node Version:     v18.16.1
Nuxt Version:     3.6.5
Nitro Version:    2.5.2
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      app, ssr, spaLoadingTemplate, extends, watch, modules, imports, devServer, nitro, vite, router, components, hooks
Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Build Modules:    -

Reproduction
I don't have any idea why this is happening. I have one root project and child projects with layering. And this happens when nuxi generate one of child projects. Does anyone have any ideas?
nuxt.config.ts below:
{
  ssr: false,
  spaLoadingTemplate: false,
  extends: ['../core'],
  watch: [process.env.NODE_ENV === 'development' ? '../core' : ''],

  modules: ['@pinia/nuxt', '@nuxtjs/tailwindcss', '@vueuse/nuxt'],

  imports: {
    dirs: ['store'],
  },

  devServer: {
    port: 8080,
  },

  nitro: {
    compressPublicAssets: true,
    output: {
      publicDir: import.meta.env.VITE_BUILD_DIR,
    },
  },

  vite: {
    build: {
      minify: false,
      rollupOptions: {
        output: {
          entryFileNames: `_nuxt/[name].js`,
          chunkFileNames: `_nuxt/[name].js`,
          assetFileNames: `_nuxt/[name].[ext]`,
        },
      },
    },
  },

package.json:
{
"private": true,
"scripts": {
  "build": "nuxt build",
  "dev": "nuxt dev --dotenv .env.development",
  "test": "nuxt dev --dotenv .env.test",
  "prod": "nuxt dev --dotenv .env.production",
  "vercel": "nuxt dev --dotenv .env.vercel",
  "generate": "nuxt generate",
  "preview": "nuxt preview",
  "postinstall": "nuxt prepare",
  "typecheck": "nuxt typecheck"
},
"devDependencies": {
  "@nuxt/devtools": "^0.4.5",
  "@vueuse/nuxt": "^10.3.0",
  "nuxt": "^3.6.5",
  "prettier": "^2.8.8"
},
"dependencies": {
  "@nuxtjs/tailwindcss": "^6.8.0",
  "@pinia/nuxt": "^0.4.11",
  "pinia": "^2.1.6"
}
}

Describe the bug
I get such error
[4/4] Building fresh packages...
$ nuxt prepare
[log] Nuxi 3.6.5
[error] Cannot find module<EMAIL_ADDRESS>imported from '...\efo\efo\node_modules\nuxt\dist\index.mjs'
  at new NodeError (node:internal/errors:399:5)
  at finalizeResolution (node:internal/modules/esm/resolve:326:11)
  at moduleResolve (node:internal/modules/esm/resolve:945:10)
  at defaultResolve (node:internal/modules/esm/resolve:1153:11)
  at nextResolve (node:internal/modules/esm/loader:1[63](https://gitlab.halyklife.nb/dit/front-vue/efo/-/jobs/11694#L63):28)
  at ESMLoader.resolve (node:internal/modules/esm/loader:838:30)
  at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18)
  at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:77:40)
  at link (node:internal/modules/esm/module_job:76:36)
error Command failed with exit code 1.

Additional context
No response
Logs
No response

Would you provide a reproduction? 🙏

I can not provide a reproduction, because it happens only when building using gitlab runner. When building local, everything works fine.

I'm having something similar.  It will be using a buildpabck from heroku probably, @Nura-21  you should be able to install pack locally and build locally to recreate.  The same should happen during a "npm run build."
My current problem actually relates to relative paths and to layers, but I haven't got a reproduction yet. I wouldn't be surprised if it is related.


LVS

请教怎么设置负载均衡策略

how can i set Load Balance

If you can repost this to: https://groups.google.com/forum/#!categories/quartz-scheduler with some more information/background then I'll endeavor to answer your question (assuming it is Quartz related).


Slot Ability Separation

Separated the concept of slot and abilities.
This PR reaches feature parity from our previous versions, while giving us the possibility of reusing previous slot values.
closes #109, closes #110, closes #111

http://flow.microsoft.com FTW :)


Validate that an upgraded contract keeps same storage layout as the original one

(follows from https://github.com/zeppelinos/zos-lib/issues/63)
The problem
For an upgrade to be safe, we need to ensure that the new contract shares the same storage layout as the previous version, and only appends new variables, without modifying the existing ones.
For instance, given:
contract V1 {
  uint a;
  uint b;
}

The following upgrade is valid, since it's only adding a new variable at the end of the storage:
contract V2 {
  uint a;
  uint b;
  uint c;
}

The following ones, on the other hand, are all invalid:
contract V2 {
  uint a;
  uint c; // New variable is inserted in the slot previously assigned to `b`
  uint b;
}

contract Base {
  uint base; // New `base` variable will be assigned the first slot
}
contract V2 is Base {
  uint a;
  uint b;
}

contract V2 {
  uint a;
  string b; // Type of a variable is changed
}

Other potential breaking changes include modifying the fields of a struct, or changing inheritance order. Anything that alters the storage layout can potentially introduce bugs, and needs to be detected. To detect this, we need to figure out the storage layout, store it, and compare it when a new version is set.
Infering storage layout
The first step is to get the storage layout given a contract. The safest option to do this is to keep building on https://github.com/ethereum/solidity/pull/4017, which is an enhancement to the Solidity compiler to provide this information directly. This requires considerable effort, and we'd need to wait until the new version of the compiler is released before we can make use of the feature.
A more lightweight alternative would be to extract this information from the AST. Assuming that the order of variables in storage is the same as the order in which they are declared (this is a safe assumption to make), we can walk the AST looking for nodes that correspond to state variables ("nodeType": "VariableDeclaration", "stateVariable": true), and store their order and type. Note that we'd also need to walk the linearizedBaseContracts (in the order specified) and also retrieve their state variables, to build a complete picture of the storage.
Ideally, we could output this information in a format as similar as possible as the one described here, so the transition to the information provided by solc is as smooth as possible.
Comparing storage layouts
Next step is to build a function that, given two storage layouts as extracted in the previous step, returns whether one is a valid extension of the other. It needs to check that variables types and names haven't changed, taking into account complex types (mappings, structs, etc) as well.
The output needs to be human-readable, so we can provide the user with information on where the problem is. Make sure the error is understandable when caused by a change in an ancestor: if a base contract changes its storage layout, it's something quite hidden to the user, so we need to be extra clear in those scenarios.
Recording storage info for a contract and checking
In order to compare a version with a new one, we need to store the storage layout information somewhere, and when the user proposes a new version, we perform the check. Ideally, we could to this when the user registers the new changes, but we need to have a git-like stage in place for that.
Instead, we can do that when the user runs zos push on a new version. On the first zos push, we store the storage layout info in the zos.network.json file (along with the bytecode hash). On subsequent ones, we recalculate the storage layout for the new contract, and compare it with the stored one. If it's ok, we allow the push and overwrite the storage layout. If not, we show the errors to the user. We'd also need to include an --ignore-warns-on-storage-layout (better name needed) flag so the user can push anyway, to work around false positives.

`const solc = require('solc');
const fs = require('fs');
const contracts = fs.readFileSync('./flattened.sol', 'utf8');
const _ = require('underscore');
let input = {
'contracts': contracts
}
function traverseAST(_input, _elements) {
if(_input.children) {
for(var i=0;i<_input.children.length;i++) {
traverseAST(_input.children[i], _elements);
}
}
_elements.push(_input);
}
function compareStorageLayouts(oldLayout, newLayout) {
function makeComp(x) {
return [x.constant , x.name, x.scope, x.stateVariable, x.storageLocation, x.type, x.value, x.visibility].join(':');
}
if(newLayout.length < oldLayout.length) return false;
for(var i=0;i<oldLayout.length;i++) {
const a = oldLayout[i].attributes;
const b = newLayout[i].attributes;
const comp1 = makeComp(a)
const comp2 = makeComp(b);
if(comp1 != comp2) {
return false;
}
}
return true;
}
var output = solc.compile({ sources: input }, 1, _.noop);
const elements = [];
const AST = output.sources.contracts.AST;
traverseAST(AST, elements);
// filter out all Contract Definitions
const contractDefinitions = _.filter(elements, (e,i) =>  e.name == 'ContractDefinition');
// filter out all linearizedBaseContracts
// pick the last one as the last contract always has the full inheritance
const linearizedBaseContracts = .last(.map(contractDefinitions, e => e.attributes.linearizedBaseContracts));
// get all stateVariables
const stateVariables = _.filter(elements, e => e.attributes && e.attributes.stateVariable )
// group them by scope
const stateVariableMap = _.groupBy(stateVariables, e => e.attributes.scope);
orderedStateVariables = _.reduceRight(linearizedBaseContracts, (a, b) =>  {
return a.concat(stateVariableMap[b] || [])
}, []);
// console.log(compareStorageLayouts(orderedStateVariables, orderedStateVariables));
`

@facuspagnuolo Is this task a priority now or has been put in the backlog ?

@subramanianv thanks for the submission and the proposal. Unfortunately, we decided to start working on this issue with a different approach. We will re-assign this issue to ourselves, I hope you can help us with other issues if you want. Thanks!

@gitcoinbot we decided to start working on this issue ourselves, please remove the gitcoin bounty attached to it. Thanks!


rename config_for_rns to just config

#553  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @jlewitt1 and the rest of your teammates on  Graphite


No devices discovered on a fresh install

Description of the issue
Fresh install of the add-on. I have configured the mqtt section and device_discovery_broadcast_address since I have multiple VLANs:
mqtt:
  host: <IP_ADDRESS>
  port: "9200"
  user: REDACTED
  pass: REDACTED
logger: "@ha:ps5:*"
device_check_interval: 5000
device_discovery_interval: 60000
account_check_interval: 5000
include_ps4_devices: true
psn_accounts: []
device_discovery_broadcast_address: <IP_ADDRESS>

I can discover devices (at least one of them) using the playactor browse CLI:
> playactor browse
{
  "address": {
    "address": "<IP_ADDRESS>",
    "family": "IPv4",
    "port": 9302,
    "size": 170
  },
  "hostRequestPort": 997,
  "extras": {
    "statusLine": "620 Server Standby",
    "statusCode": "620",
    "statusMessage": "Server",
    "status": "STANDBY"
  },
  "discoveryVersion": "00030010",
  "systemVersion": "08400005",
  "id": "F4641262DC56",
  "name": "PS5-430",
  "status": "STANDBY",
  "type": "PS5"
}

Please advise what can be done to make it work.
Addon version
1.3.1
Platform
Core: 2023.12.3
Supervisor: 2023.11.6
Operating System: 11.2
Frontend: 20231208.2
Logs of the issue (if applicable)
logs are rather useless:
Starting PS5-MQTT...
2023-12-18T13:14:32.806Z @ha:ps5:webserver Server listening on PORT: 62806

just wanted to add traceroute and ping outputs

well, it was config issue :/
fixed the broadcast address and it works now:
device_discovery_broadcast_address: <IP_ADDRESS>

sorry for the noise


[Automation] Generate Fluent Lite from Swagger webpubsub#package-2024-03-01

[Automation] Generate Fluent Lite from Swagger webpubsub#package-2024-03-01

/azp run java - webpubsub - mgmt - tests

API change check
APIView has identified API level changes in this PR and created following API reviews.
com.azure.resourcemanager:azure-resourcemanager-webpubsub


Toaster size

I'm using the default windows (8.1) toaster, and I would like to make it taller so that the text fits. Is this possible?

No, this is not possible. The only way to do this would be to add whitespace to the notification. (Adding lines before/after the message). The notification takes the height of the content.

Might want to close this one @mikaelbr

@kurisubrooks You can do it yourself :smile: I've added you as a collaborator to the project.

I saw! Thanks :smile:


Improve performance of rendering creature torsos

Based on the performance investigation documented in #767, creature torsos are currently a performance bottleneck. This causes FPS to degrade from ~600 FPS to ~100 FPS on my desktop PC, and to ~15 FPS on my android device. Many people's PCs cannot even run the game.
We should render these torsos more efficiently, in a way that does not require viewports.
-what happens if the viewport is much, much smaller?
-create a creature which uses a conventional sprite sheet for their torso
-create a very rough prototype (just a screenshot or a flat garbage sprite is fine)
-stress test this creature variant to ensure the performance gains are there
-make it look good
 -create 'screenshot' of neutral arms + legs pose
 -create 'screenshot' of facing away arms + legs pose
 -walking animations
 -pointing animation
 -waving animations
-stress test this creature variant again to ensure the performance gains remain

Before getting rid of viewports, we could try making them much smaller.

Making the viewports smaller is viable; here are the results of some benchmarks I ran today.

5 creatures
25 creatures
55 creatures

default (PC)
774 fps
143 fps
71 fps

(Galaxy Note 9)
41 fps
(crash)
(crash)

50% size viewports
1450 fps
490 fps
232 fps

(Galaxy Note 9)
60 fps
60 fps
35 fps

25% size viewports
1573 fps
603 fps
295 fps

(Galaxy Note 9)
60 fps
60 fps
54 fps

Disable update mode
1926 fps
830 fps
431 fps

(Galaxy Note 9)
60 fps
60 fps
60 fps

If we can reduce the size of the viewports and update them less frequently, the game should run great even with tons of creatures.

Here are some tangentially related notes I gathered while investigating the performance bottleneck. They're pretty obtuse but some of them could be useful later.
disabled vsync

disabled overworld shader; 300-275 fps (+33%)
short-circuit packed-sprite.draw(); 310-285 fps (not very much)
packed-sprite sets process and physics_process to false; no change
disable outline shader; 365-335 fps (+18%)
remove creature viewport; 625-577 fps (+71%)

android; ~18 fps still! (only outdoors; indoors is fast)

Remove trees, bushes, restaurant, exit, crystal; no change on desktop, android

Create stress test with 20 creatures and FPS display

50 creatures on PC: 110 fps

simplify RGB shader? 110 fps (no change)
disable RGB shader? 110 fps (no change)
add 24 unnecessary nodes? 110 fps (no change)
remove belly stuff? 660 fps (whoa!)
Use areas to find interactable objects, instead of iterating over a group?
Benchmark code; look at slow functions?
Reduce get_node() and $____ calls in creature-visuals.gd, creature-shadow.gd,  creature-animations.gd?

6 creatures: 40 fps

16 creatures: 12 fps
26 creatures: 6 fps

Creature._physics_process: 0.87 ms
HeadBobber._process: 0.17 ms
Creature._apply_friction: 0.14 ms

0001-Torso-polygon-rendering-workaround-for-Android.txt
Here is an attempted workaround to render torso polygons once for Android. This introduced a lot of problems so it wasn't merged -- but I worked on it for a few days, and don't want to lose the work.


CCS (docs) review of dashboard content (#80)

Cherry pick of https://github.com/red-hat-data-services/odh-dashboard/pull/80 to get the changes upstream.

/cc @laubai


No valid LD matrix files were found at: data/ld/

When I executed
python  viprs/bin/viprs_fit -l data/ld/ -s /path/to/sumstats/  --output-dir /
Code did not execute and said
FileNotFoundError: No valid LD matrix files were found at: data/ld/
python  viprs/bin/viprs_fit -l data/ld/chr_* -s S/X.txt  --output-dir /S
also produced error.
opened viprs/bin/viprs_fit
line 43
change the following.
ld_store_files = get_filenames(args.ld_dir, extension='.zgroup')

ld_store_files = get_filenames(args.ld_dir, extension='.zarray')

opened
site-packages/magenpy/GWADataLoader.py:600:
ld_store_files = get_filenames(ld_store_paths, extension='.zgroup')
ld_store_files = get_filenames(ld_store_paths, extension='.zarray')
but error is the same. The new versions use zarr group rather than zarr array.. when LD matrices are extracted ig contains .zarry
chr_1]$ ls -a
.  ..  0  1  10  11  2  3  4  5  6  7  8  9  .zarray  .zattrs

Which versions of magenpy and viprs are you using in this example?
Also, are those your own LD matrices or the ones that we published on Zenodo?
The published LD matrices on Zenodo only work with magenpy<0.1 (e.g. v0.0.12) and viprs<0.1 (e.g. v 0.0.4). I'm working on getting matrices with the new format published as soon as possible, just finalizing some crucial tests.


PR: Catch errors when trying to change the interface language

Fixes #8179.

Hello @ccordoba12! Thanks for submitting the PR.

In the file spyder/plugins/configdialog.py, following                are the PEP8 issues :

Line 1156:17: E128 continuation line under-indented for visual indent


Change update device object [merge with Edge-api PR#899]

Description
Change update device object to array to work with new api change.
Fixes # (issue)
Type of change
What is it?

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Documentation update
[ ] Tests update

Checklist:

[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] I run npm run lint:js:fix to check that my code is properly formatted

Codecov Report

Merging #377 (2e304aa) into master (5d46ea1) will decrease coverage by 0.03%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #377      +/-   ##
==========================================
- Coverage   34.33%   34.30%   -0.04%
==========================================
  Files         118      118
  Lines        2589     2586       -3
  Branches      752      749       -3
==========================================
- Hits          889      887       -2
+ Misses       1558     1557       -1
  Partials      142      142

Impacted Files
Coverage Δ

src/Routes/Devices/DeviceTable.js
43.13% <ø> (ø)

src/Routes/Groups/GroupTable.js
28.57% <ø> (+0.79%)
:arrow_up:

src/Routes/Devices/UpdateDeviceModal.js
68.57% <100.00%> (-1.70%)
:arrow_down:

Continue to review full report at Codecov.

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


[SPARK-8970][SQL] remove unnecessary abstraction for ExtractValue

Merged build triggered.

Merged build started.

Test build #37010 has started for   PR 7339 at commit 394d3ac.

Test build #37010 has finished for   PR 7339 at commit 394d3ac.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class GetArrayItem(child: Expression, ordinal: Expression) extends BinaryExpression
case class GetMapValue(child: Expression, key: Expression) extends BinaryExpression

Merged build finished. Test PASSed.

cc @rxin

Merged build triggered.

Merged build started.

Test build #37042 has started for   PR 7339 at commit 6a37c12.

Merged build triggered.

Merged build started.

Test build #37044 has started for   PR 7339 at commit 3bc01aa.

Test build #37044 has finished for   PR 7339 at commit 3bc01aa.

This patch fails to build.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class GetArrayItem(child: Expression, ordinal: Expression) extends BinaryExpression
case class GetMapValue(child: Expression, key: Expression) extends BinaryExpression

Merged build finished. Test FAILed.

Test build #37042 has finished for   PR 7339 at commit 6a37c12.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class KafkaRDD(RDD):
class KafkaDStream(DStream):
class KafkaTransformedDStream(TransformedDStream):
case class GetArrayItem(child: Expression, ordinal: Expression) extends BinaryExpression
case class GetMapValue(child: Expression, key: Expression) extends BinaryExpression
class GenericInternalRowWithSchema(values: Array[Any], override val schema: StructType)
 implicit class DebugQuery(query: DataFrame) extends Logging
class HiveContext(sc: SparkContext) extends SQLContext(sc) with Logging
case class StreamInputInfo(

Merged build finished. Test FAILed.

Jenkins, retest this please.

Merged build triggered.

Merged build started.

Test build #37048 has started for   PR 7339 at commit 3bc01aa.

Test build #37048 has finished for   PR 7339 at commit 3bc01aa.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class GetArrayItem(child: Expression, ordinal: Expression) extends BinaryExpression
case class GetMapValue(child: Expression, key: Expression) extends BinaryExpression

Merged build finished. Test FAILed.

Jenkins, retest this please.

Merged build triggered.

Merged build started.

Test build #37061 has started for   PR 7339 at commit 3bc01aa.

Test build #37061 has finished for   PR 7339 at commit 3bc01aa.

This patch fails to build.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class GetArrayItem(child: Expression, ordinal: Expression) extends BinaryExpression
case class GetMapValue(child: Expression, key: Expression) extends BinaryExpression

Merged build finished. Test FAILed.

Merged build triggered.

Merged build started.

Test build #37075 has started for   PR 7339 at commit 84a2128.

Test build #37075 has finished for   PR 7339 at commit 84a2128.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class GetArrayItem(child: Expression, ordinal: Expression) extends BinaryExpression
case class GetMapValue(child: Expression, key: Expression) extends BinaryExpression

Merged build finished. Test PASSed.

I saw the JIRA is marked as resolved, any problems here?

It's been merged -- but github didn't close this. Can you close the pr?


Deserialisation of LinkDataCollection in Optimizely v12 ContentManagement API

Hello,
I'm an Optimizely newbie, so apologies if this is a silly question.
I'm creating items in Optimizely v12 via the Content Management API.
I've got a property of type LinkDataCollection<GeneralLinkData> which all works fine in the CMS and via GET requests to the Content Management API.
Retrieving a Block with this property contains the following JSON:
    "links": {
        "value": [
            {
                "target": "_self",
                "title": "Test Link 1",
                "url": {
                    "originalString": "https://www.google.co.uk",
                    "path": "/",
                    "authority": "www.google.co.uk",
                    "dnsSafeHost": "www.google.co.uk",
                    "fragment": "",
                    "host": "www.google.co.uk",
                    "isAbsoluteUri": true,
                    "localPath": "/",
                    "pathAndQuery": "/",
                    "port": 443,
                    "query": "",
                    "queryCollection": [],
                    "scheme": "https",
                    "segments": [
                        "/"
                    ],
                    "userEscaped": false,
                    "userInfo": "",
                    "uri": "https://www.google.co.uk",
                    "encoding": {
                        "bodyName": "utf-8",
                        "encodingName": "Unicode (UTF-8)",
                        "headerName": "utf-8",
                        "webName": "utf-8",
                        "windowsCodePage": 1200,
                        "isBrowserDisplay": true,
                        "isBrowserSave": true,
                        "isMailNewsDisplay": true,
                        "isMailNewsSave": true,
                        "isSingleByte": false,
                        "encoderFallback": {
                            "defaultString": "�",
                            "maxCharCount": 1
                        },
                        "decoderFallback": {
                            "defaultString": "�",
                            "maxCharCount": 1
                        },
                        "isReadOnly": true,
                        "codePage": 65001
                    }
                },
                "openInNewTab": false,
                "href": "https://www.google.co.uk",
                "text": "Test Link 1",
                "attributes": {
                    "openInNewTab": "false",
                    "href": "https://www.google.co.uk"
                }
            },
            {
                "target": "_self",
                "title": "Test Link 2",
                "url": {
                    "originalString": "https://www.google.co.uk",
                    "path": "/",
                    "authority": "www.google.co.uk",
                    "dnsSafeHost": "www.google.co.uk",
                    "fragment": "",
                    "host": "www.google.co.uk",
                    "isAbsoluteUri": true,
                    "localPath": "/",
                    "pathAndQuery": "/",
                    "port": 443,
                    "query": "",
                    "queryCollection": [],
                    "scheme": "https",
                    "segments": [
                        "/"
                    ],
                    "userEscaped": false,
                    "userInfo": "",
                    "uri": "https://www.google.co.uk",
                    "encoding": {
                        "bodyName": "utf-8",
                        "encodingName": "Unicode (UTF-8)",
                        "headerName": "utf-8",
                        "webName": "utf-8",
                        "windowsCodePage": 1200,
                        "isBrowserDisplay": true,
                        "isBrowserSave": true,
                        "isMailNewsDisplay": true,
                        "isMailNewsSave": true,
                        "isSingleByte": false,
                        "encoderFallback": {
                            "defaultString": "�",
                            "maxCharCount": 1
                        },
                        "decoderFallback": {
                            "defaultString": "�",
                            "maxCharCount": 1
                        },
                        "isReadOnly": true,
                        "codePage": 65001
                    }
                },
                "openInNewTab": false,
                "href": "https://www.google.co.uk",
                "text": "Test Link 2",
                "attributes": {
                    "openInNewTab": "false",
                    "href": "https://www.google.co.uk"
                }
            }
        ],
        "propertyDataType": "GeneralLinkCollection"
    }

However, if I try to create a new Block using exactly the same JSON, I get the following error:

Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'Geta.Optimizely.GenericLinks.LinkDataCollection' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.\r\nTo fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.\r\nPath 'value'.

Is there a step I'm missing to allow this object to be deserialised via the Content Management API?
I see there's a separate package for performing conversions for the Content Delivery API (referenced in #6) but not sure if this will solve my problems in the Content Management API and thought I'd ask before throwing myself down a(nother!) rabbit hole.
Any help would be greatly appreciated.
Thanks,
Antony

I think one of the issues here is that the underlying LinkDataCollection isn't based on JSON at all. It's based on XML and without the propert converters native serialization will fail.
The Content Management API is dependent on the Content Management API. Follow the configuration guide here.
This should leave you with an output akin to this:
"thumbnailLinks": [
{
	"thumbnail": "62",
	"text": "Text",
	"title": null,
	"target": "_blank",
	"href": "/en/alloy-track/",
	"attributes": {
		"thumbnail": "62",
		"href": "/en/alloy-track/",
		"target": "_blank"
	}
},
...
]

I've had similar issues, so have spent some time trying to make it work for my case (everything below is specific for Content Management API - as Content Delivery API seems to work OK).
Sorry I don't have a solution in the form of pull request, as it might require some rethinking of how to use generic approach to work with Content Management API.
Based on docs here https://docs.developers.optimizely.com/content-cloud/v1.6.0-content-management-api/docs/deserialization
Things I see so far:
1 - Content Management API won't use generic properties (some digging with dotpeek led to this).
So if we have say  CustomLinkData, LinkDataCollection<CustomLinkData>, and a PropertyCustomLinkDataCollection for it - we will need a separate model like this CustomLinkDataCollectionPropertyModel : PropertyModel<LinkDataCollection<CustomLinkData>, PropertyCustomLinkDataCollection> - i.e. we cannot inherit from GenericLinkCollectionPropertyModel<T>.
2 - This Model should have parameterless constructor, to support JSON deserialization.
3 - And we need yet another converter - this time to implement IPropertyDataValueConverter.
Here is a minimal sample (in site custom code) I was able to do to make it work with Content Management API and current version of Geta Generic Links:
public class CustomLinkData : LinkData
{
}

[Serializable]
[PropertyDefinitionTypePlugIn]
public class PropertyCustomLinkData : PropertyLinkData<CustomLinkData>
{
}

[Serializable]
[PropertyDefinitionTypePlugIn]
public class PropertyCustomLinkDataCollection : PropertyLinkDataCollection<CustomLinkData>
{
}

public class CustomLinkDataCollectionPropertyModel : PropertyModel<LinkDataCollection<CustomLinkData>, PropertyCustomLinkDataCollection>, IExpandableProperty<LinkDataCollection<CustomLinkData>>
{
    // Inner property we're wrapping here
    private GenericLinkCollectionPropertyModel<CustomLinkData> InnerProperty { get; }

    // We need default constructor to support deserialize from JSON during Content Management API POST requests
    [JsonConstructor]
    public CustomLinkDataCollectionPropertyModel() : this(new PropertyCustomLinkDataCollection())
    {
    }

    public CustomLinkDataCollectionPropertyModel(PropertyCustomLinkDataCollection type) : base(type)
    {
        InnerProperty = new GenericLinkCollectionPropertyModel<CustomLinkData>(type, ServiceLocator.Current.GetInstance<IUrlResolver>());
        Value = InnerProperty.Value;
    }

    public virtual LinkDataCollection<CustomLinkData> ExpandedValue
    {
        get => InnerProperty.ExpandedValue;
        set => InnerProperty.ExpandedValue = value;
    }

    public virtual void Expand(CultureInfo language)
    {
        InnerProperty.Expand(language);
    }
}

[ServiceConfiguration(typeof(IPropertyDataValueConverter))]
[PropertyDataValueConverter(new Type[] { typeof(CustomLinkDataCollectionPropertyModel) })]
internal class CustomLinkDataCollectionPropertyDataValueConverter : IPropertyDataValueConverter
{
    public object Convert(IPropertyModel propertyModel, PropertyData propertyData)
    {
        if (propertyModel is null)
        {
            throw new ArgumentNullException(nameof(propertyModel));
        }

        return ((CustomLinkDataCollectionPropertyModel)propertyModel).Value;
    }
}

Thanks for the feedback. I'll have a look in the coming days.

I've (finally) concluded that this logic currently has to be implemented on the user side like your example @lanorkin.
The reason for this being how Optimizely implemented registration of IPropertyDataValueConverterResolver inside an internal namespace. Attaching behaviour to that logic would be brittle and hard to support.

Closing due to inactivity.


Java display

Is there a tweak that will work / preview with inline Javascript?

I do not understand the issue.


data.MIDITEMPO

The datatype data.MIDITEMPO is defined incorrectly and its value range is too restrictive.  Therefore, the explanation for @midi.tempo is also incorrect.  Rather than "number of quarter notes per minute", it should be defined as "the number of microseconds per quarter note" (per the MIDI file specification at http://www.somascape.org/midi/tech/mfile.html).  At 120 beats-per-minute (and where a quarter note gets one beat), the value of data.MIDITEMPO would 500,000.

To be included in the next revision --
<macroSpec ident="data.MIDITEMPO" module="MEI" type="dt" mode="delete"/>
<macroSpec ident="data.MIDIBPM" module="MEI" type="dt" mode="add">
  <desc>Tempo expressed as "beats" per minute, where "beat" is always defined as a quarter
  note, *not the numerator of the time signature or the metronomic indication*.</desc>
  <content>
    <rng:data type="positiveInteger">
      <!-- The range is taken from Mup. -->
      <!--<rng:param name="minInclusive">10</rng:param>
      <rng:param name="maxInclusive">1000</rng:param>-->
    </rng:data>
  </content>
</macroSpec>
<macroSpec ident="data.MIDIMSPB" module="MEI" type="dt" mode="add">
  <desc>Tempo expressed as microseconds per "beat", where "beat" is always defined as a
   quarter note, *not the numerator of the time signature or the metronomic
   indication*.</desc>
  <content>
    <rng:data type="positiveInteger"/>
  </content>
</macroSpec>
<!-- replace midi.tempo with midi.bmp and midi.mspb -->
<classSpec ident="att.miditempo" module="MEI.midi" type="atts" mode="replace">
  <desc>Attributes that record MIDI tempo information.</desc>
  <attList>
    <attDef ident="midi.bmp" usage="opt">
      <desc>Captures the number of *quarter notes* per minute. In MIDI, a beat is always
      defined as a quarter note, *not the numerator of the time signature or the
      metronomic indication*.</desc>
      <datatype>
        <rng:ref name="data.MIDIBPM"/>
      </datatype>
    </attDef>
    <attDef ident="midi.mspb" usage="opt">
      <desc>Records the number of microseconds per *quarter note*. In MIDI, a beat is always
       defined as a quarter note, *not the numerator of the time signature or the
       metronomic indication*. At 120 quarter notes per minute, each quarter note will last
       500,000 microseconds.</desc>
      <datatype>
        <rng:ref name="data.MIDIMSPB"/>
      </datatype>
    </attDef>
  </attList>
</classSpec>
<!-- Clarify documentation on @mm. -->
<classSpec ident="att.mmtempo" module="MEI.shared" type="atts" mode="replace">
  <desc>Attributes that record tempo in terms of beats per minute.</desc>
   <attList>
     <attDef ident="mm" usage="opt">
       <desc>Used to describe tempo in terms of beats (often the meter signature denominator)
        per minute, ala M.M. (Maezel's Metronome). Do not confuse this attribute with
        midi.bmp or midi.mspb. In MIDI, a beat is always defined as a quarter note, *not the
        numerator of the time signature or the metronomic indication*.</desc>
       <datatype>
         <rng:ref name="data.TEMPOVALUE"/>
       </datatype>
     </attDef>
     <attDef ident="mm.unit" usage="opt">
       <desc>Captures the metronomic unit.</desc>
       <datatype>
         <rng:ref name="data.DURATION"/>
       </datatype>
     </attDef>
     <attDef ident="mm.dots" usage="opt">
       <desc>Records the number of augmentation dots required by a dotted metronome
         unit.</desc>
      <datatype>
         <rng:ref name="data.AUGMENTDOT"/>
      </datatype>
    </attDef>
  </attList>
</classSpec>

Closed by [6f09893]

random comment on this thread:

(per the MIDI file specification at http://www.somascape.org/midi/tech/mfile.html).

That looks authoritative :-)  Here is the official source:
https://www.midi.org/specifications/item/the-midi-1-0-specification
The full spec is now free (originally was $50 for a paper copy), but you do have to register to see it.

At 120 beats-per-minute (and where a quarter note gets one beat), the value of data.MIDITEMPO would 500,000.

MIDI file tempos are not in terms of beats, but in terms of quarter notes (as you note).  So a MIDI meta-message tempo of 500000 microseconds is "120 quarter-notes-per-minute".  This is sometimes equivalent to "120 beats-per-minute", but they are not the same thing.
In the MEI documentation extract:

Tempo expressed as "beats" per minute, where "beat" is always defined as a quarter note,

This statement is not true, so it would be useful to clarify with the following discussion.
MIDI file tempos are exclusively expressed as "quarter-notes-per-minute" and not in "beats-per-minute".  You are conflating the observation that the conversion rate between them is often one-to-one, such as for
4/4 time signatures, but this is not always true, particularly when the time signature denominator is not 4.
To convert tempos from QPM into BPM within a MIDI file, there would have to be a time signature meta message before or at the same time as the tempo message (4/4 time signature is a reasonable default assumption if there is no time signature).  Time-signature meta-messages contain four data parameters

time units per measure (beats if a simple meter, but not if a compound meter)
log_2(rhythmic value for the time units).
MIDI clock ticks per metronome beat (default 24 = quarter note)
number of 32nds per quarter note (default 8 32nd per quarter note)

The MIDI clock ticks is the most important piece of information for defining the beat.  "24" means a quarter note, "12" means eighth note, "36" means dotted-quarter note, "48" means half note, and so on.
I don't know what changing the number of 32nds per quarter would mean (the last value), as I have not see a MIDI file that ever does that...  In theory it can be used to do similar things to the clock ticks, but by modifying the definition of a quarter note.   For instance, you could set this parameter to 32 for Renaissance music, since the beat is typically at the whole-note level.  The delta ticks in the data would represent quarter notes, but the time signature would say to treat them like (modern) quarter notes.
Basic time signature example: 4/4 would be these four parameters:

4        = four beats per measure
2        = two to the 2 power = 4 for the denominator
24      = beat at quarter note rate
8        = the world is sane

2/2 (cut-time) would be:

2
1  (2^1 = 2)
48
8

The bpm tempo would be twice as slow as the qpm tempo since the clock ticks parameter is double the default for quarter notes.  If the tempo is 500000 usec, that would be 120 qpm, but 60 bpm:
     1000000 / 500000 * 60 = 120 QPM * 24/48 = 60 BPM

6/8 (compound time):

6
3    (2^3 = 8)
36
8

In this case the clock ticks at 36 represents a dotted quarter note, so the beat is a dotted quarter note, and a tempo of 120 quarter-note-per-minute would be translated into 80 beats-per-minute:
       1000000 / 500000 * 60 = 120 QPM * 24 / 36 = 80 BPM

If the 6/8 were representing a simple meter:

6
3
12
8

and the BPM tempo per eighth-note beat would be:
         1000000 / 500000 * 60 = 120 QPM * 24 / 12 = 200 BPM

Perhaps adding these examples to the documentation (or summarizing them) would help clarify the subtleties.

Thanks for the clarification.  I struggled to find the actual spec and therefore had to rely on some fairly shady secondary sources.  I'll reopen this issue to make sure the Guidelines get revised.

Yes, most MIDI documentation does not note the subtlety very well, so it is difficult to track down the correct interpretation.
Here is the basic information you usually see:

this is taken from a random webpage, but it looks like a close rip-off of the official standard.
The description is trying to explain that the beat for 6/8 is a dotted quarter note; therefore, the MIDI clocks in a metronome click should be set to 36, since 24 MIDI close represents a quarter note.

Closing this. Will deal with the documentation issues later.


"Nucșoara", "Gruiu" are listed in the drop-down menu

Description:
When user writes "Nucșoara" and "Gruiu" the locations appear in the drop-down menu next to the comune and the county witch is a part according to the law
Precondition:
The website is up an running.

Step 1
Write in the search bar "Nucșoara"

Expected results
The location appears in the drop-down menu as "Nucșoara, Argeș (Nucșoara)"

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 1
Write in the search bar "Gruiu"

Expected results
The location appears in the drop-down menu as "Gruiu, Argeș (Nucșoara)"


WIP: stats.wilcoxon: rewrite for speed and clarity; add PermutationMethod support

Reference issue
Closes gh-17530
What does this implement/fix?
wilcoxon is not natively vectorized; it loops over slices of the input. This PR vectorizes the calculations. It also adds support for instances of PermutationMethod to be passed for the method parameter, enabling calculation of accurate p-values in the presence of ties and zeros.
Additional information
This is a WIP because I need to figure out how I want the new code to be used. I don't intend for it to be as written, where wilcoxon dispatches to _wilcoxon_1d or _wilcoxon_nd depending on the shape of the input arrrays.
This is also waiting on gh-19776 (done) and gh-19780; I can refactor this to use _rankdata and _get_pvalue from those PRs.

Example demonstrating that the rewrite produces the same results, only faster (with vectorized calls).

import time
import numpy as np
from scipy import stats
rng = np.random.default_rng(92459846994567)
from scipy.stats._wilcoxon import _wilcoxon_nd

# All combinations of options
zero_methods = ['wilcox', 'zsplit', 'pratt']
corrections = [True, False]
alternatives = ['two-sided', 'less', 'greater']

# lots of zeros, ties, and NaNs (the most general case)
method = 'approx'
x = rng.integers(-10, 10, size=(100, 100)).astype(float)
i = rng.random(x.shape) < 0.1
x[i] = np.nan

# # 'exact' only exact with no ties or zeros
# method = 'exact'
# x = rng.normal(size=(100, 100)).astype(float)

time_main = 0
time_pr = 0

for zero_method in zero_methods:
    for correction in corrections:
        for alternative in alternatives:
            options = dict(axis=-1, method=method, zero_method=zero_method,
                           alternative=alternative, correction=correction)

            tic = time.perf_counter()
            ref = stats.wilcoxon(x, **options,  nan_policy='omit')
            time_main += (time.perf_counter()-tic)

            tic = time.perf_counter()
            res = _wilcoxon_nd(x, **options)
            time_pr += (time.perf_counter() - tic)

            tols = dict(atol=1e-15, rtol=1e-14)
            if alternative != 'two-sided':
                # `_wilcoxon_nd` always returns `r_plus`, which has more information
                np.testing.assert_allclose(res.statistic, ref.statistic, **tols)
            np.testing.assert_allclose(res.pvalue, ref.pvalue, **tols)

print(time_main / time_pr)
# 13.019562449704909 (as shown)
# 30.953898095117577 (exact, no NaNs)
# 6.414509788100077 (exact, with NaNs - after omitting NaNs, samples have different sizes -> more null distributions)

Example showing that wilcoxon can produce too many small p-values when there are small samples with ties, prompting the need for PermutationMethod.

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
from scipy.stats._wilcoxon import _wilcoxon_nd

rng = np.random.default_rng(92459846994567)

m = 10000
n = 6
x = rng.integers(0, 5, size=(n)).astype(float)
sign = np.sign(rng.normal(size=(m, n)))
x = x*sign

alternative = 'greater'
options = dict(alternative=alternative, axis=-1, correction=True)
ref = stats.wilcoxon(x, method='approx', **options)
res = _wilcoxon_nd(x, method=stats.PermutationMethod(n_resamples=999), **options)
ecdf_ref = stats.ecdf(ref.pvalue)
ecdf_res = stats.ecdf(res.pvalue)

ax = plt.subplot()
ecdf_ref.cdf.plot(ax)
ecdf_res.cdf.plot(ax)
ax.plot([0, 1], [0, 1])
ax.legend(('approx', 'permutation', 'reference'))
ax.set_xlim(0, 0.2)
ax.set_ylim(0, 0.2)
ax.set_xlabel('p-value')
ax.set_ylabel('Proportion of p-values produced under H0')
plt.show()

The Type I error rate is much worse with the default, corrected=False.

Thanks for all your help on rankdata and mannwhitneyu @AtsushiSakai!
Do you ever use wilcoxon? While working on this PR, I noticed some things about Wilcoxon I think should be changed (somehow in a backward compatible way):

I don't see any reason for the default for (continuity) correction to be False except for history: the option to apply continuity correction was added after the function was introduced. The default in R's wilcox.test is TRUE, and it just makes sense. One way to change this in a BC way is to deprecate the use of the function without explicitly specifying correction explicitly. At the end of the deprecation period, we simply change the default to correction=True and remove the deprecation warning. Something similar was done for mannwhitney's alternative parameter years ago.
wilcoxon should always respect the method parameter if it is explicitly passed by the user, but currently it refuses to perform "exact" p-value calculation if there are zeros. It has no problem using the "exact" calculation if there are ties, but in neither case is the p-value actually exact, so this is pretty inconsistent. I think this could be changed immediately as a bug fix - if the user specifies "exact", it uses "exact".
The method resolution with method='auto' could be enhanced. Currently, method='exact' is used when len(d) <= 50 and there are no zeros, otherwise, method='approx' is used. This could be smarter. Since the new _rankdata detects ties with virtually no extra computational cost, it would make sense to consider the presence of ties when choosing the method. Also, for small samples in the presence of ties or zeros, it would make sense to use PermutationTest instead of either 'exact' or 'approx' because it can calculate the truly exact null distribution considering the ties/zeros.
The string method='approx' would be more consistent with closely related tests (mannwhitneyu, kendalltau, and page_trend_test) if it were changed to method='asymptotic'. This is more descriptive of the fact that the p-value is approximate because it depends on an asymptotic approximation (as opposed to, say, approximate in the sense of a randomized permutation test).
The statistic returned currently changes depending on the choice of alternative. Specifically, when alternative='two-sided', the statistic is the minimum of r_plus and r_minus, whereas r_plus is returned otherwise. The minimum of the two contains less information: r_minus can be computed from r_plus if you know that r_plus is returned, but if you only know the value of the minimum of the two, it's unclear what to do with that information. I don't really know what to do about this; I've considered several possibilities, but I don't like any of them.

Do you have opinions on these points?

@chrisb83 can I interest you in this PR? It speeds up wilcoxon and allows passing a PermutationMethod instance for method to improve accuracy in the presence of ties.

Hi Matt, regarding your comment https://github.com/scipy/scipy/pull/19770#issuecomment-1880158299:

I agree that we should apply the correction by default
I agree. we should apply the setting the user has specified and recommend better methods by raising a warning.
Permutation test is a nice addition for small samples sizes if there are ties
yes, "asymptotic" is better.
I also wondered about this logic before, let me think about it again.

Thanks @chrisb83. I added numbers to the points about changes so that it's easier to refer to each. Thoughts on how we go about making these changes? What can be changed on the basis of making the result more accurate (e.g. #1?), what need a deprecation cycle, and what needs something else?

Hi Matt,
I think 1. can be changed w/o a deprecation cycle. Not using the tie correction can be considered a bug, I remember similar cases where we followed this rationale (I can try to find the PRs).
Similarly, changing 2. with a warning instead of overriding can be seen as a bug fix.

should be fine (if the behavior of  "auto" is changed, that is fine in my view since it means that the decision is delegated to the code and if we add a better method for small samples, we should use it)

4.: we can support both keywords for a while, i guess this has to go through a deprecation cycle

after looking at the code again, i am also ok to keep the current behavior. in the end, the min is used to compute the p-value in the two-sided test.  if needed, a user can rerun the code with another alternative. I guess changing the return format would be difficult and not worth it. what is your view?

I guess changing the return format would be difficult and not worth it. what is your view?

I think it's something that should be changed in the long run. The same sort of thing was changed for mannwhitneyu when the alternative argument was added.
But I suppose it can wait for another day. I'd rather get this PR in, so I will work on the first four things.

@chrisb83 maybe let's set aside all of the interface changes to a separate PR. I need to fix the lint error and remove some comments and the old implementation, but I think this is in a state that can be reviewed when you have the chance.

Thanks @chrisb83. Corrected the null distribution mean edge case, removed _wilcoxon_1d, and addressed the new comments.

OK @chrisb83 CI is finally green. I had a bit of back and forth with the test_present_but_private tests but I think that's all set. (Hopefully after 1.14 branches we can remove all that.)

thanks Matt, I merged the changes

Thanks @chrisb83!
@AtsushiSakai took a look at gh-19923 and approved, but was unable to test locally, so a second opinion was needed. In case you're interested, it provides a huge improvement to the MWU exact p-value calculation (e.g. memory $O(m^2n^2)$ to $O(mn)$). I'm treating the code as vendored, so I wouldn't necessarily ask for a complete technical review; just a "plumbing" check to make sure that the code is integrated appropriately and produces accurate values much faster. Either way, thanks for reviewing this one!

Re: https://github.com/scipy/scipy/pull/20765#issuecomment-2132193699
The thought was that it might be worth creating a new function for all five changes to avoid disruption.
That said, I, too, would really prefer to just keep the name wilcoxon. For #5, how about this: we emit a FutureWarning that states that the two-sided statistic will change in two versions. To adopt the new statistic behavior early, the user can pass alternative='two-sided-new' (or similar). If the user wants the old version of the statistic even with the new behavior, we can provide succinct code to compute it. We'll continue to support the 'two-sided-new' alternative indefinitely. (After two versions, it will just be an alias for 'two-sided'.
I considered this before, but I didn't like having to carry around two-sided-new. But that is better than later deprecating two-sided-new (requiring users to make a second change) or creating a new function.


Problems with training a custom model

I am trying to create my own model and already preprocessed the training and test set with the following commands:
for N in {1..8}; do ./util/align-dlib.py <path-to-raw-data> align outerEyesAndNose <path-to-aligned-data> --size 96 & done
./util/prune-dataset.py <path-to-aligned-data> --numImagesThreshold 3
./util/create-train-val-split.py <path-to-aligned-data> --valRatio 0.5
This went without any problems and produced good images where the nose is always at the center.
When I run training/main.lua it starts training but all of a sudden an error occurs in train.lua, the stack traceback is:
/home/$user/torch/install/bin/luajit: /home/$user/torch/install/share/lua/5.1/threads/threads.lua:264:  [thread 1 endcallback] /home/$user/torch/install/share/lua/5.1/torchx/concat.lua:9: attempt to index a nil value stack traceback: 	/home/$user/torch/install/share/lua/5.1/torchx/concat.lua:9: in function 'concat' 	/home/$user/Desktop/openface/training/train.lua:240: in function </home/$user/Desktop/openface/training/train.lua:164> 	[C]: in function 'xpcall' 	/home/$user/torch/install/share/lua/5.1/threads/threads.lua:173: in function 'dojob' 	/home/$user/torch/install/share/lua/5.1/threads/threads.lua:259: in function 'synchronize' 	/home/$user/Desktop/openface/training/train.lua:130: in function 'train' 	./training/main.lua:44: in main chunk 	[C]: in function 'dofile' 	...$user/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:145: in main chunk 	[C]: at 0x00406670 stack traceback: 	[C]: in function 'error' 	/home/$user/torch/install/share/lua/5.1/threads/threads.lua:264: in function 'synchronize' 	/home/$user/Desktop/openface/training/train.lua:130: in function 'train' 	./training/main.lua:44: in main chunk 	[C]: in function 'dofile' 	...$user/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:145: in main chunk 	[C]: at 0x00406670
I hope someone can tell me why this happens.

Hi @aikewoody - what version of the code are you using? I can't match up your line numbers with the code in the master or v0.2.0 tag. Can you try pulling the latest code from master and try again? This may have been fixed by https://github.com/cmusatyalab/openface/commit/8bbfd4da0568225ebdf5f6db9a927de4ba37428e
-Brandon.

Hi @bamos, pulling the latest version of openface seems to fix the error. Strange that I didn't have a correct version because I used the automated docker build bamos/openface.
Thanks for the reply.

Thanks, somehow the Docker automated build was disabled from automatically building and hasn't been updated in 19 days. I just manually started a build and re-enabled the option to auto re-build on repo updates.
-Brandon.


Sublist Search using C#

🚀 Feature
Sublist search is used to detect a presence of one list in another list. Suppose we have a single-node list (let's say the first list), and we want to ensure that the list is present in another list (let's say the second list), then we can perform the sublist search to find it.
Have you read the Contributing Guidelines on Pull Requests?
Yes
Motivation
Strengthen the search Algorithms in C#
Pitch
The Algorithm of Sublist Search is used to detect the presence of one list in another list.

/assign


Support for Angular 4

Does this library has support for Angular 4?

Hi,
I jsut did an upgrade to 4, and I have the following error report:
ng2-currency-mask/src/currency-mask.directive.d.ts (10,21): Generic type 'KeyValueDiffer<K, V>' requires 2 type argument(s).

I've just commented that, and It works, but hope you guys fix it :)

I got the same error

I'll fix this soon. Thanks.

A new version was released supporting Angular 4. Please verify if the error still shows up.

@cesarrew I got the same error with the last version 1.5.1
/node_modules/ng2-currency-mask/src/currency-mask.directive.d.ts (10,21): Type 'KeyValueDiffer' is not gener
ic.)

It's not compatible with angular 2.4.*


Class Method VS. Instance Method

missused?

See this comment: https://github.com/ibireme/YYKit/pull/15


Underlying btc information

We want to display the relationship to BTC on tx pages, but I currently don't know where/when this data will be available. @zone117x can you comment?

See issue https://github.com/blockstack/stacks-blockchain/issues/1950

FYI - a PR is out for this: https://github.com/blockstack/stacks-blockchain/pull/1983. we'd need to do follow up work on the API (including docs)

Reference https://github.com/blockstack/stacks-blockchain-api/issues/302


Fix provisioning profile detection for projects based on inherited xcconfigs

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.

Motivation and Context
Fix detection of provisioning profile mapping for projects based on inherited xcconfigs for resolve build settings.
It solves the provisioning profile mapping generated for projects with more than one target which uses inheritance between the configuration and the target xcconfigs for resolve the build settings.
[here|https://github.com/jmbrocal/ProjectExampleWithInheritedXcconfig] you can find an example project which the current implementation fails to detect the provisioning profile mapping.
Description
The change consists in passing the target of the build configuration for resolve the PRODUCT_BUNDLE_IDENTIFIER, PROVISIONING_PROFILE_SPECIFIER and PROVISIONING_PROFILE with a complete recursion between project and targets.
I added an unit test covering the changes.

I signed it!

Hi!
It's been a few days since I opened this PR and I have not had comments. The repo has activity recently so I am worried if my PR is wrong or it does not follow the rules correctly.
We need this changes for a project that I am working on because reduce the number of xcconfigs from 44 to 16 files.
How can I unlock this PR?

@jmbrocal Sorry, I don't have permissions to move this forward. Maybe @janpio can help you.

Did I get that right that your "only" real change is adding the target param to some method calls? Can you talk me through what exactly this does (in terms a non iOS developer might understand) exactly?
The change looks good and safe enough, but as it is in gym which is one of the most used actions I of course want to make sure we don't break anything.

Did I get that right that your "only" real change is adding the target param to some method calls?

Yes, concretely the target param is passed to #resolve_build_setting(key, root_target = nil) ⇒ String method of the XCBuildConfiguration object. Passing this param the function will does a complete recursion between the project and the target.
You can read the documentation of resolve_build_setting method here

Can you talk me through what exactly this does (in terms a non iOS developer might understand) exactly?

Sure, It allows to resolve_build_setting method to resolves the value of a build setting resolving first the variable assigned to it.
An example is
For the debug configuration we have this
// Debug.xcconfig
PRODUCTION_BUNDLE_IDENTIFIER = $(MY_VARIABLE)

For the target configuration we have this
// AppTarget.xcconfig
MY_VARIABLE = "A value"

If we do not pass the target param to resolve_build_setting method, it cannot resolve the value of
the build setting PRODUCTION_BUNDLE_IDENTIFIER, because the value of that variable is assigned in other level.

What does "to resolve complete recursion between project and targets" actually mean? Does this change the values return? Does it improve the values returned?

Improve the value returned because it will work like Xcode does.
Without the target param the resolution of a build setting does not consider the target so the resolved value is incomplete.
Adding the target param, we are resolving the build setting like Xcode does so gym will be more precise.

Hi!
Can I help in any way to unlock this PR? I really need this fix but I don't want to fork the repo.
I can provide more tests, other examples or a better explanation about the changes for unlocking the PR.
Thanks!!


User supplied HTTP headers are wrongly ordered when using libcurl-impersonate

When using libcurl-impersonate (either with CURL_IMPERSONATE env var or curl_easy_impersonate(), user-supplied HTTP headers will be placed after the built-in list of HTTP headers that libcurl-impersonate uses.
If the user supplies a HTTP header with the CURLOPT_HTTPHEADER option, it will either:

Replace the built-in header used for impersonation, if it's the same header (e.g. User-Agent).
Be placed after all the built-in headers used for impersonation.

The result is that the order of HTTP headers is not fully controllable by the user.
Example:
When impersonating Chrome 101, the following headers are added by default:
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="101", "Google Chrome";v="101"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9

If the user sets for example the two headers X-Custom-User-Header and User-Agent in this order, the resulting list would look like:
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="101", "Google Chrome";v="101"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: [ Custom user agent ]
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
X-Custom-User-Header: [ Custom user header ]

Thus X-Custom-User-Header is placed AFTER User-Agent even though the user requested the opposite.
This is quite tricky to solve, as it is not always clear how to combine the built-in headers and the user-supplied headers. My current thinking is to allow the user to disable the built-in headers altogether so that they can choose the order themselves.

@lwthiker one solution I did for this problem was to create a profile named 'chrome101_noheaders' that had no embedded headers, only the configuration of http2 and ciphers that are harder to set using libcurl wrappers. The provided headers using this followed the specified order.

Thanks @bratao , I am actually planning to make the built-in headers optional. Then the regular profiles will be usable as is, just without the headers, and the user will have to specify the exact list of headers in the desired order. The plan is that it would be possible to toggle the headers on/off through an environment variable and a parameter to the curl_easy_impersonate() function.

Can you please explain whether the differences in the order of the headers between Sec-Fetch-Mode: navigate and Sec-Fetch-Mode: cors are taken into account? As far as I know, at least in chome the header order is different when requesting a document (navigation) and when executing an XmlHttpRequest.
And I also noticed that if I send request using HTTP/2 protocol, but server doesn't support it, protocol automatically downgrades to HTTP/1.1. This is correct. But chrome completely re-creates the headers into 1.1 format (uppercase, and possibly a different order), but curl-impersonate leaves them in 2.0 format (lowercase). Is this a bug?


errors on addon start

I've tweaked a bit the addon to start and I see:
Input error: Is a directory
jq: error: Could not open file empty: No such file or directory
Input error: Is a directory
jq: error: Could not open file empty: No such file or directory
[Info] Setting configuration.yaml...
[Info] Configuration written to /app/adata/configuration.yaml:
homeassistant: true
mqtt: {base_topic: zigbee2mqtt, server: 'mqtt://<IP_ADDRESS>'}
permit_join: true
serial: {port: /dev/ttyACM0}
Lifecycle scripts included in zigbee2mqtt:
  start
    node index.js
available via `npm run-script`:
  docgen
    node support/docgen.js

After this the addon fails to start.

Aside from the errors you’ve fixed, I also incorrectly used npm run instead of npm start, which is why the addon failed to start. Closing this after b9085e2


Keep inventory for everyone on multiplayer server with the soul binding enchantment.

I have a player who got the soulbinding augment on a totem and instead of just letting them keep their inventory now the whole server keeps their inventory.

This issue should be fixed in the latest releases.


Some sort of session edge case?

I was playing around with Vapor 0.12 just now, and was debugging why my session seemingly wouldn't save. And I found that indeed, my session didn't save.
Something as simple as this would display "error", if I first went to / then /test.
import Vapor

let app = Application()

app.get("/") { request in
    request.session?["test"] = "hi"
    return "session set to " + request.session?["test"]
}

app.get("/test") { request in
    return request.session?["test"] ?? "error"
}

app.start()

I fixed it by going into incognito / ultimately clearing my cookies. Not sure why this would happen, though?
My Vapor cookie looked like this at the time:
vapor-session: c05e60b0416b084da3c913d02fd7b11c06a0890662340f164b27d1778251b8df

Not sure what's happening here exactly, but this looks like a bug to me. Have you been able to find consistent repro?

Haven't played around with stuff in the past few days. I'll keep you updated if I see this again.

I can't figure out how to consistently reproduce it just yet, but I've ran into it several times today. It seems like Vapor is not associating my old session and instead creating a new session for each request.
Printing description of self.sessions.sessions:
▿ 4 elements
  ▿ 0 : 2 elements
    - .0 : "4c4343d6f832364b45086827b22d55db9effb0ca57ed5ffeed5ade81fcc0ac22"
    ▿ .1 : 1 elements
      ▿ 0 : 2 elements
        - .0 : "VaporAuth"
        - .1 : "enabled"
  ▿ 1 : 2 elements
    - .0 : "15c8a28dbf1ebed0f93ce1a9dd9ae2a18e521aafc7fd357b8be6e99768a8a62b"
    ▿ .1 : 1 elements
      ▿ 0 : 2 elements
        - .0 : "VaporAuth"
        - .1 : "enabled" { ... }
  ▿ 2 : 2 elements
    - .0 : "acb6a5b6e802cb74b1da865bf6bd13d8579e6fa82cd316387fd2e3f452115929"
    ▿ .1 : 1 elements
      ▿ 0 : 2 elements
        - .0 : "VaporAuth" { ... }
        - .1 : "enabled" { ... }
  ▿ 3 : 2 elements
    - .0 : "671f538b0cd2ebf54fffe4248a255439f5ee2d155d6b32b136f31705ed9bf206"
    ▿ .1 : 1 elements
      ▿ 0 : 2 elements
        - .0 : "VaporAuth" { ... }
        - .1 : "enabled" { ... }

I think it's something to do with how you're setting cookies for the sessions:

The response cookies here aren't changing the stored cookies at all.
By the way, you should consider using HTTPOnly cookies for your session cookie so XSRF attacks can't steal your cookies =]

I'm betting a lot of this will be fixed with #473


On the road testing of sync

Describe the bug
Simulate an IP change and a network failure every few seconds from the client-side and assess the sync behavior while updating the same key multiple times during the process.

Tested using wifi package. But it doesn't get connected to the wifi. Couldn't find other alternatives yet to connect to wifi.
https://user-images.githubusercontent.com/43639593/175873832-a01f9449-b4a0-41d5-8a77-daef1c7a78ae.mp4
I/flutter (14999): WifiState.error


Errors during execution of installApp.sh

During the execution of installApps.sh, few exceptions were coming as Websphere_Portal was stopped but not restarted again.
Also, Digital Assests feature is enabled but showing blank page.
Could any one please help me on this issue.

Hi @maniraj149, could you please check if the issue still persists with the most recent version of this repository?
If possible, could you post the exceptions here that you encountered?


(PS: Any docs on how to read this debug output?)

paplay

paplay and other utilities, built from PulseAudio sources, depend on libpulsecommon-10.0.so. That's an internal library, part of the implementation. Library name changes with every release, and it's not actually designed to be binary-compatible. No one is expected to link with it except PulseAudio utilities or libraries. I tried to implement some of the functions back in the days of PulseAudio 5: there is still libpulsecommon-5.0.so binary. And if I memories right, parec was even working. Now current PulseAudio version is 10, and it parec doesn't work even if I rename library to make it happy. Some symbol is missing.
PulseAudio version varies between distributions. And so probably vary their internal symbols. One can say, parec and paplay are the hardest applications to support. So, I'd rather avoid trying to catch up with internal symbols. It's pointless, as a new release will break things again.
As for testing audio output, I'd use mplayer -ao pulse audio.mp3 or mpv --ao=pulse audio.mp3. They should work.

libpulsecommon shouldn't be an issue:
$ ldd `which paplay`
	linux-vdso.so.1 (0x00007ffcfb0ab000)
	libpulse.so.0 => /usr/lib/libpulse.so.0 (0x00007f32c9842000)
	libpulsecommon-10.0.so => /usr/lib/pulseaudio/libpulsecommon-10.0.so (0x00007f32c95bd000)
	libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0x00007f32c9345000)
	libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f32c9127000)
	libc.so.6 => /usr/lib/libc.so.6 (0x00007f32c8d82000)
	libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x00007f32c8b32000)
	libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f32c892e000)
	libm.so.6 => /usr/lib/libm.so.6 (0x00007f32c861c000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f32c83f3000)
	libsystemd.so.0 => /usr/lib/libsystemd.so.0 (0x00007f32c9bdf000)
	libasyncns.so.0 => /usr/lib/libasyncns.so.0 (0x00007f32c81ed000)
	librt.so.1 => /usr/lib/librt.so.1 (0x00007f32c7fe5000)
	libFLAC.so.8 => /usr/lib/libFLAC.so.8 (0x00007f32c7d6d000)
	libogg.so.0 => /usr/lib/libogg.so.0 (0x00007f32c7b66000)
	libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007f32c7939000)
	libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x00007f32c7686000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f32c9a93000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f32c7482000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f32c727c000)
	libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007f32c7066000)
	libcap.so.2 => /usr/lib/libcap.so.2 (0x00007f32c6e62000)
	liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007f32c6c3c000)
	liblz4.so.1 => /usr/lib/liblz4.so.1 (0x00007f32c6a28000)
	libgcrypt.so.20 => /usr/lib/libgcrypt.so.20 (0x00007f32c6719000)
	libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0x00007f32c6504000)

Since it's just part of the pulse client (libpulse package). Is there anything that stops using apulse with pulseaudio's libpulsecommon?

Since it's just part of the pulse client (libpulse package)

...and apulse shadows libraries from that package.

Is there anything that stops using apulse with pulseaudio's libpulsecommon?

Probably not. Since it was something internal to PulseAudio's libpulse, I didn't even try.


breakfix: local auth not working

Describe the issue
Following the docs on local auth https://authp.github.io/docs/authenticate/local/local do not work. I only get the following error (after validating, running or reloading the config):
adapting config using caddyfile: directive 'authenticate' is not ordered, so it cannot be used here
Configuration
Paste full Caddyfile below:
{
  security {
    local identity store localdb {
      realm local
      path {$HOME}/.local/caddy/users.json
    }

    authentication portal myportal {
      enable identity store localdb
    }
  }
}

:80 {
  authenticate with myportal
}

Version Information
Provide output of caddy list-modules -versions | grep git below:
No output

Expected behavior
The Caddy configuration (as described in the docs) should not be breaking / invalid.

No activity. Please reopen if necessary.