Can't get rboot-sample to work

Hi, tried the rboot-example project but can't get it to work. Successfully compiled esptool2, rboot and the rboot-sample, copied the necessary rboot files to the project flashed an ESP-01. I have tried and ESP with 8Mb (no modification to the linker scripts) and 4Mb (modified second linker script to reflect 4Mb memory), but after flashing nothing happens on the serial port. I know the modules are fine (other SW works). What am i missing here. I have tried SDK 1.3.0 and 1.4.1, same results. I'm obviously doing something wrong, but because there are no errors, I can't figure out what. I really love the concept of rboot and want to use it in my future OTA projects. Please help

You should always get some output from the device, even just the bit before rBoot starts. If you are seeing nothing that suggests there is a problem connecting before rBoot and so you aren't seeing the rBoot messages. Are you connected with a baud rate of 74880 when the device starts? If it's all happening too fast for you to connect, try uncommenting the delay line in rboot.c to slow the boot down.


Suggestion: Include a way to stub a specific authentication schema

Background: I have an API where the endpoints have a specific authentication schema specified via the Authorize attribute, e.g. [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)] because the project supports multiple different auth schemas.
Unfortunately, that means the built-in AuthenticationStub in Alba doesn't work, since it replaces the existing schemas with the "Test" schema.
The workaround I ended up with is the following type, which you may want to include in Alba, or you may want to do something else that achieves the same goal:
public sealed class AuthenticationSchemaStub : AuthenticationExtensionBase, IAlbaExtension
{
    private const string TestSchemaName = "Test";

    internal string OverrideSchemaTargetName { get; }

    public AuthenticationSchemaStub(string overrideSchemaTargetName)
        => OverrideSchemaTargetName = overrideSchemaTargetName;

    void IDisposable.Dispose()
    {
        // nothing to dispose
    }

    ValueTask IAsyncDisposable.DisposeAsync() => ValueTask.CompletedTask;

    Task IAlbaExtension.Start(IAlbaHost host) => Task.CompletedTask;

    IHostBuilder IAlbaExtension.Configure(IHostBuilder builder)
    {
        return builder.ConfigureServices(services =>
        {
            services.AddSingleton(this);
            services.AddTransient<IAuthenticationSchemeProvider, MockSchemeProvider>();
        });
    }

    internal ClaimsPrincipal BuildPrincipal(HttpContext context)
    {
        var claims = allClaims(context);
        var identity = new ClaimsIdentity(claims, TestSchemaName);
        var principal = new ClaimsPrincipal(identity);
        return principal;
    }

    private sealed class MockSchemeProvider : AuthenticationSchemeProvider
    {
        private readonly string overrideSchemaTargetName;

        public MockSchemeProvider(AuthenticationSchemaStub authSchemaStub, IOptions<AuthenticationOptions> options)
            : base(options)
        {
            overrideSchemaTargetName = authSchemaStub.OverrideSchemaTargetName;
        }

        public override Task<AuthenticationScheme> GetSchemeAsync(string name)
        {
            if (name.Equals(overrideSchemaTargetName, StringComparison.OrdinalIgnoreCase))
            {
                var scheme = new AuthenticationScheme(
                    TestSchemaName,
                    TestSchemaName,
                    typeof(MockAuthenticationHandler));

                return Task.FromResult(scheme);
            }

            return base.GetSchemeAsync(name);
        }

        private sealed class MockAuthenticationHandler : AuthenticationHandler<AuthenticationSchemeOptions>
        {
            private readonly AuthenticationSchemaStub authenticationSchemaStub;

            public MockAuthenticationHandler(
                AuthenticationSchemaStub authenticationSchemaStub,
                IOptionsMonitor<AuthenticationSchemeOptions> options,
                ILoggerFactory logger,
                UrlEncoder encoder,
                ISystemClock clock)
                : base(options, logger, encoder, clock)
            {
                this.authenticationSchemaStub = authenticationSchemaStub;
            }

            protected override Task<AuthenticateResult> HandleAuthenticateAsync()
            {
                var principal = authenticationSchemaStub.BuildPrincipal(Context);
                var ticket = new AuthenticationTicket(principal, TestSchemaName);
                return Task.FromResult(AuthenticateResult.Success(ticket));
            }
        }
    }
}

It works much like Alba's AuthenticationStub, you can add claims to it, etc., the difference is that you specify which schema the stub should replace, so now you can have it replace a specific schema, e.g. new AuthenticationSchemaStub(JwtBearerDefaults.AuthenticationScheme).
Related to #135.

A modified version of this has been merged into the v8 branch, alongside equivalent changes for the JWT stub. Thanks for the contribution.


avoid redefinition of typedef error on llvm

when binding to libmill from node.js (basically a C++ environment), i got:
error: typedef redefinition with different types ('struct tcpsock *' vs 'tcpsock')

the proposed change avoids the problem, allowing me to bind to libmill

this doesn't solve the problem. later when calling functions from the tcp lib I get errors like:
error: calling 'tcpconnect' with incomplete return type 'tcpsock'

I think tcp.c may need an intermediary header file..

How does the conflicting definition in node.js look like exactly?

It's not defined in node.js per se. The binding will first compile a binary that exports V8::Class methods around libmill's functions. Those methods can be called from node.js
but during the compilation step I get:
  CXX(target) Release/obj.target/mill/lib/mill.o
In file included from ../lib/mill.cc:6:
../lib/include/libmill.h:255:25: error: typedef redefinition with different types ('struct tcpsock *' vs 'tcpsock')
typedef struct tcpsock *tcpsock;
                        ^
../lib/include/libmill.h:255:16: note: previous definition is here
typedef struct tcpsock *tcpsock;
               ^

is that the definition you want to see?

I see, it's unable to distinguish between 'tcpsock' and 'struct tcpsock'.  Have you tried renaming 'struct tcpsock' to 'struct mill_tcpsock'?

thanks @sustrik that fixes it :+1:
should i update the PR?

Yes, plase.

updated :)

That will compile but won't link. You also want to replace "struct tcpsock" instances in tcp.c by "struct mill_tcpsock".

ah ok, just a minute

done. please review

Merged. Thanks!


refind: make the build reproducible

Description of changes
Avoid leaking build timestamps into the output.
/cc @AndersonTorres @samueldr @chewblacka
Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

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

Current Master
Result of current nix-build -A refind --check:
error: derivation '/nix/store/nif8vnzh5j65s3hlzjf88ca9af0kfvag-refind-0.14.2.drv' may not be deterministic: output '/nix/store/sq3rgaih1cmkpdj8qwi636q6cjr1yplm-refind-0.14.2' differs
PR 318499
Result of nixpkgs-review pr 318499
1 package built:
refind

Result of nix-build -A refind --check
No errors (i.e. build is reproducible).

I guess you used a local patch because using the patch directly from upstream (SF) is not available.

I haven't really checked, but since the MR isn't merged yet that commit is still at risk of being garbage-collected, so this is safer (as per #317314)

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/nixos-reproducible-builds-minimal-installation-iso-successfully-independently-rebuilt/34756/9


bug: omise.Charge schedule attribute is a callable that returns incorrect value

As per the documentation, a charge's attribute "schedule" should be an object id expandable. But calling charge.schedule() returns a list of all the charges in the account.
charge = omise.Charge.retrieve("charge_id")
len(charge.schedule()) # This returns more than 1

@jamesx00 Hey, sorry for being late. If it's still relevant, would you pease tell us what was your expected result as object id expandable?

@jamesx00 We’re going to close this since there hasn’t been any activity for a while. If this issue is still relevant, please feel free to reopen it with more details and we’ll take another look.


Can task script support get current line number?

Hi, I think let task script know current line number just like it already know current file name would be a nice idea.
Like if I want to open a file in vim, I can do this now.
{
"label": "open in vim",
"type": "shell",
"command": "vim ${file}",
"problemMatcher":[]
}
But it missed file line number info which might helpful for me. Can we have this feature? Or it's there anything I missed to reach this aim.

${lineNumber} should actually do the trick.


transform with CGAffineTransform scale, or rotation also moves the position of the node

Hi.  I am trying the package with a simple use very similar to your Pikachu example.  Instead of translation, I am using scale.  Basically, when the part of the image is tapped, it should scale up slightly.  The scaling works, but the position also moves - the larger the scaling, the larger the movement. (making it smaller moves it in the opposite direction).   I suspect it has to do with the svg having relative or absolute coordinates, but it is not clear what I need to do to fix this.

Hi @RajaSeshadri,
If you want to have an anchor point for your shape during scaling (usually a center) you need to combine following transformations:

Move your shape to the center of coordinates, so that anchor point will be in (0,0) coordinates.
Scale.
Move your shape back.

So the code will look something like this:
shape.transform = CGAffineTransform.identity
        .translatedBy(x: anchorPoint.x, y: anchorPoint.y)
        .scaledBy(x: scale, y: scale)
        .translatedBy(x: -anchorPoint.x, y: -anchorPoint.y)

Thanks - I understand your suggestion.  However, how will I know the anchorPoint ?  My situation is similar to the example you have given where you affect the opacity of the node 'part' which is obtained by getting the Node for a particular node name.  How to get the anchorPoint for this node, so that I can do the adjustment as suggested?


Prepare for 1.0.1

Okey. I'll wait.
Your PR on the factory tests is merged. Thank you

@Zegnat Could you update and merge this PR?

I don't think any updates were necessary, merged.

Great. Thanks


feat: making credset qc have an option to coalsce and deduplicate credible sets without ld pruning

✨ Context
Currently there are situations where the locus breaker step can have two or more regions which overlap. In some cases, this results in the same variant being the top PIP for multiple loci in the same study. The consequence of this is some duplicated studyLocusIds in the final credible sets.
🛠 What does this PR implement
Changes the credible_set_qc function to have more options.
Now, you have the option to disable clumping as a QC procedure.
It also recursively reads credible sets, coalesces them into 200 partitions, and then ensures that if there are overlapping loci with the same StudyLocusId, that they are sorted by credibleSetLog10BF and only the first one is kept.
🙈 Missing

🚦 Before submitting

[x] Do these changes cover one single feature (one change at a time)?
[x] Did you read the contributor guideline?
[x] Did you make sure to update the documentation with your changes?
[x] Did you make sure there is no commented out code in this PR?
[x] Did you follow conventional commits standards in PR title and commit messages?
[x] Did you make sure the branch is up-to-date with the dev branch?
[x] Did you write any new necessary tests?
[x] Did you make sure the changes pass local tests (make test)?
[x] Did you make sure the changes pass pre-commit rules (e.g poetry run pre-commit run --all-files)?

Can we merge it without test? A bit dangerous but we can add it later?

Can we merge it without test? A bit dangerous but we can add it later?

I've manually tested it on ukb-ppp and gwas catalog again and it's all still working as expected. I can add proper tests at a later date.


Updated queue methods to only work asynchronously

Even though I didn't have to, some of the methods now use (faux)-asynchronous iteration to be compatible with other queue backing stores. If someone implemented another store, they'd probably be better off re-writing all methods themselves, but this might provide a better boilerplate.
I've also added unit tests for each queue method and updated the docs. Fixes #253.

Looks really good! I left some comments for your perusal. :)

