unicode characters in template expressions

We have some autogenerated code and for whatever reasons we have javascript objects with property names using non english characters such as åäö.
When we want to print a property from such an object we would type something like this in our template:
{{:myObj.someÅpropÄerty}}
This doesn't work because the javascript generated from this template expression is invalid.
+((v=data.myObj.someÅdata.propÄdata.erty)!=null?v:"");
I managed to track down the problem to a couple of regexes using \w character class, which doesn't support anything but ascii characters.
I made the following changing in jsrender.js - we use the separate files
Lines 54-57:
    uW = "\\w\\u00E4\\u00E5\\u00F6\\u00C4\\u00C5\\u00D6",

    //rPath = /^(!*?)(?:null|true|false|\d[\d.]*|([\w$]+|\.|~([\w$]+)|#(view|([\w$]+))?)([\w$.^]*?)(?:[.[^]([\w$]+)\]?)?)$/g,
    rPath = new RegExp("^(!*?)(?:null|true|false|\\d[\\d.]*|([" + uW + "$]+|\\.|~([" + uW + "$]+)|#(view|([" + uW + "$]+))?)([" + uW + "$.^]*?)(?:[.[^]([" + uW + "$]+)\\]?)?)$", "g"),
    //        not                               object     helper    view  viewProperty pathTokens      leafToken

    //rParams = /(\()(?=\s*\()|(?:([([])\s*)?(?:(\^?)(~?[\w$.^]+)?\s*((\+\+|--)|\+|-|~(?![\w$_])|&&|\|\||===|!==|==|!=|<=|>=|[<>%*:?\/]|(=))\s*|(!*?(@)?[#~]?[\w$.^]+)([([])?)|(,\s*)|(\(?)\\?(?:(')|("))|(?:\s*(([)\]])(?=[.^]|\s*$|[^([])|[)\]])([([]?))|(\s+)/g,
    rParams = new RegExp("(\\()(?=\\s*\\()|(?:([([])\\s*)?(?:(\\^?)(~?[" + uW + "$.^]+)?\\s*((\\+\\+|--)|\\+|-|~(?![" + uW + "$_])|&&|\\|\\||===|!==|==|!=|<=|>=|[<>%*:?\\/]|(=))\\s*|(!*?(@)?[#~]?[" + uW + "$.^]+)([([])?)|(,\\s*)|(\\(?)\\\\?(?:(')|(\"))|(?:\\s*(([)\\]])(?=[.^]|\\s*$|[^([])|[)\\]])([([]?))|(\\s+)", "g"),

Seems kinda ugly to hard code the extra non-english characters like this. Perhaps you could make this user configurable or give unicode more generic support?
Even if using non-english characters for property names seem like a bad idea it's still valid javascript and as such I feel the same expression should be valid inside the template.
As a workarround I know we can type
{{:myObj["someÅpropÄerty"]}}
but this is ugly.
What's your take on the whole?

I forgot to mention this is on version 0.9.91 but the code is identical in version 1.0.0.

Yes, I am in two minds about doing this, given the test matrix, need to document etc. but FWIW the feature would be like this:
Additional code at line 164
var uW = value && value.addedJsNameChars;
if (uW) {
	uW = "[\\w" + uW + "$";
	rPath = new RegExp("^(!*?)(?:null|true|false|\\d[\\d.]*|(" + uW + "]+|\\.|~(" + uW + "]+)|#(view|(" + uW + "]+))?)(" + uW + ".^]*?)(?:[.[^](" + uW + "]+)\\]?)?)$", "g");
	rParams = new RegExp("(\\()(?=\\s*\\()|(?:([([])\\s*)?(?:(\\^?)(~?" + uW + ".^]+)?\\s*((\\+\\+|--)|\\+|-|~(?!" + uW + "_])|&&|\\|\\||===|!==|==|!=|<=|>=|[<>%*:?\\/]|(=))\\s*|(!*?(@)?[#~]?" + uW + ".^]+)([([])?)|(,\\s*)|(\\(?)\\\\?(?:(')|(\"))|(?:\\s*(([)\\]])(?=[.^]|\\s*$|[^([])|[)\\]])([([]?))|(\\s+)", "g");
}
return value

(Here it is: jsviews.js.txt)
Usage:
$.views.settings.advanced({addedJsNameChars: "\\u00E4\\u00E5\\u00F6\\u00C4\\u00C5\\u00D6"});
var data = {foo.someÅpropÄerty:444};
...

Ah, I had missed your comment above (the page had not been refreshed when I wrote my response above.)
Yes, I hear you... I'll let it mature a bit before deciding. Meantime, if you can test fully with the update I included above that would be helpful. Let me know if you see any issues/bugs.

I have an alternative which I am looking at. I'll probably send you a new patch to test, in the coming days, rather than testing the  version above...

Sounds good. In the meantime I use this quick fix.

Here is an update:
jsviews.js.txt
I managed to figure out a way of allowing all unicode chars, without needing to specifically specify the character codes. The default is not to support unicode chars in names, but you can write
$.views.settings.advanced({unicodeChars: true}); // support all unicode chars in JavaScript names

or else limit to specific ones:
$.views.settings.advanced({unicodeChars: "\\u00E4\\u00E5\\u00F6\\u00C4\\u00C5\\u00D6"});

You can't have unicode characters on helpers, or helper properties, tag names or tag properties, etc. Only on properties of data passed in to the link() or render() method.
The generic unicode version, passing true, is done basically by replacing
/[\w]*/

by
/[^\s~/\x00-\x23\x25-\x2D\x3A-\x40[\]\\`{}|]*/

so word characters are any characters other than the specified ones.
It adds 1% to the filesize, which I hesitate about, but at least the usage is easy now. (Assuming it works correctly!)
So if you are able to test it , it would be helpful, particularly to make sure it does indeed cover all unicode characters as expected (or at least test with a good range of characters...).
I am still considering whether or not to publish this feature...

I was able to create a test html page. Download here (sorry about the adds and wait time to download)
I extracted every character from the regex.
The only character that appears to be invalid in fact in chrome is "ⸯ" which I have commented out in the html file.
I tested this with the jsviews version you provided. It throws an error.
I will test some more to see if I can isolate which characters are the culprit.

Excellent. That is very  helpful!
I did some testing with that, and all the characters seem to work. There was still an error from JsViews because of {{:aⸯa}} still being in the template markup. So I removed it.
Also, of course you need the line:
$.views.settings.advanced({unicodeChars: true});

before calling $.templates(...)
I also had  some issues when using a file that did not have the BOM (with UTF-8 encoding).
But with those changes, the template rendered completely...

Here is an updated jsviews.js and jsrender.js and a copy of my version of your test page:
jsviews.js.txt
jsrender.js.txt
testUnicode.html.txt
The test page works for me in Chrome and in Firefox, but not in IE, Edge, Safari... It seems that some of the unicode characters trigger javascript errors in those browsers. With a reduced set of unicode characters it works in all those browsers.

I was at the end of my shift and had been messing back and forth with this test page so I missed the obvious $.views.settings.advanced(...) call :)
Good that you made it work!
So we confirmed that the regex does indeed cover all unicode characters.
The fact that it covers more than some browsers doesn't really matter I think.
Also since the regex does cover all unicode characters I don't see the need for a user to explicitly allow specific characters. Unicode on or off is sufficient. This should also result in a lower footprint for the feature.
If the option is to allow unicode or not then I see two possible implementations, well three.

Making unicode opt-in via $.views.settings.advanced({unicodeChars: true});
This alternative should ensure that no existing templates are broken by an unexpected bug in the new regex. Also adds more bytes to the final js file.
Somehow allow setting the full rPath and rParams regexes from outside jsviews.js. This would allow you to make unicode support opt-in from a jsviews-unicode.js file moving the overhead completely from jsviews.js itself.
Skip the option alltogether and just change the regex thus making unicode supported out of the box.

What's your take on these ideas?

Yes, I agree with your analysis. #2 is probably my preference. #3 makes me nervous about possible bugs, especially doing it just after releasing v1.0.0 which is hopefully stable. So #2 is a more conservative approach, given that this feature is unlikely to be used/needed by many users...
I'll post a version of #2 soon.

Here is an update where you load the jsrender-unicode.js file after jsrender.js/jsviews.js, before calling $.templates(...) to compile any templates that have unicode characters in them.
Let me know if it works as expected. Thanks!
jsrender-unicode.js.txt
jsrender.js.txt
jsviews.js.txt

I gave it a try but run into some issues with jsrender-unicode.js
The regexes in jsrender-unicode.js is not the same as those we used here
Is this intentional?
Modifying jsrender-unicode.js to use those regexes seem to work (comments left out for abbrevity):
$.views.sub.rPath =
    /^(!*?)(?:null|true|false|\d[\d.]*|([^.^\s~/\x00-\x23\x25-\x2D\x3A-\x40[\]\\`{}|]+|\.|~([\w$]+)|#(view|([\w$]+))?)([^\s~/\x00-\x23\x25-\x2D\x3A-\x40[\]\\`{}|]*?)(?:[.[^]([^.^\s~/\x00-\x23\x25-\x2D\x3A-\x40[\]\\`{}|]+)\]?)?)$/g;
