catch out of memory errors on cog build

$ /usr/local/bin/cog build
Building Docker image from environment in cog.yaml as cog-resnet...
[+] Building 67.4s (10/12)
 => [internal] load build definition from Dockerfile                                                                                0.0s

.....

 => [stage-0 2/6] COPY .cog/tmp/build1290162384/cog-0.0.1.dev-py3-none-any.whl /tmp/cog-0.0.1.dev-py3-none-any.whl                                       0.0s
 => [stage-0 3/6] RUN --mount=type=cache,target=/root/.cache/pip pip install /tmp/cog-0.0.1.dev-py3-none-any.whl                                        12.2s
 => ERROR [stage-0 4/6] RUN --mount=type=cache,target=/root/.cache/pip pip install   pillow==8.3.1 tensorflow==2.5.1                                    35.5s
------
 > [stage-0 4/6] RUN --mount=type=cache,target=/root/.cache/pip pip install   pillow==8.3.1 tensorflow==2.5.1:
#10 4.397 Collecting pillow==8.3.1
#10 4.482   Downloading Pillow-8.3.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl (3.0 MB)
#10 6.610 Collecting tensorflow==2.5.1
#10 8.083   Downloading tensorflow-2.5.1-cp38-cp38-manylinux2010_x86_64.whl (454.5 MB)
#10 35.49 Killed
------
error: failed to solve: executor failed running [/bin/sh -c pip install   pillow==8.3.1 tensorflow==2.5.1]: exit code: 137
ⅹ Failed to build Docker image: exit status 1

@bfirsh says "Killed" (exit code 137) is a sign that the process is out of memory.
The quick fix is to allocate more memory to Docker.
The longer term fix is to catch this error and report it to the user.

Note for anyone in the future running into this-- you can just adjust the Docker container memory configuration directly (e.g. in Docker for Desktop, which I installed to try building a model to push to replicate). I originally thought there was some extra command-line flag for cog but didn't find anything (and isn't necessary since it's not cog-specific)

Similarly cog push failed with ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device
I ran docker system prune to free local memory and fix the build step.


Add cross-encoder ranking option

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.


Remove all references to github.com/golang/mock/gomock

Issue: #46972
Builds on https://github.com/rancher/wrangler/pull/468
Problem
The package github.com/golang/mock/gomock is no longer supported, but the fork "go.uber.org/mock/gomock" has continued support. We should use the supported version.
Solution
With the updated version of wrangler that removes the unsupported gomock, we can update rancher to also completely remove the unsupported version. It required regenerating some of the mocks within rancher, but they are now all compatible with "go.uber.org/mock/gomock"
Testing
As long as unit tests pass we are good.
Engineering Testing
Manual Testing

Automated Testing

Test types added/modified:

Unit
Integration (Go Framework)
Integration (v2prov Framework)
Validation (Go Framework)
Other - Explain: EXPLAIN
None
REMOVE NOT APPLICABLE BULLET POINTS ABOVE

If "None" - Reason: EXPLAIN THE REASON

If "None" - GH Issue/PR: LINK TO GH ISSUE/PR TO ADD TESTS

Summary: TODO
QA Testing Considerations

Regressions Considerations

TODO
Existing / newly added automated tests that provide evidence there are no regressions:

TODO

Thanks for requesting a new wrangler version and covering the final steps @JonCrowther!
I can now close #46972 as completed 😄


Fix json code block

When you click on "Show policy" it wasn't formatting the json code block correctly before. The newlines seem to fix that.

 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.

thanks!


No Issue - Awesome Performance, Thanks!

Just wanted to tell ya, that I had implemented neumorphic elements in my app using https://pub.dev/packages/flutter_neumorphic.
I have a decent number of elements, and was experiencing some mild jank when scrolling.  After months of dealing with it, scaling back, etc.  I just replaced a page's elements with your clay_containers and it became smooth as can be.
So, Thank you for making yours with low overhead, efficient, and performant!

Thank you!


Unable to start xfce after updating chroot to install Xorg target

name: jammy
encrypted: no
Entering /mnt/stateful_partition/crouton/chroots/jammy...
/usr/local/bin/crash_reporter_wrapper: 119: exec: /var/run/crw/crw: Permission denied
WARNING: Unable to register core dump handler.
crouton: version 1-20230720095530~silence:81236e25
release: jammy
architecture: amd64
xmethod: xorg
targets: xorg,xfce,xfce-desktop,core,keyboard,xiwi,x11,cli-extra,extension
host: version 15474.61.0 (Official Build) stable-channel dedede
kernel: Linux localhost 5.4.243-20976-gae2297af569c #1 SMP PREEMPT Mon Jul 17 19:26:00 PDT 2023 x86_64 x86_64 x86_64 GNU/Linux
freon: no
Unmounting /mnt/stateful_partition/crouton/chroots/jammy...

Please describe your issue:
Error starting xfce after updating chroot to install the xorg target.
If known, describe the steps to reproduce the issue:
sudo startxfce4 displays and error described below:
chronos@localhost / $ sudo startxfce4
Entering /mnt/stateful_partition/crouton/chroots/jammy...
/usr/local/bin/crash_reporter_wrapper: 119: exec: /var/run/crw/crw: Permission denied
WARNING: Unable to register core dump handler.
/usr/bin/startxfce4: Starting X server

_XSERVTransmkdir: Owner of /tmp/.X11-unix should be set to root

