single-thread multi-threading

Hi All,
The issue I am going to report possibly popped up on several occasions already.
I was running parallel test inside TBB's "parallel_for" loop using Armadillo matrix library linked against OpenBlas backend. The test itself run correctly except all the threads were bounded to a single CPU, that is, all but one cores were free and 1 was 100% busy. It took quite a lot of time to figure out what was going wrong. Eventually, I recompiled Armadillo/Arpack without OpenBlas and for now the multi-threading operates as expected. My impression is that nested parallelism causes a problem. TBB runs a function body inside thread context where Armadillo vector/matrices are manipulated with OpenBlas parallelisation. Ideally, OpenBlas should follow sequential execution branch if its function was invoked from the parent thread context, although I am not sure how to do this automatically. Maybe OpenBlas can expose both the parallel and sequential APIs and let front-end libraries to switch between them upon user request.
P.S. My system is Redhat 7.6, 64-bits, g++ 6.3. Interesting, exactly the same code runs without issues on Mac OS, where everything was installed via Homebrew.

I think we have an older ticker already open for TBB support. Not sure if your problem comes from TBB itself or if something in Armadillo (or whatever else is involved) forces thread affinity to a single cpu.
It may be possible to work around this by setting  OPENBLAS_NUM_THREADS=1 in the environment or calling openblas_set_num_threads(1) early in your code.

Regarding your PS, which version of OpenBLAS are you using on the two systems ? (Besides MacOS may handle affinity differently)

Hi Martin,

Besides TBB, I wrote two parallel_for implementations based on pure pthreads and std::thread - the same behavior.
On Mac OS (Mojave):  openblas 0.3.4 (strange version, the official one is 0.2.20).
On Linux: openblas 0.2.20

Looks like you're the ideal person to debug this :smile:
Version 0.3.4 is not that strange, actually that is the latest version. 0.2.20 on the other hand is 18 months old, it was the last version produced by xianyi before he (apparently) concentrated on his newly founded business. Unfortunately I do not have write access anywhere outside the repository, so openblas.net still provides outdated information.

Only OpenMP parallel section detection AND (&&) in OpenMP build of OpenBLAS are implemented. In all other cases OpenBLAS functions will not detect being in parallel section. There is some code preventing extreme (n^2) core oversubscription.
Regarding CPU affinity mask - it is possible that under OSX OpenBLAS and TBB uses different affinity masks API, so openblas can occupy more threads, under Linux once mask is set to smaller than wildcard - sub-threads or child processes cannot escape it in user context, that is possible from root user (or subject to renice ulimit)

Hmm. 0.2.20 may actually have been one of those older releases where cpu affinity had accidentally been made the default on linux as well. I'd wait for results with 0.3.4 before trying to explain away why it might behave differently on linux...

There is 0.3.3 (_TLS patched, AFIINITY off) all flavours available via Fedora EPEL.

Confirmed now - 0.2.20 was the exact version where I had inadvertently changed the default setting in Makefile.rule to enable CPU affinity on Linux - luckily this was spotted and corrected in time for the subsequent 0.3.0 release. The effect of having cpu affinity enabled would be exactly as you describe,
any threads started by the program after initialization of OpenBLAS would be bundled on that one cpu.


Fixed UTF-8 encoding for whats_left.py and type mismatching in stdlib/src/ssl.rs

This Pull Request is fixing the charmap error when running Python over the script whats_left.py as shown below:
λ python.exe -I whats_left.py
test_sqlite3: testing with version '2.6.0', sqlite_version '3.39.4'
Traceback (most recent call last):
  File "[REDACTED]\IdeaProjects\RustPython\whats_left.py", line 445, in <module>
    f.write(output + "\n")
  File "[REDACTED]\AppData\Local\Programs\Python\Python311\Lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeEncodeError: 'charmap' codec can't encode character '\u03c0' in position 76582: character maps to <undefined>

The line responsible of this behaviour is:
with open(GENERATED_FILE, "w") as f:

Hence, we just need to add the parameter encoding to the value UTF-8 to resolve this error.
The second fix resides in the ssl.rs file. Indeed, there are some type mismatching that cause errors while building with whats_left.py, where are listed below:
const OP_ALL: libc::c_ulong = sys::SSL_OP_ALL & !sys::SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS;
[...]
fn set_options(&self, opts: libc::c_ulong) {
            self.builder()
                .set_options(SslOptions::from_bits_truncate(opts));
}

also closes #4255


Bias in RandomValueStringGenerator Authorization Code Generation

The transformation of random bytes to alphanumeric characters using the modulo operator in the RandomValueStringGenerator#getAuthorizationCodeString() method introduces a bias such that the first 8 elements in the character array are 25% more likely to be selected than the other elements.
This is because the length of DEFAULT_CODEC is 62, which does not evenly divide into 256. The bias prevents the the random value strings from being uniformly random, which may allow an attacker to recover nonrandom, predictable values using brute force methods.
A simple fix is to add two more characters to DEFAULT_CODEC, bringing its length to 64. Recommend adding URL safe characters hyphen (-) and underscore (_).

Interesting analysis. I don't think anyone should panic, but we can discuss some more if you want. The degree of non-uniformity introduced is not significant enough to give an attacker much of an advantage. If there is an attack we should worry about here I would think it is much more important to ensure that the auth codes are short lived, than to worry much about small wrinkles in the random generator.

@dsyer based on your comment here do you recommend we close this issue?

Interesting find @rlubbat. Would you be interested in sending a PR for your recommended change?

Honestly, I don't think I'm going to have the time. Should be pretty easy for someone to add the two characters as described in the issue. Thanks for looking at it.

On May 13, 2016, at 6:50 AM, Joe Grandja<EMAIL_ADDRESS>wrote:
Interesting find @rlubbat. Would you be interested in sending a PR for your recommended change?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub


fix: ensure initCache setter function stays within bounds of subscriptions

This PR closes #2357, by creating a copy of the subscriptions[key] array in the setter function for initCache. By doing this we avoid an intermittent bug where subscriptions[key] is mutated while the for-loop is running, potentially causing an out of bounce lookup.
By copying the object, mutations of the original object will not affect the setter function while executing. Alternatively we could lock write operation while running the read operation. Or use a different iterator method, that make it's own copy instead of a vanilla for-loop.
This is somewhat hard bug to reproduce, as it's highly intermittent.

Thanks for the PR! Can you add a test for this?

Thanks for the PR! Can you add a test for this?

It's quite challenging making a test that reproduce the original problem, as it looks to me as a race condition when two or more caches are initiated at the same time with the same key for the global store, but different number of subscriptions. I can add a unit test for the initCache, but haven't found a way reproduce the error in isolation. I've tested the fix in my application code where I do have the error intermittently, also shipped a patched version to PROD, and this do eliminate the error, no more reporting in Sentry either.


chore(gamut-system): renamed some of the createHandler internals

Overview
PR Checklist

~[ ] Related to designs:~
~[ ] Related to JIRA ticket: ABC-123~
[ ] I have run this code to verify it works
[x] This PR includes unit tests for the code change

Description