$.views.sub.rPrm =
  /(\()(?=\s*\()|(?:([([])\s*)?(?:(\^?)(~?[\w$.^]+)?\s*((\+\+|--)|\+|-|~(?![\w$])|&&|\|\||===|!==|==|!=|<=|>=|[<>%*:?/]|(=))\s*|(!*?(@)?[#~]?[^\s~/\x00-\x23\x25-\x2D\x3A-\x40[\]\\`{}|]+)([([])?)|(,\s*)|(\(?)\\?(?:(')|(\"))|(?:\s*(([)\]])(?=[.^]|\s*$|[^([])|[)\]])([([]?))|(\s+)/g;

I also found some left over code and double comments (line numbers from jsrender.js):
line 114:
// subscription, e.g. JsViews integration
line 161:
				var unicodeChars = value && value.unicodeChars;
				if (unicodeChars) {
					setPathRegEx(unicodeChars);
				}

You might want to double check any changes related to this issue.

Ah - sorry, I must have accidentally uploaded an intermediate version. Thanks for pointing out the stale code/comments, too!
So hopefully this is correct now. The regEx expressions are close to yours, but not quite identical. Let me know if you have any concerns, or see any issues.
jsrender-unicode.js.txt
testUnicode.html.txt
jsviews.js.txt
jsrender.js.txt

I finally got to implement the fix in our code. Works perfectly so far!
I'll test it some more and see if anything turns up.

I'll include this in the next update  (v1.0.1)

Glad to hear.
No problems so far.

Fixed in commit v1.0.1


fix duplicate locals shadowing each other (compiler warning)

Sorry to bother but, what C standard is lvgl written in? I think some of those shadowed variables can be avoided with the following syntax (available since C99 iirc):
for(uint32_t i = line_end - 1; i > 0; i--) {
    // ...
}

@aenchevich  Thank your for pointing this out!
@C47D C99 iirc? I never heard about it and didn't find anything useful in google. Can you link some info?

Hi @aenchevich and @kisvegabor:

The C standard is "C99" and iirc in Carlos' message is "if i recall correctly" :)

@kisvegabor I meant that :)

However, in the case of an embedded library, such as LittlevGL, which supports many platforms and new are added constantly, I think it is most important to find the common denominator which satisfies all the variants. It seems that C99 is a good starting point but this may change in the future and, IMO, maintaining the usability and portability of the lib is more important than sticking to standards.

I don't know what version of gcc/clang the lvgl users are using but the most recent versions of those toolchains defaults to C99/C11, maybe we can know for sure making a poll asking about the compiler version people use.

Regarding "for(uint32_t i ..."
In this particular case, adding these inner-loop locals would not add any real benefit in terms of performance or code size (being loop counters they are probably implemented via a register anyway). Benefits in therms of code readability are also doubtful (several variables with the same name hardly make the code more easy to understand).
So reusing the function-local 'i' here is fine, IMO.
The only thing I missed is that the 'i' which I left is a uint32_t - probably not necessary, because it is used to store results of text size calculations (in pixels) and the type used for this in lvgl is
typedef int16_t lv_coord_t;
So the 'i' that I left (line 279) should be changed to lv_coord_t. And I totally missed this, so thank you all for this discussion :)

Thank you and @kisvegabor, this library is becoming better every day :).

Firs of all iirc: Upps, I didn't know it... yet... :D
I looked it up and declaring variables in a loop is really possible sience C99. I've just learnt an other new thing :)
However, compilers for embedded systems are way less standard then toolchanis for PC. For example in this issue it turned out that the compiler not initialized the global variables to zero. So I agree with @aenchevich in  "maintaining the usability and portability of the lib is more important than sticking to standards.". I think we risk more than we can win on it.

Ok, then, since this is not merged yet, I will add the lv_coord_t type change to my branch and submit again?
Btw I think it is a good long-term project to try and ask all the maintainers of specific hardware in lv_boards to compile the code with C99?

Ok, then, since this is not merged yet, I will add the lv_coord_t type change to my branch and submit again?

Ok, thank you!

Btw I think it is a good long-term project to try and ask all the maintainers of specific hardware in lv_boards to compile the code with C99?
In the practice, there are no dedicated maintainers for the projects. People just give feedback if something is not working.

Ok this is ready for merge now.

@kisvegabor:  Regarding C99 - I am not sure what is the best course of action here. At present the project does not specify that any particular C standard should be used... so in theory people could write new code in any standard.. which is not very good.
IMO, based on the fact that I compiled lvgl, lv_drivers and lv_examples for C99 and it worked, it would be ok to set the C standard for the project to C99. If anything breaks on some non-mainstream compiler we could work it out.
IIRC  [;)] - you are using multi-byte characters (unicode, wide characters, <wchar.h>, <wctype.h>)  in lvgl? If yes, then it's almost certain that the standard you are using was already C99, because the wide chars were introduced in C95 but C95 is not very widely used so it's most likely C99... I hope this makes sense...  :)

I merged the updates, thank you! :)
There is no spcified C standard fro LittelvGL. C89 doesn'nt support a lot of things (e.g. declaretion of variables in the middle of the functions) but according to this thread Microsoft Visual Studio is not compatible with C99.
I'm not an expert of the standards but it seems a little bit messy to me. LittelvGL can be compiled in Visual Studio (by turning off the use of Variable Length Arrays) but LittelvGL is not compatible with C89.


Use W Hack For macOS Cell Width

Uses the "W" hack for finding the cell width on macOS, similar to how it already works on iOS. Adds a commented version that comes with a performance hit as discussed in #286.

Thank you for the PR!


Proposal: Open source contribution Meeting

Description

The meeting focuses on discussing what open source contribution is all about.
It explains the ethos of open source contribution
and how to start contributing to open source.
A practical or walkthrough session showing developers or builders how to contribute to open source.

Bounty track

Education

for reference

Approved for 150 KLAY payout

Closing for payout


Submitting zh_tw Translations

Created zh_tw translations.
Please note some of the grammar might not be natural as I noticed some messages have a file name or something else attached to it to be a whole sentence.

Side note:
I am on GuideGuide 4.7.1 in Illustrator; I am not very sure the messages for newer versions are precisely translated. I could only translate according to the descriptions in the file.


[RELEASE] 2023.5.1

Release Checklist
Release details
Scheduled release date - <yyyy/mm/dd>
Release captain responsible - <@gh_username>
Starting point - a new release is out

[x] Create this issue to track and discuss the upcoming release.
[x] Use the previous release issue for any final release-specific discussions, then close.

This can be a good time to debrief and discuss improvements to the release process.

Looking forward - planning

[x] Create milestone for next release (if it doesn't already exist) and link it back here.
[x] Triage bugs to determine what be should included in the release and add it to the milestone.
[x] What new features, if any, will be included in the release and add it to the milestone.

This will be, in large part, determined by the roadmap.
Is there a focus for this release (i.e. UX/UI, stabilization, etc.)?

Pre-release process

[x] Decide on a date for the release.

What outstanding issues need to be addressed?
Has documentation been updated appropriately?
Are there any breaking changes that should be highlighted?
Are there any upstream releases we are waiting on?
Do we need to update the dask versions in the nebari-dask?
Will there be an accompanying blog post?

[x] Prepare for the release.

[x] Announce build freeze.
[ ] Release Candidate (RC) cycle.

[x] Perform end-to-end testing. Use the Testing Checklist template.

For minor releases, relying on the end-to-end integration tests might suffice.

[x] Cut RC via GHA release workflow (w/ "This is a pre-release" checked).
[x] End-user validation.

If possible, pull in volunteers to help test.
(Repeat steps if necessary)

[x] Update RELEASE.md notes.

Cut the official release
These steps must be actioned in the order they appear in this checklist.

[x] Tag, build and push docker images
[x] Update and cut release for nebari-dask meta package on Conda-Forge.
[x] Cut PyPI release via GHA release workflow.

Avoid appending v to tag.

Copy release notes from RELEASE.md.

[ ] Merge release branch into main
[ ] Merge automated release PR for nebari on Conda-Forge.

Testing checklist: https://github.com/nebari-dev/nebari/issues/1788

I still need to open a PR to merge release/2023.5.1 into main but I would like to figure out why the diff is so large. @pavithraes and I were discussing this last week and I have a few items here to follow up on.

I believe we have been merging the release PR using the "squash merge" which makes the commit history of main very different from develop. I think this is why we see a lingering list of old PRs in new release PRs.
I suggest we start merging release PRs using the "merge commit" mechanism. This will keep the commit history of main and develop in sync, with main only having extra release PRs. I can update the checklist template to include this note.
Also, since #1818 is merged, closing this issue as complete. :)


IN Window7 call node-gyp configure --debug

y", line 545, in script_main
return main(sys.argv[1:])
File "F:\shine\node\node-global\node_modules\node-gyp\gyp\pylib\gyp_init_.p
y", line 538, in main
return gyp_main(args)
File "F:\shine\node\node-global\node_modules\node-gyp\gyp\pylib\gyp_init_.p
y", line 523, in gyp_main
generator.GenerateOutput(flat_list, targets, data, params)
File "F:\shine\node\node-global\node_modules\node-gyp\gyp\pylib\gyp\generator
msvs.py", line 2003, in GenerateOutput
sln_projects, project_objects, flat=msvs_version.FlatSolution())
File "F:\shine\node\node-global\node_modules\node-gyp\gyp\pylib\gyp\generator
msvs.py", line 1762, in _GatherSolutionFolders
return _DictsToFolders('', root, flat)
File "F:\shine\node\node-global\node_modules\node-gyp\gyp\pylib\gyp\generator
msvs.py", line 1715, in _DictsToFolders
for folder, contents in bucket.iteritems():
AttributeError: 'MSVSProject' object has no attribute 'iteritems'

I can't tell from the excerpt what you actually did but be advises that fsevents is an OS X-only module.


fix #1482, fix TaskScheduler over schedules when executors down

One issue I found is that the same worker is allocated when restarting multiple crashed executors with ONEWORKER relaxation

+1


Disable AllowRenegotiation for HTTP/2

https://tools.ietf.org/html/rfc7540#section-9.2.1

Also review the other TLS requirements to make sure they're in place.

MUST disable compression
MUST disable renegotiation
MUST support ephemeral key exchange sizes of at least
2048 bits for cipher suites that use ephemeral finite field Diffie-
Hellman (DHE) [TLS12] and 224 bits for cipher suites that use
ephemeral elliptic curve Diffie-Hellman (ECDHE) [RFC4492]
SHOULD NOT use any of the cipher
suites that are listed in the cipher suite black list
MUST support TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 [TLS-ECDHE]
with the P-256 elliptic curve [FIPS186].

@blowdart renegotiation is the only thing on this list we can control via SslStream, the rest are controlled at the OS level. Are there any of these we should ask SslStream to expose (compression?), or do we fall back do documenting the recommended OS configurations.

With ref
https://en.m.wikipedia.org/wiki/Comparison_of_TLS_implementations#Compression

Blocked on https://github.com/aspnet/KestrelHttpServer/issues/2661
Things we need to surface:

Tls version
CipherAlgorithm
KeyExchangeStrength


Enable SHiELD runs in argo workflows

This PR builds on #2376 and splits out from #2350 what is necessary to run SHiELD-wrapper-based prognostic simulations through our standard prognostic run argo workflow.  No changes to the frontend API are needed; the prognostic run workflow is modified to infer which template (run-fv3gfs or run-shield) to run based on the input config.
For convenience this also adds a starter base config for SHiELD, which is based on the configuration used in the PIRE simulations (but for simplicity with the mixed layer ocean turned off).  I have tested the prognostic-run and restart-prognostic-run workflows using a SHiELD-based config offline.  I'm not sure if we want to add an integration test yet or not.
Significant internal changes:

Refactored the prognostic-run workflow to infer whether to use FV3GFS or SHiELD based on the config.
Refactored the restart-prognostic-run workflow to infer whether to use FV3GFS or SHiELD based on the config at the provided URL.
Refactored the directory structure of the base config YAMLs in fv3kube to better accommodate SHiELD configs.  No user-facing changes to the FV3GFS configs are made.

Note this PR makes use of YAML anchors and aliases to reduce the amount of duplicate configuration code.  Some illustration of how these work can be found here.  Use of this concept was already introduced in https://github.com/ai2cm/fv3net/pull/2103 within the training.yaml template, though this is the first time using it in the prognostic run.

To illustrate the updated workflows I have included some example step outputs from argo get below (we ran the prognostic-run workflow for two segments and then ran one more segment via the restart-prognostic-run workflow).
prognostic-run
STEP                                     TEMPLATE                                PODNAME                                        DURATION  MESSAGE
 ✔ 2023-12-21-baseline-shield-example    prognostic-run
 ├───✔ resolve-output-url                resolve-output-url/resolve-output-url   2023-12-21-baseline-shield-example-681218977   3s
 ├───✔ convert-input-config-to-artifact  convert-input-config-to-artifact        2023-12-21-baseline-shield-example-117187868   3s
 ├───✔ infer-wrapper                     infer-wrapper                           2023-12-21-baseline-shield-example-3326365873  3s
 ├───○ prepare-config-fv3gfs             prepare-config-fv3gfs                                                                            when ''shield.wrapper' == 'fv3gfs.wrapper'' evaluated false
 ├───✔ prepare-config-shield             prepare-config-shield                   2023-12-21-baseline-shield-example-1872594915  3m
 ├───○ run-model-fv3gfs                  run-simulation/run-fv3gfs                                                                        when ''shield.wrapper' == 'fv3gfs.wrapper'' evaluated false
 ├───✔ run-model-shield                  run-simulation/run-shield
 │   ├─┬─✔ choose-node-pool              choose-node-pool                        2023-12-21-baseline-shield-example-3672275837  4s
 │   │ └─✔ create-run                    create-run-shield                       2023-12-21-baseline-shield-example-1572199652  3m
 │   └───✔ run-first-segment             run-all-segments-shield
 │       ├───✔ append-segment            append-segment-shield                   2023-12-21-baseline-shield-example-2948602435  6m
 │       ├───✔ increment-segment         increment-count                         2023-12-21-baseline-shield-example-2887248493  5s
 │       └───✔ run-next-segment          run-all-segments-shield
 │           ├───✔ append-segment        append-segment-shield                   2023-12-21-baseline-shield-example-256387028   5m
 │           ├───✔ increment-segment     increment-count                         2023-12-21-baseline-shield-example-2030482824  3s
 │           └───○ run-next-segment      run-all-segments-shield                                                                          when '2 < 2' evaluated false
 ├───○ online-diags                      prognostic-run-diags/diagnostics                                                                 when 'false == true' evaluated false
 ├───○ online-diags-report               prognostic-run-diags/report-single-run                                                           when 'false == true' evaluated false
 └───○ exit                              exit                                                                                when 'Skipped == Failed || Succeeded == Failed' evaluated false

restart-prognostic-run
STEP                                           TEMPLATE                                PODNAME                                                DURATION  MESSAGE
 ✔ 2023-12-21-restart-baseline-shield-example  restart-prognostic-run
 ├───✔ choose-node-pool                        run-simulation/choose-node-pool         2023-12-21-restart-baseline-shield-example-1554740548  3s
 ├───✔ infer-wrapper                           infer-wrapper                           2023-12-21-restart-baseline-shield-example-3018678792  4s
 ├───○ restart-run-fv3gfs                      run-simulation/run-all-segments                                                                          when ''shield.wrapper' == 'fv3gfs.wrapper'' evaluated false
 └───✔ restart-run-shield                      run-simulation/run-all-segments-shield
     ├───✔ append-segment                      append-segment-shield                   2023-12-21-restart-baseline-shield-example-26558483    5m
     ├───✔ increment-segment                   increment-count                         2023-12-21-restart-baseline-shield-example-4132074205  4s
     └───○ run-next-segment                    run-all-segments-shield                                                                                when '1 < 1' evaluated false

Thanks @oliverwm1!  I went ahead and set DGLBACKEND=pytorch in the Dockerfile, and bumped the SHiELD-wrapper version now that ai2cm/SHiELD-wrapper#23 has been merged.  I also added some example step outputs from argo get for a prognostic-run and restart-prognostic-run workflow to illustrate the updated steps.  Enabling auto-merge now.


live=True data.history(bar_count=1) Exception

When working in live mode (simulate_orders=True, have not tested False). And running data.history(multiple_symbols, ['close', 'volume'], bar_count=1, frequency='5T').  Throws an error sometimes.
Solution is to just get <number_of_required_bars> + 1 and then doing a tail(<number_of_required_bars>) as the number of bars returned is inconsistent.
When bar_count=1 the following exception can occur:
Traceback (most recent call last):
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/guido/dev/projects/catalyst/src/algo/reproduce_bug.py", line 39, in <module>
    simulate_orders=True)
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/utils/run_algo.py", line 549, in run_algorithm
    stats_output=stats_output
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/utils/run_algo.py", line 331, in _run
    overwrite_sim_params=False,
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/exchange/exchange_algorithm.py", line 309, in run
    data, overwrite_sim_params
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/algorithm.py", line 724, in run
    for perf in self.get_generator():
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/gens/tradesimulation.py", line 224, in transform
    for capital_change_packet in every_bar(dt):
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/gens/tradesimulation.py", line 137, in every_bar
    handle_data(algo, current_data, dt_to_use)
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/utils/events.py", line 216, in handle_data
    dt,
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/utils/events.py", line 235, in handle_data
    self.callback(context, data)
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/exchange/exchange_algorithm.py", line 761, in handle_data
    self._handle_data(self, data)
  File "/home/guido/dev/projects/catalyst/src/algo/reproduce_bug.py", line 25, in _handle_data
    frequency='5T')
  File "catalyst/_protocol.pyx", line 120, in catalyst._protocol.check_parameters.__call__.assert_keywords_and_call
  File "catalyst/_protocol.pyx", line 708, in catalyst._protocol.BarData.history
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/exchange/exchange_data_portal.py", line 95, in get_history_window
    ffill))
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/redo/__init__.py", line 162, in retry
    return action(*args, **kwargs)
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/exchange/exchange_data_portal.py", line 69, in _get_history_window
    ffill)
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/exchange/exchange_data_portal.py", line 218, in get_exchange_history_window
    False)
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/exchange/exchange.py", line 517, in get_history_window
    first_candle = candles[asset][0]
