Imported variable bindings have difficult to debug names.

Do you want to request a feature or report a bug?
Feature, improvement to debugging webpack-built projects.
What is the current behavior?
Webpack renames variable bindings in  ES6 imports when it replaces them with __webpack_require__ calls.  In this example the imported binding foo is compiled to __WEBPACK_IMPORTED_MODULE_0__foo__["a" /* foo */]. If you use dev tools debugger you cannot watch or executefoo because it is not defined.
input:
import {foo} from './foo';
console.log(foo());

output:
Object.defineProperty(exports, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foo__ = __webpack_require__(0);
console.log(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__foo__["a" /* foo */])());

Debugging is difficult, you can't watch or reference the original binding. This is made worse by sourcemaps because you can't see new name in the original source. It's not immediately apparent why a line copied from the current context into the console results in not defined errors. Chrome even removes code that has a corresponding source map, so it becomes difficult to find the in-code name of an imported value.
If the current behavior is a bug, please provide the steps to reproduce.
Simple reproduction.
What is the expected behavior?
Variable bindings should be preserved by name.
If this is a feature request, what is motivation or use case for changing the behavior?
Debugging a project built by webpack today is more difficult than it aught to be.

Variable bindings should be preserved by name.

If you tell me how this is possible, I'll do it.

I'm not familiar with webpack's internals, or intricacies of the ES6 spec, so I understand why this could be harder than an outside observer would think.
Why can't the example in the issue be compiled to
Object.defineProperty(exports, "__esModule", { value: true });
/* harmony import */ var foo = __webpack_require__(0)["a" /* foo */];
console.log(__webpack_require__.i(foo)());

I guess I see the problem, if the module  ./foo were to redefine it's export foo the binding in index.js would be out of date.

Could one use static-analysis to check for happy-case no export redefinition?
Could ES6 proxies help here (Proxy support probably prevents this from being a viable choice)

I guess I see the problem, if the module ./foo were to redefine it's export foo the binding in index.js would be out of date.

yes, that's the problem. ES import are live bindings. Actually the a property in __webpack_require__(0) is a getter that may return different values each time.