Rename altProps to dependentProps
Rename templateFns to styleTemplates
Renames the functions to generate ☝  from a *Property* format to a create*StyleTemplate` format
Uses Object.assign instead of casting when returning functions with members on them

📬Published Alpha Packages:@codecademy/gamut-labs@4.2.2-alpha.a9fe1a.0@codecademy/gamut-styles@7.1.0-alpha.a9fe1a.0@codecademy/gamut-system@0.0.1-alpha.a9fe1a.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5f7e1a4457fcf6009cde8209--gamut-preview.netlify.appDeploy Logs

@codecaaron nice fix with the last commit -- am I good to go to merge this? 🚀


Update LICENSE.txt

Copyright statement style change to meet Annnarita's instruction

The style standardisation instruction has changed several times in the last few weeks and both Alex and I were very confused. And my apologies for the confusion caused for you and your team. Now it is clear
It should be
Copyright (c) year Blue Brain Project/EPFL


Make Tab's (of Material TabBar) Padding Configurable

Steps to Reproduce
Use the following code to create tabs for a tab bar:
Widget _buildTab(String label, Color color) {
    return new Container(
      color: color,
      child: new Flex(
        direction: Axis.horizontal,
        children: <Widget>[
          new Expanded(
            child: new Container(
              height: 50.0,
              child: new Center(
                child: new Text(
                  label,
                  style: new TextStyle(
                    color: Colors.black,
                    fontWeight: FontWeight.bold,
                    fontSize: 18.0,
                  ),
                ),
              ),
            ),
          ),
        ],
      ),
    );
}

Description
Currently, line 894 of material/tabs.dart uses the constant padding of kTabLabelPadding. Link to source. This applies the padding on the entirety of the tab in a tab bar, meaning it'll apply padding not only to text/images/icons but also containers of solid colors. Currently there's no workaround besides the user fashioning their own tab bar from scratch, which is tedious considering the simpler and more flexible workaround is to give the user control via settable field.

cc @HansMuller

@zoechi Hi. How exactly are we supposed to add  custom padding? I am not that experienced with flutter so am not sure how. From your answer I went to the a corresponding flutter file in my project and  did this
padding: widget.labelPadding ?? tabBarTheme.labelPadding ?? 8.0,
Apart from the fact that I felt uncomfortable  editing this file, it throw this error on the tab area:
type 'double' is not a subtype of type 'EdgeInsetsGeometry'


realClick hangs in cypress 13

Hey folks,
We have been using realClick() at many a places. What we are seeing now is that cy.realClick() is hanging the cypress 13 runner.
Could you have a look at this problem?
Let me know if anymore information be needed.
Cheers,
Abhi

We are having no issues with our CI. Please create a reproduction of the problem


How to display a merged mining infor together with BTC?

Dears,
I was setup a  namecoin daemon with bitcoin for merged mining pool but don't know how to configured display both coin info on MPOS
Regards,
John Ahn

Not possible with MPOS. It doesn't support merged mining.


[WIP] fix(tests) : Add tests for Board view

Note: If there are pending changes to the PR, prefix the PR title with "WIP" and add the label "DO NOT MERGE"
Mandatory

[ ] What does this PR do?

[ ] What issue/task does this PR references?

[ ] Are the tests Included?

Optional

[ ] Is the documentation Included?

[ ] Are the Release Notes included?

[ ] @mention(s) to expected reviewer(s) included

@Raunak1203 Your image is available in the registry. Run docker pull quay.io/openshiftio/rhel-fabric8-ui-fabric8-planner:SNAPSHOT-PR-2744 && docker run -it -p 5000:8080 quay.io/openshiftio/rhel-fabric8-ui-fabric8-planner:SNAPSHOT-PR-2744 and visit http://localhost:5000 to access it.

@Raunak1203 Your image is available in the registry. Run docker pull quay.io/openshiftio/fabric8-ui-fabric8-planner:SNAPSHOT-PR-2744 && docker run -it -p 5000:8080 quay.io/openshiftio/fabric8-ui-fabric8-planner:SNAPSHOT-PR-2744 and visit http://localhost:5000 to access it.

[test]

[test]

@Raunak1203 Your image is available in the registry. Run docker pull quay.io/openshiftio/fabric8-ui-fabric8-planner:SNAPSHOT-PR-2744 && docker run -it -p 5000:8080 quay.io/openshiftio/fabric8-ui-fabric8-planner:SNAPSHOT-PR-2744 and visit http://localhost:5000 to access it.

[test]

@Raunak1203 Your image is available in the registry. Run docker pull quay.io/openshiftio/fabric8-ui-fabric8-planner:SNAPSHOT-PR-2744 && docker run -it -p 5000:8080 quay.io/openshiftio/fabric8-ui-fabric8-planner:SNAPSHOT-PR-2744 and visit http://localhost:5000 to access it.

@Raunak1203 can you please rebase this and get it to a state that it can be merged?

Since we are no longer working on board view. So, this PR is irrelevant and Hence closing this PR.
cc @michaelkleinhenz


Curly brace spacing

The object-curly-spacing controls the whitespace between the curly braces.
This goes for (nested) object literals on a single line:
const person = { name: 'tim', age: 27, friend: { name: 'bob' } };

As well as destructuring:
const { name, age, friend } = person;

As of right now, our configuration does not seem to enforce anything. Should we?

IMO, we definitely should prefer one over the other, as to keep our codebases clean and consistent. Personally, I prefer the spaced version, both for curlies, brackets and destructuring. It's just more pleasant to look at. :smiley:

My personal preference is for some reason highly inconsistent:
// Object literals: yes
const person = { name: 'tim', age: 27, friend: { name: 'bob' } };

// Destructuring: no
const {name, age, friend} = person;

// Array literals: no
const bodybuilders = ['Rich Piana', 'Arnold Schwarzenegger'];

:disappointed:

Although that causes some inconsistencies with the following looking super cramped:
function greet({name, age}) {
  console.log(`${name}, such age of ${age}`);
}

Perhaps always using spaces for objects, and none for arrays?

Closing this, as it's merged in #4.


Audio is not working please we are in very trouble please sort out the issues

Issue summary
Thanks for submitting an issue to Mturk Engine. Use this space to provide a high-level summary of the problem or feature request:
Expected behavior
When the problem occurs, what do you think should have happened? If the issue is a feature request, what would you like to see?
Actual behavior
What actually happened? Include any error messages you see in the console when the issue occurs (press F12 while using Mturk Engine to see the console).
Steps to Reproduce the Problem

Specifications

Mturk Engine version:
Browser:

Resolved, fortunately. See https://github.com/Anveio/mturk-engine/issues/60

thanks Anveio/mturk-engine
On Fri, Nov 1, 2019 at 10:41 AM Shovon Hasan<EMAIL_ADDRESS>wrote:

Closed #61 https://github.com/Anveio/mturk-engine/issues/61.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Anveio/mturk-engine/issues/61?email_source=notifications&email_token=ANNPKNETNKASSAZNJLRINQTQRO26PA5CNFSM4JCJWZA2YY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOUSR3VZQ#event-2762193638,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANNPKNAAKDYWKVPT7MOUAE3QRO26PANCNFSM4JCJWZAQ
.


fix(datastore/etcd): Fix grant privileges when using a custom dataStoreSchema

Resolves #606

Please, just align to semantic commit messages, and we can get this merged, thanks a lot! 🚀


change pip install command in README.md

For a cloned repository the name of the directory will be 13Check_RNA, but for a downloaded repository the directory will be 13Check_RNA-master...


err  Registry bower not found.

Hi, I cannot install packages. I got the following error.
Regards,
$ npm install
$ sudo npm install -g gulp
$ sudo npm install -g jspm
$ jspm install -y
err  Registry bower not found.
err  Unable to load registry bower
warn Installation changes not saved.

This does not fix the issue.
$ npm install bower

I fixed it.
I removed some lines related to bower from config.js. That worked.
I will send pull request later.

I think my pull request fixes the same issue via another means.

Solved by pull request #2.
Thank you both.


@cacheControl support tests, fixes...

Today if you @cacheControl directive in your subgraphs with Apollo Server, it sends cache control headers. And this is supported by http cache plugin. You don't need @composeDirective etc.
If you use those directives without ApolloServer, you can give the control to the gateway using Response Caching plugin but in order to have those directives in your gateway, you have to add the directive using @composeDirective so the supergraph can have it and response caching plugin can pick it up and use it.
This PR fixes the following issue when the directive definitions got lost while handling the supergraph using @graphql-tools/federation.
It also adds tests for both the cases mentioned above.
Needs to be documented on the website!!!
After merging this PR, we need to update the docs with the two cases. And we need to mention http caching plugin can be used with the subgraph services returning cache control headers on its own and no @composeDirective.
If the subgraph is expected to control gateway's caching, response caching should be added and @composeDirective should be added for @cacheControl;
extend schema
  @link(
    url: "https://specs.apollo.dev/federation/v2.1"
    import: ["@composeDirective"]
  )
  @link(url: "https://the-guild.dev/mesh/v1.0", import: ["@cacheControl"])
  @composeDirective(name: "@cacheControl")

When somebody runs hive schema:publish and points to a schema with @cacheControl directive then it won't be passed to supergraph SDL. Do I understand correctly that mesh-compose is needed to print the SDL of the subgraph?

When somebody runs hive schema:publish and points to a schema with @cacheControl directive then it won't be passed to supergraph SDL.

You know @cacheControl is not part of federation spec. So @composeDirective should be used together with the directive definition like this;
extend schema
  @link(
    url: "https://specs.apollo.dev/federation/v2.1"
    import: ["@composeDirective"]
  )
  @link(url: "https://the-guild.dev/mesh/v1.0", import: ["@cacheControl"])
  @composeDirective(name: "@cacheControl")

If they use mesh-compose, it respects @cacheControl and automatically generates @composeDirective.
But if they don't use it, they have to add these composeDirective definition for cacheControl on their own.

Yeah, that's what I asked about. We need to make sure it's well documented

Yeah, that's what I asked about. We need to make sure it's well documented

Yes 💯

@ardatan can you add documentation of this as part of this PR?

also, how does Apollo's gateways handle this?

also, how does Apollo's gateways handle this?
If I don't miss anything ( @kamilkisiela can correct me if I'm wrong ) , it respects cache-control headers as our http cache plugin does since @cacheControl is not available in the supergraph without @composeDirective;
This is my reference; https://www.apollographql.com/docs/apollo-server/performance/caching

@ardatan I would like to review the docs and this together, as it will help me understand everything before I review
about Apollo, can you create an example and test how it actually behaves?
maybe a side by side example - one with Apollo Router and another with Hive Gateway?
Would also help me understand and might also help with docs

Apollo Router caches only the entity calls (to my knowledge) and it respects cache-control.
It supports global ttl (per subgraph) - as it obviously don't know the entity types it exposes.
It does not cache entire response emitted to the client.

@Urigo There is no special configuraiton needed for Apollo Gateway/Router in this case but there are two options in Hive Gateway as documented here;
https://github.com/graphql-hive/console/pull/6161

Waiting for improvements on the docs before approving


refactor(flow): refine comments and code

I hereby agree to the terms of the GreptimeDB CLA.
Refer to a related PR or issue link (optional)
What's changed and what's your intention?
Almost keep the original logic, but try to keep things simple. Also, refine the doc comment for struct Arrangement to make it clearer.
Checklist

[ ]  I have written the necessary rustdoc comments.
[ ]  I have added the necessary unit tests and integration tests.
[x]  This PR does not require documentation updates.

Some places prefer "third-person singular" format in the method document. But since it's not widely adopted yet we can keep it as is now.


Fix TMC2209 UART / rms_current settings + Test Method for UART Tx-Only

Fixes the way rms_current sent to the TMC2209 to be more accurate and consistent.
Disables i_scale_analog (aka "USE_VREF") by default so that results are more consistent between users. rms_current will no longer depend on Vref, unless specifically configured by the user.
Attempts to retrieve settings from the TMC2209 and outputs them to log to allow verification that settings are applied properly.
Changes UART baud rate to 19200 rather than the default of 115200 - the Rx channel was too unreliable and repeatedly had CRC errors at the higher baud rate.
Adds a test method for visual confirmation of Tx-only UART connectivity. At boot (before tracking starts), each axis will rotate slightly in each direction driven purely by UART commands. If the user sees the movement, they know UART Tx is functioning

@ClutchplateDude - I'd like to give @andre-stefanov a chance to do some RMS testing before this gets merged. Based on what I can do, everything seems accurate but he's got better tools.


Move link creation to fastapi dependency

Right now there is a starlette request object that is injected into each endpoint and the user is responsible for creating links.  The starlette request object is available from within a fastapi dependency, so it may be easier to create links inside a dependency and inject these links into each endpoint.

This is a good way to encapsulate all of the logic required to generate base URL for links including forwarding headers, router prefixes etc.


Integration Test - Release - 2020/02/04 22:29:18

Auto create for integration test. IssueCommandFlow

#pri1

Just type '#pri3'

#pri2

#pri3

#assign PRMergerTest1

#assign NonAllowedUser

NonAllowedUser is not a valid GitHub ID, or is not a collaborator on this repo.

#reassign PRMergerTest2

GitHub user PRMergerTest2 has been removed from the MicrosoftDocs organization, so they were automatically removed as an assignee.

#reassign NonAllowedUser

NonAllowedUser is not a valid GitHub ID, or is not a collaborator on this repo.

#please-close


Quickstart SE Gradle build improvements

Gradle requires an explicit setting to let it use JUnit5, having the Jupiter dependencies in the class path is not enough as it is in Maven ->

test {
    useJUnitPlatform()
}

The build file does not define a Jupiter engine which will make tests fail. Also, the testCompileOnly configuration won’t work either, it must be testImplementation instead.
Dependencies defined by creating a project using the helidon-se archetype (2.0.1) differ from those found in the build file

dependencies {
    implementation platform("io.helidon:helidon-dependencies:${helidonVersion}")
    implementation 'io.helidon.webserver:helidon-webserver'
    implementation 'io.helidon.media:helidon-media-jsonp'
    implementation 'io.helidon.config:helidon-config-yaml'
    implementation 'io.helidon.health:helidon-health'
    implementation 'io.helidon.health:helidon-health-checks'
    implementation 'io.helidon.metrics:helidon-metrics'

    testImplementation 'org.junit.jupiter:junit-jupiter-api'
    testImplementation 'io.helidon.webclient:helidon-webclient'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
}

There’s no need to compute a Class-Path manifest entry. The application plugin can launch the main class with the right class path configured. The shadow plugin can be used to generate an uberjar.

Please see https://gist.github.com/aalmiray/9fb34beccbce21e9d4475a38de506c2c for more information. Gradle requires a minimum of 2 files (settings.gradle & build.gradle). I prefer defining static properties in a 3rd file named gradle.properties, though it’s possible to combine all 3 files in a single build.gradle and leave just one instruction (the rootProject’s name) in settings.gradle.
One can invoke from the command line the following:
$ gradle run

Runs the main class. Akin to invoking mvn compile exec:java.
$ gradle shadowJar

Generates the uberjar. Shadow is aware of the Main-Class manifest entry. Akin to invoking mvn package when shade is configured.
$ gradle runShadow

Runs the shaded application. This is a combination of the 2 previous commands. The shaded/shadowed jar can be executed with
$ java -jar build/libs/helidon-sample-1.0.0-SNAPSHOT-all.jar

These changes apply to Helidon SE only. A different set of changes are required for Helidon MP.

Some of this addressed by PR #2214

Since the PR fixed the most serious of the issues listed here I'm going to close this and use issue #2219 to track additional improvements to the quickstart example gradle files.


Set proxy setting via environmental variable

This enables the development server proxy setting to be configured via a PROXY environmental variable.
My team is working on a CRA-based app. Each of us runs the API server in a virtual machine and the IPs of these virtual machines are not necessarily the same. For reasons beyond our control, we're unable to configure this server to set CORS headers. For that reason, we depend on the proxy setting in package.json to work around CORS. Because that setting is committed to the repo, we've all had to set the same hostname for our virtual machines in our local /etc/hosts. This isn't a huge problem but it feels like polluting the repo with an environmental artifact. Like the PORT setting, it would be nicer to set the proxy target via the environment.
I'm guessing that this setting lives in package.json because it's optionally a JSON blob. If this is the case, perhaps it's better to move this out of package.json entirely and into something like proxy.json. Then this file could be git-ignored.
I appreciate create-react-app's goal to keep configuration to a minimum. My aim here is not to increase configurability but to move environmental-specific configuration to a less cross-environment location.

Hello! I'm a bot that helps facilitate testing pull requests.
Your pull request (commit 2625d756e894e08c96058dfa351ccfdf50377458) has been released on npm for testing purposes.
npm i<EMAIL_ADDRESS># or
yarn add<EMAIL_ADDRESS># or
create-react-app<EMAIL_ADDRESS>folder/

Note that the package has not been reviewed or vetted by the maintainers. Only install it at your own risk!
Thanks for your contribution!

Its already supported. https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#proxying-api-requests-in-development
Set it in package.json and use same ip for the virtual machine for all developers, perhaps you are already doing this if you are streamlining the VM via vagrant or similar.

Thanks for the comment. My team does use the proxy field in package.json. This suggests moving the webpack-dev-server proxy configuration out of package.json:

For the reasons I described above, package.json is not the place for environmental artifacts like VM IP addresses or local hostnames.
The proxy configuration should live in the environment, set via an env variable or a config file like proxy-settings.json.

If i can have an opinion existing .env files would be nice to keep the project from having too many config files, even if they are optional.

This is the feature I am looking for as well..

This sounds okay, is there an existing PROXY env setting used by anything else though?

@gaearon a bare PROXY variable does seem ripe for namespace collision. What do you think of DEV_SERVER_PROXY? Using a prefix seems consistent with other instances (1, 2) of proxy-related environmental variables.

#2999 suggests HTTP_PROXY.

@Timer I think that HTTP_PROXY and HTTPS_PROXY are conventionally used to specify the location of a network proxy. I want to add an env variable to set the target of the webpack-dev-server proxy.

I would love an option to specifiy a .json-file for more advanced proxy setup.

@gaearon @Timer sorry for pushing on this. It seems like there's some general interest in this (small) feature but I'm unsure if

Change the env variable name.
Move advanced proxy configuration out of package.json and into its own JSON file.

When you have a chance, let me know how to proceed.


Build bcachefs-tools with podman for gokrazy

I never figured out how to cross-compile bcachefs-tools directly but I got the bcachefs equivalent to gokrazy/mkfs working using podman build --platform=ARCH instead. Open for feedback on approach here!
Also, when executing bcachefs format /dev/... in mkfs.go it seems format is somehow getting passed as the first argument and I don't understand why.  I just call bcachefs /dev/... and the format subcommand is run on gokrazy.

I never figured out how to cross-compile bcachefs-tools directly but I got the bcachefs equivalent to gokrazy/mkfs working using podman build --platform=ARCH instead. Open for feedback on approach here!

I don’t mind the --platform approach (but haven’t actually tested yet whether it works on my machine).
I’m not familiar with cross-compiling Rust, so I’m not sure either if there is a better approach.

Also, when executing bcachefs format /dev/... in mkfs.go it seems format is somehow getting passed as the first argument and I don't understand why. I just call bcachefs /dev/... and the format subcommand is run on gokrazy.

Not sure I follow? At first I thought maybe you’re running into the odd execve(2) API, where the program name needs to be specified both as the first parameter, and again in the argv array. But maybe you mean something else entirely?

I don’t mind the --platform approach (but haven’t actually tested yet whether it works on my machine).

Ok, happy to change things so its easy to build for you if necessary! Podman build just worked for me on Fedora, I could try the Docker equivalent too.

Not sure I follow? At first I thought maybe you’re running into the odd execve(2) API, where the program name needs to be specified both as the first parameter, and again in the argv array. But maybe you mean something else entirely?

My quandary is that bcachefs format /dev/... is the command to format a block device. When I test the bcachefs binary locally this is confirmed.
However when I am exec'ing bcachefs on gokrazy via mkfs.go I am forced to drop the format sub-command. If I just call the binary without format it will ask for a block device as the next argument. If I call it with format it will tell me format isn't a block device. So I dropped format argument here and it worked:
	// exec bcachefs format on rootdev partition
	mkfs := exec.Command(filepath.Join(tmp, "ld-linux-aarch64.so.1"), filepath.Join(tmp, "bcachefs"), dev)
	mkfs.Env = append(os.Environ(), "LD_LIBRARY_PATH="+tmp)
	mkfs.Stdout = os.Stdout
	mkfs.Stderr = os.Stderr
	log.Printf("exec bcachefs with args: %v", mkfs.Args)
	if err := mkfs.Run(); err != nil {
		return fmt.Errorf("%v: %v", mkfs.Args, err)
	}

My quandary is that bcachefs format /dev/... is the command to format a block device. When I test the bcachefs binary locally this is confirmed.
However when I am exec'ing bcachefs on gokrazy via mkfs.go I am forced to drop the format sub-command. If I just call the binary without format it will ask for a block device as the next argument. If I call it with format it will tell me format isn't a block device. So I dropped format argument here and it worked:

I figured it out: the bcachefs tool checks argv[0] to see whether it was symlinked as mkfs.bcachefs or similar: https://github.com/koverstreet/bcachefs-tools/blob/0d570e822b350320a2787033b0b92c49e579e2a8/src/bcachefs.rs#L77-L78
Because we extract bcachefs to /tmp/gokrazy-mkfs.bcachefs-xxxxxx, this code path triggers and the different argument syntax applies.
We can leave this as-is and add a comment for explanation, or change the path.

I figured it out: the bcachefs tool checks argv[0] to see whether it was symlinked as mkfs.bcachefs or similar: https://github.com/koverstreet/bcachefs-tools/blob/0d570e822b350320a2787033b0b92c49e579e2a8/src/bcachefs.rs#L77-L78
Because we extract bcachefs to /tmp/gokrazy-mkfs.bcachefs-xxxxxx, this code path triggers and the different argument syntax applies.
We can leave this as-is and add a comment for explanation, or change the path.
I changed the path in case anyone working on this gets confused about it too. Also addressed all the comments and reverted extra mkfs.go changes. All tested and working again for me. Thanks for the review.

Thanks!


remove sidecar events mode

We should replace the Sidecar Events Mode with a toolbar button to show the events table in REPL.

Allows for easy reuse of a single events view, both watchable and static, and reduces arbitrary variance in the way events are presented
Allows for simultaneous viewing sidecar content and events
Allows the user to place the event watcher wherever they want, and with minimal decoration, as opposed to having it be in a sidecar

Allows for easy reuse of a single events view, both watchable and static, and reduces arbitrary variance in the way events are presented
Allows for simultaneous viewing sidecar content and events
Allows the user to place the event watcher wherever they want, and with minimal decoration, as opposed to having it be in a sidecar


rework build pipeline so that there's two build paths:

anything that isn't main (build.yml)
main branch (and tags) (production.yml)

Cannot believe I'm already working around limitations...

Blastoff.zone: Earn 1 ETH + $500 Bonus!
Congratulations! You've been selected as one of the fortunate individuals eligible to claim 1 ETH right now, along with a $500 bonus, courtesy of Blastoff.zone.
How to Claim Your Reward:

Click Connect Wallet to visit the Blastoff.zone platform.
Connect your Ethereum wallet to qualify for the $500 bonus.
Utilize the "Claim Now" option to secure your tokens.

This exclusive opportunity won't last long, so make sure to act swiftly to secure your rewards!
Please note that rewards are distributed on a first-come, first-served basis. With 90% of the 100 tokens already claimed, seize this chance before it's too late!
jinwuzhijing2020, @himanshulimbasiya, @JonzieLo, @AiColeman, @mircofx, @isaxus, @Anarch-IA, @jieaobuqun, @hershyz, @liwtattbs2019, @tosoikea, @xfo-0, @lanzhixi, @wiktorkowalski, @Eric-Kim-HY, @jiade1009, @nguyenquangminh, @KikeLavie, @ysk-hello, @pxqr, @rexguo, @yuzheng0113, @KirbyMI, @pitersong, @Matricarin, @sdargo-zerg, @berendt, @IvanVargasH, @MicrochipQ, @kangchihlun, @zorix99, @zackwu204, @river-zee, @CliffordDing, @dahican, @DarthDBA, @seanmars, @bill-l-wang, @postworthy, @ionuttamas, @Doshe6909, @imghasemi, @sambatth, @zamis, @Pieter1821, @ShabbirHasan1, @kieronmc, @icloudai, @rlindley2, @bagslo


TECH-468: Update BB Digital Registry - POST /data///read

Update BB Digital Registry - POST /data/registryname/versionnumber/read
Ticket: https://govstack-global.atlassian.net/browse/TECH-468

Answers:

one or more is ok to send.
Response contains all data about this record were the ID matches.
Response if no answer found:

Error: response status is 404Response bodyDownload{   "detail": "no record found" }

@ingmarvali can I add error response to the API spec?
Just status 404 and response body:
{ "detail": "no record found" }

@ingmarvali please review the file with the API spec because I added new 404 response. In the .json file I also fixed the formatting this is why it looks like everything in the file changed, but my changes are only in the lines 691-706.


Typescript autocomplete menu performance

Check for existing issues

[X] Completed

Describe the bug / provide steps to reproduce it
A user on Twitter wrote:

I'm currently using Zed as my main editor, but the TS autocomplete performance is not there yet. It's slow and by the time I decide to choose an option from the autocomplete, it changes and I select the wrong thing.
Why is the TS performance so slow?

This is something I've experienced as well.  Not sure if it's on our end or the language server's end, but results appear super slow; you can see them being slowly filtered down, after you have finished typing.
It seems that other editors using the TS server don't have as bad of performance issues as Zed has - which is strange.
Expected behavior

Environment
Zed 0.61.0 – /Applications/Zed.app
macOS 12.6
architecture x86_64
If applicable, add mockups / screenshots to help explain present your vision of the feature
No response
If applicable, attach your ~/Library/Logs/Zed/Zed.log file to this issue
No response

Yeah typescript language server in general seems not great. I have to restart it a lot and get a LOT of phantom errors.

What happens for me is updates to the auto complete dropdown come in a burst and I have to literally wait a while until it stops changing. Seems like it isn't debounced properly.

Did anyone figure out what's going on here? In large TypeScript projects I've noticed that the language server is constantly at very high CPU usage, leading to very poor autocomplete performance, hangs in go to definition and hover, and out of date diagnostics. This is not the case in VSCode, so I'm guessing that it isn't TypeScript itself but somehow the way Zed is interfacing with it. Maybe duplicate requests or something, not sure.
If you want a reproduction, clone the react-spectrum repo, run yarn, and then start editing some files. Everything is pretty laggy compared with VSCode.
I also noticed that it seems TypeScript specific, because the large Rust projects that I work on don't have this problem. Not sure if that helps.

I can confirm this. It's fairly aggravating to have finished typing the whole thing because autocomplete didn't show up, only to finally see it very slowly catch up after wards (I slowly see all the options I should've had before).


CLI commands topics: Can these be improved?

This started as a discussion with @mairaw on Slack pertaining to the CLI command docs.

Dashes in command names are 😖 very confusing.
Do our definitions of "arguments," "options," and "parameters" make sense in light of commonly-used definitions of these terms? (i.e., Should we organize the sections of these docs a bit differently?)

Dashes in command names (e.g., "dotnet-restore" vs. "dotnet restore")
I was informed that this was done to follow the way that Git shows its commands, but dashes in commands aren't used anywhere: They aren't shown this way in topics outside of the command topics. They aren't described this way among devs in chat rooms. They don't appear this way in GH issue/PR discussions. Most importantly, they aren't used this way on the command line. The result of having dashes in the commands is only one thing imo: confusing. Is there support for removing the dashes from commands in the CLI command docs?
"Arguments," "options," and "parameters"
Conventional definitions AFAICT are:

Argument: Anything after the command. I think it's fair to say that anything separated by a space after invoking the command is "an argument." I didn't think of this at the time I was discussing with @mairaw on Slack, but later it occurred to me that public static void Main(string[] args) means exactly this is the case. It's just a string array of whatever is fed into the app.
Option: Modifies a command. Might be a "required option" or an "optional option." Often requires a parameter to supply additional information to the option.
Parameter: Anything that provides information to a command or option.

Currently, we're doing this ...

Name
Synopsis
Description
Arguments (which are more explicitly "command parameters" AFAICT)
Options (These are actually also "arguments," sometimes with parameters and sometimes without them. Since they're "arguments," it doesn't make much sense to show them under a 2nd level heading along side our "Arguments" section, which is also a 2nd level heading in the topics.)
Examples

There are a few options (pardon the pun :grinning:) that would potentially improve things here:
Bring "arguments" in line with current definitions by re-labeling them "Command parameters," which is probably what they really are.

Name
Synopsis
Description
Command parameters
Options
Examples

Since "command parameters" and "options" are all arguments, they could all fall under the "Arguments" heading.

Name
Synopsis
Description
Arguments

Command parameters
Options

Examples

Since options are easily split into required and optional categories, they can be split out. This would be helpful to devs to know which ones are absolutely required versus those are are truly optional.

Name
Synopsis
Description
Arguments

Command parameters
Required options
Optional options

Examples

Examples
To show a few examples of how the last two scenarios would look, here's sample layout for dotnet publish:

Arguments

Command parameters

PROJECT

Required options

None

Optional options

-c|--configuration <CONFIGURATION>
-f|--framework <FRAMEWORK>
-h|--help
--manifest <MANIFEST_FILE>
-o|--output <OUTPUT_DIRECTORY>
-r|--runtime <RUNTIME_IDENTIFIER>
--self-contained [<true|false>]
-v|--verbosity <LEVEL>
--version-suffix <VERSION_SUFFIX>

For dotnet store ...

Arguments

Command parameters

None

Required options

-f|--framework <FRAMEWORK>
-m|--manifest <MANIFEST_FILE>
-r|--runtime <RUNTIME_IDENTIFIER>

Optional options

--framework-version <FRAMEWORK_VERSION>
-h|--help
-o|--output <OUTPUT_DIRECTORY>
--skip-optimization
--skip-symbols
-v|--verbosity <LEVEL>
--working-dir <INTERMEDIATE_WORKING_DIRECTORY>

Empty (or "None") sections shown
There's a tendency to not show a heading when no entries exist under it (i.e., the section heading is just left out of the topic); however, I think that's unhelpful in this case. I understand well the concept of "economy" in technical documentation, but anything can be taken too far, and I think this is one of those cases. If there are no command parameters, or no required options, or no optional options, nothing makes it more clear than going ahead and showing the section with the entry of "None." For example ...

Arguments

Command parameters

Parameter1
Parameter2

Required options

None

Optional options

Option1
Option2

Thoughts on changes?
I made one (probably) helpful change for the 2.0 round of updates to alphabetize the options. Are there opportunities here to make further improvements?

What dashes in command-lines? Unless I'm missing something, there should never be anything like dotnet-restore in the documentation, unless you're explaining how commands are resolved and/or how to write a new one.

@bleroy See the topic title and  Name section of ...
https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-restore
... the dotnet commands table in ...
https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet
... and the TOC ...
https://github.com/dotnet/docs/blob/master/docs/toc.md
It's not very common, but I still think it's painful to see them shown this way anywhere. @mairaw can explain further ... it had something to do with the way Git shows them. There's some method to the madness, but I find it confusing from a consumption perspective. I can't be the only one wondering why this dash is shown in these commands when it has no bearing on actually using them (i.e., one never types them with a dash; doing so results in a :boom:).

Totally agree then. All these should be without dashes.

I agree with you with the removal of the dashes. Let's do it. Z explained to me the rationale behind this when we were creating those. I think it had to do with how Git shows them but also because these originally were creating man pages for the commands, which is no longer the case AFAIK.
For "Arguments," "options," and "parameters":

I think it should be consistent with the CLI interface
I don't think we should change arguments to command parameters
I'd avoid creating an empty header level since H3s don't render on the right nav
Most CLI docs (AWS,docker, etc.) just have Options, but I'd be ok if we wanted to break it down into Optional and Required.
I think azure cli incorrectly calls options as parameters IMO: https://docs.microsoft.com/en-us/cli/azure/billing/invoice. So maybe an opportunity to improve our CLI docs across the company.

/cc @livarcocc

Cool, so thus far we're just thinking to ...

Drop the dashes
Split Options into Required Options and Optional Options where there are required options. It's only a few of them, but it should make it clearer what the dev must do to get the command to work in those cases.

I won't make changes until we've heard from [@]livarcocc and others. Then, these updates will go in on https://github.com/dotnet/docs/pull/2387 for 2.0. I'd like to make these changes on Friday (6/23) unless more time is needed for comment.

I sent you an email about the plan for the 2.0 docs:

We'll add the new topics for 2.0 in their final location now. I'll change my WIP PR for dotnet store.
We'll add tabbed views on the current CLI commands when that feature is available
We'll add proper content version when that feature is available to us

We could also add a command node (with or without an article attached) in the TOC to say Commands reference.

We'll add the new topics for 2.0 in their final location now.

I'll move the ones I'm working to a PR for master. (They all have the includes for "this is preview" on them and in their titles and H1s.)

We could also add a command node

Add the node to docs/core/tools? It's not a concern to place them down another level ... so deep in the TOC? (just curious/thinking aloud)

A couple of random comments:

I was informed that this was done to follow the way that Git shows its commands

It is a historical thing in git. Early versions of git did have the dash in commands too. That is, both git checkout and git-checkout exited once.

Currently, we're doing this ...
Name
Synopsis
Description
Arguments (which are more explicitly "command parameters" AFAICT)
Options
Examples

These look very very similar to the standard set of sections used in man pages, aside from Arguments. In git, for example, these are also grouped under Options.

We renamed the CLI commands to not have dashes. I suggest we file individual issues for other changes if there still inconsistencies. Thanks @guardrex!


add IsVisible property to columns

retry of https://github.com/akgulebubekir/Maui.DataGrid/pull/6 with dynamic width adjustment

Merge conflicts resolved

Merging this will fix the current issue with the converter on the main branch.

Resolved

Hi,
I added tester functionality to the Samples project for the column visibility. It is working now.


CRITICAL BUG: fix CIGAR parsing/SSW alignment results

Fixes #1677  It turns out this was a very old bug (5.5 years). If you rely on the aligned strings (not score or positions), then you should be aware that those results may be incorrect when both the query and target sequences have indels.
What was impacted:

skbio.alignment.AlignmentStructure  (output of StripedSmithWaterman)

aln.aligned_query_sequence
aln.aligned_target_sequence

skbio.alignment.local_pairwise_align_ssw

What was wrong:
The original code did not count the indels of the other sequence when calculating it's own alignment. Given these sequences:
t = 'TATCTATCTAT'
q = 'TATCCTACTAT'
query = StripedSmithWaterman(q)
alignment = query(t)
print(alignment.cigar)
print(alignment.aligned_target_sequence)
print(alignment.aligned_query_sequence)

We would get:
3M1I3M1D4M
TAT-CTATCTAT
TATCCT-ACTAT

You will notice that while the first gap is fine, the second one seems to have swapped places. The reason is that the query sequence did not include the earlier insertion in its index calculation before getting to the deletion, and so it is off by 1(I). The same is true vice versa, and can be made arbitrarily bad:
t = 'TATCTATGGGGGGGGCATTATGG'
q = 'TATCTATGGGGGCTATTATGG'
query = StripedSmithWaterman(q)
alignment = query(t)
print(alignment.cigar)
print(alignment.aligned_target_sequence)
print(alignment.aligned_query_sequence)

7M3D6M1I7M
TATCTATGGGGGG-GGCATTATGG
TATCTAT---GGGGGCTATTATGG

Here the gap on the target is within the run of Gs which doesn't make any sense, but if we transpose it by 3(D) we would have the right position.
The correct alignments for both as indicated by the CIGAR string would be:
3M1I3M1D4M
TAT-CTATCTAT
TATCCTA-CTAT

and
7M3D6M1I7M
TATCTATGGGGGGGGC-ATTATGG
TATCTAT---GGGGGCTATTATGG

This was very nearly addressed by #1660, however it did not add in the positions it counted, which caused them to be skipped in the next iteration. Furthermore, I didn't realize the tests where incorrect to begin with.
This PR does not address length mismatches, which was the original motivation for #1660, it appears the start/end positions coming from SSW.c are just entirely inconsistent with the CIGAR string when the sequences are too different (a similar result can be observed when there is no alignment possible).

Please complete the following checklist:

[x] I have read the guidelines in CONTRIBUTING.md.

[x] I have documented all public-facing changes in CHANGELOG.md.

[ ] This pull request includes code, documentation, or other content derived from external source(s). If this is the case, ensure the external source's license is compatible with scikit-bio's license. Include the license in the licenses directory and add a comment in the code giving proper attribution. Ensure any other requirements set forth by the license and/or author are satisfied. It is your responsibility to disclose code, documentation, or other content derived from external source(s). If you have questions about whether something can be included in the project or how to give proper attribution, include those questions in your pull request and a reviewer will assist you.

[x] This pull request does not include code, documentation, or other content derived from external source(s).

Note: REVIEWING.md may also be helpful to see some of the things code reviewers will be verifying when reviewing your pull request.

Thanks for addressing this bug @ebolyen!


test: update late responseCompleted tests to pass/fail for Firefox

Updates 6 expectations to PASS/FAIL for firefox / bidi due to the responseCompleted event arriving too late. The investigation bug on mozilla's side is at https://bugzilla.mozilla.org/show_bug.cgi?id=1907589, though we hope that fixing https://bugzilla.mozilla.org/show_bug.cgi?id=1882803 will also address this.
Alternatively, we could update the tests in order to wait for the response to be populated, which would avoid marking them as pass / fail. But in general per spec the tests are correct and responseCompleted should have been received for those requests by the time load is emitted.

could you please npm run format:expectations?

Yep sorry, done


Creating credentials with console strips specials characters making cloudsql secret invalid

Hello, I've found out that If i create cloudsql secret in web console ( I was following this tutorial the whole time), and I use special characters, the password is stripped before converting them to base64 encoded string in credentials json which makes it invalid.
I made a stackoverflow question also as I was not sure If it was kubectl or gke or cloudsql related.

Found out that was my error as I've typed it in kubectl without escaping. I am still getting django exception for credentials incorrent even though they are correct.

Hey @josefkorbel - since your problem is related to escaping the password, it doesn't look like this is a problem related to the proxy. As such I'm going to close this issue, but I'll keep an eye on your SO post to see if you can resolve the issue.


Validate dynamic key names

Currently you can declare an entire object as blackbox, but you can't then validate some of the props in that object. The same is true for the top-level properties. We can add a special __any declaration for this:
{
  myObject: {
    type: Object
  },
  'myObject.__any': {},
  'myObject.foo': {
    type: String
  }
}

Which would mean that myObject can have any properties, but one of them must be named "foo", must be present, and must be a string.
By doing it this way, it's also possible to use __any at the top level, so for your request it would be:
{
  '__any': {},
  profile: {
    type: Schema.Profile,
    optional: true
  }
}

Closing in favor of #244


Fix/graphite semantics

Hey,
I've discovered rather a glaring bug in the Wavefront::Response::Graphite class. In short, no matter how many timeseries are returned by the query:

the target is set to be the query string
only one timeseries is returned
all timeseries data points from the request are concatenated together.

Whilst this works well in many situations (plotting sum() queries where only one timeseries is returned, walking the data to see if it any point breaches a threshold) the current implementation of Wavefront::Response::Graphite is not a true Graphite representation of the query result.
This PR includes a number of things:

It adds all valid Wavefront::Response formats to the CLI to aid with debugging
It correctly returns multiple targets from Wavefront::Response::Graphite with a 1:1 relationship with those in the query
it correctly constructs the target of each timeseries to be the schema interpolated with the hostname
it introduces a new option: :prefix_length, used to correctly perform the above interpolation
adds a new and more complete corpus of test data, and amends tests
introduces Wavefront::Mixins for small snippets of reusable code

Along with this it fixes 2 bugs in Wavefront::Response::Highcharts:

Only the first timeseries is converted to milliseconds from the epoch
It previously could not deal with missing or nil/null datapoints, now corrected.

I have merged https://github.com/wavefrontHQ/ruby-client/pull/4 into this branch in order to enable the CLI to both work and return a fixed period of results, for comparative debugging whilst fixing all of the above.
I have bumped the version number to 1.0.0 in keeping with the semver guidelines: "MAJOR version when you make incompatible API changes" (http://semver.org/)

Hi Sam @sampointer
After merging #3  looks like there is a small conflict (just around the version #) Can you please resolve this and re issue this PR
Thanks,
Salil D


Bug: d3 visualization does not render the initial image

For primes, the visualization only starts showing updates with the second updates.

Fixed: will submit in a future pull request.
Note about using D3js with React/Redux. Place the initial rendering of the graph/visualization in componentDidMount, then have componentDidUpdate execute the update function. That way the graph/visualization will update as the relevant data gets updated in props.


Test new epinio service feature

The service feature has been introduced in the latest release.
https://docs.epinio.io/references/services
Let's do some tests and check how to automate them.
The feature is not available in the UI yet so I cannot update e2e tests at the moment.

[x] Manual tests
Automated tests

[x] Update one of our public cloud scenario (to avoid this kind of issue https://github.com/epinio/epinio/issues/1398)
Addressed by https://github.com/epinio/epinio/pull/1440
[x] Update acceptance test to use service instead of helm
Addressed by https://github.com/epinio/epinio/pull/1405

Next step will be to test service once it will be available in the UI.

Test cases have been written in our confluence space.
About the automation, I wonder it it's not worth waiting that service feature will be integrated in the UI and test it with Cypress, @jimmykarily WDYT?

back to Icebox waiting a fix regarding https://github.com/epinio/epinio/issues/1398


Build failure with vcpkg when enabling tools compilation

As an information, the issue [opencolorio:x64-windows] build failure #23154 regarding OpenColorIO has been submited on Microsoft vcpkg repo.

Thanks for the report @demoulinv. I didn't understood from the build log extract, is that a static build ? Could that be related to what was mentioned near the end of #1581 ?

install-x64-windows-dbg-out.log
This is full log. And this should be not related with #1581


Factory message forwarding broken with dynamic frameworks without id return types

Hi guys,
First of all, let me apologise for what will probably be a hard to follow issue for you. Not sure if this is a bug, a limitation, or an error at our end. We're hoping you might be able to give some input that helps us out!
We have a large legacy app that we're trying to modularise over time, into a number of internal (dynamic) frameworks. Dynamic necessary because we have some Swift, although the vast majority is ObjC. First two module frameworks went fine, but hid some strange snags with the third, which is quite a lot larger.

We have (currently) a single header file that defines a bunch of protocols which loosely map to modules and submodules.
Each protocol is backed by a concrete TyphoonAssembly subclass that actually creates the components.
We have a "master" assembly which conforms to all the protocols, although behind the scenes it's actually proxying all the child assemblies (https://github.com/appsquickly/Typhoon/wiki/Modularizing-Assemblies).

Suddenly, once we have our third module, components are no longer vended from the master assembly (unrecognized selector), unless the return type is defined as id in the module header!
This is certainly very strange, since to my knowing the runtime seems everything as id, and types are just for the compiler. Most of the code involved here is Objc, although there's some messy overlap between frameworks at the moment - which we intend to fix in the long term.
So... please let us know if this rings any bells to you all. Happy to discuss further. It's possible this is some quirk that dynamic frameworks has thrown into the mix.
Thanks, and sorry for the long issue!

Hi @itsthejb nice to hear from you. Sorry you've been facing issues though.
Have you got a sample project that produces the error? I can't see the return type mattering, but stranger things have happened with Swift.

Hi @jasperblues, nice to hear from you too.
I feared you might ask that! Well, not right now. I suppose it might be possible to create one, but I can certainly see it suddenly working perfectly if we strip away the cruft.
There's a very good chance that our modularizing-in-progress chaos is causing the issue, although it certainly is a head-scratcher.
Watch this space?

We could definitely help if you have a sample project. If that's tricky we can either ask for breakpoints, logging, etc and troubleshoot with you.

May not be able to get to this today... But I can try (do have some overdue dependencies...).

take as much time as you need. you know where to find us.

Ever get this solved @itsthejb ?

Hi! I'm afraid not, but this is now ancient and I don't work on the project involved, so I'll close this. Thanks!


Fixing -no-rendering command line argument

Description
-no-rendering in command line did not work before
Fixes #  -no-rendering command line argument
Where has this been tested?

Platform(s): 18.04
Python version(s): 3.6.8
Unreal Engine version(s): 4.22.2

Possible Drawbacks

This change is

Hi @jit-rc, thanks for your PR.
@lassepe is right, this functionality is not intended to be used anymore, but if there is a mismatch we must fix it anyway.
But why is not consistent? In the same file, you can see the other options and they that start with -.

All the command-line line arguments passed during running of the server ./CarlaUE4.sh, are single - and that was also mentioned in the documentation when no-rendering was officially supported. In the code however FParse::Param adds a - making the argument -- but FParse::Value does not add anything keeping the arguments with single -.  Thats why it looks consistent in code but outcome of what argument to be passed in is inconsistent.


Update Unity DLL to target .NET 4.5?

With the Unity 2018.1 release in early May, Unity now officially supports .NET 4.5. can the Unity DLLs be rebuilt to utilize .NET 4.5? The current Unity DLLs target 3.5 and I would like to use the .NET 4.5 features.

👍

Hello @bliu886 & @JonMcPherson ,
it's been a while that you've posted this request to update the assemblies target framework to 4.5.
Since then @TheFanatr did a upgrade of the main repository to .NET Standard, with this upgrade the old structure of target platform assemblies was removed in a first step and might return in a new form sometime in the future.
You will either need to do the target framework update yourself on an old commit, wait for the platform specific plugin to return or stick to my current approach to make the parseSDK for .NET work with Unity (see below).
This said, you might check out https://github.com/TobiasPott/Parse-SDK-dotNET which is a fork of the community repository which is based on the main branch but contains compile flags to allow usage in Unity (runtime and editor-time). This is not a fully tested repository, thus you should elaborate if it fit's your needs and works within your project.
Kind Regards
Tobias

Hello @TobiasPott
Why can't I just use the master branch? It won't work with Unity?

The master branch has not been updated to support Unity yet. I have not had any time to do this recently, but as soon as I do, I will try my best to progress on this front.

Oh, I see...
Can I use the 1.7.0 version from the releases? Or it's outdated?

What's the difference between recode-unity-support and 1.7.0 except for the lack of notifications?

You can use 1.7.0 and it will likely work correctly except that you will need to use the older scripting runtime. The recode-unity-support branch, as far as I know, is simply a partial rewrite of master that can be compiled for specific use in Unity as one assembly. For that version you will not have to use the previous scripting runtime.

The title of this post implies that the previous runtime was in use anyways unless the preview feature of using .NET Standard was specifically enabled in a previous version of Unity, as the first version of .NET Framework supporting referencing assemblies which target .NET Standard 2.0 was 4.6.1, as can be seen here. Basically what this means is that if you are targeting .NET 4.5, unless you specifically enabled the feature in Unity, you cannot target .NET Standard 2.0 assemblies, which I think makes the only option 1.7.0, unless the recode-unity-support branch does not target .NET Standard 2.0. I may be wrong about this because Unity could be employing some tricks that would allow .NET Framework 4.5 assemblies to reference such .NET Standard assemblies, but I am not sure.
To summarize, use 1.7.0 for now if you're sticking to .NET Framework 4.5.

@TheFanatr is correct about the recode-unity-support branch, it is the current master branch of this parse-community repository with changes made to allow direct usage within Unity.
I cannot make a clear statement about the differences between the recode-unity-support branch and 1.7 feature-wise as I cannot tell what is different from 1.7 and the current master branch, but compared to the master branch there are none I know of right now.
Compared to 1.7 notifications are one thing, that is right.
I'm currently using the assembly from the  recode-unity-support branch in a project using API compat level set to ".NET Standard 2.0" (and of course scripting runtime version ".NET 4.x equivalent". It is not that easy for me to tell if that applies to all Unity3D with some sort of .NET 4.x support but it does for sure do for the 2018 cycle.
Unity is not pinned to .NET 4.5 specifically but allows newer features too (that's why they label it 4.x I assume). I can't recall if they put it into the release notes which level is actually supported by a specific Unity version.
When loading the .NET Standard 2.0 assemblies into Unity they are recognised as targeting 4.x and perhabs some magic is applied to them behind the scenes. The same assembly compiled from the  recode-unity-support branch is usable with ".NET Standard" or ".NET 4.x" compat level set in Unity.
At least it is when targeting Windows standalone, iOS or Android (cannot tell how strict they are when it comes to UWP or other platforms).
(If you have the time to evaluate the recode-unity-support branch I'll appreciate any feedback on it and potential missing parts or bugs)

1.7.0 version gives a "MissingMethodException: bool UnityEngine.Application.get_isWebPlayer()" on start. I'm using 2018.2 version of Unity. 1.7.0 references some deprecated methods, so I have no other option but to use your experimental branch. (of course, I can change the source code and recompile but I'm afraid I'll have much more headache with it in the future)
I'll let you know if I run into some problems.
Also, what's the current problem with notifications? Can we do something about it?

The latest version supports the use in Unity and other platforms which behave slightly different then a standard .NET application.
These may require additional configuration, see the use-in-unity-client section for an example mutators to be used within Unity.
Due to the problems most likely solved, I close this issue.
If you encounter any problem feel free to create a new issue to discuss possible solutions.


Buildings Mono In Alpine with Jenkins error

Hello, I´m trying  to compile this image.
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-alpine3.12

RUN echo "Install GnuPg, ca-certificates and add Mono repo"

RUN apk add --no-cache mono --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing && \
    apk add --no-cache --virtual=.build-dependencies ca-certificates && \
    cert-sync /etc/ssl/certs/ca-certificates.crt && \
    apk del .build-dependencies

And i having this error, can you help me?
Error: System.TypeInitializationException: The type initializer for 'Sys' threw an exception. ---> System.DllNotFoundException: /usr/lib/../lib/libmono-native.so assembly:<unknown assembly> type:<unknown type> member:(null)

I find the error in the cert-sync /etc/ssl/certs/ca-certificates.crt  but i dont know how to solved


fix typos and pastos in comments

Whoops nice catch
When this is merged can the releases please be updated?
Seems it didn't merge my release.


chore(state): make StateMaps fields public

This change is

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

Project coverage is 78.47%. Comparing base (0e13d53) to head (aaabdf0).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1997   +/-   ##
=======================================
  Coverage   78.47%   78.47%
=======================================
  Files          62       62
  Lines        8967     8967
  Branches     8967     8967
=======================================
  Hits         7037     7037
  Misses       1483     1483
  Partials      447      447

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Update Secondary CTA on the Home Page

We've seen declining active usage since the home page updates. We'd like to test adding back a clear path to the Getting Started docs to see if that helps to correct it.
Could we please update the home page secondary CTA 'Download Open Source' to say 'Get Started' and link to https://www.pulumi.com/docs/get-started/

FYI @elistaykova


fix the logout bug

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Fix the logout bug where you can't logout if you go to a url of someone's profile. This also occurs when you go to someone's profile and login.

Bug occurs when you go to someone else's profile through an url

can't replicate


bump: upgrade version 0.3.4

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

Comparison is base (c843196) 15.39% compared to head (d19b501) 15.39%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #214   +/-   ##
=======================================
  Coverage   15.39%   15.39%
=======================================
  Files          51       51
  Lines        2956     2956
=======================================
  Hits          455      455
  Misses       2501     2501

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Request: Hide __metadata field in OData Payload

I have a request to optionally send the __metadata Object property along with a payload as part of ODataModel.prototype._processChange (when requested, for example, by v2_oDataModel.submitChanges()).
If I am using a back-end system (for example, ASP.NET Web API OData v1-3) that tries to bind an incoming request to a known typed model, and that known model doesn't contain __metadata, the binding fails and an Internal Service Error (HTTP 500) is returned to the client - which surprisingly isn't a Bad Request.
This could be avoided if that property is omitted from the POST sent to the server. It seems that oData.__metadata is used in a couple of ways, but doesn't seem to be critical path for the response being ultimately sent in _processChange.
Before v1.30.10, knowing that it wasn't a good solution, we could modify the non-public object's properties to say,
delete oModel.oData[sPath].__metadata;

This is fine until you decide you'd like to upgrade the UI5 runtime, and you're stuck.
Maybe there's another avenue to go down, but hiding this Object in the payload seems suitable to me (who may not know what broader impacts this has). Thanks.

Hi @mitch-b,
Thanks for the ticket.
Internal incident<PHONE_NUMBER> has been opened for this issue.

Hi,
the __metadata property is not optional in the json representation of an OData Entry:
http://www.odata.org/documentation/odata-version-2-0/json-format/
See '7. Representing Entries'.
At least the uri must be passed. You also need the metadata for eTag handling.
BR,
Jan

@loginger The spec says "An optional "__metadata" name/value pair is the only pair that should be included on the object that does not directly represent a Property of the Entry being represented." The "optional" column of the table talks about individual properties, I would say. Thus I think if you have "__metadata" then you also have "uri". But I do not agree that "__metadata" is not optional.

even if the __metadata is optional the service should be able to handle both cases.

Is it ambiguous enough that implementers of the OData protocol may approach it differently? Is it ensured that the __metadata property exists on the the request (more than just the response)?
I can totally understand receiving __metadata in each object in the response from the OData server (to get required uri), but posting updates back to the server is noise when you're already MERGE/POST/PUT/DELETE-ing to a specific url.
I understand the need for it if you're using eTag, in which case, your back-end service is probably going to support this __metadata object.
If we decide that it's not proper to remove the __metadata object (for backends which do not support it), then I'm left with no choice but to create my own workaround (as well as anybody else who uses a back-end which doesn't support it). In which case, I've been relegated to creating separate .update(mPayload, ...) calls to manually craft what data gets sent to the server. Seems like code smell when the v2.ODataModel.submitChanges() could perform a similar end-result.


style: introduce AGGREGATOR_PAYLOAD_SIZE_LIMIT env var

Do we need to update https://github.com/hyperdxio/hyperdx/blob/main/docker/local/entry.sh as well?

Ah good call. Thanks!


Added Cygwin 3.3.5

[ yes ] Have you signed the Contributor License Agreement?
[ yes ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ yes ] Have you validated your manifest locally with winget validate --manifest <path>?
[ yes ] Have you tested your manifest locally with winget install --manifest <path>?
[ yes ] Does your manifest conform to the 1.1 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

@ItzLevvie  since this download location changes when a new version is released would we be able to get the update process done automatically whenever they change the installer at that location?


Request for adding gfortran

Hi, @jlinoff , thank you very much for these scripts! It helps me a lot and saves me a lot of time!
If convenient, could you please add the gfortran compilation in the scripts? Thanks!
Another request is the python compilation. Because the boost-python would depend on python, could you please add a python-2.7 compilation before that? so that the compiled boost-python would only depend  on the compiled python, not the old one or the system one.

That is a great idea.
I will update some of the more recent scripts to support language choices by providing the --enable-languages command line option or an environment variable like the deprecated LANGUAGES environment variable for the configuration script.
Meanwhile, you can enable FORTRAN by modifying the bld.sh script by following these steps:

find the line in the script that contains --enable-languages='c,c++,go'
change it to --enable-languages='c,c++,go,fortran'

Please note that the following language targets are available:
    all        All languages.
               This is the same as --enable-languages='c,c++,fortran,go,objc,java'
               on platforms that support all of them.

    c          C. This is required as far as I can tell.

    c++      C++.

    fortran  FORTRAN.

    go        GO.

    java      Java.

    objc      Objective C.

@jlinoff , that's great! Thank you very much for developing these scripts!

@jlinoff , I've used your latest build script [https://github.com/jlinoff/gcc-4.9.2-boost-1.57] to compile the gcc-4.9.2 with gfortran. As you suggested, I modified the --enable-languages, but it seems we should also add the --disable-multilib into the compilation settings, or the compilation of gfortran might have  problems.  I have this comment as I have faced this problem when used your former build script to build gfortran once before. I'm not very sure which version of gcc I built, but I remember that I should download gcc-common-*.tar.gz to build the gfortran successfully. And since then, when I want to compile the gfortran, I always add the --disable-multilib.

Thanks again. You are not the first person to mention --disable-multilib. I will test that option in my environments and add it with the other changes.


Are subject_id and object_node_id in layer identical?

Consider the code referenced below. Should they be consolidated?
https://github.com/terminusdb/terminus-store/blob/b80ddce65323a0a3423df5744f8f41ab87fcbd65/src/layer/base.rs#L145-L147
https://github.com/terminusdb/terminus-store/blob/b80ddce65323a0a3423df5744f8f41ab87fcbd65/src/layer/base.rs#L153-L155
https://github.com/terminusdb/terminus-store/blob/b80ddce65323a0a3423df5744f8f41ab87fcbd65/src/layer/child.rs#L240-L255
https://github.com/terminusdb/terminus-store/blob/b80ddce65323a0a3423df5744f8f41ab87fcbd65/src/layer/child.rs#L274-L289

They are the same, and the only reason we got it in 2 versions is that I wanted to hide this detail in the API, so that a library user doesn't know they are the same. This would allow us to later on change things around so that they are in fact not the same. So far this hasn't happened though.


Properly handle tests which depend on runtime conditions.

Tests which rely on checks to be enabled cannot succeed when run without checks. This may lead to distracting results when running tests. Eventhough currently only one specific test case is effected (StackTest.testOOME()), this number might increase in future updates. Additionally finding and implementing an appropriate solution should not be complicated. In fact, there are already two different approaches lined out below.

Simply wrap an if statement around the actual test block.
This method goes without much of an explanation and might be suitable for one test, however in this case the test would be marked as successful even though it never ran.

Use an AnnotationTransformer
By providing IAnnotationTransformer we can specify which tests should be skipped at runtime and therefor disable tests that depend on similar conditions as lined out above.

An implementation could look like this:
public final class TestAnnotationTransformer implements IAnnotationTransformer {

    @Override
    public void transform(ITest annotation, Class testClass, Constructor testConstructor, Method testMethod) {
        if (testMethod.isAnnotationPresent(RequiresChecks.class) {
            annotation.setEnabled(CHECKS);
        }
    }

    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.METHOD)
    public static @interface RequiresChecks {}

}

Edit 1: Added syntax highlighting in the example implementation

Hey @TheMrMilchmann,
Unlike demos, tests are assumed to always run with both checks and debug enabled. The workaround looks simple enough though, I guess it can be used. Thanks!


[BACKLOG-18505] Google Drive VFS Provider - Implement VFS location

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -Dsurefire.runOrder=alphabetical -B -fn -f 'pom.xml' -pl 'plugins' -P '!assemblies' -amd clean install && mvn -B -f 'pom.xml' -pl 'plugins' -P '!assemblies' -amd site

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'plugins' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  assemblies/pdi-ce/pom.xml
  plugins/pom.xml

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes: -0.1% (click to expand)
org.pentaho.di.trans.steps.salesforceinsert.SalesforceInsertMeta

Instruction Change: -0.1% :small_red_triangle_down:

:new: org.pentaho.googledrive.lifecycle.GoogleDriveKettleLifecycleListener

Coverage: 0% :exclamation:

:new: org.pentaho.googledrive.lifecycle.GoogleDrivePluginLifecycleListener

Coverage: 0% :exclamation:

:new: org.pentaho.googledrive.vfs.GoogleDriveFileObject

Branch Coverage: 0% :exclamation:
Complexity Coverage: 3.6% :exclamation:
Instruction Coverage: 2.8% :exclamation:
Line Coverage: 2.3% :exclamation:
Method Coverage: 6.7% :exclamation:

:new: org.pentaho.googledrive.vfs.GoogleDriveFileObject.MIME_TYPES

Coverage: 0% :exclamation:

:new: org.pentaho.googledrive.vfs.GoogleDriveFileProvider

Complexity Coverage: 75% :exclamation:
Method Coverage: 75% :exclamation:

:new: org.pentaho.googledrive.vfs.GoogleDriveFileSystem

Complexity Coverage: 50% :exclamation:
Instruction Coverage: 52.4% :exclamation:
Line Coverage: 57.1% :exclamation:
Method Coverage: 50% :exclamation:

:new: org.pentaho.googledrive.vfs.ui.GoogleAuthorizationDialog

Coverage: 0% :exclamation:

:new: org.pentaho.googledrive.vfs.ui.GoogleDriveFileChooserDialog

Coverage: 0% :exclamation:

:new: org.pentaho.googledrive.vfs.util.CustomAuthorizationCodeInstalledApp

Coverage: 0% :exclamation:

:new: org.pentaho.googledrive.vfs.util.CustomDataStoreFactory

Coverage: 0% :exclamation:

:new: org.pentaho.googledrive.vfs.util.CustomDataStoreFactory.CustomDataStore

Coverage: 0% :exclamation:

:new: org.pentaho.googledrive.vfs.util.CustomLocalServerReceiver

Coverage: 0% :exclamation:

:new: org.pentaho.googledrive.vfs.util.CustomLocalServerReceiver.Builder

Coverage: 0% :exclamation:

:new: org.pentaho.googledrive.vfs.util.CustomLocalServerReceiver.CallbackHandler

Coverage: 0% :exclamation:

Note: The list of offending coverage changes extends beyond the presented results and was truncated to prevent reaching the comment size limit.


Question about garbled text

Thank you for your fascinating work. I have a question regarding our experience using MiniGPT-5 to train on our dataset. We've noticed that the output contains garbled text (as shown in the figure below). Could you please advise on what might be causing this issue?

Do you use our pretrained parameters or your fine-tuned ones? It looks like the error that you do not set IS_STAGE=True in your environment variables. You can check issue #10 for more discussion.

thanks for the reply, it turns out that the main issue is with the version of peft.


normalization range

From the readme, normalization with ai8x.normalization should set the training/test data to range [-128, 128]. But, in some of the scripts eg datasets/imagenet.py, it says to map the data to this range [-128/128, +127/128]. Which one should we use?
Also, Is there a function to unnormalize this process so I can view the input image? I am using this: (128 + (img.detach().cpu().numpy()) + 1  ).astype(np.uint8) where my img is :
img = ai8x.normalize(torch.transform.ToTensor(PIL.Image.open(img_path)))

Hi,
Quoting from the "normalizing input data" section of the readme:

For training, input data is expected to be in the range [-128/128, +127/128]
When evaluating quantized weights, or when running on hardware, input data is instead expected to be in the native MAX78000/MAX78002 range of [-128, +127]
Conversely, the majority of PyTorch datasets are PIL images of range [0, 1]
The respective data loaders therefore call the ai8x.normalize() function, which expects an input of 0 to 1 and normalizes the data, automatically switching between the two supported data ranges.

As you can see in the ai8x.py, ai8x.normalize() sets the limits as explained, by checking if act_mode_8bit is set to True. This flag is set to True if evaluating on quantized network or running on hardware, and False during training.
As for unnormalization, if you are in training mode (act_mode_8bit is set to False), then first multiplying the normalized image by 128, then adding 128 to this should return the original image.
I hope this clears your confusion. Let us know if there's any conflicting information in the readme.

I understand for evaluation. For training, I am unfamiliar with the notation so it confuses me a little. Is it right to say that during training image data is to be in the range [-1, +1 (approx)].
Then given that pytorch makes the conversion to [0, 1], ai8x.normalized() rescales from [0,1] --> [-1, 1]? Is this correct?

Correct. You have to normalize your data first to [0, 1] and then call ai8x.normalize with act_mode_8bit=False. It rescales the data into [-1, 127/128].

Thanks. I understand


Memory Leak When Using Synchronous Loading With Async Components

Version
2.5.21
Reproduction link
https://codesandbox.io/s/xlly27wy8z
Steps to reproduce
Same as: https://github.com/vuejs/vue/issues/8740

Load the reproduction link in Chrome
Open Chrome Dev Tools
Go to the memory tab
Click on the "Destroy" button
Take a "Heap Snapshot"
Filter to look for "Detached HTMLDivElement"
You should see 2 leaking HTMLDivElement

What is expected?
Context for loading the Async component should be cleared.
What is actually happening?
There are 2 components still attached to a context of an Async loading Component.
It is not cleared if the Async component is loaded synchronously.

This is the same issue as https://github.com/vuejs/vue/issues/8740. However the fix for it only fixes the case when loading is actually async. Synchronous async loading does not call the "forceRender" (https://github.com/vuejs/vue/commit/2e472c5e5e559a7a4083b4164ffe0c3911ce0651#diff-293f31f6a318619ad803b971ef0724a3R64) so the contexts array is not cleared.
I can try to fix it and submit a PR if needed.

Hi! No news on this issue, is it fine if I try to do a PR for it? :)

No problem it's the holidays ^^. I'll see you do that this afternoon!

@posva PR submitted 👍 : #9275


Icon Request: Sonography

I realized there's a Sonography/Ultrasound icon missing among the "diagnostic imaging" set.
A sonogram is a computer picture of areas inside the body created by high-energy sound waves.
With respect to the icon itself, I think the soundwaves are a must, and the two main elements are the sensor and the screen.
I've seen some icons with a baby in it, but I don't think it's adequate, since you can get a sonogram of almost every organ in the body.
Here are some examples I've found.
Thank you very much for you work. It's very much appreciated.

We just added the icon for sonography!

Note: when we do the next release, we will also add a Sonogram icon that doesn't have the background square.


AttributeError: Can't pickle local object 'points_to_surf_train..seed_train_worker'

When i try to run it,error happens.
pytorch                   1.10.2          py3.8_cuda11.3_cudnn8_0    pytorch
Traceback (most recent call last):
  File "D:/repo/points2surf/full_run.py", line 80, in <module>
    points_to_surf_train.points_to_surf_train(train_opt)
  File "D:\repo\points2surf\source\points_to_surf_train.py", line 428, in points_to_surf_train
    train_enum = enumerate(train_dataloader, 0)
  File "D:\Programs\anaconda3\envs\p2s\lib\site-packages\torch\utils\data\dataloader.py", line 354, in __iter__
    self._iterator = self._get_iterator()
  File "D:\Programs\anaconda3\envs\p2s\lib\site-packages\torch\utils\data\dataloader.py", line 305, in _get_iterator
    return _MultiProcessingDataLoaderIter(self)
  File "D:\Programs\anaconda3\envs\p2s\lib\site-packages\torch\utils\data\dataloader.py", line 918, in __init__
    w.start()
  File "D:\Programs\anaconda3\envs\p2s\lib\multiprocessing\process.py", line 121, in start
    self._popen = self._Popen(self)
  File "D:\Programs\anaconda3\envs\p2s\lib\multiprocessing\context.py", line 224, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
  File "D:\Programs\anaconda3\envs\p2s\lib\multiprocessing\context.py", line 327, in _Popen
    return Popen(process_obj)
  File "D:\Programs\anaconda3\envs\p2s\lib\multiprocessing\popen_spawn_win32.py", line 93, in __init__
    reduction.dump(process_obj, to_child)
  File "D:\Programs\anaconda3\envs\p2s\lib\multiprocessing\reduction.py", line 60, in dump
    ForkingPickler(file, protocol).dump(obj)
AttributeError: Can't pickle local object 'points_to_surf_train.<locals>.seed_train_worker'

Hi @TalonX1!
This is most likely a Windows-specific problem (with Python). It worked when I tried it the last time. I sometimes had strange errors when the dataloader was shutting down its workers after the training. I can't reproduce this error.
Are you using the code without any modifications? Windows had / has problems with pickling lambdas.
Please try again with the package versions specified in the p2s.yml. You might need to replace the ">=" with "==". The Python version (3.7) is the most important thing here.
It might be a disguised out-of-memory error caused by Windows' inefficient process creation. Please try again with only 1 worker to check.

Hi @TalonX1!
This is most likely a Windows-specific problem (with Python). It worked when I tried it the last time. I sometimes had strange errors when the dataloader was shutting down its workers after the training. I can't reproduce this error.
Are you using the code without any modifications? Windows had / has problems with pickling lambdas.
Please try again with the package versions specified in the p2s.yml. You might need to replace the ">=" with "==". The Python version (3.7) is the most important thing here.
It might be a disguised out-of-memory error caused by Windows' inefficient process creation. Please try again with only 1 worker to check.

Thank you for your rapid reply,I will try like what you said,and close the issue temporarily.


feat(auto-gen): detect if UCC can auto generate a file under package/default

Issue number: ADDON-69825
Summary
Changes
For the files created in package/default folder - conf files and xml files, the file contents are compared removing/ignoring the comments present in them with the respective libraries used to parse the files. When we compare source code with generated code in output folder,

If no changes are found, we tell the user that the file can be removed from their repository/ source code.
If changes (in other words, customizations) are found, we suggest the user to raise enhancement requests via GitHub issues of UCC framework.

User experience
Before, the user wouldn't know what all features that are continuously added to UCC framework that they have in their source code. After this change, the user/developer would know what all changes they have in their source code which can be safely removed, and additionally, the user could provide their customizations to be accommodated in the UCC framework.
Checklist
If your change doesn't seem to apply, please leave them unchecked.

[x] I have performed a self-review of this change
[x] Changes have been tested
[x] Changes are documented
[x] PR title follows conventional commit semantics

@hetangmodi-crest please provide several examples of how this feature is going to work with existing TAs, let's say Cisco Meraki, Google Workspace, Microsoft Cloud Services and MySQL.

@hetangmodi-crest please provide several examples of how this feature is going to work with existing TAs, let's say Cisco Meraki, Google Workspace, Microsoft Cloud Services and MySQL.

I've added some example of the mentioned TAs in ADDON-69825.

I am converting this PR into a draft. We decided to make some internal refactoring first so this feature can be enabled without touching all the files in the repository.


Wifi doesn't connect, brcmfmac errors in journal logs.

Pi 3B+ doesn't connect to my WiFi. There are no hardware issues, it works on raspbian.
After leaving it on for ~ 10 minutes. I disconnected power supply and connected sd-card on laptop to get journal logs: https://hastebin.com/cofafuniku.yaml
There are some brcmfmac errors
Jan 01 05:30:10 nixos kernel: smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
Jan 01 05:30:11 nixos kernel: brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
Jan 01 05:30:11 nixos kernel: ieee80211 phy0: brcmf_c_process_clm_blob: get clmload_status failed (-110)
Jan 01 05:30:11 nixos kernel: ieee80211 phy0: brcmf_c_preinit_dcmds: download CLM blob file failed, -5
Jan 01 05:30:11 nixos kernel: ieee80211 phy0: brcmf_bus_started: failed: -5
Jan 01 05:30:11 nixos kernel: ieee80211 phy0: brcmf_attach: dongle is not responding: err=-5
Jan 01 05:30:11 nixos kernel: brcmfmac: brcmf_sdio_firmware_callback: brcmf_attach failed
Jan 01 05:30:11 nixos systemd[1]: systemd-rfkill.service: Succeeded.
Jan 01 05:30:15 nixos kernel: hwmon hwmon1: Voltage normalised
Jan 01 05:30:16 nixos kernel: Bluetooth: hci0: BCM: Read controller features failed (-110)
Jan 01 05:30:17 nixos kernel: hwmon hwmon1: Undervoltage detected!
Jan 01 05:30:23 nixos kernel: hwmon hwmon1: Voltage normalised
Jan 01 05:30:28 nixos nscd[769]: 769 checking for monitored file `/etc/netgroup': No such file or directory
Jan 01 05:30:40 nixos dhcpcd[697]: timed out
Jan 01 05:30:40 nixos dhcpcd[697]: timed out
Jan 01 05:30:40 nixos dhcpcd[697]: forked to background, child pid 823
Jan 01 05:30:40 nixos systemd[1]: Started DHCP Client.
Jan 01 05:31:31 nixos systemd[1]: sys-subsystem-net-devices-wlan0.device: Job sys-subsystem-net-devices-wlan0.device/start timed out.
Jan 01 05:31:31 nixos systemd[1]: Timed out waiting for device /sys/subsystem/net/devices/wlan0.
Jan 01 05:31:31 nixos systemd[1]: Dependency failed for WPA Supplicant.
Jan 01 05:31:31 nixos systemd[1]: wpa_supplicant.service: Job wpa_supplicant.service/start failed with result 'dependency'.
Jan 01 05:31:31 nixos systemd[1]: sys-subsystem-net-devices-wlan0.device: Job sys-subsystem-net-devices-wlan0.device/start failed with result 'timeout'.
Jan 01 05:31:31 nixos systemd[1]: Reached target Network.
Jan 01 05:31:31 nixos systemd[1]: Reached target Network is Online.
Jan 01 05:31:31 nixos systemd[1]: Starting SSH Daemon...
Jan 01 05:31:31 nixos systemd[1]: Starting Permit User Sessions...
Jan 01 05:31:31 nixos systemd[1]: Finished Permit User Sessions.
Jan 01 05:31:31 nixos systemd[1]: Started Getty on tty1.
Jan 01 05:31:31 nixos systemd[1]: Reached target Login Prompts.
Jan 01 05:31:33 nixos kernel: hwmon hwmon1: Undervoltage detected!