IndexError: list index out of range

With bar_count = 2 I get a pandas panel that can sometimes be 3 rows long (about 1 in 5 times).
This was tested on bitfinex and polo with the following code:
from catalyst.api import symbol
from catalyst.utils.run_algo import run_algorithm

coins = ['bch', 'btc', 'dash', 'etc', 'eth', 'ltc', 'nxt', 'rep', 'str', 'xmr', 'xrp', 'zec']
symbols = None

def _handle_data(context, data):
    global symbols
    if symbols is None: symbols = [symbol(c + '_usdt') for c in coins]

    print('getting history for:', [s.symbol for s in symbols])
    history = data.history(symbols,
                    ['close', 'volume'],
                    bar_count=1, # EXCEPTION, Change to 2
                    frequency='5T')
    print('history: ', history.shape)

run_algorithm(
            initialize=lambda ctx: print('init'),
            handle_data=_handle_data,
            analyze=lambda _, results: True,
            exchange_name='poloniex',
            base_currency='usdt',
            algo_namespace='reproduce_polo_bug',
            live=True,
            data_frequency='minute',
            capital_base=3000,
            simulate_orders=True)

I was wrong, even with a + 1 to the bar_count this can still happen.  The following code (note the bar_count=2 ) crashed eventually (took longer):
from catalyst.api import symbol
from catalyst.utils.run_algo import run_algorithm

coins = ['bch', 'btc', 'dash', 'etc', 'eth', 'ltc', 'nxt', 'rep', 'str', 'xmr', 'xrp', 'zec']
symbols = None

def _handle_data(context, data):
    global symbols
    if symbols is None: symbols = [symbol(c + '_usdt') for c in coins]

    print('getting history for:', [s.symbol for s in symbols])
    history = data.history(symbols,
                    ['close', 'volume'],
                    bar_count=2,
                    frequency='5T')
    print('history: ', history.shape)

run_algorithm(
            initialize=lambda ctx: print('init'),
            handle_data=_handle_data,
            analyze=lambda _, results: True,
            exchange_name='poloniex',
            base_currency='usdt',
            algo_namespace='reproduce_polo_bug',
            live=True,
            data_frequency='minute',
            capital_base=3000,
            simulate_orders=True)