Yeah, this is a problem for me, too. Debugging is much harder now :-(

Regarding whether it's possible, babel transforms exported binding assignments to export assignments directly. e.g.
// from
export let a = 5;
export function setAto10() {
  a = 10 <------- from a simple variable assignment
}

// to
exports.setAto10 = setAto10;
var a = exports.a = 5;
exports.a = a;
function setAto10() {
  exports.a = a = 10 // <------- to an exported variable assignment
}

This solves the issue and avoids the need to use a getter.  I can't think of any reason why the approach wouldn't work with webpack however I've only been researching this problem as of tonight.

@olsonpm This issue is about imported variables not exported.
The only way which I see to fix it is:
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foo__ = __webpack_require__(0);
with({
  get foo() { return __WEBPACK_IMPORTED_MODULE_0__foo__ ["a"]; }
}) {
  // you code
  // debugger could access `foo`
}

But... no...

One small step could be to preserve the variable names in the  __WEBPACK_IMPORTED_MODULE_0__foo__ array. In the example it is not that obvious since the file and variable are named foo. If you have import {bar, qux, sol} from './foo'; the three variables will end up as "a", "b", and "c". If they would be visible as __WEBPACK_IMPORTED_MODULE_0__foo__["bar"] etc. it would still not be perfect but usable.
Yet I have no idea if this might cause other complications.

For projects that don't care for the live binding requirement and do care about a sane interactive debugging experience, can there be an option to just treat imports like regular bindings?  (I imagine there are many such projects.)

Hmmm... what if webpack just flipped the variable name to be first and then appends the __WEBPACK_IMPORTED_MODULE_X stuff to the end? That way at least you could try to find the variable with tab autocompletion?
input:
import {foo} from './foo';
console.log(foo());

output:
Object.defineProperty(exports, "__esModule", { value: true });
/* harmony import */ var __foo__WEBPACK_IMPORTED_MODULE_0 = __webpack_require__(0);
console.log(__webpack_require__.i(__foo__WEBPACK_IMPORTED_MODULE_0["a" /* foo */])());

Then you could write __foo and locate the correct variable from the autocomplete result.

@sokra that is actually very good for development (i think you also need set function to preserve all behaviors ...)
and for production you will stick with current version (so uglify can do his things)
am i missing something?

i did some research and i am missing strict mode
but you can go around this issue by something like this
(() => {
  const scope = {
    get name() { return 'cotne' }
  }
  // strict mode does not apply here so we can use "with" statement
  with (scope) {
    (() => {
      "use strict"
      // package code goes here where strict mode applies
      // you can't use "with" statement here but outer one is fine
      console.log(name)
    })()
  }
})()

I will add a PR with @thecotne 's suggestion if there is no objection...

Does the source map API support a way to bind variable names to functions?
e.g. If I try to watch "foo" it will internally run return __WEBPACK_IMPORTED_MODULE_0__foo__ ["a"];

One approach I am considering to try is to use babel loaders during development, they will convert imports to requires so it will keep development easy

I also think @valscion's idea to put the variable name to the front would at least help a bit to make it easier to find the correct import variable.
Also what do you mean @sokra with __webpack_require__.i no longer exists?
I see it in my current builds as well with iirc up to date webpack (I might be wrong though).

Sorry for the non existent PR so far..
I started working on it, realized it was a bit trickier than anticipated, and then life came in the way ☹

if we can't use with statement something like this also will be much better then what we have now
(() => {
  "use strict"

  const imported = {
    get name() { return 'cotne' }
  }

  console.log(imported.name)
})()

Since the problem lies with ES6 modules, couldn't there be a way to "simply" covert the ES6 module to CommonJS, then have webpack load the CommonJS module?  It would be a viable workaround for development as long as I could debug these ES6 modules.

Adding transform-es2015-modules-commonjs-simple might solve this problem, but it creates a much bigger problem: There will be no error if you import an identifier from an ES6 module which is not exported by it. There will also be no tree shaking.
That is an absolute disaster. I can't count the hours I've wasted debugging a problem because the compiler didn't tell me that I imported something that didn't exist. Or the live bugs I've released because when I changed an exported name I forgot to change one of the imports.

Nothing here besides transform-es2015-modules-commonjs-simple ?

Here's another suggestion then:
Rather than going with a with block, we could wrap the whole file with a IIFE with named parameters. That would work with debugging the 99% case when exports are constant, while still allowing the actual code run as defined in ES6. Also, this would only apply if in dev mode.
This:
import {a, b} from 'foo'
console.log(a);
console.log(b);

would then be transformed to this (I've omitted the hideous WEBPACK_IMPORTED_MODULE...)
var __foo = __webpack_require__(0)
((a, b) => {
    console.log(__foo["a"]);
    console.log(__foo["b"]);
})(__foo["a"], __foo["b"]);

Here's another suggestion then:
Rather than going with a with block, we could wrap the whole file with a IIFE with named parameters. That would work with debugging the 99% case when exports are constant, while still allowing the actual code run as defined in ES6. Also, this would only apply if in dev mode.
This:
import {a, b} from 'foo'
console.log(a);
console.log(b);

would then be transformed to this (I've omitted the hideous WEBPACK_IMPORTED_MODULE...)
var __foo = __webpack_require__(0)
((a, b) => {
    console.log(__foo["a"]);
    console.log(__foo["b"]);
})(__foo["a"], __foo["b"]);

If this has performance implications it can only be enabled for development mode

@sokra , May support mutated imports, if register setter in consumer module, as the getter is now registered in the source module?
Sоmething like this:
consumer.js
import {foo as bar} from './source';
setInterval(() => console.log(bar), 1000);
// -->

// when changed(=, +=, ...) export `foo` in module `sourceModuleId`, then need call setters of all consumer modules
__webpack_require__.registerSetter(__webpack_exports__, sourceModuleId, "foo", function(val) { bar = val; })
let bar;
setInterval(() => console.log(bar), 1000);//no changes. imported variable available as is

source.js:
export let foo = 123;
setInterval(() => {
  foo = foo + 1;
}, 1000);
// ---->
let foo;
__webpack_require__.notify(sourceModuleId, 'foo', foo = 123);
setInterval(() => {
  //exported variable available in scope as is
  __webpack_require__.notify(sourceModuleId, 'foo', foo = foo + 1);
}, 1000);

Of course, this solution can lead to performance problems, but this behavior has the right to live in development mode.

If you guys don't mind me asking, what is the debugging process supposed to look like with imports like this? How do you track down "unexpected behaviour" style bugs if you can't easily identify what you're looking at and what the values are? This is almost like debugging obfuscated code.

If you guys don't mind me asking, what is the debugging process supposed to look like with imports like this? How do you track down "unexpected behaviour" style bugs if you can't easily identify what you're looking at and what the values are? This is almost like debugging uglified/obfuscated code.

It's not convenient at all. my strategies are:

Disable source maps. Then you can see the real variable names and debug them properly.
Memorise the webpack naming conventions. If you are at a breakpoint, and your import is similar to import UserModel from 'xxx'. Then the webpack bindings are usually called __WEBPACK_IMPORTED_MODULE_0__UserModel__. The devtools are usually friendly enough to autocomplete for you if you start typing __ and then go from there.

Ok so what you're saying is "use commonjs".

I think it's an issue with all kind of transpilers: https://github.com/microsoft/TypeScript/issues/9627#issuecomment-643192125

For webpack 4, use this plugin. This will simplify names if you're using eval and allow straight import vars to be used with source maps.
So this code:
import a, {b, c as d} from 'foo'
a()

becomes
var __foo = webpack_require('...'); let {default: a, b, c: d} = __foo; if (typeof d === "undefined") d = _foo
_foo.a()

https://gist.github.com/staeke/f197ff144e379aa884f91b95003f4ee1

I couldn't get transform-es2015-modules-commonjs-simple to work anymore, but setting modules: "cjs" in babel config's @babel/preset-env seems to work for me. https://babeljs.io/docs/en/babel-preset-env#modules
{
  "presets": [
    [
      "@babel/preset-env",
      {
        "modules": "cjs",
      }
    ],
  ]
}

Based on @staeke 's comment i've created a webpack plugin which will add debug names to generated files (with @staeke permission).
See https://github.com/Trias/debug-names-webpack-plugin
Happy debugging!


[WIP]: ADR Add ONNX Runtime module to nd4j

What changes were proposed in this pull request?
Adds ADR for adding onnx runtime interop with nd4j.
(Please fill in changes proposed in this fix)
How was this patch tested?
(Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests)
Quick checklist
The following checklist helps ensure your PR is complete:

[ X] Eclipse Contributor Agreement signed, and signed commits - see IP Requirements page for details
[X ] Reviewed the Contributing Guidelines and followed the steps within.
[ X] Created tests for any significant new code additions.
[X ] Relevant tests for your changes are passing.

Since this is already implemented in Konduit Serving, we can move that here if we want:
https://github.com/KonduitAI/konduit-serving/blob/master/konduit-serving-core/src/main/java/ai/konduit/serving/executioner/inference/OnnxInferenceExecutioner.java

Since this is already implemented in Konduit Serving, we can move that here if we want:
https://github.com/KonduitAI/konduit-serving/blob/master/konduit-serving-core/src/main/java/ai/konduit/serving/executioner/inference/OnnxInferenceExecutioner.java

I was going to port some of that logic over and make it a bit more embeddable. If you agree with that, then I'll move forward. Thanks Sam!


Add criu

[ ] https://github.com/checkpoint-restore/criu
[ ] https://github.com/checkpoint-restore/checkpointctl

See #5233


Add array_distinct array function

@cberner please review

Fixed null handling and added null tests

Implementation looks right to me, except the one minor comment. @martint @electrum and @dain can you approve the function name?

I'm fine with what ever @martint and @electrum agree on

I think this name is good. Both distinct and unique are reserved words.

Updated this PR based on comments from @electrum .

Looks good


fix: add more resources for release job

Motivation and context
Add more resources for release job to prevent failing with an error:
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

https://app.circleci.com/pipelines/github/smg-automotive/components-pkg/2369/workflows/dd51c921-f9e1-41fa-8776-c6688f0d0ba0/jobs/10967
Before
small resources
After
medium resources
How to test
[Add a deep link and instructions how to verify the new behavior]

This should be a chore release.


oauth: Remove references to internal packages

Fixes GoogleCloudPlatform/go-endpoints#101

Hey @crhym3, do you think this is correct?
Looks good to me, but I'm not an expert on the intricacies of oauth2.

Hey @crhym3, do you think this is correct?
Looks good to me, but I'm not an expert on the intricacies of oauth2.

This looks reasonable to me.

Thanks @broady, I wonder why we used the proto directly on the previous code. Do you know?
I'll wait for @crhym3 to give some context and merge then.

LGTM
Thanks for fixing this.
IIRC we used proto because User.ClientID or some other field wasn't available at the time.

Woah, that came as a surprise after half a year, cool! :open_mouth: @crhym3 you're welcome :smile:

Checked and verified that @flowlo has signed the Google CLA.


Kanban Board Setup

Dividing tasks and setting up Kanban Board
Here's the link to our Kanban Board for this project.
We are a group of 2 members:

@tobuya
@IndieCoderMM

Hi @IndieCoderMM & @tobuya,
Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉
Highlights

The Pull Request has a proper title and description. ✔
You have added a descriptive Readme file. Good Job. ✔
Project has met all the technical aspects you needed for this project. Keep rocking! ✔

Optional suggestions
Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better. Some of them were simply missed by the previous reviewer and addressing them will really improve your application.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


[button] Add missing customize points for span

The objective is to fix the regression introduced by #35198 that we noticed on the store:

Origin: https://github.com/mui/mui-private/pull/511. Reproduction: https://codesandbox.io/p/sandbox/affectionate-night-64fljj?workspaceId=836800c1-9711-491c-a89b-3ac24cbd8cd8
I have tried in #43400 to remove the <span>, but it didn't work in production. Instead, we can use what Material UI v4 was using to make the span more transparent: https://github.com/mui/material-ui/blob/cd0884f9bdc53e535368c741c63479411a47cf0a/packages/material-ui/src/Button/Button.js#L37
Also, to note that this span should have had the API to customize it, I'm adding this at the same time.

Confirmed this change solved the regression: https://github.com/mui/mui-private/pull/560.


[don't-merge] CI: add another test with feature scroll

Description

Add another CI test with --features scroll.
Update CI scripts to run this test on another self-host runner (jenkins2?).

Moved to https://github.com/scroll-tech/zkevm-circuits/pull/438.

@lispc This PR has already been merged into https://github.com/scroll-tech/zkevm-circuits/pull/438

Close to use PR https://github.com/scroll-tech/zkevm-circuits/pull/438


[Crash 1.10.2] Adding Liquid Transforms

I'm trying to add a liquid transform for water into Ars Magica 2's Liquid Essence and can't seem to get it to work.
Here's what I have:
[
{
"inputFluid": "water",
"outputFluid": "witchwater",
"transformingBlocks": [
{
"name": "minecraft:mycelium",
"meta": 0
}
],
"blocksToSpawn": [
{
"name": "minecraft:brown_mushroom",
"meta": 0
},
{
"name": "minecraft:red_mushroom",
"meta": 0
}
],
"duration": 12000
},
{
"inputFluid": "water",
"outputFluid": "arsmagica2:liquid_essence",
"transformingBlocks": [
{
"name": "arsmagica2:block",
"meta": 2
}
],
"duration": 12000
}
]
Is this fluid just not supported somehow?

Well got it to work but it crashed at 50% transform;
http://pastebin.com/iAuchn8W

Are you sure that is the right ID for the fluid? It looks like a block ID, fluid IDs have no resource locations.

https://www.dropbox.com/s/a56pi9jrobehm84/2017-03-25_15.11.21.png?dl=0
What am I looking for?

Ok, removing the resource location seems to have stopped the crash.  Thanks


[bug]: mobile version (tablet/mobile) menu not functioning as expected

Steps that lead to the issue
when generating the site and testing it the sidebar is always expanded on tablet and always minimized on the mobile phone. also the bottom collapse “button” not showing. this is also present in the documentation site when viewed on a mobile device or tablet.
any suggestions for fixing it as i’m not a developer or will there be a fix soon?
Expected behavior
expected the sidebar to be responsive but this issue is not resolved.
Reproducer
the documentation site if viewed on a mobile or a tablet will show the issue.
Solution?
No response

Hi @malshar ,
Regarding the collapse/uncollapse sidebar, there is threshold for 1024px. Above 1024px width screens sidebar will be uncollapsed by default, and under 1024px width screens sidebar will be collapsed by default. Doing so is to avoid having a sidebar that take a lot of screen's space, especially on small screens where the sidebar is overlapping the main content.
On that point I will update the documentation website as it is not mentioned.
For the unavailable button, indeed I've check and there are few issues on mobile devices. Unfortunately I don't know for now where it come from.
I'll check as soon as I can, but It will not be in the coming days...probably few weeks.

Hello @malshar , I've actually have the time to check your issue and solve it.
Kr,
Jordan.


Unable to use segment with traits

I have started a poc for our client. Using 5.1.2. My current focus on segments. Have created a feature flag "my_api_mock_enabled" and switched ON. Have created a feature specific segment named as "mock_incl_rule" with a trait key "firstName" and trait value "i_m_mock". Switched it ON. Now, in my Java code I am using identifier to evaluate the feature flag as below -
// Get current user details
User user = sessionService.getCurrentUser( httpRequest );
String userIdentifier = uniqueHash( user );
// Get flags based on above user details
Flags flags = flagsmithClient.getIdentityFlags( userIdentifier, Collections.singletonMap( "firstName", user.getFirstName() )) ;
Boolean mockEnabled = flags.isFeatureEnabled( "my_api_mock_enabled" );
Why this Boolean flag is coming always TRUE ??? My expectation is it should come FALSE if my user has first name other than "i_m_mock".
Help is appreciated - @dabeeeenster

If the environment default is ON, and the Segment override is ON, it will always return ON. Flags aren't false/off by default in flagsmith.

@dabeeeenster - I didn't understand. It is not clear from the documentation how to use the segment then.
My requirement is -
Feature flag - "my_api_mock_enabled" - return true only for a set of users meeting the criteria - firstName exactly matches to "i_m_mock". Otherwise should return false.

If I create a feature flag and don't use segment overriding then it is working as expected. But, it returns same ON/OFF for all users. This is good, not a concern.
As per my above use case, I tried creating feature specific segment rule. Being a layman user of your product, I expect this segment overriding rule has to be switched ON to become effective as well. I did that.
Now question comes whether to keep feature flag ON or OFF ? Again, being a layman user, my expectation is this feature flag should be ON. And, flagsmith engine will return ON only after segment rule evaluation. I understood the same from the documentation too.

It would be good if you can share an example of simple use case of segments including set up needs to be done in flagsmith portal and the code needs to be written.
Please note, " Managing identities and segments" is not at all understandable and user friendly.
We are planning to buy an Enterprise version of such products to manage feature releases. But, we need your help to complete our evaluation through a POC.

Hi. Please can you contact<EMAIL_ADDRESS>and we can arrange a call to go through this? Thanks!


what will happens if a spatialRDD(called a) use method setSpatialPartitioning(),but the method’s argument is another SPatialRDD's(called b) Partitioner？

As the title said,what will happens if a spatialRDD(called a) use method setSpatialPartitioning(),but the method’s argument is another SPatialRDD's(called b) Partitioner？especially when b's boundary is smaller than a's.
a's points out side of b's doundary will be filtered？if not filtered, then how does it work?

Hi @KingWang93 ,
We must use the same partitioner to partition both datasets involved in Spatial Join.
If A's boundary is smaller than B but you still use A's partitioner to partition B, overflowed data of B will be put in an overflow partition. The overflow partition will be eliminated directly by the spatial join algorithm. Because it is guaranteed to have no qualified results.

overflow partition?what does it mean?it's just a concept or it is created by program?In addition，another problem，in GeometrySerde.java，why userData is not serialized when the geometry is Point,LineString, etc.？
     This is caused by GeoSpark's sampling technique and these data structure's features.
 We have a geometry G that doesn't fall in the spatial boundary of any partition.
If P is P1,  G will be filtered during spatial partitioning phase. Because it is guaranteed to be useless.
If P is P2, G will be allocated to an overflow partition during spatial partitioning phase. Overflow partition from A and B will be double checked during join phase to make sure we can find all overlapped geometry pairs.
If you go through GeoSpark's source code in SpatialPartitioning folder, you will figure out.

thanks for your detailed reply！A suggestion more for GeoSpark，when do an operation to detect the relationship bwtween a single target geometry and a batch of test geometries. Prepared geometry class in JTS will be fatser than Geometry class. It can be optimized in some class like RightIndexLookupJudgement,LeftIndexLookupJudgement etc.https://trac.osgeo.org/geos/wiki/PreparedGeometry

@KingWang93 Thanks for your great suggestion. I didn't know that before. Will look into that.

when I look through the code, So it will be happen like this, when  a geometry doing spatialPartitioning , it will fall in two tree node region? how to guarantee that one geometry can't be computed twice?

@KingWang93
We have an extra step called duplicates removal.
For Partitioner P1, we use an idea called references point idea to remove the duplicates.
For Partitioner P2, we use an addition GroupBy (a data shuffle) to collect duplicated results and remove them.
We have a full research paper to introduce every single component of GeoSpark. We will release it very soon.


Building avrOS

Add a section to the README.md file that describes the avrOS source code organization and how to build it

Added an Organization and Building section to the README.md


Ensure Kubernetes Cluster is created with Alias IP ranges enabled

Possible check to target the following resource

[ ] google_container_cluster

closing, tracking in spreadsheet


Discovery of endpoints defined using the functional variant of Webflux in Spring Boot 2

I'm trying out the combination of Spring Boot 2.0.4.RELEASE and Springfox 3.0.0-SNAPSHOT. Defining endpoints using a class annotated with @RestController and methods annotated with @GetMapping etc. works just fine. However, I'm unable to get endpoints defined using the new functional variant of Webflux to be picked up by Springfox. E.g.:
@Configuration
public class RoutingConfiguration {

    @Bean
    public RouterFunction<ServerResponse> routerFunction(final IntegerHandler integerHandler) {
        return route(GET("/api/integer").and(accept(APPLICATION_JSON)), integerHandler::getInteger);
    }

}

Is the functional variant of Webflux supported?
If so, how does one get Springfox to discover endpoints defined the functional way?

@jakobkylberg yes it is supported, however you need to include the web flux dependency and also use the EnableSwagger2Webflux annotation. Sorry its still fresh of the oven, so the documentation is a little lacking.

Don't worry about the lack of documentation, I understand that it takes time to write it.
I tried to create a very simple project with Spring Boot 2.0.4.RELEASE and the latest Springfox 3.0.0-SNAPSHOT. With one endpoint using the functional variant of Webflux. I've added the EnableSwagger2Webflux annotation, but I can't get Springfox to recognize my endpoint. Repo for the test project: https://github.com/jakobkylberg/spring-boot-2-webflux-swagger
If someone can have I quick look it would be very appreciated, maybe I'm missing something obvious.

Hi @jakobkylberg , did you find a solution, because I have the same issue.
With restcontroller, OK, but with functional way, Swagger don't recognize the endpoint.
Thanks,

@ye1984 Unfortunately I haven't been able to find a solution. I created a test project that highlights the issue and posted a link to it in my last post, but I haven't been able to make any progress solving the issue.

@jakobkylberg thank you for putting together a sample. I'll take a look at it

You can still declare your endpoint definitions manually as a workaround via ApiListingScannerPlugin implementation.
When using RouterFunction<ServerResponse> API, patterns are stored in private fields inside predicates therefore I don't think it's going to be easy or even possible for springfox to extract the required metadata from those.
Maybe springfox could have some decorator that would collect the metadata at call site prior to passing them to  RouterFunction<ServerResponse> API.
This will not solve path parameters though, since you are supposed to extract them imperatively/manually from ServerRequest by your self. Same goes for request body for which you need to use ServerRequest#bodyToMono(Class).
But I may be wrong.

@jakobkylberg thank you for putting together a sample. I'll take a look at it

Hi @dilipkrish, thanks for the Springfox, But I am still facing same issue with functional endpoints. Is there any patch release for that. Please let me know anyone found any solution for this.?
@jakobkylberg did you find any solution for this..? Please help me to get out of this issue.

same issue

same issue

any update on this?

Same issue. Any update ?

While it would be possible to put the list of routing paths in the swagger there is no way to get route parameters. Reason is that those are read at runtime and aren't defined using annotation that can easily be parsed from Springfox.
So Springfox would be pretty useless here.

While it would be possible to put the list of routing paths in the swagger there is no way to get route parameters. Reason is that those are read at runtime and aren't defined using annotation that can easily be parsed from Springfox.
So Springfox would be pretty useless here.

I agree, but it is a pity that we cannont use functional handler.
At least, I suggest springfox should support some manual annotation to support the swagger documentation for theses who did not want to using traditional mvc

Is there a date on which you plan to deliver a fix for the issue ?
the work is ongoing or abondonned ?

Will this be resolved?
Any suggestions on how should one go about setting up auto documentation for his Spring Webflux project?

Is there any updates on this?

any update on this ? Any workaround solutions are welcome.

any update on this ? Any workaround solutions are welcome.
@mesut
I fix this using open-api, Does it work for you?
https://github.com/springdoc/springdoc-openapi-demos

Thank you very much @ronansayao

This isn't supported yet. It requires additional work to support it without creating an annotation hierarchy like springdocs does it. I'll see if it can be worked on in the 3.0 release, if not it will be only in 3.1, unless someone here has bandwidth to help out.

@dilipkrish what's the tentative date of 3.0 release?

Hopefully next week. if there aren't any unforeseen bugs

why is this closed and not sure if it is solved?

Is this feature added?
https://stackoverflow.com/questions/68266480/springboot-springfox-starter-3-0-0-unable-to-detect-webflux-routerfuntion


ImportError: cannot import name 'paths' from 'modules' (unknown location)

Hi,
I get this error at step "Start stable-diffusion" using a custom model I made last month using fast dreambooth.
Traceback (most recent call last):
File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/webui.py", line 11, in
from modules.call_queue import wrap_queued_call, queue_lock, wrap_gradio_gpu_call
File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/call_queue.py", line 7, in
from modules import shared
File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/shared.py", line 12, in
import modules.interrogate
File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/interrogate.py", line 14, in
from modules import devices, paths, lowvram
ImportError: cannot import name 'paths' from 'modules' (unknown location)

I get the same error using the huggingface 1.5 model

try a clean run by removing/renaming the folder sd in your gdrive and use the latest colab from the link https://colab.research.google.com/github/TheLastBen/fast-stable-diffusion/blob/main/fast_stable_diffusion_AUTOMATIC1111.ipynb

worked. thanks :-)


[Question] How to use InvokeMethod with a select dropdown that becomes hidden on click

Have another question for an awkward select field that becomes hidden when clicked and an input field becomes visible. I've been trying to use the InvokeMethod with BeforeClick and AfterClick Trigger Events to handle selecting options in a select field that becomes hidden when clicked.
Opening select field dropdown causes the select element and all options to become hidden and the input becomes visible. This makes it difficult to select a dropdown option. Even tried sending keys to the input field, but element says it is hidden again at that point.
Examples
Before Select field click:
<input id='some_input_id', **hidden**>
<select id='some_select_id', onchange='some_js'>
    <option value=0></option>
    <option value=1>p1</option>
</select>

On Select field click:
<input id='some_input_id'>
<select id='some_select_id', onchange='some_js', **hidden**>
    <option value=0></option>
    <option value=1>p1</option>
</select>

MyPage.cs
[FindById("some_input_id")]
public TextInput<_> SomeInput  { get; private set; }

[FindById("some_select_id")]
[InvokeMethod(nameof(OnBeforePerform), TriggerEvents.AfterClick)]
[InvokeMethod(nameof(OnAfterPerform), TriggerEvents.AfterClick)]
public Select<_> SomeSelect { get; private set; }

public void OnBeforePerform()
{
  SomeInput.Should.BeHidden();
}

public void OnAfterPerform()
{
  SomeInput.Wait(Until.Visible);
}

MyTests.cs
public class MyTests : UITestFixture
{
  [Test]
  public void DoTest()
  {
    // do some stuff
      SomeSelect.Click().
      SomeSelect.Set("some option").  // fails with or without SomeSelect.Click()
      SomeInput.Should.Be.Visible().  // fails
   // do some more stuff
  }
}

I figured out a temporary work around
MyTests.cs
// the setup
SomeSelect.Click().
Wait(10).  // wait 10 seconds, but could be shorter
SomeInput.Set("An option").  // not great, but works for now
SomeOtherComponent.Click().  // saves result
Wait(10).
SomeSelect.Should.Equal("An option").
// do more stuff

I recommend extracting such steps to the custom control. The test should not know the nuances of the way the value is set to a particular input. So publically the test should do just SomeSelect.Set("some option").
Here is how the custom control for such select can look like:
public class CustomSelect<TOwner> : Select<TOwner>
    where TOwner : PageObject<TOwner>
{
    [FindFirst(OuterXPath = "preceding-sibling::")]
    [TraceLog]
    [PressEnter] // Can be removed or replaced with [PressTab].
                 // This trigger is useful when after the value is set the "Enter" key pressing finishes the input.
    private TextInput<TOwner> AssociatedInput { get; set; }

    protected override void SetValue(string value)
    {
        Click();
        AssociatedInput.Set(value);
    }
}

Then just use this class in page object instead of regular Select.
Is your HTML select component custom or one from HTML component libraries? If it is a public component, we can modify this custom control class to be more correct.

Okay cool! Much easier to implement than I was anticipating and it makes the test code look magnitudes cleaner.
I ended up needing to add [FindSettings(Visibility = Visibility.Any)] to the class so that the Select element is still found.
The only thing I'm trying to handle better with it is the fact that my dropdowns are dynamic. So whenever a selection or change is made, there is an overlay while it refreshes. So to circumvent this, I have an explicit wait of 'x' number of seconds after setting the AssociatedInput value in the CustomSelect.
...
AssociatedInput.Set(value).Wait(10);

What I would like to happen is for it to detect when another element  starts as hidden -> becomes visible -> returns to hidden -> then continue my test.
I'm thinking I would add in something like
// ...previous stuff
[FindLast(find the div element)]
private Control<TOwner> Overlay { get; set; }

protected override void SetValue(string value)
{
  Click();
  AssociatedInput.Set(value);
  Overlay.Wait(Until.VisibleThenHidden) // might need to play around with it
}

Yes, you are going in the right direction. Also if your overlay element is commonly happening in your site, take a look at Custom Trigger: Wait for Loading Indicator example.

Okay, i went with the custom trigger since it wouldn't hurt to have it separate in the long run.
Unrelated but I guess the only thing I'm trying to determine how to do is working with composition instead of inheritance with page objects, since i may have multi-level inheritance I was getting a non-generic type error with a Base : Page Object -> Inherited : Base<_> -> SuperInherited : Inherited.
Didn't seem like that would be a feasible way to go about it, so I was trying composition but I've had various issues with that.

With inheritance you need to keep all base page object classes generic with <TOwner> like in Page Object Inheritance example.
And yes, it's absoultely OK to use composition by extracting common UI parts to custom controls. You can describe what issues you have got related to that.

MainMenuNavigation<TOwner> and SubNav1<TOwner> should be inherited from Control<TOwner> instead of PageObject<TOwner>.

hahaha, i was going about making another control earlier today when that suddenly clicked for me. Thank you!

Sure, welcome.


[WINDOWS] channel.channel_ready() causes app exit with grpc_polled_fd_windows.cc:230] Check failed: *from_len <= recv_from_source_addr_len_

What version of gRPC and what language are you using?
grpcio                    1.67.0          py312h1f7db74_0    conda-forge
grpcio-tools              1.67.0          py312h275cf98_0    conda-forge

python                    3.12.7          hce54a09_0_cpython    conda-forge

Note: this will occur also with Python 3.11 and/or previous versions of grpcio. Last known good version of grpcio is probably before 1.52, before the Windows rewrite of the code involved (see below).
What operating system (Linux, Windows,...) and version?
Windows 10 22H2
What runtime / compiler are you using (e.g. python version or version of gcc)
>conda info

     active environment : pyinstaller

            shell level : 2

          conda version : 24.9.2
    conda-build version : not installed
         python version : 3.10.14.final.0 # NOTE: THIS IS JUST THE PYTHON IN THE CONDA BASE ENV
                 solver : libmamba (default)
       virtual packages : __archspec=1=skylake
                          __conda=24.9.2=0
                          __win=0=0

What did you do?
Please provide either 1) A unit test for reproducing the bug or 2) Specific steps for us to follow to reproduce the bug. If there’s not enough information to debug the problem, gRPC team may close the issue at their discretion. You’re welcome to re-open the issue once you have a reproduction.
self._maxmsglen is set to 32MB. Note that the crash occurs whether or not the three variables are set to the 32MB buffer.
async with grpc.aio.insecure_channel(
	host,
	# https://github.com/grpc/grpc/blob/master/doc/keepalive.md
	# https://github.com/grpc/proposal/blob/master/A8-client-side-keepalive.md
	options=(
		('grpc.max_message_length', self._maxmsglen),
		('grpc.max_send_message_length', self._maxmsglen),
		('grpc.max_receive_message_length', self._maxmsglen),
		# keepalive ping time out: keep default 20 s
		('grpc.keepalive_permit_without_calls', True),  # allow keepalive pings when there's no gRPC calls
		('grpc.http2.max_pings_without_data', 0),  # allow unlimited amount of keepalive pings without data
		)
) as channel:
	try:
		await asyncio.wait_for(channel.channel_ready(), 9.0)  # <= CRASH IS HERE
            except asyncio.TimeoutError:
                logger.opt(exception=True).error("Timeout connecting to {}", host)