I'd like to consider adding two new methods to the queue: remove and requeue. remove would actually remove a queueItem from the queue, whereas requeue would add a URL and bypass any checks whether a URL has already been fetched or not before adding it.

I totally get the utility of requeue — a resource might've failed previously, or you might want to download it again to check for changes. But not sure about remove — would that just be for truncating the queue to save memory? (Not saying we shouldn't add it, but it helps to understand the intent behind a feature in order to design the API properly.)

So I got some comments via email:

Hi Christopher,
The only thing I've spotted so far is that it appears the change of state is a race condition: you emit say 'fetchstart' but you have no way to wait for the, possibly asynchronous, operation to complete (that I've seen thus far). That may run into trouble just with a single crawler, but shared use of a single queue is essentially impossible without additional handshaking in the background - really I'd just like to rely on transactions (I'm using sequelize) to see if I 'own' the state change and communicate back a proceed or abort to next flag of some kind.
Perhaps I'm looking too hard at the mongo imp. which basically acts on those emits - I think at least some of them can be worked into the fetchQueue interface (but only in a hacky, knowledge of how called way). An explicit changeState interface in fetchQueue would be much preferable.
Regards
Pete

Then I said:

Hi Pete —
Yeah, @frederikekelund suggested an additional ‘upsert’ method on the queue for the async-safe modification of queue items might be the way to go. I’ll file an issue for it and we can go from there!
Thanks for looking into this. :)
Cheers,
Christopher

Cool to see people working on queue implementations! Can we convince him to share his code at some point? :)

I gave some thought to the remove  method as well, and I initially imagined it mostly as a natural complement to any form of collection that also has an add  method. But I agree that the need to remove stuff is rare, instead you want to prevent stuff from being added to the queue, not remove stuff once it's already there.
I think that the best use case I could think of is one where you've already fetched a page, but you know you'll encounter it again at some point (perhaps after some cookie has been set on a different page), and you don't want it to be prevented from being added to the queue at that point. But that situation might be more elegantly solved with an unset method that doesn't remove any existing queue items, but rather just changes the state of the URL in the scanIndex

On the discussion of removing the last method as well: I think that we can afford to cut out methods that aren't used in simplecrawler, especially when their implementation can be redone manually without much effort by anyone who really needs the functionality. I'm not sure of a typical use case of that method either

I think this looks pretty good. I might actually write a redis queue implementation to validate the queue interface's asynchronicity here. :)

Alright! Haven't had time to look into this for some time, but now I'm back :)
I've removed the last method and added a force argument to the queue.add method. Moreover I made crawler.processURL construct a full queueItem rather than an incomplete one (ie. a parsedURL). This should hopefully add some clarity from the developers perspective and it gives the processURL method a purpose to provide standardized queueItems to those who want to write custom queue implementations as well.
I should have a second look at the diff during the coming days, but conceptually I feel pretty good about the changes now

I think we could add a requeue to the Crawler prototype which would map to queue.add with force applied.
That'd solve issue #286. :)

That's probably a separate PR though, but it's blocked on this one. I'll have a look over this diff, and if you don't feel bad about it, let's merge this one for 1.0!

A requeue method on Crawler.prototype sounds good to me. I've made some more changes to harmonize the names of the queue methods a bit. Wondering whether we should change countWithStatus to getStatusCount while we're at it - just to harmonize things a bit?

Hrm. What's the pattern you'd like to follow? At first glance, I find countWithStatus a little clearer than getStatusCount. Maybe getStatusCount or getCountForStatus are clearer.
(Because they look more like a sentence when you've got them in a function call — i.e. getCountForStatus("queued", ..., etc.)

Maybe it's overkill to prepend all method names with "get", you might be right about the current names being the most intuitive.
Just to open up for discussion: would it make sense to generalize the queue methods countWithStatus and getWithStatus into something like countItems and filterItems, that would take an object comparator. So it would look something like:
crawler.queue.countItems({status: "fetched"});

With good documentation on what the queue items look like, these methods might be even more useful while still being pretty elegant to call. What do you think?

@cgiffard I went ahead with the queue.filterItems and queue.countItems change. So long as the documentation for what the queue items look like is good enough, I think this concept serves us better as an API, seeing as it's more flexible.
I'd like to go ahead and merge this PR this weekend unless you have any objections?

Having a look now! :) Thanks @fredrikekelund!

Looks great! I really appreciate the work you've put in here — should massively improve the experience of building DB backed queues. I might write a bunch of content for the README explaining how one would go about writing a queue.
Left a couple of comments with thoughts — feel free to address these at your leisure. I don't think they should block merging! This is really great — it'll be fantastic to get this in. :)

Cool! Yeah, feels like a more formal API with these changes. Would be great to document the process more. I'll look into the last points this week!
Do you feel that we still need to cut a 0.8 release before 1.0? I'm thinking that we ought to just push ahead. If you don't have time to finish up the CLI, then that can be added in an upcoming release, it shouldn't be API breaking, so we don't have to change the major version number when that lands.

 :)
I wanna get the CLI out, but if you're itching to release 1.0 we can always push it as 1.1, since it won't break any of the existing APIs. I won't be able to get to it before the weekend unfortunately.

A bit of an itch :) The robots.txt stuff has been sitting around for so long, and I really want to break that fetchWhitelistedMimeTypesBelowMax API haha.
I'll try and get to the remaining stuff during the week, and we can aim for a release this Sunday?

Sounds good!

Awwwww yeah! Thanks @fredrikekelund! :)


Do not set an auto released delegate (macOS) (#1113)

The setUIDelegate() method doesn't increase the retainCount, so don't release the delegate.

Thanks for this fix!
Could you please make sure that we release the delegate at some point? For example something like the following.
diff --git a/webview.h b/webview.h
index 0e8f04e..2573585 100644
--- a/webview.h
+++ b/webview.h
@@ -1806,6 +1806,10 @@ public:
       }
       m_window = nullptr;
     }
