ci: Support running tests using ARM FVP emulator

This series adds support for running tests using the ARM FVP emulator in the CI.
The ARM FVP cannot be included in the public CI Docker image due to licensing issues (redistribution is prohibited by the EULA), so a private CI Docker image (docker-internal) has been created.
The private CI Docker image includes the following ARM FVP models (note that the scope of this image may be expanded to include other proprietary toolchains in the future):

FVP_BaseR_AEMv8R
FVP_Base_RevC-2xAEMvA
FVP_Corstone_SSE-300_Ethos-U55

With this, the following platforms, some of which were not being run at all, can now be tested in the CI:

fvp_baser_aemv8r
fvp_base_revc_2xaemv8a
mps3_an547 (was previously using QEMU, but now uses FVP with more advanced emulation features such as the emulation of the Ethos-U NPU).

Closes #43852
Requires #45108, #45110, #45111 to be fixed prior to merging

so, if this PR gets merged, it means that tests will run of FVP as well?

@carlocaione Yes, CI will be testing the platforms listed in https://github.com/zephyrproject-rtos/zephyr/pull/45099#issue-1213688302 using the ARM FVP.
Note that there are still some failures that need to be fixed prior to merging this:
https://github.com/zephyrproject-rtos/zephyr-testing/actions/runs/2216000834

The ARM FVP cannot be included in the public CI Docker image due to licensing issues (redistribution is prohibited by the EULA), so a private CI Docker image (docker-internal) has been created.

I believe the Corstone images (at least the AN547, M55+U55 one) can actually be used in public CI and have a different license from the large FVP collection, which require a license to be purchased:  https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps
Ecosystem FVPs are available without license control for direct download from the following table.
They are supported by relevant Open Source Software projects.

They can even be downloaded directly in a way that is likely CI-friendly.

Somewhat of a sidenote, but the Corstone-1000 FVP looks like it might be useful for testing if we're enabling support for emulation since it's a Cortex-M0+ and a Cortex A35, where the device starts up on the M0+ which then starts the A35.
It could be an interesting testbed for Cortex-A and something like OpenAMP for A+M communication in CI.

I believe the Corstone (Ecosystem) images (at least the AN547, M55+U55 one) can actually be used in public CI and have a different license from the large FVP collection

@microbuilder The M55+U55/U65 one (SSE-300) is already used by mps3_an547 in this PR.
The problem was that the EULA, even for free versions, does not allow redistribution: https://github.com/zephyrproject-rtos/zephyr/issues/43852#issuecomment-1068928542. With the new approach using a private CI Docker image, we do not redistribute the FVP.

Somewhat of a sidenote, but the Corstone-1000 FVP looks like it might be useful for testing if we're enabling support for emulation since it's a Cortex-M0+ and a Cortex A35, where the device starts up on the M0+ which then starts the A35.

That would be very useful indeed. If such a board support is added to the Zephyr in the future, we can look into including the Corstone-1000 FVP in the private CI image as well.

Rebased

@povergoing I am seeing a failure after rebase:
INFO    - 1160/1160 fvp_base_revc_2xaemv8a    tests/kernel/usage/thread_runtime_stats/kernel.usage FAILED Failed (armfvp 3.568s)
...
START - test_thread_stats_usage
    Assertion failed at WEST_TOPDIR/zephyr-testing/tests/kernel/usage/thread_runtime_stats/src/test_thread_runtime_stats.c:517: test_thread_stats_usage: stats5.current_cycles < stats3.current_cycles is false
 FAIL - test_thread_stats_usage in 0.57 seconds

https://github.com/zephyrproject-rtos/zephyr-testing/runs/6745649272?check_suite_focus=true#step:11:1593

@povergoing I am seeing a failure after rebase:
INFO    - 1160/1160 fvp_base_revc_2xaemv8a    tests/kernel/usage/thread_runtime_stats/kernel.usage FAILED Failed (armfvp 3.568s)
...
START - test_thread_stats_usage
    Assertion failed at WEST_TOPDIR/zephyr-testing/tests/kernel/usage/thread_runtime_stats/src/test_thread_runtime_stats.c:517: test_thread_stats_usage: stats5.current_cycles < stats3.current_cycles is false
 FAIL - test_thread_stats_usage in 0.57 seconds

https://github.com/zephyrproject-rtos/zephyr-testing/runs/6745649272?check_suite_focus=true#step:11:1593
Note that this is a newly added test; see #45489
cc @peter-mitsis
p.s. This also fails on fvp_baser_aemv8r; interestingly, it does not fail on fvp_baser_aemv8r_aarch32.

I'll take a look

Rebased

Tested in https://github.com/zephyrproject-rtos/zephyr-testing/actions/runs/2587627407

At last, all tests passed in the CI: https://github.com/zephyrproject-rtos/zephyr-testing/actions/runs/2587627407.
@povergoing @SgrrZhf @carlocaione @microbuilder please review

These workflows are being reused downstream by others. Is it possible to limit the use of the internal image to those workflows that need it?

sure, I have reworked the patch such that the internal image is only used by the clang.yaml, codecov.yaml and twister.yaml workflows which actually require it. Note that these workflows require zephyr_runner so they cannot be used downstream as-is anyway.

We already have a patch, switching the node back to github defaults and adding parallel execution. Why those workflows require the internal version now? Is it due to adding testing:   default: true to these simulators?

@carlescufi could you revisit this?

@carlescufi could you revisit this?

sorry, do you mind rebasing @stephanosio ?

the issue is have is not what we are testing and the value we get from testing this, it is basically this:

 image: ghcr.io/zephyrproject-rtos/ci:v0.23.3
image: ghcr.io/zephyrproject-rtos/ci-internal:v<IP_ADDRESS>

This makes our docker images private, which have been open and public for years, this is a 'regression' IMO and can be confusing. Also, not that is it private, the tempatation to add more closed stuff is just going to grow. As I said, I am all of testing, but at not at any cost and not without having this gone a thorrogh reviews and discussed alteranives.

This makes our docker images private, which have been open and public for years

The internal CI Docker image is based off the public CI Docker image -- it basically takes the public image and installs the ARM FVP on top of it.
In the proposed scheme, the public CI Docker image will always be kept up to date and the downstream Zephyr users will be able to keep using the public CI Docker image in their CI (the tests for the platforms that require the ARM FVP will be automatically skipped).
Also note that the Dockerfile for the internal CI Docker image is public, so anyone can clone the repository and build the Docker image for local testing or for use in their own CI as long as they do not redistribute it in the binary form.

I do not understand why https://github.com/zephyrproject-rtos/docker-ci-internal/blob/cc116c53d7c50fd32143ed82d534b397171d9593/Dockerfile#L1 is private then.  Why not make this public, as a Docker file and make it available, you can also allow developers to just build it themselves, that should not vioiate the redistribution rules, the only thing that would not work is someone pulling the docker images with ARM FVP, which is fine, but everything else could be open.

Also note that the Dockerfile for the internal CI Docker image is public, so anyone can clone the repository and build the Docker image for local testing or for use in their own CI as long as they do not redistribute it in the binary form.

I should have read to the end first, but this good, we just end up having too many repos, why not put it next to the other Dockerfile?

the issues with the "internal" image can be tracked more nicely in a dedicated repository. also the people who are only interested in the public image do not get notified about the issues in the internal image this way.

The point I am trying to make is that everything is public less the built docker image itself, i.e. you can't get full access to the built image, but you can build it yourself and you can do whatever you want with it. So it less confusing and more transparent to have the source maintained and managed in a consitent way, in one place if possible, to avoid the possible misconception that we are doing something that is 'internal' only.

As per the discussion in the TSC meeting on 21 July 2022, this PR will be reworked to introduce a separate CI workflow using the "internal" image with a broader scheme to support the proprietary tooling including, but not limited to, the ARM FVP.

@stephanosio I have cleared the 3.2 milestone as we are past the feature freeze date. Kindly pick a milestone for a future release.

As per the discussion in the TSC meeting on 21 July 2022, this PR will be reworked to introduce a separate CI workflow using the "internal" image with a broader scheme to support the proprietary tooling including, but not limited to, the ARM FVP.

@stephanosio May I ask what the separate CI workflow will look like? Is there anything different with your first proposal, the "private/internal CI docker image"?

@stephanosio May I ask what the separate CI workflow will look like? Is there anything different with your first proposal, the "private/internal CI docker image"?

It should look about the same as what we have in this PR right now -- it will just be in a separate dedicated workflow instead of the main twister.yaml workflow.
However, there are some logistical problems with the separate workflow approach, which we will need to solve before we get to implementing it:

minimising the amount of duplicate code among the main twister workflow (twister.yaml) and the twister workflow(s) using proprietary tools.
properly scoping the tests that are built and run in a workflow so as to eliminate or minimise the amount of duplicate test builds and runs across multiple workflows.

@stephanosio what should we do with this?

@stephanosio what should we do with this?

@carlocaione The PR, in its current form, has been rejected by the TSC. I would let it close since this will need to be completely reworked and there is a dedicated issue tracking the enhancement (https://github.com/zephyrproject-rtos/zephyr/issues/43852).


Completely custom headers

First of all, I'd like to say this project is absolutely brilliant and has amazing potential, so thank you for taking the time to both author and share it for us to use!
Now, with that said, I think an additional feature which would offer a great deal of utility is the ability to provide a list of custom headers when calling the client, which could be provided as part of the websockets tunnel? My own interest in this would be for use with Cloudflare's Access service, which provides the ability for requests sent to applications behind Access to be checked for  CF-Access-Client-ID: <Client ID> and CF-Access-Client-Secret: <Client Secret> headers, which when matched, will allow the request to be forwarded and a JWT scoped to that client ID to be generated (link).
I think this would be a great option for authentication, as it would allow it to be tied into existing infrastructure, much like using Nginx as proxy.
I know nothing of Haskell, but a quick search through the source files threw up line 66 in Tunnel.hs.
Would it be as simple as adding appending an extra two dictionary values to TunnelSettings in Types.hs, and then essentially adding similar checks for these in Tunnel.hs?

I can add that, will take a look at it when I will have some free time to do that :)

I can add that, will take a look at it when I will have some free time to do that :)

Done in latest release https://github.com/erebe/wstunnel/releases/tag/v4.1
command line flag is -H
Enjoy :)

Thank you so much!


fix: search beta words by id

Fixes problem with sharing words with negative IDs (beta words from the community):

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 29.578%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/services/dictionary.ts
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1329

Relevant Lines:
5489

💛  - Coveralls


Fix scribe requiring 2 summaries to stop nacking messages

Fix scribe requiring 2 summaries to stop nacking messages. The logic for controlling when to stop sending the nacks was not correct
Add a way to make deli stop nacking messages - This would be a "break glass" procedure in case a future bug pops up and we need to disable these nacks asap.
Add comments to updateProtocolHead to clarify what it's doing

@GaryWilber Do we have tests for testing these kind of scenarios? If so, can we add a test case to validate this doesn't happen?

@GaryWilber Do we have tests for testing these kind of scenarios? If so, can we add a test case to validate this doesn't happen?