See also example at: https://github.com/vmagamedov/grpclib/issues/135
What did you expect to see?
channel_ready() would normally unblock when ready and continue execution. If the hostname is wrong, the except clause would log the timeout.
What did you see instead?
Application exits with:
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
F0000 00:00:1729530099.825908   18880 grpc_polled_fd_windows.cc:230] Check failed: *from_len <= recv_from_source_addr_len_
*** Check failure stack trace: ***
    @   00007FF9739BC069  (unknown)
    @   00007FF8FC149AE5  (unknown)
    @   00007FF8FC14974C  (unknown)
    @   00007FF97FADB39E  (unknown)
    @   00007FF97FADBE53  (unknown)
    @   00007FF97FAD20E3  (unknown)
    @   00007FF97FAD8D9B  (unknown)
    @   00007FF97FAD7F7C  (unknown)
    @   00007FF97FAD7DED  (unknown)
    @   00007FF8FC12BF88  (unknown)
    @   00007FF8FC1239B3  (unknown)
    @   00007FF8FC145AB3  (unknown)
    @   00007FF8FC13FC70  (unknown)
    @   00007FF8FC140896  (unknown)
    @   00007FF8FC140E6B  (unknown)
    @   00007FF8FC13BB37  (unknown)
    @   00007FF97E6EDF09  (unknown)
    @   00007FF9AE567374  (unknown)
    @   00007FF9AFDFCC91  (unknown)