+    if (m_ui_delegate) {
+      objc::msg_send<void>(m_ui_delegate, "release"_sel);
+      m_ui_delegate = nullptr;
+    }
     if (m_window_delegate) {
       objc::msg_send<void>(m_window_delegate, "release"_sel);
       m_window_delegate = nullptr;
@@ -2176,10 +2180,10 @@ private:
     objc::msg_send<id>(preferences, "setValue:forKey:"_sel, yes_value,
                        "DOMPasteAllowed"_str);

-    auto ui_delegate = objc::autoreleased(create_webkit_ui_delegate());
+    m_ui_delegate = create_webkit_ui_delegate();
     objc::msg_send<void>(m_webview, "initWithFrame:configuration:"_sel,
                          CGRectMake(0, 0, 0, 0), config);
-    objc::msg_send<void>(m_webview, "setUIDelegate:"_sel, ui_delegate);
+    objc::msg_send<void>(m_webview, "setUIDelegate:"_sel, m_ui_delegate);

     if (m_debug) {
       // Explicitly make WKWebView inspectable via Safari on OS versions that
@@ -2263,6 +2267,7 @@ private:
   id m_window{};
   id m_webview{};
   id m_manager{};
+  id m_ui_delegate{};
   bool m_owns_window{};
 };

You are absolutely correct. Always forgetting the cleanup...

Looks good to me. I'll merge this once the clang-format job passes.

I've found an issue after looking at this with a pair of fresh eyes, and will therefore not merge it just yet.
When the user closes the window then on_window_will_close() is called and both m_webview and m_window are set to nullptr. The ~cocoa_wkwebview_engine() will therefore not release the UI delegate in this case.
If webview::terminate() is called before closing the window then on_window_will_close() is not called and therefore ~cocoa_wkwebview_engine() releases the UI delegate.
The code I suggested will release it in both cases but here's a new patch with a call to setUIDelegate: in ~cocoa_wkwebview_engine() which may be a good thing to do.
diff --git a/webview.h b/webview.h
index bc09c68..bac6cf8 100644
--- a/webview.h
+++ b/webview.h
@@ -2118,6 +2118,9 @@ public:
     objc::autoreleasepool arp;
     if (m_window) {
       if (m_webview) {
+        // Replace the UI delegate just in case there's a chance of callbacks
+        // during destruction.
+        objc::msg_send<void>(m_webview, "setUIDelegate:"_sel, nullptr);
         if (m_webview == objc::msg_send<id>(m_window, "contentView"_sel)) {
           objc::msg_send<void>(m_window, "setContentView:"_sel, nullptr);
         }
@@ -2133,6 +2136,10 @@ public:
       }
       m_window = nullptr;
     }
+    if (m_ui_delegate) {
+      objc::msg_send<void>(m_ui_delegate, "release"_sel);
+      m_ui_delegate = nullptr;
+    }
     if (m_window_delegate) {
       objc::msg_send<void>(m_window_delegate, "release"_sel);
       m_window_delegate = nullptr;
@@ -2537,10 +2544,10 @@ private:
     objc::msg_send<id>(preferences, "setValue:forKey:"_sel, yes_value,
                        "DOMPasteAllowed"_str);

-    auto ui_delegate = objc::autoreleased(create_webkit_ui_delegate());
+    m_ui_delegate = create_webkit_ui_delegate();
     objc::msg_send<void>(m_webview, "initWithFrame:configuration:"_sel,
                          CGRectMake(0, 0, 0, 0), config);
-    objc::msg_send<void>(m_webview, "setUIDelegate:"_sel, ui_delegate);
+    objc::msg_send<void>(m_webview, "setUIDelegate:"_sel, m_ui_delegate);

     if (m_debug) {
       // Explicitly make WKWebView inspectable via Safari on OS versions that
@@ -2624,6 +2631,7 @@ private:
   id m_window{};
   id m_webview{};
   id m_manager{};
+  id m_ui_delegate{};
   bool m_owns_window{};
 };

Your solution works and all destructors are called by the terminate() command.
But closing a window never destructs m_webview(WKWebView) nor m_window(NSWindow) and leads to memory leaks, especially if you have multiple webviews. Do you know the idea of the comment in on_window_will_close()? This problem already existed before this PR.

How did you determine that m_webview and m_window aren't released/destructed upon closing the window?

In Xcode with the bind example and an additional terminate bind:
Add a symbolic breakpoint:

symbol: -[WKWebView dealloc]
Module: WebKit
Log message to console: `--- dealloc @(id)[$arg1 description]@
And for NSWindow
Symbol: -[NSWindow dealloc]
Module: AppKit
Log message to console: `--- dealloc @(id)[$arg1 description]@

Interestingly with Xcode's Instruments app, no leaks are shown.

Releasing the UIDelegate should be done when releasing the m_webview. But m_webview is not released if the window is closed by clicking the red close button (or other close commands). Also WebviewWKScriptMessageHandler isn't released. This should be another PR.

I'm sorry it took me a while to get back to this. Thank you for the explanation as well. This solves the original issue with the "open file" dialog so I'll merge this.


Documented changes are overwritten on next update

I just noticed that when the "Version packages" PR gets updated, the previous entries get duplicated and/or overwritten.
For example:

More specifically, it seems that the links to the commit and the author gets duplicated. Another example:

Not sure if this is a regression or it has always been an issue.

Ah, could it be that I need to explicitly check out the repo with fetch-depth: 0, or a bigger depth?
https://github.com/atlassian/changesets/blob/64a9017aefa6b6444d83cf7802cca8e8404fb697/.github/workflows/changeset-version.yml#L16-L17

Content of the PR is re-generated each time as far as I remember, so old content is not reused anyhow.
I believe this always has been like this - it just happens that a single PR had multiple changesets for a single package (which is fine) and each changeset is converted to a single displayed changelog entry, where each receives a reference to the commit, author and PR.

I think the issue is related to the git history. I updated the checkout step to fetch-depth: 50 now, let's see if it helps.

If you take a look at the linked commit for the first case then you can see that everything is OK then - this is the squashed commit from the PR #359 which contains those 2 changesets.
The other case looks broken though: https://github.com/commercetools/ui-kit/pull/1343 . I'm going to classify this as a bug and we will take look into it.

Thanks for taking the time to look into it.
I'll get back to you as soon as I test a bunch of new releases in the repos linked here, to see if using fetch-depth: 50 solves the issue.
Until then, feel free to keep this on hold.
Thanks again.

Damn, I've tried to reproduce it on your repository, but the correct content has been generated:

changelog
# @commercetools-uikit/data-table

## 10.18.7
### Patch Changes

- [`531d3658`](https://github.com/commercetools/ui-kit/commit/531d365859eef2609ffe41b25a70edd19c23afc9) [#1345](https://github.com/commercetools/ui-kit/pull/1345) Thanks [@jonnybel](https://github.com/jonnybel)! - fix to prevent table from overflowing if it's too wide for its container, adding a horizontal scrollbar if needed

- [`13a4f703`](https://github.com/commercetools/ui-kit/commit/13a4f7037f77a041964e36460e7beb59f08a246f) [#1341](https://github.com/commercetools/ui-kit/pull/1341) Thanks [@jonnybel](https://github.com/jonnybel)! - fixed `maxWidth` prop to actually contain the table within the width value adding a horizontal scrollbar if necessary

I will take off the bug label as I can't repro it. If you encounter it in the future - please report the problem again so we can try to investigate again.

, to see if using fetch-depth: 50 solves the issue.

I really doubt this. fetch-depth:0 should actually get more accurate information for the changelog generator.

fetch-depth:0 should actually get more accurate information for the changelog generator.

Yeah but it wasn't set before. So the default of the checkout action is to fetch one single commit. Isn't that the issue here, that the information about other commits is not found?
Do you recommend to use fetch-depth: 0, to fetch ALL history?

Do you recommend to use fetch-depth: 0, to fetch ALL history?

Ah, yes - this is actually the current recommendation. I wasn't aware that you might have not been passing anything at all and thus fetching single commit. I would suspect now that this is the most probable cause of the reported issue.

Closing this as the issue as been solved by defining fetch-depth


Can you show an example?

I always have a lifetime issue constructing a Paragraph with a String. It's not useful if it can only consume leaked bytes or so.
let logs: String = String::from("hello");
let logs = ansi4tui::bytes_to_text(logs);
let messages = Paragraph::new(logs);

error[E0277]: the trait bound `Text<'_>: From<tui::text::Text<'_>>` is not satisfied
  --> project/src/tui/bin.rs:68:28
   |
68 | ...   let messages = Paragraph::new(logs).block(Block::default().borders(Borders::TOP | Borders::LEFT | Borders::RIGHT).title("Messages"));
   |                      ^^^^^^^^^^^^^^ the trait `From<tui::text::Text<'_>>` is not implemented for `Text<'_>`
   |
  ::: /home/jack/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/tui-0.14.0/src/widgets/paragraph.rs:97:12
   |
97 |         T: Into<Text<'a>>,
   |            -------------- required by this bound in `Paragraph::<'a>::new`
   |
   = help: the following implementations were found:
             <Text<'a> as From<&'a str>>
             <Text<'a> as From<Span<'a>>>
             <Text<'a> as From<Spans<'a>>>
             <Text<'a> as From<String>>
             <Text<'a> as From<Vec<Spans<'a>>>>
   = note: required because of the requirements on the impl of `Into<Text<'_>>` for `tui::text::Text<'_>`

@qiujiangkun I've added an example. you can run it with cargo run --example simple or just view the file to see usage.
That said, the three line example you wrote above worked fine for me.
I replaced the Command bytes in the example with this, and it ran just fine:
let msg = String::from("hello");
let text = ansi4tui::bytes_to_text(msg);
let paragraph = Paragraph::new(text)
    .style(Style::default())
    .block(Block::default().title("Preview").borders(Borders::ALL));

Maybe I'm misunderstanding the question?
Your issue may be with the way tui-rs handles lifetimes rather than with this library. Paragraph, Text, etc. all reference a Cow<str> under the hood, they don't actually "own" the data you give them. So whatever data you pass to them, make sure that data lives until the widget has been rendered or you'll run into the lifetime issues you mentioned.

This is weird. The same code works in your example code, but not in my code.

Well, I have tested out. ansi4tui does not work with tui 0.14.0. Here's the example code
example.zip

Tested it against the app I'm using it in, I see what you mean. Since ansi4tui exposes the Text struct from tui in its API, it fails to build against newer versions of tui.
I've gone ahead and just bumped the version of tui to 0.14.0 and bumped ansi4tui to 0.2.0. So far as I can tell, there's not a better way to handle the dependency update without bumping the version of ansi4tui as well. Since the version change to tui is a minor version, it made sense to do the same here.

Okay, I got it and problem solved


iOS 9 Betas: TLS v1.2 requirement issue (App Transport Security)

Hey guys
Experimenting with iOS 9 Beta, I had to update this for my app as well because my google app engine servers do not support TLS v1.2 yet either.
This is the issue: http://stackoverflow.com/questions/30720813/cfnetwork-sslhandshake-failed-ios-9
Essentially a ton of these in the logs: CFNetwork SSLHandshake failed (-9824) NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9824)
I assume that apptentive's servers are not up to TLS v1.2 yet.
The workaround is talked about in that answer as well as here: http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/
For now, setting a 'globally ignore this TLS v1.2 requirement' in the info plist seems to fix it. (or adding exceptions for trusted domains)

Hi, thanks for this! We will be issuing an update with a fix for this soon, and I'll update the ticket then.

Hello, this issue should now be fixed (no SDK update required). Please let me know if you continue to see any issues related to TLS in iOS 9!


Update design system to version 31.3.0

This is an auto-generated PR.
Design system release: https://github.com/ONSdigital/design-system/releases/tag/31.3.0

Updated to 31.4.2 in https://github.com/ONSdigital/eq-questionnaire-runner/pull/508


[UX] View badges mint status on Discover badges page

PR Summary
Enhance Badge Visibility with Green Border

Checklist

[ ] There are breaking changes
[ ] I've added/changed/removed ENV variable(s)
[ ] I checked whether I should update the docs and did so by updating /docs

Description
Description: This PR addresses an issue on the badge discovery page (https://scroll.io/canvas-and-badges#discover) where it was challenging to distinguish between badges that are minted and those that are not.
Changes Made:
Minted Badges: Added a green border to badges that have already been minted. This visually distinguishes them from unminted badges.
These visual cues improve user experience by clearly indicating the status of each badge.

This is my first contribution to Scroll,
I am available to make required changes to the PR if any.
Thanks!

Hey @Holybasil ,
Can you review the PR?
Thanks!


Add cli

Was expecting codecov/* to fail... due to punting cli tests.
However, it seems the linter changes are breaking non-happy-path usage...
i.e. python -m pygmc.cli -h works but python pygmc/cli.py -h doesn't
Not merging till the latter noob case works

Added GRC (Gross-Reality-Check) test for CLI...
Want to put this out in the wild to see if any issues popup before releasing new version.

closes #68


gsoler3 Acrolinx quality push: step-6-test-directaccess-connectivity …

…... .md

#assign: @robinharwood, @Xelu86
@robinharwood @Xelu86
Can you review the proposed changes?
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Looks good, minor changes, merging now.


Please improve backend service robustness

Hi,
from time to time, the backend crashes (seemlingly due to connection issues with the mongoDB instance) without automatically restarting.
It would be great, if such errors would not lead to a complete dying of the backend (e.g. by catching such errors or if existing docker mechanisms (like the docker health checks) would be leveraged to automatically trigger a restart).
2022/09/20 20:09:29 cron: panic running job: read tcp <IP_ADDRESS>:51104-><IP_ADDRESS>:27017: i/o timeout
goroutine 226687 [running]:
github.com/robfig/cron.(*Cron).runWithRecovery.func1(0xc00017a2d0)
	/go/pkg/mod/github.com/robfig/cron@v1.2.0/cron.go:161 +0x9e
panic(0x7a2800, 0xc07f764050)
	/usr/local/go/src/runtime/panic.go:969 +0x175
main.writeCalendar(0xc02acad1c8, 0x8, 0x0, 0x0, 0x0)
	/go/src/app/database.go:46 +0x35c
main.getCalendars()
	/go/src/app/calendar.go:26 +0x1ca
main.main.func1()
	/go/src/app/eva-backend.go:35 +0x2a
github.com/robfig/cron.FuncJob.Run(0x80de40)
	/go/pkg/mod/github.com/robfig/cron@v1.2.0/cron.go:92 +0x25
github.com/robfig/cron.(*Cron).runWithRecovery(0xc00017a2d0, 0x865f40, 0x80de40)
	/go/pkg/mod/github.com/robfig/cron@v1.2.0/cron.go:165 +0x59
created by github.com/robfig/cron.(*Cron).run
	/go/pkg/mod/github.com/robfig/cron@v1.2.0/cron.go:199 +0x76a

Hey, this was handled before by systemd. Apparently it didn't make it to the new server (also I've lost access so I can't take care of it). Docker health checks are afaik not suitable for this use case.


Matching HasMany Data question

Hi Ypnos!
Is it possible to add 'matching' to the options paramater when calling dataTables. For example
Listings hasMany ListingsUsers
My $options paramater:
$options = [
	'conditions' => [
		(int) 0 => [
			'Listings.title LIKE' => '%foo%'
		]
	],
	'contain' => 'ListingsUsers',
	'matching' => [
		'Listings.id' => ListingsUsers.listing_id
	]
];

The condition and contain are applied but not the matching to filter. Perhaps the solution is to pass a join in the $options?
Thank you in advance for your time.

The options you provide are just passed-through to the finder:
https://github.com/ypnos-web/cakephp-datatables/blob/master/src/Controller/Component/DataTablesComponent.php#L137
Can you check if it works as expected when you call the table finder directly?

Thanks - I figured and found where the finder is called for the model, unfortunately passing the 'matching' array didn't work, however I did manage to get it to work as follows:
 $data = $table->find($finder);

        if(isset($options['contain'])){
            $data->contain($options['contain']);
        }

        if(isset($options['conditions'])){
            $data->where($options['conditions']);
        }

        if(isset($options['matching'])){

            foreach ($options['matching'] as $key => $match) {
                $data->matching($key, function ($q) use ($match) {
                    return $q->where($match);
                });
            }

        }

I am setting my 'matching' option as follows:
$conditions[];
$contain[] = 'Vehicles';
$matching['Vehciles'] = ['Vehicles.id IN' => [1,2,3]];
$data = $this->DataTables->find('Listings', 'all', ['conditions' => $conditions, 'contain' => $contain, 'matching' => $matching]);
For the matching array I found I had to set the key to be the model which we want to match. I'm not sure if this is the most efficient way of doing this but I do get the expected results.
I could create a PR if you think this is an agreeable solution.

First of all, there is no sense in replicating contains and conditions, as these already work as expected.
Second, I believe that the real issue at hands is that there is no matching option key for querys. Here is a list of understood options I found in Cake\ORM\Query:

 * - fields: Maps to the select method
 * - conditions: Maps to the where method
 * - limit: Maps to the limit method
 * - order: Maps to the order method
 * - offset: Maps to the offset method
 * - group: Maps to the group method
 * - having: Maps to the having method
 * - contain: Maps to the contain options for eager loading
 * - join: Maps to the join method
 * - page: Maps to the page method

I understand that it is inconvenient not to be able to pass matching from the Controller right now. However what you can easily do is to write a custom finder in the Listings table that does the matching call for you. For example:
    public function findMatching(Query $query, array $options)
    {
        foreach ($options['matching'] as $key => $match) {
            $query->matching($key, function ($q) use ($match) {
                return $q->where($match);
            });
        }
       return $query;
    }

Then you can call $this->DataTables->find('Listings', 'matching', …. Obviously, you don't have to keep it as generic but can make your finder more specific to your needs.
For the future I suggest:

filing a feature request for a matching option to querys, if appropriate
changing the interface of the DatatablesComponent such as the Query can be built as usual before being passed to the component (PRs welcome!)

Thank you Ypnos - that's a very elegant solution. I agree that there is little point in replicating the 'contain' and 'condition' features since this already works. Your solution is an approach I wouldn't have thought of and is good practice for me.


Augment device object with dashboard url

Closes #225

@emirotin this is ready for re-review, the only issue now is that the PhantomJS tests are failing and I'm not sure why

Because resin-settings-client is node-only (it's using the filesystem) and shouldn't be used in the universal code.
The approach here I think is to add the optional dashboardUrl param, and when it's not set infer the dashboard URL from the API URL.
@pimterry your thoughts?

We could make resin-settings-client work in the browser too without too much trouble.
Resin-settings-storage already does both, switching LocalStorage client-side, and you could crib the implementation of that from there very easily (...which opens up some questions about why these are separate modules anyway, and whether more/everything could be integrated there...). However we do it, it'd be good for the future to be able to use this everywhere without worrying about it, and it lets us keep behaviour consistent between the web and node too, which will make everybody's lives easier.

We can make the settings client work in the browser, but it should do the (almost) completely different thing.
In Node it works like that:

the program (the CLI) ships with defaults (implemented by the settings-client)
to change them we use the environment - wither the env vars, or the persistent files on disk
occasionally the same storage module used for that is also used for storing the token which does not belong to settings

In the browser it's different:

we still want the persistence for the token
we don't ship with defaults (but we actually can, by making the SDK-preconfigured universal which is easy to do)
the environment is still there, but in the completely different form: it's the global props on window which is the conventional way to provide overrides to the 3rd-party libs

So what's the bottom line:

we want the storage to be used as it is now for the token persistence in the universal manner
we want the settings-client to be universal and treat the window-globals instead of the process.env in the browser (and do nothing to the files there, of course)
IMO we shouldn't use the settings-client in the SDK itself (and let everything be passed as config opts to it), except the node-only settings persistence module
but we want the SDK-preconfigured to become universal and read the params for the browser usage

That sounds good to me, you're right that window vars are more natural here. I do think we should namespace them though, to avoid conflicts. apiUrl will cause trouble otherwise! window.resinSettings.X?
I can also see the argument for pulling settings out if here entirely too, and doing that in the setup, e.g. SDK-preconfigured. I worry about it a little though because it means we'll have two places for defaults: once in resin-settings-client, with those values used in SDK-preconfigured, and once inside the SDK too, because otherwise we'll need to make all of these config arguments required for every SDK usage. Seems like that could get messy, but I like the approach overall, it's just how we do it. I think that can wait for now anyway, so we should fix settings-client for this first, merge this, and then later on move the usage elsewhere to avoid a direct settings dep here. Sound good?

Yes, I would call them window.RESIN_SETTINGS = { apiUrl: '...' } or smth
like that.
I think we need to decouple the defaults logic from the full settings
retrieval logic, and reuse it in both places.
And yes, the short-term plan sounds good.
On Tue, Apr 25, 2017 at 11:07 AM, Tim Perry<EMAIL_ADDRESS>wrote:

That sounds good to me, you're right that window vars are more natural
here. I do think we should namespace them though, to avoid conflicts.
apiUrl will cause trouble otherwise! window.resinSettings.X?
I can also see the argument for pulling settings out if here entirely too,
and doing that in the setup, e.g. SDK-preconfigured. I worry about it a
little though because it means we'll have two places for defaults: once in
resin-settings-client, with those values used in SDK-preconfigured, and
once inside the SDK too, because otherwise we'll need to make all of these
config arguments required for every SDK usage. Seems like that could get
messy, but I like the approach overall, it's just how we do it. I think
that can wait for now anyway, so we should fix settings-client for this
first, merge this, and then later on move the usage elsewhere to avoid a
direct settings dep here. Sound good?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/resin-io/resin-sdk/pull/226#issuecomment-296953152,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAgGCM7f6-T4lWKKrn5eLxid8cXOlv-zks5rzanTgaJpZM4KHUe2
.

--
Eugene Mirotin
Senior Frontend Engineer
site: Resin.io https://resin.io/, twitter: @resin_io
https://twitter.com/resin_io

@lekkas Sounds like we have a plan. I'm assuming the above makes sense and you're happy to finish this up, but just shout if not, or if you need a hand at all.
I've filed a separate issue for dropping the resin-settings-client dep entirely over here: https://github.com/resin-io/resin-sdk/issues/310. We can do that independently later on.

@pimterry @emirotin I've updated the PR accordingly, please let me know if the approach was what you expected.

Hm tests are failing with an interesting  ResinDeviceNotFound: Device not found: 3af33a32bf2962e4cd4254ac5bc9ee99683a3a926697918b9cc23075211712 error. Does anyone have access to the test account we are using?

Hm tests are failing with an interesting

Does it happen consistently? We've seen this sporadically and still didn't figure out what's going on.

Does it happen consistently? We've seen this sporadically and still didn't figure out what's going on.

@emirotin I guess I just hit that then, the tests are passing now 👍

This needs to be rebased and the changelog entry should be outside of the recently added"v6.1.0" header

Also you seem to have only rebuild the node part, please run full npm run build

Also you seem to have only rebuild the node part

Ah right, I thought resin-browser built JS is committed pre-publish, also rebased and fixed CHANGELOG @emirotin

It is, but we also publish it to GH so include it in the builds


Introduce formatter black

Proposed changes:

Reformat code using black
Travis will fail from now on if code was not formatted with black

closes # https://github.com/RasaHQ/rasa_nlu/issues/3205
Status (please check what you already did):

[x] made PR ready for code review
[ ] added some tests for the functionality
[x] updated the documentation
[x] updated the changelog

As discussed, please

add black to dev requirements
add instructions on running black to the pull request github template (e.g. to the checklist?)

Unfortunately, we cannot add black to the requirements as black requires >= python3.6 and travis also builds with python3.5.

@tmbo Do you have any other comments? Would like to merge :)


Retrieve by FetchXml weird beheviour

Hi there,
I get a weird behavior fetching data via fetchxml.
export const getFrequencies = mpid => {
  const request = {
    entityName: 'wfd_monitoringprogrammefrequency',
    fetchXml: `<fetch mapping="logical" >
                  <entity name="wfd_monitoringprogrammefrequency" >
                      <attribute name="wfd_monitoringprogrammefrequencyid" />
                      <attribute name="wfd_samplingperiod" />
                      <attribute name="wfd_year1frequency" />
                      <attribute name="wfd_year2frequency" />
                      <attribute name="wfd_year3frequency" />
                      <attribute name="wfd_additionaldescriptor" />
                      <filter type="and" >
                          <condition attribute="wfd_monitoringprogrammeid" operator="eq" value="${mpid}" />
                      </filter>
                      <link-entity name="wfd_statusdefinition" to="wfd_qualityelementid" from="wfd_statusdefinitionid" alias="c" >
                          <attribute name="wfd_code" />
                          <attribute name="wfd_name" />
                      </link-entity>
                  </entity>
                </fetch>`,
  };

  return WebApiClient.Retrieve(request);
};

if the first field of the query (in this case wfd_samplingperiod) doesn't have data, the others records in the response, even if they have data,  don't have that key present in the object.
If the first element returning by the fetch has data for that key, then that key is correctly populated for the rest of the elements (if it has data comes with data, and if not present the key is no present in the object)
same fetchxml in Xrmtoolbox always works as expected...
Am I doing something wrong?
Regards,
Antonio

Hi @garciasa,
Can you open your browser debugging tools while executing the request and check the response inside the Network tab of your debugger?
You should be able to check the returned results in plain text there. This allows you to check, whether the response contains your results and my library is doing something wrong, or if the CRM is behaving weird.
You can also try sending the query as query params. There you can check whether this behavior still occurs.
Example:
WebApiClient.Retrieve({entityName: "wfd_monitoringprogrammefrequency", queryParams: `?$select=wfdsamplingperiod,wfd_year1frequqency&$filter=_wfd_monitoringprogrammeid_value eq ${mpid}&$expand=wfd_qualityelementid($select=wfd_code,wfd_name)`})
You can check above example, it might be that the mpid needs single quotes in the filter (don't remember right now) and the expand property needs to be with your exact schema name, so you might need to adjust some chars to uppercase.
Kind Regards,
Florian

Hi Florian,
in the network tab, the behavior is the same, those elements are not populated if the first element is blank..
It's working as expected if we use the query as query params. So I'm guessing something funny is happening when we use the fetchxml way.
Cheers,

Hi Antonio,
glad that it works at least using query params.
Yes, it seems like the behavior is caused by the CRM in that case.
I'll close this issue.
Kind Regards,
Florian


Extension causing pages to error.

Try visiting https://dashboard.clerk.com/ with this extension enabled on Firefox, other browsers/websites not tested.
https://github.com/koba04/swr-devtools/assets/10256477/0e8c33bb-6ee5-4332-8cf9-70c7d04aea3e

Thank you for reporting it. I'll investigate it.

I had to disable the extension as well I was getting the same error without even changing my code.

Hello @koba04 I'm part of the team at Clerk at hopefully I'll shed some light as what is happening.
Background knowledge
The Clerk components load their own version of react-dom. Inside of these components swr is beeing used. I have managed to replicate this error only when swr is used both from the hosted app and the app mount the Clerk components.
In the case of our dashboard that is the case.
Deep dive
I had a look at the code base of vercel/swr and swr-devtools (yours).
I found that there is "contract" between swr and swr-devtools which involves the usage of window.__SWR_DEVTOOLS_REACT__ and window.__SWR_DEVTOOLS_USE__.
My understanding is that

window.SWR_DEVTOOLS_USE will be populated as long as the extension is installed and enabled.
the app code runs and setupDevTools from swr runs as well, which populates window.__SWR_DEVTOOLS_REACT__ with the react running from the app.
Then our components are being lazy loading and the swr code build within our components will again trigger the following line to execute window.__SWR_DEVTOOLS_REACT__ = React.

I was thinking a similar approach. Would require PR to vercel/swr or is this something that can be solved from the devtools ?

Yeah, This approach requires to send a PR to vercel/swr.

I just published a new version (1.3.2) to fix this so please try it once the version is available.

I'll close this as closed, but if you had a similar behavior please file a new issue.


No Darwin aarch64 build

I haven't had time to look into this so far but it seems that https://github.com/solana-labs/bpf-tools/blob/master/build.sh#L6 doesn't build for the new M1 architecture aarch64-darwin. Theoretically you can just use x86_64-darwin on M1 but when I try to use bpf-tools built for x86 with cargo-build-bpf I get:
  ld: warning: ignoring file /Users/fbs/private/solana-nix-issue/break/program/target/release/build/log-942b38fc0d7404da/build_script_build-942b38fc0d7404da.build_script_build.62arnz6f-cgu.9.rcgu.o, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
          ld: entry point (_main) undefined. for architecture arm64
          clang-11: error: linker command failed with exit code 1 (use -v to see invocation)

I've tried building from HEAD, but I get the error below along the process.
checking for sbf-solana-ar... /out/rust/build/aarch64-apple-darwin/llvm/bin/llvm-ar
checking for sbf-solana-ranlib... /out/rust/build/aarch64-apple-darwin/llvm/bin/llvm-ranlib
checking for sbf-solana-readelf... no
checking for readelf... no
checking whether to enable maintainer-specific portions of Makefiles... no
checking for build system executable suffix... no
configure: creating ./config.status
config.status: creating Makefile
config.status: executing depfiles commands
+ make install
Making install in libc
Making install in argz
/out/rust/build/aarch64-apple-darwin/llvm/bin/clang -I/Users/<me>/solana/bpf-tools/out/newlib_build/targ-include -I/Users/<me>/solana/bpf-tools/out/newlib/newlib/libc/include -DPACKAGE_NAME=\"newlib\" -DPACKAGE_TARNAME=\"newlib\" -DPACKAGE_VERSION=\"4.1.0\" -DPACKAGE_STRING=\"newlib\ 4.1.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I. -I../../../newlib/newlib/libc/argz -fno-builtin -D_LDBL_EQ_DBL=1 -D__GLIBC_USE\(...\)=0 --target=bpfel-unknown-unknown -Xclang -target-feature -Xclang +solana --target=bpfel-unknown-unknown -Xclang -target-feature -Xclang +solana -DHAVE_INIT_FINI      -g -c -o lib_a-dummy.o `test -f 'dummy.c' || echo '../../../newlib/newlib/libc/argz/'`dummy.c
/bin/sh: /out/rust/build/aarch64-apple-darwin/llvm/bin/clang: No such file or directory

It looks like the /out/rust/build/... folder is an absolute value, when it should be relative. I can't see where to try change that.

I've tried building from HEAD, but I get the error below along the process. The error happens around newlib_build and newlib_install.
checking for sbf-solana-ar... /out/rust/build/aarch64-apple-darwin/llvm/bin/llvm-ar
checking for sbf-solana-ranlib... /out/rust/build/aarch64-apple-darwin/llvm/bin/llvm-ranlib
checking for sbf-solana-readelf... no
checking for readelf... no
checking whether to enable maintainer-specific portions of Makefiles... no
checking for build system executable suffix... no
configure: creating ./config.status
config.status: creating Makefile
config.status: executing depfiles commands
+ make install
Making install in libc
Making install in argz
/out/rust/build/aarch64-apple-darwin/llvm/bin/clang -I/Users/<me>/solana/bpf-tools/out/newlib_build/targ-include -I/Users/<me>/solana/bpf-tools/out/newlib/newlib/libc/include -DPACKAGE_NAME=\"newlib\" -DPACKAGE_TARNAME=\"newlib\" -DPACKAGE_VERSION=\"4.1.0\" -DPACKAGE_STRING=\"newlib\ 4.1.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I. -I../../../newlib/newlib/libc/argz -fno-builtin -D_LDBL_EQ_DBL=1 -D__GLIBC_USE\(...\)=0 --target=bpfel-unknown-unknown -Xclang -target-feature -Xclang +solana --target=bpfel-unknown-unknown -Xclang -target-feature -Xclang +solana -DHAVE_INIT_FINI      -g -c -o lib_a-dummy.o `test -f 'dummy.c' || echo '../../../newlib/newlib/libc/argz/'`dummy.c
/bin/sh: /out/rust/build/aarch64-apple-darwin/llvm/bin/clang: No such file or directory

It looks like the /out/rust/build/... folder is an absolute value, when it should be relative. I can't see where to try change that.

The build.sh script is only for running on github actions CI agents. It assumes the environment variable GITHUB_WORKSPACE is defined and uses its value as path prefix. You can try setting it to a path on the file system where you have write permissions.

replacing x86_64-apple-darwin with aarch64-apple-darwin in build.sh and building works fine for me on m1. not sure if cross compiling on ci will work. i did a normal solana install, ran cargo-build-bpf to get it to download the x86 tools, then untarred into ~/.cache/solana/v1.23/bpf-tools over the existing. then was able to build programs no issue.

I added aarch64 to the build script.


Upgrade to support any latest Jest and Babel versions

Here I drop the support for the "seamless" integration with Jest as it was based on monkey patching. It was nice to have a handy way to enable introscope w/o touching the module's source, but this does not pay out as supporting the monkey patch is a nightmare.

👍

👍


"operation's operand is unlinked" error in iree-stream-schedule-concurrency

What happened?
iree-compile throws the following error during iree-stream-schedule-concurrency when compiling the training step of a GPT-3-like LLM to the LLVM-CPU backend:
<unknown>:0: error: operation's operand is unlinked
<unknown>:0: note: see current operation: "func.return"(%674#37, %517#31, %517#30, %517#29, %517#28, %517#27, %517#26, %517#25, %517#24, %517#23, %517#22, %517#21, %517#20, %517#19, %517#18, %517#17, %517#16, %674#46, %674#47, %674#48, %674#1, %674#2, %674#3, %674#4, %674#5, %674#6, %674#7, %674#8, %674#9, %674#10, %674#49, %674#11, %674#12, %674#13, %674#14, %674#15, %674#16, %674#17, %674#18, %674#19, %674#20, %674#21, %674#22, %674#23, %674#24, %674#25, %674#26, %674#27, %674#28, %674#29, %674#30, %674#31, %674#32, %674#33, %674#34, %674#35, %674#36, %676, %757#0, %757#1, %674#40, %758, %674#42, %755, %674#41, %756, %674#43, %754, %674#39, %759, %677, %675, %674#50, %674#45, %517#32, %674#44, %674#0, <<UNKNOWN SSA VALUE>>, %674#51, %753, %752, %751, %750, %749, %748, %747, %746, %745, %744, %743, %742, %741, %740, %739, %738, %737, %736, %735, %734, %733, %732, %731, %730, %729, %728, %727, %726, %725, %724, %723, %722, %721, %720, %719, %718, %717, %716, %715, %714, %713, %712, %711, %710, %709, %708, %707, %706, %705, %704, %703, %702, %701, %700, %699, %698, %697, %696, %695, %694, %693, %692, %691, %690, %689, %688, %687, %686, %685, %684, %683, %682, %681, %680, %679, %678, %674#52, %674#53, %674#54, %674#55, %674#56, %674#57, %674#58, %674#59, %674#60, %674#61, %674#62, %674#63, %674#64, %674#65, %674#66, %674#38) : (!stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>, !stream.resource<external>) -> ()

The IR produced by --mlir-print-ir-before-all can be found here: before_schedule_concurrency.mlir
Steps to reproduce your issue
Download gpt_train_step.mlir and execute the following command:
iree-compile \
  --iree-hal-target-backends=llvm-cpu \
  --iree-input-type=mhlo \
  /tmp/gpt_train_step.mlir \
  -o /tmp/gpt_train_step.vmfb

What component(s) does this issue relate to?
Compiler
Version information
Installed via PIP:
iree-compile --version
IREE (https://openxla.github.io/iree):
  IREE compiler version 20230515.520 @ 26d9eb8209077fd56befe6dbc052d463187a9c4e
  LLVM version 17.0.0git
  Optimized build

Additional context
No response

Confirmed that this also affects the CUDA backend, but that seems expected.

Can you try at head? I was able to successfully compile the input through the stream dialect (--compile-to=stream) and it's possible one of my changes yesterday fixed this (#13625 maybe).

Looks like that fixed it!


vk-sys: Why are there no DebugUtils functions?

I'm following this guide to setup validation layers to get warnings and errors:
https://vulkan-tutorial.com/Drawing_a_triangle/Setup/Validation_layers
I actually have already set up a function that looks like this:
pub extern "system" fn callback(
    _flags: vk::DebugReportFlagsEXT,
    _object_type: vk::DebugReportObjectTypeEXT,
    _object: u64,
    _location: usize,
    _message_code: i32,
    _p_layer_prefix: *const c_char,
    p_message: *const c_char,
    _p_user_data: *mut c_void,
) -> u32

It works fine, but I'm not getting all the error reporting I want with this function. Vulkan still seems like a black box. There is another function in the tutorial that has different parameters:
static VKAPI_ATTR VkBool32 VKAPI_CALL debugCallback(
    VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
    VkDebugUtilsMessageTypeFlagsEXT messageType,
    const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
    void* pUserData)

But it requires DebugUtils stuff that vk-sys doesn't seem to have. Am I just missing something?

It will be added in this PR: https://github.com/vulkano-rs/vulkano/pull/1066


mailman: add the Postorious web UI

Package postorius-1.2.4.

@GrahamcOfBorg build python3Packages.postorius

I've added meta to the python deps and checkPhases to postorius and django_mailman3

I've added meta to the python deps and checkPhases to postorius and django_mailman3

Very cool, thank you!


Is it possible to use different tags based on the content of the URL?

Hi,
I've been using linkifyjs to add links to json strings coming from an ajax call and it is working well with one caveat.
For links that end with a .gif, I need to be able to wrap them in a structure like this:
 <x-gif src="abc.gif"></x-gif>
So that gifs automatically animate.
I had a look at the options and could see that I can specify the tagName in the options (http://soapbox.github.io/linkifyjs/docs/options.html):
tagName: 'a',
but I can't seem to figure out if this is possible to do conditionally. I would still like to use a for normal links but only if the links end with a .gif I would like to change the tagName.
Is it possible to do this?
Many thanks,

Ok figured out a way to do it but I'd still be interested to know if it was possible to natively do this.
In case anyone is interested in how I did it:
$('#' + id)
                                .linkify({
                                    validate: {
                                        url: (val: any) => {
                                            return val.slice(-3) !== 'gif';
                                        },
                                        email: false
                                    }
                                });

                            $('#' + id)
                                .linkify({
                                    validate: {
                                        url: (val: any) => {
                                            return val.slice(-3) === 'gif';
                                        }
                                    },
                                    tagName: 'x-gif'
                                });

$("x-gif")
                            .each((i, el) => {
                                var src = el.getAttribute("href");
                                el.setAttribute('src', src);
                                el.removeAttribute('href');
                                el.removeAttribute('target');
                                el.removeAttribute('class');
                                el.setAttribute('class', 'gif-image');
                                el.innerHTML = '';
                            });

Hey @ghostofcain, you can specify most options (including tagName and format) as a function. The function should take as arguments the link and the link type, and return the value for that option.
e.g.,
$('#'+id).linkify({

  // Use x-gif tag for GIFs
  tagName: (href, type) => {
    if (type === 'url' && href.slice(-4) === '.gif') {
      return 'x-gif';
    }
    return 'a';
  },

  // The contents of the x-gif tag should be empty.
  format: (val, type) => {
    if (type === 'url' && val.slice(-4) === '.gif') {
      return '';
    }
    return val; // regular value
  }
});

I hope that helps.

Thank you very much @nfrasser. It works as you pointed out. I still have to do one more processing to change href to src but everything else is working well.


Update index.adoc

Remove broken link

This is already addressed in an update after #2997 where I have updated the link to the new tutorial.


[IN_APP_PURCHASE] Purchase dialog not showing on iOS 13.4

This was closed.
https://github.com/flutter/flutter/issues/53534
The fix was to implement another library.
Totally unacceptable that it was closed and it's a major bug still!
On a side note.
Many developers are butting their heads with Flutter at the moment the quality has drastically been reduced from last year.

Hi @ollydixon
i have reopened the issue, it was closed by bot for no response, yep i agree issues isn't fixed
Thank you very much


[WIP][BUG] Dry::Transaction doesn't call parent initializer

The test on this PR will fail, that's expected.  I first wanted to open an issue with just a script explaining repro steps but I found it easier to explain by adding a failing tests and also adding some comments directly in the code.
The bug: Currently, if a class includes Dry::Transaction it can't have any functionality relying on parent classes initializers being called because dry transaction doesn't call them.
More details of the importance of the issue: It is also relevant how I discovered this. In the project on which I'm working there are many operations which rely on dry-container, dry-auto_inject and when the operation is more complex we also use dry-transaction. Operations have a hierarchy with common parts extracted to base classes and some base classes also auto inject the components needed for all child operations. I tried to refactor one such child operation to use dry-transaction but it started breaking in a surprising way which lead me to find this bug.
This is the minimum repro script for the issue involving dry-container and auto_inject:
require 'dry-container'
require 'dry-auto_inject'
require 'dry-transaction'

class MyContainer
  extend Dry::Container::Mixin

  register "users_repository" do
    []
  end
end

Import = Dry::AutoInject(MyContainer)

class BaseUser
  include Import["users_repository"]
end

class CreateUser < BaseUser
  # If we comment this out the code works.
  include Dry::Transaction
  # Uncommenting the line below which is duplicated from base class is a workaround.
  # include Import["users_repository"]

  def foo(user_attrs)
    # This raises with: undefined method `push' for nil:NilClass (NoMethodError)
    users_repository.push(user_attrs)
  end
end

puts CreateUser.new.foo(name: "Jane")

As you can see above I found a workaround for my project but it is definitely not ideal.
I would gladly work on a fix but I don't know now what is a proper fix so any suggestion is very welcome

Any comments on this?

Hi @radanskoric thanks very much for your PR and detailed write up! Sorry I haven't gotten to it yet. I'll put aside some time for this early next week, thanks for your patience :)

Closing this one since we'll continue on from #97 (if at all). Thanks for getting this started!

Hi @timriley sorry, I forgot abut this MR. I was waiting on your response to wrap it up. :)
In the mean time my circumstances changed and I'm no longer using dry-transaction in any of my current projects so it's no longer relevant for my work. I don't like leaving unfinished work but I also don't see when I'd be able to pick that up again. If you don't think that #97 is important given the current state and plans for the gem, feel free to close it. :)


BEANUTILS-541 - FluentPropertyBeanIntrospector caches corrupted writeMethod (parallel)

Once https://github.com/apache/commons-beanutils/pull/68 was merged I realized it can work not properly in a concurrent environment 🤦.
I made some tests and it was pretty hard to trigger failure - the merged fix is relatively resistant and a combination of random factors should happen simultaneously, also it only happened with high number of threads (for this reason I believe 1.x fix can stay as is). But finally I got proof there is a problem still and tried to find a better solution without erasing the cache.
So, how the updated implementation works: now there is no more PropertyDescriptor.setWriteMethod and the shared cached PropertyDescriptor object is not updated anymore as there is a risk to define a setter method for a field which is wrong in case if getter is defined in super-class and it has several subtypes defining their own setters (with generic types).
Instead, in the IntrospectionContext the PropertyDescriptor is just replaced with a copy of the shared object with configured setter. This should be valid, because IntrospectionContext is not a cached type. If you run Jira541TestCase.testFluentBeanIntrospectorOnOverriddenSetter in debugger, you can see that at line FluentPropertyBeanIntrospector:163 which makes this call
PropertyDescriptor fluentPropertyDescriptor = new PropertyDescriptor(
        pd.getName(), pd.getReadMethod(), m);
// replace existing (possibly interited from super-class) to one specific to current class
icontext.addPropertyDescriptor(fluentPropertyDescriptor);

the existing object is replaced with the copied by the same name.
Sorry for missing this initially, I just got this insight. But I'd like to notice that initial fix (merged yesterday) makes the situation much better than it was.
I hope you will find time to check this carefully in the debugger and see the specific how the fluent setters logic is working.
Thanks for your attention and trust.
Hint: to reproduce the failure, run testFluentBeanIntrospectorOnOverriddenSetterConcurrent (not the full test class, but a single method) with an old implementation (I mean current master) of FluentPropertyBeanIntrospector several times. Eventually it will fail with:
java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: org.apache.commons.beanutils2.bugs.Jira541TestCase$SubTypeB is not assignable from org.apache.commons.beanutils2.bugs.Jira541TestCase$SubTypeA

	at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
	at org.apache.commons.beanutils2.bugs.Jira541TestCase.testFluentBeanIntrospectorOnOverriddenSetterConcurrent(Jira541TestCase.java:58)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)

One more reason why we need this change: library should not call PropertyDescriptor.setWriteMethod(m); for a descriptor instance which is stored in a static cache, because this cached instance can potentially be reused by other frameworks (like Tomcat or JEE frameworks) when analyzing bean contracts. After calling setWriteMethod the behavior in other frameworks may easily change and rely on random factor - lead to flaky issues. Overall, I believe it was a JDK design mistake to make PropertyDescriptor mutable and statically cacheable at the same time 😢

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 65.13%. Comparing base (99578cc) to head (2b56a98).
Report is 44 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff              @@
##             master     #234      +/-   ##
============================================
+ Coverage     65.06%   65.13%   +0.07%
- Complexity     1484     1515      +31
============================================
  Files           105      111       +6
  Lines          5504     5647     +143
  Branches       1068     1086      +18
============================================
+ Hits           3581     3678      +97
- Misses         1464     1490      +26
- Partials        459      479      +20

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

@seregamorph
Thank you for circling back and the follow up PR.


Pinia persists state by setting all state data in cookies, with the option to use a specific key.

Are you using Nuxt?

[x] Check this box if you encountered the issue using Nuxt and the included module.

Describe the bug
We are encountering an issue where, when the user sets a specific key like auth in defineStore with the persist option the browser stores the entire state in cookies. Please address this issue.
export const useAuthStore = defineStore('auth', {
  state: () => {
    return {
        token: null,
        userName:  "",
        isAuthenticate: "",
    }
  },
  persist: {
    key: 'auth',
    paths: [
      'token',
    ],
    debug: true,
  },
})

Reproduction
no
System Info
Operating System

Ubuntu 24.04.1 LTS

nuxt version
3.12.4

node version
v20.16.0

npm version
10.8.1

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] The provided reproduction is a minimal reproducible of the bug.

Hi, please provide a proper reproduction at first. Also please refer to the documentation as paths does not exist anymore and has been replaced by pick and omit.


Cross browser fixes [Desktop] #1

Tested with : https://preview.stakes.social
Desktop
IE 11:
Doesnt work - Shall we provide a message like "isn't supported" ?
Edge
Isnt loading. Console shows some errors

Thank you for cross-browser testing!
Internet Explorer or Edge Legacy is not supported. As you say, it would be nice to have a message that the app doesn't support it. (BTW, Edge built with Chromium is supported)

Oh yes forgot to mention :D, okey I updated the title


Mocha test fails because of global var match

Hi,
I noticed that our mocha tests started failing when we added this module with the following error:
Error: global leak detected: match
We've solved it by running the mocha command with --globals match but it would be nice not to have to do this.
I've looked through i18n.js and I think that this could be solved by adding a var match;right before:
225: 		while ((match = regExp.exec(accept))){
I could make a pull request for it.

I think that has been fixed a while ago (expresso does not fails at all)


(m  This is the exact message coming when I use a fast flag on 2.5.4 version. Please fix it and contact me via email<EMAIL_ADDRESS>if you have fixed it, I really hope you fix it as the fast flag i want to use is only available and best worked in this version. Please please fix this

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] I have thoroughly looked through the available Wiki articles and could not find a solution to my problem.
[X] I am using the latest version of Bloxstrap.
[ ] I did not answer truthfully to all the above checkboxes.

Bloxstrap Version
v2.5.4
What problem did you encounter?

Bloxstrap Log
2024-11-09T18:20:14Z [App::OnStartup] Starting Bloxstrap v2.5.4
2024-11-09T18:20:14Z [App::OnStartup] Compiled Saturday, 4 November 2023 at 3:16:02 AM from commit 880c076fcd875fc10b5f6bef770033074d79a7a8 (tag/v2.5.4)
2024-11-09T18:20:14Z [App::OnStartup] Loaded from %UserProfile%\OneDrive\Desktop\YT\Bloxstrap-v2.5.4.exe
2024-11-09T18:20:14Z [InstallChecker::FirstTimeRun] Running first-time install
2024-11-09T18:20:14Z [Logger::Initialize] Initializing at %UserProfile%\AppData\Local\Temp\Bloxstrap_20241109T182014Z.log
2024-11-09T18:20:14Z [Logger::Initialize] Finished initializing!
2024-11-09T18:20:14Z [JsonManager<Dictionary`2>::Load] Loading from ClientSettings\ClientAppSettings.json...
2024-11-09T18:20:14Z [JsonManager<Dictionary`2>::Load] Failed to load!
2024-11-09T18:20:14Z [JsonManager<Dictionary`2>::Load] Could not find a part of the path 'C:\WINDOWS\system32\ClientSettings\ClientAppSettings.json'.
2024-11-09T18:20:14Z [FastFlagManager::SetValue] Setting of 'FFlagHandleAltEnterFullscreenManually' to 'False' is pending
2024-11-09T18:20:14Z [FastFlagManager::SetValue] Setting of 'FLogNetwork' to '7' is pending
2024-11-09T18:20:14Z [FastFlagManager::SetValue] Setting of 'DFIntTaskSchedulerTargetFps' to '120' is pending
2024-11-09T18:20:14Z [MainWindow::MainWindow] Initializing menu
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FFlagTaskSchedulerLimitTargetFpsTo2402' to 'False' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Changing of 'FFlagHandleAltEnterFullscreenManually' from 'False' to 'False' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Changing of 'FLogNetwork' from '7' to '7' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Changing of 'DFIntTaskSchedulerTargetFps' from '120' to '10000' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFFlagDisableDPIScale' to 'True' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FFlagDisablePostFx' to 'True' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FIntTerrainArraySliceSize' to '8' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FIntRenderShadowIntensity' to '0' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FFlagDebugGraphicsPreferD3D11FL10' to 'True' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FFlagEnableInGameMenuChrome' to 'True' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FIntFullscreenTitleBarTriggerDelayMillis' to '18000000' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FIntDebugForceMSAASamples' to '1' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FIntFontSizePadding' to '3' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FFlagEnableInGameMenuModernization' to 'True' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFFlagTextureQualityOverrideEnabled' to 'True' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFIntTextureQualityOverride' to '3' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFFlagEnableFmodErrorsTelemetry' to 'False' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFIntRakNetMtuValue3InBytes' to '1200' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FFlagReconnectDisabled' to 'True' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFIntConnectionMTUSize' to '1472' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFFlagDebugPerfMode' to 'True' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFStringRobloxAnalyticsURL' to 'http://opt-out.roblox.com/' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFIntCSGLevelOfDetailSwitchingDistanceL34' to '4' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FFlagBatchAssetApi' to 'True' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFIntCSGLevelOfDetailSwitchingDistanceL12' to '2' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FIntFRMMinGrassDistance' to '0' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FFlagEnableChromePinnedChat' to 'True' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFIntRaknetBandwidthPingSendEveryXSeconds' to '1' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFIntRakNetNakResendDelayRttPercent' to '50' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FFlagAdServiceEnabled' to 'False' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFIntRaknetBandwidthInfluxHundredthsPercentageV2' to '10000' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FIntMeshContentProviderForceCacheSize' to '268435456' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFIntCSGLevelOfDetailSwitchingDistance' to ' 1' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFIntRakNetMtuValue1InBytes' to '1280' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FFlagFastGPULightCulling3' to 'True' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'FStringPerformanceSendMeasurementAPISubdomain' to 'opt-out' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFFlagDebugRenderForceTechnologyVoxel' to 'True' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFFlagGpuVsCpuBoundTelemetry' to 'False' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFStringAnalyticsEventStreamUrlEndpoint' to 'opt-out' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFIntAnimationLodFacsDistanceMax' to '0' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFStringHttpPointsReporterUrl' to 'http://opt-out.roblox.com/' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFIntCSGLevelOfDetailSwitchingDistanceL23' to '3' is pending
2024-11-09T18:20:27Z [FastFlagManager::SetValue] Setting of 'DFStringAltHttpPointsReporterUrl' to 'http://opt-out.roblox.com/' is pending
2024-11-09T18:20:34Z [NotifyIconWrapper::NotifyIconWrapper] Initializing notification area icon
2024-11-09T18:20:34Z [App::OnStartup] Initializing bootstrapper
2024-11-09T18:20:34Z [App::OnStartup] Initializing bootstrapper dialog
2024-11-09T18:20:34Z [Bootstrapper::Run] Running bootstrapper
2024-11-09T18:20:34Z [Bootstrapper::Run] Performing connectivity check...
2024-11-09T18:20:34Z [Bootstrapper::SetStatus] Connecting to Roblox...
2024-11-09T18:20:34Z [RobloxDeployment::GetInfo] Getting deploy info for channel LIVE (extraInformation=False)
2024-11-09T18:20:34Z [HttpClientLoggingHandler::ProcessRequest] GET https://clientsettingscdn.roblox.com/v2/client-version/WindowsPlayer/channel/LIVE
2024-11-09T18:20:35Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://clientsettingscdn.roblox.com/v2/client-version/WindowsPlayer/channel/LIVE
2024-11-09T18:20:35Z [Bootstrapper::Run] Connectivity check finished
2024-11-09T18:20:35Z [RobloxDeployment::GetInfo] Getting deploy info for channel LIVE (extraInformation=False)
2024-11-09T18:20:35Z [RobloxDeployment::GetInfo] Deploy information is cached
2024-11-09T18:20:35Z [DeployManager::DefaultBaseUrl.Set] Testing connection to 'https://setup.rbxcdn.com'...
2024-11-09T18:20:35Z [HttpClientLoggingHandler::ProcessRequest] GET https://setup.rbxcdn.com/version
2024-11-09T18:20:36Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://setup.rbxcdn.com/version
2024-11-09T18:20:36Z [DeployManager::DefaultBaseUrl.Set] Connection successful!
2024-11-09T18:20:36Z [HttpClientLoggingHandler::ProcessRequest] GET https://setup.rbxcdn.com/version-b7eebc919e96477a-rbxPkgManifest.txt
2024-11-09T18:20:36Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://setup.rbxcdn.com/version-b7eebc919e96477a-rbxPkgManifest.txt
2024-11-09T18:20:36Z [HttpClientLoggingHandler::ProcessRequest] GET https://setup.rbxcdn.com/version-b7eebc919e96477a-rbxManifest.txt
2024-11-09T18:20:36Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://setup.rbxcdn.com/version-b7eebc919e96477a-rbxManifest.txt
2024-11-09T18:20:36Z [Bootstrapper::SetStatus] Installing Roblox...
2024-11-09T18:20:36Z [Bootstrapper::DownloadPackage.RobloxApp.zip] Package is already downloaded, skipping...
2024-11-09T18:20:36Z [Bootstrapper::ExtractPackage] Reading RobloxApp.zip...
2024-11-09T18:20:36Z [Bootstrapper::ExtractPackage] Read RobloxApp.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a...
2024-11-09T18:20:36Z [Bootstrapper::DownloadPackage.content-avatar.zip] Package is already downloaded, skipping...
2024-11-09T18:20:36Z [Bootstrapper::ExtractPackage] Reading content-avatar.zip...
2024-11-09T18:20:36Z [Bootstrapper::ExtractPackage] Read content-avatar.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a\content\avatar\...
2024-11-09T18:20:36Z [Bootstrapper::DownloadPackage.content-configs.zip] Package is already downloaded, skipping...
2024-11-09T18:20:36Z [Bootstrapper::ExtractPackage] Reading content-configs.zip...
2024-11-09T18:20:36Z [Bootstrapper::ExtractPackage] Read content-configs.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a\content\configs\...
2024-11-09T18:20:36Z [Bootstrapper::DownloadPackage.content-fonts.zip] Package is already downloaded, skipping...
2024-11-09T18:20:36Z [Bootstrapper::ExtractPackage] Reading content-fonts.zip...
2024-11-09T18:20:36Z [Bootstrapper::ExtractPackage] Read content-fonts.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a\content\fonts\...
2024-11-09T18:20:36Z [Bootstrapper::ExtractPackage] Finished extracting content-configs.zip
2024-11-09T18:20:36Z [Bootstrapper::DownloadPackage.content-models.zip] Package is already downloaded, skipping...
2024-11-09T18:20:36Z [Bootstrapper::ExtractPackage] Reading content-models.zip...
2024-11-09T18:20:36Z [Bootstrapper::ExtractPackage] Read content-models.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a\content\models\...
2024-11-09T18:20:37Z [Bootstrapper::DownloadPackage.content-sky.zip] Package is already downloaded, skipping...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Reading content-sky.zip...
2024-11-09T18:20:37Z [Bootstrapper::DownloadPackage.content-sounds.zip] Package is already downloaded, skipping...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Reading content-sounds.zip...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Finished extracting content-avatar.zip
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Read content-sky.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a\content\sky\...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Finished extracting content-models.zip
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Read content-sounds.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a\content\sounds\...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Finished extracting content-sounds.zip
2024-11-09T18:20:37Z [Bootstrapper::DownloadPackage.shaders.zip] Package is already downloaded, skipping...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Reading shaders.zip...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Read shaders.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a\shaders\...
2024-11-09T18:20:37Z [Bootstrapper::DownloadPackage.ssl.zip] Package is already downloaded, skipping...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Reading ssl.zip...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Finished extracting content-sky.zip
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Read ssl.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a\ssl\...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Finished extracting ssl.zip
2024-11-09T18:20:37Z [Bootstrapper::DownloadPackage.content-textures2.zip] Package is already downloaded, skipping...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Reading content-textures2.zip...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Read content-textures2.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a\content\textures\...
2024-11-09T18:20:37Z [Bootstrapper::DownloadPackage.content-textures3.zip] Package is already downloaded, skipping...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Reading content-textures3.zip...
2024-11-09T18:20:37Z [Bootstrapper::DownloadPackage.content-terrain.zip] Package is already downloaded, skipping...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Reading content-terrain.zip...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Finished extracting content-fonts.zip
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Read content-textures3.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a\PlatformContent\pc\textures\...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Read content-terrain.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a\PlatformContent\pc\terrain\...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Finished extracting content-terrain.zip
2024-11-09T18:20:37Z [Bootstrapper::DownloadPackage.content-platform-fonts.zip] Package is already downloaded, skipping...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Reading content-platform-fonts.zip...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Read content-platform-fonts.zip.  (The given key 'content-platform-dictionaries.zip' was not present in the dictionary.)
 ---> System.Collections.Generic.KeyNotFoundException: The given key 'content-platform-dictionaries.zip' was not present in the dictionary.
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Bloxstrap.Bootstrapper.ExtractPackage(Package package)
   --- End of inner exception stack trace ---
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Finished extracting shaders.zip
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Read extracontent-places.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a\ExtraContent\places\...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Finished extracting content-textures3.zip
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Read extracontent-luapackages.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a\ExtraContent\LuaPackages\...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Finished extracting extracontent-places.zip
2024-11-09T18:20:37Z [Bootstrapper::DownloadPackage.extracontent-textures.zip] Package is already downloaded, skipping...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Reading extracontent-textures.zip...
2024-11-09T18:20:37Z [Bootstrapper::DownloadPackage.WebView2.zip] Package is already downloaded, skipping...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Reading WebView2.zip...
2024-11-09T18:20:37Z [Bootstrapper::DownloadPackage.WebView2RuntimeInstaller.zip] Package is already downloaded, skipping...
2024-11-09T18:20:37Z [Bootstrapper::DownloadPackage.redist.zip] Package is already downloaded, skipping...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Finished extracting extracontent-luapackages.zip
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Read extracontent-translations.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a\ExtraContent\translations\...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Finished extracting extracontent-translations.zip
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Read extracontent-models.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a\ExtraContent\models\...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Finished extracting RobloxApp.zip
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Read extracontent-textures.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a\ExtraContent\textures\...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Finished extracting extracontent-models.zip
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Read WebView2.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-b7eebc919e96477a...
2024-11-09T18:20:37Z [Bootstrapper::ExtractPackage] Finished extracting WebView2.zip
2024-11-09T18:20:37Z [AsyncHelpers::ExceptionHandler] An exception occurred while running the task 'extracting redist.zip'
2024-11-09T18:20:37Z [App::FinalizeExceptionHandling] System.AggregateException: One or more errors occurred. (The given key 'redist.zip' was not present in the dictionary.)
 ---> System.Collections.Generic.KeyNotFoundException: The given key 'redist.zip' was not present in the dictionary.
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Bloxstrap.Bootstrapper.ExtractPackage(Package package)
   --- End of inner exception stack trace ---
2024-11-09T18:20:38Z [Bootstrapper::SetStatus] Configuring Roblox...
2024-11-09T18:20:39Z [Bootstrapper::ExtractPackage] Finished extracting extracontent-textures.zip
2024-11-09T18:20:41Z [Bootstrapper::ExtractPackage] Finished extracting content-textures2.zip

Update your Bloxstrap. https://bloxstraplabs.com or https://github.com/bloxstraplabs/bloxstrap/releases/latest

there are so many things wrong here to unpack that i'm not even going to bother responding with a useful response


Support .Net Framework

You can't install nuget package for .Net Framework, unless you will explicitly specify it.

@sergiorykov this is expected as .NET Framework 4.5.2 doesn't support netstandard1.3. Although from the looks of things it seems adding net45 to the list of frameworks in the project.json should do the trick (although I don't currently have access to a Windows machine so I can't verify this). Is it possible you clone this repo and try it out? If it works I look forward to a PR

Fixed in #11


Unit tests are failing

Setup has been fixed, but unit tests are failing and need to be checked.

This was caused by changes in upstream libraries and fixed by https://github.com/neulab/compare-mt/pull/132


Add Dump protocol to go's TDebugProtocol

This also comes from the discussion of
https://github.com/apache/thrift/pull/1992#issuecomment-705903922.
I think TDebugProtocol is a better fit for this feature than creating a
new TProtocol implementation.
The Dump field is not added to TDebugProtocolFactory because I don't
think it makes sense from the factory setup. In vast majority cases
users would need direct access to the underlying TMemoryBuffer to make
it useful, which is easier this way than an additional TTransportFactory
plus TProtocolFactory to make TDebugProtocolFactory way too complex.

cc: @voodoo-dn