@agarwal-navin There are no tests for this logic in r11s. I generally add tests on the push side since I'm not too familiar with the r11s tests. I'll add an work item on my end to add a test for this. However I don't want to block this pr on a test since this bug is causing issues for a real doc.

Yes, please don't block on tests. We can do that later :-).


How to reproduce the performance of streaming ImageNet models?

Hi! I want to reproduce the performance of streaming ImageNet models, and follow the steps in README to run the run_imagenet_experiment.sh file( same ImageNet ordering), but i get this result after training, which seems not to match the performance in the paper.

Thanks for your reply @tyler-hayes .
My package versions:

Python 3.7.6
PyTorch (GPU) 1.4.0
torchvision 0.5.0
NumPy 1.18.1
FAISS (CPU) 1.6.3
CUDA 10.0
Scikit-Learn 0.22.1
Scipy 1.4.1

I use pip to install FAISS, because the package installed through conda will output errors during training. I will try to use conda to install this package again, and retrain the model.

Hi @ORION-CS,
I would recommend changing the PyTorch and torchvision versions to match ours well.

Thanks a lot! I recreate a new Conda virtual environment that is the same with yours and get a reasonable result.


Error: result.diff.toFixed is not a function

- name: Test
        continue-on-error: true
        run: yarn affected:test --configuration=ci --coverageReporters=json,json-summary
- name: Comment Code Coverage on PR
        uses<EMAIL_ADDRESS>        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          coverage-folder: ./coverage
          coverage-base-folder: ./coverage-base
          gist-token: ${{ secrets.COVERAGE_BADGES_GIST_TOKEN }}
          gist-id: someid
          color: green
          named-logo: jest

WARNING: Skipping diff check due to not finding any base json coverage summary with folder: ./coverage-base
WARNING: Skipping diff check due to not finding any base json coverage summary with folder: ./coverage-base
Error: result.diff.toFixed is not a function

I think I have this fixed in v1.3 now

closing, please reopen if this is still an issue


Data channels: support unreliable communication

Support unreliable data channels.
Needed by decentraland/communications-server-go.