Make sure you include information that can help us debug (full error message, exception listing, stack trace, logs).
https://github.com/grpc/grpc/blob/3ef7b76a0d8cb80e4fee93c8f164f27a9ef9977c/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc#L227
See TROUBLESHOOTING.md for how to diagnose problems better.
Anything else we should know about your project / environment?
With verbose logging I get (note that this code also has an interceptor, but crash occurs regardless; minimum repro is above):
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
W0000 00:00:1729532742.823173   28388 log.cc:112] Log level DEBUG is not suitable for production. Prefer WARNING or ERROR. However if you see this message in a debug environmenmt or test environmenmt it is safe to ignore this message.
 Called from [<unknown>:-1]
I0000 00:00:1729532742.833912    2940 timer_manager.cc:198] wait ended: was_timed:true kicked:false
I0000 00:00:1729532742.834173   28388 channel_stack.cc:121] CHANNEL_STACK: init CLIENT_CHANNEL
I0000 00:00:1729532742.834185    2940 timer_manager.cc:184] sleep for a 1001 milliseconds
I0000 00:00:1729532742.833971    1772 iocp.cc:76] IOCP::000001EA6961FCB8 doing work
I0000 00:00:1729532742.834252   28388 channel_stack.cc:123] CHANNEL_STACK:   filter client_idle
I0000 00:00:1729532742.834421   28388 channel_stack.cc:123] CHANNEL_STACK:   filter client-channel
I0000 00:00:1729532742.834477   28388 client_channel_filter.cc:1092] chand=Success(1): creating client_channel for channel stack 000001EA7E8EA6D0
I0000 00:00:1729532742.834575   28388 memory_quota.cc:550] Adding allocator 000001EA7ECACC30
I0000 00:00:1729532742.834620   28388 init.cc:130] grpc_init(void)
I0000 00:00:1729532742.834667   28388 credentials.cc:38] grpc_channel_credentials_release(creds=Success(1))
I0000 00:00:1729532742.834988   28388 channel.cc:190] grpc_channel_check_connectivity_state(channel=000001EA7ECAC4A0, try_to_connect=1)
I0000 00:00:1729532742.835118   28388 connectivity_state.cc:174] ConnectivityStateTracker client_channel[000001EA7E8EA8E8]: get current state: IDLE
I0000 00:00:1729532742.835180   28388 client_channel_filter.cc:1534] chand=Success(1): starting name resolution for dns:///merpro2c:31111
I0000 00:00:1729532742.835226   28388 polling_resolver.cc:63] [polling resolver 000001EA7E757B30] created
I0000 00:00:1729532742.835274   28388 connectivity_state.cc:174] ConnectivityStateTracker client_channel[000001EA7E8EA8E8]: get current state: IDLE
I0000 00:00:1729532742.835318   28388 connectivity_state.cc:152] ConnectivityStateTracker client_channel[000001EA7E8EA8E8]: IDLE -> CONNECTING (started resolving, OK)
I0000 00:00:1729532742.835382   28388 windows_engine.cc:326] WindowsEventEngine::000001EA6961FC30 creating AresResolver
I0000 00:00:1729532742.845207   28388 grpc_polled_fd_windows.cc:738] (EventEngine c-ares resolver) fd:c-ares socket: 2440 created with params af:2 type:2 protocol:0
I0000 00:00:1729532742.845355   28388 grpc_polled_fd_windows.cc:502] (EventEngine c-ares resolver) fd:c-ares socket: 2440 ConnectUDP
I0000 00:00:1729532742.845591   28388 grpc_polled_fd_windows.cc:513] (EventEngine c-ares resolver) fd:c-ares socket: 2440 WSAConnect error code:|0| msg:|The operation completed successfully.
|
I0000 00:00:1729532742.845718   28388 grpc_polled_fd_windows.cc:239] (EventEngine c-ares resolver) fd:|c-ares socket: 2440| SendV called connect_done_:true wsa_connect_error_:0
I0000 00:00:1729532742.845804   28388 grpc_polled_fd_windows.cc:393] (EventEngine c-ares resolver) fd:|c-ares socket: 2440| SendVUDP called
I0000 00:00:1729532742.846012   28388 grpc_polled_fd_windows.cc:379] (EventEngine c-ares resolver) fd:c-ares socket: 2440 SendWriteBuf WSASend buf.len:48 *bytes_sent_ptr:48 overlapped:0000000000000000 return:0 *wsa_error_code:0
I0000 00:00:1729532742.846334   28388 grpc_polled_fd_windows.cc:239] (EventEngine c-ares resolver) fd:|c-ares socket: 2440| SendV called connect_done_:true wsa_connect_error_:0
I0000 00:00:1729532742.846427   28388 grpc_polled_fd_windows.cc:393] (EventEngine c-ares resolver) fd:|c-ares socket: 2440| SendVUDP called
I0000 00:00:1729532742.846548   28388 grpc_polled_fd_windows.cc:379] (EventEngine c-ares resolver) fd:c-ares socket: 2440 SendWriteBuf WSASend buf.len:48 *bytes_sent_ptr:48 overlapped:0000000000000000 return:0 *wsa_error_code:0
I0000 00:00:1729532742.846655   28388 ares_resolver.cc:427] (EventEngine c-ares resolver) resolver:000001EA7ECAC7C0 new fd: 2440
I0000 00:00:1729532742.846731   28388 ares_resolver.cc:456] (EventEngine c-ares resolver) resolver:000001EA7ECAC7C0 notify read on: 2440
I0000 00:00:1729532742.846789   28388 grpc_polled_fd_windows.cc:295] (EventEngine c-ares resolver) fd:|c-ares socket: 2440| ContinueRegisterForOnReadableLocked wsa_connect_error_:0
I0000 00:00:1729532742.846859   28388 grpc_polled_fd_windows.cc:316] (EventEngine c-ares resolver) fd:c-ares socket: 2440 ContinueRegisterForOnReadableLocked WSARecvFrom error code:997 msg:Overlapped I/O operation is in progress.