X.Org X Server <IP_ADDRESS>
X Protocol Version 11, Revision 0
Current Operating System: Linux localhost 5.4.243-20976-gae2297af569c #1 SMP PREEMPT Mon Jul 17 19:26:00 PDT 2023 x86_64
Kernel command line: cros_secure console= loglevel=7 init=/sbin/init cros_secure drm.trace=0x106 root=/dev/dm-0 rootwait ro dm_verity.error_behavior=3 dm_verity.max_bios=-1 dm_verity.dev_wait=1 dm="1 vroot none ro 1,0 6553600 verity payload=PARTUUID=985c4d95-7b89-4c8c-82ca-1b5d415c564c/PARTNROFF=1 hashtree=PARTUUID=985c4d95-7b89-4c8c-82ca-1b5d415c564c/PARTNROFF=1 hashstart=6553600 alg=sha256 root_hexdigest=75cc90cc11ec3876685a511339dd13d562aa5cb89b3a53620e6fb1d7dd9943f0 salt=290d9a5b90ca494565ae14a72d04f32bb1a39e5dd9f219c6f2ded2f284475afc" noinitrd vt.global_cursor_default=0 kern_guid=985c4d95-7b89-4c8c-82ca-1b5d415c564c add_efi_memmap boot=local noresume noswap i915.modeset=1 i915.enable_guc=2 intel_pmc_core.warn_on_s0ix_failures=1
xorg-server 2:21.1.4-2ubuntu1.7~22.04.1 (For technical support please see http://www.ubuntu.com/support)
Current version of pixman: 0.40.0
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/home/user1/.local/share/xorg/Xorg.1.log", Time: Sun Jul 30 02:53:36 2023
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
(EE)
Fatal server error:
(EE) parse_vt_settings: Cannot open /dev/tty0 (Permission denied)
(EE)
(EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
(EE) Please also check the log file at "/home/user1/.local/share/xorg/Xorg.1.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
/usr/bin/xinit: giving up
/usr/bin/xinit: unable to connect to X server: Connection refused
/usr/bin/xinit: server error
Unmounting /mnt/stateful_partition/crouton/chroots/jammy...
Sending SIGTERM to processes under /mnt/stateful_partition/crouton/chroots/jammy...

everything was working fine before installing the xorg target.

I had the same issue.

Looks like you're having the same problem specified in #4793 . Read that, try the steps specified there and come back if it doesn't work.

@ItsYeetsup
It worked, thank you so much.


How to calculate AP30 for coco data set in MMdetection?

Because my data set features are not obvious.The accuracy of the results after training is low, so I want to use AP10 and AP30 as the evaluation indicators.I have some problems after I modified the evaluation document.Can someone give me some advice?

modify pycocotools/cocoeval.py
class Params:
    '''
    Params for coco evaluation api
    '''
    def setDetParams(self):
        self.imgIds = []
        self.catIds = []
        # np.arange causes trouble.  the data point on arange is slightly larger than the true value
        self.iouThrs = np.linspace(.5, 0.95, int(np.round((0.95 - .5) / .05)) + 1, endpoint=True)
        self.recThrs = np.linspace(.0, 1.00, int(np.round((1.00 - .0) / .01)) + 1, endpoint=True)
        self.maxDets = [1, 10, 100]
        self.areaRng = [[0 ** 2, 1e5 ** 2], [0 ** 2, 32 ** 2], [32 ** 2, 96 ** 2], [96 ** 2, 1e5 ** 2]]
        self.areaRngLbl = ['all', 'small', 'medium', 'large']
        self.useCats = 1

Hi @Wenting-Xu
@fengyouliang 's answer is correct. You need to modify pycocotools/cocoeval.py to add 0.1 and 0.3 into iouThrs.
However, mAP_10 and mAP_30 may not reflect the accuracy of your detector since the iou threshold is too low...

modify pycocotools/cocoeval.py
class Params:
    '''
    Params for coco evaluation api
    '''
    def setDetParams(self):
        self.imgIds = []
        self.catIds = []
        # np.arange causes trouble.  the data point on arange is slightly larger than the true value
        self.iouThrs = np.linspace(.5, 0.95, int(np.round((0.95 - .5) / .05)) + 1, endpoint=True)
        self.recThrs = np.linspace(.0, 1.00, int(np.round((1.00 - .0) / .01)) + 1, endpoint=True)
        self.maxDets = [1, 10, 100]
        self.areaRng = [[0 ** 2, 1e5 ** 2], [0 ** 2, 32 ** 2], [32 ** 2, 96 ** 2], [96 ** 2, 1e5 ** 2]]
        self.areaRngLbl = ['all', 'small', 'medium', 'large']
        self.useCats = 1

modify pycocotools/cocoeval.py
class Params:
    '''
    Params for coco evaluation api
    '''
    def setDetParams(self):
        self.imgIds = []
        self.catIds = []
        # np.arange causes trouble.  the data point on arange is slightly larger than the true value
        self.iouThrs = np.linspace(.5, 0.95, int(np.round((0.95 - .5) / .05)) + 1, endpoint=True)
        self.recThrs = np.linspace(.0, 1.00, int(np.round((1.00 - .0) / .01)) + 1, endpoint=True)
        self.maxDets = [1, 10, 100]
        self.areaRng = [[0 ** 2, 1e5 ** 2], [0 ** 2, 32 ** 2], [32 ** 2, 96 ** 2], [96 ** 2, 1e5 ** 2]]
        self.areaRngLbl = ['all', 'small', 'medium', 'large']
        self.useCats = 1

thankes for you replay.i changed like this:
self.iouThrs = np.linspace(.1, 0.95, int(np.round((0.95 - .1) / .05)) + 1, endpoint=True)
but i got an error  like this:
Average Precision  (AP) @[ IoU=0.30      | area=   all | maxDets=1000 ] = -1.000
Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=1000 ] = -1.000
why i will got -1.00?

You have to modify mmdet/dataset/coco.py as well.


Classic styles are no longer supported  #urgent

Hi,
I am getting issue on using Leaflet js.
The issue is {"message":"Classic styles are no longer supported; see https://blog.mapbox.com/deprecating-studio-classic-styles-d8892ac38cb4 for more information"}
And the screenshot of browser 1. ( https://prnt.sc/sxthdf ).
2. https://prnt.sc/sxtj0l
Maps invisible.
Thank you.

The issue is about the tile provider, not about Leaflet itself.


:+1: add setup.py

Add setup.py for PyPI

Still have need to modify [author] and [author_email]

@kzmake LGTM!


How to disable right aligned messages?

After some inspect element investigating this is the code aligning my messages to the right.
https://github.com/advanced-chat/vue-advanced-chat/blob/87b7ee8790c9b4803e98a1702c841cd4e4abcf0d/src/lib/Room/RoomMessage/RoomMessage.scss#L117-L120
I have found nothing in the docs regarding this kind of customization
Context
I want all messages to align-start (and take up full width)

any update on this? I find resizing the window seems to affect message text alignment.
Very strange.


Show docs for GitHub Actions

Since publishing a place is a common desire for a Roblox CD pipeline, it would make sense to have a docs section dedicated to example Actions using the CLI tool.

Already done


Unless and prepend

Codecov Report

Merging #190 (346c167) into master (d440345) will increase coverage by 0.03%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #190      +/-   ##
==========================================
+ Coverage   99.06%   99.10%   +0.03%
==========================================
  Files         219      221       +2
  Lines        3111     3137      +26
==========================================
+ Hits         3082     3109      +27
+ Misses         29       28       -1

Impacted Files
Coverage Δ

x/defaultsDeep.js
100.00% <100.00%> (+2.38%)
:arrow_up:

x/prepend.js
100.00% <100.00%> (ø)

x/unless.js
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


WASM / Xamarin Forms - HttpClient doesn't work

Ooui, Ooui.Wasm, Ooui.Forms 0.10.222.
The code:
namespace OouiTestXamlApp
{
    using Ooui;
    using System.Net.Http;
    using Xamarin.Forms;

    class Program
    {
        static void Main(string[] args)
        {
            Forms.Init();
            var page = new MainPage();
            UI.Publish("/", page.GetOouiElement());
            GetData();
        }

        public static async void GetData()
        {
            var httpClient = new HttpClient();
            var response = await httpClient.GetAsync("http://www.google.com");
        }
    }
}

Browser console shows error:
System.PlatformNotSupportedException: Operation is not supported on this platform.
The whole error message:
GET http://localhost:52222/ [HTTP/1.1 200 OK 3ms]
GET https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css [HTTP/2.0 304 Not Modified 52ms]
GET http://localhost:52222/ooui.js [HTTP/1.1 200 OK 19ms]
GET http://localhost:52222/mono.js [HTTP/1.1 304 Not Modified 1ms]
GET https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css [HTTP/2.0 304 Not Modified 55ms]
mono.js:1:34855
Unhandled Exception:
mono.js:1:34855
System.PlatformNotSupportedException: Operation is not supported on this platform.
mono.js:1:34855
  at System.Net.WebProxy.CreateDefaultProxy () <0x2836738 + 0x00004> in <c5e34d81ad314f7ab9644fbd9cbc69b1>:0
mono.js:1:34855
  at System.Net.Configuration.DefaultProxySectionInternal.GetSystemWebProxy () <0x28365e0 + 0x00000> in <c5e34d81ad314f7ab9644fbd9cbc69b1>:0
mono.js:1:34855
  at System.Net.Configuration.DefaultProxySectionInternal.GetDefaultProxy_UsingOldMonoCode () <0x2836498 + 0x00000> in <c5e34d81ad314f7ab9644fbd9cbc69b1>:0
mono.js:1:34855
  at System.Net.Configuration.DefaultProxySectionInternal.GetSection () <0x28362e0 + 0x00022> in <c5e34d81ad314f7ab9644fbd9cbc69b1>:0
mono.js:1:34855
  at System.Net.WebRequest.get_InternalDefaultWebProxy () <0x2835f28 + 0x0002c> in <c5e34d81ad314f7ab9644fbd9cbc69b1>:0
mono.js:1:34855
  at System.Net.HttpWebRequest..ctor (System.Uri uri) <0x28185e0 + 0x000d2> in <c5e34d81ad314f7ab9644fbd9cbc69b1>:0
mono.js:1:34855
  at System.Net.Http.HttpClientHandler.CreateWebRequest (System.Net.Http.HttpRequestMessage request) <0x2817bf8 + 0x00016> in <bb3c97b3061e4bd2ab2156520b1e6fdd>:0
mono.js:1:34855
  at System.Net.Http.HttpClientHandler+<SendAsync>d__64.MoveNext () <0x2827030 + 0x00076> in <bb3c97b3061e4bd2ab2156520b1e6fdd>:0
mono.js:1:34855
--- End of stack trace from previous location where exception was thrown ---
mono.js:1:34855
  at System.Net.Http.HttpClient+<SendAsyncWorker>d__47.MoveNext () <0x27b38e8 + 0x0017e> in <bb3c97b3061e4bd2ab2156520b1e6fdd>:0
mono.js:1:34855
--- End of stack trace from previous location where exception was thrown ---
mono.js:1:34855
  at OouiTestXamlApp.Program+<GetData>d__1.MoveNext () <0x275a920 + 0x000e0> in <81d99247780f47eba866b9de0917b7d4>:0
mono.js:1:34855
--- End of stack trace from previous location where exception was thrown ---
mono.js:1:34855
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__6_1 (System.Object state) <0x2d8c3f8 + 0x00014> in <b3fce0803fba480fae38154d157eea73>:0
mono.js:1:34855
  at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context (System.Object state) <0x2d8c270 + 0x00026> in <b3fce0803fba480fae38154d157eea73>:0
mono.js:1:34855
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) <0x2d73a28 + 0x000f0> in <b3fce0803fba480fae38154d157eea73>:0
mono.js:1:34855
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) <0x2d736c8 + 0x00020> in <b3fce0803fba480fae38154d157eea73>:0
mono.js:1:34855
  at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () <0x2d8c1f0 + 0x00046> in <b3fce0803fba480fae38154d157eea73>:0
mono.js:1:34855
  at System.Threading.ThreadPoolWorkQueue.Dispatch () <0x2d6e780 + 0x000f4> in <b3fce0803fba480fae38154d157eea73>:0
mono.js:1:34855
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () <0x2d6e370 + 0x00000> in <b3fce0803fba480fae38154d157eea73>:0
mono.js:1:34855
[ERROR] FATAL UNHANDLED EXCEPTION: System.PlatformNotSupportedException: Operation is not supported on this platform.
mono.js:1:34855
  at System.Net.WebProxy.CreateDefaultProxy () <0x2836738 + 0x00004> in <c5e34d81ad314f7ab9644fbd9cbc69b1>:0
mono.js:1:34855
  at System.Net.Configuration.DefaultProxySectionInternal.GetSystemWebProxy () <0x28365e0 + 0x00000> in <c5e34d81ad314f7ab9644fbd9cbc69b1>:0
mono.js:1:34855
  at System.Net.Configuration.DefaultProxySectionInternal.GetDefaultProxy_UsingOldMonoCode () <0x2836498 + 0x00000> in <c5e34d81ad314f7ab9644fbd9cbc69b1>:0
mono.js:1:34855
  at System.Net.Configuration.DefaultProxySectionInternal.GetSection () <0x28362e0 + 0x00022> in <c5e34d81ad314f7ab9644fbd9cbc69b1>:0
mono.js:1:34855
  at System.Net.WebRequest.get_InternalDefaultWebProxy () <0x2835f28 + 0x0002c> in <c5e34d81ad314f7ab9644fbd9cbc69b1>:0
mono.js:1:34855
  at System.Net.HttpWebRequest..ctor (System.Uri uri) <0x28185e0 + 0x000d2> in <c5e34d81ad314f7ab9644fbd9cbc69b1>:0
mono.js:1:34855
  at System.Net.Http.HttpClientHandler.CreateWebRequest (System.Net.Http.HttpRequestMessage request) <0x2817bf8 + 0x00016> in <bb3c97b3061e4bd2ab2156520b1e6fdd>:0
mono.js:1:34855
  at System.Net.Http.HttpClientHandler+<SendAsync>d__64.MoveNext () <0x2827030 + 0x00076> in <bb3c97b3061e4bd2ab2156520b1e6fdd>:0
mono.js:1:34855
--- End of stack trace from previous location where exception was thrown ---
mono.js:1:34855
  at System.Net.Http.HttpClient+<SendAsyncWorker>d__47.MoveNext () <0x27b38e8 + 0x0017e> in <bb3c97b3061e4bd2ab2156520b1e6fdd>:0
mono.js:1:34855
--- End of stack trace from previous location where exception was thrown ---
mono.js:1:34855
  at OouiTestXamlApp.Program+<GetData>d__1.MoveNext () <0x275a920 + 0x000e0> in <81d99247780f47eba866b9de0917b7d4>:0
mono.js:1:34855
--- End of stack trace from previous location where exception was thrown ---
mono.js:1:34855
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__6_1 (System.Object state) <0x2d8c3f8 + 0x00014> in <b3fce0803fba480fae38154d157eea73>:0
mono.js:1:34855
  at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context (System.Object state) <0x2d8c270 + 0x00026> in <b3fce0803fba480fae38154d157eea73>:0
mono.js:1:34855
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) <0x2d73a28 + 0x000f0> in <b3fce0803fba480fae38154d157eea73>:0
mono.js:1:34855
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) <0x2d736c8 + 0x00020> in <b3fce0803fba480fae38154d157eea73>:0
mono.js:1:34855
  at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () <0x2d8c1f0 + 0x00046> in <b3fce0803fba480fae38154d157eea73>:0
mono.js:1:34855
  at System.Threading.ThreadPoolWorkQueue.Dispatch () <0x2d6e780 + 0x000f4> in <b3fce0803fba480fae38154d157eea73>:0
mono.js:1:34855
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () <0x2d6e370 + 0x00000> in <b3fce0803fba480fae38154d157eea73>:0
mono.js:1:34855
ExitStatus: Program terminated with exit(255)
mono.js:1:345822

Unfortunately this might be a mono limitation. I will ask them what the best way to do HTTP is.

Thanks. No worries, I am just testing your library (I am interested in Ooui.Wasm/Forms only) trying to understand the concept in comparison to Silverlight (and have a lot of fun).
Of course 'data access' is necessary, especially HttpClient, which is probably used by another library I am testing - Breeze.Sharp ported to .Net Standard 2.0 ('probably', because I am getting the same error using this library).
BTW, I have found this thread: xaml-Standard - people really miss something similar to Silverlight, which (imho) is your great Ooui.Wasm/Forms lib.

I have noticed that mono has published a new release 5.12.0 Preview (<IP_ADDRESS>)  where some significant changes have been made which might affect HttpClient issues (Class Libraries section).
Would it be possible to use this version of mono in the next release of ooui (just to check whether it would help to make HttpClient working)?

I missed my chance to catch you after the Forms 3.0 talk at Build to make sure I understand this correctly now that the missing Mono forwarders from #96 aren't an issue :grin:, but do you think it may be necessary to do what Blazor did and write a custom HttpMessageHandler that calls fetch via interop to get HttpClient working?
https://github.com/aspnet/Blazor/blob/dev/src/Microsoft.AspNetCore.Blazor.Browser/Http/BrowserHttpMessageHandler.cs
https://github.com/aspnet/Blazor/blob/dev/src/Microsoft.AspNetCore.Blazor.Browser.JS/src/Services/Http.ts

