[Feature] VNester: omit aliases

Hi @lulupointu ,
I'm very grateful for your vrouter package that you maintain.
I really like working with it because of its straight forward api.
Speaking about such, the only component that doesn't feel straight forward to use is the VNester.
In that regard, it's the required use of aliases for common behaviors.
The following points are derived from this issue, including its code examples:
[Question] VNester: stacked route on all nested pages
Issues I have with using aliases:

An alias should only do, what it describes to be: being an alias path.
Using VNester doesn't make it obvious that for common behaviors an alias is needed. One needs to carefully read the doc at Custom VRouteElement And Scaling.
In more complex setups with VNester one needs to add the same alias to many different places. This seems to be error prune and isn't a nice usage experience.

I'm not an expert at all in flutter or especially in routing. However, I would suggest if it's technically possible, to get rid of the use of aliases for VNester.
Doing so would also make the usage of the VNester component as straight forward as any other components of this great package.
I look forward to your response.

The following is an example how I could image it to look like.
The example is derived from #126
class ProfileRoute extends VRouteElementBuilder {
  static final String profile = '/profile';
  static final String settings = profile + '/settings';

  @override
  List<VRouteElement> buildRoutes() {
    return [
      ScaffoldRouteElement(
        path: profile,
        nestedRoutes: [
          VWidget(
            key: animationKey,
            path: null,
            aliases: ['buy'],
            widget: ContentScreen(
              title: 'Profile',
              actions: [
                ContentScreenAction(
                  title: 'Show Settings',
                  action: (context) => context.vRouter.to(settings),
                ),
              ],
            ),
            stackedRoutes: [
              VWidget(
                path: settings,
                // Maybe also getting rid of aliases here?
                aliases: [settings + '/buy'],
                key: ValueKey('Order'),
                widget: ContentScreen(title: 'Settings'),
              ),
            ],
          ),
        ],
        stackedRoutes: [
          VWidget(
            path: 'buy',
            widget: ContentScreen(title: 'Buy'),
            fullscreenDialog: true,
          ),
          VWidget(
            path: '*/buy',
            widget: ContentScreen(title: 'Buy'),
            fullscreenDialog: true,
          ),
        ],
      ),
    ];
  }

Exactly, you could event have 1 path with *buy.
I understand the trouble but the issue is that some people use an absolute path on the stack route. I don't see how to make it easier while still allowing both scenarios. I believe using *buy is actually a great solution for relative paths!

I can't follow the issue regarding absolute paths.
Would you be so kind and give an example?

It's not so much an issue as much as a different use case which makes simplification impossible (as far as I see).
Relative paths in VNester.stackedRoutes

If we only had relative path in `VNester.stackedRoutes` we could have:

Note that bellow is not working code, it's just an example of what could be achieved if we assumed that only relative paths where used in VNester.stackedRoutes.
ScaffoldRouteElement(
  path: null, // CHANGE: Path moved down where it belongs
  nestedRoutes: [
    VWidget(
      path: profile, // CHANGE: Path moved here, no alias (which also implies not even needing a key)
      widget: ContentScreen(
        title: 'Profile',
        actions: [
          ContentScreenAction(
            title: 'Show Settings',
            action: (context) => context.vRouter.to(settings),
          ),
        ],
      ),
      stackedRoutes: [
        VWidget(
          path: settings, // CHANGE: No alias here (which also implies not even needing a key)
          widget: ContentScreen(title: 'Settings'),
        ),
      ],
    ),
  ],
  stackedRoutes: [
    VWidget(
      path: 'buy', // CHANGE: Omit alias
      widget: ContentScreen(title: 'Buy'),
      fullscreenDialog: true,
    ),
  ],
)

In this case where the path is relative it's pretty easy for me to guess that:

/profile/buy is a valid path, with ProfileScreen bellow BuyScreen. And we should pop on /profile
/profile/settings/buy is a valid path, with SettingsScreen bellow BuyScreen. And we should pop on /profile/settings

It's a pretty easy process: to get the path just remove the part of the stackedRoutes and get the new path. This is great and would solve every issues you have. However as you will see bellow this does not extend very well on absolute path.

Absolute paths in VNester.stackedRoutes

If we now have an absolute path in `VNester.stackedRoutes`:

ScaffoldRouteElement(
  path: profile, // CHANGE: we need the path here to know where to pop
  nestedRoutes: [
    VWidget(
      key: animationKey, // CHANGE: We do need the key now because of aliases
      path: null, // CHANGE: we need null to match parent path
      aliases: ['/buy'], // CHANGE: we need alias to tell that this should be show bellow BuyScreen
      widget: ContentScreen(
        title: 'Profile',
        actions: [
          ContentScreenAction(
            title: 'Show Settings',
            action: (context) => context.vRouter.to(settings),
          ),
        ],
      ),
      stackedRoutes: [
        VWidget(
          path: settings,
          key: ValueKey('Order'),
          widget: ContentScreen(title: 'Settings'),
        ),
      ],
    ),
  ],
  stackedRoutes: [
    VWidget(
      path: '/buy', // CHANGE: absolute path
      widget: ContentScreen(title: 'Buy'),
      fullscreenDialog: true,
    ),
  ],
)

Now this one is a bit more tricky, it requires the use of 3 unintuitive things:

null path to match the parent, because the path needs to be moved up to allow pop to work properly
an alias to know what to show bellow BuyScreen
A key to prevent the animation in the ProfileScreen

But more importantly, we can't apply the same logic as before:

We can't easily deduce where to pop
We can't easily deduce what to show in VNester.nestedRoutes

I hope you understand what I mean and appreciate how those scenarios differ and force the API to be how it is. I'm sure there is a better way, maybe abstract this logic in some way. If you have any idea please share, otherwise I'm afraid I don't have enough brain power available at the moment to find it.

Thank you very much for the explanation.
I'll try my best to work out an implementation draft.

To allow to navigate from inside of an VNester is the suggested approach to add the stacked routes to it AND the inner VRouteElement? With this I see the correct animations but it seems like animations/navigations are happening twice when checking the NavigatorObserver.
Example logs:
flutter: 👻 11:47:26.163196 INFO     Router - push: previousRoute=null, route=null
flutter: 👻 11:47:26.277901 INFO     Router - push: previousRoute=null, route=/feed
flutter: 👻 11:51:13.794022 INFO     Router - push: previousRoute=null, route=/categories/1
flutter: 👻 11:51:13.826619 INFO     Router - push: previousRoute=/feed, route=/categories/1
flutter: 👻 11:51:15.186098 INFO     Router - pop: previousRoute=/categories/1, route=null
flutter: 👻 11:51:15.191533 INFO     Router - pop: previousRoute=/categories/1, route=/feed

If I only add the stack to the inner VWidget the page is displayed under the menu, which I expect but is not a what I want. Is there a way to remove this duplication?
In short, the usecase is:

A root home containing a VNester with the bottom nav bar.
A couple of pages which should be under it.
Being able to navigate from one of those pages to another but over everything else (ie: detail page).

The last point is what I'm trying to understand. Thank you!

@marcguilera here is a code sample that might enlighten you

 Read the comment to have information on the things that might not be obvious

import 'package:flutter/material.dart';
import 'package:vrouter/vrouter.dart';

void main() {
  runApp(
    VRouter(
      debugShowCheckedModeBanner: false,
      routes: [
        VNester(
          path: '/user', // We use '/user' so that [VNester.stackedRoute] knows on what to pop
          widgetBuilder: (child) => MyScaffold(child), // Child is the widget from nestedRoutes
          nestedRoutes: [
            VWidget(path: '/', widget: HomeScreen()),
            VWidget(
              key: ValueKey('UserScreen'),
              // We use a key to indicate that path and alias lead to the same screen
              path: null,
              // null path matches parent
              aliases: ['/settings'],
              // We use an alias because we need [VNester] to know what to use as a nestedRoute when on '/settings'
              widget: UserScreen(),
            ),
          ],
          stackedRoutes: [
            VWidget(path: '/settings', widget: SettingsScreen()),
          ],
        ),
      ],
    ),
  );
}

class BaseWidget extends StatelessWidget {
  final String title;

  final String buttonText;

  final String to;