I0000 00:00:1729532742.846972   28388 ares_resolver.cc:518] (EventEngine c-ares resolver) request:000001EA7ECAC7C0 MaybeStartTimerLocked next ares process poll time in 1000 ms
I0000 00:00:1729532742.847075   28388 windows_engine.cc:291] WindowsEventEngine:000001EA6961FC30 scheduling callback:{000001ea7f2c4f00,0000000000000000}
I0000 00:00:1729532742.847201   28388 windows_engine.cc:291] WindowsEventEngine:000001EA6961FC30 scheduling callback:{000001ea7f2c4840,0000000000000001}
I0000 00:00:1729532742.847293   28388 polling_resolver.cc:250] [polling resolver 000001EA7E757B30] starting resolution, request_=000001EA7EC11BA0
I0000 00:00:1729532742.847383   28388 client_channel_filter.cc:1546] chand=Success(1): created resolver=Success(1)
I0000 00:00:1729532742.847508   28388 channel.cc:202] grpc_channel_watch_connectivity_state(channel=000001EA7ECAC4A0, last_observed_state=0, deadline=gpr_timespec { tv_sec:<PHONE_NUMBER>854775807, tv_nsec: 0, clock_type: 1 }, cq=000001EA7EB87280, tag=000001EB6FDDC288)
I0000 00:00:1729532742.847610   28388 windows_engine.cc:291] WindowsEventEngine:000001EA6961FC30 scheduling callback:{000001ea7f2c3370,0000000000000002}
I0000 00:00:1729532742.847685   28388 connectivity_state.cc:118] ConnectivityStateTracker client_channel[000001EA7E8EA8E8]: add watcher 000001EA7EC181F0
I0000 00:00:1729532742.847755   28388 connectivity_state.cc:124] ConnectivityStateTracker client_channel[000001EA7E8EA8E8]: notifying watcher 000001EA7EC181F0: IDLE -> CONNECTING
I0000 00:00:1729532742.847806   28388 connectivity_state.cc:140] ConnectivityStateTracker client_channel[000001EA7E8EA8E8]: remove watcher 000001EA7EC181F0
I0000 00:00:1729532742.847856   28388 windows_engine.cc:253] WindowsEventEngine::000001EA6961FC30 cancelling {000001ea7f2c3370,0000000000000002}
I0000 00:00:1729532742.847958   28388 completion_queue.cc:703] cq_end_op_for_next(cq=000001EA7EB87280, tag=000001EB6FDDC288, error=OK, done=00007FF8FC8827D0, done_arg=000001EA7EC1BF10, storage=000001EA7EC1BF48)
I0000 00:00:1729532742.849644   22700 completion_queue.cc:1068] RETURN_EVENT[000001EA7EB87280]: OP_COMPLETE: tag:0x1eb6fddc288 OK
I0000 00:00:1729532742.849885   22700 completion_queue.cc:959] grpc_completion_queue_next(cq=000001EA7EB87280, deadline=gpr_timespec { tv_sec:<PHONE_NUMBER>854775807, tv_nsec: 0, clock_type: 1 }, reserved=0000000000000000)
I0000 00:00:1729532742.852757   28388 channel.cc:190] grpc_channel_check_connectivity_state(channel=000001EA7ECAC4A0, try_to_connect=1)
I0000 00:00:1729532742.852867   28388 connectivity_state.cc:174] ConnectivityStateTracker client_channel[000001EA7E8EA8E8]: get current state: CONNECTING
I0000 00:00:1729532742.852970   28388 channel.cc:202] grpc_channel_watch_connectivity_state(channel=000001EA7ECAC4A0, last_observed_state=1, deadline=gpr_timespec { tv_sec:<PHONE_NUMBER>854775807, tv_nsec: 0, clock_type: 1 }, cq=000001EA7EB87280, tag=000001EB6FDDC288)
I0000 00:00:1729532742.853071   28388 windows_engine.cc:291] WindowsEventEngine:000001EA6961FC30 scheduling callback:{000001ea7f2c48d0,0000000000000003}
I0000 00:00:1729532742.853161   28388 connectivity_state.cc:118] ConnectivityStateTracker client_channel[000001EA7E8EA8E8]: add watcher 000001EA7EC16BD0
I0000 00:00:1729532742.872124    1772 iocp.cc:97] IOCP::000001EA6961FCB8 got event on OVERLAPPED::000001EA7ECAC2D8
I0000 00:00:1729532742.872306    1772 win_socket.cc:176] WinSocket::000001EA7ECAC2C0 looking for matching OVERLAPPED::000001EA7ECAC2D8. read(000001EA7ECAC2D8) write(000001EA7ECAC318)
I0000 00:00:1729532742.872472    1772 iocp.cc:76] IOCP::000001EA6961FCB8 doing work
I0000 00:00:1729532742.872504   23932 grpc_polled_fd_windows.cc:631] (EventEngine c-ares resolver) fd:|c-ares socket: 2440| OnIocpReadable finishing. read buf length now:|135|
I0000 00:00:1729532742.872770   23932 ares_resolver.cc:533] (EventEngine c-ares resolver) OnReadable: fd: 2440; request: 000001EA7ECAC7C0; status: OK
I0000 00:00:1729532742.872924   23932 grpc_polled_fd_windows.cc:209] (EventEngine c-ares resolver) fd:c-ares socket: 2440 RecvFrom called read_buf_has_data:true Current read buf length:135
F0000 00:00:1729532742.873063   23932 grpc_polled_fd_windows.cc:230] Check failed: *from_len <= recv_from_source_addr_len_

Is it just me or is the check here actually backwards?
CHECK(*from_len <= recv_from_source_addr_len_);
memcpy(from, &recv_from_source_addr_, recv_from_source_addr_len_);
It is doing a memcpy into "from" so it should check that "from" is large enough to hold the data pointed to by "recv_from_source_addr" but instead it checks that the "from" length is less than or equal to the length of "recv_from_source_addr_". So if "recv_from_source_addr_" were actually longer than "from" the check would be fine but the memcpy would overflow "from".

I have a rather interesting update about this. I recently replaced pipenv with uv in a different project. So I thought of trying uv instead of conda to install my project packages, including the grpcio packages. I created a small conda environment and installed just uv 0.4.26 in it. Then I created a uv project file for my app. Then, after uv lock, uv sync, uv run of the same thing, I can no longer reproduce the issue.

For good measure, I downloaded a fresh miniforge installation (renamed the miniforge3 folder, so I got a fresh base env). Then I created a fresh environment with a minimal set of packages for my CLI app:
conda install typer google-api-python-client robotframework==6.1.1 grpcio grpcio-tools ruamel.yaml

This time conda selected Python 3.13.0 (latest, fine by me).

Is it just me or is the check here actually backwards? CHECK(*from_len <= recv_from_source_addr_len_); memcpy(from, &recv_from_source_addr_, recv_from_source_addr_len_);
It is doing a memcpy into "from" so it should check that "from" is large enough to hold the data pointed to by "recv_from_source_addr" but instead it checks that the "from" length is less than or equal to the length of "recv_from_source_addr_". So if "recv_from_source_addr_" were actually longer than "from" the check would be fine but the memcpy would overflow "from".

I agree with you: someone needs to verify this.
(There may be cognitive dissonance in that the first parameter is the destination of the copy, but the variable is named "from". Can we have longer variable names? This reminds me of the "rotation bug" at a previous job. Someone introduced an alternative API to memcpy called MemCpy that had its parameters reversed: first source, then destination. Once I found this, I inspected each call to MemCpy and found the bug that resulted in memory corruption and had eluded the owner for years.)

So apparently this broke for us after c-ares got upgraded to version 1.34.1 in vcpkg. Rebuilding grpc and forcing it to use 1.33.1 instead makes it work again.

So apparently this broke for us after c-ares got upgraded to version 1.34.1 in vcpkg. Rebuilding grpc and forcing it to use 1.33.1 instead makes it work again.

I am actually able to create a suitable environment with conda, because c-ares is listed as an individual package.
Sadly, I am bitten by a different issue so I cannot test the theory at the moment:
https://github.com/protocolbuffers/protobuf/issues/18096

So apparently this broke for us after c-ares got upgraded to version 1.34.1 in vcpkg. Rebuilding grpc and forcing it to use 1.33.1 instead makes it work again.

Can confirm that downgrading c-ares to 1.33.1 fixed the problem on Windows. Ubuntu 24.04 works fine with 1.34.2

This issue appears to be resolved by downgrading c-ares to 1.33.1. The problem seems to originate from the c-ares 1.34.1 update in vcpkg and its interaction with grpc on Windows.  It might be beneficial to report this to the c-ares maintainers for further investigation.

I'm the maintainer for c-ares and the author of the changes that "broke" grpc.  There was a restructuring and modernization change in the c-ares callbacks to override the socket functions, which grpc uses.
From what I can tell, we are doing things correctly in c-ares and this is an inverted length check in grpc that was only now discovered due to this change in c-ares (as was mentioned above by @reinfallt).
This is the current call to recvfrom, which uses struct sockaddr_storage which is proper to be able to handle all address families in a portable manner: https://github.com/c-ares/c-ares/blob/a70637c67ba2657adb54b077f4f8434f00ecbf83/src/lib/ares_conn.c#L52-L59
However, back in c-ares 1.33 and prior, we created our own union containing struct sockaddr, struct sockaddr_in, and struct sockaddr_in6 which is not considered a best practice today:
https://github.com/c-ares/c-ares/blob/5f7816cb70ec7431ec64685fbdb09aa1c3e9a906/src/lib/ares_process.c#L430C2-L455C1
I'm guessing on Linux, the structure size returned is the same, but on windows it is much larger, perhaps because they support additional address classes?  Or maybe just make this structure arbitrarily large.  I haven't looked at the windows headers.
I'm really not inclined to revert to using a union.

@sourabhsinghs you really should re-open this issue since this is indeed a grpc issue

Looks like we need more discussion, reopening this issue.
@yashykt, can you take a look or assign this to some one from Core team?

@yijiem should be familiar with this

Good catch. Just to note that it seems like struct sockaddr_storage is the same size on Windows and Linux: https://godbolt.org/z/qh17fvcP6. It's just that this code is only for Windows.

the issue was the original size was taking the sizeof of struct sockaddr_in (from.sa4) in c-ares, I missed that fact on my first review. That was always wrong in c-ares so correcting a critical flaw triggered an issue in grpc due to a logic flaw there. This code in gprc is clearly wrong. I could submit a simple PR for grpc if this if it helps, but its a 1-liner.

the issue was the original size was taking the sizeof of struct sockaddr_in (from.sa4) in c-ares, I missed that fact on my first review. That was always wrong in c-ares so correcting a critical flaw triggered an issue in grpc due to a logic flaw there. This code in gprc is clearly wrong. I could submit a simple PR for grpc if this if it helps, but its a 1-liner.

Thanks! I have already sent out a PR :).


How i can use it with endpoint?

Can you say something for this?

Can you explain it a bit more or give me an example?

public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
var server = new HttpServer();
server.Configure();
server.Run();
}
    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseRouting();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapGet("/", async context => { await context.Response.WriteAsync("Hello World!"); });
        });
    }
}

info: Microsoft.Hosting.Lifetime[0]
Now listening on: http://localhost:5002
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: C:\Users\kn.sumarokov\RiderProjects\WebRestMock\WebRestMock
info: Microsoft.Hosting.Lifetime[0]
Application is shutting down...
How can I make the service run on port 5002 and start when the application starts?

If you want to run it as a server on a specific port you can do like this:
HttpServer mockServer = new HttpServer(5002);
mockServer.Run();

About endpoints, I don't see any benefits there. The goal of this project is to have a simple mock http server.
The example you sent can be done by simply config the server like this:
mockServer.Config.Get("/").Send("Hello World!");


Make Known Sections work in Tests

Knows Sections is not yet working in the test interface, making it impossible to test for anything other than legal holding.

Resolved in v1.3.1-alpha


Azure Polling Error - Unable to obtain polling URI for DELETE

This is the error I'm seeing:
deleting failed: "azure#updatePollingState: Azure Polling Error - Unable to obtain polling URI for DELETE : StatusCode=0"

This is on DELETE for public ips.
First request:
DELETE https://management.azure.com/subscriptions/27b750cd-ed43-42fd-9044-8d75e124ae55/resourceGroups/colemick-kube-ubuntu-0/providers/Microsoft.Network/publicIPAddresses/kubernetes-a47cd4a662db311e699a7000d3a332e1?api-version=2015-06-15

host:             management.azure.com
User-Agent:       Azure-SDK-for-Go/2.1.1-beta arm-network/2015-06-15
Authorization:    Bearer [omitted]
Content-Type:     application/json
Accept-Encoding:  gzip

First response:
Cache-Control:                  no-cache
Pragma:                         no-cache
content-length:                 0
Expires:                        -1
Location:                       https://management.azure.com/subscriptions/27b750cd-ed43-42fd-9044-8d75e124ae55/providers/Microsoft.Network/locations/westus/operationResults/a647d0d4-0d85
                                -40da-81b2-1cc2bddb8a3a?api-version=2015-06-15