@zbigniew-gajewski  I think I'm following your same path because I am hitting this error now too. :)  This is a fun framework and not the end of the world but HttpClient or something similar would be really nice.

@davidlsharp1 - indeed fun framework, especially for Silverlight addict :) . HttpClient is a must, but as @praeclarum pointed out this is mono/Wasm problem, not Ooui. I am waiting for the next Ooui.Wasm with new mono version included. Another 'nice thing' would be UI controls with mouse support is as important as data access. Fortunately companies like Telerik/Progress is taking it into account: xamarin-forms-on-the-web (user voice page).

That's a great article with props to Frank.  Can somebody help me understand the mono problem with HttpClient?  Is it specifically a wasm problem?

Any updates on this? We are getting PlatformNotSupportedException when doing a simple HttpClient.GetAsync().
It's kind of a showstopper for us.

It seems like (unfortunately) this project is not actively maintained. Here is working example using HttpClient and Breeze.Sharp in another WASM platform.

I am wondering if this has been fixed or is supposed to be fixed at all?
It would be nice to be able to make http requests.

Yeah, the updated WASM should have HTTP support. I'll try to get that update PR in...


101 est refinement

No matter what combinations i put in, i get:
Est. Arrival: 12 mins ~ 70 mins
Doesn't seem right.

No matter what combinations i put in, i get:
Est. Arrival: 12 mins ~ 70 mins
Doesn't seem right.
This has been fixed

Also, NavTech processing time should be 5 - 10 minutes. But we can always update these times later.

This is handled in the ./server/config.js file by the timeConsts obj. I've updated it to 5,10 (min,max) on my side but you'll need to update it on your side too
    changelly: [5,30],
    navTech: [5,10],
  },```


Rekor Integration is Broken

When running witness with a rekor server using the -r flag the attestation fails to upload because rekor does not recognize the dsse type. The attestation successfully uploads when manually using the rekor-cli tool. I believe this is because originally witness was integrating with a forked version of rekor with dsse type but the upstream rekor project integrated the payload as intoto:0.0.2 type instead.
[root@dev witness]# witness version
INFO    Using config file: .witness.yaml
witness v0.1.11-d7c6718

[root@dev witness]# witness run -k witness.key -r http://localhost:3000 -o build-att.json -s docker-build -- docker build -t test:latest .
INFO    Using config file: .witness.yaml
INFO    Starting environment attestor...
INFO    Starting git attestor...
INFO    Starting material attestor...
INFO    Starting command-run attestor...
Sending build context to Docker daemon  6.436MB
Step 1/2 : FROM alpine:latest
 ---> 9c6f07244728
Step 2/2 : LABEL maintainer=solute.us
 ---> Using cache
 ---> 5d9469900750
Successfully built 5d9469900750
Successfully tagged test:latest
INFO    Starting product attestor...
ERROR   failed to store artifact in rekor: [POST /api/v1/log/entries][422] createLogEntry default  &{Code:422 Message:invalid kind value: "dsse"}

[root@dev witness]# rekor-cli upload --public-key witness.pub --artifact build-att.json --type intoto:0.0.2 --rekor_server http://localhost:3000
Created entry at index 19, available at: http://localhost:3000/api/v1/log/entries/0cb58854d00fe050c9dfc0a3f1e2da922d2e2c2d7e17ce415e22216be7ceb8fd887eb9b9c53184de

It looks like the issue is actually in go-witness repo so I can move this issue over that if that is better.
https://github.com/testifysec/go-witness/blob/v0.1.12/rekor/rekor.go#L81
Also I noticed that the rekor code was removed in v0.1.13 so maybe this is something that is planned to be refactored in a newer version?

Hi @jmeth .
Yes, the Rekor support is something we're taking another look at. The Rekor dsse type was in a pull request that has now been merged in with the type changed to in-toto v0.0.2.

@mikhailswift ,
Is there a way we could introduce a temporary fix while you guys take another look at rekor support? I'd be willing to take a crack at it if you tell me how/where you would want to add that fix.
At the very least, I could submit a PR to the README here to clarify that rekor support with the -r flag is only for the testifysec/rekor build but that manual uploads to a rekor server work just fine.

@mikhailswift I think I have a working patch against the v0.1.12 tag here
A couple of notes:

I don't know that I can create a PR against a tag, I think it has to be against a branch. So if this looks good and I submit I'm not sure which branch to use or if you would create one off of the v0.1.12 tag.
I built and tested the witness cli and verified the -r flag with witness run and witness verify against a locally running rekor server and everything looked good
I had to upgrade the rekor dependency so I ran go mod tidy
Right now the unit tests fail. I think there are possibly 2 issues: 1) It seems the rekor integration only really works with the ed25519 key type. I tried a standard RSA key and that failed. I'm wondering if the test cases use a non supported key type? and 2) the test cases seem to still have "dsse" type in the responses. I'm not sure I'm able to regenerate test cases without a key.

--- FAIL: Test_wrappedRekorClient_StoreArtifact (0.00s)
    rekor_test.go:141:
                Error Trace:    /home/josh/repos/github.com/jmeth/go-witness/rekor/rekor_test.go:141
                Error:          Received unexpected error:
                                could not verify envelope: Accepted signatures do not match threshold, Found: 0, Expected 1
                Test:           Test_wrappedRekorClient_StoreArtifact
--- FAIL: Test_FindEvidence (0.00s)
    rekor_test.go:181:
                Error Trace:    /home/josh/repos/github.com/jmeth/go-witness/rekor/rekor_test.go:181
                Error:          Received unexpected error:
                                couldn't parse rekor entry: invalid kind value: "dsse"
                Test:           Test_FindEvidence

I don't know that I can create a PR against a tag, I think it has to be against a branch. So if this looks good and I submit I'm not sure which branch to use or if you would create one off of the v0.1.12 tag.

Creating one off of the v0.1.12 tag should be fine.

It seems the rekor integration only really works with the ed25519 key type.

If memory serves this is because rekor validates RSA signatures with the PKCSv1.5 scheme by default whereas witness uses the RSA-PSS scheme by default similarly to in-toto. I think I had worked around this in testifysec/rekor by manually creating a RSAPSS verifier instead. This isn't a real solution though so we may have to work with the rekor team to figure out a good solution for that problem.

the test cases seem to still have "dsse" type in the responses. I'm not sure I'm able to regenerate test cases without a key.

I can take a look and fix up the test cases for this.

When I try to create a PR the 'Create' button goes away when selecting the v0.1.12 tag. I think I need to specify a branch. The work I did was branched off of the v0.1.12 tag so if I just select main for the target I'm not sure if I would be introducing any issues with the go.mod for example since main has moved ahead of v0.1.12 by now.

Ahhh, I see now. I created a branch version/0.1.12 on go-witness, you should be able to open your PR against that

We want to implement rekor support as a hashed rekord.  This would allow users to keep their data private while using the public good instance to distribute trust and transparency,


Animated Page Transitions

I've seen several questions about this but I haven't seen any solutions that I'm satisfied with. Take this one for example:
http://www.manuel-schoebel.com/blog/simple-page-transitions-with-iron-router-hooks
This method just involved fading the old template out before and fading the new on in after. But this is too simple for something as simple as a modal popover or a slide.
I want to be able to implement these transitions in Iron Router.
http://tympanus.net/Development/PageTransitions/
Currently, the only solution I can think of is rendering every page in the body, but this is ugly, inefficient, and I lose all the benefits of iron router.
What I would like to be able to do is have some intermediate callback when I'm changing routes where both templates are rendered in the DOM, but one is hidden so I can animate the page transition however I want. At the end of the animation the old template is destroyed.
If you have any other ideas for how this might work, I'd like to hear what you think.
But the long and short of this issue ticket is: How can I implement these page transitions between routes?

So the local market app has an interesting implementation of animations. But I'm not entirely sure how it works.
This is the bulk of it. Anyone want to help me understand this?
var nextInitiator = null, initiator = null;
Deps.autorun(function() {
  // add a dep
  Router.current();

  initiator = nextInitiator;
  nextInitiator = null;
});

Template.appBody.rendered = function() {
  this.find("#content-container")._uihooks = {
    insertElement: function(node, next) {
      // short-circuit and just do it right away
      if (initiator === 'menu')
        return $(node).insertBefore(next);

      var start = (initiator === 'back') ? '-100%' : '100%';

      $.Velocity.hook(node, 'translateX', start);
      $(node)
        .insertBefore(next)
        .velocity({translateX: [0, start]}, {
          duration: ANIMATION_DURATION,
          easing: 'ease-in-out',
          queue: false
        });
    },
    removeElement: function(node) {
      if (initiator === 'menu')
        return $(node).remove();

      var end = (initiator === 'back') ? '100%' : '-100%';

      $(node)
        .velocity({translateX: end}, {
          duration: ANIMATION_DURATION,
          easing: 'ease-in-out',
          queue: false,
          complete: function() {
            $(node).remove();
          }
        });
    }
  };

  this.find(".notifications")._uihooks = {
    insertElement: function(node, next) {
      $(node)
        .insertBefore(next)
        .velocity("slideDown", {
          duration: ANIMATION_DURATION,
          easing: [0.175, 0.885, 0.335, 1.05]
        });
    },
    removeElement: function(node) {
      $(node)
        .velocity("fadeOut", {
          duration: ANIMATION_DURATION,
          complete: function() {
            $(node).remove();
          }
        });
    }
  };
}

Template.appBody.events({
  'click .js-back': function(event) {
    nextInitiator = 'back';

    // XXX: set the back transition via Location.back() when IR 1.0 hits
    history.back();
    event.stopImmediatePropagation();
    event.preventDefault();
  }
});

I've never seen _uihooks before. It seems they're using blaze for most of the animation though.


zephyr: update include paths to use <zephyr/...>

Zephyr has prefixed all of its includes with <zephyr/...>. While the old
mode can still be used (CONFIG_LEGACY_INCLUDE_PATH) and is still enabled
by default, it's better to be prepared for its removal in the future.

cc: @stephanosio

It seems we have no collaborators and maintainers for this module at all ...


Normalize the json response

Json response must be coherent throughout every math operation.
We should decide on a single format for all so the client can expect the same data format
without knowing which operation it asked.
We could do it like this:
{
message: "<relevant message - probably identifying the operation>",
operation: "<either success | failed>",
operators: [
"operator1",
"operator2"
],
result: ""
}

how am i supposed to test the json formatting?


ERR on certain queries

In a particular project I work in, when I perform an ag query from the root directory (it's a rather large project)I will sometimes get this error:

Hmm, when it's prefixed with ERR, the error is coming from ag itself. Can you reproduce it when you manually run ag --vimgrep web_canary from the directory :pwd?
The only other thing I noticed is that the message says that it read (4gb - 1b) bytes for whatever reason.

Yup, ag bug: https://github.com/ggreer/the_silver_searcher/issues/1038 :-)

Ahh good to know, thanks!


Fix : Can't bind to port - always reports it's 7000

Fixes #1270

You will also have to create the Util method, this does not exist :)

You will also have to create the Util method, this does not exist :)

oh I though it was already there :)

@Patil2099 will you be adding the method?

Yes, I will do it soon.

Great, looking forward to it!

@Patil2099 I went ahead and wrote the method :)


selinux should be disabled for OSD nodes

Currently I don't see ceph-ansible disabling selinux as part of OSD tasks. Since we don't yet support running OSDs with selinux enabled, we should explicitly disable selinux as part of OSD install/nodes.
This can cause issue in hyperconverged setups, where compute nodes (eg: Nova in openstack) enabled selinux but OSD on the same node doesn't disable it (Currently since ceph-ansible doesn't do it, higher level orchestrator like Heat needs to do it).

@leseb Can you assign this to me. I am working on this.

@leseb I sent a patch, but just got this late thought... Do we disable selinux just for OSDs or for MONs and RGW nodes too ? IIUC, we don't support selinux enforcing for all 3, not just OSDs. Let me know.

#619

@leseb 'guess I forgot to add Closes tag to the patch, so this issue is still in open state, altho' patch is merged. Can you pls close this issue ?


distributed training on multiple machines speed is slowing down instead of an expected increase

Hi all,
I am trying to run distributed training on multiple machines (data parallelism) with mxnet using the VOC dataset. I have been successful in doing this on AWS machines (g2.2x large) whether it has been 1, 2 or 5 machines (given all the hyperparameters are kept the same e.g. batch size on each gpu) .

Instance Type / GPU Card
Num of GPU
Speed (samples/sec)

g2.2x large / k520
1
~9-10

g2.2x large / k520
2
~9-10

g2.2x large / k520
5
~9-10

The speed (samples/sec) stays relatively the same regardless of the number of machines I have, which means that the training time will subsequently be reduced as I increase the number of GPU (b/c the batch will decrease). This is ideal because that is in accordance with mxnet documentation.
However, when I do this on my own local network, I unfortunately am getting a decrease in speed when I add on more machines (given all the hyperparameters are kept the same - e.g. batch-size on each gpu, kv-store = dist-sync ). The decrease in speed is pretty significant - almost 5x slower on 2 machines than if I just used 1 machine!

Instance Type / GPU Card
Num of GPU
Speed (samples/sec)

local / gtx 1080
1
~40-50

local / gtx 1080
2
~8-10

From this speed decrease, it means the training time will take longer as compared to when I was training with only 1 machine which is less than ideal. Do you know why this might be the case?
What have you tried to solve it?
I thought it might be a bandwidth issue and used iperf to test the connection speed but that seems to be comparable between my local machines and aws instances.

Interval
Transfer
Bandwidth

local gtx 1080 & local gtx 1080
0.0-10s
1012 MBytes
848 MBits/sec

g2.2x large k520 &  g2.2x large k520
0.0-10s
867 MBytes
727 MBits/sec

If anyone could advise me on this , I would greatly appreciate it! Thank you so much !

Environment info
Operating System: Ubuntu 14.04 + Ubuntu 16.04
Compiler:
Package used (Python/R/Scala/Julia): Python
MXNet version: 0.9.5
Or if installed from source:
MXNet commit hash (git rev-parse HEAD): 703e8eeb117109ea345639610780e30775056412
If you are using python package, please provide
Python version and distribution: Python 2.7.8

which model are you training?

@piiswrong I am training with ssd model -  commit

multi gpu/machine ssd training doesn't scale very well

I've met the same problem when training ssd. Training speed on two machines is much slower than on one machine. Is this caused by the Custom operator or something else?

This issue is closed due to lack of activity in the last 90 days. Feel free to ping me to reopen if this is still an active issue. Thanks!


Some Goonstation improvements(?)

ased on discussion in the OpenDream Discord here the changes from our fork. Accompanies https://github.com/BeeStation/dmcompile-listener/pull/1

compile command with single backticks now evalutes an expression and returns it concisely using json_encode

bot owner can set default version
removes listbyond command as the dmcompile-listener PR lets people use any version
I think titles in embeds are bold because I liked that look better
maybe something else I forgot

Let me know if any of this sucks or you don't want it and I'll remove it from the PR.

I completely forgot about this.... 😓


Refactor test auth token generation to util file

Description

Currently, each of the route test files contain their own copy of the auth token generator:

This code can be refactored into a util function for use within all three test files
Acceptance Criteria

[ ] Refactor into function generateAuthToken and place into test util file
[ ] All test cases pass as before the refactor

Implementation details

The beforeAll() call and databaseOperations.connectDatabase() calls must remain for the tests to run properly
Testing notes

na

LGTM!


documentation and demo site crashed : (

hi, @riophae  thx for the awesome package but as the title suggested, the documentation and demo site crashed : http://vue-treeselect.js.org/
please help us

Hey, thanks for reminding! The website should have recovered now.

謝謝!


undefined local variable or method `chef_version', possible package version issues

