raidboss trigger development rule question

English is not my native language; please excuse typing errors.
I've created a trigger for GolbezEx's Gale Sphere mechanic, and I receive all four upcoming texts when the first sphere appears. Subsequently, I delay their output by 6.5, 10, and 13.5 seconds, respectively. However, to achieve this, I must create four separate triggers.
The issue that arises is that I don't need to receive the required text in the output for the next three outputs; instead, it is obtained in the output of the first trigger and then saved in data for use in the subsequent three triggers. However, this violates the 'no outputStrings in trigger' rule.
If I adhere to this rule, users would have to repetitively modify their output text four times.
What should I do in this situation? Thank you!
Code Details Image

I've created a trigger for GolbezEx's Gale Sphere mechanic, and I receive all four upcoming texts when the first sphere appears. Subsequently, I delay their output by 6.5, 10, and 13.5 seconds, respectively. However, to achieve this, I must create four separate triggers.

Before creating a new trigger, I might suggest looking at the Gale Spheres trigger that's already in place for the Golbez Normal raid, as it already handles that mechanic.
https://github.com/quisquous/cactbot/blob/main/ui/raidboss/data/06-ew/trial/golbez.ts
It's been a minute, but iirc, I think I shamelessly copied the logic for that trigger from valarnin's original (still WIP) PR #5425 for Golbez Ex.  Regardless, I would suggest keeping the same trigger logic that's used for Golbez normal for GolbezEx unless there's a reason to deviate (and iirc, I don't think there is).
But as to the code in your PR: it's hard to tell without seeing the full code, but I'm not sure I see a need to do four separate triggers, since I think your regex for each trigger (looks) identical.  It should just be a matter of capturing each cast, sticking the directional info in data.[whatever] (if that's even necessary).

The issue that arises is that I don't need to receive the required text in the output for the next three outputs; instead, it is obtained in the output of the first trigger and then saved in data for use in the subsequent three triggers. However, this violates the 'no outputStrings in trigger' rule.

Again, hard to say without seeing the rest of the code, but the reason you're getting that rule is because infoText expects a string to be returned as output.  If you're only performing logic operations and not returning a value to be presented to the user as an alert, you can use run instead of infoText.
Hope that helps!

First of all, thank you for your response.
I did indeed forget to check the trigger for the normal difficulty or the existing PR, and I appreciate the reminder.
However, I'm currently not planning to submit it to the main branch. I'm using TypeScript to help me develop my custom triggers temporarily. There's still a lot for me to learn, so for now, I'm just asking about this particular rule.
If needed, my complete code is here
The reason I divided it into four parts is that it would be very confusing if the text was read all at once. So, I designed it to display all safe zone texts first, and the TTS (Text-to-Speech) announces the next safe zone after each judgment. Personally, I believe this is more "disability-friendly," so I did it this way. I think I need to use infoText, and I don't need outputString.
So, maybe I can "ignore" this issue? Or is there a way to manually bypass it, like //@ts-ignore?
Once again, thank you for your response!

I find // eslint-disable-next-line to disable error, Maybe this is what I need.

// eslint-disable-next-line rulesdir/cactbot-output-strings will do it more narrowly as well and not disable other errors.
And yeah, the underlying reason for this rule is that it makes it more clear to users where the output is coming from if every trigger has its own output strings. There's no way to know in the cactbot config ui that to modify the output of trigger B that you should find trigger A and modify it instead.
It's not a perfect solution and it makes things awkward in situations like this where you have one trigger with all the logic and several other triggers to call things out. Even if you do things like endsinger-ex's const orbOutputStrings and just outputStrings: orbOutputStrings for each trigger, it still does mean that users have to fill in each of them redundantly.
I think there is probably a use case for "trigger set output strings", where the triggerset itself has some shared set of output strings that users can fill in once and that apply everywhere. I think I'd still maybe want cactbot developers to fill in which outputstrings are used so we could display that in the UI though? Alternatively, maybe some way of grouping triggers together that say "hey all of these four triggers use this set of outputstrings", but the ui for that is less clear.


Enhancement: NodeJSON support for *bt.UTXO

Add node json marshalling and unmarshalling to *bt.UTXO.
Also, add string representation to sighash flags.

Codecov Report

Merging #80 (df34515) into master (ea790cc) will decrease coverage by 0.90%.
The diff coverage is 46.42%.

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

@@            Coverage Diff             @@
##           master      #80      +/-   ##
==========================================
- Coverage   85.02%   84.11%   -0.91%
==========================================
  Files          30       31       +1
  Lines        3059     3117      +58
==========================================
+ Hits         2601     2622      +21
- Misses        318      353      +35
- Partials      140      142       +2

Impacted Files
Coverage Δ

output.go
92.00% <0.00%> (-8.00%)
:arrow_down:

txjson_node.go
50.35% <0.00%> (-5.20%)
:arrow_down:

utxojson.go
54.09% <54.09%> (ø)

utxo.go
75.00% <75.00%> (+5.76%)
:arrow_up:

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 ea790cc...2bffe92. Read the comment docs.


custom command

the custom command is to send command exactly as used in SMS?

It depends on the protocol. You need to ask vendor for documentation for your device. For some protocols format for SMS and GPRS commands is different.

hello tananaev is there gt06n custome command works with opengts database ? or by api is it working now or only 2 command works till with api ? engine stop and engine start ?

I don't think you can use commands API with OpenGTS. Custom command is available for all protocols.

but is there anything new ? we did try before but only works engine stop and engine start so i can use all command can work with gt06n with traccar ? how i can send custome command if works ?

There is a special type of command where you can provide raw message to the device.

is there document or readme  ? for me so i can use it ?

No, but you can look at the default web interface for code example.


Feat/recipes controller

recipes controller: create a new recipe and get all recipes from a user.

get, update and delete a recipe


Aspect ratio and positioning improvements of digital signature images.

It would be nice to have a locked aspect ratio of inserted signature images during resizing. Also, when the signature images are scaled too small, they can no longer be dragged into position.

I forgot to add comment so will as part of this issue ticket but
Press and hold ctrl which changing size to maintain ratio!
As for it being to small I'll try address this but haes to do..


Issue with Imacron and imacron accent placement in variable font export

The issue is only with Imacron and imacron in variable font export.
These are working:

All other I and i glyphs with accents
All other macron accent placements
Static font exports
UFOs

The Glyphs file looks correct. The misplacement in the variable font is visible in Adobe InDesign and FontGoggles.
In FontGoggles:

In InDesign:

In Glyphs:

The problem only happens when you export with gftools builder? Or does it also when you export with Glyphs?
Is the font in a public repo?

Is it a scale composite by any chance?


Fixing an issue with duplicate let definition of a destructured catch param

The destructured catch param are let bindings. Any duplicate definition of them inside the catch block is an error. So when assigning registers we don't have to look for duplicate symbols in the function body.

@akroshg @pleath Can you please take a look?


Absence Trigger resetting on different source

It seems that the AbsenceOdeTrigger is resetting on a different source, therefore not correctly taking the source filter into account.
I have not dived into the source too deeply, but this seems to apply to all trigger's PostProcessFrame handlers.
Also, on first run all absence triggers fires on frame 0.  This makes sense but is not really usable as it introduces a false-positive event.

@rjhowell44 herewith some print action output
Print action on occurrence trigger
Trigger Name    : src-8-1-trigger-occurrence
  Unique ODE Id : 284
  NTP Timestamp :<PHONE_NUMBER>805959000
  Source Data   : ------------------------
    Inference   : No
    SourceId    : 7
    BatchId     : 3
    PadIndex    : 7
    Frame       : 24501
    Width       : 1920
    Heigh       : 1080
  Object Data   : ------------------------
    Class Id    :<PHONE_NUMBER>
    Occurrences : 1
    Obj ClassId : 2
    Tracking Id : 5
    Label       : Person
    Confidence  : -0.1
    Left        : 596
    Top         : 504.265
    Width       : 280
    Height      : 341.471
  Min Criteria  : ------------------------
    Confidence  : 0
    Frame Count : 1 out of 1
    Width       : 0
    Height      : 0
    Inference   : No

Print action on absence trigger (absence trigger added after occurrence trigger)
Trigger Name    : src-8-2-trigger-absence
  Unique ODE Id : 285
  NTP Timestamp :<PHONE_NUMBER>806050000
  Source Data   : ------------------------
    Inference   : No
    SourceId    : 0
    BatchId     : 4
    PadIndex    : 0
    Frame       : 24488
    Width       : 1920
    Heigh       : 1080
  Object Data   : ------------------------
    Class Id    :<PHONE_NUMBER>
    Occurrences : 0
  Min Criteria  : ------------------------
    Confidence  : 0
    Frame Count : 1 out of 1
    Width       : 0
    Height      : 0
    Inference   : No

Thanks @jlerasmus,  this has been fixed.


Query String Manipulation

I want to create a static 1:1 copy of a Joomla website and manipulate the query strings so that I can redirect them correctly via the .htaccess.
example.com/?foo=bar -> example.com/foo_bar/
I know that this tool was primarily created for SEO purposes, but it would be nice if there was a solution for this.
Thanks again for making this tool available to the public, but I think it's a shame that there is no community support. Discord and Reddit are not usable and there have been no answers here for a long time.

Hi @GitHub-Mike,
the tool was not created with the aim of being a tool only for SEO, but to be usable for crawling, analyzes of all kinds and at the same time to be able to export a website into an offline form.
Could you please be more specific about how it should work and what specifically the tool should do differently for your purpose (e.g. based on some new --flag)?

@GitHub-Mike, I understand now. Thank you. The main reason why I decided to replace query parameters with a short, but unique enough hash, is the limitation on the length of the filename (or the whole file-path) on the disk.
The query string and the overall URL, by default, can be up to 2000 characters, in some browsers/technologies for example 32 767 characters/bytes. File names on Windows/Linux/macOS can only be 255 characters/bytes. And a full path on Windows can be only 260 characters, on Linux or macOS it is between 1024 and 4096 characters/bytes.
Another reason is that the characters and escaping supported in the query string are very different, but the characters that can be used on different operating systems or filesystems are very limited. Creating a very reliable set of replacement rules would be very time consuming.
But to help you, I will introduce some new flag that will disable this hashing and will only do some basic replacing of ?, & and =. Replacement will be for some little-used characters that are not commonly used in URLs, but can be used in filenames on most platforms/filesystems. In this case it will be possible to implement the URL rewrite as you plan it.
However, if you (or anyone who uses it) have slashes and other special characters in the query string that are not supported as file-names on the given operating system/filesystem, this will cause problems when saving or when viewing pages offline. The same applies to URLs and query strings that are too long.  Also in the documentation I will state that this feature should only be used with caution.
After a short research it seems that these could be the characters below. Works on all common platforms. The ones you suggested are all very commonly used characters in URLs or query strings.
contact?foo=123&bar=456 -> contact!foo(123)bar(456.html
? => !
= => (
& => )

I will also consider the option to let the user define the replacements himself, e.g. using:
--offline-url-replacement='?>! =>( &>)'. So pattern FROM1->TO1[space]FROM2>TO2.
For separating rules, a space is more convenient and less conflicting than, for example, a comma.
This could be the most universal option. In the documentation the above recommended example will be mentioned, however, the user can then substitute other characters for his web, which would cause him problems when saving or browsing the web.
What do you think?

I read your message again and my last suggestion is very similar to yours: --rewrite-query-structure='/([^&]+)=([^&]*)(&|$)/' -> '$1-$2_'.
Your solution with regular expressions is even more versatile, but more complex for the amateur user. However, the possibility will be there and the amateur user will have to try harder, but the advanced user can implement more complex scenarios with the help of regexp.
I therefore vote for the option you suggested, i.e. the --rewrite-query-structure switch, which can be introduced repeatedly for more replacement rules. They will be executed in the order in which they are listed when the CLI is called.
Do you agree?

! ( ) is not a good idea, because these are "Reserved Characters" and they need a percent-encoding. See: https://datatracker.ietf.org/doc/html/rfc3986#section-2.2

I will also consider the option to let the user define the replacements himself, ...

This is a very useful decision, because you can never foresee all eventualities.

For separating rules, a space is more convenient and less conflicting than, for example, a comma.

Yes, that would work.

Your solution with regular expressions is even more versatile, but more complex for the amateur user. However, the possibility will be there and the amateur user will have to try harder, but the advanced user can implement more complex scenarios with the help of regexp.

Yes, that's how I would assess it too.

I therefore vote for the option you suggested, i.e. the --rewrite-query-structure switch, which can be introduced repeatedly for more replacement rules. They will be executed in the order in which they are listed when the CLI is called.

OK, this should also be included in the documentation with an example. Perhaps the --replace-content parameter could then also be explained.

@GitHub-Mike can you please try the current version from master with this commit?
The description of the parameter can be found only in README.md. It will be available on the website after the next release.
Usage examples (simple and regexp):

--replace-query-string='= -> (' --replace-query-string='& -> )'
--replace-query-string='/([^&]+)=([^&]*)(&|$)/ -> $1-$2_'

As already mentioned here janreges/siteone-crawler-gui#3, I made a pull request today and then carried out a crawl with one of the new parameters.
--replace-query-string='= -> -' --replace-query-string='& -> _' --replace-query-string='? -> __'
Result: /path/news?start=3 --> /path/news.start-3.php.html
Even if ? has not been replaced by __, a pattern can be formed.
I will test the regex tomorrow.
However, there are a few other problems with incorrect paths that I will have to analyse tomorrow.

In the course of implementation I realized that ? is only the leading character of the query string, but the query string itself no longer contains ? at all, only the key=value pairs and using & to concatenate all pairs. Therefore, there is no need to replace ?. Btw, if someone uses the foo[]=bar array definition in the query string, he can replace also [ and ].
But I understand that if you want to define mod_rewrite rules, the ? replacement character would be useful. If this is necessary, let me know. I'll make sure the ? is there (if query string is not empty), so it can be replaced as you need it. I don't think anyone is using this new feature yet, so we can still afford to make this bc-break.

I am of the opinion that you always have to find a compromise between flexibility and simplicity. My suggestion would therefore be to leave the functionality of the --replace-query-string parameter as it is and to address another point that I have already briefly mentioned above.
My wish would be to create the option of omitting / configuring the file extensions. So instead of /path/news.start-3.php.html I would like to have /path/news.start-3 . But not only for URLs with query strings, but generally for all URLs the file extension should be omitted or made configurable.
I assume that you split the URL anyway, then you could also reassemble it configurably with variables. However, adjusting the file extension would be enough for now. But, of course, you could also solve the problem of ? -> __ as well. Should I create a separate issue for this?
During yesterday's run, I also noticed a few errors when rewriting the path names, which then caused 404 errors. However, I don't know whether these were caused by changes in the course of this issue or by your general changes to the code. This also raises the question of whether to create separate issues.
What do you think about my comments?

On the website crawler.siteone.io you will find somewhere in the roadmap that my goal is to enable (e.g. through some --flag) to generate exported website in such a form that it is then possible to use simple rules in Nginx or mod_rewrite in Apache to ensure the functioning of such a website, ideally on the original URLs, as it was with the original site. Alternatively, run the site locally with a mini webserver, such as binserve, spark, tiny-http, etc.
My goal is to be able to use this tool also in the CI/CD framework to run automatically maintained static copies of the site, in case of failure of the dynamically generated site.
Please open a separate issue on this topic. I believe that together we will be able to implement it in the next few days.
The way the export works now is really for without the local disk. There the files must have the *.html extension, otherwise it is not possible. And if the site also uses URLs with query strings, that's another complication.

My goal is to be able to use this tool also in the CI/CD framework to run automatically maintained static copies of the site, in case of failure of the dynamically generated site.

OK, that would be a good application. In combination with a health check service, automatic switching could then also be implemented.

Please open a separate issue on this topic. I believe that together we will be able to implement it in the next few days.

OK, I think if we keep at it now we can take the project to another level and also create a very useful tool for the creation of static websites.
With the speed of the run yesterday, you could even use it for stress tests. :-)

The way the export works now is really for without the local disk. There the files must have the *.html extension, otherwise it is not possible.

OK, I hadn't realised until now that the focus was on "offline" and that the migration of dynamic websites to a static version was not the goal at all. But I could have guessed from the parameter names. :-)

And if the site also uses URLs with query strings, that's another complication.

Yes, but by integrating the query string into the file name, a simplification is realised. In the end, the page as a static version is a page like any other, which only needs its own file name. Of course, care must be taken to ensure that the links are correct.


Use voluptuous for APCUPSd

Description:
Migration of the configuration check to voluptuous.
Related issue (if applicable): fixes 127528299
Example entry for configuration.yaml (if applicable):
apcupsd:
  host: IP_ADDRESS
  port: PORT

@flyte @dale3h , would be nice if you could take a look at the changes and run a quick test. Thanks.

@flyte @dale3h We are releasing 0.27 in about 16 hours from when I am writing this comment. It would be great to see more goodies like this make it in. Can you confirm the changes are okay by testing it?
Thanks!

Hey guys, voluptuous looks cool. I'd love to check it out but I won't be afforded any time to "play on my computer" this weekend. I'll certainly have a look during the week though if it's still required.

@fabaff binary_sensor and sensor are good to go. I don't have APCUPSd network daemon setup, so I am unable to test the component.

LGTM 🐬


Profile page

This PR adds Person's Profile page

There's a bug that can happen when navigating to your own profile.  If you start at Ron's profile and click the "Profile" link in the header:

The url updates to /People/johndoe
The profile link gets highlighted
The page does not update to show johndoe's information

Example screenshot


Several dev tool labels are cut off

Either larger buttons or adding tooltips to the buttons would be great.

Might as well fix this by making the sidebar resizable. I'm working on it but not gonna make any promises. Soon though, hopefully.
Demo


fluid.voiceallocator initial docs

@tremblap
Overview patch update and added help patch for fluid.voiceallocator with a basic tab and an extra musical example tab.

Added a bufvoiceallocator help patch with an audio example. Also made some slight layout tweaks to the rt voiceallocator help patch.


Memcached::isComplete() should always be false

I realized that out of all the shipped adapters, memcache is really the only one that doesn't have reliable storage. This PR addresses #20 's concerns entirely within the memcache adapter.

This should be closed. There was a misunderstanding about how this caching mechanism works.
@deviantintegral, This memcache adapter stores everything as one key. That makes it safe for evictions since the cache is all-or-nothing.

Do we think there needs to be a docs update for this? The implementation is OK for simplicity, but it leads to performance problems with S3 buckets with a very large number of files.

Caching is, and will always be, very much tailored to the use-case. This caching is only usable for (relatively) small sets of files indeed. Or for cases where speed is less important but many files are addressed. Developers should be aware of this, I'd say. Don't know if a docs entry in flysystem is going to help here with that though, but I'm open to the idea.


GenericHttpRelayClient : Support specifying a timeout via configuration

https://github.com/callawaycloud/apex-transactional-outbox/blob/main/force-app/main/default/classes/GenericHttpRelayClient.cls would need to be updated to start monitoring for the timeout key being present.
If not present, could continue to use OOTB Salesforce limit.

great idea...  I was just about to create a ticket for a whole bunch of upgrades to the GenericHttpRelayClient

Updated this ticket to track some of the other improvements:

[ ] Support specifying a timeout via configuration
[ ] Support specifying which HTTP status codes are considered success (string[])
[ ] Support setting headers
[ ] Unit Tests


Need to calculate the background-class loss for Multi-class Segment?

The content of your work is great and gave me a lot of ideas. But I have some questions that I haven't figured out. For multi-class segmentation, such as (ACDC dataset), will your dice loss and bl_loss calculate the four types of losses of 0, 1, 2, 3? Does not calculate the loss of 0 (background) to make the effect better? What kind of thinking are you based on?

Hi,
So far, I have experimented multi-class by treating the background (class 0) as yet another class. The rationale actually stems from the binary case.
When there are only two classes, the background is the perfect negative of the foreground; therefore its distance map is simply the reverse of the other one, it doesn't bring much new value so we can skip it.
This property is obviously not true anymore in multi-class (at least in the general case), so I started by supervising the background. Skipping it might still work, but for other reasons (indirrect supervision), and it might vary depending on the task.
Does that answer your question?
Best,
Hoel


Poor Performance of Classes vs Plain JavaScript Objects in Immer 10.0.2 vs 6.0.3

🐛 Bug Report
This is sample that illustrates a problem we are having with our real use of Immer, but is simplified for this issue report.
We have a piece of data with 12 simple numeric fields.
We have a version of it that is a plain JavaScript object.
We have a version of it that is a JavaScript class.
In Immer 6.0.2, mutating with produce is about the same speed with both the Class Instance and Plain JS Object.
In Immer 10.0.2, mutating with produce, the class instance is about 5x slower than the Plain JS Object.
Note that in Immer 9.0.21, plain objects are slower than 6.0.2, but about the same speed as Class Instances, so it seems this is an active area of development.  It's nice that 10.0.2 is faster than 6.0.2 for Plain JS Object.  However, the perf issue that remains for class instances is significant.
We are targeting 120,000 object mutations per second (on top of other work) and that 5x multiple has a meaningful, negative performance impact.  (We have 2000 objects and there's a target 60 FPS update).
The class is very simple here.  Nothing fancy.  No getters, etc.
class Foo {
	[immer.immerable] = true;
  	a = 1;
  	b = 2;
  	c = 3;
  	d = 4;
  	e = 5;
  	f = 6;
  	g = 7;
  	h = 8;
  	i = 9;
  	j = 10;
  	k = 11;
  	l = 12;
}

vs an instance of this plain JS Object:

{
  "a": 1,
  "b": 2,
  "c": 3,
  "d": 4,
  "e": 5,
  "f": 6,
  "g": 7,
  "h": 8,
  "i": 9,
  "j": 10,
  "k": 11,
  "l": 12
}

Link to repro
(be sure to view the JS Fiddle Console to see the console output)
Here's our sample code running JS Fiddle with Immer 6.0.3:
https://jsfiddle.net/csz37eb0/1/
"class",<PHONE_NUMBER>861023
"object", 221
"x slower with class", 1.0506787343262547

Here's our sample code running JS Fiddle with Immer 10.0.2:
https://jsfiddle.net/bop856g1/2/
"class", 489.5
"object", 93.7000002861023
"x slower with class", 5.2241195144649675

To Reproduce
Sample code provided in the JS Fiddles.
Observed behavior
mutating a simple class instance is 5x slower than equivalent plain JS Object.
5x is significant.  Also, Immer 6.0.3 had them about the same speed.
Expected behavior
Same or almost same speed for a simple class like this.
Environment

Immer version 10.0.2
Mac M1
Chrome Version 116.0.5845.187.

This likely relates to the setUseStrictShallowCopy(true); has been default back to false in 10.0 for plain objects. Possibly it should be possible to enable loose mode for classes as well, but for classes it is a bit more dangerous than plain objects.

Closing for inactivity

inactivity? I mean, who is supposed to work on this? I reported the issue, and it's still an issue. I'd like to see this worked on :-)

I'm not trying to be snarky or "play a card"! What was the question asked?  The only comment I see
"This likely relates to the setUseStrictShallowCopy(true); has been defaulted back to false in 10.0 for plain objects. Possibly it should be possible to enable loose mode for classes as well, but for classes it is a bit more dangerous than plain objects."
doesn't read like a question.
I spent quite a lot of time tracking down and writing the examples that show the performance issue.  If there's a way I can help, I'm open to that, though I was hoping that the developers who had done the work and had the context might be able to improve it, given it was faster in the past.
Thanks.

Ok that is good to know.
The question was basically whether setUseStrictShallowCopy was used or not. 10.0.4 might expose different perf characteristics btw, as the iteration mechanism slightly changed (didn't find a difference in my tests). Over time we did change the iteration method a few times, and the bottleneck is probably getOwnPropertyDescriptors right now, which is slow but also the one that doesn't miss any props, nor finds anything that it shouldn't (properties coming from a prototype etc). So I'd expect that a large deal of the speed loss is the cost of being correct in the corner cases (which is also why the option was added to disable parts of that)

You can see the code from the tests in the jsfiddle's linked in the original issue report.
setUseStrictShallowCopy(true);
was not used.
If I add that to the version of the test that used Immer 10.0.2, indeed it is faster.  1.21x slower with class vs. 5.33x slower without it.  So indeed, that is the lion's share of the difference.
And yes,  do think I saw getOwnPropertyDescriptors show up in my profiling.
Any advice on how to determine whether our use of Immer will be impacted by setUseStrictShallowCopy(true);?
You do explain it somewhat above, but what I'd be curious for is how to determine whether our logic is dependent on the factors you mention.

This solution might be worth further investigation https://jsfiddle.net/ht9xm2zf/, see #1107. Didn't think through yet what it'll break though.

right, that's what I had just tried. and yes, it makes it faster.
however, do consider it, I'll have to "think through yet what it'll break".
since we ran ok with immer 6.0.2, does that suggest we are likely not going to break?
also, does the change impact non-classes?

Our suite of exotic scenarios grew vastly over the years, so things that might not have been working correctly in 6, but were irrelevant for your case, might now fail simply because they are tested, where they weren't in the past. E.g. own, string based property is like 98% of the cases that Immer needs to handle. But the remaining 2% is a state explosion of string / number / symbol * enumerable / non-enumerable * own / proto * value / getter / setter / getter + setter configurations that all have impact on reflection. So that is 48 scenarios that need to be work correctly, multiplied by the flags Immer itself offers. And not all of them were considered in the past.

ok, thanks.  we are going to test with setUseStrictShallowCopy(true); and I suspect that will address it for us.
sorry that I did not understand that you were asking us to try that last September.  I thought you were leaving an "internal comment".
I think given the information provided and our initial resaults/understanding, it's ok if you prefer to close the issue.  I guess the alternative would be to provide a way to "test if this object requires the more complex logic" so that there was a clear(er) criteria for evaluating use of setUseStrictShallowCopy.

yes, I tried it and commented yesterday (above) that indeed it restored the performance.

Hey dude，you can visit limu doc and paste the code below ( most of them is your code ) to to browser console，then you will see a faster result.
class Foo {
  	a = 1;
  	b = 2;
  	c = 3;
  	d = 4;
  	e = 5;
  	f = 6;
  	g = 7;
  	h = 8;
  	i = 9;
  	j = 10;
}
function test(name, o){
	const start = performance.now();
	console.time(name);
	for (let i=0; i<100000; i++) {
		produce(o, proxy => {proxy.a = i; });
	}
	const stop = performance.now();
	const elapsed = stop - start;
	console.log(name, elapsed);
	return elapsed;
}

// test simple class instance
const thing1 = new Foo();
const time1 = test("class", thing1);

// test plain JavaScript with same information
const thing2 = JSON.parse(JSON.stringify(thing1));
const time2 = test("object", thing2);

const ratio = time1/time2;
console.log("x slower with class", ratio);

(@fantasticsoul  marked above as spam as I consider it bad form to compete in the issue trackers of other projects, that is what blogs, twitter, talks, newsletters etc etc are for. Immer doesn't post in the ImmutableJS tracker, React not in Angular etc etc, regardless whether the content is relevant and accurate).

Perf improvements have landed as https://github.com/immerjs/immer/releases/tag/v10.1.0!


api: add eds to config dump #3362

Commit Message:
add EndpointsConfigDump message to support EDS in config_dump.proto
(not implemented in Envoy)
Additional Description:
Risk Level: Low
Testing: N/A
Docs Changes: N/A
Release Notes: N/A
Signed-off-by: Yutong Li<EMAIL_ADDRESS>/cc @fuqianggao @alexburnos

I will implement this in Envoy later.


Updated ckan to 1.6.11

Thanks!
For reference, our usual commit message format is formula version, e.g. ckan 1.6.11; I adjusted it when pulling.

Sorry, didn't know that. I'll make sure to do that for future commits


"failed to download or apply critical settings."

Whenever i try to open bloxstrap, this error pops up, what do i do to resolve it? or do i just delete the old launcher.

That doesn't seem like a Bloxstrap-related issue. Try uninstalling Bloxstrap to revert back to the stock launcher, and see if the issue still persists.

sorry for the delay, it works fine without bloxstrap, maybe i need to reinstall bloxstrap?

Sure, go ahead and try.

it works now, thanks for the help

but i am having trumble to play


Optimize create_screen

I noticed it took more time than I would expect for c-edit to start up. Looking into it with valgrind --tool=callgrind pointed me to the addend function called from create_screen.
Repeatedly calling addend unnecessarily traverses the linked list a lot of times. Instead call addfront which does not traverse the list.
This changes the time complexity of create_screen from O(n^2) to O(n).

Wow! nicely spot :) It does significantly increase editor's speed. I will merge it right away. Thanks for taking the time to check it.


[SPARK-37625][WIP] update log4j to 2.15

What changes were proposed in this pull request?

Why are the changes needed?

Does this PR introduce any user-facing change?

How was this patch tested?

Can one of the admins verify this patch?

This CVE issue have no impact on spark, we don't need to do anything.  I don't think we need to update to log4j2

This CVE issue have no impact on spark, we don't need to do anything. I don't think we need to update to log4j2

@AngersZhuuuu
Could not disagree more. I'm seeing Log4J version 1.2.17 being used in the Spark 3.2 image (build from latest) that we are deploying. This version was EOL way back in 2015 already. This PR needs highest possible priority to ensure that this CVE is definitely not affecting Spark as well as make it future proof for the foreseeable future.
source: https://logging.apache.org/log4j/1.2/

CVE-2021-44228 affects only log4j2, so current log4j:1.2.17 doesn't need to be updated to fix the issue.
See https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228 for a more details.
However it is recommended to update because of https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-17571

https://nvd.nist.gov/vuln/detail/CVE-2019-17571 impacts on log4j 1.2.*

This fix seems incomplete based on: https://logging.apache.org/log4j/2.x/manual/migration.html

CVE-2021-44228 affects only log4j2, so current log4j:1.2.17 doesn't need to be updated to fix the issue. See https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228 for a more details. However it is recommended to update because of https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-17571

Unfortunately there is CVE-2021-4104 which is a new similar CVE issued for Log4j 1.x, in addition to CVE-2019-17571.

Attaching some previous discussion regarding migrating from Log4j 1.x to 2.x
We have this issue from 2015 https://issues.apache.org/jira/browse/SPARK-6305
where a lot of information can be read regarding the problem with dependencies and bumping log4j to 2.x
Regarding CVE-2021-4104 @bradbm stated, supposedly this only affects if you have JMSAppender on your Log4j configuration, which Spark doesn't use by default. If your application uses JMSAppender you can see mitigations here https://access.redhat.com/security/cve/CVE-2021-4104 so you're not vulnerable.

Even if spark is vulnerable to a very specific case this time, using a log4j version that is no longer maintained by Apache itself is not consistent at all.
If migration issues have been identified since 2015, I'm quite surprise it has been fixed since ...

I am afraid you are working parallel on this: https://github.com/apache/spark/pull/34895

@dannymeijer @cchantep @3333qwe et al - folks, nobody's dumb here. In fact, per above, this has been tried a few times over the years. The short summary is: Spark is easy to update to log4j 2, as it really does not use a concrete logging framework. But that doesn't change what its dependencies (mostly Hadoop) do.
This change is not nearly sufficient, unfortunately, so I'd close it in favor of the duplicate, which is another try and farther along.


WIP: steady Navier–Stokes by natural parameter continuation

This is extends the creeping flow over the backward-facing step from ex24 to finite Reynolds number using pacopy.natural parameter continuation in the Reynolds number.
This example is twice the length of the previous longest (ex04 and ex24) and still requires substantial rewriting and tweaking, but it's starting to take form and starting to work so I thought I'd share it early.
It also motivates the proposal to add ‘milestones’ to nschloe/pacopy#5 (so that the solution can be obtained at specified values of Reynolds number).
Natural parameter continuation is preferred to arc-length continuation (pacopy.euler_newton) as used in ex23 and discussed in #119 because there's no attempt here to track bifurcation, so the solution is monotonic in the parameter.  Physically, the bifurcation involves three-dimensional effects; see, e.g.

Barkley, D., Gomes, M. G. M. & Henderson, R. D. (2002). Three-dimensional instability in flow over a backward-facing step. Journal of Fluid Mechanics, 473, 167–190. doi: 10.1017/s002211200200232x

An interesting way to structure the example. I guess it's related to pacopy and its interface? I'll read it more carefully later.

An interesting way to structure the example. I guess it's related to pacopy and its interface?

Yes, for pacopy

The only thing the user must provide is a class with some simple methods, e.g., a function evaluation f(u, lmbda), a Jacobian a solver jac_solver(u, lmbda, rhs) etc.

I figured that since a class was needed anyway, I might as well pack the other data and methods in it too.  It can be judged at the end whether this is clearer or more cumbersome.
(While working on this, it also occurred to me that a similar structure might be useful for abstracting time-stepping, where the residual function f would also depend on the rate of change of u and the jacobians with respect to u and its rate of change would be the stiffness and mass matrices, respectively, but that's for later.)

Once this is done, quite a lot of code could and should be shared with the creeping version, ex24.

Ah, I had the indices around the wrong way on the vector-gradient!  Is the order of indices documented somewhere?  (I'm not sure that it shows up in the elastic examples because the tensors there are symmetric.) Anyway, after 1aaa7f0, I'm getting the right answers now, like Barkley, Gomes, & Henderson (2002).  Something like $u_j v_{i,j}$ would be written u[j] * dv[i][j]which makes sense, but I had been thinking more like $u_j \partial_j v_i$ which led me astray.

It doesn't take too long to run now (about a minute and a half, depending on fineness of mesh and parameters for Newton iteration and continuation, etc., the hardware), but here are some results.

The messy Reynolds numbers are an artefact of pacopy.natural, hopefully to be fixed by nschloe/pacopy#6.

Impressive work. I believe this starts to be ready for merge?

Thank you.  (I confess that I am quite excited about this one.)
Before merging, I would like to sort out the steps in the Reynolds number.  They really should be at round values, as, e.g., by Gartling (1990, §3):

The backward step flow was formulated and solved as a steady flow problem.  In order to obtain a solution for the specified Re of 800, a series of steady state solutions were obtained at intermediate Re-values of 200, 400 and 600.  Zeroth-order continuation was used to advance from one Re solution to another.  The indicated sequence of steps in Re does not represent an optimized path to the final required state but was selected for convenience and with a view towards comparing solutions at other standard conditions.

The adoption of pacopy.natural might have been premature; its use here will probably involve lots of tweaks and that might be unreasonably disruptive upstream.
Locally,  there's also:

refactoring with the creeping version in ex24

(I haven't decided what the best way to do that is, or about what was perhaps charitably described as an ‘interesting way to structure the example’; the big class makes this example seem more different to those preceding than it really is.)

organizing the sequence of viscous incompressible flow examples in the documentation (ex20, ex18, ex 24, this), as mentioned in #150

but they could be deferred till after merging.

O. K., nschloe/pacopy#6 has been accepted so the natural parameter continuation hits a list of specified Reynolds numbers (150, 450, 750) and plots the stream-lines there.  I think this is ready to merge.

In the course of developing this example, I learnt numpy.einsum and was impressed.  It occurred to me that it might be possible to use it to write a higher-level interface to the bilinear_form and linear_form decorators in skfem.assembly.asm, something like FEniCS's UFL or nutils.expression.


Update tooltip styles to match design system

Describe the issue
The tooltip styles for warning and error classes are different than the updated styles from the design system.

class
production
design system

warning

error
none; existing classes are light, dark, & warning

I've been meaning to get to this @kelsey-taylor ! I should have time this week.


[Question]: What do PromptTypes actually do?

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
I know llama_index.core.prompts.PromptType is an enum, but what is it actually meant to be used for?  Why not just let the prompt content/message itself determine the LLM behavior?
Presumably, there is some check somewhere in the code for it, but if I am effectively just writing custom query engines through the query pipeline interface and, in so doing, using InputComponent or PromptTemplate, does it remain applicable?
The PromptTemplate usage guide does not touch upon it.

They are used under the hood for unit testing and mapping prompts to some expected output
They aren't mentioned in the docs because they aren't really meant to be used by users 😉


More verbose modes for report --how display

-v    ... result + name
-vv   ... result + name + content of out.log
-vvv  ... result + name + content of all log files

Nice idea! Perhaps one adjustment: What about showing log paths in verbose level 2 and the whole log content in level 3?

Now it prints:
-v    ... result + name
-vv   ... result + name + path to logs
-vvv  ... result + name + path to logs + content of out.log

Now looks great! Thanks much for the improvements. Added a couple of minor changes. Seems we'll need to improve Common._indent() to nicely handle multiline keys as well, for now added a content key, so that the full output is correctly indented.


Recompile module after applying ids

Pull Request Description

related: #11022
Changelog:

update: force module re-compilation after applying the IdMap

Important Notes

@JaroslavTulach mentioned this is not related to #11022. Besides this would also cause problems on startup with some methods not being present (#10921)

Discussed with @hubertp


Add border parameter for Card widget

After #641  and new release of version 4.1.1 this border still in my widget. So i look for it and found in Card widget:

I cant change it in Card and also in ThemeData:

So i hope we can change this border in both Card and CommandBarCard. Thank you so much.

You can change the color of the border by updating ThemeData's .resources:
ThemeData(
  // use .light or .dark accordingly
  resources: ResourceDictionary.light(
    cardStrokeColorDefault: Color(0xFF753287),
  ),
),

@bdlukaa thank you sir, its worked! But i hope we will have color parameter for this widget some day, because everytime i want to change border color for specific card, i need to add it to Theme and copyWith, it cause my code a litte longer.


Exact frame rate versus tolerances in mappings

The mapping in question is urn:x-nmos:cap:format:grain_rate where is currently needs to be the "exact frame rate" to match the  Sender/Flow/SDP in NMOS Parameter Register. From ST2110-20

exactframerate Signals the frame rate in frames per second.  Integer frame rates shall be signaled as a single decimal number (e.g. “25”) whilst non-integer frame rates shall be signaled as a ratio of two integer decimal numbers separated by a “forward-slash” character (e.g. “30000/1001”), utilizing the numerically smallest numerator value possible.

This can be at odds with base-band/EDID workflows were the tolerance of a pixel clock can skew the grain_rate. There is also the  Display Range Limits EDID A2 (section <IP_ADDRESS>) which gives the total possible range of values that could be important.
❓ Is this information required for interoperability
➡ Proposed Solution: we can spec the min/max on a rational for grain_rate to include the tolerance
    "urn:x-nmos:cap:format:grain_rate": {
      "enum": [
        { "numerator": 2403125, "denominator": 40338 } // 1920 x 1200 @ 60Hz
      ],
      // Expressing the tolerance
      "minimum": { "numerator": 9131875, "denominator": 161352 },
      "maximum": { "numerator": 3364375, "denominator": 53784 }
    },

For sure, urn:x-nmos:cap:format:grain_rate parameter constraints can use minimum and maximum rather than exact match enum values.

Ahh! I was too slow editing the comment.
As per our call today, this is a near future item which we need to evaluate when making implementations; When bridging ST2110/IPMX/EDID will this need to be specified?


Revert "Origin/add flags skip data load"

Reverts GoogleCloudPlatform/oracle-database-assessment#134

Approve


Update Player Bio “brandi-1”

Automatically generated by Netlify CMS

👷 Deploy Preview for dynamic-cheesecake-5fbd8b processing.

Name
Link

🔨 Latest commit
8a00d846bd14c9f55c2975ed94dcb6e0989f9dec

🔍 Latest deploy log
https://app.netlify.com/sites/dynamic-cheesecake-5fbd8b/deploys/62ec43055a1bee0008ebade3


parser misses from_type model

We have two models, Schools & Drivers.
When we read the notification text of a school, we notice that {from} does not refer to the from_type which is Driver, but to the to_type which is the School model itself.
We expect that {from} to return the driver model, based on from_id, but that does not happen.
We are using polymorphic as true in the settings.
Any idea? we also tried to refer to the demo https://github.com/Astrotomic/notifynder-demo but did not get any info to fix our issue.
Please help.

Hey,
sorry for the super long delay.
Have you solved your issue?
I've issued a new build on travis to check if any requirement changed.
https://travis-ci.org/fenos/Notifynder/builds/217067644
I'm sure that we have also a test that covers the from_type. Will search for it later and post it here.
And in general we also use the polymorphic option and it works. But will digg into it tomorrow.
Is your code available for me or should I recreate it from your description?

Closed due to inactivity.


Remove require_weight_at_most from XCM Transact

This is a continuation of https://github.com/polkadot-fellows/xcm-format/pull/55 following the migration of XCM RFCs to this repo.
Summary
Remove the require_weight_at_most: Weight parameter of the Transact instruction.
Motivation
The UX of using Transact is not great, and one part of the problem is guesstimating this require_weight_at_most.
We've seen multiple Transacts on-chain failures caused by the "incorrect" use or the parameter. In practice, this parameter only adds UX overhead. Use cases fall in one of two categories:

Unpaid execution of Transacts - in these cases the require_weight_at_most is not really useful, caller doesn't have to pay for it, and on the call site it either fits the block or not;
Paid execution of single Transact - the weight to be spent by the Transact is already covered by the BuyExecution weight limit parameter.

We've had multiple OpenGov root/whitelisted_caller proposals initiated by core-devs, completely or partially fail because of incorrect configuration of require_weight_at_most parameter. This is a strong indication that the instruction in its current form is hard to use.

@xlc @bkchr @seadanda I think this is good to propose on-chain, wdyt?

/rfc propose

/rfc process 0xff7432136fbaa2c74352e316264820c79078f2b0550d41de6e7e901e4f748833

Just belatedly confirming that removing require_weight_at_most won't conflict with Snowbridge's upcoming Transact bridge. 👍


Update env_stocktrading.py

when reset, but keep the balance, the total_asset value should be calculated as the summation of (previous_state[0] + current_price x num_of_share_owned).

In the reset, shouldn't self._initiate_state() be called after self.day = 0?


HTTP-119 - Fix bug where default Java TrustStore was not used when no cert-related properties were used.

Description
Fix bug where default Java TrustStore was not used when no cert-related properties were used.
Resolves Public certificates should not have to be supplied as they should be picked up from the jvm
PR Checklist

[x] Tests added

@grzegorz8 @davidradl  could you take a look?
@davidradl I Think this should solve the problem you reported.
Could you check it from the branch?

@kristoffSC Friendly nudge. I assume this one is going to be processed before https://github.com/getindata/flink-http-connector/pull/117. We are wanting to put 117 in, we have a circumvention for the public certs , as we can just supply them.

@kristoffSC Friendly nudge. I assume this one is going to be processed before #117. We are wanting to put 117 in, we have a circumvention for the public certs , as we can just supply them.

Krzysztof seems to be less available recently. @davidradl Could you take over the PR and apply your suggestions? Or rather  create a new PR. I'll be happy to review it.

@kristoffSC Friendly nudge. I assume this one is going to be processed before #117. We are wanting to put 117 in, we have a circumvention for the public certs , as we can just supply them.

Krzysztof seems to be less available recently. @davidradl Could you take over the PR and apply your suggestions? Or rather create a new PR. I'll be happy to review it.

That sounds good. I will take this one over - unless I hear otherwise form @kristoffSC

@grzegorz8 @kristoffSC looking into this.

@kristoffSC  @grzegorz8 I have done quite a lot of testing and asking round our team what our requirements are. It looks like the best option for us is actually @kristoffSC s fix . I need to slightly amend it as it does not quite work as expected - due to the way serverTrustedCerts is handled- it defaults to "" which end up as an array of 1  "" element, so the default is not obtained when expected. I will amend the fix and put up for review.

I have coded this in https://github.com/getindata/flink-http-connector/pull/128.
sorry I did not manage to keep you original commit @kristoffSC.

The issue was resolved in https://github.com/getindata/flink-http-connector/pull/128. Extra tests were added in https://github.com/getindata/flink-http-connector/pull/130.


⚠ Bofrost.nl has degraded performance

In 9933c4f, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 10642 ms

Resolved: Bofrost.nl performance has improved in 5cdbca2 after 27 minutes.


Books for Angular, Not AngularJS

While I was doing a PR (#4898), I found that there are only 2 books posted here for the latest Angular Framework that too in the AngularJS section.
Angular != AngularJS

The AngularJS is old (2014-15), it's the version1.x
When it reached v2, The developers of it decided to rename it Angular.
So, Angular is the latest (Currently, latest release has a version of 10.x).

I suggest to either open a new section for Angular or differentiate the existing b/w AngularJS and Angular.
One book  I know for it is the official website docs.

I strongly agree with this, it's especially a problem when a resource is named at the source as AngularJS, but gets put in the repo as Angular.js which I've commented on in the past. It's unclear if Angular.js is even referring to Angular or AngularJS.
AngularJS is version 1, something which has been deprecated for a long time, and will no longer get updates after 2020.
Angular is the current version of Angular, which most people learning about it probably only care for this one.

Good idea to separate the two. When you do it, you might look through pending PRs so new items don't go in the wrong place.

While the above PR (#5124) only adds a couple of books in english, There are still others (free-courses and other languages) that might have this issue.
I think this Issue should stay open for a while

thanks @U-C-S

I'm currently reviewing this in other files

reopen as an issue; not practical to use as a PR


Question:  Use VS Code Debugging in CLI project, i.e. use F5 to launch project, and debug in VS Code?

Please provide us with the following information:

OS?

Windows 10.

Versions.

Please run ng --version. If there's nothing outputted, please run in a Terminal: node --version and paste the result here:
@angular/cli: 1.0.0-rc.0
node: 7.6.0
os: win32 x64
@angular/common: 2.4.8
@angular/compiler: 2.4.8
@angular/core: 2.4.8
@angular/forms: 2.4.8
@angular/http: 2.4.8
@angular/platform-browser: 2.4.8
@angular/platform-browser-dynamic: 2.4.8
@angular/router: 3.4.8
@angular/cli: 1.0.0-rc.0
@angular/compiler-cli: 2.4.8

Repro steps.

Was this an app that wasn't created using the CLI? What change did you do on your code? etc.
Trying to use F5 to launch CLI project in VS Code.

The log given by the failure.

Normally this include a stack trace and some more information.
NA

Mention any other details that might be useful.
I am trying to find a supported way to enable debugging a CLI project in VS Code by launching the application using F5.

Thanks! We'll be in touch soon.

I've been able to debug in VSCode using the Debugger for Chrome extension, and a launch config similar to this:
 {
            "name": "Launch Client",
            "type": "chrome",
            "request": "launch",
            "url": "http://localhost:4200/#",
            "port": 9223,
            "sourceMaps": true,
            "diagnosticLogging": true,
            "webRoot": "${workspaceRoot}",
            "runtimeArgs": [
                "--disable-session-crashed-bubble",
                "--disable-infobars"
            ],
            "userDataDir": "${workspaceRoot}/.vscode/chrome"
        }

It doesn't actually start the app inside VSCode, but if you start it outside (ng serve) then you can hit F5 to launch the debugger part.

When I use the above configuration I get an exception on the polyfills.bundle.js

Thank you! Works with this configuration.

Closing as fixed.


[Storage] Add new copy_source_tags option to start_copy_from_url()

STG82 adds a new option for synchronous copy operations that is called copy_source_tags. This option allows callers to specify whether to copy or replace source blob tags during a copy operation.
NOTE: The generated code for this change includes code for other STG82 features as well, which will be implemented in other PRs.

API changes have been detected in azure-storage-blob. You can review API changes here
API changes
+             copy_source_tags: Optional[str] = ...,
+             copy_source_tags: Optional[str] = ...,


Using Guzzle within Timber

I'm just curious if anyone has any experience implementing guzzle within Timber.
I have guzzle installed with Timber using composer.
Then just to test it out I added the following within page.php:
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('GET', 'https://api.github.com/repos/guzzle/guzzle');
$context['feed'] = $response->getBody();

In the template I dump the feed:
<pre>{{ dump(feed) }}</pre>

Which produces:
object(GuzzleHttp\Psr7\Stream)#255 (7) {
  ["stream":"GuzzleHttp\Psr7\Stream":private]=>
  resource(259) of type (stream)
  ["size":"GuzzleHttp\Psr7\Stream":private]=>
  NULL
  ["seekable":"GuzzleHttp\Psr7\Stream":private]=>
  bool(true)
  ["readable":"GuzzleHttp\Psr7\Stream":private]=>
  bool(true)
  ["writable":"GuzzleHttp\Psr7\Stream":private]=>
  bool(true)
  ["uri":"GuzzleHttp\Psr7\Stream":private]=>
  string(10) "php://temp"
  ["customMetadata":"GuzzleHttp\Psr7\Stream":private]=>
  array(0) {
  }
}

Any thoughts on how I can pull the content from the guzzle request correctly into the Timber context? Ideally, it would also involve converting the JSON data to an array that can be looped through in Twig.

Did you try json_decode($response->getBody(), true); ?

Ah perfect, that's exactly what I needed to do.  Thanks @marciojc!


Wrong output of ResampleImage

Hi,
I tried to resample an image of nii with command ResampleImage 3 Input.nii.gz Output.nii.gz 256x256x150.
But the output is a file of only 1kb.
What is the problem?
Thank you

You can access the help for the program for ResampleImage by typing just the program name, i.e.,
$ ResampleImage
Usage: ResampleImage imageDimension inputImage outputImage MxNxO [size=1,spacing=0] [interpolate type]
  Interpolation type:
    0. linear (default)
    1. nn
    2. gaussian [sigma=imageSpacing] [alpha=1.0]
    3. windowedSinc [type = 'c'osine, 'w'elch, 'b'lackman, 'l'anczos, 'h'amming]
    4. B-Spline [order=3]

Since you didn't specify the sixth argument, the program assumes you're specifying the geometry of the image by spacing which is probably not what you want.

Hi, Nick.
Actually, I tried ResampleImage 3 AX_T1.nii.gz AX_T1_RS.nii.gz 256x256x150 [size=1,spacing=0] as well. But just got ResampleImage: No match.

Actual usage should be
$ ResampleImage 3  AX_T1.nii.gz AX_T1_RS.nii.gz 256x256x150 1

It works now.
Thanks a lot, Nick!

Great.


SharePayload.Commit() never completes if the panel is dismissed (Android)

On multiple Android devices (but not iOS):
If you pop up the sharing panel with await payload.Commit(), then dismiss it without choosing a sharing action, the task never returns, the await never completes, and the containing task is deadlocked.
On iOS, the task completes as expected, returning a bool.
Unity 2021.3.x, OPPO w/ Android 12 (among others.)
We've found that this plugin: https://github.com/yasirkula/UnityNativeShare doesn't have the same problem, but it returns a three-way enum (Shared, Not Shared, Unknown) – which makes me wonder if it's just an unhandled case on the Android side.

Unfortunately I'm a bit strapped for time, otherwise I'd try to work up a minimal test case for you – appreciate your work on this!

Hey @mattdw this is a known issue. Android doesn't report when the user cancels the share action. We will be adding a way to cancel the task, but not in the next release. Gonna keep this issue open till we add the workaround.

This will be fixed in NatShare 1.2.7.

Fixed in NatShare 1.3.


Offline Decryptor Tool Doesn't Seem to Work

I created a test note to try using the offline Decryptor Tool. However, it doesn't work.
Can anybody confirm this issue?
Password: 123
Decrypted Text: "Test"

{
"version": "2.0",
"hint": "Password is 123",
"encodedData": "/nCpAPfr6v/EbLmLdW4VmzJC8HuF30a0ZmMlXq3YQOahx3Cd8V1XujyoPDkbzOk9McqRjA=="
}

should be fixed in v2.3.0


Decode memory usage

I am trying to decode a file that was written using bincode. The file is 22,8MB but when I'm decoding it, the memory usage jumps to 7.5GB and it takes about 15 seconds. When it's loaded to memory the memory usage doesn't drop and the struct I'm trying to load shouldn't take that much space.
I also added decode limit to 54MB (53MB would throw LimitExceeded error), which I guess is the amount of memory that the variable takes when loaded to memory, though it seems to be around 76MB when I calculated it programmatically. I am using the same config when encoding and decoding and I have tried generating the file multiple times with different data (but same struct). Once it is loaded it seems to have all the correct data though.
The struct I am encoding/decoding looks like this
use serde::{Deserialize, Serialize};
use dashmap::DashMap;

// This is the sruct that I am trying to encode/decode into file
#[derive(Serialize, Deserialize)]
struct MyStruct {
  map1: DashMap<MyKey, DashMap<MyEnum, i32>>,
  map2: DashMap<MyKey, DashMap<MyEnum, i32>>,
  count: usize,
}

// This struct is only used as a key for the DashMaps in `MyStruct`
#[derive(Serialize, Deserialize, Hash, Eq, PartialEq)]
struct MyKey {
    key1: u8,
    key2: u16,
    key3: Vec<MyEnum>,
}

#[derive(Serialize, Deserialize, Hash, Eq, PartialEq)]
enum MyEnum { Val1, Val2,  Val3(i32) }

And this is how I encode/decode (I have tried both v1.3.3 and v2.0.0.rc-1 and different writers and readers):
impl MyStruct {
  fn encode(&self) {
    let mut file = OpenOptions::new()
          .create(true)
          .write(true)
          .truncate(true)
          .open("file_name.bin")
          .unwrap();

    bincode::serde::encode_into_std_write(self, &mut file, bincode::config::standard()).unwrap();
  }

  fn decode() -> Self {
    let mut file = File::open("file_name.bin")
    // I added the limit here to test when it throws error (53_000_000 would throw error)
    let cfg: Configuration<LittleEndian, Varint, WriteFixedArrayLength, Limit<54_000_000>> = bincode::config::standard().with_limit();
    bincode::serde::decode_from_std_read(&mut file, cfg).unwrap()
  }
}

So am I doing something wrong or what is going on here?

The .capacity() and .len() didn't quite match (capa: 1835008 vs len: 928958 and  capa 229376 vs len: 216774) but that shouldn't cause that big of a problem. Also I got similar results with HashMap
I replaced DashMap with HashMap and now it takes barely any memory, so things work as they should. Under the hood I believe DashMap uses HashMaps that are sharded to provide better concurrency support.
I have tried to replicate the bug with much simpler setups, but haven't been able to do it yet.

Okay here is the simplest test I was able to make up. The problem seems to be with nested DashMaps
use std::collections::HashMap;
use std::thread;
use std::time::Duration;
use dashmap::DashMap;

fn main() {
    // This will use about 3.2 GiB memory
    test_dash();

    // This will use 108 MiB memory
    test_hash();
}

fn test_dash() {
    let map: DashMap<i32, DashMap<i32, i32>> = DashMap::new();
    for i in 0..300_000 {
        let map2 = DashMap::new();
        map2.insert(5, 1000);
        map.insert(i, map2);
    }

    let cfg = bincode::config::standard();
    let my_struct_encoded = bincode::serde::encode_to_vec(&map, cfg).unwrap();
    println!("Encoded map len: {}", my_struct_encoded.len());

    let tuple: (DashMap<i32, DashMap<i32, i32>>, usize) = bincode::serde::decode_from_slice(&my_struct_encoded, cfg).unwrap();
    println!("Decoded map bytes read: {}", tuple.1);
    println!("Decoded map len: {}", tuple.0.len());
    println!("Decoded map capacity: {}", tuple.0.capacity());
    thread::sleep(Duration::new(10, 0));
}

fn test_hash() {
    let mut map: HashMap<i32, HashMap<i32, i32>> = HashMap::new();
    for i in 0..300_000 {
        let mut map2 = HashMap::new();
        map2.insert(5, 1000);
        map.insert(i, map2);
    }

    let cfg = bincode::config::standard();
    let my_struct_encoded = bincode::serde::encode_to_vec(&map, cfg).unwrap();
    println!("Encoded map len: {}", my_struct_encoded.len());

    let tuple: (HashMap<i32, HashMap<i32, i32>>, usize) = bincode::serde::decode_from_slice(&my_struct_encoded, cfg).unwrap();
    println!("Decoded map bytes read: {}", tuple.1);
    println!("Decoded map len: {}", tuple.0.len());
    println!("Decoded map capacity: {}", tuple.0.capacity());
    thread::sleep(Duration::new(10, 0));
}

I haven't dug too much into this, but I suspect this is an issue in serde. What I'd expect to happen is that serde notifies dashmap of how many items to pre-allocate, and dashmap to respect this. This is what we're doing with HashMap here.
if this is not happening correctly then dashmap will follow some internal re-allocation system as items are added to an internal map which exceed the capacity. This requires allocating new memory, copying items over, and freeing up the previous dashmap.
I'm not sure if we can fix this in bincode unfortunately (but feel free to try to prove my assumption wrong!)
What we can do is implement Encode/Decode in dashmap, and implement the desired behavior there. More information here

Yeah it happens with bincode 1.3.3 also so it's not regression.

What we can do is implement Encode/Decode in dashmap, and implement the desired behavior there. More information here

Did you mean I should make a pull request to dashmap with the correct implementation of Encode and Decode? I'm not really sure how that implementation should look like though.

I tried implementing the Encode and Decode to  DashMap as you had done here. Then I encoded and decoded with bincode::encode_to_vec and bincode::decode_from_slice, but the same capacity problem still persists.
Here is the decoder implementation I did:
impl<'a, K, V, S> Decode for DashMap<K, V, S>
    where
        K: 'a + Eq + Hash + Decode,
        V: 'a + Decode,
        S: BuildHasher + Default + Clone,
{
    fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError> {
        let len = decode_slice_len(decoder)?;
        decoder.claim_container_read::<(K, V)>(len)?;

        let hash_builder: S = Default::default();
        let mut map = DashMap::with_capacity_and_hasher(len, hash_builder);
        for _ in 0..len {
            // See the documentation on `unclaim_bytes_read` as to why we're doing this here
            decoder.unclaim_bytes_read(core::mem::size_of::<(K, V)>());

            let k = K::decode(decoder)?;
            let v = V::decode(decoder)?;
            map.insert(k, v);
        }
        Ok(map)
    }
}

Okay so the problem is that DashMap initialized the nested map with 64 shards and capacity of 3 each ==> total capacity of 192. So I need to think of a way to initialize them in a way that is better suited for this use case and I'll perhaps make a pull request later to DashMap. Thank you @VictorKoenders for the help!


showDatePicker throws null exception on web

Steps to Reproduce

DateTime currentDate = DateTime.now();

Future<void> _selectDate(BuildContext context) async {
    final DateTime? pickedDate = await showDatePicker(
        context: context, initialDate: currentDate, firstDate: DateTime(2015), lastDate: DateTime(2050));
    if (pickedDate != null && pickedDate != currentDate)
      setState(() {
        currentDate = pickedDate;
      });
  }

 @override
 Widget build(BuildContext context) {
    return Center(
        child: TextButton(
      onPressed: () => _selectDate(context),
      child: Text('Select date'),
    ));
  }

To reproduce the problem I'll use this code. A simple example of a date picker.

Run flutter run -d chrome.
Click on the 'Select date; button.
Click on any day or try to select any year.

Note: Worked fine on android.
Expected results: Expect the 'currentDate' to be set.
Actual results: Throws the exception shown below.

Logs

[+2003 ms] Error: Expected a value of type 'String', but got one of type 'Null'
                        at Object.throw_ [as throw] (http://localhost:62014/dart_sdk.js:5032:11)
                        at Object.castError (http://localhost:62014/dart_sdk.js:5005:15)
                        at Object.cast [as as] (http://localhost:62014/dart_sdk.js:5314:17)
                        at Function.as (http://localhost:62014/dart_sdk.js:42400:19)
                        at _engine.EnginePlatformDispatcher.__.[_sendPlatformMessage] (http://localhost:62014/dart_sdk.js:155298:38)
                        at _engine.EnginePlatformDispatcher.__.sendPlatformMessage (http://localhost:62014/dart_sdk.js:155214:33)
                        at _DefaultBinaryMessenger.[_sendPlatformMessage]
(http://localhost:62014/packages/flutter/src/services/system_channels.dart.lib.js:2180:38)
                        at _DefaultBinaryMessenger.send (http://localhost:62014/packages/flutter/src/services/system_channels.dart.lib.js:2224:40)
                        at OptionalMethodChannel._invokeMethod (http://localhost:62014/packages/flutter/src/services/system_channels.dart.lib.js:948:50)
                        at _invokeMethod.next (<anonymous>)
                        at runBody (http://localhost:62014/dart_sdk.js:37229:34)
                        at Object._async [as async] (http://localhost:62014/dart_sdk.js:37260:7)
                        at OptionalMethodChannel.[_invokeMethod] (http://localhost:62014/packages/flutter/src/services/system_channels.dart.lib.js:946:20)
                        at OptionalMethodChannel.[_invokeMethod] (http://localhost:62014/packages/flutter/src/services/system_channels.dart.lib.js:1078:34)
                        at OptionalMethodChannel.invokeMethod (http://localhost:62014/packages/flutter/src/services/system_channels.dart.lib.js:1056:36)
                        at invokeMethod.next (<anonymous>)
                        at runBody (http://localhost:62014/dart_sdk.js:37229:34)
                        at Object._async [as async] (http://localhost:62014/dart_sdk.js:37260:7)
                        at OptionalMethodChannel.invokeMethod (http://localhost:62014/packages/flutter/src/services/system_channels.dart.lib.js:1055:20)
                        at vibrate (http://localhost:62014/packages/flutter/src/services/haptic_feedback.dart.lib.js:30:55)
                        at vibrate.next (<anonymous>)
                        at runBody (http://localhost:62014/dart_sdk.js:37229:34)
                        at Object._async [as async] (http://localhost:62014/dart_sdk.js:37260:7)
                        at Function.vibrate (http://localhost:62014/packages/flutter/src/services/haptic_feedback.dart.lib.js:29:20)
                        at calendar_date_picker._CalendarDatePickerState.new.[_vibrate]
                        (http://localhost:62014/packages/flutter/src/material/calendar_date_picker.dart.lib.js:2654:42)
                        at calendar_date_picker._CalendarDatePickerState.new.[_handleDayChanged]
                        (http://localhost:62014/packages/flutter/src/material/calendar_date_picker.dart.lib.js:2702:21)
                        at calendar_date_picker._MonthPickerState.new.[_handleDateSelected]
                        (http://localhost:62014/packages/flutter/src/material/calendar_date_picker.dart.lib.js:3130:11)
                        at http://localhost:62014/packages/flutter/src/material/calendar_date_picker.dart.lib.js:3539:28
                        at ink_well._InkResponseState.new.[_handleTap] (http://localhost:62014/packages/flutter/src/material/icon_button.dart.lib.js:50084:42)
                        at tap.TapGestureRecognizer.new.invokeCallback (http://localhost:62014/packages/flutter/src/gestures/recognizer.dart.lib.js:201:18)
                        at tap.TapGestureRecognizer.new.handleTapUp (http://localhost:62014/packages/flutter/src/gestures/tap.dart.lib.js:417:40)
                        at tap.TapGestureRecognizer.new.[_checkUp] (http://localhost:62014/packages/flutter/src/gestures/tap.dart.lib.js:223:12)
                        at tap.TapGestureRecognizer.new.acceptGesture (http://localhost:62014/packages/flutter/src/gestures/tap.dart.lib.js:199:23)
                        at arena.GestureArenaManager.new.sweep (http://localhost:62014/packages/flutter/src/gestures/arena.dart.lib.js:221:31)
                        at binding$5.WidgetsFlutterBinding.new.handleEvent (http://localhost:62014/packages/flutter/src/gestures/binding.dart.lib.js:334:27)
                        at binding$5.WidgetsFlutterBinding.new.dispatchEvent (http://localhost:62014/packages/flutter/src/gestures/binding.dart.lib.js:313:24)
                        at binding$5.WidgetsFlutterBinding.new.dispatchEvent (http://localhost:62014/packages/flutter/src/rendering/layer.dart.lib.js:6071:13)
                        at binding$5.WidgetsFlutterBinding.new.[_handlePointerEventImmediately]
(http://localhost:62014/packages/flutter/src/gestures/binding.dart.lib.js:284:14)
                        at binding$5.WidgetsFlutterBinding.new.handlePointerEvent
(http://localhost:62014/packages/flutter/src/gestures/binding.dart.lib.js:257:43)
                        at binding$5.WidgetsFlutterBinding.new.[_flushPointerEventQueue]
(http://localhost:62014/packages/flutter/src/gestures/binding.dart.lib.js:246:14)
                        at binding$5.WidgetsFlutterBinding.new.[_handlePointerDataPacket]
(http://localhost:62014/packages/flutter/src/gestures/binding.dart.lib.js:236:65)
                        at Object.invoke1 (http://localhost:62014/dart_sdk.js:173249:7)
                        at _engine.EnginePlatformDispatcher.__.invokeOnPointerDataPacket (http://localhost:62014/dart_sdk.js:155201:15)
                        at _engine.PointerBinding.__.[_onPointerData] (http://localhost:62014/dart_sdk.js:155815:49)
                        at http://localhost:62014/dart_sdk.js:156224:26
                        at http://localhost:62014/dart_sdk.js:156183:16
                        at http://localhost:62014/dart_sdk.js:155908:11

[√] Flutter (Channel stable, 2.0.3, on Microsoft Windows [Version 10.0.19042.867], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[√] Chrome - develop for the web
[√] Android Studio (version 4.1.0)
[√] VS Code (version 1.54.3)
[√] Connected device (2 available)
• No issues found!

Hi @gxsham
I cannot reproduce the issue with the complete code sample listed bellow.

code sample
import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(
    home: Scaffold(
      body: MyApp(),
    )
  ));
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  DateTime currentDate = DateTime.now();

  Future<void> _selectDate(BuildContext context) async {
    final DateTime? pickedDate = await showDatePicker(
        context: context, initialDate: currentDate, firstDate: DateTime(2015), lastDate: DateTime(2050));
    if (pickedDate != null && pickedDate != currentDate)
      setState(() {
        currentDate = pickedDate;
      });
  }

  @override
  Widget build(BuildContext context) {
    return Center(
        child: TextButton(
          onPressed: () => _selectDate(context),
          child: Text('Select date'),
        ));
  }
}

Hi @pedromassangocode,
Did you run it on web? The issue is only on the web platform. It used to work fine before migrating to null safety.

A small update, if I run it with flutter run --no-sound-null-safety then it works fine.
But as all the packages I'm using in my app are migrated already I am building with sound null-safety. Would be a shame to build without it only because of this issue.

Did you run it on web?

Yes I did.

Then we can close the issue. I have no clue what's the problem yet, should be something on my side.
One of my friends tried on his machine and got the same exception as I did.

I was getting this issue on web then I ran it with --no-sound-null-safety and the error went away.

I was getting this issue on web then I ran it with --no-sound-null-safety and the error went away.

I said the same a few comments back. I know it's a null safety issue. But I want the flutter team to know it too so they can fix it. But it seems they cannot reproduce it

A small update, if I run it with flutter run --no-sound-null-safety then it works fine.
But as all the packages I'm using in my app are migrated already I am building with sound null-safety. Would be a shame to build without it only because of this issue.
Thank you for your time and help!

Then we can close the issue. I have no clue what's the problem yet, should be something on my side.
One of my friends tried on his machine and got the same exception as I did.

Closing this for now. Please write in the comments bellow if you have a reproducible sample/steps so that I can verify it again.
Thank you

For what it's worth, I got a response over at #79834 that this was fixed in master, probably why it couldn't be reproduced.


Disable AppVeyor

We has a Jenkins now and it is faster (usually).

[ ] Disable AppVeyor (@pranavkm , @ryanbrandenburg and/or @natemcmaster can help here, I don't know if there's a switch we need to throw or if just deleting the YAML file will do it)
[ ] Delete appveyor.yml files

@Eilon has to throw a switch. Just deleting the file isn't enough

That's kinda what I thought, deleting the file would just remove all our customizations. I'll send an email.

Email sent

Done?

Yup! Done


feat(cdk-experimental/testing): allow restriction of parent element when using locatorFor(harness)

unblocked now that #16848 is in, PTAL


GCC/DoD Updates

Updates solution to allow for National Cloud (GCC/GCCH/DoD) deployments.
-Updated project packages to newer version for those that had known vulnerabilities.
-Deployment script updates to now allow for an Environment parameter, if parameter is left blank the script defaults to Global.
-Bicep was updated to include new App Settings for AuthUrl and GraphUrl which are determined during the deployment script based on the environment variable.
-Updated services to look for AuthUrl and GraphUrl App Settings.  Ensured that if they are not found they default to the AzureCloud urls.
-Updated documentation to account for new Environment parameter in deployment script.
-Tested on Commercial, CGG, and GCCH deployments with and without new App Settings variables to ensure backwards compatability.
Closes #6

@bcage29 Just wanted to see if this could be merged?  Thanks, Rick


Return proper exit code on builder panic

Error was ignored if it wasn't in expected json format. Now returns unexpected EOF like the rest of the disconnect errors and sets exit code to 1.
fixes #31990
@nathanleclaire
Signed-off-by: Tonis Tiigi<EMAIL_ADDRESS>

👍 👍 👍

@vieux we should get this into 17.04.0


[9.x] Dont recompile view if lastModified is same as cache file

as discussed in: #38270
this change also makes the code adhere to the comment above it:

we will verify the last modification of the views is less than the modification times of the compiled views

Hi, https://github.com/laravel/framework/pull/38413 was merged to fix the tests on master. Please rebase your PR to make the tests pass again and mark this PR as ready for review once all tests pass. Thanks

@Jimbolino you seem to have included commits from the base branch. Please branch off anew from master and re-attempt this PR.


The contenteditable attribute selector is not correct

Hello,
In this pull request you added
 -webkit-user-modify: read-write-plaintext-only;
to the [contenteditable] selector.
I think this is not correct because it may have a "false" value. We use TinyMCE which set's this property to false when you want the content to be read only and also on MDN there is a reference to the "false" option.
I think you should adjust the selector to only select elements that are truly editable.

@dserv-nh thanks for opening this issue. If I understand you correctly you are suggesting to change the selector to?
[contenteditable="true"] {
   cursor: text;
   -webkit-user-modify: read-write-plaintext-only;
 }

Yes, but I you need to be careful because your component only has contenteditable without an argument. Therefore the [contenteditable="true"] would not work on this.
From MDN:

If the attribute is given without a value, like <label contenteditable>Example Label</label>, its value is treated as an empty string.

But I think you should consider using a more specific selector to the ember-content-editable component and not changing this globally for every element with contenteditable so something like .ember-content-editable[contenteditable=""] should be more appropriate

To solve this issue, can you merge this pull request?

sorry, have been very busy with a lot of other stuff. There have been a few minor things I wanted to fix/upgrade as well. Try to get it done asap. Just merged the PR.

sorry about the late reply. This should be now fixed in version 3.0.0. Upgrades require to migrate due to two way binding no longer being available with current ember versions.


[Security]:  Filestore APIs should have authentication

Describe the bug
Filestore APIs (/filestore/v1/files/id?tenantId=kl&fileStoreId=5fb3b545-5182-456e-ba82-db9bad25a2e8) are public now. These should be protected with token based authentication.
To Reproduce
Steps to reproduce the behavior:

Test FileStore API (URL given above) using Postman without providing token, API gives the results.

Expected behavior
API should throw an error unless a valid token is passed
Screenshots

@suresh12 this is by design. Filestore API is for public access and have an expiry to it. We have designed it like this. The same behavior will be seen for any share URL, where you give rights as "anyone with URL can access". Seen it like this in AWS and Azure storage as well.
So this should not be a bug. We should respond to Mirox as per, along with the other two points with regards cookie and CSRF
cc. @subhashini-egov

@anirudh-0 @manimaarans for making filestore API protected, we need to do the following

Remove from the white listing for filestore API, so that it cannot be accessed without authentication
send the auth-token as part of header when accessing the filestore GET API. This is supported by DIGIT and confirm back that it works. Here's a sample CURL for the same

curl --location 'http://digit-lts.digit.org/filestore/v1/files/url?tenantId=pg&fileStoreIds=ea01f232-2757-40ad-b5ba-40e96b5f8212'
--header 'authority: qa.digit.org'
--header 'accept: application/json, text/plain, /'
--header 'accept-language: en-GB,en;q=0.9'
--header 'cache-control: no-cache'
--header 'pragma: no-cache'
--header 'referer: https://qa.digit.org/digit-ui/employee/dss/dashboard/fsm'
--header 'sec-ch-ua: "Google Chrome";v="107", "Chromium";v="107", "Not=A?Brand";v="24"'
--header 'sec-ch-ua-mobile: ?0'
--header 'sec-ch-ua-platform: "Windows"'
--header 'sec-fetch-dest: empty'
--header 'sec-fetch-mode: cors'
--header 'sec-fetch-site: same-origin'
--header 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36'
--header 'auth-token: 1467eaae-f0f6-450a-bcab-c39e5f90d181'
@suresh12 @subhashini-egov FYI

@Rkum113 just confirmed that filestore APIs was whitelisted. So we can un-whitelist it, then try it out for one API for starters. @anirudh-0 please confirm.

@manimaarans  I will loop in support from digit platform team

@Ramu-kandimalla @Rkum113 is there any update on this? Could the team discuss the problem with Aniket and Varun from eGov team?

Hi @Ramu-kandimalla @rajeshcherukumalli Tested in Kerala-dev, auth-token is sending as part of the Header.
 Will check in Kerala-QA. Once the changes are deployed to QA

Hi @Ramu-kandimalla @rajeshcherukumalli Tested in UAT env, auth-token is sending as part of the Header.

Not able to access without the auth-token
If we try to hit the "https://dristi-kerala-dev.pucar.org/filestore/v1/files/id?tenantId=kl&fileStoreId=0c3f3db5-aa11-44da-8aeb-4bf3e53b5f81" without auth-token the status will be 401 Unauthorized

Covered the below cases,

When user is logged in Copied the cURL of "https://dristi-kerala-uat.pucar.org/filestore/v1/files/id?tenantId=kl&fileStoreId=10d1df74-0c69-4329-ab37-2baad1772278", Hit the API through Postman. Response is showing, Working fine.
When user is logged in Copied the cURL of  "https://dristi-kerala-uat.pucar.org/filestore/v1/files/id?tenantId=kl&fileStoreId=d2f223a7-9bcb-4e6e-a6b5-5336027f7396" & Loged-out from the application & Hit the API through Postman. showing 401 unauthorized. Working as expected.


feat(docker-compose): removed dependency on postgres from api

Removed postgres dependency from dev-app and added command to start postgres in the Makefile for dev-app commands


June rules update

VA2129 (Baseline) - Bugfix.
VA1219 (Binary) - Bugfix.
VA1047 (NegativeList) - Bugfix.

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

Docs Build status updates of commit 5932747:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

azure-sql/database/sql-database-vulnerability-assessment-rules-changelog.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Will update owner and reopen.

Docs Build status updates of commit 5932747:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

azure-sql/database/sql-database-vulnerability-assessment-rules-changelog.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 5932747:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

azure-sql/database/sql-database-vulnerability-assessment-rules-changelog.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit a4f960f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

azure-sql/database/sql-database-vulnerability-assessment-rules-changelog.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

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

@CESANU - as discussed, the metadata changes will need to be submitted via the private repo and/or by the current author @DavidTrigano .
@DavidTrigano - proceeding with this update. This is as an fyi. Thanks.

Docs Build status updates of commit 71dc04d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

azure-sql/database/sql-database-vulnerability-assessment-rules-changelog.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Build android apk release

I build successfully, but when i open the app it stuck on splash screen "Super App Showcase", it seems can't bundle the development server into the apk file, as the file size just around 22mb. So how to include all mini app into main "host" app when build the release apk file. thanks

Hey @michaelleung0o0,
are you running the super app showcase on android? If so, you probably forgot to run yarn adb:reverse so the app fails to start as it can't fetch the auth module. If not - please provide more details about your environment, thanks!

i run -> "yarn start",
and then -> "yarn adbreverse",
then run -> "yarn run:host:android".
For this flow, it's work. I can access all the feature/ mini app
And then I wanna build a apk and hope that it will include all the mini app in "host",
so that i setup all the android release setting, and run "./gradlew assembleRelease ",
It build successfully, but when i open the app, it just keep on splash screen "Super App Showcase".
And I believe that I may miss some step, it should be need to bundle the other mini app into the "host" app.
But i don't know how to do that

When building for production, we are not bundling mini-apps into the host app, the idea is to have the mini-app bundles on a server/CDN and download them in runtime. So the following steps need to be done:

Deploy the catalog-server with production bundles
Build the app with env CATALOG_SERVER_URL=... where you should put an URL of your deployed catalog-server

So for this example, i tried to run yarn bundle for all the mini app( auth, booking, dashboard, shell, shopping ),
I saw a folder "android/remotes" will be generated
and then deploy "catalog-server" in production server

where can i find CATALOG_SERVER_URL?, i just see catalog-server -> getContainersURL -> hostname is a similar field. thanks for your help

Unable to build apk file.It crashes.
While creating a debug version , I am not able to fetch the miniapp data although I am bundling it.
Please help out.