Retry-After:                    10
x-ms-request-id:                a647d0d4-0d85-40da-81b2-1cc2bddb8a3a
Azure-AsyncOperation:           https://management.azure.com/subscriptions/27b750cd-ed43-42fd-9044-8d75e124ae55/providers/Microsoft.Network/locations/westus/operations/a647d0d4-0d85-40da-
                                81b2-1cc2bddb8a3a?api-version=2015-06-15
Strict-Transport-Security:      max-age=31536000; includeSubDomains
Server:                         Microsoft-HTTPAPI/2.0
Server:                         Microsoft-HTTPAPI/2.0
x-ms-ratelimit-remaining-subsc  1189
ription-writes:
x-ms-correlation-request-id:    f048e6b7-129d-491a-89e1-914402006251
x-ms-routing-request-id:        WESTUS:20160608T200944Z:f048e6b7-129d-491a-89e1-914402006251
Date:                           Wed, 08 Jun 2016 20:09:44 GMT
Connection:                     close

First poll:
GET https://management.azure.com/subscriptions/27b750cd-ed43-42fd-9044-8d75e124ae55/providers/Microsoft.Network/locations/westus/operations/a647d0d4-0d85-40da-81b2-1cc2bddb8a3a?api-version=2015-06-15

host:             management.azure.com
User-Agent:       Azure-SDK-for-Go/2.1.1-beta arm-network/2015-06-15
Accept-Encoding:  gzip

First response:
Cache-Control:                  no-cache
Pragma:                         no-cache
Transfer-Encoding:              chunked
Content-Type:                   application/json; charset=utf-8
Content-Encoding:               gzip
Expires:                        -1
Vary:                           Accept-Encoding
x-ms-request-id:                bd18657d-3db6-4d79-a376-4f5b6aaab816
Strict-Transport-Security:      max-age=31536000; includeSubDomains
Server:                         Microsoft-HTTPAPI/2.0
Server:                         Microsoft-HTTPAPI/2.0
x-ms-ratelimit-remaining-subsc  14707
ription-reads:
x-ms-correlation-request-id:    98aae8fe-2c97-41cb-bd2f-52dc4c0ec74e
x-ms-routing-request-id:        WESTUS:20160608T200955Z:98aae8fe-2c97-41cb-bd2f-52dc4c0ec74e
Date:                           Wed, 08 Jun 2016 20:09:54 GMT
content-length:                 148

{
    "status": "Succeeded"
}

But my application receives the error above...

It would be useful to get commit numbers of SDK & go-autorest.

                {
                        "ImportPath": "github.com/Azure/azure-sdk-for-go/arm/compute",
                        "Comment": "v2.1.1-beta-5-g58bd898",
                        "Rev": "58bd898cc040f92390a658f4dd0c0e78b05ae757"
                },
                {
                        "ImportPath": "github.com/Azure/azure-sdk-for-go/arm/network",
                        "Comment": "v2.1.1-beta-5-g58bd898",
                        "Rev": "58bd898cc040f92390a658f4dd0c0e78b05ae757"
                },
                {
                        "ImportPath": "github.com/Azure/go-autorest/autorest",
                        "Comment": "v7.0.4-6-gec603a8",
                        "Rev": "ec603a8ea5ffc45df35c7d948d9acfd6cbc07b46"
                },

@colemickens Try latest commit 4bdf29b. We made some changes around this logic. It might resolve this issue.

@colemickens This is working now I guess.

Yes it is. Thank you @garimakhulbe !


WIP: ecto 3.8 support

I have a question more or less related to this: should Ecto be breaking compatibility in minor releases? Or is ExAudit using some kind of private API that keeps breaking?


Newsletter 13: Add RustGameDev Podcast

Right now it's in the "Learning Material Updates" section because I didn't know where else to put it.  Do we really want it to have its own section?  No idea.
Part of #232 ("Newsletter 13")

Oh, and the logo looks like a good fit for the section's image:

Hijacking the PR

@icefoxen @patchfx r?

Sorry for being out of the loop a bit.  Looks great to me, thanks!


ECONNREFUSED when using URL without https/http prefix

Trying the client with just the Domain lead to an Error thrown by axios "ECONNREFUSED <IP_ADDRESS>:80".
Only after finding https://stackoverflow.com/questions/60557433/axios-request-error-connect-econnrefused-127-0-0-180 I and adding the "http://" or "https://" prefix, it worked.
I suggest to simply adjust the README with "platformUrl: 'https://my-platform-url.jfrog.io/',"

@JohannesLamberts,
Thanks for letting us know.
Following your feedback, we merged https://github.com/jfrog/jfrog-client-js/pull/41.


Updated 3 broken URLs

Description:
Hi Virtualmin Team,
I hope this message finds you well. I have identified some incorrect URL references on the How to Create Virtual Servers documentation page.
I've fixed them and creating a pull request.
Thanks,
Abdullah

Sorry, this had already been fixed before I noticed this PR.
Thank you!


Union of two set

Description
In this issue, I will find a union of two sets.
union of sets is the collection of distinct elements that are present in both set
Eg: set A - {1,2,3,4}
set B - {2,3,5,3,6}
unio of sets A and B is {1,2,3,4,5,6}
Domain
CPP
Type of Contribution
Addition
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of LearnCPP.

\assign

\assign

/assign


add upload docstring

Codecov Report

Merging #32 into master will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master      #32   +/-   ##
=======================================
  Coverage   82.35%   82.35%
=======================================
  Files           8        8
  Lines         289      289
=======================================
  Hits          238      238
  Misses         51       51

Impacted Files
Coverage Δ

ssds/__init__.py
83.50% <100.00%> (ø)

Continue to review full report at Codecov.

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


fix rspec 3.3

split this off from #27

@eitoball can you take a look at my mild changes?

Almost LGTM, see https://github.com/y310/rspec-retry/pull/32#discussion_r34314589
I intentionally didn't use __init_memoize, but I now think that using it is much better. Thanks!


[schemas / editor] Boolean fields within array fields, saves the wrong value after switching between array items

resolved in 7bc7186


Change log update for HTTPS Client V1.0.0 and doxygen update.

Doxygen update for the HTTPS Client library moves the demo usage instructions to their own page. This supports linkage to page and easy finding from AWS Getting Started pages.
Change Log update introduces the first version of the HTTPS Client library to Amazon FreeRTOS.

Checklist:

[x] I have tested my changes. No regression in existing tests.
[x] My code is Linted.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

I will squash commits. So I will merge.


Crash with NV D3D12

I decided to create a general topic in order to tie together the common problem of wrappers.
https://www.vogons.org/viewtopic.php?p=1228733#p1228733
As can be understood from what is described there, there is some problem with new drivers and old hardware.
For example, on the new version of the drivers I have a problem with NFS Underground 2 with dgVoodoo. But if i setup dxwrapper everything is fine.
But with dxwrapper and ForceDirect3D9On12 option i cant play in Space Rangers 2 for example (CTD). Before driver update no have problem.
Both wrappers have a similar problem but manifest themselves differently in different games.

dxwrapper-rangers.log

The ForceDirect3D9On12 option just uses a different API.  I have no control of that code, as that is Microsoft's code.  It is open source though.  You can see the code here.
Some games work fine with that code and some games don't work with it.

I understand, but it started to depend on the driver version, which is not very good...

Understood.  But this is not my code so I have no control over it.  At this time I don't plan on spending time to fix their issue.  I have too many other things to do right now.

Closing this issue.


feat: added affiliate program page

📋 Description
Added Affiliate program page
🔨 Changes Made

Created new file "affiliate_program.html" for the new page
Created new file "affiliate_style.css" for the styles (hover effect, color, etc)
Added the link to the page in "index.html"

✅ Checklist
Before submitting the PR, please make sure you have completed the following:

[x] I have followed all the guidelines mentioned in CONTRIBUTING.md.
[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[ ] I have made corresponding changes to the documentation (if applicable).
[x] I have tested it locally and it works fine.
[x] Any dependent changes have been merged and published in downstream modules.

🏷 Types of Changes
What type of changes does your code introduce? (Check all that apply)

[ ] Bug fix (non-breaking change which fixes an issue) 🐛

[x] New feature (non-breaking change which adds functionality) ✨

[x] UI enhancement (non-breaking change which enhances UI) 🎨

[ ] Documentation update 📚

Fixes #233

📸 Screenshots (if applicable)

Desktop/laptop

Tab

Phone

Thank you for contributing to Research Nexus! We look forward to reviewing your PR and getting it merged!

@Harshdev098 I have made the required changes. Please review it and add the 'hacktoberfest', 'hacktoberfest-accepted', 'gssoc-ext' and 'level3' tags.


What does e.g. full Kinds refer to?

Translating the rest of the readme to Chinese at the moment. What is (e.g. full Kinds) in the below line referring to?
https://github.com/poteat/hkt-toolbelt/blob/b50061014857a564a003fa25a50c3da036ef45a6/readme.md?plain=1#L215

I agree that it's not very clear. Here by 'full Kind', I mean a class that extends the abstract type Kind, i.e. is capable of being applied using $.

Closed by Closed by https://github.com/poteat/hkt-toolbelt/commit/c077c0b335698f04b03401b04859c6eedba91dc2 ✅


Add RenameKeywords transformer

Closes #183

Codecov Report

Merging #194 (ead89df) into main (d9a7cd6) will decrease coverage by 0.01%.
The diff coverage is 97.14%.

@@            Coverage Diff             @@
##             main     #194      +/-   ##
==========================================
- Coverage   97.32%   97.31%   -0.02%
==========================================
  Files          26       27       +1
  Lines        1458     1488      +30
==========================================
+ Hits         1419     1448      +29
- Misses         39       40       +1

Impacted Files
Coverage Δ

robotidy/transformers/__init__.py
100.00% <ø> (ø)

robotidy/transformers/RenameKeywords.py
96.87% <96.87%> (ø)

robotidy/decorators.py
100.00% <100.00%> (ø)

robotidy/transformers/RenameTestCases.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


⚠ T:Riza Community Forum has degraded performance

In 509f395, T:Riza Community Forum (https://community.triza.dev) experienced degraded performance:

HTTP code: 200
Response time: 4335 ms

Resolved: T:Riza Community Forum performance has improved in 08a8bc2.


What are the channels and how to configure them?

Hi, what do you mean with channels? They look like the RF contact codes, is that it?
What should I do to configure contacts to open doors, pIRs and remote controls with 4 buttons?
does the name "o-N" indicate an array?
Could you give me some guidance on how to configure my sensors?
thanks a lot

See the example in readme. Channels are create the link between MQTT messages and RF codes, for example for a for button remote: b-1:[139400];b-2:[139707];b-3:[1398097,1398100];b-4:[139503]
This is a list with the following pattern:  s1:[s2]. Where:

s1 = string used for the MQTT topic, you can use any string you like for example b-1 for button one
s2 = the RF code send or received, this can be a list for example of a cheap remote control sends not one unique code

A button press on button 1 (with sample above) will publish the RC code value on homie/<device-name>/433toMQTT/channel-b-1.
HTH

Hi Mark, thanks for your reply.
What I miss is physically like telling him that the object that transmits
only the radio-frequency code "524745" is a read-only code, which is the
entrance door and that when that code arrives, it means that the door is
open.
Is this a gateway thing or should I implement it on the HA system?
If it does the gateway, does it in OTA or do I need to send the
configuration string via a clinetMQTT?
Specifically of my door opening sensor, the string should be:
Door-Entry: [524745]
and this should publish on
homie / NodeMCU / 433toMQTT / Door-Entry /
A remote control with 4 buttons configure it with:
Remote Control: [124589,124578,124536,124568]
and this should publish on
homie / NodeMCU / 433toMQTT / Remote control /?
Thanks and sorry if I'm a bit slow to understand :-)

Excuse me, a configuration like the following is correct?
"settings": {
    "RemoteControl": "Button-Engage:[139400];Button-Disengage:[139707];Button.Perimetric:[1398097];Button-Panic:[139803];“,
    "Door-Entry":"Active:[524745]",
     "Door-Kitchen":"Active:[524745]",
}

Please have a look at the readme for the config example. Also see Home doc (https://homieiot.github.io/homie-esp8266/docs/2.0.0/configuration/json-configuration-file/)
It should look like  {     "settings": {         "channels": "Button-Engage:[139400];Button-Disengage:[139707];Button-Perimetric:[1398097];Button-Panic:[139803];Door-Entry":[524745];Door-Kitchen:[524745];“     } }
Make sure to not put any line breaks or space into the config string. Also I recommend to use shorter names like b-e etc. since there is a limitation on the size of the entire settings object.

perfect, thank you very much, now it's much clearer.
In practice, the remote control is seen as 4 different push-button devices.
The long names I had given them to be able to clarify my uncertainties.
The configuration of the devices can be done via Web UI in the first boot phase of the gateway or does that phase only concern the configuration of the wifi and the mqtt broker?
If I can not do it via Web UI I have to:
  create a config.json file in the sketch data folder
  upload it to the SPIFFS file system using Tools> ESP8266 Sketch Data Upload?
Again I'm sorry if I'm stressful but I would like to avoid frying my LoLin NodeMcu!
Thanks

according to the indications of
https://homieiot.github.io/homie-esp8266/docs/2.0.0/configuration/json-configuration-file/
the file should be like this:
{
"name": "433toMQTT-Gateway",
"device_id": "NodeMCU_1",
"device_stats_interval": 60,
"wifi": {
"ssid": "MySSID",
"password": "MyPWD"
},
"mqtt": {
"host": "MyBroker",
"port": 1883,
"base_topic": "devices/",
"auth": true,
"username": "MyUser",
"password": "MyPassword"
},
"ota": {
"enabled": true
},
{ "settings": { "channels": "Button-Engage:[139400];Button-Disengage:[139707];Button-Perimetric:[1398097];Button-Panic:[139803];Door-Entry":[524745];Door-Kitchen:[524745];“ } }
}
but all without spaces and on a line?

The Home sample has the full config you must provide on the initial config. If you update config via MQTT you can also do partial updates and only send the settings.

Good morning.
I entered the configuration via OTA, if I understood correctly what to put in the configuration, in the end it was quite simple....
But unfortunately:

the gateway integrates Homie 2.0.1, hopenHAP has the binding for Homie 3.x, when I create the thing it marks it as OFFLINE because it lacks $ state, is it a typical parameter of version 3?
java.lang.Exception: Did not receive mandatory topic topic: homie / gw01 / $ state

feedback on the NodeMCU the same problem that reflected on the sketch of 1 Technophile 433toMQTTto433: it seems that it does not receive data from the radiofrequency.
The receiver mounted on an ArduinoNano with the RCSwitch library works, in fact I was assuming to use the nano as a 433toSerial gateway.
Assuming that the NodeMcu was having problems I tried to change sketches, I found another code that uses RCSwitch to analyze the RF signals, and it works.
As you load your code or that of 1 Technophile the nodemcu part, connects to the wifi, connects to the broker mqtt, sends the keepalive signals and waits for signals, but receives nothing, even trying to change the pin where I connect the RF receiver

Do you have any idea?

https://github.com/homieiot/homie-esp8266 does not support Homie V3 - yet. That is still in development. So auto discovery does not work.

It's a pity, I'll wait impatiently for the new version then.
Thanks a lot!

You don't have to. It works with OpenHab as well, only no discovery but you can configure it in OpenHab manually.
Release of Homie impl. was not that often in the past, so I guess you will have to wait a while until that is implemented. Also this might need me to change the code of the mqtt-433mhz-gateway-homie to adapt. That said it will take time, I would not wait.

humm, is there somewhere explained how to create Button-like objects on openHab that read my channels?

apart from the fact that I must first make it work .... I do not know why but the version of RCSwitch that is in band with the gateway code does not work with my nodemcu, now I'm trying with the test sketch ReceiveDemo_Simple, but it does not go !

You can ask that on https://community.openhab.org but that should be possible, at the end it is only about sending or receiving MQTT commands in OH.

ok, thanks, Bye!

hello, I solved the problem of reception, in practice the nodeMcu wants pin 13 (D7) to receive the RF. Done that works everything beautifully. The RF signals were read and transformed into MQTT messages that I read with HoenHAB.
The doubt is that in the configuration of the gateway I have set only one channel, the channel is used to create a mqtt topic where the values of the received RF signals are written.
Can I create more channels to get a topic for every RF device I use? And can I do it using the mqtt commands? Does it make sense or does not it suit?
Thanks bye!

P.S. is there a way to download from the gateway the configuration file to be modified with a pc and then upload to the gateway with curl?
Thank you

Can I create more channels to get a topic for every RF device I use?
Yes same way like channels for buttons they work in both ways.

And can I do it using the mqtt commands?
Yes, see Homie doc. But it is always updating the entire settings only.

P.S. is there a way to download from the gateway the configuration file to be modified with a pc and then upload to the gateway with curl?

You can do this using MQTT client. The gateway publishes the config during start. It is also logged to the console if you connect it via USB. A real download does not exist. Also CURL upload not only via MQTT.

hello Markus, good morning.
I took a look at the configuration printed via the console:
💡 Firmware mqtt-gateway-livingroom (1.0.0)
🔌 Booting into normal mode 🔌
{} Stored configuration
  • Hardware device ID: a020a6251b5a
  • Device ID: gw01
  • Name: gwp1
  • Device Stats Interval: 60 sec
  • Wi-Fi:
    ◦ SSID: not shown
    ◦ Password not shown
  • MQTT:
    ◦ Host: <IP_ADDRESS>
    ◦ Port: 1883
    ◦ Base topic: homie/
    ◦ Auth? yes
    ◦ Username: not shown
    ◦ Password not shown
  • OTA:
    ◦ Enabled? yes
  • Custom settings:
    ◦ channels: A:[407052];B:[86292];C:[12663];D:[253233];E:[426330];F:[145665];G:[524745];H1:[429246];H2:[429228];H3:[429222];H4:[429220];I1:[102249];I2:[102231];I3:[102225];I4:[102223];L1:[102249];L2:[102231];L4:[102223];M1:[311013];M2:[310968];M3:[310962];M4:[310960]; (set)
↕ Attempting to connect to Wi-Fi...

ho dato anche un'occhiata alla configurazione di Homie:
https://homieiot.github.io/homie-esp8266/docs/2.0.0/configuration/json-configuration-file/
but I think I'm looking at the wrong documentation.
I still do not understand how to define objects.
How can I indicate that A is a sensor, which must have its own topic and that when I receive a radio signal that reads 407052, homie must write in the PIPPO topic the value ON?
How to tell him instead that H is a remote control that sends 4 different radio stations: ON(429246), OFF(429228), PERIMETER(429222), PANIC(429220)?
I can not find any syntax to use or to report on how the logic of the program behaves.
Thanks, ciao!

Hello,
the config looks ok. The channels work in both ways sender & receiver. If ran RF signal is received the gateway will transform that into MQTT message.
Same applies for the sensor. If on 407052 a RF signal is received you get an MQTT message on homie/gwp1/channel-A with the sensor value.
Best is to test with some MQTT client like: mosquitto_sub -h <IP_ADDRESS> -v -t '#' - plus username and password and see which messages are received.
Markus

Hi Markus, thanks for the information.
This morning I completed the configuration using the published information as the gateway publishes and working on the openHAB rules.
Now I managed to get what I wanted, a system parallel to my alarm system that can give me information on what triggered the alarm at home.
I only have to complete the gateway with the RF transmitter in order to activate or deactivate the alarm.
Thanks again for the suggestions and the patience and congratulations for the excellent work done with the gateway.

👍 closing this issue then.


New page for running ASH disconnected and link to it from azure-stack-disconnected-deployment.md

Details and nuances of running Azure Stack Hub in a fully disconnected environment that's hyperlinked from the azure-stack-disconnected-deployment.md page.

@GKAYED : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Hi @GKAYED - Thanks for your pull request. A member of the content team will review it.

Hi @PatAltimore - Could you review the proposed new article? If it's approved, it will need to be moved to the private repo for automated validations, staging, and comprehensive PR review. Thanks.
(PRMerger assigned you automatically; should someone else be assigned for review?)

Hi @GKAYED,
Thanks for the contribution. Unfortunately, I can't approve the submission as is. There are several issues dealing with metadata, links, style, and conventions that require fixing before this would meet the publishing criteria.
Most of this content exists in other articles. Did you find something that was missing? Or was it difficult to find the information?
Thanks,
Pat

@GKAYED : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@GKAYED : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@GKAYED : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@GKAYED : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@GKAYED : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@PatAltimore , Apologies changes didnt sync from VS Code. Can u pls double check. There should be updates now to styling, metadata, and all links should hopefully be updated. Let me know if there are still issues.
You're correct I thought it'll be helpful to have one article for all aspects of running ASH fully disconnected and combine all relevant information instead of finding info in so many places.

Hi @GKAYED,
I'm going to request closing this PR. I sent you an internal email about it.
Thanks,
Pat
#please-close

Excellent. Thanks Pat
From: Pat Altimore @.>
Sent: Tuesday, 1 March 2022 1:08 PM
To: MicrosoftDocs/azure-stack-docs @.>
Cc: Ghaith Kayed @.>; Mention @.>
Subject: Re: [MicrosoftDocs/azure-stack-docs] New page for running ASH disconnected and link to it from azure-stack-disconnected-deployment.md (PR #1815)
Hi @GKAYEDhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FGKAYED&data=04|01|Ghaith.Kayed%40microsoft.com|ff70a0ed28dc44da074f08d9fb179def|72f988bf86f141af91ab2d7cd011db47|1|0|637816901164086208|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=RKqOvz%2F723YZMYM%2FT%2FdW0uK4GkEvecAHuhzBL%2BPnfrI%3D&reserved=0,
I'm going to request closing this PR. I sent you an internal email about it.
Thanks,
Pat
#please-close

Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-stack-docs%2Fpull%2F1815%23issuecomment-1054835423&data=04|01|Ghaith.Kayed%40microsoft.com|ff70a0ed28dc44da074f08d9fb179def|72f988bf86f141af91ab2d7cd011db47|1|0|637816901164086208|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=umKZHpqG88x79FIHcPfwVXryg13scGz5aVq5Xy6EFMo%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FANPI2T7WWMHVZRIQXD7KOIDU5QE73ANCNFSM5MDPPWOQ&data=04|01|Ghaith.Kayed%40microsoft.com|ff70a0ed28dc44da074f08d9fb179def|72f988bf86f141af91ab2d7cd011db47|1|0|637816901164086208|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=dBhYItZBIi1ezFve5yYjok%2BM%2BAF%2FDwRyVbk8hV2PYBo%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01|Ghaith.Kayed%40microsoft.com|ff70a0ed28dc44da074f08d9fb179def|72f988bf86f141af91ab2d7cd011db47|1|0|637816901164086208|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=u39rBDMULvD5yCUPoyBxSMrob7hPZbdwXHMZA8iHOI0%3D&reserved=0 or Androidhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01|Ghaith.Kayed%40microsoft.com|ff70a0ed28dc44da074f08d9fb179def|72f988bf86f141af91ab2d7cd011db47|1|0|637816901164086208|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=GsMTZ5AIyM%2Bz%2BO6B4pXXeTko0KvJnCmouPSn2R5CTXA%3D&reserved=0.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Only Microsoft employees can close issues or pull requests via commenting in this repo.


Add configuration for supported languages when deployment

What?
The repo could have a lot of translations, however it might not be necessary to use all of them when deployment. We should have a configuration for:

Default language: hardcoded or use device settings.
List of supported languages.

If there are only two languages, a toggle should be applied. If there are more than two languages, a picker should be applied.

I can implementing Portuguese Brazillian translation. I will start work in this now.
The toggle what you say is only on Introductions Scene, can we maybe change this section to a list on click like menu in main screen?

Thanks for understanding. Both language picker in onboarding screen and main screen needs to be excluded from the PR. We will add configuration for them in later PR https://github.com/CovidShield/mobile/issues/29

@akinncar, it's already done in this PR: https://github.com/CovidShield/mobile/pull/25

There is additional works after PR https://github.com/CovidShield/mobile/pull/25, but I need to coordinate with UX team to finish it. Thanks Akinn and Candido


Page editor doesn't show changes for Dashboard 2.0

What I'm trying to achieve
… I have a brand new install. I am trying to edit the "About" page from Dashboard 2.0 (Configure -> Pages -> About).
Steps to reproduce the problem

Go to Configure -> Pages -> About
Change the text under the Content box.
Save
See that http://localhost:8000/en/page/about/ is the same as before.

What I expected to happen
… I expect that the text on the about page changes.
But anything I change under the "content" box doesn't show on the live version of the website. But the title does correctly change once saved, just not the content. I have made sure that it is marked visible too. Interestingly enough, while the new "content" isn't updated, it is saved so that the next time you view it in Dashboard 2.0, it is still there.
System information
Operating system: Linux
Browser: Firefox

Hi!
Did you set in your environment variables/settings.py USE_JSON to True to enable the new formatting? By default we set USE_JSON to False to temporarily keep compatibility with the old dashboard.

Thank you for reaching out!
So, now with USE_JSON enabled, it shows correctly in the original storefront on localhost:8000, but still not the new storefront which I have running on localhost:3000. I've cleared my cache and restarted the server, but it's not showing. When using the original Dashboard the new storefront updates immediately.

okay, I see I can make a query for it under:
page.contentJson
But it's not been fully implemented at the moment.

If you pass it back through Draft-JS again by adding it into the ReactJS page component, then the content can be displayed appropriately.

Well I now see storefront #305. But it looks like the products were updated to use the JSON format, but not the pages.

Alright. Got it all fixed with RichTextContent I believe. Shall I submit a pull request?

Good to know. So that's an issue with the storefront 2.0 now, thanks for your contribution! 👍  I'm closing as it's now concerning the other repository and you managed to make the changes https://github.com/mirumee/saleor-storefront/pull/426.


STM32F4 memory map is wrong.

The 192k of RAM in the STM32F4 is not contiguous. There are actually three different banks, two of which share one memory range, and a third bank of CCM which is at a different address range. The memory map for the STM32F4 should begin:
  "  <memory type=\"rom\" start=\"0x00000000\" length=\"0x100000\"/>"       // code = sram, bootrom or flash; flash is bigger
  "  <memory type=\"ram\" start=\"0x10000000\" length=\"0x10000\"/>"        // ccmram
  "  <memory type=\"ram\" start=\"0x20000000\" length=\"0x20000\"/>"        // sram

Just replace the two lines starting with the first line quoted above with those three lines, that is the entire patch.


can change the number of decimal place of money in the trade

Is your feature request related to a problem? Please describe.
The max number of decimal place of money is forced to be 4 but some users may not want 4 decimal places.
Describe the solution you'd like
Users can change the max number of decimal place of money in the trade by themselves.

I added this limit to avoid calculation errors in Java. I can also move this limit to 6 or 8 decimals but I won't completely remove this.

Done with #395


Order of imported (or exported) values is not respected between dev and prod env

Bug report

What is the current behavior?
Order of imported values (when using import * as values) is not respected between dev and prod environment
If the current behavior is a bug, please provide the steps to reproduce.
foo.js:
export const W = 'w';
export const A = 'a';

bar.js:
import * as values from './foo.js':

console.log(Object.keys(values));

webpack 4 dev + prod will output ['W', 'A'];
webpack 5 dev will output ['W', 'A'];
webpack 5 prod will output ['A', 'W']
What is the expected behavior?
It should, at least, be the same between dev and production environment for webpack 5, and would be best to keep the same ordrer as declared (like webpack 4 or dev in webpack 5)
Other relevant information:
webpack version: 5.3.1
Node.js version: 14.13.1
Operating System: linux
Additional tools: webpack-dev-server

What is use case?

It's not really a use case but in our app we have some wrapper in front of react router where we get our routes like this:
import * as Routes from './routes.js`

then later we do a switch
<Switch>
    {Object.keys(Routes).map(route => {
         ...
    })}
</Switch>

It broke our application on webpack 5 prod, because Switch rely on order to match: first matching = first display. Since we have a NOT_FOUND route to handle bad routes, every route named after it (in alphabetical order) was no longer working. It's easy to understand once you know it, but pretty hard to debug this.

/cc @sokra

The spec requires alphabetical order, but for technical reasons we can't ensure that when commonjs interop is involved. But in a pure ESM we should make sure it's in that order.

You really shouldn't rely on this order though, even if it's alphabetical, it's pure code smell when you start renaming your routes.. Better use an index.js and export an array with the list of routes imported in the correct order


Photo Output Size

Can one define the output Size of the Photo captured?
I mean I would like to have the Output Photo Exactly implying to what I see in the Preview.
Would any setting on the SCPhotoConfiguration be of any help?
I am using the preset AVCaptureSessionPresetHigh which corresponds to 1080*1920 I believe. Any help here?

@renjithn I facing your both two issues, the same recording for both photos/video switching presets and how make the output image look with the same aspect ratio of the preview. How did you solve these issues ?

@janselr Switching camera preset is an expensive process. Didnt have any other choice but to use the same preset for both photo and video capture. I think snapchat does the same.

[_recorder capturePhoto:^(NSError * _Nullable error, UIImage * _Nullable image) {
_capturePhoto = [image cropToSize:CGSizeMake(image.size.width, image.size.width)];
[_recorder stopRunning];
}];
alright, i get it ,,,,we should crop the image ourself...


Music not properly looping

Issue in HTML version in at least mech build screen and Port map. Potentially other areas, needs more testing.

Music is also not looping in first narrative scene

Also verified on desert map


Add icons to extension

I think Browserslist icon will be good here

You can take logo from our official repo.

Added and icon, thanks


[Dataplane] DevCenter: Mark local admin status on devbox as readonly (this is a spec update to match service behavior)

Choose a PR Template
Switch to "Preview" on this description then select one of the choices below.
Click here to open a PR for a Data Plane API.
Click here to open a PR for a Control Plane (ARM) API.
Click here to open a PR for only SDK configuration.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Microsoft.DevCenter


Python is not working

I can't get this to work with python. I have installed the package with pip, pip install ses_verify_identities
a snippet of code in my cdk stack that is relevant for this construct
from ses_verify_identities import VerifySesEmailAddress

VerifySesEmailAddress(self, "SesEmailVerification",
<EMAIL_ADDRESS>)

the out put error message is
Traceback (most recent call last):
  File "app.py", line 16, in <module>
    AvailCdkDevStack(app, "AvailCdkDevStack",
  File "/Users/josh/Development/avail_cdk_dev/.venv/lib/python3.8/site-packages/jsii/_runtime.py", line 83, in __call__
    inst = super().__call__(*args, **kwargs)
  File "/Users/josh/Development/avail_cdk_dev/avail_cdk_dev/avail_cdk_dev_stack.py", line 44, in __init__
    VerifySesEmailAddress(self, "SesEmailVerification",
  File "/Users/josh/Development/avail_cdk_dev/.venv/lib/python3.8/site-packages/jsii/_runtime.py", line 83, in __call__
    inst = super().__call__(*args, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'email_address'
Subprocess exited with error 1

any ideas what Im doing wrong?

I am seeing some other people having issues with jsii, i think that may be the issue for python users, -> https://github.com/aws/jsii/issues/2929

@joshdlee Not sure how I could you there.. I subscribed the issue to get notified about updates there, e.g. if I can fix something in the code. Or if you have an idea, please let me know.

To add more context here: https://aws.github.io/jsii/user-guides/lib-author/typescript-restrictions/
The key snippet being

Interfaces
The jsii type model distinguishes two kinds of interfaces:
Behavioral interfaces, which can declare methods and properties
Structs, which are immutable pure data entities, and can consequently only declare readonly properties
A name convention is used to distinguish between these two: behavioral interfaces must have a name that starts with a I prefix, while structs must not have such a prefix.

The issue is that the construct props are being specified as a behavioral interface rather than a struct because they are prepended with an I (IVerifySesDomainProps and IVerifySesEmailAddressProps). This doesn't just affect Python, all non-Typescript versions of this library will not work due to this issue.
There's two potential fixes:

Drop the I from the prop interfaces
Use type hinting to coerce the interfaces into structs: https://aws.github.io/jsii/user-guides/lib-author/hints/#forcing-an-interface-to-be-considered-a-struct

Option 1 would be a backwards incompatible change for current Typescript users, but the most correct. While 2 wouldn't break anything for existing Typescript users. I'll go ahead and send a PR for option 2. I'll leave it up to @seeebiii if he wants to pursue option 1 in a future major version release.

@seeebiii this can be closed now that #502 has been merged to main