Exception (same):
[2018-02-17 02:16:33.003546] WARNING: run_algo: Catalyst is currently in ALPHA. It is going through rapid development and it is subject to errors. Please use carefully. We encourage you to report any issue on GitHub: https://github.com/enigmampc/catalyst/issues
[2018-02-17 02:16:36.007036] INFO: run_algo: running algo in paper-trading mode
[2018-02-17 02:16:36.350743] INFO: exchange_bundle: pricing data for ['btc_usd'] not found in range 2015-03-01 00:00:00+00:00 to 2018-02-15 00:00:00+00:00, updating the bundles.
    [====================================]  Ingesting daily price data for btc_usd on bitfinex:  100%
init
[2018-02-17 02:16:38.341748] INFO: exchange_algorithm: portfolio balances, cash: 3000.0, positions: 0.0
getting history for: ['bch_usdt', 'btc_usdt', 'dash_usdt', 'etc_usdt', 'eth_usdt', 'ltc_usdt', 'nxt_usdt', 'rep_usdt', 'str_usdt', 'xmr_usdt', 'xrp_usdt', 'zec_usdt']
history:  (2, 2, 12)
[2018-02-17 02:17:03.601224] INFO: exchange_algorithm: statistics for the last 1 minutes:
                           starting_cash  ending_cash  portfolio_value  pnl  long_exposure  short_exposure  orders  transactions
period_close
2018-02-17 02:17:00+00:00           3000       3000.0           3000.0  0.0              0               0       0             0
[2018-02-17 02:17:03.608609] INFO: exchange_algorithm: portfolio balances, cash: 3000.0, positions: 0.0
getting history for: ['bch_usdt', 'btc_usdt', 'dash_usdt', 'etc_usdt', 'eth_usdt', 'ltc_usdt', 'nxt_usdt', 'rep_usdt', 'str_usdt', 'xmr_usdt', 'xrp_usdt', 'zec_usdt']
history:  (2, 2, 12)
[2018-02-17 02:17:27.634212] INFO: exchange_algorithm: statistics for the last 1 minutes:
                           starting_cash  ending_cash  portfolio_value  pnl  long_exposure  short_exposure  orders  transactions

...

[2018-02-17 02:40:00.246176] INFO: exchange_algorithm: portfolio balances, cash: 3000.0, positions: 0.0
getting history for: ['bch_usdt', 'btc_usdt', 'dash_usdt', 'etc_usdt', 'eth_usdt', 'ltc_usdt', 'nxt_usdt', 'rep_usdt', 'str_usdt', 'xmr_usdt', 'xrp_usdt', 'zec_usdt']
history:  (2, 3, 12)
[2018-02-17 02:40:23.506260] INFO: exchange_algorithm: statistics for the last 1 minutes:
                           starting_cash  ending_cash  portfolio_value  pnl  long_exposure  short_exposure  orders  transactions
period_close
2018-02-17 02:41:00+00:00           3000       3000.0           3000.0  0.0              0               0       0             0
[2018-02-17 02:41:00.586104] INFO: exchange_algorithm: portfolio balances, cash: 3000.0, positions: 0.0
getting history for: ['bch_usdt', 'btc_usdt', 'dash_usdt', 'etc_usdt', 'eth_usdt', 'ltc_usdt', 'nxt_usdt', 'rep_usdt', 'str_usdt', 'xmr_usdt', 'xrp_usdt', 'zec_usdt']
Traceback (most recent call last):
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/guido/dev/projects/catalyst/src/algo/reproduce_bug.py", line 28, in <module>
    simulate_orders=True)
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/utils/run_algo.py", line 549, in run_algorithm
    stats_output=stats_output
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/utils/run_algo.py", line 331, in _run
    overwrite_sim_params=False,
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/exchange/exchange_algorithm.py", line 309, in run
    data, overwrite_sim_params
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/algorithm.py", line 724, in run
    for perf in self.get_generator():
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/gens/tradesimulation.py", line 224, in transform
    for capital_change_packet in every_bar(dt):
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/gens/tradesimulation.py", line 137, in every_bar
    handle_data(algo, current_data, dt_to_use)
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/utils/events.py", line 216, in handle_data
    dt,
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/utils/events.py", line 235, in handle_data
    self.callback(context, data)
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/exchange/exchange_algorithm.py", line 761, in handle_data
    self._handle_data(self, data)
  File "/home/guido/dev/projects/catalyst/src/algo/reproduce_bug.py", line 15, in _handle_data
    frequency='5T')
  File "catalyst/_protocol.pyx", line 120, in catalyst._protocol.check_parameters.__call__.assert_keywords_and_call
  File "catalyst/_protocol.pyx", line 708, in catalyst._protocol.BarData.history
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/exchange/exchange_data_portal.py", line 95, in get_history_window
    ffill))
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/redo/__init__.py", line 162, in retry
    return action(*args, **kwargs)
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/exchange/exchange_data_portal.py", line 69, in _get_history_window
    ffill)
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/exchange/exchange_data_portal.py", line 218, in get_exchange_history_window
    False)
  File "/home/guido/dev/tools/miniconda3/lib/python3.6/site-packages/catalyst/exchange/exchange.py", line 517, in get_history_window
    first_candle = candles[asset][0]
IndexError: list index out of range

Hi @gatapia , thanks for reporting.
I was able to reconstruct using both 1 and 2 bars.
Will investigate to understand the root cause.
Thanks.

It seems that Poloniex sometimes returns empty candle list. It happens more frequently in less traded coins (like DASH).
Will work on a solution.

Note: Also happens w/ Bitfinex so its not exchange specific

Sure, thanks for the reminder. In any case, we are working on a generic solution.

@gatapia , thanks again for reporting this issue.
A fix was pushed to develop branch.

@lenak25 I will leave my paper-trade algo running for a while to see if the empty candles issue is resolved (looks ok after 10 mins now).
However the problem that bar_count=1 can return 2 candles still exists.
My code above can be used to reproduce. i.e. print('history: ', history.shape) should print out 1 row when bar_count = 1 however it can print 2 rows.  When running with bar_count=2 I also still get 3 rows sometimes.
This happens for polo and bitfinex.

Can also confirm that backtest data.current(..., 'volume') still does not return the 24 hour volume as does live mode.