Hello, hoping someone may be able to give me some direction on an error i'm seeing. I'm assuming i'm probably out of date or running incompatible versions to be getting this error during bootstrap.
Running:
Ruby 2.2.2
chef (12.15.19, 12.5.1)
knife-ec2 (0.13.0)
The short error is
Exception: NameError: undefined local variable or method `chef_version' for #<Chef::Knife::Core::BootstrapContext:0x007f9f3e7bf248>

And with verbose output it is
(erubis):23:in `block in evaluate': undefined local variable or method `chef_version' for #<Chef::Knife::Core::BootstrapContext:0x007fbcceab5440> (NameError)
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/gems/erubis-2.7.0/lib/erubis/evaluator.rb:74:in `instance_eval'
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/gems/erubis-2.7.0/lib/erubis/evaluator.rb:74:in `evaluate'
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/gems/chef-12.15.19/lib/chef/knife/bootstrap.rb:364:in `render_template'
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/gems/chef-12.15.19/lib/chef/knife/bootstrap.rb:457:in `ssh_command'
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/gems/chef-12.15.19/lib/chef/knife/bootstrap.rb:436:in `knife_ssh'
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/gems/chef-12.15.19/lib/chef/knife/bootstrap.rb:401:in `run'
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/gems/knife-ec2-0.13.0/lib/chef/knife/ec2_server_create.rb:576:in `run'
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/gems/chef-12.15.19/lib/chef/knife.rb:429:in `block in run_with_pretty_exceptions'
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/gems/chef-12.15.19/lib/chef/local_mode.rb:44:in `with_server_connectivity'
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/gems/chef-12.15.19/lib/chef/knife.rb:428:in `run_with_pretty_exceptions'
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/gems/chef-12.15.19/lib/chef/knife.rb:219:in `run'
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/gems/chef-12.15.19/lib/chef/application/knife.rb:156:in `run'
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/gems/chef-12.15.19/bin/knife:25:in `<top (required)>'
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/bin/knife:23:in `load'
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/bin/knife:23:in `<main>'
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/bin/ruby_executable_hooks:15:in `eval'
	from /Users/nick/.rvm/gems/ruby-2.2.2@sprintly/bin/ruby_executable_hooks:15:in `<main>'

Thanks in advance for any help :)

This ended up being an invalid variable in the bootstrap template.


Add Gtk theming

Gtk themes for Tukaan
Basics
from tukaan.themes import GtkTheme

app.theme = GtkTheme  # Native Gtk theme

app.theme = GtkTheme("Adwaita")  # Select which Gtk theme to use

Even more stuff
>>> from tukaan.themes import GtkTheme

>>> print(GtkTheme.themes)  # Returns the Gtk themes available on the system
['Adwaita', 'Breeze', 'Breeze-Dark', 'Dracula', 'Raleigh', 'Yaru-dark', 'Yaru-light']

>>> print(GtkTheme.system_theme)  # Get the system's active Gtk theme
'Yaru-dark'

TODO:

[ ] Translate Tcl scripts to Python (like for Serif)
[ ] Make _use work on class as well as on instance
[ ] get_themes() -> classproperty(themes)
[ ] get_system_theme() -> classproperty(system_theme)

What happened to Snack? I was reallay looking forward to it :(

Yeah, I scrapped it, 'cause I have a better idea: let's not put the sound stuff inside Tukaan, instead make an official audio handling / software synth module dedicated to Tukaan, written from scratch. Filomeel (toucan -> tukaan, philomela [nightingale] -> filomeel lol) is a private repository yet, so you can't see it, but I have some kind of development going on in it.

nice :) looking forward to it

After all, I might drop Gtk theme support. At least in the Tukaan core.
Gtk 2 is not reached its end of life, and while Gtk 2 themes still exist, using obsolete stuff is usually not a good idea.

So GTK is dropped?

For Tukaan yes. You can see the reasoning above.
I still develop it though: https://github.com/Geballin/gtkTtk/pulls xdd

Well, why is it dropped? To me, it looks like the biggest chance to make a proper Python app for Linux easily. How about KDE theming too if possible?

Cause development for GTK has been dropped. No use

Well, why is it dropped?

Because GTK 3 and 4 uses CSS for theming (at least if theming is an appropriate term in case of GTK 4), and GTK 2 officially reached its end of life.
TileGTK (the stuff this PR is about) uses GTK 2 pixmaps and renders them to a Tk drawable. And while GTK 2 themes still exist, it's not a good idea to implement a new feature using obsolete APIs.
Once CSS theming is added, we can try to do something with GTK themes, but it's definitely not an easy thing to implement.

How about KDE theming too if possible?

FYI: Tukaan already has that.
It uses a nice theme with the system color scheme on KDE Plasma 5 and above. For me, KDE integration is one of the most important features, as I use Plasma.
Once (in the mid-2000s) there was also an extension called Tile-Qt which made it possible to use Qt themes inside Tk, and thus make it look native on Plasma. I'm almost certain that this couldn't be done with the newest versions of Qt.

Why is the same comment repeated? Looks sus to me. Eyes on you, GitHub.
I see. Let's just hope CSS is supported on Python. Last time I heard of it, it was used on websites.

Why is the same comment repeated?

Is it?

Let's just hope CSS is supported on Python.

There's already a basic CSS parser in #71, so that isn't a problem. The harder thing is to actually draw the theme based on it ://

I don't see a duplicate comment. How exactly does Tk take in a theme? Could you not dynamically edit a ttk theme using css?

Could you not dynamically edit a ttk theme using css?

You can. The tricky thing in it is to dynamically edit the tile images that make up the theme. ttkbootstrap does this by using PIL, but my idea is that if Tukaan supported SVG images, we could create them on the fly and they could even have rounded corners, antialiasing, and they would be scalable.
Back when I made the Azure theme, I had the same idea, only with Base64 image data. Turns out, it's not at all simple to work with Base64 encoded PNG images, so I gave up XDD

What if you turn each wiget into a Canvas so you can style it in basicallay any way like CustomTkinter?

Then it would be just as buggy and slow as CustomTkinter. Or slower. I really don't want that.
#121 adds a Canvas widget that has the ability to draw onto a in-memory surface, and copy the drawing to a Tk image. My plan is to create another theming engine in addition to the SVG-based one, using this feature of the canvas widget.


Onboarding of new team members

Looking at the "Insights" tab on github, I see that speedscope is mostly a one-man-show up to now.
How do you want the future to be?
I am a member of some development related facebook groups.
Sometimes the question comes up: What can I do to learn or improve my skills?
Before I redirect young and motivated developers here, I want to talk to you.
Do you see some simple tasks which could get implemented by people who want to learn?
Of course this needs some time and especially patience from you.
What do you think?

@guettli There are a few tasks labeled "help wanted" that might be reasonable onboarding paths here: https://github.com/jlfwong/speedscope/issues?q=is%3Aopen+is%3Aissue+label%3A"help+wanted"
I don't have a clear plan for how much time I want to invest into code review for others for speedscope. Doing mentorship and code review is something I enjoy a lot in the course of my work, but I have a full-time at Figma doing software engineering where I already spend a lot of time doing that, and am not really interested in spending a lot of time outside of work hours doing that at the moment.
So, while I value and enjoy mentoring junior folks, I don't think speedscope is the right environment to direct them towards to learn. There are many other open source communities with better structures in place to ensure that people joining in get the support they need, so I'd suggest directing them there instead.
I'm open to accepting PRs to speedscope, though I think I'd rather keep it as mostly a "pet project" kind of status where I can change stuff fairly significantly whenever I'd like, rather than trying to accelerate it into a larger community project.
This might change in the future, but I think this is likely going to be my stance for the next year or so.


[BUG] Not compatible with gcc 11

Describe the bug
After recent update to gcc I am getting missing symbols when trying to load the .so generated by cython. In particular I am getting throw_bad_array_new_lengthv. After downgrading to gcc 10.2.0 the error disappears.
To Reproduce

install gcc 11.1.0
compile any cython code
??
error

Expected behavior
No missing symbols, in particular throw_bad_array_new_lengthv
Environment (please complete the following information):

OS: Linux
Python version 3.9.4
Cython version 3.07a

Works for me:
https://github.com/cython/cython/runs/2783184152?check_suite_focus=true
Maybe there's something wrong with your local installation?

I am confused is this for 0.29 branch? I am running the 3.07a branch atm.
gcc (GCC) 11.1.0
My setup file contains these flags:
compiler = "g++"
optFlag = "-Ofast"
cppv = "20"
flags = (
    f"{optFlag} -march=native -std=c++{cppv} -flto "
    "-frename-registers -funroll-loops -fno-wrapv "
    "-fopenmp-simd -fopenmp -unused-variable -Wno-unused "
    "-D_GLIBCXX_USE_CXX11_ABI=0 "
)```