Hi @backkem I am still working on this issue... Could you tell me what this flag is for?
const (
	payloadDataEndingFragmentBitmask   = 1
	payloadDataBeginingFragmentBitmask = 2
	payloadDataUnorderedBitmask        = 4
	payloadDataImmediateSACK           = 8 // <----- this one

I could not find any info about it in any of RFC 2960, 4960 and PR-SCTP, and it doesn't appear to be really used.  I could remove it if no longer needed.

Here's my note.

Before implementing FORWARD TSN, I had to sort out things around reassebly queue.  Issues I came across were descripbed in my note (see my previous message). Those are all fixed in rev 29698. Improvement made so far are:

Unordered option works now (was not fully implemented. Added tests also)
Ordered stream is no longer blocked by another stream of different SI.

I am about to start implementing Forward TSN - finally.

Using webrtc@sctp-pr branch (at rev@fcdfe), I was able to connect to Chrome and data going back and forth with no problem. I can see from the console output (from sctp) that it is correctly taking reliability parameters from API, and the biggest thing is Chrome accepts all permutations of Order, MaxPacketLifeTime and MaxRetransmits with no problem (whew..)
I am going to try to cause packet loss (maybe using XCode's Network Link Conditioner) to see of Foward TSN works ok with Chrome.

With MaxRetransmits set to 1 with Chrome, and Network Link Conditioner with 10% packet loss ratio, I can see Forward TSN chunks are going back and forth. I can see from the log that some packets are abandoned "correctly" and TSNs are moving on:
Message 'Payload Type String' from DataChannel 'data' payload 'Message 10'
Sending Message 12
final (abandoned) tsn=3790043284 (remix: 1)
sending tsn=3790043284 ssn=12 sent=1
building fwdtsn: si=0 ssn=12 tsn=3790043284 acked=false
stream[0]: handleData ts=2488767947 ssn=11
stream[0]: handleData readable? true
discard tsn=2488767947
Message 'Payload Type String' from DataChannel 'data' payload 'Message 11'
building fwdtsn: si=0 ssn=12 tsn=3790043284 acked=false
Sending Message 13
final (abandoned) tsn=3790043285 (remix: 1)
sending tsn=3790043285 ssn=13 sent=1
building fwdtsn: si=0 ssn=13 tsn=3790043285 acked=false
building fwdtsn: si=0 ssn=13 tsn=3790043285 acked=false
Sending Message 14
final (abandoned) tsn=3790043286 (remix: 1)
sending tsn=3790043286 ssn=14 sent=1
building fwdtsn: si=0 ssn=14 tsn=3790043286 acked=false
Sending Message 15
final (abandoned) tsn=3790043287 (remix: 1)
sending tsn=3790043287 ssn=15 sent=1
building fwdtsn: si=0 ssn=15 tsn=3790043287 acked=false
stream[0]: handleData ts=2488767948 ssn=12
stream[0]: handleData readable? true
discard tsn=2488767948
Message 'Payload Type String' from DataChannel 'data' payload 'Message 14'

I believe Chrome is happy with FORWARD TSN chunk pion generates. :)
I also see this line many times:
building fwdtsn: si=0 ssn=13 tsn=3790043285 acked=false

The line would show up when retransmission occurred. With the lack of T3-rtx timer, we are sending all unacked chunks every time SACK arrives.  We will need to fix this as soon as this work is complete.

I also confirmed that the accepting peer (Chrome)'s RTCDataChannel object has the same reliability parameters as what initiator requested:
ordered: true
maxPacketLifeTime: undefined
maxRetransmits: 1

FYI.

Following modules have changes related to this issue:

pions/transport@sctp-pr
pions/sctp@sctp-pr (depends on transport@sctp-r)
pions/datachannel@sctp-pr (depends on transport@sctp-r and sctp@sctp-pr)
pions/webrtc@issue-334r (depends on transport@sctp-pr, sctp@sctp-pr and datachannel@sctp-pr)

To consolidate go.mod, we will need to release in the following order:

Release transport with a tag
Release sctp with a tag
Release datachannel with a tag
Finally, release webrtc with a tag


Embedding doesn't work with CDN?

I use a CDN for delivering all my assets (including the grunticon CSS).
Embedding doesn't work on my stage-Server with CDN (while it works perfectly locally without CDN).
I get the following JS-Error:
Uncaught TypeError: Cannot read property 'length' of null

Hmm. Yeah okay that makes sense. It won't be able to access those CSS rules on externally-hosted CSS without CORs enabled, per my understanding at least.
It sounds like as of HTML5, you can set a crossorigin attribute on the link, and that'll work as long as the CDN has CORs enabled for your domain. Do you happen to have access to enable that to test it out?

I'm having the same issue with Shopify, which uses a CDN for all assets. The grunticon 1.x functionality works just fine, but I get the same JS error as @crohrer for embedding.
@scottjehl — I am using the following to initiate grunticon. Since there isn't a link tag in use here, is there any way of using the crossorigin attribute that you mentioned? Thank you!
grunticon( ['{{ "icons.data.svg.css" | asset_url }}', '{{ "icons.data.png.css" | asset_url }}', '{{ "icons.fallback.css" | asset_url }}'], function(){
  grunticon.ready(function(){
    grunticon.embedIcons(grunticon.getIcons(grunticon.href));
    //https://github.com/filamentgroup/grunticon/issues/213
    TweenMax.staggerTo($(".star"), 1.2, {
      scale: 0.5,
      fill: "#C8BDE5",
      repeat: -1,
      yoyo: true,
      transformOrigin:"50% 50%"
    }, 0.25);
  });
});

Hi again
I’ve got a small JS change working locally now that we may consider offering as a x-domain extension.
The main idea is that the CSS will need to be requested via Ajax because the link[crossorigin] attribute does not appear to work in Chrome (works in other browsers though).
The ajax patch seems to work well across browsers. It’d still require that the remote server has CORs enabled however.
I should have something up shortly that you can test.
Thanks
Scott
On Feb 3, 2015, at 2:30 PM, Jim Lakey<EMAIL_ADDRESS>wrote:

I'm having the same issue with Shopify, which uses a CDN for all assets. The grunticon 1.x functionality works just fine, but I get the same JS error as @crohrer for embedding.
@scottjehl — I am using the following to initiate grunticon. Since there isn't a link tag in use here, is there any way of using the crossorigin attribute that you mentioned? Thank you!
grunticon( ['{{ "icons.data.svg.css" | asset_url }}', '{{ "icons.data.png.css" | asset_url }}', '{{ "icons.fallback.css" | asset_url }}'], function(){
grunticon.ready(function(){
grunticon.embedIcons(grunticon.getIcons(grunticon.href));
//https://github.com/filamentgroup/grunticon/issues/213
TweenMax.staggerTo($(".star"), 1.2, {
scale: 0.5,
fill: "#C8BDE5",
repeat: -1,
yoyo: true,
transformOrigin:"50% 50%"
}, 0.25);
});
});
—
Reply to this email directly or view it on GitHub.

Hey @crohrer and @jimlakey,
Okay! I've got something for you to try out, and it'd be really helpful to know if it's working for you.
I've been working in the cors-ext branch if you're interested in the code, but basically I added a couple of methods to the loader that facilitate x-domain CSS loading with ajax instead of a link element. We're discussing whether to include these in the loader whenever the svg embed option is set, or when an additional cross-domain option is set.
In the meantime, if you could test out this new loader and see whether it helps, that'd be great.
Here's the loader JS minified, which is a combination of this loader.js file and this loader svg embed extension:
/*! grunt-grunticon Stylesheet Loader - v2.0.2 | https://github.com/filamentgroup/grunticon | (c) 2015 Scott Jehl, Filament Group, Inc. | MIT license. */
(function(e){function t(t,n,r,o){"use strict";function a(){for(var e,n=0;u.length>n;n++)u[n].href&&u[n].href.indexOf(t)>-1&&(e=!0);e?i.media=r||"all":setTimeout(a)}var i=e.document.createElement("link"),c=n||e.document.getElementsByTagName("script")[0],u=e.document.styleSheets;return i.rel="stylesheet",i.href=t,i.media="only x",i.onload=o||function(){},c.parentNode.insertBefore(i,c),a(),i}var n=function(r,o){"use strict";if(r&&3===r.length){var a=e.navigator,i=e.Image,c=!(!document.createElementNS||!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect||!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1")||e.opera&&-1===a.userAgent.indexOf("Chrome")||-1!==a.userAgent.indexOf("Series40")),u=new i;u.onerror=function(){n.method="png",n.href=r[2],t(r[2])},u.onload=function(){var e=1===u.width&&1===u.height,a=r[e&&c?0:e?1:2];n.method=e&&c?"svg":e?"datapng":"png",n.href=a,t(a,null,null,o)},u.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",document.documentElement.className+=" grunticon"}};n.loadCSS=t,e.grunticon=n})(this);(function(e,t){"use strict";var n=t.document,r="grunticon:",o=function(e){if(n.attachEvent?"complete"===n.readyState:"loading"!==n.readyState)e();else{var t=!1;n.addEventListener("readystatechange",function(){t||(t=!0,e())},!1)}},a=function(){return t.document.querySelector('link[href$="'+e.href+'"]')},i=function(e){var t,n,o,i,c,u,s={};if(e||(e=a()),t=e&&e.sheet,!t)return s;n=t.cssRules?t.cssRules:t.rules;for(var l=0;n.length>l;l++)o=n[l].cssText,i=r+n[l].selectorText,c=o.split(");")[0].match(/US\-ASCII\,([^"']+)/),c&&c[1]&&(u=decodeURIComponent(c[1]),s[i]=u);return s},c=function(e){var t,o,a;o="data-grunticon-embed";for(var i in e)if(a=i.slice(r.length),t=n.querySelectorAll(a+"["+o+"]"),t.length)for(var c=0;t.length>c;c++)t[c].innerHTML=e[i],t[c].style.backgroundImage="none",t[c].removeAttribute(o);return t},u=function(){"svg"===e.method&&o(function(){c(i())})},s=function(e){var n=new t.XMLHttpRequest;return"withCredentials"in n?n.open("GET",e,!0):t.XDomainRequest!==void 0?(n=new t.XDomainRequest,n.open("GET",e)):n=null,n},l=function(){"svg"===e.method&&o(function(){var t=s(e.href);t&&(t.onload=function(){var r=n.createElement("style");r.innerHTML=t.responseText;var o=e.getSVGCSS();o.parentNode.insertBefore(r,o),o.parentNode.removeChild(o),c(i(r))},t.send())})};e.embedIcons=c,e.getSVGCSS=a,e.getIcons=i,e.ready=o,e.ajaxGet=s,e.svgLoadedCallback=u,e.svgLoadedCORSCallback=l})(grunticon,this);

If you replace your loader with that, it'll expose a new grunticon.svgLoadedCORSCallback method, which is what you'll want to use instead of the grunticon.svgLoadedCallback method that only worked with same-domain CSS.
With that edit, your call to grunticon will look something like this:
grunticon(["http://example.com/icons.data.svg.css", "http://example.com/icons.data.png.css", "http://example.com/icons.fallback.css"], grunticon.svgLoadedCORSCallback );
And as noted above, that remote server will need CORS enabled. Here's how that looks in htaccess, as one example:
<IfModule mod_headers.c>
    Header add Access-Control-Allow-Origin "*"
</IfModule>

Works for me on a couple domains, but please let me know how you fair!
Thanks

Yes, thank you! It works perfectly now with Shopify, so I guess they have CORS enabled on their CDN. I had to make a few changes in order to call the GSAP animation on the embedded SVG which I'll add below in case it's of help to anyone else down the line. Thank you, @scottjehl. I love the fact that I have clients who are paying me for my services and will take days to get back to me, yet the two times I've posted an issue on this repo, you guys are on it straight away. Thank you so much!
grunticon( ['{{ "icons.data.svg.css" | asset_url }}', '{{ "icons.data.png.css" | asset_url }}', '{{ "icons.fallback.css" | asset_url }}'], function(){
  grunticon.ready(function(){
    var xhr = grunticon.ajaxGet( grunticon.href );
    if ( !xhr ){ return; }
    xhr.onload = function() {
      var style = document.createElement( "style" );
      style.innerHTML = xhr.responseText;
      var ref = grunticon.getSVGCSS();
      ref.parentNode.insertBefore( style, ref );
      ref.parentNode.removeChild( ref );
      grunticon.embedIcons( grunticon.getIcons( style ) );
      // adding GSAP animation call for SVG just embedded
      TweenMax.staggerTo('.star', 1.2, {
        scale: 0.5,
        fill: "#C8BDE5",
        repeat: -1,
        yoyo: true,
        transformOrigin:"50% 50%"
      }, 0.25);
    };
    xhr.send();
  });
});

Great to hear.
And yes, that's useful to know. Sounds like you could use a callback or event when the embed markup is ready?
(Thanks for the kind words. @jefflembeck is the one who's usually on top of all the issues here :) )

Yes, a callback for when the embed markup is ready would be awesome. Thanks!

Adding this - https://github.com/filamentgroup/grunticon/issues/219 - will put it in after this is closed

Closing out. Both this and the callback are in master now. V 2.1

I am having a similar issue as the origin poster, but my problem is not with loading the CSS, but with embedding via "getIcons" method. I pinned the issue to loaded and created CSSStyleSheet not populating either "cssRules" or "rules" objects, resulting in getIcons getting a "Cannot read property 'length' of null". Any thoughts on how to resolve this? Thanks.


Added form_field_name to field options

In situation of saving multiple dataTypes allow for the form field name to be changed/prefixed to prevent conflict

Codecov Report

Merging #5631 (c119b39) into 1.5 (3d37938) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##                1.5    #5631   +/-   ##
=========================================
  Coverage     62.35%   62.35%
  Complexity     1400     1400
=========================================
  Files           195      195
  Lines          3870     3870
=========================================
  Hits           2413     2413
  Misses         1457     1457

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 3d37938...c119b39. Read the comment docs.


Update fileConfigPage.ts

Issue #2796 - I added the selected database name to the table schema select statement to pull the accurate table schema list.

https://github.com/microsoft/azuredatastudio/pull/2797 @kburtram Do you know if this is still an issue here?

@Charles-Gagnon @aspnerd I think the correct solution here is to use
let metadataProvider = azdata.dataprotocol.getProvider<azdata.MetadataProvider(this.model.server.providerName, azdata.DataProviderType.MetadataProvider);
let databases = await metadataProvider.getDatabases()

That way you don't have to deal with escaping names.

We should be using the MetadataProvider instead of QueryProvider to list the database names.

@Charles-Gagnon is correct, we are looking for schemas not databases for this drop down. The issue at hand is that the drop down populated pulls from master, therefore any selected database you want to import into does not list out the correct or available schemas. I ran into this issue when attempting to import a flat file into our 'Staging' schema, and it was not available on the drop down list.


FACT-2753-parallel-semaphore

Resolve facts by default in parallel (concurrently with MRI ruby). Sequential resolution of facts can be enables via the --sequential cli flag or via facter.conf (via de global.sequantial)
The semaphore is extracted in the base class compared to #2051

Jenkins please test this on all

CLA signed by all contributors.

Jenkins please test this on all

Jenkins please test this on all


[WIP] Ilike dsl

[x] Added in ilike, not_ilike, ilike_starts_with, ilike_ends_with, ilike_contains
[ ] Add in polymorphism for Postgres, MySQL and SQLite

@kaplanelad Which one do you think is a better approach? Using dsl traits for each engine, or using switch/match within the dsl function.

@jondot @kaplanelad, just a heads up that this code will cause a breaking change in the existing DSL code. Could you please double-check before merging? Thanks!

Hey @yinho999, sorry for the late response.
When you import postgres::Postgres, it depends on the feature flag in sea_orm. so in case one of the Loco users wants to Mysql and change the Postgres to MySQL, I think the code will not compiled.
Do you consider this case and some cfg for this case?

@kaplanelad Thanks for your suggestion. Just want to double-check, do you mean using something like cfg_if to enable different code by the sea-orm feature flag for database variants?

@kaplanelad @jondot
Hello there,
I am looking for some suggestions regarding the feature flag approach in our DSL. Below is my current implementation using feature flags. However, this method has some issues.
If a user enables two different feature flags simultaneously, only one of the conditions will be compiled. Additionally, we need to update our CI/CD pipeline because running cargo test --all-features will lead to the same issue and cause the other two tests to fail.
    #[must_use]
    pub fn ilike<T: ColumnTrait, V: Into<String>>(self, col: T, a: V) -> Self {
        cfg_if::cfg_if! {
        if #[cfg(feature = "sqlx-postgres")] {
                with(
                    self.condition.add(
                        Expr::col((col.entity_name(), col))
                            .ilike(a)
                            .into_condition(),
                    ),
                )
            } else if #[cfg(any(feature = "sqlx-mysql", feature="sqlx-sqlite"))] {
                with(
                    self.condition.add(
                        Expr::expr(Func::lower(Expr::col(col)))
                            .like(a.into().to_lowercase())
                            .into_condition(),
                    ),
                )
            }
        }
    }

To address this issue, I can add the compilation time checks into the lib.rs or main.rs and update the CICD. However, I am still concerned about this approach since the compile-time check is loosely coupled with the logic.
// Compile-time checks for mutually exclusive features
#[cfg(all(feature = "sqlx-postgres", any(feature = "sqlx-mysql", feature = "sqlx-sqlite")))]
compile_error!("The 'sqlx-postgres' feature cannot be enabled with 'sqlx-mysql' or 'sqlx-sqlite' features.");

#[cfg(all(feature = "sqlx-mysql", feature = "sqlx-sqlite"))]
compile_error!("The 'sqlx-mysql' feature cannot be enabled with the 'sqlx-sqlite' feature.");

How does this approach look to you?


Update application with new schema and metadata editor

This brings over some code from the https://github.com/dandi/dandiarchive/tree/process-schema-and-model branch, and will make #423 obsolete. The major changes are:

Added the new Metadata Editor (Meditor.vue). Currently, the DJANGO_API feature toggle will control whether the old/new metadata editor will be used.
Added new components for rendering various parts of the schemas (at https://github.com/dandi/dandiarchive/tree/new-schema-meditor/web/src/components/schema).
Update DandisetLandingView.vue to use the new rendering components

I've tried to keep the commits well scoped, since there's a lot of new code. Please take your time!

The E2E tests seem to be failing, I'm not sure how this is related to my change. Will investigate.

I enabled login for this branch preview, so everything can be tested using https://deploy-preview-564--gui-dandiarchive-org.netlify.app/#/dandiset

The "Access" popup in the meditor is empty on deploy-preview-564--gui-dandiarchive-org.netlify.app/#/dandiset/000004. Other than that, everything seems to work as intended, to the best of my limited knowledge.
I called out a few minor stylistic things in the code and asked a few questions for my own enlightenment.
:shipit:

Dandiset 000004 doesn't appear to exist in the Django API. Is there a different dandiset that you were referring to or that replicates this problem? Also, are you referring to the "Access Type" section of metadata?

I loaded https://deploy-preview-564--gui-dandiarchive-org.netlify.app/#/dandiset/000004, clicked on Edit Metadata, then toggled on DJANGO_API. Maybe that just put the schema in a bad state.

I loaded deploy-preview-564--gui-dandiarchive-org.netlify.app/#/dandiset/000004, clicked on Edit Metadata, then toggled on DJANGO_API. Maybe that just put the schema in a bad state.

Ahh yes, that's the issue. This is actually trying to use the old schema, rather than the new one. To properly use this, you should instead activate the DJANGO_API toggle from outside of the DLP (I usually do it on the dandiset listing page), and then select a dandiset that you want to edit, etc.
I could probably update the old component to make use of reactive schema changes, but I don't think that's particularly worth the time, since this is only an artifact of activating the toggle while the site is running.

@AlmightyYakob - is there still a basic and complex model in play after the schema updates and my codepen demo (https://codepen.io/satra-the-reactor/pen/NWbKbrj?editors=1010), which seems fine in terms of complexity?  if so, can you please remind me what constitutes basic and complex?

@AlmightyYakob - is there still a basic and complex model in play after the schema updates and my codepen demo (codepen.io/satra-the-reactor/pen/NWbKbrj?editors=1010), which seems fine in terms of complexity? if so, can you please remind me what constitutes basic and complex?

Yes there is. This comment from above explains the difference and why it's still used. The main point is that when there's lots of data, it gets hard to find the section you want to add to or edit, and splitting the schema and model up helps with that.

@AlmightyYakob - that comment points to basic/complex schema types which is orthogonal to needed information by the schema. the UI should be split not by schema complexity but user needs. thus the more important pieces needed (title, description, contributor, keywords, resources, project) vs less important pieces.
also isn't this where the schema augmentation could help to break things into paged modes and other ui elements rather than breaking things on the meditor side. i am still trying to compress as much as we can into the schema and rely on the component that developing things on the meditor side.

@AlmightyYakob - that comment points to basic/complex schema types which is orthogonal to needed information by the schema. the UI should be split not by schema complexity but user needs. thus the more important pieces needed (title, description, contributor, keywords, resources, project) vs less important pieces.
also isn't this where the schema augmentation could help to break things into paged modes and other ui elements rather than breaking things on the meditor side. i am still trying to compress as much as we can into the schema and rely on the component that developing things on the meditor side.

@satra, I think it's good to think of Jake's "simple/complex" distinction as a heuristic for making the meditor usable in the short term. If you have better heuristics or other ideas in mind for how to make this aspect of the meditor more robust, we should explore them in a followup effort. Many improvements will appear in the meditor automatically if the schema is changed--for example, several of the schema items can have better descriptions which will then appear as the hint text in the meditor. Other changes along the lines you've suggested may require a more advanced signalling mechanism between the schema and the meditor, and those are the ones that should be sequestered to a dedicated followup so that we can get this basic but solid version landed.


Fix chef version update to pick up stable release (if latest)

:+1: modulo nitpick/comment stuff

https://github.com/chef/chef-dk/pull/812 made us just pull from stable so we always have the latest stable chef release, as that is the current policy.

Closing for now. We can re-use this if/when we revisit the idea of releasing chef & chef-dk simultaneously.


Home icon should highlight when you are on the home page

I tried this locally and it actually doesn't look very good.  It's distracting and doesn't add much value to the Homepage.


Using .dlext directly from Libdl rather than Base.Libc

This line broke for me when using ClarabelRs on Julia 1.11.
In previous releases of Julia it seems at you could dlext from Base.Libc.dlext, but this seems to not be the case on 1.11 (at least on macOS). Since Libdl is loaded here one can instead get dlext from Libdl.dlext.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Added additional file types, i.e. IDE, logs and local env files, to .…

Added additional files to .gitignore file, i.e. local env files, log files and IDE files.

@webpro hmmmmm, I understand what you are saying, but I think a lot of people will not have things setup this way. If you look at project like Vue they have it setup this way to be as easy as possible for people to get started. I feel this, like the getting up & running instructions :-), help others contribute more easily.


Update space age - example.js

Across the site Number is generally recommended over parse.... in mentor notes. It's mentioned in this exercise and in others, so I'm updating this example to use Number. If there's a specific reason to use it in this case please let me know.
Perhaps there are more examples where this is the case.

Thank you!


basedpyright: 1.17.5 -> 1.18.0

Description of changes
The package now needs a new dependency @detachhead/ts-helpers, so the package.json and the lockfile must be changed accordingly.
I was thinking of creating the package-lock.json in another derivation. Would that be OK?
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

 cat << EOF > test.py; ./result/bin/basedpyright --version; ./result/bin/basedpyright test.py
import sys

if sys.platform == "win32":
    a = "a" + 1

print(3)
noprint(3)

EOF
basedpyright 1.18.0
based on pyright 1.1.382
/home/kiike/projects/nixpkgs/test.py
  /home/kiike/projects/nixpkgs/test.py:4:5 - error: Type of "a" is unknown (reportUnknownVariableType)
  /home/kiike/projects/nixpkgs/test.py:4:9 - error: Operator "+" not supported for types "Literal['a']" and "Literal[1]" (reportOperatorIssue)
  /home/kiike/projects/nixpkgs/test.py:7:1 - error: "noprint" is not defined (reportUndefinedVariable)
3 errors, 0 warnings, 0 notes

@GaetanLepage

cat << EOF > test.py; ./result/bin/basedpyright --version; ./result/bin/basedpyright test.py
import sys

if sys.platform == "win32":
    a = "a" + 1

print(3)
noprint(3)

EOF
basedpyright 1.18.0
based on pyright 1.1.382
/home/kiike/projects/nixpkgs/test.py
  /home/kiike/projects/nixpkgs/test.py:4:5 - error: Type of "a" is unknown (reportUnknownVariableType)
  /home/kiike/projects/nixpkgs/test.py:4:9 - error: Operator "+" not supported for types "Literal['a']" and "Literal[1]" (reportOperatorIssue)
  /home/kiike/projects/nixpkgs/test.py:7:1 - error: "noprint" is not defined (reportUndefinedVariable)
3 errors, 0 warnings, 0 notes

The package now needs a new dependency @detachhead/ts-helpers, so the package.json and the lockfile must be changed accordingly.
I was thinking of creating the package-lock.json in another derivation. Would that be OK?

I am unfortunately not familiar at all with the node ecosystem. Maybe, try to ask someone in the nixpkgs contributors room.
But anyway, if you are confident in your choice and if it works fine, let's go for it, we don't need to ask the permission to anyone else.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 344536

x86_64-linux

:white_check_mark: 2 packages built:

basedpyright
emacsPackages.lsp-bridge

aarch64-linux

:white_check_mark: 2 packages built:

basedpyright
emacsPackages.lsp-bridge

x86_64-darwin

:white_check_mark: 2 packages built:

basedpyright
emacsPackages.lsp-bridge

aarch64-darwin

:white_check_mark: 2 packages built:

basedpyright
emacsPackages.lsp-bridge

I think the approach I took of commiting the lockfile is what is used in nixpkgs. Updating the lockfile inside the derivation I think could result in reproducibility errors, and adding the lockfile is the way to go for now. What I don't like is that the lockfile is gigantic and hard to audit.
I added a comment on package.nix to indicate how to update the package-lock.json when needed. The package should be good to go now.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 344536

x86_64-linux

:white_check_mark: 2 packages built:

basedpyright
emacsPackages.lsp-bridge

aarch64-linux

:white_check_mark: 2 packages built:

basedpyright
emacsPackages.lsp-bridge

x86_64-darwin

:white_check_mark: 2 packages built:

basedpyright
emacsPackages.lsp-bridge

aarch64-darwin

:white_check_mark: 2 packages built:

basedpyright
emacsPackages.lsp-bridge


Data points cannot be written more than 25h10s in the past

Hi,
The slo-pipeline Cloud Function (exports SLO metrics to BQ backend) started to fail suddenly and keeps crashing since then in one of our GCP projects running a slo-pipeline. All logged errors refer to the an invalid interval end time value ("2020-10-20T15:33:00-07:00").
google.api_core.exceptions.InvalidArgument: 400 Field timeSeries[0].points[0].interval.end_time had an invalid value of "2020-10-20T15:33:00-07:00": Data points cannot be written more than 25h10s in the past.

Full Stacktrace:
2020-10-27 23:18:29.552 CET
slo-pipeline2dxhzarq4bqc Traceback (most recent call last): File "/env/local/lib/python3.7/site-packages/google/api_core/grpc_helpers.py", line 57, in error_remapped_callable return callable_(*args, **kwargs) File "/env/local/lib/python3.7/site-packages/grpc/_channel.py", line 826, in __call__ return _end_unary_response_blocking(state, call, False, None) File "/env/local/lib/python3.7/site-packages/grpc/_channel.py", line 729, in _end_unary_response_blocking raise _InactiveRpcError(state) grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with: status = StatusCode.INVALID_ARGUMENT details = "Field timeSeries[0].points[0].interval.end_time had an invalid value of "2020-10-20T15:18:00-07:00": Data points cannot be written more than 25h10s in the past." debug_error_string = "{"created":"@1603837109.545536881","description":"Error received from peer ipv4:<IP_ADDRESS>:443","file":"src/core/lib/surface/call.cc","file_line":1061,"grpc_message":"Field timeSeries[0].points[0].interval.end_time had an invalid value of "2020-10-20T15:18:00-07:00": Data points cannot be written more than 25h10s in the past.","grpc_status":3}" > The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/env/local/lib/python3.7/site-packages/google/cloud/functions/worker_v2.py", line 449, in run_background_function _function_handler.invoke_user_function(event_object) File "/env/local/lib/python3.7/site-packages/google/cloud/functions/worker_v2.py", line 268, in invoke_user_function return call_user_function(request_or_event) File "/env/local/lib/python3.7/site-packages/google/cloud/functions/worker_v2.py", line 265, in call_user_function event_context.Context(**request_or_event.context)) File "/user_code/main.py", line 25, in main compute.export(data, exporters) File "/env/local/lib/python3.7/site-packages/slo_generator/compute.py", line 98, in export ret = exporter.export(data, **config) File "/env/local/lib/python3.7/site-packages/slo_generator/exporters/stackdriver.py", line 50, in export self.create_timeseries(data, **config) File "/env/local/lib/python3.7/site-packages/slo_generator/exporters/stackdriver.py", line 93, in create_timeseries result = self.client.create_time_series(project, [series]) File "/env/local/lib/python3.7/site-packages/google/cloud/monitoring_v3/gapic/metric_service_client.py", line 1060, in create_time_series request, retry=retry, timeout=timeout, metadata=metadata File "/env/local/lib/python3.7/site-packages/google/api_core/gapic_v1/method.py", line 145, in __call__ return wrapped_func(*args, **kwargs) File "/env/local/lib/python3.7/site-packages/google/api_core/retry.py", line 286, in retry_wrapped_func on_error=on_error, File "/env/local/lib/python3.7/site-packages/google/api_core/retry.py", line 184, in retry_target return target() File "/env/local/lib/python3.7/site-packages/google/api_core/timeout.py", line 214, in func_with_timeout return func(*args, **kwargs) File "/env/local/lib/python3.7/site-packages/google/api_core/grpc_helpers.py", line 59, in error_remapped_callable six.raise_from(exceptions.from_grpc_error(exc), exc) File "<string>", line 3, in raise_from google.api_core.exceptions.InvalidArgument: 400 Field timeSeries[0].points[0].interval.end_time had an invalid value of "2020-10-20T15:18:00-07:00": Data points cannot be written more than 25h10s in the past.

Any idea why we see this and how we can fix it?

Hi Sven,
I haven't encountered this one yet, but 2020-10-20T15:33:00-07:00 doesn't seem like an UTC timestamp, which Stackdriver probably expects: by any chance did you change anything related to time zones in Cloud Scheduler / Cloud Functions code ?

The timestamp comes directly from the event data payload, so it might just be a delayed pubsub message or something (whatever the trigger for your function was). If you run with debug logging enabled, you should see the timestamp printed from various places in the code.

@svenmueller I think this is related to running Cloud Scheduler in US and the GCF code being in EU ... Currently we fetch the timestamp for the scheduler.
Is this a transient issue or a permanent one ?
Did you happen see those errors after changing the app engine region ?

The formatting of the timestamp in the error message uses PST just because that's how the Monitoring API formats it, so that's probably a red herring.
If this is a transient issue, you should be able to easily reproduce it by explicitly sending a Pub/Sub message to the same channel with a stale timestamp.

@svenmueller I think this is related to running Cloud Scheduler in US and the GCF code being in EU ... Currently we fetch the timestamp for the scheduler.

We had to go with Cloud Scheduler in US region since it was already set as default for this GCP project (seems like the default app engine region can't be changed).

Is this a transient issue or a permanent one ?
Since then, the slo-pipeline CF keeps crashing (logging the mentioned log event above) permanently.

Did you happen see those errors after changing the app engine region ?
As far as i know,  the default app engine region can't be changed (there was no change from our side).

@svenmueller can you please try upgrading to terraform-google-slo version v0.3.2 and check if you have the same behaviour ?

After migrating to the latest stable version, the slo-pipeline CF stopped crashing (not sure if it will appear again after some time as it did the first appeared without know reason). I will close this issue and re-open it as soon as it appears again.

Re-opening since seen in 2 customer environments

Terraform module 2.0.0 will handle this by notably replacing Cloud Functions with Cloud Run (much more stable), and will be released at the same time as slo-generator v2.0 (mid-August ETA).

Moved to https://github.com/terraform-google-modules/terraform-google-slo/issues/90


Spanish translation not loading correctly

(menu)

(map)

(game)

Thanks for letting me know! Not sure how that happened, but will fix soon.

Hey, I'm very sorry it took me so long to get around to updating the builds, but just wanted to let you know that the issue is now fixed.


[esp/bindings_js] WebGL: add look-up and look-down

Motivation and Context

It is nice to have up and down.
How Has This Been Tested

Verified that up and down work with WebGL.
Types of changes

[ ] Docs change / refactoring / dependency upgrade
[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[X] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[X] I have read the CONTRIBUTING document.
[X] I have completed my CLA (see CONTRIBUTING)
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Ready for review.

ping


The default odo-init-image value to support multi-arch

/kind feature

Which functionality do you think we should add?
The default odo-init-image is "registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:1.1.3" which is not supported by s390x arch.
Pulling image "registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:1.1.3"20s         Warning   Failed              pod/nodejs-nodejs-ex-vsit-app-1-xlvch               Failed to pull image "registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:1.1.3": rpc error: code = Unknown desc = Error choosing image instance: no image found in manifest list for architecture s390x, OS linux

To support s390x arch, we have to set env ODO_BOOTSTRAPPER_IMAGE.
Why is this needed?
We should make the default odo-init-image to release the s390x or other non-x86 arch version on upstream registry So the user is not necessary to set the ODO_BOOTSTRAPPER_IMAGE manually.

/area system-pz

We found there has been offically built odo-init-image for s390x here.  We team can help build the odo-init-image for s390x arch, What we want is to relese this image to offical registry to be used default by user.

/assign zhengxiaomei123

I think the purpose is to have an official s390x arch odo-init-image in some public registry like "registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:1.1.3", and for the defaultBootstrapperImage below, point to the different  odo-init-image based on the arch.
https://github.com/openshift/odo/blob/9a470629475bf6339dec637ee5ea8e326188a7fd/pkg/devfile/adapters/common/utils.go#L35

/assign PanYaLian

I got confirmation that images will be uploaded with manifests to registry so cluster should be able to pull correct image. The image is getting built as per results on the internal buildsystems . We will probably need to wait till they push an actual release to redhat registry to confirm without doubt. And then We will verify it .

@zhengxiaomei123 I think we have a registry release recently can you please verify and close this issue if its resolved?

@girishramnani Yes. I will do ASAP.


Merge 1.0.0 into 1.x

Last merge commit (the one by Eugene) is failing.

		::::::::::::::::::::::::::::::::::::::::::::::
		::          UNRESOLVED DEPENDENCIES         ::
		::::::::::::::::::::::::::::::::::::::::::::::
		:: org.scala-sbt#zinc-classfile_2.12;1.0.0-X20: configuration not public in org.scala-sbt#zinc-classfile_2.12;1.0.0-X20: 'test'. It was required from org.scala-sbt#zinc-apiinfo_2.12;1.0.0-X20 test
		::::::::::::::::::::::::::::::::::::::::::::::

Where is 1.0.0-X20 coming from? Since Maven Central won't have Test configuration, the error itself seems reasonable.

a88096d is tagged to be 1.0.0, so I suggest you add some bogus commit to move away from it.
(This is a step I think scala/scala has in their release procedure iirc)

I've removed all the Drone caches for Zinc. Try again and confirm whether this was caused by it.

Looks like it's fixed.

Original error is fixed, but another one has surfaced.

Thanks, Jorge, I'll fix the other issue.

I've removed all the Drone caches for Zinc.

How does one do that?

How does one do that?

Via sftp, connecting to one of our servers. For now, doing so outside of EPFL is tricky because you need the SSH key, but if these problems continue I'm happy to give you access to the server.

I'm not sure if Eugene already has SSH access to EPFL, but I'd like to have access to be able to resolve these types of issues. What's the procedure? Who do I contact?

Eugene hasn't -- these are new machines. Let's discuss this via email.

Green! Omg, this PR is finally over.


Promo for Image Gallery as Main Article

Here's Tomi's first go at a design. Team should discuss before getting started.

Title
Lead image
Summary
Total number of images
Format index: Image gallery > aggregate on /image-galleries

pinging @Heesoomoon and @GarethOrmerod - a stale idea for an image gallery card.

Noted. It will be good to explore an option of displaying more than one image to represent the image gallery. Hinting there are more to see but not fully exposing everything.

I'm going to close this one now as it's too stale!


Suggestion to modify the guide of installation

Hi Richards, should  the guide of installation of the extensions be modified?
Click "Load unpacked" and select the extension folder ------ >  Click "Load unpacked" and select the chrome folder for chrome or firefox for firefox.
I meet this problem by selecting the extension folder. Aftering having queryed Yuanbao by Tencent, I found I should select the chrome folder, and it works then
未能成功加载扩展程序文件
D:**********\Git\Thinking-Claude\extension
错误
清单文件缺失或不可读取
无法加载清单。

Yes you are right. Sorry for that, already changed now!


Create vendor schema

Description
created vendor schema, connect to mongoDB and implemented bcryptjs.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

Change Status

[ ] Complete, tested, ready to review and merge
[x] Complete, but not tested (may need new tests)
[ ] Incomplete/work-in-progress, PR is for discussion/feedback

Checklist

[x] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[x] My code has been reviewed by at least one peer
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] There are no merge conflicts

some items were moved around to clean up code....fixed


Suggestion: Alternate "Flags" annotation

Is there an existing issue for this?

[X] I have searched the existing issues

Is your feature request related to a problem?
Currently, if you have 5 flags, the Flags annotation becomes extremely long and difficult to read.
Describe your solution
It would be great if we could have 1 flag per annotation. For example:
Suggestion 1
## Flags: [
##   {"Name":"flag1","Shorthand":"f1","Usage":"flag1 usage"}
##   {"Name":"flag2","Usage":"flag2 usage"}
## ]

Suggestion 2
## Flag: {"Name":"flag1","Shorthand":"f1","Usage":"flag1 usage"}
## Flag: {"Name":"flag2","Usage":"flag2 usage"}

Suggestion 3
## Flag:foo: {"Shorthand":"f1", "Usage":"flag1 usage"}
## Flag:bar: {"Usage":"flag2 usage"}

Describe alternatives
No response
Additional context
No response

@jigarius can I ask why you're reading it? I personally don't think it would help most people to make this change, and the number of people who have read this annotation anywhere ever is probably less than 10?

I was reading it for maintaining the lines that were added by my colleague. Next, I added 3 flags, the line became extremely long.

I suggest to finish my work on the YAML support which will increase readability.

I don't expect to pursue this.


ensure network order is preserved

This change ensure that the ipset network order
is preserved in the status.reservation
This is requried to ensure the dns search domain order
is defined by the order of the network list.
Closes: OSPRH-6672

adding a hold to land it after the beta freeze

added some comments and removed the asserts that were not needed otheresie the core is the same. ill check back in a few days if there are any other comments and respin but since this will not be in beta there is no rush.

thanks @SeanMooney looks good to me. lets get that in after the freeze

/test functional


Referring to a kvpair at a specific point in time?

With hyperlog + hyperkv, you could fetch a node by its key (via hyperkv), but also via hyperlog ask for a node by its hash, which gets a kvpair at specific point in time. We found this really useful in osm-p2p-db, since data structures at HEAD would sometimes want to refer to other documents at older versions.

Maybe some kind of string notation that gets exposed?
key@feed-id@seq-num

Just to update, me and @mafintosh chatted and the route we're taking is using a combination of db.version, db.checkout, and db.get to retrieve a specific value in time.
You would get the version at insertion time, using the version API:
db.put('/home/sww/dev/projects.md', '...', function (err, node) {
  db.version(function (err, version) {
    var versionString = node.key + '@' + version.toString('hex')
    console.log('version is', versionString)
  })
})

You could implement getByVersion like this:
function getByVersion (db, versionString, cb) {
  var version = versionString.substring(versionString.lastIndexOf('@') + 1)
  var key = versionString.substring(0, versionString.lastIndexOf('@'))
  var snapshot = db.checkout(version)
  snapshot.get(key, function (err, nodes) {
    if (err) cb(err)
    else cb(null, nodes[0])
  })
}

The APIs for this are now implemented. :tada:


How can i send error response of validation error of fields in lumen/laravel ?

My code

I want to send array of fields to response which has error but i got response in string
Response

Hi, the second paramter of error is for messages and can only contain strings. The data method should do what you're after:
return responder()->error('errors')->data($validator->errors())->respond();

However, the package also automatically catches ValidationException and returns a neatly structured error response if you've followed the steps in the (https://github.com/flugger/laravel-responder#handling-exceptions)[Handling Exceptions] chapter of the documentation.

Thanks that works with one modification
return responder()->error('errors')->data($validator->errors()->toArray())->respond();


fix bug: start successfully with repeated resource name

Codecov Report

Merging #91 into release-0.2 will decrease coverage by 0.15%.
The diff coverage is 0%.

@@                Coverage Diff                @@
##             release-0.2      #91      +/-   ##
=================================================
- Coverage          39.47%   39.31%   -0.16%
  Complexity           574      574
=================================================
  Files                136      136
  Lines               4337     4349      +12
  Branches             310      310
=================================================
- Hits                1712     1710       -2
- Misses              2502     2513      +11
- Partials             123      126       +3

Impacted Files
Coverage Δ
Complexity Δ

...main/java/com/webank/wecross/exception/Status.java
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

...webank/wecross/stub/bcos/BCOSContractResource.java
8.55% <0%> (-0.24%)
7 <0> (ø)

...ecross/stub/jdchain/config/JDChainConfigUtils.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...k/wecross/stub/fabric/config/FabricStubConfig.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...bank/wecross/stub/bcos/config/BCOSConfigUtils.java
41.75% <0%> (-1.43%)
5 <0> (ø)

...java/com/webank/wecross/peer/PeerInfoCallback.java
63.15% <0%> (-5.27%)
3% <0%> (ø)

.../java/com/webank/wecross/peer/PeerSeqCallback.java
63.15% <0%> (-5.27%)
3% <0%> (ø)

.../wecross/stub/jdchain/JDChainContractResource.java
0% <0%> (ø)
0% <0%> (ø)
:arrow_down:

Continue to review full report at Codecov.

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


Project compile fail: Multiple definitions and (or) undefined references

I have a static variable in class, if add declaration in cpp, the cpp report Multiple definitions.
if remove declaration in cpp, other cpp report Undefined references.
The syntax is absolute correct, QString and std::wstring not work, but int work.

Delete entire build directory, for example build-prefetch-Desktop_x86_windows_mingw4_8_2_32bit-Debug.
And build-prefetch-Desktop_x86_windows_mingw4_8_2_32bit-Release too.
The qmake or gcc build can leave wrong/outdated compile result.
In this case, the project can report any kind of strange error.
And you can't really tell which .o file is corrupted.
So try to delete all of them and try to compile again,
this time, the true error reason should appear.
You may need to delete the folder multiple times to fix the error one at a time.
Sometimes the build cache can really confuse.


Import cilium chart as part of import-images

Issue #, if available:
Description of changes:
Cilium is now installed as helm chart. This PR adds the following changes required for offline installation:

import-images will pull + push the cilium chart to the registry mirror endpoint
download artifacts will update the downloaded bundle-release.yaml's cilium helmChart to the one from the registry mirror

Testing (if applicable):
./bin/eksctl-anywhere download artifacts -f bin/mandaor.yaml -v=9

The downloaded bundle-release.yaml has following contents for cilium helm chart:
    cilium:
      helmChart:
        description: Helm chart for cilium-chart
        imageDigest: sha256:5982a9b5feded74c14a0b410006bba6d748655f8bc01f393b4519c9b10a463d0
        name: cilium-chart
        uri: <registryMirror>/cilium-chart/cilium:1.9.13-eksa.2

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

/lgtm

/cherrypick release-0.7

/cherrypick release-0.8


Progress status not working

Typing Enter while binwalk is running doesn't show anymore the progress status. Is that correct? The feature has been removed?

The status feature has not been removed, just moved due to conflicts caused by binwalk reading from stdin when binwalk's output is piped to a pager. Use the --status option.


OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT env value ignored with sdk-trace-base package v1.1.0

Please answer these questions before submitting a bug report.
What version of OpenTelemetry are you using?
  "dependencies": {
    "@opentelemetry/api": "^1.0.4",
    "@opentelemetry/auto-instrumentations-node": "^0.30.0",
    "@opentelemetry/exporter-trace-otlp-proto": "^0.29.2",
    "@opentelemetry/resources": "^1.0.1",
    "@opentelemetry/sdk-node": "^0.29.2",
    "@opentelemetry/semantic-conventions": "^1.0.1",
  }

What version of Node are you using?
v18
Please provide the code you used to setup the OpenTelemetry SDK
"use strict";

const { v4: uuidv4 } = require("uuid");
const process = require("process");
const opentelemetry = require("@opentelemetry/sdk-node");
const { getNodeAutoInstrumentations } = require("@opentelemetry/auto-instrumentations-node");
const { Resource } = require("@opentelemetry/resources");
const { SemanticResourceAttributes } = require("@opentelemetry/semantic-conventions");
const { OTLPTraceExporter } = require("@opentelemetry/exporter-trace-otlp-proto");
const api = require("@opentelemetry/api");

const resource = new Resource({
  [SemanticResourceAttributes.SERVICE_NAME]: "OpenTelemetry-Node.JS-Example",
  [SemanticResourceAttributes.SERVICE_INSTANCE_ID]: uuidv4(),
});

const instrumentations = [getNodeAutoInstrumentations()];
const traceExporter = new OTLPTraceExporter();

const sdk = new opentelemetry.NodeSDK({
  resource,
  traceExporter,
  instrumentations,
});

sdk
  .start()
  .then(() => console.log("Tracing initialized"))
  .catch((error) => console.log("Error initializing tracing", error));

process.on("SIGTERM", () => {
  sdk
    .shutdown()
    .then(() => console.log("Tracing terminated"))
    .catch((error) => console.log("Error terminating tracing", error))
    .finally(() => process.exit(0));
});

What did you do?
I exported:
export OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT=10
What did you expect to see?
  Span {
    attributes: {
      'http.url': 'http://localhost:8080/ping',
      'http.host': 'localhost:8080',
      'net.host.name': 'localhost',
      'http.method': 'GET',
      'http.target': '/ping',
      'http.user_agent': 'curl/7.79.1',
      'http.flavor': '1.1',
      'net.transport': 'ip_tcp',
      truncate: 'AAAAAAAAAA',
      'net.host.ip': '::ffff:<IP_ADDRESS>',
      'net.host.port': 8080,
      'net.peer.ip': '::ffff:<IP_ADDRESS>',
      'net.peer.port': 49760,
      'http.status_code': 200,
      'http.status_text': 'OK',
      'http.route': '/ping'
    },
    links: [],
    events: [],
    status: { code: 1 },
    endTime: [<PHONE_NUMBER>, 26444923 ],
    _ended: true,
    _duration: [ 0, 14500293 ],
    name: 'GET /ping',
    _spanContext: {
      traceId: 'f720a0ec04fdd436065273eb3b008a73',
      spanId: '69959269e8c1c594',
      traceFlags: 1,
      traceState: undefined
    },
    parentSpanId: undefined,
    kind: 1,
    startTime: [<PHONE_NUMBER>, 11944630 ],
    resource: Resource { attributes: [Object] },
    instrumentationLibrary: { name: '@opentelemetry/instrumentation-http', version: '0.27.0' },
    _spanLimits: {
      attributeValueLengthLimit: 10,
      attributeCountLimit: 128,
      linkCountLimit: 128,
      eventCountLimit: 128
    },
    _spanProcessor: MultiSpanProcessor { _spanProcessors: [Array] },
    _attributeValueLengthLimit: 10
  }

What did you see instead?
Span {
    attributes: {
      'http.url': 'http://localhost:8080/ping',
      'http.host': 'localhost:8080',
      'net.host.name': 'localhost',
      'http.method': 'GET',
      'http.target': '/ping',
      'http.user_agent': 'curl/7.79.1',
      'http.flavor': '1.1',
      'net.transport': 'ip_tcp',
     truncate: 'AAAAAAAAAABBBBBBBBBBBBB',
      'net.host.ip': '::ffff:<IP_ADDRESS>',
      'net.host.port': 8080,
      'net.peer.ip': '::ffff:<IP_ADDRESS>',
      'net.peer.port': 49671,
      'http.status_code': 200,
      'http.status_text': 'OK',
      'http.route': '/ping'
    },
    links: [],
    events: [],
    status: { code: 1 },
    endTime: [<PHONE_NUMBER>, 698490926 ],
    _ended: true,
    _duration: [ 0, 15013167 ],
    name: 'GET /ping',
    _spanContext: {
      traceId: 'fc51aae0c8ed3fe2d09337c8e0435ff0',
      spanId: '49e5a1f7c580441b',
      traceFlags: 1,
      traceState: undefined
    },
    parentSpanId: undefined,
    kind: 1,
    startTime: [<PHONE_NUMBER>, 683477759 ],
    resource: Resource { attributes: [Object] },
    instrumentationLibrary: {
      name: '@opentelemetry/instrumentation-http',
      version: '0.27.0',
      schemaUrl: undefined
    },
    _spanLimits: {
      attributeValueLengthLimit: Infinity,
      attributeCountLimit: 128,
      linkCountLimit: 128,
      eventCountLimit: 128
    },
    _spanProcessor: MultiSpanProcessor { _spanProcessors: [Array] },
    _attributeValueLengthLimit: Infinity
  }

As you can see, the _attributeValueLengthLimitproperty in the span is still set to Infinity and truncate has a value longer than 10.
Additional context
This issue is happening with v1.1.0 in this package: https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base
When I was using @opentelemetry/sdk-node": "0.28.0" and higher, the issue started happening and v28 started using @opentelemetry-sdk-trace-base v1.2.0.
@opentelemetry/sdk-node v0.27.0 was using  @opentelemetry-sdk-trace-base v1.1.0 and there was no issue with attribute limit.
There was a change with attribute limits in this pr: https://github.com/open-telemetry/opentelemetry-js/pull/2678 but I haven't looked at it thoroughly to confirm it if this is where the bug is coming from.
To avoid this issue when using @opentelemetry-sdk-trace-base v1.2.0, a user has to set the limit programmatically like so:
const sdk = new opentelemetry.NodeSDK({
  resource,
  traceExporter,
  instrumentations,
  spanLimits: {
      attributeValueLengthLimit: 10
  }
});

Yes I'm working on this. Should open a pr for this soon.


New users are invisible

I don't have a clear way to demonstrate this but using the latest version of slackbot (installed by pip on 2016-03-20), the bot fails to react to messages sent by users who joined the organization after the bot.
Example:
*bot will listen_to('asdf'), reply 'fdsa'
python runbot.py
*normal execution for a while*
*new_user joins*
new_user: asdf
*no response from bot*
old_user: asdf
bot: fdsa

Hey there !
I understand then that this is something that wasn't happening to you before ?

Oh, no, I just started using slack/slackbot a couple days ago. I have no idea about previous versions of slackbot.

Cool :+1: I'll try to check why this is happening. Have you tried restarting the bot ?

Yes, restarting is an effective workaround.

Maybe as @larsga commented in #30 the users list might need a refresh.

I can also confirm that this is occurring. New user was unable to interact with the bot (DM or channel) until restarting the slackbot app.
It looks like when the app starts up, in slackclient.py it grabs active users and channels.
    self.users = {}
    self.channels = {}

Has anyone found a workaround for this? It looks @osteenbergen has a nice reconnect implementation.


Nebraska via a reverse proxy - relative URL?

I am working on getting updates to air-gapped Flatcar clients via Nebraska, using the host-flatcar-packages feature.
Current setup looks like this (IPs/ports are obfuscated) with a simple NGINX proxy running on our edge - we can't allow clients to directly connect to our Nebraska instance unfortunately:

The proxy works fine for the initial update GET from the client - the target Flatcar version is returned correctly.
When the client tries to download the package, the URL that it tries to connect to is http://<IP_ADDRESS>:6002/flatcar/flatcar-amd64-3227 - which it can't get to - this is provided in the response to the GET request as "url codebase".
Omaha request response: <?xml version="1.0" encoding="UTF-8"?> Sep 02 10:05:10 azure-test-hardened update_engine[1059]: <response protocol="3.0" server="nebraska"><daystart elapsed_seconds="0"></daystart><app appid="{e96281a6-d1af-4bde-9a0a-97b76e56dc5 7}" status="ok"><ping status="ok"></ping><updatecheck status="ok"><urls><url codebase="http://<IP_ADDRESS>:6002/flatcar/"></url></urls><manifest version="3227.2.2"><packages><package name=" flatcar-amd64-3227.2.2.gz" hash="2UPMTTvd0GCyn0/ewt9Ic7zTGmI=" size="345835476" required="true"></package></packages><actions><action event="postinstall" sha256="EUnaXqtOcgOwaAMpyJWayhoa5kV BOdri2N2mvqz7qAM=" DisablePayloadBackoff="true"></action></actions></manifest></updatecheck><event status="ok"></event></app></response>
I tried setting the -nebraska-url parameter to the Reverse Proxy URL http://<IP_ADDRESS>:6999 but this broke everything on the Nebraska front-end (I assume this URL is used for auth as well as serving updates).
Question is, is there a way to set the "url codebase" string returned by Nebraska to be either a relative URL (../../flatcar), to use the HTTP host header from the client, or to somehow hardcode it without using the -nebraska-url parameter and breaking things?
Please let me know if you have any ideas.

Please let me know if you have any ideas.

I think a hostname would help to have the reverse proxy be serving the same hostname or being able to rewrite the hostname in the reverse proxy.

Yeah that would partially sort it; having an internally resolvable hostname, with an entry in /etc/hosts on the clients to override the IP... but that does not work for ports. Everything would need to be switched to run on the same port, or I get the reverse proxy to translate it somehow

NGINX reverse proxies are powerful but a bit hard to configure ;) In case it helps, you can also use a regular HTTP proxy: https://www.flatcar.org/docs/latest/setup/releases/update-strategies/#updating-behind-a-proxy

Been a bit quiet on this for a while but I got things working via a reverse proxy. Proxied updates work fine; but Nebraska is showing all nodes behind the proxy with the same IP address.
Makes sense (that's where the connection is initiated), but there's no way to identify which node is which - is there any way to pass the hostname, or the remote node's IP via the update protocol rather than basing it on the HTTP connection?
Let me know if you need any more details.

Each node identifies itself with the machine id from /etc/machine-id which must be unique. You can add human understandable context in the MACHINE_ALIAS entry: https://www.flatcar.org/docs/latest/setup/releases/update-conf/
Put MACHINE_ALIAS=something as a new line in /etc/flatcar/update.conf.

Optional human-friendly name for the machine in addition to the machine ID from /etc/machine-id, to be displayed in the update server UI, should be unique but this is not enforced, use quotes if it contains whitespace
Set this dynamically by running, e.g., sudo sed -i "/MACHINE_ALIAS=.*/d" /etc/flatcar/update.conf ; echo "MACHINE_ALIAS=$(hostname)" | sudo tee -a /etc/flatcar/update.conf for the output of the hostname command (as with the other variables, restarting update-engine.service is not needed)

Ah awesome - I'll give that a go, thanks @pothos


(Bug) [RN] Opening dashboard feed items always shows the popup for the first item on the list

Reproduced on android & ios.
When clicking on any of the dashboard feed items, it always opens the popup for the first item on the list instead of the clicked one.
Also, on ios trying to scroll sideways reveals the next popup (for the second item on the list) but can't scroll to it; on android can't even try to scroll.

@sirpy The issue is not reproduced on the Android app.
needs to check on the iOS
Checked on the App Version 1.14.0-0 (1002)
Devices: Xiaomi Mi8 // Android 8.1.0
Video: https://www.dropbox.com/s/14upei0gsaltl81/The card on the home page.mp4?dl=0

@sirpy The issue is not reproduced on the Android app.
needs to check on the iOS
Checked on the App Version 1.14.0-0 (1002)
Devices: Xiaomi Mi8 // Android 8.1.0
Video: https://www.dropbox.com/s/14upei0gsaltl81/The card on the home page.mp4?dl=0

@sirpy Will be checked in the #3027 when the iOS will be available for testing


BlockMeterFabric crashes Minecraft for some reason

I have an Issue that I can't use Sticks at all and activates BlockMeterFabric instead both by Left Clicking and Right Clicking.
Edit: For some reason Minecraft is crashing even with the Mods that I played yesterday where it was completely fine.
Crash Report and latest.log provided.
latest.log
crash-2022-11-21_18.43.26-client.txt
Here is my Modlist:

Advanced XRay (Fabric Edition)
AdvancedChatBox
AdvancedChatCore
AdvancedChatFilters
AdvancedChatHUD
Advancement Plaques [Fabric]
AppleSkin
Architectury API (Fabric/Forge)
BlockMeterFabric
Bobby
CameraOverhaul
Cardinal Components
Chest Tracker
CIT Resewn
Cloth Config API (Fabric/Forge)
Clumps
Controlling
CrashBrander
CreativeCore
Cursor Mod (Fabric/Forge)
Custom Entity Model (CEM)
Damage Tilt
Detail Armor Bar [Fabric]
Easy Shulker Boxes
Eating Animation [Fabric]
Effective 💦
EnhancedVisuals
Entity Culling Fabric/Forge
Entity Texture Features - [Fabric & Forge]
Equipment Compare [Fabric]
Fabric API
Fabric Language Kotlin
FerriteCore (Fabric)
Forge Config API Port
FPS Reducer
Iceberg [Fabric]
Iris Shaders
Item Borders [Fabric]
LazyDFU
Legendary Tooltips [Fabric]
Litematica
Lithium (Fabric)
MaLiLib
Meteor Client
Meteor Rejects
Mod Menu
Mouse Wheelie (Fabric)
Name Pain
Not Enough Animations
Phosphor (Fabric)
Pick Up Notifier
Presence Footsteps [Fabric]
Prism [Fabric]
Puzzles Lib
Reese's Sodium Options
Roughly Enough Items Fabric/Forge (REI)
Satin API
SeedcrackerX
Sign Tools
Skin Layers 3D (Fabric/Forge)
Smooth Swapping (Fabric)
Sodium
Sodium Extra
Sound Physics Remastered
ViaFabric
Visuality
Xaero's Minimap
YDM's Weapon Master
YetAnotherConfigLib
Zoomify

Ok this is somehow related to #21 Maybe I need to switch the configuration backend as it seems to lead to errors.

Also after I removed the Mod it doesn't remove the functionality because after I remove the Mod I can't still use Sticks and activate BlockMeter instead.
Maybe I just need to restart the Instance to fix that. I will test this today.


Restic can not remove index files

Output of restic version
restic 0.9.4 compiled with go1.11.4 on linux/amd64
How did you run restic exactly?
sudo restic prune -r /mnt/Restic --password-file pwd

What backend/server/service did you use to store the repository?
WD My Book World connected over NFS
Expected behavior
no error

Actual behavior
Many errror messages like
Remove(<index/f61a3dea44>) returned error, retrying after 27.215310727s: Chmod: chmod /mnt/Restic/index/f61a3dea446306f46f13dc3263b375e2a6edf91e8caeebcd056e146b7b419560: operation not permitted

Steps to reproduce the behavior
Failed backup after lost connection to NAS. The only way how to get rid off the error messages is to create completely new backup repository

Do you have any idea what may have caused this?
Do you have an idea how to solve the issue?
Did restic help you or made you happy in any way?

This seems like an issue with the rights management on your NAS to me.
Maybe the My Book mixed something up with the failed backup.
Can you check if you have write permission to the files without restic?

When I ssh to NAS as root I can rm the file. The error says it happens during chmod, but does not say what chmod command it is trying to perform.
Attributes of files that can not be deleted are:
ls -l  f0833d52559a321d876ce82798076928952fb5c9a71a5ab26bc1c672f8a3f2fd
-rwxrwxr-x    1 root     jewab      461213 Mar 22 08:33 f0833d52559a321d876ce82798076928952fb5c9a71a5ab26bc1c672f8a3f2fd
Is there any way I can change attributes so the file can be remotely deleted? I think I tried changing to 777 and it did not help.

I fixed it al local NAS by changing owner of files from root to nfsnobody

Cool, glad you figured it out!

Well, this worked with index files, but not with data files. I even crippled access to keys directory by giving it chmod 777 and owner root or owner nfsnobody. Restic could not access keys directory at all, claiming permissions problem. It turned out that problem was NFS implementation at My Book World. I have remounted as CIFS/SMB and so far it is working.


Some rephrasing (as ARM is not really new already + some more)

Hi @AlekseiPolkovnikov, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (alpolko). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

@AlekseiPolkovnikov : Thanks for your contribution to the Azure documentation! The author, @tfitzmac, has been notified to review your proposed change.

@AlekseiPolkovnikov - great changes, thanks.

#sign-off

@tysonn please merge this PR


Placeholders on multiple select2 are cut when they are bigger than options

Hello,
I write you because I have a problem which I can't solve myself.
I have multiple select with placeholders. When they are biggers than the options, they are automatically cut by select2.

Thank you for your help.

Select2 allows you to set the width of the select box which should allow you to make it as large as you want.
https://select2.org/appearance#container-width
By default Select2 tries to not be wider than the original <select> which is why you see it being limited to the size it is.

This appears to be more of a usage question than a bug report or common feature request.  As we continue to keep the Select2 issue tracker geared towards these two areas, bug reports and common feature requests, we are redirecting usage questions to other communities such as the mailing list, IRC, or Stack Overflow.

Thank you for your help. But I think it's not a good solution.
My website is in several languages. Depending on the language, the text can be longer or shorter. And I have just on call for select2 I prefer something dynamic and not static with a width.

Thank you for your help. But I think it's not a good solution.
My website is in several languages. Depending on the language, the text can be longer or shorter. And I have just on call for select2 I prefer something dynamic and not static with a width.

Hello @Sabe67,
be careful also about Boostrap & Bootstrap themes in your project... I discovered some minor bugs with long placeholder, for example with https://github.com/ttskch/select2-bootstrap4-theme
Cheers.


Platform configuration guide for Bare Metal.

Signed-off-by: Imran Pochi<EMAIL_ADDRESS>

@iaguis
Created for bare metal. This one doesnt have the installating/uninstalling and prerequisites sections.
Please let me know if you think this makes more sense or having the above sections as they were for platform and aws

@iaguis I like this one better without the sections of (Installing, uninstalling and prerequisites)
What is your opinion ? I will update the other platform guides to remove the sections if you feel the same as I do.


End once

possible fix for crypto-browserify/createHmac#12 or hokaccha/node-jwt-simple#61, hard to tell though since the original issue is hard to reproduce

Close?

maybe I'll have to look a little more, forgot about this one

yeah nm this was fixed with safebuffer


web: use slug instead of did wherever possible

Is your feature request related to a problem? Please describe.
Notifications > click a notification, takes you to a did link. Makes it hard to share. Lists also have did links. There may be other spots as well
Describe the solution you'd like
Links have handle in URL instead of did if possible
Describe alternatives you've considered
Just deal with long links
Additional context
N/A

The issue is that people may change their handles after a link is shared, which would then cause the link to 404. We put up with the did to ensure links dont break


Performance choppy after submitting performance

This was reported by the QA team. but we weren't about to reproduce at the office:
During testing the Performance of the Rift and Vive was smooth however after they record a performance and submit it then the frame rate drops when viewing the preview.
This continues when they go back to the home page and views the full experience, however its resolved if they refresh the page and enter VR again.
Device:
Oculus Rift - Chromium
HTC Vive - Chromium
User's have also noted the problem. You can see it in action during this video of a user creating performances and submitting them you can see the problem at 14:17 and again at 24:30
https://www.youtube.com/watch?v=qQTBvc7rJOE&feature=youtu.be

Is this re-opened? It was just assigned again.

Yeah, have a look at the video that was sent to us by a user (in description above). You can see it pretty dramatically

Hey @puckey, @mflux and I haven't been able to reproduce it, but it's clearly a problem that's happening for people (see video). What if we make the "Watch yourself in the Full Experience" link and actual link that reloads the page, rather than just an internal route? This just clear out whatever the problem is, and shouldn't affect flow in any way that I can see.

Yes, that makes a lot of sense. I should be able to find a moment to implement this.

I implemented this in the redirect-full-experience branch. It reloads the page by setting window.location.
Preview: https://redirect-full-experience--dance-tonite.netlify.com/
Feel free to merge after testing!

Thanks! Tested and seems fine. I've pushed the change live


Add storage.volume to whitelisted methods for ETMoses

Part of https://github.com/quintel/etmoses/pull/1615

Semaphore seems to break because of unknown reasons. Could you maybe look what the problem might be @antw ?


Post release automated changes for servicenetworking releases

Post release automated changes for azure-arm-servicenetworking

API change check
API changes are not detected in this pull request.


Fix error in method description in LaserDriver

LaserDriver#getMaxCrystialLiquid reports the same description as LaserDriver#getCrystalLiquid.

Could you redo this on the 1.11 branch please? The 1.10 branch is no longer used (the 1.11 branch is also compatible with 1.10)

Seems to have been fixed here. :) My bad.
https://github.com/McJty/DeepResonance/blob/1.11/src/main/java/mcjty/deepresonance/integration/computers/TankDriver.java#L26


include gauge core into maven plugin

I should be able to run tests with maven without installing gauge manually.

When Gauge core (which is developed in Golang) is built, an executable file is generated. This executable should be present on the machine to run a Gauge project.
Maven can be used to manage Java dependencies. But it can't install an executable file on the machine. Because of this technical constraint, Maven can't be used to install Gauge core.
On the other hand, we have made the Gauge installation process quite simple so that users can get started quickly. But if you feel that it can be made more simpler, we'd welcome your feedback.

Fair enough, I was just looking for something like cucumber where you don't need to install anything. It's just a dependency from maven.


--days not always used

Dear Sir,
Thank you very much for your great application!
When I use --days in combination with other parameters it is not always used. Please see the example below. To my understanding Zenbot should simulate 1 day here, but it simulates 3.
$ zenbot sim --days 1 --oversold_rsi 25 --oversold_rsi_periods 50

{
  "asset_capital": 0,
  "avg_slippage_pct": 0.045,
  "buy_pct": 99,
  "buy_stop_pct": 0,
  "currency_capital": 1000,
  "days": 1,
  "markup_pct": 0,
  "max_sell_loss_pct": 25,
  "max_slippage_pct": 5,
  "min_periods": 52,
  "mode": "sim",
  "neutral_rate": "auto",
  "order_adjust_time": 30000,
  "order_type": "maker",
  "oversold_rsi": 25,
  "oversold_rsi_periods": 50,
  "period": "10m",
  "profit_stop_enable_pct": 0,
  "profit_stop_pct": 1,
  "rsi_periods": 50,
  "selector": "poloniex.BTC-USDT",
  "sell_pct": 99,
  "sell_stop_pct": 0,
  "start":<PHONE_NUMBER>000,
  "stats": false,
  "strategy": "trend_ema",
  "trend_ema": 20,
  "verbose": false
}
end balance: 1030.24307048 (3.02%)
buy hold:<PHONE_NUMBER>0 (-4.94%)
vs. buy hold: 8.38%
10 trades over 3 days (avg 3.33 trades/day)
win/loss: 2/3
error rate: 60.00%
wrote simulations/sim_result_poloniex.BTC-USDT_170625_174459_UTC.html

Kind regards,
Ebo Eppenga

Can you share us the config of strategy you use ?

Closing due to inactivity.


isHit() should return true after calling save()

Resolves issue #358
Commit 25cebe9 was a BC break to achieve PSR-6 compatibility (see issue #327).  This PR doesn't fully revert all BC breaks (which would mean reintroducing PSR incompatibility) but should fix the main pain-point - i.e. that on a cache miss, after calling $item->set($value)->save(), a subsequent $item->get() should return $value not null.
The only real difference to 0.14.1 behaviour is that now calling isHit() after this sequence will return true rather than false - which is necessary for PSR-6 compliance and unlikely to cause any real-world compatibility issues.
IMO, calling get() after set() should also return the value rather than null, but PSR-6 seems fairly explicit about returning null on !isHit(), and I'm not convinced that isHit() should return true on an item that is not yet save()ed.

Coverage remained the same at 95.056% when pulling ea1e82f31d33fbe76a776a13ff07f61ce5e5a300 on therealgaxbo:master into a6f14f7787e765efbc8f1a871519f74caa0fd6db on tedious:master.

Coverage remained the same at 95.056% when pulling ea1e82f31d33fbe76a776a13ff07f61ce5e5a300 on therealgaxbo:master into a6f14f7787e765efbc8f1a871519f74caa0fd6db on tedious:master.


When download the binaries, my antivirus warns me

Guys,
When download the binaries, my antivirus warns me that this is a back virus!!
Why do you think that?
and sometimes it tells that this is a Trojan!

duplicate of #658


Implement logic for Application Event Code in IER12

Questions on application status codes and IER
(Answers below are based on discussion with @JasonCTang and @HRAGANBC )

COER vs DISR status: When a disbursement has a coe which is waiting for approval from institution and assume that the coe has not been approved until disbursement_date and the student has restriction. With this situation should we return COER or DISR ? - Answer: COER as per @HRAGANBC

Consider a disbursement which has been sent to finastra and this disburesment had some funds withheld due to restriction at the time of e-cert generation(DISW). After the disbursement is sent to finastra we got disbursement feedback errors(DISE). should we return DISW or DISE ? - Answer: DISE

Should DISW and DISE override DISS ? - Answer:  Yes

Describe the task
Implementation of Application event code and Application event date for IER 12. For reference Please use the spreadsheet from General > Files >Analysis > Institution File Specs > IER12_Analysis_Output_and_Mapping_Part_1_V2.xlsx
Private Zenhub Image
Additional context
List of validations which needs to be in place to derive application status code
Validation: Check if an application has more than one submission.
Logic: select count(id) from sims.applications a where a.application_number = '$APPLICATION_NUMBER'
Validation: Check if the disbursement has any feedback error
Logic: Check the sims.disbursement_feedback_errors feedback table for one or more errors which belongs to given list of FT Error codes.
FT Error codes: Ecert Error Codes and Descriptions External.xlsx (this is only FT codes)
Validation: Check if disbursement is not sent due to restriction
Logic: Check if the student has any active restriction of action type 'Stop full time disbursment' and disbursement date is after cutoff date (current date + 5)
Validation: Check if any disbursement award was withheld due to restriction
Logic: Check if the restriction_amount_subracted > 0
Logic to derive the application event code from application and assessment data.
Note: BPMN diagram is used only explain the logic, it is not considered as solution for implementation.
Private Zenhub Image
Source BPMN file(for making updates) : application-event-code.bpmn.txt
Logic to derive application event date (As per discussion with @JasonCTang )
Note: BPMN diagram is used only explain the logic, it is not considered as solution for implementation.
Private Zenhub Image
Source BPMN: application-event-date.bpmn.txt
Acceptance Criteria

[ ] Create the logic required to perform all the validations mentioned
[ ] Implement the mapping for Application event code [Application event codes, RECA, COEM, DISP  is not considered for the ticket/not in the scope, that's why it is marked as grey.]
[ ] Implement the mapping for Application event date
[ ] Adjust the IER query to make sure that an IER record is sent  if there is any update to feedback table or any pending disbursement beyond cutoff date.
[ ] Create methods for the fields which could be unit tested.
[ ] Create unit tests.
[ ] Nice to have: More unit tests to other conversions built before.

Validation: Check if the disbursement has any feedback error
Logic: Check the sims.disbursement_feedback_errors feedback table for one or more errors which belongs to given list of FT Error codes.

What are the codes corresponding to FT Error codes

Qn 2:
Validation: Check if any disbursement award was withheld due to restriction
Logic: Check if the restriction_amount_subracted > 0.

double checking, so, if there is a lifetime restriction and 2 applications,

from first application certain amount was subtracted as part of the restriction, but the e-cert was sent, is this eligible for code DISW

from second application the whole amount was subtracted as part of the restriction, is this eligible for code DISW

Application event codes, RECA, COEM, DISP  is not considered for the ticket/not in the scope, that's why it is marked as grey.

For, applicationEventDate, When the ApplicationEventCode .is DISR:
Logic : disbursementSchedule.disbursementDate - 5 cut off date for disbusement)

For, applicationEventDate, When the ApplicationEventCode .is DISE:
logic:
if there are multiple feedback error, take any random one's updatedAt

Removed below AC -

[ ] Please add the index position of these fields to the spreadsheet/IER official document
As it was addressed in #2277


Update Playground and other location usage of Go  to use latest released version by default.

Where possible stop being specific about which Go image version to use, or which Go version to download.

As of Go 1.21+, modules are built using their version of the Go language toolchain.
The playground should be using the latest version of Go anyway, when updated.

Also including the go-licences image because it's not used for specific builds, but it does need to run on any of our go code to produce the container license manifests.
Fixes #32441  (In particular, it's required to fix the Playground CI Nightly build).

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

Tour of Beam is failing because Docker Compose isn't present. It's not clear what happened there.
https://github.com/apache/beam/actions/workflows/tour_of_beam_backend_integration.yml
But it's not a new failure, something happened between the 2.58.0 release and the 2.58.1 release.

The GoPortable pre-commit has been failing the last 3 weeks. It's not clear what's going on, but mostly seems like the Python GRPC servers are dying.

As a rule, I generally agree, but given the infrequency that we do anything with the Playground, and the single-homedness of Go knowledge among the Beam maintainers, it's not worth the manual toil to document trying to keep things up to date, and keeps us on the Go update train.