Thanks @gatapia . We have addressed the issue of empty candles being handled properly (not throwing an exception as you witnessed).
Regarding the extra candle you get sometimes, thanks for the reminder, we will address it also.
Regarding the 24-volume being returned in backtest as in live, I still owe you an answer (from issue #230), checking it also.

@gatapia, adding a reference to the separate threads you have opened for your two latest observations (#260 , #259 )
Thanks for working to improve the software!

The original issue was fixed at 0.5.4.


✨ Save login after "sign in with HF"

Also make the cookie expire after 1 hour (until we have a refresh token mechanism maybe)
cc @julien-c for the suggestion (and @osanseviero @SBrandeis who reacted to the suggestion)

🔥


⚠ Bofrost.be has degraded performance

In 364287b, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1664 ms

Resolved: Bofrost.be performance has improved in ed66e1c after 15 minutes.


slang-test: Test context Slang session is leaking

Affected tests:

tests/compute/interface-shader-param.slang (wgpu, vk) (Note: the test is passing before the assert happens)
tests/compute/interface-shader-param-in-struct.slang (wgpu) (Note: the test is passing before the assert happens)

This assert is triggering:
SLANG_API void spDestroySession(SlangSession* inSession)
{
    if (!inSession)
        return;

    Slang::Session* session = Slang::asInternal(inSession);
    // It is assumed there is only a single reference on the session (the one placed
    // with spCreateSession) if this function is called
    SLANG_ASSERT(session->debugGetReferenceCount() == 1);
    // Release
    session->release();
}

session->debugGetReferenceCount() is returning 7 for wgpu and 4 for vk, for tests/compute/interface-shader-param.slang.
Call stack:
KernelBase.dll!00007ffbd9ebfa4c()
[External Code]
slang.dll!Slang::handleSignal(Slang::SignalType type, const char * message) Line 65
	at C:\Users\aleino\workspaces\slang\source\core\slang-signal.cpp(65)
slang.dll!spDestroySession(slang::IGlobalSession * inSession) Line 184
	at C:\Users\aleino\workspaces\slang\source\slang\slang-api.cpp(184)
slang-test.exe!TestContext::~TestContext() Line 114
	at C:\Users\aleino\workspaces\slang\tools\slang-test\test-context.cpp(114)
slang-test.exe!innerMain(int argc, char * * argv) Line 4922
	at C:\Users\aleino\workspaces\slang\tools\slang-test\slang-test-main.cpp(4922)
slang-test.exe!main(int argc, char * * argv) Line 4928
	at C:\Users\aleino\workspaces\slang\tools\slang-test\slang-test-main.cpp(4928)
[External Code]

I believe this is caused by a circular dependency in the shaderCache when using specialized pipelines with Vulkan.
Only Vulkan uses these, and only in the tests you listed plus tests/compute/dynamic-dispatch, so that explains the repro steps.
The shaderCache is cleared by rhi::vk::~DeviceImpl, however to get there the device refCount must first drop to zero.  But the shaderCache stores specializedPipelines, which hold a ComputePipelineImpl, which holds a ShaderProgramImpl, which holds an m_device that points back to the shaderCache's owner.  It is a Breakable Reference, but nothing breaks it.
shaderCache.specializedPipelines
└─ Pipeline [rhi::vk::ComputePipelineImpl]
   └─ m_program     rhi::RefPtr<rhi::ShaderProgram>
      └─ pointer    [rhi::vk::ShaderProgramImpl]
         └─ m_device

If this is right, then one option is to clear the cache after each run, eg. around app.finalize() -- but RHI might not have an API for that yet.  Alternatively, disable the cache during tests. Either way caching pipelines from run to run risks non-deterministic effects. If caching is important, a force clear at shutdown then?

Thanks! That sounds like it could be part of the story.
WebGPU also has some kind of leak. I didn't try any other backends besides Vulkan and WebGPU yet.

Thanks for clarifying, I didn't test webGpu and spoke too soon :)
I hacked a repro in core slang-rhi:
https://github.com/shader-slang/slang-rhi/compare/main...bprb:slang-rhi:bpe_leak
I added a specialization to test-compute-trivial, disabled all but webGpu, and added an internal counter to rhi::wgpu::DeviceImpl.
The specialization shader leaves a device refCount of 1 even after gCachedDevices.clear(), while the original shader ends with 0.
So with just one platform and just one shader, ~Device appears to never run, and could keep any Device::slangContext.globalSession alive.

Great progress! Now we have a much simpler repro case, at least for one leak.

@bmillsNV FYI I'm moving this to the next sprint.


Vertical Week Calendar

Feature
I didn't find how to add this type of calendar, so I open a request feature. We want to add a vertical week calendar like Microsoft Teams way, where you can have a horizontal week calendar and in the bottom a vertical calendar week list, display with a summary of the meetings. Also notice that the vertical and the horizontal calendars are sync.
Tech (if applicable)
I start to develop this feature, i attach a demo of the Example:
Screencast from 2024-08-23 17-32-15.webm
I made a mistake implementing another component?
On another note maybe to improve the usability the dates that we display in the vertical week calendar should be the same as the horizontal week.
What do you feel about this feature?

Hi, thanks for bringing this up. This is a very specific use case, so I don't think it is worth adding to the library itself.


Small refinements

Don't target .net framework specifically.

Target just .NET Standard, not .NET Framework.
If an app is using RockLib, they're using RockLib's IConfigurationRoot-based configuration management system. Even if their app is targeting .NET Framework.

Simplify names to differentiate from System.Configuration.ConfigurationManager

Rename the ConfigurationManager class to Config.
Rename the ConfigurationRoot property to Root.

Similarly rename other members with "ConfigurationRoot" in their names.

Add LateBoundConfigurationSection class.

Reviewed with Brian.


header bump

Codecov Report
Patch and project coverage have no change.

Comparison is base (da57f73) 73.95% compared to head (8e8a9db) 73.95%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #371   +/-   ##
=======================================
  Coverage   73.95%   73.95%
=======================================
  Files          28       28
  Lines        1405     1405
=======================================
  Hits         1039     1039
  Misses        310      310
  Partials       56       56

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


Fix v4 example with wagmi

Summary
Its looks like now chainIds not exist, but chainId exist
Object literal may only specify known properties, but 'chainIds' does not exist in type '{ appName: string; appLogoUrl?: string | null; darkMode?: boolean; linkAPIUrl?: string; uiConstructor?: (options: RelayUIOptions) => RelayUI; diagnosticLogger?: any; overrideIsMetaMask?: boolean; overrideIsCoinbaseWallet?: boolean; ... 5 more ...; reloadOnDisconnect?: boolean | undefined; }'. Did you mean to write 'chainId'?

Hi @danpopenko it looks like you might have been following the v4 beta walkthrough but using v3 which explains the options discrepancy.
In v3 we have a chainId option, in v4 beta.6 we have a chainIds option, but that interface is changing again soon in v4 beta.8. I will update the docs accordingly after beta.8 is released.


Error when parsing: XmlParserException: ">" expected at 1:71

Thanks for creating this package!
I'm trying to parse the example xml that is provided in the example app but I'm facing this error:
XmlParserException: ">" expected at 1:71
Also I've tried using my own .musicxml file and faced the same error.
The error happens inside the XmlDocument.parse(input) so I think the problem can be related to the xml package
Any ideas on how to solve it?

 But I still parse your file success. The test still works well. Could you please show me your code when you read the file input? and what music_xml version are you using now?

Hi @rafaeljustinox, thanks for your issue. But I still parse your file success. The test still works well. Could you please show me your code when you read the file input? and what music_xml version are you using now?

I'm using the latest version. And the files that I used is the one from the example app and the other that I sent above

Seems that changing the way to load the XML string solved!
Instead of
final musicXml = await DefaultAssetBundle.of(context).loadString(xmlPath)
Did
final musicXml = await rootBundle.loadString(xmlPath);


SystemJS errors while running skeleton-navigation

It seems to be update to most recent version of Aurelia RC has broken something inside skeleton-navigation projects.
No matter which project I try to start they all hands on start page showing Aurelia Navigation Skeleton caption and several ReferenceError: System is not defined messages in console.
I've tried typescript and esnext options. Both acts the same — refuse to start.

OK, I figured out, what was wrong... I missed jspm install -y...
Sorry for confusion!


Very high query count deleting pages when using PostgreSQL search

I found on a site that the following query is run 688 times on average when pages are deleted:
DELETE FROM "postgres_search_indexentry" WHERE ("postgres_search_indexentry"."content_type_id" = %s AND "postgres_search_indexentry"."object_id" IN (%s))

Wagtail version: 2.0
PostgreSQL version: 9.6.8

This was fixed by 2bf3110ea112f0d479ef5befe92adebdee929b6f. Maybe we should backport it in 2.0.x?

Ahh, great! Isn't a major issue and it's easy to upgrade from 2.0 -> 2.1 so I'd leave it.


meadow.core not found in local repository (also Meadow.Foundation not found when present)

Looks like the Clima project has a dependency on Meadow.Core.
PS C:\repo\Clima\Source\Clima> dotnet restore Clima.sln C:\Program Files\dotnet\sdk\5.0.200-preview.21079.7\NuGet.targets(290,5): error MSB3202: The project file "C:\repo\Meadow.Core\source\Meadow.Units\Meadow.Units.csproj" was not found. [C:\repo\Clima\Source\Clima\Clima.sln]
I'm also seeing this error which I assume is because the restore is failing.
'C:\repo\Meadow.Foundation\Source\Meadow.Foundation.Peripherals\Sensors.Weather.WindVane\Driver\Sensors.Weather.WindVane\Sensors.Weather.WindVane.csproj'. If you are using Visual Studio, this may be because the project is unloaded or not part of the current solution so run a restore from the command-line. Otherwise, the project file may be invalid or missing targets required for restore.	WilderenessLabs.Clima.Meadow.Pro.HardwareDiagnostics	C:\repo\Clima\Source\Clima\WilderenessLabs.Clima.Meadow.Pro.HardwareDiagnostics\WilderenessLabs.Clima.Meadow.Pro.HardwareDiagnostics.csproj'
Is there a place where I can get Meadow.Core? I can't seem to lay my eyes on it here in your public repo.

Weird I pulled the local .Core project references and it seemed to use the nuget packages.


Request to rebase and open a PR

It would be easier to collaborate if you just leave an initial commit in master adding a README.md (saying "WIP"), Cargo.toml and .gitignore, and open a PR for the rest of the commits. It'd be easier to add inline comments and all... We'll finalize on a design and merge it?
Also, can you add me as a collaborator?

See #2.


Old Dragon 2e sheet no longer showing up on Roll20

The Old Dragon 2e sheet is no longer being shown on Roll20. It was in the list just a few weeks ago. I don't think anything changed in the files in order to prevent it from being shown. Any ideas what is causing the issue?
Previously:

Currently:

Notice that Old Dragon 2e is no longer shown.

Sorry for the confusion! This was unintentionally affected by an update to our sheet service and should now be resolved.

Hi @NorWhal , I still have the same problem with the Private eye sheet. Would you be able to look once more?

Hi @NorWhal , I still have the same problem with the Private eye sheet. Would you be able to look once more?

@Fahrenholz Done!


Text is not shown in preview

Dear Developers,
when I use Automatic key retrieval {lex:Loc} Texts are not shown in the preview mode of VS, but only after compilation.
There are just blank spaces in preview mode and it can confuse one designing the layout.
Is there any possible solution for it?
Thank you in advance.

Hi,
the support of the preview in VS is in the product but not "supported". The WPF Designer in VS is sometimes strange. We have in the code a lot of special cases to get this working, but not 100%.
Very often complete close + restart of VS helps. I use at the moment VS2017 with actual patches and in my projects its working great.


[QUESTION]Did erpc support multi client &one server  use?

If you didn't find answer in existing open/closed issues you may ask here

Steps you didn't forgot to do

[x] I checked if there is no related issue opened/closed.
[x] I checked that there doesn't exist opened/closed PR which is solving this issue.
[x] I looked in documentation if there is related information.

Did erpc support multi client &one server use?


couldn't use Data.Text.length

TutorialD (master/main): addatomfunction "textLength" Text -> Either AtomFunctionError Int """(\((TextAtom t):_) -> pure $ IntAtom (Data.Text.length t)) :: [Atom] -> Either AtomFunctionError Atom """
TutorialD (master/main): :showexpr true:{a := textLength("A")}
Segmentation fault (core dumped)

It also happens in pre-compiled atom functions.
I'll guess  HasCallStack in Data.Text.length's type signature has something to do with this problem.

Very strange. I'll try to reproduce this to prevent this sort of crash since this could be used as a denial-of-service attack.
At a higher level, though, the length function should likely be built-in and available by default.

I faced a different issue:
TutorialD (master/main): addatomfunction "textLength" Text -> Either AtomFunctionError Int """(\((TextAtom t):_) -> pure $ IntAtom (T.length t)) :: [Atom] -> Either AtomFunctionError Atom """
ERR: Couldn't match expected type ‘Text’
            with actual type ‘Text’
NB: ‘Text’
      is defined in ‘Data.Text.Internal’ in package ‘text-<IP_ADDRESS>’
    ‘Text’ is defined in ‘Data.Text.Internal’ in package ‘text-2.0’

which is clearly a Data.Text version mismatch but not a crash. That reminded me to delete my pre-built project-m36 library in the .cabal/store directory using:
ghc-pkg -f ~/.cabal/store/ghc-8.10.7/package.db unregister project-m36-0.9.4
cabal install lib:project-m36 --lib

That's pretty annoying and easy-to-miss but it should only affect developers, but maybe I should make it harder to load a version-mismatched project-m36 library into the scripting environment. Hmm...
After rebuilding against the correct project-m36 version, it does seem to work as expected:
TutorialD (master/main): addatomfunction "textLength" Text -> Either AtomFunctionError Int """(\((TextAtom t):_) -> pure $ IntAtom (T.length t)) :: [Atom] -> Either AtomFunctionError Atom """
TutorialD (master/main): :showexpr true:{a := textLength("A")}
┌──────┐
│a::Int│
├──────┤
│1     │
└──────┘

I think it's likely that you just need to rebuild the project-m36 library which gets loaded by the scripting environment. I'll use this ticket to make it more difficult to load an incompatible version.

I guess you are right on the spot.
I manually offer the ghc library path I nix-env -iA with upstream project-m36 to my locally-snack-build tutd.
After I uninstall the local one. It works.
TutorialD (master/main): addatomfunction "textLength" Text -> Either AtomFunctionError Int """(\((TextAtom t):_) -> pure $ IntAtom (Data.Text.length t)) :: [Atom] -> Either AtomFunctionError Atom """
TutorialD (master/main): :showexpr true:{a := textLength("A")}
┌──────┐
│a::Int│
├──────┤
│1     │
└──────┘

Thanks very much!


Update marked to >= 0.3.6 and sanitize input

This mitigates chij/marked#592

The XSS that's put by a developer into a source code comment? Really?


LNURL withdraw not possible with btc as display unit

Hey there,
We are providing LNURL withdraw to our customers to claim their sats that they bought with Pocket.
In the latest version (2.0.6) of the Phoenix iOS app we experience issues with a specific amount in combination with btc as the display unit.
{
"tag": "withdrawRequest",
"callback": "...",
"k1": "none",
"defaultDescription": "Pocket 💜",
"minWithdrawable": 60387000,
"maxWithdrawable": 60387000
}

Switching the bitcoin unit to sats (settings -> display -> bitcoin unit) solves the error and the user is able to withdraw to their wallet.

Thanks!


A Push ends in:  ! [remote rejected] lab -> lab (pre-receive hook declined)

Gitea version (or commit ref): 1.3.2
Git version: 2.11.0
Operating system: Debian Stretch (9.3)
Database (use [x]):

[ ] PostgreSQL
[x] MySQL (MariaDB, actually)
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Log gist:  [...io/gitea/cmd/hook.go:115 runHookPreReceive()] [F] retrieve protected branches information failed

Description
I have seen similar issues, but the solutions to those are not fixing the current issue.  Example:  https://github.com/go-gitea/gitea/issues/1685.
What's strange is that it will fail and the logs will show the above.  However, if I restart the gitea service, a push happens correctly, as expected.  This will be fine for a while, but somewhere after about 10 minutes or so, I would have to restart the service again to be able to push changes to my repos.  This is affecting all of my repos.  As I find more information, I'll be glad to post details here.  Do you have any suggestions what may be causing this?
I've attached my config file for review (private info redacted).  This config worked well with versions in the 1.2 branches.
app.ini.txt

I have also found the following in the service logs, which may be relevant:
Completed /<my-path-to-repo.git>/info/refs?service=git-receive-pack 401 Unauthorized in 4.739506ms
Completed /<my-path-to-repo.git>/info/refs?service=git-upload-pack 401 Unauthorized in 2.956383ms
It does, however, show a "200 ok" later for each of these items.  Secondly, if we were having a rights issue, why would a restart of the service fix it?
Still looking for more details to provide.  Thank you for any help that could be given.

And I've found this:
Dec 18 00:09:53 git01.mydomain.net gitea[21940]: [Macaron] 2017-12-18 00:09:53: Started GET / for <myIP_redacted>
Dec 18 00:09:53 git01.mydomain.net gitea[21940]: [Macaron] 2017-12-18 00:09:53: Completed / 302 Found in 681.322µs
Dec 18 00:12:58 git01.mydomain.net gitea[21940]: [mysql] 2017/12/18 00:12:58 packets.go:33: unexpected EOF

@minoru7 that means your config LOCAL_ROOT_URL is not corrected.
; Local (DMZ) URL for Gitea workers (such as SSH update) accessing web service.
; In most cases you do not need to change the default value.
; Alter it only if your SSH server node is not the same as HTTP node.
LOCAL_ROOT_URL = %(PROTOCOL)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/

@lunny I'm confused.  Why does it work for a while after I restart the service?  Also, we're doing a proxy per what that comment says:
    ProxyPreserveHost On
    ProxyRequests off
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/

This worked with prior versions.  What has changed?  Thank you for your assistance.

@minoru7 because it was changed to use http internal API for operations that change DB from ssh to have less problems with sqlite database locking

Ah, ok.  Was that done after version 1.2.3?
So we're unable to use the same proxying we were doing before?

You can do, you just need to set LOCAL_ROOT_URL so that ssh server can connect to gitea address, usually that is http://localhost....

I guess I was under the impression that the following were variables pulling from other values:
LOCAL_ROOT_URL = %(PROTOCOL)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/
I thought I could just place PROTOCOL=http, HTTP_ADDR=localhost, and HTTP_PORT=3000 and then that string (above) would take those values and fill in accordingly.  Kind of like what happens with apache configs.  That's not the case?

In such case yes that should be so

Ok, in that case, if you look at my config file that I attached, the values are there and should turn up as LOCAL_ROOT_URL = http://localhost:3000.  Does it need to be the external address listed in ROOT_URL, or is having it "localhost" sufficient?

I think I may have figured this out.  We use Puppet to lay out our configurations.  I noticed that every time the Puppet agent ran, it was breaking it.  So then I also noticed that after I restarted the gitea service, a change was made to the /opt/gitea/custom/conf/app.ini that was removing INTERNAL_TOKEN = <some_number> under the [security] heading.
It looks like Gitea places that into the config when it starts up?  And then Puppet is removing it after the fact.  What is this item?  And was this added after version 1.2.3?

@minoru7 I think it should be. The INTERNAL_TOKEN config was added in v1.2.x. Gitea web and Gitea serve/hook will share the token so that that should not be changed after Gitea web running.

I never saw this in version 1.2.3, which was our previous version.  We're now running 1.3.2.  Is the removal of the INTERNAL_TOKEN by Puppet causing the error I listed above, you think?

@minoru7 I think yes.

Well, that's a bit unfortunate.  If the token is being used by the running of the system, it'd be better to have that controlled elsewhere rather than in the config file that is modified with my personal changes.  I'm going to have to figure out another way of laying down the config using Puppet.
Thank you for your help in figuring this issue out.  You guys do a great job!

I have the older server still up where I can compare the configs.  I was wrong, I see the INTERNAL_TOKEN being removed on the old server too.  So that's not what is causing the issue then.  Back to the drawing board...

@lunny or @lafriks,
FYI.  I have made my file resource in Puppet only apply if the app.ini doesn't exist.  It's unfortunate to have to do this since now any changes to app.ini in Puppet will have to be replaced manually on the git servers.  However, since doing this, whatever was happening with Gitea has been fixed.  I don't understand why the removal of INTERNAL_TOKEN (or the reload of the service) caused issues with 1.3.2 but not 1.2.3, but I at least have a fix in place for now.
If you think it would be possible to move the INTERNAL_TOKEN feature outside of the app.ini, I will be glad to put in a feature request.  Honestly, a security item such as this, that is internal to the running of the application should probably be placed elsewhere (a lockfile, pid, or one config file for the system and one for a user such as myself to edit, etc.).  Just my two cents though.  ;-)

@minoru7 You are welcome to send a PR to do that. The INTERNAL_TOKEN will be shared on gitea web process and gitea serv process when SSH is called.  The variable will be read or created when gitea web start and saved on memory. When a git pull or push via SSH, gitea serv/ gitea hook will be called and will send a HTTP request with the token to HTTP service started on gitea web.

@lunny, thank you for your help.  It's greatly appreciated.


Colors still not working??

2 years later the colors are still not working in intellij..? did someone find a fix for this?

I am running Android Studio Arctic Fox |2020.3.1 Patch 2:

"Logcat" is white
"Run" is in color

so guess this is fine.  Hope this helps.
Best regards

This issue is a bit complex, but we could solve it by changing logger/outputs/console_output.dart to below:
import 'dart:io';
import 'dart:developer' as developer;
import 'package:flutter/foundation.dart';
import 'package:idealab/plugins/logger/log_output.dart';
import 'package:idealab/plugins/logger/logger.dart';
const bool _kReleaseMode = kReleaseMode;
/// Default implementation of [LogOutput].
///
/// It sends everything to the system console.
class ConsoleOutput extends LogOutput {
@OverRide
void output(OutputEvent event) {
if (_kReleaseMode || !Platform.isIOS )
{
event.lines.forEach(debugPrint);
}
else
{
event.lines.forEach(developer.log);
}
}
}

`This issue is a bit complex, but we could solve it by changing logger/outputs/console_output.dart to below:
import 'dart:io';
import 'dart:developer' as developer;
import 'package:flutter/foundation.dart';
import 'package:idealab/plugins/logger/log_output.dart';
import 'package:idealab/plugins/logger/logger.dart';
const bool _kReleaseMode = kReleaseMode;
/// Default implementation of [LogOutput].
///
/// It sends everything to the system console.
class ConsoleOutput extends LogOutput {
@OverRide
void output(OutputEvent event) {
if (_kReleaseMode || !Platform.isIOS )
{
event.lines.forEach(debugPrint);
}
else
{
event.lines.forEach(developer.log);
}
}
}`


Nested fast-foreach

Nested elements can lead to a:
Uncaught TypeError: Cannot read property 'insertBefore' of null
   ko.virtualElements.prepend
   ko.virtualElements.insertAfter
   FastForEach.insertAllAfter
   FastForEach.added
...

Hello @brianmhunt, could you please provide me some sample codes which reproduces the issue? I'll try to have a look.

Thanks @cervengoc – I'll try and put together a test case, then we can sort out the issue. :)
The gist is that (using ko.punches syntax)
{{ fastForEach: x }}
  {{ fastForEach: y }}
    <div> Node </div>
  {{ /fastForEach }}
{{ /fastForEach }}

will error when x has items that are disposed.  It seems that the node-removal logic of y continues even after it has been detached from the DOM.
It should be a simple fix, but obviously it'd be right to nail down a test case that covers the failure.

@brianmhunt In my current fork last year I started to work on partitioned DOM insterts, probably you remember. Besides that code change, I've also added a little check where we remove nodes if the node is attached (ie. parentNode is not null). Could you please try to add that one line and try it like that too?

@brianmhunt Could you cooperate to prepare the failing test? I can get some time to deal with it then nowadays.

Checking the sourcecode it looks like sometimes the insertAfterNode.nextSibling is null.
   // ...
} else {
    // Children of start comments must always have a parent and at least one following sibling (the end comment)
    containerNode.parentNode.insertBefore(nodeToInsert, insertAfterNode.nextSibling);
}
// ...