  const BaseWidget({
    Key? key,
    required this.title,
    required this.buttonText,
    required this.to,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Material(
      child: Scaffold(
        appBar: AppBar(title: Text(title)),
        body: Center(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: [
              Text(title),
              SizedBox(height: 50),
              ElevatedButton(
                onPressed: () => context.vRouter.to(to),
                child: Text(buttonText),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

class MyScaffold extends StatelessWidget {
  final Widget child;

  const MyScaffold(this.child);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: child,
      bottomNavigationBar: BottomNavigationBar(
        currentIndex: context.vRouter.url.contains('user') ? 1 : 0,
        onTap: (value) => context.vRouter.to((value == 0) ? '/' : '/user'),
        items: [
          BottomNavigationBarItem(icon: Icon(Icons.home), label: 'Home'),
          BottomNavigationBarItem(icon: Icon(Icons.person), label: 'User'),
        ],
      ),
    );
  }
}

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return BaseWidget(title: 'Home', buttonText: 'Go to User', to: '/user');
  }
}

class UserScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return BaseWidget(title: 'User', buttonText: 'Go to Settings', to: '/settings');
  }
}

class SettingsScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return BaseWidget(title: 'Settings', buttonText: 'Go to User', to: '/user');
  }
}

Thanks! This worked.


Obsoletion notice: GO:0008856 exodeoxyribonuclease X activity

Dear all,
The proposal has been made to obsolete GO:0008856 exodeoxyribonuclease X activity. The reason for obsoletion is that there is no evidence that this function exists. There is on EC mapping, EC:<IP_ADDRESS>, with no associated UniProt entry. This reaction is not in RHEA. There are no annotations to this term. This term is not present in any subset.
You can comment on the ticket: https://github.com/geneontology/go-ontology/issues/24572
Thanks, Pascale

I found a paper about exonuclease X which cleaves supercoiled plamid DNA: PMID:6219007; however the gene was not cloned, so this could be the results of the UvrB activity, see for example PMID:1847511


Improve markdown link parsing

This is an idea I had working on #5995. The problem with parsing links inside formatting was ending the "character in link" rule before the closing _ or ~. The fix here is to end when special characters are followed by a delimiter/EOL/EOF.
For example, this will halt the link before the *_~/* in https://keybase.io/*_~/*, but not in https://keybase.io/*_~/hello*. This should work better for real world links, w/ a slightly more complicated parser, though I think perf impact will be small.
As a bonus, this fixes parsing of trailing slashes at the end of links, which I discovered doesn't work in our current parser.
:eyeglasses: @keybase/react-hackers

The commits d9f5e80fab9c...830edf6e4722 introduce visual changes on linux. :mag_right: 1 changed

Changed: Markdown-links (before) (after)


support a  general SetOption API :  SetOption(int option, void* value)

Some times，we must set some rare curl options ， like：
CURLOPT_OPENSOCKETFUNCTION
CURLOPT_SOCKOPTFUNCTION
CURLOPT_DNS_CACHE_TIMEOUT

it would be nice to have a general API to do such things.

Thanks for contributing!
In theory this is a great addition, but something like this is already possible by usingsession.GetCurlHolder().
An example can be found here:
https://github.com/whoshuu/cpr/blob/63bfcc6292bba06f9806994ee5474baadff48254/test/session_tests.cpp#L877-L899
So I don't think we should expose two interfaces to the user to archive the same result.
What are you thoughts on this?

OK, session.GetCurlHolder() is great, that is exactly what i need.


go: can we make generated go code more self-contained?

:rocket: Feature Request
Affected Languages

[ ] TypeScript or Javascript
[ ] Python
[ ] Java
[ ] .NET (C#, F#, ...)
[x] Go

General Information

JSII Version: 1.29.0
Platform:    all

[ ] I may be able to implement this feature request

[ ] This feature might incur a breaking change

Description

Currently, the go code generator puts the embedded jsii tarball under a subdirectory called jsii. This means that in order to be able to import this file, other .go files need to know the name of the Go module in which the generated code resides.
For example, the mypackage directory here includes the generated Go code under mypackage.go and this file imports com.example/mymodule/mypackage/jsii (line).
This is okay for jsii-pacmak because it knows the name of the Go module, so it can render this import.
As we are looking into adding support for Go to jsii-srcmak (see PR), it means users of srcmak will need to pass the name of the parent go module into which we are generating source code, and this is quite a burden.
Proposed Solution

We were wondering if it might be possible to avoid the jsii directory altogether and just embed the tarball in the main .go file? Perhaps we can special-case the situation where there is a single .go file? Alternatively, why does this have to be in a subdirectory? Maybe we can just put this in another .go file next to the main file (same as mypackage.init.go) and then it will be possible to simply reference it without needing an import statement.

Yeah this should be doable to embed in the module entrypoint or as a separate file but the same package as the root package in the module.

Yeah... Actually using jsii sub-package might be a cause for collisions of some customer code decides to have a user-defined jsii submodule...

@RomainMuller but this is purely a naming collision right? We can make the sub-package something obscure and worst case scenario a user can alias it or another package if needed to avoid collision.


Cross product as a sink

This PR makes the cross product a sink, materializing the pipeline on the right side, similar to the hash join.
It turned out to be a bit trickier than expected, but @Mytherin helped out a ton.
This should allow for better parallelisation in some plans

Thanks! Looks good now.


Investigate ts-standard

What
Broke everything with ts-standard
How to review
npm test
Who can review
js devs
When is it done?

[ ] npm test passes
[ ] ts-standard has no lint errors

This requires a rethink and perhaps a lot of TS refactoring


Content Blocks are not working on TranslatedPage

https://github.com/statikbe/laravel-filament-flexible-content-blocks/blob/3b59fe2fef3000c1eb393e5bce5e41173539edcc/src/View/Components/ContentBlocks.php#L33
i need to add here
        foreach ($page->getTranslation('content_blocks',app()->getLocale()) as $blockData) {
instead of
        foreach ($page->content_blocks as $blockData) {
to get it working for TranslatedPage Model & Controller.
Version: 0.2.12

@devlokman That is strange. I never experienced this issue. I think your model is probably not set up properly. Normally spatie-translatable should provide the correct translated version for the content_block variable.
I have made an example project that should work with translatable pages. You can have a look here: https://github.com/statikbe/laravel-filament-package-sampler
Let me know if this work, so I can close this issue.

Hi @sten thanks for the fast reply. Actually i have used the same Model as in sample repo

@devlokman Where do you experience this problem? In the filament admin or in your controller?

@devlokman Great! Good luck!
I will soon release v1.0.

@sten honestly this package is more better than fabricator in my opinion. wish you all good luck and success


Recurring bug: "wrong origin" console.log() calls again cause memory leaks!

This bug is closely related to https://github.com/manfredsteyer/angular-oauth2-oidc/issues/616.
The original cause of the memory leak (reported in #616) was fixed, but immediately another cause was introduced (for whatever cause?) by the commit https://github.com/manfredsteyer/angular-oauth2-oidc/commit/4bf89014d8cc5d50ed716500e3f3ad265b4ae2db#diff-fbc8c2d288ee2f0a2a9d42a46e5292bd
See this line: https://github.com/manfredsteyer/angular-oauth2-oidc/blob/ff82dd9b7fc81a1a001730a4013c639061fe57e9/projects/lib/src/oauth-service.ts#L1204
Whenever any message (!) is posted by any source (!), the whole MessageEvent is being logged into the console. Which basically means that references to the huge source and target objects are forever stored in the console for no reason. This, in turn, means that these resources can never be freed by the garbage collector!
The fix would be trivial: the event object should not be logged to the console.
However, IMO it makes no sense to log anything at all to the console whenever ANY source posts ANY message. Logging should ONLY be utilized for messages that are related to oidc and this library. Other messages should be completely ignored.
Severity
In applications that only use postMessage() for authentication messages within oauth, this bug does not cause any issues. But in applications that heavily use postMessage() calls and create/destroy multiple iframes over their lifetime, this is an extremely critical issue that easily causes the whole application to fail.

Seems like this issue has initially been reported by https://github.com/manfredsteyer/angular-oauth2-oidc/issues/447, though that bug report didn't include the aspect that logging event objects causes memory leaks

FWIW, the real problem is that, for example, this issue affects ANY application that uses angular-oauth-oidc in conjunction with ngrx and @ngrx/store-devtools, because @ngrx/store-devtools uses postMessage() to broadcast each and every ngrx action being dispatched. So, effectively this means that each action dispatched within the application will be logged into the console. Which, in turn, means that any object referenced by the action object (and the MessageEvent) will never be garbage collected

Are there any updates on this issue? It would be great to not have this library interfere with @ngrx/store-devtools.


Display tabs/spaces as arrows/dots

This is usually quite important when working with source code; it would be great if this could be made part of the vimrc file by default too, perhaps toggle-able.

You can do this in your own my_configs.vim


Use a sync::Barrier on win32 to sync threads instead of a channel

Very straight-forward change, let's merge.


Cross-component dependencies

Apologies in advance for being a little long-winded. tldr: Aren't all the cross-component dependencies in this boilerplate encouraging the development of monolithic apps? Is that even something I should be concerned with?

I've been using this boilerplate for a few weeks now and for the most part am pleased with it. Thanks to everyone for all the effort put into it! One reason I selected it was that I very much agree with organizing files into component folders. This is so much better than having a folder for each type of file (actions folder, reducers folder, images folder, etc.)
However, now that I've spent some time with it and have a greater understanding of the structure, I'm finding it hard to eliminate cross-component dependencies. This concerns me, as I've spend the last few years moving away from tightly-coupled monolithic designs toward isolated, modular, microservice architectures.
Is it just me, or are things at odds with one another with this boilerplate? We want our components to be isolated, but still provide a way to interact with the rest of the application. We want to avoid code duplication, so we write action creators, selectors, sagas, and event name constants. But often, more than one component will need to use those actions, selectors, sagas, and constants. So we end up with a web of imported modules that becomes increasingly harder to keep track of as the application grows. And then there is the question of where to put things like authentication reducers/selectors/sagas/etc that are needed in multiple components.
Here are some imports in a recent version of react-boilerplate that reference files outside their scope, either from a parent or a sibling:
// from app/containers/HomePage/index.js
import { loadRepos } from '../App/actions';
import { selectRepos, selectLoading, selectError } from 'containers/App/selectors';

// from app/containers/LanguageProvider/reducer.js
import { DEFAULT_LOCALE } from '../App/constants';

// from app/containers/LocaleToggle/index.js
import { appLocales } from '../../i18n';
import { changeLocale } from '../LanguageProvider/actions';
import { selectLocale } from '../LanguageProvider/selectors';

I realize this is a simplistic example, but in my own much larger app based on this boilerplate, I'm finding it increasingly difficult to isolate features. Sagas in one component are needing to access selectors, actions, and constants in other components or from the app level. It just seems dirty to me. I worry about code-splitting and reuse. But I don't have a better solution.
I would love to hear from @mxstbr and other contributors about these design decisions. Having read through many of the past issues, I know there has been lots of talk about the organization and design of this boilerplate. I'm sure there are good reasons for many of the choices.

Is the design simply a symptom of the react and redux architecture?
If not, was it an intentional design decision and what was the reasoning?
If this is not the desired design, do you simply need more time to better separate concerns?
Is the monolithic nature of apps built in this manner not concerning to anyone else?
Or have these cross-dependencies just not yet been considered?
How do these cross-dependencies affect code-splitting?
Without better isolation, how can these components be reused in other apps, especially if the state shape is not the same?

For a little background, I recently built a large enterprise real-time application using web components (via Polymer). I'm not trying to compare React/Redux with it in the least, but the design pretty much enforced isolation. It was important to build components that were portable and reusable, so I'm struggling to accept some of the patterns I'm seeing here.
Note that this is my first large-scale React project, but I have years of full-stack javascript experience. So perhaps I haven't yet learned the right way to do things in react/redux. Or maybe this is just the norm for react/redux development and I need more time to get used to it.

I have probably less experience with it than you but since we started to work using a clean react boilerplate I can see that the more it grows the more I see cross-imports.
We are rewriting bootstrap 4  using 100% styled components from a-Z incl doc.
To get the full features for my components:

Components that work with theming
Components that has default theming values
Components that can also work without theming
Components that can also work for react/native
Being able to share it quickly to the opensource community

Problem is it's a lot of work to figure out how to remove properly theses imports and create packages quickly like in Java. I feel it's almost impossible in some cases.
I think it's an interesting question, thanks for asking it.

It's really not a good practice access selectors, actions, and constants in other components. To simplify and make the components clean, I would like to put all the share selector, actions, and constants in the global scope(the app level). I know it will make the app level complicate, but it's easier to maintain the whole project.

@kopax Is bootstrap going to be using the styled-components?
@tauren Great question, it appears to be mostly related to Redux! I personally believe Redux is popular because it is abstract. This is good and bad, GOOD as it enables flexibility so you can bend it to your needs, BAD bad as it doesn't really give you an opinionated way on how to do something.
In terms of code structure, this boilerplate follows the "Domain-style", which works well when each folder is self-contained.

But often, more than one component will need to use those actions, selectors, sagas, and constants. So we end up with a web of imported modules that becomes increasingly harder to keep track of as the application grows.

That is correct, for a lot of apps, there will be shared state, actions, and selectors. How to achieve this all comes down to personal preferences and what suits your specific needs (there is no one-size fits all). One approach I've found that works fairly well is to place all shared Redux "stuff" under the App container (e.g. containers/App/ in this boilerplate), but there are many ways to achieve this.
There is a great article from Tal Kol on Medium discussing the topic of structuring. Another fantastic resource for all things React / Redux is React/Redux Links by Mark Erikson.
Not sure anything I've said will actually help, but let us know if you find something useful :)

@samit4me, yes.
You have components store on a side under components/bootstrap/{atoms/molecules/organisms}
Beside you also have mixins/utilities available in styled/helpers/bootstrap/{mixins/utilities} and configuration styled/themes/bootstrap/{atoms/molecules/organisms} with easy override by keeping default values all the time. Works pretty well. We are redoing the bootstrap documentation, I was thinking to share this work if the community can help to maintain and improve.
We didn't kept the bootstrap.js, it's all styled-components.

@taurent, I think the purpose is to have thin containers (aka container components). The container components should be reusing components (aka presentational components). In a larger feature, any global state should be passed down as a prop from the container to the component, so the components can still be reusable.
The piece of code from the example could be improved by letting LanguageProvider have all the locale related values and states. DEFAULT_LOCALE should not be in App/constants but in LanguageProvider/constants.
Then the HomePage should have, in that example case, all the repos within the its own HomePage folder. I think in this example case was done like that just to show how you can access the parent container but it was just not a good example.
That way, the containers should only import global values that are used to handle global states like routes, locale, session (auth, user, however you want to call it).
I'm not familiar enough to the bootstrap work done by @kopax, but maybe trying to have a clear distinction between local and global states can help (maybe themes related stuff can be kept in a global state).

Here is a classic example of how there is no correct way, the docs refer to a medium article about how the author finds it useful to separate Presentational and Container components and then regrets ever writing the article in this tweet. I think the takeaway from this is, experiment and try different ways and find what works best for your use case.

Closing the issue as there is no clear action to be taken, but feel free to continue the discussion.

Not sure whether to leave a comment here or bring up a new issue.
In development, on multiple projects we've noticed that we end up with DEFAULT_LOCALE in both App/constants and LanguageProvider/constants. Additionally available locales ends up being placed in both LanguageProvider/constants and i18n.
I believe ideally it gets moved into a single location. Previously, in a later stage project we removed it from App/constants thinking this was fine as it wasn't used anywhere internally, but neglected to check the scripts folder. This was quickly found once extract-intl breaks, but it seems weird to need DEFAULT_LOCALE in two places therefore possibly with a conflicting value.
Thoughts?

@hunterwilliams def open up a new issue


RyeSDK returning Null for all requests on MAC

We are currently using the rye SDK to power an amazon shopping experience and in our testing we are finding that we are getting and all requests to the Rye SDK are currently failing on mac.
They are not failing on windows with the same methods, shopperIP, and auth token are all the same. However, it just does not return anything on mac.

Had to change the import statement


Update pull request template

Some additional ideas for what we could include in the Pull Request template for the develop branch. Leaving as a draft pull request for now... please feel free to edit/add extra ideas!

Some future changes:

If we settle on an auto formatter, replace "Use PEP8" with "Run the X formatter on all code cells (in JupyterLab: click 'Edit', then 'Apply X Formatter'"
We will need some instructions on how to "Test notebook on both the NCI and DEA Sandbox".


hoypido

guys my main app is down, but all others are working fine, i need someway to contact you in order to get this fixed.
please help me out asap with this

if the dashboard loads, it shows "temporary error" whener i click on a collection

you should probably provide some log data and turn on VERBOSE to 1 .. dont think you will get an answer with this type of post w/o more details

If you app is still on parse.com, you should contact the parse team on https://parse.com/help. if you parse-server app is down, you should check with your hosting, deployments etc... and report back when you have more informations.


Add a note to install a package manager for Windows users to prevent errors using the make command

Summary
When compiling the documentation using Sphinx with this command:
make html, Windows users might run into this error:
make is not recognized as an internal or external command, operable program or batch file
Details
In the Development page of Wagtail's documentation, a note callout could be placed in the Compiling the Documentation section, notifying Windows users of a likely error, they could encounter when running: make html.
If the error is: make is not recognized as an internal or external command, operable program or batch file, the callout could suggest that the user use a package manager like Chocolatey to install the make tool.

@lb- I would like to find out from you if you think this is needed. It was something I struggled with so I thought it might be beneficial to future users if this note was included.

Yeah maybe we need a heading under - https://docs.wagtail.org/en/latest/contributing/developing.html#setting-up-the-wagtail-codebase
Maybe just before the next testing heading.
Development with Windows
... Some preamble about how development on Windows is not as well documented as we would like and recommend that the Docker/vagrant approaches would be better.
Then document some additional set up steps that will be needed.

CRLF setup
Installing Make
Terminal/PowerShell or all the options?

Start with the note about Make but just thinking that it may be good to gather feedback on Slack from Windows users.

Yeah maybe we need a heading under - https://docs.wagtail.org/en/latest/contributing/developing.html#setting-up-the-wagtail-codebase
Maybe just before the next testing heading.
Development with Windows
... Some preamble about how development on Windows is not as well documented as we would like and recommend that the Docker/vagrant approaches would be better.
Then document some additional set up steps that will be needed.

CRLF setup
Installing Make
Terminal/PowerShell or all the options?

Start with the note about Make but just thinking that it may be good to gather feedback on Slack from Windows users.

Okay thanks, will work on that


Theme primaryColor is applied to CupertinoActionSheet but not CupertinoAlertDialog

When isDestructiveAction is set to false, the action buttons of CupertinoActionSheet uses the primaryColor defined in the theme:
https://github.com/flutter/flutter/blob/58ec4839159ea24eafe200d9c1ff41e35f720fa0/packages/flutter/lib/src/cupertino/dialog.dart#L696
But contrastly in CupertinoAlertDialog, when isDestructiveAction is set to false, CupertinoColors.systemBlue is used instead:
https://github.com/flutter/flutter/blob/58ec4839159ea24eafe200d9c1ff41e35f720fa0/packages/flutter/lib/src/cupertino/dialog.dart#L1716
Since the usage of these two widgets are very similar, should we unify the behavior?
I'm happy to submit PRs if you guys have a decision on this.

Hello @crizant-mpower. Thank you for filing this request. Labelling for further insights from the team.

Merged in and closed.


Doesn't work?

When I change the values of my vr and load up mario kart it says that my save file is corrupted.
any help is good but I need to figure out how to fix this

restore with checkpoint the backups in the folder mk7se/backups
the program creates backup data automatically, I think the error of the corrupt data is because you have downloaded your VR to 0, the game statistics can only load up to 1 and that may have corrupted the data.


Fix environment variables

Some environment variables have no effect due to setting the variables to an empty string or a string at the beginning of the code.

I prefer to keep those in place. It’s more for reference than anything else.

To put it simply, every script shows every variable that it can possibly use (in alphabetical order) and these variables are meant to be edited and then executed.

If you set environment variables at the beginning of the code as you do currently, user-defined environment variables will have no effect, meaning that if a variable like HOST_NAME is required in the caddy app, the script cannot be executed correctly even if the variable is set, since shell variables take precedence over environment variables. If you need to have those variables as a reference, just use comments. See this Makejail:
https://github.com/AppJail-makejails/inventree/blob/main/scripts/admin.sh#L3

That is correct. The scripts were designed to necessitate setting the variable within the actual install script.
These scripts are developed more toward simplicity and not automation.
I do see your point though.

Ah, I see, but remember that AppJail is an automation project, so if variables need to be changed from code, the Makejail is useless because people can't use settings other than the default ones.
I like your idea, but if this doesn't work, I'll unfortunately have to remove Makejail from the organization.
Of course, this doesn't mean that your project can't be used with AppJail, it just means that the Makejail can't be used.

A simple fix could be to source the environment after the given list, so users could still set them through a .env file.

I think the best solution is to create a .env file in each application directory with the default values, but it is a mere reference (with comments explaining the options if you want). This file is not loaded by *-install.sh scripts. The user can load from his shell the .env file and run the *-install.sh script. This also does not exclude automation systems.

So, would simply adding a .env file into each directory, and adding every value in there.
Then source that right off the bat.
How would that work with Appjail?

AppJail will not use that file. What I need is that the scripts do not overwrite the environment variables as it currently happens.
The .env file is for the users, but I only said that as a recommendation and it is not really necessary.


Upgrade scheduler-plugins version to v0.26.0

What this PR does / why we need it:
I upgraded the scheduler-plugins version to v0.26.0.
Which issue(s) this PR fixes (optional, in Fixes #<issue number>, #<issue number>, ... format, will close the issue(s) when PR gets merged):
Fixes #
Checklist:

[ ] Docs included if any changes are user facing

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
10 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.1%) to 40.336%

Files with Coverage Reduction
New Missed Lines
%

pkg/controller.v1/mpi/mpijob_controller.go
10
80.12%

Totals

Change from base Build<PHONE_NUMBER>:
-0.1%

Covered Lines:
3861

Relevant Lines:
9572

💛  - Coveralls


Add second provider endpoint to facade and add UI

Two clinical endpoints.
Add UI

@swmuir can you please include testing criteria/approach to verify this story?

Consider this card done. Open new card to align with approach for login and patient identification with OHSU.


[AP-9949]Fix duplicate evidence report inside batch

close channel for unmplemented batch report
fix duplicating evidence report inside a batch
Summary

Test Plan

Task
[AP-###]

#76  👈 (View in Graphite)
main

This stack of pull requests is managed by Graphite. Learn more about stacking.


Show shorter messages, log longer into history

This is already done for new item spotting messages. The next candidate could be combat messages (perhaps even show exact numerical values in the log message?). Part of the task is to brainstorm where this could be and where this should be used and to what extent. E.g., should the combat messages be really minimal on the screen or does it remove the fun? Should this be controlled by a config file setting? How to even let a newcomer know he can read a longer variant message just by pressing SPACE? Documenting this in manual won't be enough.

Related: when detecting items and saying "you locate torch", display the symbol (or symbols, if multiple items) in the history log (probably not in the screen message). If many items, probably format as a list, with the symbol at the start.

It seem the only places where we could shorten messages on screen and lengthen them in history log is DisplayAtomicM and the only thing to search is partItem. If it turns out we want to do this across the board, a general mechanism should be created, though this is not trivial, because the descriptions are generated in very diverse ways.

The following six messages have been transformed, in addition to the previous MsgSpottedItem:
  | MsgStatusSleep
  | MsgStatusGoodUs
  | MsgStatusBadUs
  | MsgStatusOthers
  | MsgStatusLongerUs
  | MsgStatusLongThem

The combat messages have not been attempted yet. A separate, history-only message class MsgNumericReport is used for numeric information about combat. Probably it should be extended with extra numeric details, such as armor values, to teach the player the mechanics of combat. That should be kept in synch so that the normal combat messages provide English descriptions and the numeric, in the same order and probably with the same labels, adds details. Sometimes, particularly when it would help deduplicating messages, we could relegate even English adjectives to the history-only message.

That's a good start. For v0.10, let's only split messages that stick out as too long when playtesting. Adding any more log-only messages can be postponed until any feedback is gained about the existing ones.


add support for source jars to scala_library

This is pulled out from https://github.com/bazelbuild/rules_scala/pull/29
This adds support for source jars. This will be used and tested immediately by another PR

closes https://github.com/bazelbuild/rules_scala/issues/2

👍 will merge when green.


How to change Alert Dialog's background color

Is there a way to do that? Including buttons
val alert = alert {
     customView = layoutInflater.inflate(R.layout.test, null)
     okButton { }
}

I could set the background for my custom view but in this case, the OK button won't be colored.

I don't think Anko can do it since the AlertDialog.Builder class in Android SDK does not expose such function. You need to customize the view all by yourself.


Interdependent hyperparameters in sweeps

wandb --version && python --version && uname
wandb, version 0.8.35
Python 3.7.6
Linux
Description
I have an experiment where some config parameters control presense / absense of other hyperparameters. The simplest case is when we have "flag" parameter that controls what kind of layer we use, and hyperparameter set for each layer is different, e. g. num_channels and num_filters for CNN, input_size and hidden_size for RNN, etc.
So I have config variations like
"model.encoder.type": "cnn",
"model.encoder.input_channels": 32,
"model.encoder.stride": 2,
"model.encoder.hidden_size": 32

and
"model.encoder.type": "rnn",
"model.encoder.input_dim": 32,
"model.encoder.num_layers": 2,
"model.encoder.hidden_dim": 32

so depending on "type" parameter, different sets of hyperparameters are required.
I want to use sweeps to search over such hyperparameters space, and I would like to understand
what hyperparameter search strategy should I use to take these dependencies into account?

Hello! thanks for the question!
@raubitsj could you please take a look?

Thanks, this is definitely a good feature request that we're tracking as part of sweeps.

Hey @mojesty
In the past year we've majorly reworked the CLI and UI for Weights & Biases. We're closing issues older than 6 months. Please comment to reopen.


unable to load script for new project  in android (RN 0.64.2)

Description
I started a new project using  that npx react-native init MyApp --template react-native-template-typescript command and after that I run command react-native start and while I'm trying to run android I'm getting that error:
E/unknown:ReactNative: Exception in native call
    java.lang.RuntimeException: Unable to load script. Make sure you're either running Metro (run 'react-native start') or that your bundle 'index.android.bundle' is packaged correctly for release.
        at com.facebook.react.bridge.CatalystInstanceImpl.jniLoadScriptFromAssets(Native Method)
        at com.facebook.react.bridge.CatalystInstanceImpl.loadScriptFromAssets(CatalystInstanceImpl.java:234)
        at com.facebook.react.bridge.JSBundleLoader$1.loadScript(JSBundleLoader.java:29)
        at com.facebook.react.bridge.CatalystInstanceImpl.runJSBundle(CatalystInstanceImpl.java:263)
        at com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:1293)
        at com.facebook.react.ReactInstanceManager.access$1100(ReactInstanceManager.java:131)
        at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:1023)
        at java.lang.Thread.run(Thread.java:923)

I've tried to lunch it through command and also through Android Studio and both didn't work.
For ios I experienced `Command PhaseScriptExecution failed with a nonzero exit code` for the first time,
but it disappeared after restarting my computer.
Please, help

React Native version:
System:
OS: macOS 11.4
CPU: (8) x64 Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz
Memory: 197.63 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 15.9.0 - /usr/local/bin/node
Yarn: 1.22.10 - /usr/local/bin/yarn
npm: 7.5.3 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
Managers:
CocoaPods: 1.10.1 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: iOS 14.5, DriverKit 20.4, macOS 11.3, tvOS 14.5, watchOS 7.4
Android SDK:
API Levels: 28, 29, 30
Build Tools: 28.0.3, 29.0.2, 30.0.3
System Images: android-29 | Intel x86 Atom_64, android-30 | Google APIs Intel x86 Atom
Android NDK: Not Found
IDEs:
Android Studio: 4.1 AI-201.87<IP_ADDRESS>42882
Xcode: 12.5.1/12E507 - /usr/bin/xcodebuild
Languages:
Java: 1.8.0_282 - /usr/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: 17.0.1 => 17.0.1
react-native: 0.64.2 => 0.64.2
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found
Steps To Reproduce
Provide a detailed list of steps that reproduce the issue.

npx react-native init MyApp --template react-native-template-typescript
react-native start
react-native run-android (or lanch it through Android Studio)

Expected Results
The app appears with a new app screen

I have this same problem.
Windows 10
Java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)
Android Studio 2020.3.1 Patch 2
node v16.8.0
npx 7.21.0
Android 10.0 (Q) Intel x86 Atom_64 System Image
Android SDK 29.0.2
JAVA_HOME: C:\Program Files\Java\jdk1.8.0_301
ANDROID_HOME: C:\Users<username>\AppData\Local\Android\Sdk


Command to download templates from repo

Perhaps more useful for organisations. This would download a series of uploaded templates from a GitHub repository.
Implementation:
To download from a nusex-templates repo of a user:
nsx download parafoxia

To download from a specific repository (this might not make it in):
nsx download https://github.com/parafoxia/nusex-templates
# or
nsx download parafoxia/nusex-templates

Closed as I don't really see this being that useful, and the implementation is pretty unclean.


Make zmq timeouts configurable in OneFlow

Description
When the service has multiple roles, and the first role boots quickly (i.e. Linux), and the rest of the roles take long, it works fine. However when there is only one role that takes longer to boot it doesn't update. In all cases, OneGate reports READY on the VM itself, but the service is not updated. We see the message "Timeout reached for VM [494] to report"
To Reproduce

Instantiate a service within role that take a long time in prolog state (VM with big disks)
VM will be instantiated and report successfully to OneGate
In OneFlow logfile the message "Timeout reached for VM [494] to report"
Sunstone will not update the service anymore to "RUNNING"

Expected behavior
Timeout should be configurable for these cases.
Details

Affected Component: OneFlow
Version: development.

Progress Status

[ ] Branch created
[ ] Code committed to development branch
[ ] Testing - QA
[ ] Documentation
[ ] Release notes - resolved issues, compatibility, known issues
[ ] Code committed to upstream release/hotfix branches
[ ] Documentation committed to upstream release/hotfix branches

PRs to merge in master:

code: https://github.com/OpenNebula/one/pull/4521
docs: https://github.com/OpenNebula/docs/pull/1049


Task 1.7.2 in branch benchmark_v2.0.0 has incorrect indentation

Describe the Issue
In #255 branch.
     - name: "1.7.2 | PATCH | Ensure GDM login banner is configured | banner settings"
       ansible.builtin.lineinfile:  # noqa: args[module]
         path: "/etc/dconf/db/{{ prelim_dconf_system_db }}.d/00-login-screen"
         regexp: "{{ item.regexp }}"
         line: "{{ item.line }}"
         insertafter: "{{ item.insertafter }}"
         create: true
         owner: root
         group: root
         mode: 'u-x,go-wx'
-        loop:
-          - { regexp: "\\[org\\/gnome\\/login-screen\\]", line: "[org/gnome/login-screen]", insertafter: EOF }
-          - { regexp: "banner-message-enable", line: "banner-message-enable=true", insertafter: "\\[org\\/gnome\\/login-screen\\]" }
-          - { regexp: "banner-message-text", line: "banner-message-text='{{ ubtu22cis_warning_banner | regex_replace('\n', ' ') | trim }}'", insertafter: "banner-message-enable" }
+      loop:
+        - { regexp: "\\[org\\/gnome\\/login-screen\\]", line: "[org/gnome/login-screen]", insertafter: EOF }
+        - { regexp: "banner-message-enable", line: "banner-message-enable=true", insertafter: "\\[org\\/gnome\\/login-screen\\]" }
+        - { regexp: "banner-message-text", line: "banner-message-text='{{ ubtu22cis_warning_banner | regex_replace('\n', ' ') | trim }}'", insertafter: "banner-message-enable" }
       notify: Update dconf

Actual Behavior
At present results in item is undefined

hi @kbknapp
Thank you for the rapid feedback before PR merge. This has now been addressed and in the latest PR updated.
Many thanks once again
uk-bolly

hi @kbknapp
This should now be in a correct place, all linting has been updated to the latest configurations and hoping the PR will be approved today for merging into devel.
Thank you once again for your feedback.
uk-bolly


Github Actions: LGTM.com is being EOL'd, we need to migrate to CodeQL.

See https://github.blog/2022-08-15-the-next-step-for-lgtm-com-github-code-scanning/ for more information.

Github's automatic migrator has provided PR #2569 for this, though probably a little bit of manual work remains.


make build-frontend fails

Output of make build-frontend :
[*] Cleanup SvelteKit App
[OK] Cleanup done
[*] Building SvelteKit App

><EMAIL_ADDRESS>tailwind:build
> cross-env TAILWIND_MODE=build cross-env NODE_ENV=production postcss src/styles/tailwind.css -o src/styles/tailwind-output.css

warn - You have enabled the JIT engine which is currently in preview.
warn - Preview features are not covered by semver, may introduce breaking changes, and can change at any time.
Source path: /data/dascr-board/frontend/src/styles/tailwind.css
Setting up new context...
Finding changed files: 5.329ms
Generate rules: 52.277ms
Build stylesheet: 1.104ms
Potential classes:  2611
Active contexts:  1
Content match entries 1206
JIT TOTAL: 187.436ms

><EMAIL_ADDRESS>build:only
> svelte-kit build

file:///data/dascr-board/frontend/node_modules/.pnpm/@sveltejs+kit@1.0.0-next.263_svelte@3.46.4/node_modules/@sveltejs/kit/dist/cli.js:1176
					} else if (allow?.length && cwd) {
					                 ^

SyntaxError: Unexpected token '.'
    at Loader.moduleStrategy (internal/modules/esm/translators.js:133:18)
npm ERR! code 1
npm ERR! path /data/dascr-board/frontend
npm ERR! command failed
npm ERR! command sh -c svelte-kit build

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/davy/.npm/_logs/2022-02-10T10_16_34_810Z-debug.log
make: *** [Makefile:52: build-frontend] Error 1

Log file :
0 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'build:only' ]
1 info using<EMAIL_ADDRESS>2 info using<EMAIL_ADDRESS>3 timing config:load:defaults Completed in 1ms
4 timing config:load:file:/usr/share/nodejs/npm/npmrc Completed in 2ms
5 timing config:load:builtin Completed in 2ms
6 timing config:load:cli Completed in 2ms
7 timing config:load:env Completed in 0ms
8 timing config:load:file:/data/dascr-board/frontend/.npmrc Completed in 0ms
9 timing config:load:project Completed in 1ms
10 timing config:load:file:/home/davy/.npmrc Completed in 0ms
11 timing config:load:user Completed in 0ms
12 timing config:load:file:/etc/npmrc Completed in 1ms
13 timing config:load:global Completed in 1ms
14 timing config:load:cafile Completed in 0ms
15 timing config:load:validate Completed in 2ms
16 timing config:load:setUserAgent Completed in 0ms
17 timing config:load:setEnvs Completed in 1ms
18 timing config:load Completed in 10ms
19 verbose npm-session 20088485fea873b5
20 timing npm:load Completed in 19ms
21 timing command:run-script Completed in 112ms
22 verbose stack Error: command failed
22 verbose stack     at ChildProcess.<anonymous> (/usr/share/nodejs/@npmcli/promise-spawn/index.js:64:27)
22 verbose stack     at ChildProcess.emit (events.js:314:20)
22 verbose stack     at maybeClose (internal/child_process.js:1022:16)
22 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:287:5)
23 verbose pkgid<EMAIL_ADDRESS>24 verbose cwd /data/dascr-board/frontend
25 verbose Linux 5.13.0-28-generic
26 verbose argv "/usr/bin/node" "/usr/bin/npm" "run" "build:only"
27 verbose node v12.22.5
28 verbose npm  v7.5.2
29 error code 1
30 error path /data/dascr-board/frontend
31 error command failed
32 error command sh -c svelte-kit build
33 verbose exit 1

These are the versions that are installed :
git : 2.32.0
go : 1.17.6
gcc : 11.2.0
node : 12.22.5
pnmp : 6.30.1
yarn : 1.22.17
I have no idea on how to solve this.
Can anyone help?

pnpm version
{
npm: '7.24.1',
node: '14.17.5',
v8: '8.4.371.23-node.76',
uv: '1.41.0',
zlib: '1.2.11',
brotli: '1.0.9',
ares: '1.17.2',
modules: '83',
nghttp2: '1.42.0',
napi: '8',
llhttp: '2.1.3',
openssl: '1.1.1k',
cldr: '39.0',
icu: '69.1',
tz: '2021a',
unicode: '13.0'
}

Mine seams to be 14.17.5 as I tested building yesterday. Maybe you try updating and retry building?
Other than that the error is unfortunately not really specific.

In retrospective choosing svelte for frontend might have been a failure as they introduce breaking changes all the time.

Thx. Updating node to 14.19.0 did the trick.


[request] Search Containers by Lolcation/World & Items by keyword

Allow us to put in the TPPOS of a container to search for a specific container
Allow us to use keywords to search the container for block/item

Hai FrozenBeard, you can now search the containers by world location.  The instructions may not be trivial, but you can:

Set a coordinate for the container (if just that single container, use "Center" and radius of 0)
Choose actions of -Container and +container
Search specific items by using "Materials" field

The lookup may take a long time (my random test took 40 seconds only to find 4 transactions with a limit of 30).  When searching, I advise use count value near 1 and keep loading more by 1.
Let me know if anything else.  I'll close the ticket for now!

Dope, im still using CoreProtect 2.14.4 on Paper 1.12.2 using MySQL storage, Will this work if I update the web UI?

Yes, that should work!


[feature request]: Break the App.vue into different components

Is there an existing issue for this?

[X] I have searched the existing issues.

Describe the feature.
As of now, the entire code lies in a single file App.vue which has grown bigger with time.
This can be segregated into different components and put into the components folder.
Problem/Motivation.
The App.vue file has grown bigger and looks dirty, honestly.
Possible Solution/Pitch.
This can be segregated into different components and put into the components folder.
Anything else?
No response
Hacktoberfest

[X] Yeah

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Assign this to me :)

Sure, @FlavioOdas
Go ahead


StochDynamicProgramming.jl

Hey @blegat, have you seen this? https://github.com/JuliaOpt/StochDynamicProgramming.jl

Thanks for the heads up, I didn't see StochDynamicProgramming when I started this package (see here). A few months ago I saw it. It seems unfortunate that we created 2 packages with apparently exactly the same goal but I thing that they are complementary and with a little bit of generic interfaces they can work together.

Somewhat surprisingly, there are actually quite a few (I know of at least four) implementations of SDDP being developed in Julia...
I don't fully understand the code but it's a nice idea to leverage StructJuMP.

Could you giveca link to the two other ones ?

Unfortunately they're not public projects

What don't you understand in the implementation ? I will add a doc in the future and it would help to know what would be helpful to say

A schematic layout of how the subproblems are laid out/stuctured via StructJuMP would be good.
I haven't delved into the code too deeply though...

Could you just tell who are the dev of the two private implementations ?

Ha! I have one, and PSR are working on another https://github.com/JuliaOpt/MathProgBase.jl/issues/139#issue-197202945

Oh I see. I also saw @joaquimg's comment but I wasn't sure you were talking about that one.
Are you planning to make yours public at some point ?

The idea I have to make the different SDDP solvers work together is to have a modular framework. That is, split the SDDP algorithm in independent parts. The use could then use parts from different packages and still get a working SDDP implementation.
Those different parts could be

The core : The main function that is called and that is using the other parts.
A termination criterion : Those could also be mixed with || and &&. For instance, you could do IterLimit(max=100) || (Pereira(2) && IterLimit(min=10)) which would stop after 100 iterations or if the pereira coef wants to stop and at least 10 iterations have been done.
A cut manager : Stores a set of cuts (so a polyhedron), after each solve, it gets the dual variables (giving hints of which cuts are useful) and it may remove cuts whenever he likes.
An NLDS Model : Gets queried to add constraints, remove some, solve the problem, returns solution... For instance, StochDynamicProgramming.jl would implement an NLDS Model using JuMP and StochasticDualDynamicProgramming.jl would implement one using MathProgBase.
A sampling method : Its input are the number of sample to take, the probabilities for each and the number of paths for each child. For instance, you could either take randomly each path with the probabilities, samples some path deterministically and then take the rest randomly (for instance, if the proba are 0.5 and 0.5 and there 11 samples. we can split 5/5 and then take the last one randomly). For the entropic cone, since I only care about feasibility cuts and that the graph is a bit messy, it makes sense to sample more where there are more path to have a good coverage.
...


⚠ Processors has degraded performance

In 8ee0e1a, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 46 ms

Resolved: Processors performance has improved in 9abe574.


A couple README fixes for generic addPairwiseEnergy

Two things in the documentation of the generic non-2D addPairwiseEnergy:

The feature matrix needs to have shape (feature_dimensionality, npoints); the example previously had this transposed.
The feature dimensionality is not necessarily equal to nlabels; I changed it to 5 from 3, because it was confusing for me to have these equal by coincidence in the example.

You're absolutely correct. Sorry for confusing you, and thanks a lot for the fix!

I should add that I didn't test the generic non-2D part much, feel free to open issues if you encounter more problems.


Support InviteMetadata in getGuildInvites

What would you like implemented? What do you want that Twilight lacks?
Invite metadata to be returned when calling exec on the GetGuildInvites struct

What use case does this request address? This should be more than a single project's use case.
I am porting moderation features of my bot and I currently include the invite used in my join logging. I also use at as a part of my automod and require the uses field to figure out the invite used when a user joins. This feature will also help invite tracking bots and help twilight support all features of the discord api.

Are you willing to help towards contributing this feature?
I don't feel like my personal knowledge of rust is enough to contribute towards this project but I'll do whatever I can :)

This actually ended up being a bug.


upgrade to github/branch-deploy at v10.0.0-rc.1

This pull request upgrades github/branch-deploy to the latest release candidate: https://github.com/github/branch-deploy/releases/tag/v10.0.0-rc.1

.deploy

.unlock

.deploy


fix spawn facing

I thought that the incorrect spawn facings was default to 1.1 patch.
But when "Start New Server", the spawn facings are proper.
I think the source of this issue is codam's spawner.gsc, line 190.

(for example, when russian on mp_harbor, you spawn facing to the wall)

The game has been this way since well CoDaM came around, I don't think we should remove it just like that.
I suggest the following:
if(!codam\utils::getVar("scr", "mm_legacy_spawnangles", "bool", 1|2, false))
    self setPlayerAngles((-13, self.angles[1], 0));

i cancel my request

We settled on reverting to whatever stock does.
￼<22:36:10> "Cheese": my opinion is to default to whatever stock does


Convenient access to dates / times

Hello,
I am using your package quite extensively and like it a lot. I find access to DateTime inconvenient, but could be missing something. I am looking for a getter/property that will return either null or a DateTime for a FhirDateTime. Instead I seem to get a rather inconvenient Either<PrimitiveFailure, DateTime> construct back.
This is leading to constructs like this one:
DateFormat.yMd(languageCode).add_jm().format(
_observation.effectiveDateTime.value.getOrElse(() => null))
Is there an existing accessor like the one that I am looking for and I am simply overlooking it? Or could something like that be added to FhirDateTime?
Sincerely,
Tilo

I'm glad it's been working for you, and I appreciate the feedback! (it helps me to fine tune the package). So I created the primitives like that because it gave them automatic validation to ensure their format is correct (as specified here). And I do think that's really important, but it does at times make it harder to work with. You can try calling toJson() or toString() (they should produce the same values for DateTimes). But I agree it could probably be easier to work with, so I may need to look into other ways to do the validation. DateTimes in general are tough to work with because in FHIR they can be just a year, a year/month, a year/month/day, a year/month/day/sec, etc.
What do you think would work better for what you're trying to do? If you could just call _observation.effectiveDateTime.value would that be reasonable? Also, you're welcome to join our slack channel if you'd like: https://join.slack.com/t/fhir-fli/shared_invite/zt-kv1z4ahy-WbFYPh6Bn8YXN5cuscvS~g

Also, what are you using the package for? (I'm interested in use cases)

I am using the package for mobile data capture. I am using various data sources (this one: https://github.com/cph-cachet/flutter-plugins/tree/master/packages/health and a commercial Bluetooth library) to read sensors. Then I normalize everything into FHIR Observations, store them into a local database (currently Hive) and then sync them to a FHIR server.
So I have written a bunch of Widgets to display observations and some persistence code for them (just as JSON strings).
Based on this use case my date/times are always filled with year/month/date hour/minute/seconds and I don't need much in the ways of validation or handling of different precisions.

Alright, give it a whirl now. In version 0.2.2 I've slightly refactored how I work with primitives. You should just be able to call _observation.effectiveDateTime or _observation.effectiveDateTime.value and have it return the actual value. Because of this, I have to override '==' for all of those objects. So if you're trying to compare them with something else, they have to be called first.
final _id = Id('id');
final anotherId = 'id';
_id == anotherId; //true
anotherId == _id; //false

How do you like working with Hive? It looked good, but then I saw that he was deprecating it for a second version, so I didn't look too far into it yet.

Hey thanks for listening! I will give this a whirl and it really looks much easier now.
I can't really tell yet, how much I like Hive, as I haven't used it for long. I am not asking much of a database, as I am merely using it to cache JSON strings and a couple of state flags (isSynched, synchAttemptCount, etc.). I tried Moor first, ditched it, now I am using Hive (also aware of the discontinuation). I am looking at Sembast (how is it working for you?) and maybe Isar (the successor to Hive, but still Alpha).
I am overall a bit unhappy about the state of affairs with databases in Flutter. I want to share a database between a background process and my app and it seems that all DBs under Flutter come with severe limitations when it comes to multi-isolate or multi-process. They all warn of corruption and lockups. So maybe I'll end up writing solid SqlLite code in my native portion and access it from a MethodChannel.

I am trying out 0.2.2 now and it seems it is converting FhirDateTime to an ISO8601 String when you access .value on it?
All the other primitives are coming back as the similar Dart type, such as Integer.
But FhirDateTime does this:
String get value => _value.fold(
        (l) => l,
        (r) => _formattedFhirDateTime(r),
      );

all the other primitives are just doing (r) => r
any particular reason? I would find it more natural if .value returned a DateTime and .toString() would return a string.
My use-case is to pass the date/time into localized formatting methods for display, so losing access to the DateTime object would mean I have to re-parse the ISO8601 string into a DateTime before formatting it. getOrElse was able to return the DateTime.

Yeah, so this is one of those idiosyncrasies with FHIR. FhirDateTime only requires a year. So any of the following are valid:
FhirDateTime('2020')
FhirDateTime('2020-01')
FhirDateTime('2020-01-01')

And then when converted back, they should only have the values given.
print(FhirDateTime('2020')); // '2020'
print(FhirDateTime('2020-01')); // '2020-01'
print(FhirDateTime('2020-01-01')); // '2020-01-01'

But if I call them a DateTime in Dart, I get the following:
print(DateTime(2020)); // '2020-01-01 00:00:00.000'
print(DateTime(2020, 01)); // '2020-01-01 00:00:00.000'
print(DateTime(2020, 01, 01)); // '2020-01-01 00:00:00.000'

Which isn't correct. So that's why I do the formatting before I return the value. The three classes that work like this are:
https://github.com/MayJuun/fhir/blob/dev/fhir/lib/primitive_types/date.dart
https://github.com/MayJuun/fhir/blob/dev/fhir/lib/primitive_types/fhir_date_time.dart
https://github.com/MayJuun/fhir/blob/dev/fhir/lib/primitive_types/instant.dart
Feel free to take a look and if you think there's a better way of ensuring the proper value is returned, I'm happy to accept pull-requests.
I will consider returning a DateTime when .value is called though.
The one other option, I suppose, would be to add a .dateTime method to those classes. So
_observation.effectiveDateTime.value or _observation.effectiveDateTime, will continue to work as they do now.
But
_observation.effectiveDateTime.dateTime would return DateTime.tryParse(value)

I am putting on my Medical Informatics hat and pondering this :-)
I like your idea of either having .value or .dateTime return a real Dart DateTime. I guess I usually use dates to format them, feed them into a calendar, sort them etc. rather than process them as a string. I am wondering whether a "precision" property would be the best of both worlds.
So that
print(FhirDateTime('2020-01')); // '2020-01'
print(FhirDateTime('2020-01').value); // '2020-01-01 00:00:00.000'
print(FhirDateTime('2020-01').precision == DateTimePrecision.YYMM);  // true

According to the spec there can be 4 levels of precision.
FWIW: As per the spec 'Instant' is always full precision, so I guess it could always simply be a DateTime.

Working on the idea: https://github.com/tiloc/fhir/commit/f9a67e0e7e8c2829fd05a1b63f32d2a95b33b385
Not enough test coverage yet, but shouldn't break more things than your previous change, handle string, DateTime, precision, and be ready for a PR before the weekend.

Thanks again for the PR, should be all incorporated in 0.2.4.


Cannot read property 'name' of undefined

Environment

Operating System: Darwin
Node Version:     v16.13.1
Nuxt Version:     3.3.1
Nitro Version:    2.3.2
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      meta, modules
Runtime Modules<EMAIL_ADDRESS>Build Modules:    -

Reproduction
https://github.com/Mnigos/biuro-makowska
Describe the bug
Application is building fine, but not in vercel deployment.
Additional context
nuxt.config.ts
// https://v3.nuxtjs.org/docs/directory-structure/nuxt.config
export default defineNuxtConfig({
  meta: {
    title: 'Biuro Makowska',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      {
        hid: 'description',
        name: 'description',
        content:
          'Biuro Rachunkowe Joanna Makowska to certyfikowane biuro, które zapewnia swoim klientom profesjonalną obsługę oraz rzetelne i fachowe świadczenie usług księgowych.',
      },
      {
        name: 'msapplication-TileColor',
        content: '#000000',
      },
      {
        name: 'theme-color',
        content: '#ffffff',
      },
    ],
    link: [
      { rel: 'icon', type: 'image/png', sizes: '32x32', href: '/favicon-32x32.png' },
      { rel: 'icon', type: 'image/png', sizes: '64x64', href: '/favicon-64x64.png' },
      { rel: 'manifest', href: '/site.webmanifest' },
    ],
  },
  modules: ['nuxt-windicss'],
})

Logs
$ nuxt prepare
--
18:05:05.374 | [log] Nuxi 3.3.1
18:05:06.986 | [info] [@nuxtjs/web-vitals] Auto detected provider: vercel
18:05:06.991 | [error] Cannot read property 'name' of undefined
18:05:06.991 | at normalizedModule (node_modules/@nuxt/kit/dist/index.mjs:170:106)
18:05:06.991 | at async installModule (node_modules/@nuxt/kit/dist/index.mjs:451:15)
18:05:06.991 | at async initNuxt (node_modules/nuxt/dist/index.mjs:2469:7)
18:05:06.992 | at async loadNuxt (node_modules/nuxt/dist/index.mjs:2523:5)
18:05:06.992 | at async loadNuxt (node_modules/@nuxt/kit/dist/index.mjs:539:19)
18:05:06.992 | at async Object.invoke (node_modules/nuxi/dist/chunks/prepare.mjs:37:18)
18:05:06.992 | at async _main (node_modules/nuxi/dist/cli.mjs:49:20)

I'm also seeing this when trying to run nuxt inside docker container - using  node:14-alpine

Update this:
const perf = performance.measure(`nuxt:module:${uniqueKey || Math.round(Math.random() * 1e4)}`, mark.name);
const setupTime = Math.round(perf.duration * 100) / 100;

to this:
const perf = performance.measure(nuxt:module:${uniqueKey || Math.round(Math.random() * 1e4)}, mark?.name);
const setupTime = perf ? Math.round((perf.duration * 100)) / 100 : 0

thanks @rejkee that got it working for me

in case this helps someone else working in docker, I noticed that updating docker to base from node:18-alpine also fixed the issue for me - with the added bonus that I don't have to manually edit the file

This has already been resolved on the edge channel and will be present in 3.3.2, or alternatively you can upgrade to node 16/18.


[🐛 BUG]: Worker crashed when write logs to stdout

No duplicates 🥲.

[X] I have searched for a similar issue in our bug tracker and didn't find any solutions.

What happened?
we currently use laravel-octane with roadrunner (https://laravel.com/docs/8.x/octane), and we can not write logs to stdout which will make worker crashed.
Here is reproduce repository :
https://github.com/chris-lee-lb/road-runner-laravel-issues
Startup procedures :

composer install
./vendor/bin/sail build --pull
./vendor/bin/sail up -d
open browser with http://localhost

Version
2.6.0
Relevant log output
worker allocated, pid: 44
worker allocated, pid: 45
error: sync_worker_exec_worker_with_timeout: Network:
	sync_worker_exec_payload:
	goridge_frame_receive: CRC verification failed, bad header: 61b95d551e92b
l���, worker's pid: 44
worker stopped, error: signal: killed; process_wait: signal: killed

Hey @chris-lee-lb . Logs are diagnostic information and should be written to the stderr. stdout and stdin process file descriptors are reserved for the RR communication with the worker when you use server.relay = pipes.
But, we understand, that for some reason, the users would like to write the logs into the stdout. This is allowed after workers are initialized because our workers package redirects stdout to the stderr without interrupting RR communication channels.
To get your logs in the stdout in that case, please, use the logs.output = stdout -> click.
Another option is to use server.relay = tcp.

@rustatian Really thanks for your information. After trying spiral/roadrunner-laravel, all works very well.
So I think there maybe the root cause is laravel/octane self. I'll closed it now. Thanks again.


Patch[test] -> Need to check urls are getting detected and relevant results are being extracted

[x] Urls being extracted
[x] Check if AI can generate a relevant result according to the input context
[x] JD is being scraped properly from different sources

done for now


The produced SVG is empty after download

I am unsure if this is a bug or a feature request. I am currently working on a site and I want to provide the user with a way of downloading the produced SVG, however, the downloaded svg appears to be empty. Is this a bug or am I doing something wrong?
SO it is not empty perse but everything is collapsed to 0 height. and 0 widths.
The SVG I am getting looks something like this:
<svg xmlns="http://www.w3.org/2000/svg" width="7.781ex" height="1.441ex" role="img" focusable="false" viewBox="0 -626 3439 637" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" style="vertical-align: -0.025ex;">

<g stroke="#a71e34" fill="#a71e34" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math">

<g data-mml-node="mi"><use data-c="1D461" xlink:href="#MJX-TEX-I-1D461"></use></g>
<g data-mml-node="mi" transform="translate(361,0)"><use data-c="1D452" xlink:href="#MJX-TEX-I-1D452"></use></g>
<g data-mml-node="mi" transform="translate(827,0)"><use data-c="1D460" xlink:href="#MJX-TEX-I-1D460"></use></g>
<g data-mml-node="mi" transform="translate(1296,0)"><use data-c="1D461" xlink:href="#MJX-TEX-I-1D461"></use></g>
<g data-mml-node="mi" transform="translate(1657,0)"><use data-c="1D45B" xlink:href="#MJX-TEX-I-1D45B"></use></g>
<g data-mml-node="mi" transform="translate(2257,0)"><use data-c="1D452" xlink:href="#MJX-TEX-I-1D452"></use></g>
<g data-mml-node="mi" transform="translate(2723,0)"><use data-c="1D464" xlink:href="#MJX-TEX-I-1D464"></use></g>
</g>
</g>
</svg>

This is how I load mathjax:
window.MathJax = {
      tex: {
        inlineMath: [
          ['$', '$'],
          ['\\(', '\\)'],
        ],
      },
      svg: {
        fontCache: 'global',
      },
    };
    (function () {
      var script = document.createElement('script');
      script.src =<EMAIL_ADDRESS>      script.async = true;
      document.head.appendChild(script);
    })();

Calling Mathjax like this
    const MathJax = window.MathJax;
    const res = MathJax.tex2svg(equation);
    const svg = res.querySelector('svg');

Your configuration specifies that MathJax use a global cache for the character paths.  That means there will be a separate svg element in the page that includes a <defs> tag that contains all the paths for the characters used on the page, and the individual expressions will refer to those pages via <use> tags with xlink:href attributes to identify the paths.  So your SVG that is being saved does not include the paths itself, as they are all in the common svg at the bottom of the page.  So when you save the svg separately and try to view it in a different setting, the paths are not available, and the <use> elements will not be able to locate the needed paths.
The solution is to either use a local font cache (each equation has its own <defs> element for the characters in the expression), or no cache at all explicit paths are used rather than <use> tags).
Also not that some CSS my be needed in order for the SVG to render properly.  The examples in the MathJax node demos repository that produce SVG output contain code that inserts the needed styles into the SVG itself, so you might want to look there at any of the tex2svg or mml2svg implementations to see how that is done.

@dpvc thank you for your quick answer - to me it sounds like the easiest solution will be to disable the cache. I cannot find the cache disable the option in the documentation. am I looking at the wrong place?
https://docs.mathjax.org/en/latest/web/configuration.html#configuring-mathjax

That is the generic page about how configuration works,  The individual configuration options for the SVG output are describes here.  Setting fontCache: 'none' should do it.

@dpvc thank you so much this worked


Bulk updates e.g. saving and array []Person

I there a method for this, instead of looping and calling .Save on each element?
If loop is the way to go - what is the best approach to speed things up, such as:
a.) - transaction
b.) - saw something on batch mode, but is hard to find examples....

Ty

There are indeed no bulk updates, you need to loop.
Using the storm.Batch(true) option you can use goroutines to save multiple items at concurrently.
https://github.com/boltdb/bolt#batch-read-write-transactions


covered linear search and 2 types of sorting(insertion and bubble) in java

Hey @Jaideep25-tech, will be opening Java track soon!


Added Unicode Support

Now using runes in escapeString() to handle unicode correctly.
Control characters are printed as\uXXXX
Fixes #5

Had to fix the merge here https://github.com/treeform/pretty/pull/12


getTables returns empty metadata.columnFamilies object

table.get() returns the families but the object is empty using getTables
t1 { AutoCreateFamily: { gcRule: null } }

t2 {}

Environment details
OS: macos 10.13.3
Node.js version: 8.10.0
npm version: 5.6.0
yarn version: 1.3.2
@google-cloud/bigtable version: master branch (0.13)
Steps to reproduce
    let [t1] = await table.get();
    console.log('t1', t1.metadata.columnFamilies);

    let [tables] = await bt.getTables();
    let t2 = tables.find(t => t.name === 'TestAutoCreate');
    console.log('t2', t2.metadata.columnFamilies);

Looks like we're assigning the metadata correctly. @sduskis will the column families be returned via listTables?

@callmehiphop: Column families are not returned from listTables.  One would have to call GetTable (per table) to populate the column familes.

@stephenplusplus: what do we need to do here?
GetTables returns a list of Strings.  Should we deprecate getTables() and create a new method called getTableNames()?

We call our method getTables() because we are returning Table objects. Those objects can be used to call getMetadata() on for a more complete representation.

My guess is that this is something we can resolve with documentation


update to golang 1.20.3 for observability images, update to otel-collector 0.75.0

update to otel-collector 0.75.0

Description
Changes proposed in this pull request:

update to golang 1.20.3 for observability images
update to otel-collector 0.75.0
...

Related issue(s)

/retest


Add Azure Table "Binding" tutorial

It'd be great to see the same but with Azure storage tables instead of sql DB.

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

ID: 39b6d0f3-9bc7-d091-0d45-9fc1e2e7aac8
Version Independent ID: 20e7eb53-215b-09ab-205d-d20177221278
Content: Add validation to an ASP.NET Core Razor Page
Content Source: aspnetcore/tutorials/razor-pages/validation.md
Product: aspnet-core
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

Hello @schey ... If there was an EF Core provider, it would have been a snap to wire up. There are no current plans to offer it, even with Cosmos dB. Therefore, this falls into the roll your own scenario bucket, but there might be some 3rd party options out there. Since there's no in-the-box way to do it, we won't be covering it in the docs. For reference, see ...

https://github.com/aspnet/EntityFrameworkCore/issues/1142
https://github.com/aspnet/EntityFrameworkCore/issues/13323


Video encoding is stuck at 98 %

Hi,
I have set up a test installation of pageflow. I finally got it running but now I have an issue regarding the video encoding. I am almost there.
What works is:

Upload to S3
Transfer to Zencoder
Encoding with Zencoder
Upload of the encoded video back to S3 (output bucket)

What does not work is:

Download from S3 to local Pageflow installation or access out of Pageflow on the encoded video

Here the process obviously breaks off. The progress bar stops at 98 %, but the wheel keeps on turning.  (I found a similar thread [https://github.com/codevise/pageflow/issues/69] a year ago where tyranny had the same problem. Unfortunately no solution for this specific problem is contained.)
When I checked the tmp folder I found that it actually downloaded the thumbnails create by Zencoder from S3 but no video. I just don not know what is the problem here. Or where/how to check.
Anybody an idea what the problem could be or where I should look for?
I would appreciate any help.
Cheers,
madsirt

Hi madsirt,
yes, I remember that problem. After installing 'imageMagick' and restarting the server my problems were gone. But I don't know if this would help in your case too.
Best wishes!
tyranni

Hi tyranni,
that was it. I installed 'imageMagick' and restarted Pageflow and now it works! That missing paket seemed to be the issue for both my problems, the stuck video encoding as well as the failed image upload (https://github.com/codevise/pageflow/issues/290). Would be good to highlight the importance of that paket in the Pageflow installation guide.
Thanks for your help. I apprecciate it a lot.
Cheers,
madsirt


Update Docstring for routes.py

As a Developer
I need understand what functionalities our API offers by reading the code
So that that I can use it to perform business operations.
Details and Assumptions

We need to use comments and docstrings in our code especially routes.py to explain our service
[EDIT]: we can probably just explain how to honcho start then just ask the person to read .../apidocs instead?

Acceptance Criteria
Given the Flask server is running
When we read the doctoring of routes.py
Then we see a brief description of our routes

I agree we mostly don't need to do anything. There are some minor typos/errors I'll fix in like 30 minutes


Polars: add CsvDomain, make_scan_csv

Closes #770

Current dependencies on/for this PR:

main

PR #763

PR #765

PR #767

PR #769

PR #771   👈

This comment was auto-generated by Graphite.

The error here is because this PR was originally written when partial chaining's prefix was part_*. It is now then_*. When the code was rebased, this was not updated. Need to rename the python code that tests this to then_scan_csv.

We no longer write FFI for transformations, instead opting to read plans directly from lazyframes.


Allow partial matches in discrimination logic

Fixes #58603.

@typescript-bot test it

Hmm, using isEmptyIntersection won't work since apparently there are situations where we actually use object types as discriminants. For example, a union of object types and null or undefined is viewed as a discriminant property type, and intersections don't work to determine overlapping domains between object types.

Closing this PR.


Poor exception handling in JavaScriptEngineFactory

I've been struggling with getting React.NET working on deployment but the thing that caused the greatest problem was the exception being raised by JavaScriptEngineFactory.
GetFactory swallows the actual exceptions and replaces it was unhelpful ones based on environment. This makes assumptions on configuration and makes it much harder to actually try and debug the situation. (getting an exception talking about assumed problems with ClearScript when I've used JavaScriptEngineSwitcher to only use ChakraCore for example).
The information in these exceptions should be moved to documentation where you also have more space to go into details on solving it and the exceptions here replaced with an aggregate exception so that the proper exceptions can be logged.

I'm happy to take a pull request improving this if you like.

We recently made some changes for how JS engines are registered in 4.0 and updated the docs. Please re-open this issue if you still need help.


feat(db): Allow maxValueSize as option

The maximum allowed value size was hardcoded to 1mb.
To allow storing bigger values I added the option MaxValueSize that can be set on badger initialization.

This change is

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

@Schartey Thanks for the contribution.
Please sign the contributor agreement for us to merge the PR.


Minimal proof of concept

Let's go ahead and accept this for now.
I will later go ahead and review the changes while testing it in OS X.