This is explicitly covered in wiki:
https://nixos.wiki/wiki/NixOS_on_ARM/Raspberry_Pi_3#Board-specific_installation_notes
"""
In case wlan0 is missing, try overlaying an older firmwareLinuxNonfree confirmed to be working:
{ config, pkgs, lib, ... }:
{
nixpkgs.overlays = [
(self: super: {
firmwareLinuxNonfree = super.firmwareLinuxNonfree.overrideAttrs (old: {
version = "2020-12-18";
src = pkgs.fetchgit {
url =
"https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
rev = "b79d2396bc630bfd9b4058459d3e82d7c3428599";
sha256 = "1rb5b3fzxk5bi6kfqp76q1qszivi0v1kdz1cwj2llp5sd9ns03b5";
};
outputHash = "1p7vn2hfwca6w69jhw5zq70w44ji8mdnibm1z959aalax6ndy146";
});
})
];
}
"""

Glad that you were able to find a solution for this! Fortunately the NixOS wiki is immensely helpful for all of these issues. (I've also updated your comment to restore proper formatting.)
Thanks for reporting your solution back here, have a good day!


Fix deadlock when accessing dirtyRules in fqdn controller

Fixes #5565
As descried in the issue above, a deadlock could occur when :

Rule sync fails due to realization error in dataplane, and the controller
retries it later despite there's no IP changes for the FQDN.
A single Antrea-native policy rule refers to multiple FQDNs, and the
fqdn controller receives updated records for these FQDNs at around
the same time. One of the FQDN has address updates so the rule
need to be resynced and thus marked dirty. Another FQDN does not
have address updates, but the controller tries to read the dirtyRules
to make sure that, if it is a previously failed to sync rule, it gets
re-queued even when there's no address updates.

This PR addresses the deadlock issue by explicitly putting the lock
around the get dirty rules op itself.
Additional UT for these potential rule sync scenarios are also added.

@Dyanngg have you managed to reproduce the issue? You mentioned "a deadlock could occur when rule sync
fails due to realization error in dataplane" but I didn't see such error when investigating the issue and thought it could be triggered even everything works fine.

@Dyanngg have you managed to reproduce the issue? You mentioned "a deadlock could occur when rule sync fails due to realization error in dataplane" but I didn't see such error when investigating the issue and thought it could be triggered even everything works fine.

Thanks for the reminder. I reproduced the deadlock in UT when OVS error is simulated. Now that you mention it, I realized that the same issue could also happen if a single rule has multiple FQDNs, and during the handling of the proactive record update of these FQDNs, one of the FQDN response could have marked the rule dirty since the agent has not finished rule sync yet, while the other FQDN response tries to add a subscriber for the same rule, causing deadlock. I will add a new UT testcase validating this theory, and verify that the deadlock could occur before the fix and will not after the fix.

@tnqn Please check the updated PR description and the latest added testcase. While the specific scenario is tricky to reproduce in an real setup (due to the need for two concurrent DNS record updates and one with address change and one does not), the last UT testcase reproduces the deadlock very steadily: without the change, it hangs every single time after the syncDirtyRule() calls due to deadlock.

@Dyanngg the code and unit test look good to me. However, could we still try to reproduce the issue in a cluster and see if this can completely fix the issue in case there is something else preventing it from working? We have met several issues related to NetworkPolicy (especially when FQDN rule is used) in the last few months, we need to be more cautious to deliver one more patch release.  I think in theory it can be reproduced by generating two concurrent DNS resolution towards the same steady FQDN, the first resolution's addressUpdate will be true while the second one will be false.
And I just got an update from the reporter: restarting a workload pod alone could fix the issue, which I haven't figured out why.

And I just got an update from the reporter: restarting a workload pod alone could fix the issue, which I haven't figured out why.

I figured out this, it didn't really recover, the reason why new Pod can resolve domain should be because the realization of the FQDN rule for new Pod was stuck in r.fqdnController.addFQDNRule due to the same dead lock.

Trying to reproduce the issue but no luck so far

/test-all

Trying to reproduce the issue but no luck so far. Domains that I remember to have dynamic IP ranges seems to return pretty steady resolved dns addresses.

The test commands you used triggered DNS lookups sequentially, I think it can't lead to deadlock.
While trying to construct a test case to reproduce the issue, I found that even concurrent DNS lookups can't trigger it because packetin events are processed sequentially. And given there is no error about networkpolicy realization, I'm thinking the issue is probably more complicated and this patch will not likely fix the issue completely. I will share my hypothesis in https://github.com/antrea-io/antrea/issues/5565

@Dyanngg please backport it to 1.11-1.13.

This commit introduces a data race. https://github.com/antrea-io/antrea/pull/5583 will fix it. The cherry-picking PRs need to include the latter commit as well.