Couldn't we simply test for this?
   // ...
} elseif (insertAfterNode.nextSibling) {
    // Children of start comments must always have a parent and at least one following sibling (the end comment)
    containerNode.parentNode.insertBefore(nodeToInsert, insertAfterNode.nextSibling);
}
// ...

@brianmhunt Any movement on this? I have multiple fashforEach in a template (both nested and un-nested) and once I call one, any subsequent calls are having the node cleared and don't display any results.

I haven't looked at this in a bit, but if you can nail down a test that'd certainly go a long way — and in any case, a PR is welcome.


Fix cqpv log field value on H3 connections

cqpv field is a human readable protocol name such as "http/1.1" and "http/2". But on H3 connections, "h3",  which is ALPN ID, was logged instead.

[approve ci centos]


Iridescence::iridescence" is imported but not globally visible.

I have solved it ：
in /usr/local/lib/cmake/iridescence/iridescence-targets.cmake
modify：add_library(Iridescence::iridescence SHARED IMPORTED) -> add_library(Iridescence::iridescence SHARED IMPORTED GLOBAL)


Improve "Resend invitation" confirmation modal

[ ] We should add the following sentence to "Resend invitation" confirmation modal:

This will not change the expiration time for this invitation.

[ ] We should also add a ? to the modal heading.