Running a unittest on the package generates
ImportError: /home/casper/miniconda3/lib/python3.9/site-packages/plexsim-2.0-py3.9-linux-x86_64.egg/plexsim/models/potts.cpython-39-x86_64-linux-gnu.so: undefined symbol: _ZSt28__throw_bad_array_new_lengthv

It works with the master/3.0 branch. Haven't tried 0.29.x.

There is a similar issue happening on julia
https://github.com/JuliaLang/julia/issues/40703

Did you try it without the -D_GLIBCXX_USE_CXX11_ABI option?

Yes, I have also tried setting the compiler version with os.environ but no cigar so far.

temporary work-around found!
Setting
os.environ["CC"] = "g++-10"
os.environ["CXX"] = "g++-10"

and the modules work as expected. I think it is probably a gcc issue judging from the variety of dist having the issue.

Not sure if CXX does anything as it didn't work with just that flag.

No idea why it works in our CI setup then. Here's the output of the C++ tests run:
https://github.com/cython/cython/runs/2783184194?check_suite_focus=true
You can search the "Run CI" part of the logs for "buildenv" to see our system setup. And it definitely installs and uses gcc 11.1 further up.

Yeah could be that the ubuntu version is more stable(?) not sure why they would differ either. I updated last night and just now this issue appeared.

Could this comment be the answer https://github.com/stan-dev/pystan/issues/294#issuecomment-843634871 ?

Thanks @da-woods I saw this post too yesterday. I wasn't actually aware that conda packages compilers. The output of my extensions do not include any conda references however. I am looking into whether I can temporarily remove the compiler conda uses.

I believe this can be closed as it seems like a conda packed compiler issue - not a cython issue. For other peoples facing this issue look at the work-around above.