CZO thread

@zulipbot claim

@zulipbot claim


[terra-aggregator] Ensure the focus is released forcefully, when the corresponding item is removed from view

Bug Report
Description
When a component with auto/manual refresh capability uses a terra-aggregator, the disclosed component continues to remain in view even after the item that invoked it is removed from the parent component. And when a second refresh happens on the parent component (with or without the item in focus) the disclosed component is removed as an unintended effect
Steps to Reproduce

Load a component with Aggregator having a bunch of items that have disclosure capabilities
Click on an element within one of those items say (item A) and allow the disclosure component to open
On a timeout or probably a button action update the aggregator with a new set of items (without item A)
The expectation is to see the disclosed component close out. However it would continue to persist
Now if the component reloads with initial data set. The disclosed component will close on you.

Expected Behavior
Focus should release as expected when item is dynamically removed based on user activity or a refresh interval from aggregator
Possible Solution
The reasoning for this behavior is because of this line Aggregator.jsx#L54. When checking if focused item is present in the view or not, the check should be made on the incoming props.However, it is being made on prevProps resulting in this behavior
@ Mentions
@tbiethman

@VivekChittamuri, is this the issue which you are seeing ?

@ShettyAkarsh  Yes, that is the behavior am seeing. If we change the line I tagged to this.props.items.forEach instead of items.forEach the code would work as expected. I was able to validate it locally on my node_modules.


Support for RTSP

Would you consider adding RTSP support to your plugin?

@robynb1 I am not familiar with RTSP. Looking around, it's impossible to display RTSP directly in the browser without converting RTSP to other formats supported in the browser.
Like this one: https://medium.com/cisco-fpie/how-to-render-rtsp-streams-within-a-react-app-e7957e591075
We can look into supporting video formats using URLs in the upcoming version.

We discussed this internally and decided that adding a <video> element for video streaming is out of the scope of the Base64 plugin.
There are Community Plugins that support video and may work for video streaming.

:(


DT-705 fixing cohort id on ApiReview

fixing cohort id on ApiReview

This fixed the routing problem that we were seeing. I looked replacing the cohort with cohort revision in the response but the UI is dependent on the cohort currently. I feel like it's probably better to coordinate that change with the UI experts.


Tests fail: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 120: ordinal not in range(128)

Traceback (most recent call last):
  File "/usr/ports/math/rumur/work/rumur-2019.06.01/tests/integration-tests.py", line 434, in <module>
    sys.exit(main(sys.argv))
  File "/usr/ports/math/rumur/work/rumur-2019.06.01/tests/integration-tests.py", line 363, in main
    option.update(parse_test_options(m, False)) # <- False used as dummy arg
  File "/usr/ports/math/rumur/work/rumur-2019.06.01/tests/integration-tests.py", line 77, in parse_test_options
    for line in f:
  File "/usr/local/lib/python3.6/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 120: ordinal not in range(128)
*** Error code 1

Version: 2019.06.01
FreeBSD 12
python-3.6

Thanks for the report. Can I ask what your locale is (echo ${LANG})? I'm guessing from the traceback that it is a non-UTF-8 one. Perhaps we should be suppressing UTF-8 tests when the users locale does not support it.

LANG isn't set in the environment.
$ env | grep -i lc
LC_CTYPE=en_US.UTF-8

I just noticed you're packaging this for FreeBSD. Thank you! Something I had thought about but not gotten around to.
I reproduced the issue on FreeBSD 12 and realised a few other things were broken too. Unfortunately I don't regularly test on FreeBSD because Travis CI doesn't support it. I've been eyeing alternatives like Cirrus CI but I don't have any past experience with it.
Can you have a look at what I've pushed to the bugfix/github-134 branch and see if it works for you? If you want to see more information about what the test suite is up to while it's running, instead of running make test you can run python3 /path/to/source/dir/tests/integration-tests.py --verbose.

I just noticed you're packaging this for FreeBSD. Thank you! Something I had thought about but not gotten around to.

Can you have a look at what I've pushed to the bugfix/github-134 branch and see if it works for you?

It works, thanks!

Great! I've merged this to master now.
Rumur has no particular release schedule, so I was going to cut a new release now. However, I noticed that you're using shebangfix for the FreeBSD package. Is there a more compatible way I could write the Python shebangs to ease your work by removing this dependency?

Rumur has no particular release schedule, so I was going to cut a new release now. However, I noticed that you're using shebangfix for the FreeBSD package. Is there a more compatible way I could write the Python shebangs to ease your work by removing this dependency?

Thanks for offering! shebangfix is because "python" can be resolved in multiple ways. It patches rumur/src/rumur-run and tests/integration-tests.py for the version of python set by USES=python which is currently /usr/local/bin/python3.6. I don't think anything can be done on your side for this, shebangfix corrects them just fine.
So please feel free to make a release. With tests working the port now is in a perfect shape! :-)

Excellent. I've just pushed new release notes to master and I'll tag the tip when the Travis CI tests pass.

Done and tagged. Let me know if you have any further problems and thanks again for the packaging work!

I updated the port, thank you!


Release testing: Celsius_connectors example fails immediately

Testing in the Docker on Mac environment, and the celsius_connectors example fails to run.
(python-virtualenv) ./run_sample
Traceback (most recent call last):
  File "./run_sample", line 6, in <module>
    import SocketServer
ImportError: No module named 'SocketServer'

My $PYTHONPATH is :/src/wallaroo/machida/lib:.:/src/wallaroo/bin/../bin/pylib:

I am running through this with docker to see if I can reproduce the error


Update to turn + amobee

:star: PR built and available in a preview environment mailming-pyweb-pr-2 here

:star: PR built and available in a preview environment mailming-pyweb-pr-2 here


Adds exception for variable strings for defined

The defined function is the exception to this rule, as it can check if a variable has actually been defined, which requires the variable be given as a string.
See https://docs.puppetlabs.com/references/latest/function.html#defined

Closing out old PRs 💃


Make a new release to include February, 2023 version of FFmpeg

Current version was built 3 weeks ago


Add Lucas Cherestal's file

created branch>created file>made a commit>open pulled request

changed file name

fixed


Finalize and document HTTP API

The new FastAPI schema in #407 is not finalized or documented yet. We want this to be a public, stable API, so let's do a critique of it and document it.
Migrated from a todo in https://github.com/replicate/cog/pull/378.

Fixed in #475.


fix: project utils and simulation runs

What does this PR do?:

Fixes create-project functionality.
Fixes rerun-custom-project functionality
implements clientside redirection for window.location.hostname within the dispatch app to a biosimulations.org pointer.
upgrades actions/upload-artifact workflow actions to use @4 to remove deprecation error.

:tada: This PR is included in version 9.61.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Remove ARM simulator add-to-app caveat documentation

Once https://github.com/flutter/flutter/pull/85642 is available on stable (>2.4.0-4.0.pre), the website and samples workaround documentation for how to build with ARM simulators for add-to-app should be removed since they are no longer necessary.
https://github.com/flutter/website/pull/5174
https://github.com/flutter/samples/pull/646

Looks like this was actually already done, and just didn't get closed.


CListBoxItem::ItemFromPoint bOutside

It seems like bOutside is TRUE if the point is outside the area of the entire list box, not outside the area of the nearest list box item as suggested here.
LB_ITEMFROMPOINT indicates this also https://docs.microsoft.com/en-us/windows/win32/controls/lb-itemfrompoint.

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

ID: 30ff1bd4-58a7-7e02-cc44-63006b3e98bd
Version Independent ID: 9f415ea7-35cb-bc52-1549-c0d2c48145af
Content: CListBox Class
Content Source: docs/mfc/reference/clistbox-class.md
Product: visual-cpp
Technology: cpp-mfc
GitHub Login: @corob-msft
Microsoft Alias: corob

A year later and I realised that I was possible wrong about this. I think it behaves differently for different list box styles.
If the list box has LBS_EXTENDEDSEL style ItemFromPoint bOutside is TRUE for a point inside the client area that doesn't hit an item. That matches what the documentation previously said.
This may need to be checked...

Unfortunately, due to doc resourcing and current priorities, closing.


Ios16 contextMenu Not Working

Ios16 contextMenu Not Working！！

hideDefaultSystemContextMenuItems
onHideContextMenu
onCreateContextMenu
None of them work

Same as https://github.com/pichillilorenzo/flutter_inappwebview/issues/1315 right?

Same as #1315 right?

yes

@pichillilorenzo can you help here?


Create example So2Sat configs to attack different modalities

Create example So2Sat configs that attack SAR, EO, or both.

LGTM


Remove globall calls of get_settings

Description

This PR is to remove all global calls of get_settings()
Type of change

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

References

Current list of get_settings call
/home/czaki/.pyenv/versions/napari/bin/python -m napari
/home/czaki/Projekty/napari/napari/utils/_octree.py:77: RuntimeWarning: using settings in global context:
/home/czaki/Projekty/napari/napari/utils/config.py:55 # only async is enabled, not the octree.
octree_config = get_octree_config()

##########
  settings = get_settings()
/home/czaki/Projekty/napari/napari/utils/_octree.py:45: RuntimeWarning: using settings in global context:
/home/czaki/Projekty/napari/napari/utils/config.py:55 # only async is enabled, not the octree.
octree_config = get_octree_config()

##########
  async_var = get_settings().experimental.async_
/home/czaki/Projekty/napari/napari/plugins/_plugin_manager.py:104: RuntimeWarning: using settings in global context:
/home/czaki/Projekty/napari/napari/plugins/__init__.py:9 plugin_manager = NapariPluginManager()
plugin_manager._initialize()

##########
  plugin_settings = get_settings().plugins
/home/czaki/Projekty/napari/napari/plugins/__init__.py:11: RuntimeWarning: using settings in global context:
/home/czaki/Projekty/napari/napari/plugins/__init__.py:11 # Disable plugins listed as disabled in settings.
plugin_manager._blocked.update(get_settings().plugins.disabled_plugins)

##########
  plugin_manager._blocked.update(get_settings().plugins.disabled_plugins)

How has this been tested?

[ ] example: the test suite for my feature covers cases x, y, and z
[ ] example: all tests pass with my change

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] If I included new strings, I have used trans. to make them localizable.
For more information see our translations guide.

can you leave a comment with a little more justification for calling settings_module.get_settings() instead of from ... import ...; get_settings()
note that a lot of this is slated to change when the settings context manager (work that didn't make it into #2932) is finished

because new method of EventedMetaclass calls field default_factory on class create and _current_theme call get_settings

ah right.  thanks.  that would be a very good thing to include in a comment in the code somewhere.  I suspect that would surprise most newcomers reading the code

only octree and async left
/home/czaki/Projekty/napari/napari/utils/_octree.py:77: RuntimeWarning: using settings in global context:
/home/czaki/Projekty/napari/napari/utils/config.py:55 # only async is enabled, not the octree.
octree_config = get_octree_config()

##########
  settings = get_settings()
/home/czaki/Projekty/napari/napari/utils/_octree.py:45: RuntimeWarning: using settings in global context:
/home/czaki/Projekty/napari/napari/utils/config.py:55 # only async is enabled, not the octree.
octree_config = get_octree_config()

##########
  async_var = get_settings().experimental.async_
/home/czaki/.pyenv/versions/napari/lib/python3.8/site-packages/torch/cuda/__init__.py:52: UserWarning: CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up environment, e.g. changing env variable CUDA_VISIBLE_DEVICES after program start. Setting the available devices to be zero. (Triggered internally at  /pytorch/c10/cuda/CUDAFunctions.cpp:109.)
  return torch._C._cuda_getDeviceCount() > 0

Thanks @Czaki, trying now


Unable to change selection moving left pointer

Thank you for a great example to UITextInteraction!
Found small issue that it is unable to change selection by moving left pointer. Right pointer works, but not left. Probably you know what can be root of this issue
https://github.com/markavitale/UITextInteractionExample/assets/800044/b4f947ab-b0c9-4de8-b639-e618a6ae8c33
Thanks in advance.

Checking that fromPosition is always smaller than toPosition in textRange helped:
	func textRange(from fromPosition: UITextPosition, to toPosition: UITextPosition) -> UITextRange? {
		guard let fromPosition = fromPosition as? CustomTextPosition, let toPosition = toPosition as? CustomTextPosition else {
			return nil
		}
        return fromPosition.offset <= toPosition.offset
            ? CustomTextRange(startOffset: fromPosition.offset, endOffset: toPosition.offset)
            : CustomTextRange(startOffset: toPosition.offset, endOffset: fromPosition.offset)
	}


http scan

Hi, we are migrating the parrotsec.org redirector to mirrorbits and i'm pretty new to this software.
is there any way to scan a mirror without rsync or ftp?
our previous mirror redirector (mirrorbrain) allowed http repositories to be easily (but slowly) scanned via http if no rsync/ftp url was provided

Hello,
No, we don't support HTTP scanning as a deliberate choice. HTTP scanning is inefficient both for the server and the client. It's also insecure as it doesn't provide any way of validating files with a checksum.
I recommend asking your mirrors to enable either rsync or FTP.


Two quereis for this page

[Enter feedback here]
Hi team,
I have two queries for this page:

When there is 0 node for a compute cluster, will load balancer be deleted or not? If you search for load balancer in the article, you will see it mentions it will be deleted when node is 0, and then mentions unless it's deleted, or load balancer will exists, which is conflict.
For basic configuration assumptions, the first item, does Microsoft image mean our curated image and base image? what if we want to use curated images and base image?

Thanks!

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

ID: 2eeeb5a8-3587-0932-0d80-6a47414c82c6
Version Independent ID: 34958145-3803-c078-c1e2-798169b329b2
Content: Configure inbound and outbound network traffic - Azure Machine Learning
Content Source: articles/machine-learning/how-to-access-azureml-behind-firewall.md
Service: machine-learning
Sub-service: enterprise-readiness
GitHub Login: @jhirono
Microsoft Alias: jhirono

@Jessieliu111
Thanks for your feedback! We will investigate and update as appropriate.

Hi @Jessieliu111
Could you please go through the below link for 2nd Query.
I could not find related info about your 1st Query in this Document. Could you please add any screenshot or info related to that.
https://learn.microsoft.com/en-us/azure/machine-learning/how-to-access-azureml-behind-firewall?tabs=ipaddress%2Cpublic#:~:text=443-,Tip,follow the Best practices for securing Active Directory Federation Services article.,-Also%2C use the

@Jessieliu111
We are going to close this thread, if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.


Add code quality actions

Related issue

Helps DMT-106

Proposed changes

Add codeQL action to repository
Add LGTM badges for warnings and code grade

Nice work! LGTM :wink:


[JSONRPC] - Use a more structured dynamic field name instead of MoveValue::to_string

Current implementation of RPC dynamic field query use the MoveValue::to_string as name, which is quite ugly and hard to construct on client side to be used in sui_getDynamicFieldObject.
Example name struct in move:
    struct Name has copy, drop, store {
        name_str: std::string::String
    }

sui_getDynamicFields response:
{
    "jsonrpc": "2.0",
    "result": {
        "data": [
            {
                "name": "0xc03bf9390eb6849760890f4dabc53e64505c0159::object_basics::Name {name_str: 0x1::string::String {bytes: vector[84u8, 101u8, 115u8, 116u8, 32u8, 78u8, 97u8, 109u8, 101u8]}}",
                "type": "DynamicField",
                "objectType": "0xc03bf9390eb6849760890f4dabc53e64505c0159::object_basics::Object",
                "objectId": "0x3f8af3b8158af4b25d51c7d39c7c514cea94b1d0",
                "version": 10727,
                "digest": "AeSblVNBG3z6hTjwzwYE5rbUpEcjCEXzOUEt5rObkHs="
            }
        ],
        "nextCursor": null
    },
    "id": 1
}

This PR change the String name to DynamicFieldName, which is a struct of type and json value.
pub struct DynamicFieldName {
    pub type_: TypeTag,
    pub value: Value,
}

The name field become more readable and easier to create on client side.
{
    "jsonrpc": "2.0",
    "result": {
        "data": [
            {
                "name": {
                    "type": "0x1a43c696e91e24e8128c6764e713d38d24ffe4e1::object_basics::Name",
                    "value": {
                        "name_str": "Test Name"
                    }
                },
                "type": "DynamicField",
                "objectType": "0x1a43c696e91e24e8128c6764e713d38d24ffe4e1::object_basics::Object",
                "objectId": "0x7fe687114a592a8ae5baecf5954a3d0d2a74c60b",
                "version": 5,
                "digest": "fOmZ+NrNl2BP5MT1aGJ+YUk1rpiAmF5Bg6qGGbcgaIw="
            }
        ],
        "nextCursor": null
    },
    "id": 1
}

Example response for primitive type name:
{
    "jsonrpc": "2.0",
    "result": {
        "data": [
            {
                "name": {
                    "type": "bool",
                    "value": true
                },
                "type": "DynamicField",
                "objectType": "0x1a43c696e91e24e8128c6764e713d38d24ffe4e1::object_basics::Object",
                "objectId": "0x33274b734d787c19fc19871fb7b8c51a048b58b0",
                "version": 8,
                "digest": "56q6L9uzK4OswbZ9VvQak4CdOrhwA5DiweXrcA44JWA="
            }
        ],
        "nextCursor": null
    },
    "id": 1
}

friendly nudge :) this PR need some reviews

@patrickkuo any updates on this one? I believe it can be related to the #7668 implementation.

@patrickkuo any updates on this one? I believe it can be related to the #7668 implementation.

I will update the TS SDK (this PR has been opened for too long, TS SDK support was added recently 🤣), will chase for approval after this.

Moved some serde changes to fastcrypto, and fixed TS failing tests, this PR is ready for more reviews, @tnowacki  @666lcz


Make prefetching works again

With the recent changes to master, prefetching didn't work properly.
This fixes that.

Coverage remained the same at 57.377% when pulling c6c04e7937f34f28b938cca4c36616d2f8aa008a on arunoda:fix-prefetching into de6521a481d4c4cd072cd0c1620cc259725e8abd on zeit:master.

Coverage remained the same at 57.377% when pulling c6c04e7937f34f28b938cca4c36616d2f8aa008a on arunoda:fix-prefetching into de6521a481d4c4cd072cd0c1620cc259725e8abd on zeit:master.