This is a real bug (as pystan's problem also demonstrates), but it is for conda.  Despite reading https://anaconda.org/contact/report I am still not sure where to file it.

Another workaround
Setting
export CPPFLAGS="-D_GLIBCXX_USECXX11_ABI=0"
I get it to compile with gcc11 (it uses the old ABI).

@joshua-cogliati-inl proposed a work around for this problem which works for me.

@joshua-cogliati-inl proposed a work around to use the system's shared object instead.

Wouldn't recommend making a symlink for this. Unless you really need the features of gcc11 I would just stick with 10 for now until conda updates its compiler.

Closing since it's not something that Cython can (or should) handle.


[PLT-7778] Pre-populate token/API endpoints for GitLab

Summary
Rather than having a user manually enter the Token and API endpoints for GitLab, they now just need to enter the site URL, and the Token, API, and Auth endpoints will be automatically generated.
Change has been made for both regular and enterprise versions.
Ticket Link
https://github.com/mattermost/mattermost-server/issues/7558
https://mattermost.atlassian.net/browse/PLT-7778
Checklist

[x] Has UI changes
[x] Includes text changes and localization file (.../i18n/en.json and .../webapp/i18n/en.json) updates

Setup Test Server label detected. Spinmint test server created if build succeeds (checks pass and no conflicts with base branch).

Spinmint test server destroyed

Setup Test Server label detected. Spinmint test server created if build succeeds (checks pass and no conflicts with base branch).

Spinmint test server created at: http://i-064e3edf340b28506.spinmint.com:8065/pr130
Test Account 1: Email<EMAIL_ADDRESS>| Password: passwd
Test Account 2: Email<EMAIL_ADDRESS>| Password: passwd
Instance ID: i-064e3edf340b28506

@jasonblais Will look into it!

Spinmint test server destroyed

Setup Test Server label detected. Spinmint test server created if build succeeds (checks pass and no conflicts with base branch).

Spinmint test server created at: http://i-0b9bd07cb25a6fc55.spinmint.com:8065/pr130
Test Account 1: Email<EMAIL_ADDRESS>| Password: passwd
Test Account 2: Email<EMAIL_ADDRESS>| Password: passwd
Instance ID: i-0b9bd07cb25a6fc55

Spinmint test server destroyed

Nice work @R-Wang97 ! There's an issue with our build system but as soon as that's resolved we'll merge this in


Settings: Breaking Changes

In light of a few issues brought up to us, we're considering changing some interfaces for Settings. This would be a breaking change, but would make the interface more predictable/consistent with other Klasa practices (such as optional parameters going inside an optional object).
To minimize the pain of having multiple breaking PRs back to back, we're going to create this issue, along with the settings branch to streamline this process. All of the PRs will be squashed into this branch, and once everything has been approved, the branch will be merged into master.
If there is anything you want to see changed about settings, fixed, removed, etc., comment down on this issue below. If it's something worth making, we'll put it on the list of proposed features for the branch.
Once this PR is made and merged, Settings will be blocked from any breaking changes for a month. This doesn't include daily upkeep or bug fixes that might crop up in that time span.
Planned Features

Make Settings use the Guild they are a part of for update() calls, where possible. Landed.
Settings event emitted on sync to update parent objects of settings retroactively. Landed.

Honorable Mentions (May or May not land)

Better/Optional Error Handling Landed.
Patch after successful update (all keys and values OK, db update OK) Landed.
Better way of fetching target && settings object.

For settings to emit an error - be that a client.emit('error') or a 'settingsUpdateError` - for things like incorrect paths.
An option when calling Settings#update to stop on the first error - if you are updating 10 keys, all of which need to be together, and 2 of them fail, it would be nicer then having to undo the 8 keys and try again.

Non-Cached Updates!
One of the biggest downsides to using SG is that it adds a caching layer to everything. If I have a table that I know is going to be massive and want to separate it without needing to cache it, I am forced to do direct to providers calls instead of using SG.
Possible Suggestion
.add('key', 'any', { array: true, configurable: false, cached: false });

@Skillz4Killz What kind of non-caching are you talking about. Your suggestion says you'd want to take a key away from a schema but what you write says to me you would like to not have the Settings instances cached.

@Skillz4Killz I assume you are wanting to do something heavy like per guild moderation cases.
My question is, if you are storing data, you are going to want to query and edit that data, not just add to that data. (otherwise, why keep it) So why do you need a special method added to add to that data, separate of getting/manipulating existing data that you would have to do with the provider anyway?
From a broad perspective, Providers are the complete tool for that job and adding another tool to only do a fraction of what's needed doesn't really make sense when you still have to fall back to Providers for other needs that can't be met from Settings.

@UnseenFaith @bdistin The only difference I have understood between SG and Providers is that SG adds a cache layer. My idea was to possibly have a property in the schema that tells SG when updating to skip the caching.
Currently, I am forced to use Providers instead of SG.
this.client.providers.default.update('guilds', msg.guild.id, { array: updatedArray })```

Instead of doing this because this will cache it
```js
msg.guild.settings.update('array', updatedArray);

This causes half my code to be in SG and half to be in providers.
@bdistin Yes Providers are great but adding a single option to SG that could eliminate all if not most of the Provider code and entirely use SG in my codebase would improve maintainability and consistency a lot. From my point of view, this decreases the number of tools required when working with Klasa.
P.S. I am really not sure on the best way to do this so feel free to ignore my suggestion if it is a bad way to do it. Just hoping for a way to use SG without cache instead of providers.

You can already achieve this by not adding that key itself to the schema. Same if you were using SQL, as SettingsGateway is never removing the columns from the database.
Adding that check would make the initial update take longer as it'll need to do an extra check for every key and for every entry, that's a very expensive operation.
Additionally, keys are stored in cache because we know their state from the database, it's most of the time, the same value. Having "uncached" keys would led to a very exotic behaviour that will only led to more issues. For example, we have an equality check algorithm that checks if any of the values have changed before we're updating the database.
The best is to not add them in the schema.

+1 for caching layer. The extra caching layer adds to a lot of RAM usage for large bots, and the cache becomes redundant when Providers such as RethinkDB already implement caching on their end.

Again: this is where you use providers directly.

Nope, id prefer having settings without caching because settings handles all the resolving for me.

Honestly, it doesn't matter what you prefer in this scenario. We've already had a talk externally and internally about this issue and the fact is is that it doesn't make any sense to add this to Settings.
You're already going to have to use Provider.get(), Provider.delete(), to deal with this data if you're not caching it, so why add a option to disable caching in SG when you should realistically be using Provider.update() in the first place? Not to mention that it's going to slow down your updating because of all of the internal checks SG does, when you could simply have a quick and easy Provider.update() call.
TL;DR; You already are using Provider methods to deal with this data outside of SG, so there's no reason to use SG to update when you're using Provider methods in the first place.

**Issue with Fetching Users &
Currently there is no way to fetch an user and await the db sync at the same time so there might be a race condition since the db entry isn't fetched yet and i try to update it it won't and drop the update when the db entry arrives.

Considering changing the semantics around .get() on Settings objects.
Rather then doing Auto-Resolve, we could easily let .get() fill the role.
const roleObject = message.guild.settings.get('some.path.to.role'); // full object
const roleID = message.guild.settings.some.path.to.role; // raw data (id in this scenario)

One problem with this would be there would be no automatic fetching since deserializing is a sync operation. You can easily circumvent this by changing which methods you use (just like you normally do currently)
// If you expect you might need to fetch a user
const user = await fetch(message.guild.settings.user);

Give your thoughts or opinions if you would like to see this or don't want to see this.

I would like to see a way to hook into the initialization of Settings objects. Currently, when you pseudo create the Settings instances in constructors there is really no way to know when that object has been updated with data from the database. (the update event is only when the settings have been updated cross-shard from what I can tell)
Perhaps something such as Settings#init(callback), which will call the callback when the data from the database has updated the Settings values. Open to other ideas of how to accomplish this, just providing an example solution with no thought about how it affects the bigger picture.

Suggestion v2.0: Make the JSON provider's output folder configurable like the ETF one

I'd like to claim the above suggestion and make it possible pun not intended

So I have several ideas for the SG as follows:

Stabilize the SG when it comes to objects. The SG becomes very unstable and unpredictable when using objects.

When using a non-array type "any", often, updates to keys in the SG will reflect in the cache, but upon bot reboot, the state of that key reverts back to what it had previously; updates do not get properly saved. This could potentially be a Provider issue (I'm using rethinkdb) rather than an SG issue, but something to investigate.
When using an array type "any", adding objects to the array causes unexpected behavior. For instance, let's say the array is empty. I add {1: "stuff"}. This correctly gets added to key 0 of the array. But when I then add {2: "more stuff"}, what ends up happening is key 0 of the array remains the same, but key 1 ends up containing {1: "stuff", 2: "more stuff"} when it should only contain {2: "more stuff"} (since key 0 already has the other object). Furthermore, sometimes an array key will get overwritten, or dropped upon bot reboot.
Sometimes when using objects, upon bot reboot, key 0 of the object or array becomes a circular. This behavior was too random for me to be able to pinpoint steps to reproduce.
It is not easy / clear how to delete pieces of an object, or objects from an array, via Settings.update. And doing so is also unpredictable. Make a reliable standard for how one can call update to delete a key from an object, or an object from an array.
TL;DR: SG needs to be optimized so we can efficiently and reliably use objects in it without having to resort to creating a bunch of folders / folder keys to get stable operation (and folders / folder keys do not allow for dynamic schemas like objects do).

Probably not going to happen, but bring back async SG; or at least allow a way for changing the schema on the fly. This made it convenient when I needed to manipulate the data structure of my SG without relying on unpredictable objects as mentioned in 1.

Stabilize the SG type "any". I've noticed often the type will change itself, resulting in Settings.update calls to sometimes fail. Ensure that once one item is added, the key is type-strict to the type of that item until the key is reset or completely emptied.

Perhaps add the ability to set callbacks on certain keys... code that runs on update when something is added or removed. For instance, let's say I add or remove a role to/from a guild key levelRoles. The callback can be called which would contain code to update everyone's level-based roles automatically whenever levelRoles is changed. That way, I don't have to re-use code or import utilities everywhere an update call to levelRoles is made.

A minor improvement: just find the index, and you don't need to find the object then since you already have the index it's at.

A map/collection type would be useful for that, however, so you don't need to use .find but could just .get(a.id)

@kyranet

I highly suggest to give the settings branch a shot
I'll check it out when I have a next moment to work more on my bot.

You're going to need to give me reproducible code for this
Noted. I'll compile the code together for you after my finals are complete in a couple weeks.

Honestly your fault for giving SG circular objects
Uh... I'm not giving SG circular objects... they're just randomly appearing sometimes on bot reboot?? Honestly developer-wise the JSON.stringify method is not intuitive; we shouldn't have to stringify objects passed as a parameter to an update function; your code should be able to handle objects. It would be more intuitive to fix this so objects can be passed as a parameter for adding/manipulating data.

May I have your definition of optimization?
I literally defined what I meant after mentioning SG needs to be optimized.

Not happening, SQL databases demand the columns to exist, and the schema adding is synchronous, not to mention it adds a huge CPU spike to update every single entry, and makes SG's internals more complicated.

I can understand for some databases/providers this is true, but for others like MongoDB, it's schema-less.

What do you mean?
Example:

Client.defaultGuildSchema
   .add('levelRoles', 'role', {array: true}, (data, action, result) => callbackStuff());

With a callback defined, every time an update is made to guild.settings.levelRoles, it will call that callback with the data that was provided, what action (add/remove/edit) the SG took, and the result (essentially the return of guild.settings.update containing errors and/or updated);
@Skillz4Killz Thank you! That's good info to know. It's unintuitive to have to do that (though I suppose when it comes to arrays, there isn't really much you can do other than array replacement), but at least it's something.
I really like @tech6hutch 's suggestion. Why not incorporate collections into SG?

The last thing exists in the form of the settingsUpdate event

A map/collection type could actually be done now. Serializing would involve turning it into an array of entries ([[k1, v1], [k2, v2], etc.]), and deserializing would take entries and pass them to new Map/Collection.

I can understand for some databases/providers this is true, but for others like MongoDB, it's schema-less.

The entire purpose of SG is to seamlessly integrate with each provider/database in the same exact way. That keeps the interface predictable and understandable. Changing it to the way you theorize would cause more headaches than actual good.
That being said, on my settings branch, you now have the opportunity to overwrite core gateways, so if someone does not fit your taste, feel free to change it however you like.

+1 here to remove the array option and abstract it to allow other data structures such as maps and sets. I believe @UnseenFaith had a prototype of this, but I not longer have the code (nor we could find it last time we brought it).
Many of us definitely need this, adding and removing tuples from the array structure is very hard, as Skillz mentioned here, and most of the times we have a dataset that's an array of tuples.
If we abstracted array to dataset, we'd be able to add elements like this:
await settings.update('map', 'key', 'value');

As the Dataset piece will grab the key and value and do the operations afterwards. Then we'd be able to remove it like this:
await settings.update('map', 'key');

This is far much more convenient than an array of tuples, from Array#find being O(n) to Map#get being O(1), it gets us a drastical performance boost in our bot's runtime, where scalability matters. A usecase for the map dataset would be numerous, and the best example being per-guild tags and triggers.
This feature has been requested by some people, and by me for over a year, I even planned to implement this in SG someday, but it needs to be discussed more and try to find any problem with this proposal.

P.S: @Lovinity your callback idea has many flaws, plus you can use SchemaPiece.filter. SG doesn't need to be optimized, you're confusing terms here. Please try to get reproducible code for the bug you found, and please feel free to try out the settings branch to check if those bugs persist.

@kyranet With all due respect, I am not confusing the term "optimize". Optimize literally means to make the best use of a given situation or resource. When I say optimize it for objects, I mean make the best use of those who need to store objects in the SG by addressing the abnormal behavior that occurs when using objects.
However, the above becomes completely void anyway if other datasets can be used in the SG, as is being proposed. Huge +1 for that.
How would filter do the same thing as callback? Filter is meant to be executed before the operation. I'm talking about a callback that happens after the operation. And what are the flaws you speak of? I'll get the code when I can. I have a job and also attend full time classes. I ask for your patience. I will need to set aside time to write up a piece of code that exploits the bug. I have already discarded the previous code I was using that exposed the bug (and I never committed it to github), so I no longer have that and will need to re-write it.

Filter is run after the parsing (serializers), and before giving Settings greenlight to update.
One of the flaws of the callback system is the lack of serializability and deserializability, not to mention the extra overhead, and that result is not available while updating as (at least in the settings branch):
Resolves the overloads -> Resolves all the paths to SchemaPiece instances -> Burst-parse all key-values -> Patch Settings instance -> Emit events -> Resolve.
The resolving (and when filter is called) is during the burst-parse, so that's not possible.

@kyranet @UnseenFaith I think what would be really cool to keep a lot of consistency with SG and a lot easier is by having the ability to make dealing with arrays holding objects automated similar to other updates.
Editing a normal key:
await settings.update('key', value)

Editing an array with non-objects (automatically checks if it should add or remove)
await settings.update('key', value)

// If need guild objects just pass guild param. Still very simple
await settings.update('key', value, guild)

Editing an array with objects
// Get the exact object from inside the array
const object = settings.array.find(a => a.id === id);
// Get the exact index of that object from inside that array
const index = settings.array.findIndex(a => a.id === id);
// To update we do this where
await settings.update('array', object, { arrayPosition: index });

There is a really massive difference and it gets really quite annoying to have to deal with this. I would love to see SG handle this better assuming its possible.
I would try and see if you could do this check inside the update function. Something similar to the below. Please note my way might not be the best way but it does show that it is possible for SG to handle this.
// Assuming this is the settings.update() function add a check if its an object
if (typeof value === 'object') {
	// If no { action: 'add' } is added so do this by default
	if (!options.action) {
		let needToAddValue = true;
		// Maybe even require that objects have `.id` properties
		const index = guild.settings[key].findIndex(a => a.x === value.x);
		if (index >= 0) needToAddValue = false;
		// To update we do this where
		if (needToAddValue) {} // Add this object
		else {
			// If the objects look the exact same remove it
			if (value === guild.settings[key][index]) {} // remove this object
			// If the objects are different in any way even 1 property replace it
			else {} // Replace this object
		}
	}
}

This would allow every user to be able to update arrays with objects as simple updating anything else.
await settings.update('key', value, guild)

I already plan to have it that way when I start working on the internal Map/Set/Array support. Thanks for elaborating though.

To make datasets much easier, I'm working on a rewrite for QueryBuilder so it's easier to read, understand, and extend, for the new elements we'll probably need to insert, in #545.

Good morning, and my merriest wishes for a codeful 2019 🎄
It has been almost 3 weeks since this issue-"RFC" has had any activity, and I'd like to question the OPs (Faith & kyra), what's the status on this?

In reference to  #614
Currently, arrays in SG act as sets and not a typical array, and implicitly assume that you don't want any duplicate items added to it, and that if you try to add an item thats already in it - that you want that item removed.
I'd propose either:

(My least favorite) Add a way to forcibly add items into the array, maybe { action: 'force' }
Remove any implicit behaviour, and make the behavior of arrays be changed to match closely the behavior of actual JS arrays, and it becomes the developers responsibility to use conditional logic to check the array before updating it, for example:

const valueToAdd = "someValue";
const currentArray = msg.author.settings.get("arrayKey");
 if (currentArray.includes(valueToAdd)) throw "That value is already in the array!";
else msg.author.settings.update("arrayKey", valueToAdd, { action: 'add' });

Additionally (and alternatively to adding a new "Set" type to SG), the developer could create a filter function (SchemaPiece#filter) which enforces this for a particular array key. (or handles it in whatever way they want).
In the case no action is passed, (msg.author.settings.update("arrayKey", valueToAdd); ), I think I'd prefer it throws an error if you try to update an array without telling SG what your intention for that value is.

There's force: true if that's what you want, @gc, but I'm not sure it accomplishes what you want, I have to check though.

@UnseenFaith make throwOnError enabled by default #708

@UnseenFaith make throwOnError enabled by default #708

Fixed in #828.


Typo fixes

Thanks to DevOps including a typo checker in actions, we have a better QA layer. This responds to hits.

FFS -- I still can't pick a repo!


fix the remaining args are lost when running on iterm

pack all of the arguments as one command
Related issue: https://github.com/gerardroche/sublime-phpunit/issues/86#issuecomment-466643159

I have no way of testing this but it lgtm.


Cargo fmt doesn't work on stable compiler

I' trying to use rustfmt on stable-x86_64-pc-windows-gnu.
I added component via rustup component add rustfmt-preview.
cargo fmt didn't work for some reason, however, I have found rustfmt.exe itself.
Now when I run it it just hangs:
PS C:\Users\Alex\Documents\Rust\cv-rs> &"C:\Users\Alex\.rustup\toolchains\stable-x86_64-pc-windows-gnu\bin\rustfmt.exe"
-V
0.2.16-nightly (2bfcadf8 2017-11-21)
PS C:\Users\Alex\Documents\Rust\cv-rs> &"C:\Users\Alex\.rustup\toolchains\stable-x86_64-pc-windows-gnu\bin\rustfmt.exe"
-v
.. no output here for 1 hour, then I just closed the window

Maybe it happens because I used to use following feature

Alternatively, you can use cargo fmt to format all binary and library targets of your crate.

How can I fix it? I'd like to run rustfmt on stable compiler. I can write my own script that would search for files in directory and run rustfmt, but probably there is some better way.

It's like even if your default toolchain is stable, you are telling the command to use nightly over the stable while executing this.


JavaScript assignment should infer function parameter types from assigned values's signature

From https://github.com/Microsoft/vscode/issues/33824
TypeScript Version:  2.5.2
Code
For the javascript
const img = document.createElement('img')
img.onclick = function(e) {

}

Expected behavior:
e is of type MouseEvent
Actual behavior:
e is of type any
Since there is no explicit jsdoc here, I believe e should be inferred to be of type MouseEvent. This is what happens in TS files with the same content
I believe this problem is similar to #18115

Seems fixed in latest.


build: move ci cache flags to bazelrc

Sorry to keep changing this, but we've settled on putting the cache flags in bazelrc in rules-template since we realized that it supports ~ paths. Feel free to keep or close as this doesn't change anything functionally.

This one feels right.

It looks like there was an http 404 in the ci build, but I don't think it was anything caused by my changes. Are you able to re-trigger the ci for me?

It looks like there was an http 404 in the ci build, but I don't think it was anything caused by my changes. Are you able to re-trigger the ci for me?

sure thing.


Trying to intercept the raw response body produces invalid context error

What versions are you running?

$ go list -m github.com/chromedp/chromedp
github.com/chromedp/chromedp v0.5.4-0.20200921161456-b56cd66f9ceb
$ google-chrome --version
Google Chrome 86.0.4240.183
$ go version
go version go1.13.6 darwin/amd64

What did you do? Include clear steps.
I wrote the code below in an attempt to access the raw response body for a request to https://example.com/. It's mostly based on this example from the docs.
package main

import (
	"context"
	"fmt"

	"github.com/chromedp/cdproto/network"
	"github.com/chromedp/chromedp"
)

func main() {
	ctx, cancel := chromedp.NewContext(context.Background())

	defer cancel()

	chromedp.ListenTarget(ctx, func(ev interface{}) {
		if event, ok := ev.(*network.EventResponseReceived); ok {
			body := network.GetResponseBody(event.RequestID)

			data, err := body.Do(ctx)

			fmt.Println(err)
			fmt.Println(string(data))
		}
	})

	err := chromedp.Run(ctx, chromedp.Navigate("https://example.com/"))

	if err != nil {
		panic(err)
	}
}

What did you expect to see?
I expected the code to work and print the raw response body to the console.
What did you see instead?
Instead, the line data, err := body.Do(ctx) produces an invalid context error.
I tried looking online, but I couldn't find many examples for what I'm trying to do here, so I might be missing something obvious.

I think you need to use chromedp.Run:
chromedp.ListenTarget(ctx, func(ev interface{}) {
	if event, ok := ev.(*network.EventResponseReceived); ok {
		go func() {
			var data []byte
			if err := chromedp.Run(ctx, chromedp.ActionFunc(func(ctx context.Context) error {
				var err error
				data, err = network.GetResponseBody(event.RequestID).Do(ctx)
				if err != nil {
					return err
				}
				return nil
			})); err != nil {
				fmt.Println("err ", err)
			}
			fmt.Println(string(data))
		}()
	}
})

I think you need to use chromedp.Run:
chromedp.ListenTarget(ctx, func(ev interface{}) {
	if event, ok := ev.(*network.EventResponseReceived); ok {
		go func() {
			var data []byte
			if err := chromedp.Run(ctx, chromedp.ActionFunc(func(ctx context.Context) error {
				var err error
				data, err = network.GetResponseBody(event.RequestID).Do(ctx)
				if err != nil {
					return err
				}
				return nil
			})); err != nil {
				fmt.Println("err ", err)
			}
			fmt.Println(string(data))
		}()
	}
})

That gives me the following error: No data found for resource with given identifier (-32000).

bump up.  I got same error for this one. Any update?

No data found for resource with given identifier (-32000).

bump up. I got same error for this one. Any update?

No data found for resource with given identifier (-32000).

I've since found out that you also need to wait for EventLoadingFinished in addition to EventResponseReceived. Here is some (very bad) code that works:
package main

import (
	"context"
	"fmt"

	"github.com/chromedp/cdproto/network"
	"github.com/chromedp/chromedp"
)

func main() {
	ctx, cancel := chromedp.NewContext(context.Background())

	done := make(chan bool)

	var id network.RequestID

	chromedp.ListenTarget(ctx, func(ev interface{}) {
		if event, ok := ev.(*network.EventLoadingFinished); ok {
			if id != "" && event.RequestID == id {
				go func(done chan bool) {
					defer cancel()

					var data []byte
					if err := chromedp.Run(ctx, chromedp.ActionFunc(func(ctx context.Context) error {
						var err error
						data, err = network.GetResponseBody(id).Do(ctx)
						if err != nil {
							return err
						}
						return nil
					})); err != nil {
						fmt.Println("err ", err)
					}
					fmt.Println(string(data))

					done<- true
				}(done)
			}
		}

		if event, ok := ev.(*network.EventResponseReceived); ok {
			id = event.RequestID
		}
	})

	if err := chromedp.Run(ctx, chromedp.Navigate("https://example.com")); err != nil {
		panic(err)
	}

	<-done
}

@njkleiner
Thanks, its working. As long its work , its okay. :+1:


WIP

I've committed a few files that shouldn't be there so that you guys can try out and test too. We should delete test_k8s_crio and test.sh if we ever want to merge this upstream.
The packer doesn't build yet there's just an error on the cleanup part

X-referencing https://github.com/huggingface/spaces-app-manager/issues/83

Don't we need to add a /etc/crio/crio.conf file ? (from here)

Don't we need to add a /etc/crio/crio.conf file ? (from here)

For now I think there's one generated by default when running sudo make install.config, but it may indeed be better to have that one copied indeed.

Don't we need to add a /etc/crio/crio.conf file ? (from here)

For now I think there's one generated by default when running sudo make install.config, but it may indeed be better to have that one copied.

Ok,  so let's keep things simple and only use a custom config if needed


Update pl.json [1485]

Update for the pl.json, adding new lines, and make sure it is the same as current en.json. Up to date: 28/05/2024

Please check if the PR fulfills these requirements

[OK] The commit message follows our guidelines
[OK] Tests for the changes have been added (for bug fixes / features)
[OK] Docs have been added / updated (for bug fixes / features)

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Update for pl.json

What is the current behavior? (You can also link to an open issue here)
Missing lines

What is the new behavior (if this is a feature change)?
Added new lines

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
No.

Other information:
Read comment please.

Line 441: "FIELD_CHARACTER": "(*)Postać",
What is this or where is this? And what it does?
Is this CHARACTER pointing to hero/player/user/sprite,
or this is for TEXT?
Depending on what it is, there has to be different translation for it,
but I would need context (will wait then, and for now I am leaving this as "(*)" ).

Hey @ReptiIe FIELD_CHARACTER is referring to TEXT, I actually think the only place it's used is for this tooltip when typing #Variable in dialogue events allowing you to treat the variable as an ASCII character code.

which just shows up in game like

Oh! If it is referring to the TEXT then got it, I had already change it into "SYMBOL" which is better term in this case.
Thank you for information!


Feature: Tokenization of land and estate ownership

Initial implementation of the land tokenization feature described in Issue #161.
Here is a list of future improvements

Currently, tokenization is decided by a boolean parameter for each call. Perhaps  this could be replaced by 2 parameters (one for land tokenization, and another for estate tokenization) for every metaverse, that could be enabled via local governance
Estate tokens attributes are currently only its metaverse id and estate id . Perhaps this could be updated to support each land part of the estate  but this will require burning the old estate token and minting a new one every time land is added or removed from an estate
Add implementation for creating predefined token classes for land and estate (currently the latest available class id is used)

In addition to this, I still need to merge the implementation with the latest master branch and refactor the code afterwards. I plan to finish this later today. Let me know if anything else needs to be changed or improved.  @justinphamnz

Thanks @Alek. Reviewing now


Shared Storage guidance (fdisk warns about GPT?)

Hi.
Maybe this is because my SD came pre-formatted, but after I dd the rpi4 shared.disk-image.img to my SD Card... I figured I'd fire up fdisk to add a traditional /boot and /root for a shared media install.
However, fdisk gave me this warning, and I'm not actually sure what I want to do here:
/home/cole/downloads/raspberryPi-aarch64-2021.04-002> sudo dd if=shared.disk-image.img of=/dev/sdb bs=4M; sudo sync; sync
8+1 records in
8+1 records out
34620416 bytes (35 MB, 33 MiB) copied, 0.018304 s, 1.9 GB/s

/home/cole/downloads/raspberryPi-aarch64-2021.04-002> sudo fdisk /dev/sdb

Welcome to fdisk (util-linux 2.36.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

The backup GPT table is not on the end of the device. This problem will be corrected by write.
A hybrid GPT was detected. You have to sync the hybrid MBR manually (expert command 'M').

Any tips? Should I ignore it? Should I have "wiped" the sd card more thoroughly?

The backup GPT table is not on the end of the device

That's expected, as the image wasn't the exact size of your storage medium.
Not sure about the second (unrelated AFAICT) message about the hybrid MBR; I find fdisk quite naggy and needlessly hard to use personally. Though it sounds like it means "if you edit the GPT the MBR data will not be synchronized", which is fine as long as you don't edit the size or location of the Tow-Boot partition.

So is this a matter of "documenting how to get from flashing the shared storage to installing the rest of the OS"?

resizing the partition to the physical size
making partitions for the OS you want to install (and expectations w.r.t. extlinux-compatible bootloader config)


Disable -Wno-error=parentheses on gcc to fix torch-mlir build.

Test run here: https://github.com/iree-org/iree/actions/runs/11689400528
Working around the build break reported here:

https://github.com/iree-org/iree/pull/18897#issuecomment-2451833463
https://github.com/llvm/torch-mlir/pull/3813#discussion_r1826102619

Logs:
 FAILED: compiler/plugins/input/Torch/torch-mlir/CMakeFiles/iree_compiler_plugins_input_Torch_torch-mlir_TorchDialectIR.objects.dir/__/__/__/__/__/third_party/torch-mlir/lib/Dialect/Torch/IR/TorchOps.cpp.o
/usr/local/bin/ccache /usr/bin/g++-9  -I/__w/iree/iree -I/__w/iree/iree/build-gcc -I/__w/iree/iree/third_party/torch-mlir/include -I/__w/iree/iree/compiler/plugins/input/Torch -I/__w/iree/iree/build-gcc/compiler/plugins/input/Torch -I/__w/iree/iree/third_party/llvm-project/llvm/include -I/__w/iree/iree/build-gcc/llvm-project/include -I/__w/iree/iree/third_party/llvm-project/mlir/include -I/__w/iree/iree/build-gcc/llvm-project/tools/mlir/include -I/__w/iree/iree/third_party/llvm-project/lld/include -I/__w/iree/iree/build-gcc/llvm-project/tools/lld/include -O3  -fPIC -Wno-deprecated-declarations -fvisibility=hidden -fno-rtti -fno-exceptions -Wall -Werror -Wno-error=deprecated-declarations -Wno-address -Wno-address-of-packed-member -Wno-comment -Wno-format-zero-length -Wno-uninitialized -Wno-overloaded-virtual -Wno-invalid-offsetof -Wno-sign-compare -Wno-unused-function -Wno-unknown-pragmas -Wno-unused-but-set-variable -Wno-misleading-indentation -fmacro-prefix-map=/__w/iree/iree=iree -std=gnu++17 -MD -MT compiler/plugins/input/Torch/torch-mlir/CMakeFiles/iree_compiler_plugins_input_Torch_torch-mlir_TorchDialectIR.objects.dir/__/__/__/__/__/third_party/torch-mlir/lib/Dialect/Torch/IR/TorchOps.cpp.o -MF compiler/plugins/input/Torch/torch-mlir/CMakeFiles/iree_compiler_plugins_input_Torch_torch-mlir_TorchDialectIR.objects.dir/__/__/__/__/__/third_party/torch-mlir/lib/Dialect/Torch/IR/TorchOps.cpp.o.d -o compiler/plugins/input/Torch/torch-mlir/CMakeFiles/iree_compiler_plugins_input_Torch_torch-mlir_TorchDialectIR.objects.dir/__/__/__/__/__/third_party/torch-mlir/lib/Dialect/Torch/IR/TorchOps.cpp.o -c /__w/iree/iree/third_party/torch-mlir/lib/Dialect/Torch/IR/TorchOps.cpp
In file included from /usr/include/c++/9/cassert:44,
                 from /__w/iree/iree/third_party/llvm-project/llvm/include/llvm/Support/TypeSize.h:22,
                 from /__w/iree/iree/third_party/llvm-project/mlir/include/mlir/Interfaces/DataLayoutInterfaces.h:21,
                 from /__w/iree/iree/third_party/llvm-project/mlir/include/mlir/IR/BuiltinOps.h:21,
                 from /__w/iree/iree/third_party/llvm-project/mlir/include/mlir/IR/PatternMatch.h:13,
                 from /__w/iree/iree/third_party/torch-mlir/include/torch-mlir/Dialect/Torch/Utils/Utils.h:12,
                 from /__w/iree/iree/third_party/torch-mlir/lib/Dialect/Torch/IR/TorchOps.cpp:11:
/__w/iree/iree/third_party/torch-mlir/lib/Dialect/Torch/IR/TorchOps.cpp: In member function 'mlir::OpFoldResult mlir::torch::Torch::AtenSliceTensorOp::fold(mlir::torch::Torch::AtenSliceTensorOp::FoldAdaptor)':
/__w/iree/iree/third_party/torch-mlir/lib/Dialect/Torch/IR/TorchOps.cpp:4005:42: error: suggest parentheses around '&&' within '||' [-Werror=parentheses]
 4005 |            (stride < 0 && begin > limit) &&
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
 4006 |                "aten.slice.Tensor iteration args are statically invalid.");
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors

Ping? The nightly GCC build is still failing: https://github.com/iree-org/iree/actions/workflows/ci_linux_x64_gcc.yml?query=branch%3Amain

https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wparentheses -- the reasoning is good - if every line of code in torch was authored by only C/C++ experts who could recite all the rules on demand that'd be one thing, but I can't do that and definitely don't want it disabled in our project :)
if you can scope it to just torch-mlir on our side somehow that'd be ok (because then it's torch-mlir's problem - bad for them, but we do the same thing with stablehlo I thought)

Okay, I left another comment on the upstream change.
Scoping to just torch-mlir would be nice... just not sure right now how to do that. Here's the CMake file: https://github.com/iree-org/iree/blob/main/compiler/plugins/input/Torch/torch-mlir/CMakeLists.txt that uses iree_cc_library, which pulls in our standard flags.

https://github.com/iree-org/iree/blob/e4f396082f64072ed2d594494e6197f7997c19fb/compiler/plugins/input/Torch/torch-mlir/CMakeLists.txt#L10 works like you'd need (just add if GCC) - those apply to the file and any nested files

Trying that: https://github.com/iree-org/iree/actions/runs/11714927110

That wasn't detecting gcc. Trying another approach: https://github.com/iree-org/iree/actions/runs/11716788601

Test run passed. PTAL?


changed camel_case.rs to a regex based function

It retains the String input and output of the function, might change it to &str if needed

This looks very good 👍. Once the comments are resolved I'll merge.


Hoverfly Using Upstream Proxy Cannot Open Internal Websites

Description of the bug

When laptop is not connected with VPN

When starting the hoverfly with arg "--upstream-proxy", both internal & external websites cannot be accessed.
When starting the hoverfly without proxy argument, the internal websites cannot be accessed, but external ones can.

When laptop is connected with VPN

When starting the hoverfly with arg "--upstream-proxy", the internal websites cannot be accessed but external ones can.
When starting the hoverfly without proxy argument, the internal websites can be accessed, but external ones can not.
Internal websites -- Websites protected by the upstream proxy.
External websites --  Public websites like www.google.com
Steps to reproduce the issue

Connect to a company sepcific VPN if possible

hoverctl start --cors --disable-tls --upstream-proxy <company_proxy>  (w/ proxy)
hoverctl start --cors --disable-tls  (w/o proxy)

hoverctl mode capture

open --new -a 'Google Chrome' --args --proxy-server=localhost:8500 --user-data-dir="$HOME/Library/Application Support/Google/Chrome-Hoverfly" --no-first-run --no-default-browser-check

Type in URL on browser

Observed result
Overall Results Summary

Hoverfly error messages seen (If none, say none)
Hoverfly Error!

There was an error when forwarding the request to the intended destination

Got error: Get "https://www.google.com/": dial tcp [<ip_address>]:443: connect: network is unreachable

If possible, add screenshots to help explain your problem

Expected result
When starting the hoverfly with arg "--upstream-proxy", both internal & external websites can be accessed.
When starting the hoverfly without proxy argument, the internal websites can not be accessed, but external ones can.
Additional relevant information

Hoverfly version: v1.3.2
Anything that might help us to diagnose the problem
Mac OS Catalina

It sounds like the internal site requires VPN to access directly without upstream proxy, while external site requires going through your company's proxy in the VPN. It's probably how your company network policy is setup. Could you confirm the behaviour without hoverfly?

If I start Chrome without hoverfly proxy server,

When connected to VPN, then I can access both internal and external websites.
When not connected to VPN, then I can only access external websites.


Add log to show chunk retrieved and written when GetBlobOperationError

Add log to show chunk retrieved and written when GetBlobOperationError happens

Codecov Report

Merging #1849 (f5a5949) into master (35d7c72) will decrease coverage by 58.78%.
The diff coverage is 16.12%.

:exclamation: Current head f5a5949 differs from pull request most recent head af57bf0.

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

Addressed @cgtz comment. Ready for review @jsjtzyy


broken link to latest release

Hello - your link in the readme doesn't seem to work:
https://github.com/stonesam92/ScreenSnapper/blob/master/stonesam92/ScreenSnapper/releases/download/v1.0.0/ScreenSnapper.zip
It should be something like:
https://github.com/stonesam92/ScreenSnapper/releases/download/v1.0.0/ScreenSnapper.zip
thanks

corecct link works


Flutter Quill does not support "null safety"

I have been facing issue, when I run flutter Quill on my flutter web app

Please shift your package to null safety so that we can use it
Thank you For Helping

We will need help
Pull request is welcome


dokku_clone: add version parameter?

Description of problem
So far, the dokku_clone module supports only app and repository parameters.
Providing a path to a git repository will check out the default branch, thus making deploys not reproducible.
Expected Results
I didn't try whether one can pass a URL to a specific commit/tag (maybe that could also work?), but it seems to me that the usual approach in ansible is a version parameter (see git module).

Last argument is here: https://github.com/crisward/dokku-clone#cloning-branches-and-tags


Mobile Authenticator

Can´t trade! There is no Mobile Authenticator implementation! Please Add.

2FA is supported, but Escrow bypasses are not. Are you referring to the trade escrow?

Yes, you are referring to escrow, never mind. I'm working on implementing https://github.com/geel9/SteamAuth


How to Identify version of Unity and VRTK to use with IATK at any point in time?

Hi. Is there a way to know which version of Unity and VRTK to use with IATK for any given commit?
For example, in the excellent talk posted on vimeo, I believe the Unity version was 2017 and VRTK was presumably an earlier version at that time. However, both VRTK and IATK (and Unity) are constantly moving forward. Is there a README or text file within the IATK repository that provides the current versions of VRTK and Unity (used at the time of the commit)?  That way if somebody clones the IATK repo at any given time, they will know which version of Unity and VRTK to use.
Thank you.

The file located at "ProjectSettings/ProjectVersion.txt" contains the current Unity version used.
As for VRTK from what I can tell most of the integration needs to be added after downloading the repository and aren't actually included. So, you should be able to use any VRTK version you want to, as you'll need to add the integrations in yourself anyway.

Hello,
I just tested IATK + Unity 2019.2.8 + VRTK 4 and it doesnt seem to work. I got multiple compiling error on the AR-Core package.

The latest version in master should be working with "Unity 2021.3.4f1". Also master now has integrated support for VRTK v4 meaning you don't need to install VRTK yourself. To get the project working just download the repo, install the MapBox plugin (link given under "requirements" section of README.md).
An example scene called "VRTK v4 Scene" can be used to see a fully working environment that uses IATK data visualisations that can be interacted with using any OpenXR compatible headset. There is also now a step by step tutorial on how to get the "VRTK v4 Scene" working: VR_TUTORIAL.md.


List of all signal areas

Can you please add a list of all signal areas available?

You can find all the zone mapping correspondences in this folder:

You can get the zones at this address: https://q.daskeyboard.com/api/1.0/device_definitions

Why did you delete your previous comment with the txt?


Notification text cannot be read when the window is resized down

VS Code version: Code - Insiders 1.21.0-insider (1a84a882737184488d965426747a05474f54a759, 2018-02-27T06:17:53.785Z)
OS version: Linux x64 4.13.0-36-generic

#44319
Repro:

Open a long notification
Resize the window to be very narrow, the text is cut off

vscode.window.showInformationMessage('Veniam ullamco reprehenderit laboris anim labore cupidatat sunt. Aliqua aliquip laboris minim irure commodo ea nostrud amet. Eu cupidatat occaecat magna velit sit cupidatat ex eiusmod. Ex deserunt ad ut do elit nostrud pariatur est dolore anim non. Non dolore non consectetur esse.', 'e', 'f');

This is very hard for me to solve because I cannot change the height of list items dynamically while the item is visible unless I would remove and add it again.
One way out would be to always reserve a fixed height for the text and then let it have scrollbars...
/cc @joaomoreno

@bpasero Yup there is no current way to do it unless you resplice the expanded elements in the list. Maybe it's not that expensive, can you try it?

I can try, not for Feb though.