Error when color scheme not selected

If there is no color scheme already selected in Sublime, the plugin doesn't work. In the console, the below error is thrown.
Traceback (most recent call last):
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 577, in on_modified_async
    callback.on_modified_async(v)
  File "/Users/mbreese/Library/Application Support/Sublime Text 3/Installed Packages/MarkdownLivePreview.sublime-package/MarkdownLivePreview.py", line 72, in on_modified_async
    self.update(view)
  File "/Users/mbreese/Library/Application Support/Sublime Text 3/Installed Packages/MarkdownLivePreview.sublime-package/MarkdownLivePreview.py", line 64, in update
    show_html(view, preview)
  File "/Users/mbreese/Library/Application Support/Sublime Text 3/Installed Packages/MarkdownLivePreview.sublime-package/MLPApi.py", line 76, in show_html
    html = markdown2html(get_view_content(md_view), os.path.dirname(md_view.file_name()), md_view.settings().get('color_scheme'))
  File "/Users/mbreese/Library/Application Support/Sublime Text 3/Installed Packages/MarkdownLivePreview.sublime-package/MLPApi.py", line 40, in markdown2html
    html = '<style>\n{}\n</style>\n'.format(get_style(color_scheme))
  File "/Users/mbreese/Library/Application Support/Sublime Text 3/Installed Packages/MarkdownLivePreview.sublime-package/functions.py", line 131, in get_style
    css += pygments_from_theme(get_resource(color_scheme))
  File "/Users/mbreese/Library/Application Support/Sublime Text 3/Installed Packages/MarkdownLivePreview.sublime-package/functions.py", line 139, in get_resource
    return sublime.load_resource(resource)
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime.py", line 192, in load_resource
    raise IOError("resource not found")
OSError: resource not found

Once a color scheme is selected, things work as expected.
I'm assuming that a default should be used if the user hasn't selected a color scheme, but I don't know where it should be set.

Traceback (most recent call last):
  File "/home/gelldur/.config/sublime-text-3/Installed Packages/MarkdownLivePreview.sublime-package/MarkdownLivePreview.py", line 74, in <lambda>
  File "/home/gelldur/.config/sublime-text-3/Installed Packages/MarkdownLivePreview.sublime-package/MarkdownLivePreview.py", line 64, in update
  File "/home/gelldur/.config/sublime-text-3/Installed Packages/MarkdownLivePreview.sublime-package/MLPApi.py", line 76, in show_html
  File "/home/gelldur/.config/sublime-text-3/Installed Packages/MarkdownLivePreview.sublime-package/MLPApi.py", line 40, in markdown2html
  File "/home/gelldur/.config/sublime-text-3/Installed Packages/MarkdownLivePreview.sublime-package/functions.py", line 131, in get_style
  File "/home/gelldur/.config/sublime-text-3/Installed Packages/MarkdownLivePreview.sublime-package/functions.py", line 139, in get_resource
  File "/opt/sublime_text_3/sublime.py", line 192, in load_resource
    raise IOError("resource not found")
OSError: resource not found```

Same here after fresh install

I have the same issue. Once I had a color_scheme in my user settings, it worked.

This issue is no longer relevant to the new version, so I'm going to close this issue.


[improve][broker] Skip auto-creation for topics with "-partition-" suffix missing a valid partition number

Motivation
If you actively create a topic with "-partition--x" (x is an integer)(for example, "peisisten://tenant-name/ns-name/topic-name-partition--1"), the topic can be created successfully, and a node with partition 3 will be attached to the zk. But it is not a partition topic
Modifications
By modifying the isAllowAutoTopicCreationAsync logic () method, when the topic name contains "- partiton - x" (x is an integer), trigger logic returns false

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Matching PR in forked repository
PR in forked repository:

@lhotari Hello lhotari, this pr(https://github.com/apache/pulsar/pull/23562) merger was terminated because of the wrong deletion of the warehouse before. Now I have submitted the same pr again, please approve, thank you!

@lhotari Hello lhotari, this pr(#23562) merger was terminated because of the wrong deletion of the warehouse before. Now I have submitted the same pr again, please approve, thank you!

@zjxxzjwang Makes sense. Please check the review comment about the code comment and the PR title change that I made.

@lhotari PTAL.

@zjxxzjwang Please check the failing test, it seems like it's related to this change.


C# RpcException has very verbose exception.Message property

Is your feature request related to a problem? Please describe.
I'm always frustrated when I catch a generic exception which is actually a RpcException and print ex.Message. It fills up my console with 100 lines of stack trace
Describe the solution you'd like
I'd like to just see the error message without the stack trace.
Describe alternatives you've considered
Catching RpcException specifically and printing the status code is possible but annoying to have to do.
Additional context
I think the underlying issue is that Status.ToString() is used in the RpcException ctor for base.message--Status.ToString() prints stack traces. Maybe Status could have a .Message which doesn't print the stack.
Thanks!!!

@tonydnewell  can you please take a look?

possibly related: https://github.com/grpc/grpc/issues/25740

@jtattermusch would changing the format of the status string be a breaking change? Would anyone be parsing it?

@jtattermusch would changing the format of the status string be a breaking change? Would anyone be parsing it?

I think changing the contents of status.ToString() would be fine. It is not a breaking change.

I've made a change in PR https://github.com/grpc/grpc/pull/31932 to remove the stack trace when adding the DebugException information to Status.ToString()
However I've not been able to reproduce the original reported problem with "100 lines of stack trace" since the only DebugException that I can see added is that in https://github.com/grpc/grpc/blob/af855eb64eea02d2f7b68d49c3d4d7a263649104/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs#L97 which doesn't contain a stack trace since it wasn't thrown.

Fixed by https://github.com/grpc/grpc-dotnet/pull/1992, the fix will be in the next release of Grpc.Core.Api (the upcoming 2.52.x). The fix will work both for grpc-dotnet and Grpc.Core, but for Grpc.Core, you need to explicitly use Grpc.Core.Api 2.52+ (once it's released).

We can potentially backport the change into 2.46.x as well, but for now there seems to be no reason to do so since Grpc.Core 2.46.x  will work just fine with more recent versions of Grpc.Core.Api.


Feature request: Implement acting on text objects.

It would be really cool to have nerd commenter acting on text objects gcap (commenting out a paragraph) gcc for commenting out a line or to work with movements gc3j for the current and 3 lines down.

Is there some reason visual mode doesn't work for this? All of these text object motions work there. For example to comment the current paragraph vip then your usual binding for Comment should do the trick. Likewise for v3j etc. If that really doesn't cut the mustard I'd be happy to review a PR that implemented this. I have nothing against it, it's just not likely to get implemented by me (maintainer) or the (scrooloose) original author as it doesn't scratch at itch.

I would also think, this would be a great feature. Using NERD Commenter everyday, I often find myself pressing the prefix first and wanting to append a movement or text object. Also, I think vim is about letting the user do things in a way that works for him best.
Anyway, as a workaround, I came up with these mappings and wanted to share them:
for mov in ['j', 'k', 'gg', 'G', '(', ')', '{', '}', 'as', 'is', 'ap', 'ip']
    exe "nmap \<Leader\>c" . mov . " V" . mov . "\<Plug\>NERDCommenterInvert"
endfor
for i in range(1, 50)
    exe "nmap \<Leader\>c" . i . "j V" . i . "j\<Plug\>NERDCommenterInvert"
    exe "nmap \<Leader\>c" . i . "k V" . i . "k\<Plug\>NERDCommenterInvert"
endfor


mvpoly: introduce optional param upper bound to compute nested loops

Using filter_map speeds up the computation by avoiding creating a bigger map than expected if a low upper bound is given with large number of indices.
Cherry-picked from https://github.com/o1-labs/proof-systems/pull/2702/

looks like this is carrying the other changes (random generation and flaky test removal) as well though

Oopsie. Lemme rebase. Nice catch.


Foxy -> Galactic

➡ Forward port
Port foxy to galactic
Branch comparison: https://github.com/ignitionrobotics//compare/galactic...foxy
Note to maintainers: Remember to Merge with commit (not squash-merge or rebase)
🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸

have we ever done merge commits on this repository? We have to decide if we follow ROS or Ignition maintenance practices

have we ever done merge commits on this repository? We have to decide if we follow ROS or Ignition maintenance practices

yes, let's do merge commits like this


Support 25km ECDR (revert bad merge)

Reverts nsidc/seaice_ecdr#143
I made a mistake and merged #142 into main, but I meant to target #139 . Oops!
This revert of a revert lets us review the changes to support 25km.

Closing this for duplicate #146


Fails to use input method when renaming nodes

Godot version
1d21779
System information
Arch Linux, GLES 3, Mesa Intel(R) UHD Graphics (CML GT2)
Busquad edit: also presented on Windows (https://github.com/godotengine/godot/issues/62476)
Issue description
This happens since alpha4. Cannot reproduce on 3.x.
When renaming nodes in the Scene dock:

Sometimes, I can't even switch input method on (Ctrl-Space produces a space).
When input method is on:

The IME window sometimes flickers: Everytime I press a key, it shows for a brief moment and seems immediately canceled.
The IME window sometimes don't appear at all. All key presses goes directly into the LineEdit.

IME works fine in other LineEdits in the editor interface. Renaming animation/library in the Animation Library editor have the same issue. Maybe it's a Tree issue?
Steps to reproduce

Create a Node.
Double click to rename it.
Try to switch IME on (e.g. CTRL-SPACE for fcitx5).
Type something when IME is on.

Minimal reproduction project
No response

Bisected and this behavior is introduced since #58490
CC @bruvzg

Not sure if related, but #58490 still has unresolved review comment that is still relevant: https://github.com/godotengine/godot/pull/58490#pullrequestreview-917135673

I tried the fix that review comment suggests, this issue is still there.
BTW, I also found that the issue is not reproducible when using single window mode.

Presumably I enabled Share the same input method among all applications in IBus Preferences, so this bug affects me less.

It behaves like the picture above for me most of the time.
After the problem occurs, click on a external program, and then continue, it is normal.

Is this still reproducible in the latest 4.0 betas?

Still reproducible in 4.0.beta11.

Should be fixed by https://github.com/godotengine/godot/pull/70052


Upstream the changes from: Bug 1339461 - Convert foo.indexOf(...) == -1 to foo.includes() and implement an eslint rule to enforce this

Polyfill String.prototype.includes using core-js
See https://github.com/zloirock/core-js#ecmascript-6-string.

Upstream the changes from: Bug 1339461 - Convert foo.indexOf(...) == -1 to foo.includes() and implement an eslint rule to enforce this
Yet another case where PDF.js code was modified in mozilla-central without the changes happening in the GitHub repo first; sigh.
If we don't upstream at least the changes in extensions/firefox/, any future update of PDF.js in mozilla-central will be blocked.
Please see:

https://bugzilla.mozilla.org/show_bug.cgi?id=1339461
https://hg.mozilla.org/mozilla-central/rev/d5a5ad1dbbf2

/cc @rvandermeulen Since this blocks the next PDF.js update.

/botio test

Looks good. Thank you for upstreaming this!


docs: improve guides and branding

This PR improves documentation overall and aligned branding.

Thank you very much, @KiwiKilian.


BirdNET-Analyzer-GUI.exe has stopped working

I downloaded the zip file BirdNET-Analyzer for Windows and followed the instructions to check the box "Unblock" before unpacking. I launch BirdNET-Analyzer-GUI.exe and enter my data. After clicking on the button "start analysis" the message "BirdNET-Analyzer-GUI.exe has stopped working" appears and the program closes. What could be the problem?

Hmmm, to be honest, I have no idea. Do you by any chance have a second device, you could give this a try on and see if you can replicate the behavior?

Thanks for the reply. Do you think that the problem could be that I use Windows 7?

It might indeed. We compiled it on Windows 10 - we might have to do a Windows 7 version, too.

Hmm, weird...not sure how to debug this. Are you able to run the code from the command line? Is it just taking very long? Can you launch the GUI as admin?

Haven't tried in Windows, but I run it in Linux (using Windows Subsystem for Linux) and ran very quickly. Will check if I can the GUI as admin.

Hello all - just for reference I downloaded the zip file for BirdNET-Analyzer for Windows last week and followed the instructions and it runs fine on Windows 10:
OS Name	Microsoft Windows 10 Pro
Version	10.0.19044 Build 19044
Jonathan


Vijayasree/Refactor footer ts

Changes:

...

Type of change

[ ] Bug fix
[ ] New feature
[ ] Update feature
[x] Refactor code
[ ] Translation to code
[ ] Translation to crowdin
[ ] Script configuration
[ ] Improve performance
[ ] Style only
[ ] Dependency update
[ ] Documentation update
[ ] Release

And please try to fix code smells as well if it possible


"Resolve type by string" feature

I like the idea of a library, but I think there is one feature that would improve its use: the ability to resolve a type by name.
This would allow doing, for example, auto-scripting/auto-serialization of reflected objects.
Something like:
auto type = meta_hpp::get_type_by_name("rectangle");
of course, it requires adding the name "rectangle" to
meta::class_<Rectangle>("rectangle");
But that adds enormous flexibility to the library.

So, we have similar functionality in this library. I call these scopes. You can think of it like regular C++ namespaces.
I've written a little example how to use it here: Scopes
Scopes provide more advanced functionality than regular type naming. Also, this approach helps to avoid ambiguities of the same names in different namespaces or typedefs.
And, of course, you can do a for-each loop over all types in a scope and bind it to a scripting language or whatever.
In addition, you can add some free-form information about types, functions, parameters, etc. The library has the ability to do this using metadata functions and types. I don't have examples of this functionality right how, but you can find it in unit-tests.


introduce perf_event programs

What does this PR do?
This PR adds support for the perf_event program type. This program type can be used to trigger eBPF programs on software and hardware perf events.
Motivation
This feature will be used in future eBPF powered use cases in the Datadog Agent.
Describe how to test your changes
A test program was added in the examples. It should print the active pid every second for all the CPU cores (returned by runtime.NumCPU(), so it might not be the real CPU count).

We've relied on the Datadog Agent CI so far ... we should build one for this repo for sure, but haven't had time yet 😭


Need async rest api for running commands in container for vagrant plugin

Vagrant plugin  can't run command via this rest api /rest/ui/commands?sptoken= if blueprint ansible runs too long time.
And also need rest for tracking ansible logs.

Released


Make building cli, ncp, and examples optional.

This is a fix for #131.
By default, only core is built.  Added the following configure options:
--enable-cli
--enable-ncp
--with-examples=TARGET

@pvanhorn, please review.

LGTM

LGTM

👍


Adding elements in Substatus(status,Distro version,WALA version)

Added status as Substatus
Created a new element in Substatus containing Distro version and WALA version
Added Tempterminal state for V1 VMs
Modularized the method do_backup_status_report in azure-linux-extensions/VMBackup/main/handle.py

@bpramod please remove all tabs from the code and raise a new pull request. use 4 spaces when you move to next indent.


Feature/4229/file tree

For dockstore/dockstore#4229
Currently set to only appear for files > 10
Before clicking button

Dialog appears once clicked:

After file selected:

0 css, many TODOs, needs a follow up ticket
Anyone got any low hanging fruit fixes/changes?

It's going to be hard to find a file whose path you don't know. And even if you do know it, may need to expand a lot of nodes.
Didn't try actually running it though -- is there already "free" search functionality in a Angular tree?

Ha...no

Just to re-iterate: Anyone got any low hanging fruit fixes/changes? So...changes that don't take more time than the length of this PR

I think at that point, we're better off embedding stackblitz into dockstore

Might be an idea for hosted workflows. Wonder how many dependencies it would be

Got much less feedback on draft PR than I thought...oh well. Closing, cleaning things up before requesting review again.


Convert shape's stroke into a filled shape

There should be a button that can be used to convert the selected shape layer(s) into layers which have a stroke converted into a filled shape (probably with negative space inside). If the starting layer has both a fill and a shape, this should become a folder containing one layer for a shape with just the original fill and another layer with just the shape for the original stroke.
This may require an algorithm for converting a stroke into a filled shape if our libraries don't provide such a capability.

There should be a button that can be used to convert the selected shape layer(s) into layers which have a stroke converted into a filled shape

@Keavon Can you not just toggle the fill colour and (if you want) disable the stroke colour?

If the starting layer has both a fill and a shape, this should become a folder containing one layer for a shape with just the original fill and another layer with just the shape for the original stroke.

This seems a bit useless - can't you just duplicate the layer and disable the stroke on one and disable the fill on the other and then group them?

The purpose is to edit the stroke as a bezier curve. Frequently when doing vector art, you will start with a stroke then turn it into its own filled shape layer and edit it. If that original shape had both a stroke and a fill, you'll want them both separated (since they are both their own separate shape layers now).

Blocked on full shape-based curve expansion including caps and joins in our bezier-rs library.

Duplicate of #1092


New urls for old Rubinius versions

I found new urls for old Rubinius binaries on the Github. It seems the latest binary is for 2.2.2 (in ruby-build). See https://github.com/rubinius/rubinius/releases?after=v2.2.2. The rest is probably gone and anywhere publicly. So there is a question if Rubinius 2.2.1 and later should be removed.

Yeah please add to this PR the removal of any rbx versions which aren't downloadable anymore.

@mislav I hope it's ok now

Thanks!


(Update) Add Leave blank to Relay State

Thanks for contributing to the Harness Developer Hub! Our code owners will review your submission.
Description

Please describe your changes: ____________
As per discussion between @usheerfotedar and eng, It should be this
Default Relay State            triggerType=login

What is relaystate -
Just a way to exchange additonal info between IdP SAML provider(OKTA) and Service Provider (Harness) This info can have custom usage.
For example, we use it to determine whether the call is coming for actual login or just to test login. More details here: https://support.okta.com/help/s/article/How-to-send-a-custom-relaystate-to-application-through-idp-initiated-authentication-urls?language=en_US

Jira/GitHub Issue numbers (if any): ________. https://harnesssupport.zendesk.com/agent/tickets/71057
Preview links/images (Internal contributors only): __________________

PR lifecycle
We aim to merge PRs within one week or less, but delays happen sometimes.
If your PR is open longer than two weeks without any human activity, please tag a code owner in a comment.
PRs must meet these requirements to be merged:

[ ] Successful preview build.
[ ] Code owner review.
[ ] No merge conflicts.
[ ] Release notes/new features docs: Feature/version released to at least one prod environment.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://6706a00122cb4b7bc286e4d4--harness-developer.netlify.app

@pratmit, this was according to a case that I had, https://harnesssupport.zendesk.com/agent/tickets/71057, and directions from Usheer to the customer to resolve the situation.  @usheerfotedar had a conversation with Eng, and he said that he has docs that advised about this

This pull request has been automatically closed due to 30 days of inactivity. If you believe this was done in error, please feel free to reopen the PR or reach out to the BT team for further assistance. Thank you for your contributions!

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://67448911d5e2272f7f68b0c7--harness-developer.netlify.app


Workaround for IME and echo events on Linux (fixes #29 #7106 #9381):

Check each event in the queue to send echo event even if IME is
activated.

Tt seems that there is something wrong  with this version. Please wait.

oh, nevermind, just read the message.

It seems that the state of the pending events will be different when different input method frameworks are used.  I will update the commit when I find new solution.
On the other hand, the reverted commit may send echo if XMODIFIERS was not set to valid value:
$ export XMODIFIERS="@im=none"
$ godot

I found a new solution. It seemed that I can't reopen this PR?
I create another PR(#9396) for the new solution.


105-inconsistent-logic-with-parameter-shift-in-evaluatorhaspiebcenterfreq

The bug in the original HASPI code was being preserved by enforcing it in the low level centre_freq function. This has been changed so that centre_freq can now work as expected and the bug has been lifted up to the top level HASPI function where it can be clearly seen.

It looks good to me too.
But, we need to do a lot more work in hasqi, haspi, haaqi, haspi.eb and haspi.ebm modules.
They don't have type hints, we need to try to vectorise all of the for loops and perhaps refractor the files.
For example, eb is a dependency for the three metrics, it makes no sense to me to have it under haspi.

It looks good to me too. But, we need to do a lot more work in hasqi, haspi, haaqi, haspi.eb and haspi.ebm modules. They don't have type hints, we need to try to vectorise all of the for loops and perhaps refractor the files. For example, eb is a dependency for the three metrics, it makes no sense to me to have it under haspi.
But this is work for another PR. I will try to deal with it under the issue Speed up HAAQI #225

@jonbarker68 has created a separate issue for typehints see #247.


500 Received an instance of URLSearchParams

Environment

Operating System: Darwin
Node Version:     v20.11.1
Nuxt Version:     3.12.4
CLI Version:      3.13.0
Nitro Version:    2.9.7
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      modules, extends, future, css, app, runtimeConfig, auth, compatibilityDate
Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Build Modules:    -

Reproduction
It is hard to reproduce this error without sharing the secrets. But I did a debugging with loading nuxt-auth package directly from the source. I will describe all findings.
Describe the bug
First of all I would like to share my handler file.
import { decode } from 'jsonwebtoken'
import AzureAdProvider from 'next-auth/providers/azure-ad'
import { NuxtAuthHandler } from '#auth'

async function callRefreshToken(accessToken: any) {
  const url = `https://login.microsoftonline.com/${process.env.AZURE_AD_TENANT_ID}/oauth2/v2.0/token`;
  const req = await fetch(url, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
    },
    body:
      `grant_type=refresh_token` +
      `&client_secret=${process.env.AZURE_AD_CLIENT_SECRET}` +
      `&refresh_token=${accessToken.refreshToken}` +
      `&client_id=${process.env.AZURE_AD_CLIENT_ID}`,
  });
  const res = await req.json();
  return res;
}

async function refreshAccessToken(accessToken: any) {
  try {
    console.log('Previous token expires at', new Date(accessToken.accessTokenExpires));
    console.log('Refreshing access token...');
    const msToken = await callRefreshToken(accessToken);
    console.log('New token received');
    setAccessToken(accessToken, msToken);
    console.log('Access token refreshed');
    console.log('Next token expires at', new Date(accessToken.accessTokenExpires));
    return accessToken;
  } catch (error) {
    console.error(error);
    return {
      ...accessToken,
      error: 'RefreshAccessTokenError',
    };
  }
}

// Persist the access_token in the encrypted JWT.
function setAccessToken(jwt: any, msToken: any) {
  if (!msToken) {
    return;
  }

  if (msToken.access_token) {
    const decoded = decode(msToken.access_token)
    jwt.accessToken = msToken.access_token;
    if (decoded && typeof decoded !== 'string')
      jwt.roles = decoded.roles;
  }

  if (msToken.expires_at)
    jwt.accessTokenExpires = msToken.expires_at * 1000;
  else if (msToken.expires_in)
    jwt.accessTokenExpires = Date.now() + msToken.expires_in * 1000;

  jwt.refreshToken = msToken.refresh_token;
}

export default NuxtAuthHandler({
  // A secret string you define, to ensure correct encryption
  secret: process.env.AUTH_APP_SECRET,
  pages: {
    signIn: '/auth/signIn',
    signOut: '/auth/signOut',
    error: '/auth/error',
    verifyRequest: '/auth/verifyRequest',
    newUser: '/auth/new-user'
  },
  callbacks: {
    async jwt({ token, account, profile }) {
      setAccessToken(token, account);

      if (token.accessTokenExpires && Date.now() < token.accessTokenExpires) {
        return token;
      }

      return refreshAccessToken(token);
    },
    async session({ session, token }) {
      // Make access token available on the client.
      session.roles = token.roles;

      return session;
    },
  },
  providers: [
    // @ts-expect-error You need to use .default here for it to work during SSR. May be fixed via Vite at some point
    AzureAdProvider.default({
      clientId: process.env.AZURE_AD_CLIENT_ID,
      clientSecret: process.env.AZURE_AD_CLIENT_SECRET,
      tenantId: process.env.AZURE_AD_TENANT_ID,
      authorization: {
        params: {
          scope: `openid offline_access profile api://Boss-Dev/Admin`,
        },
      },
    })

  ]
})

Whenever I login or logout I receive following exception
[500] The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received an instance of URLSearchParams
error on  https://github.com/sidebase/nuxt-auth/blob/c5a62d99784a64cd208a0845da0a37461337f7cc/src/runtime/server/services/authjs/nuxtAuthHandler.ts#L206
somehow, h3 package readBody throws this error, but I already test that readBody function with URLSearchParams object in a clean project and it is working ok.
The only thing that I found is
https://github.com/unjs/h3/blob/853ae882b58927bbc8eed41b9c02fa7efc529192/src/utils/body.ts#L47
this _rawBody variable is empty on simple tests in a sandbox, but when nuxt-auth sends URLSearchParams object, it is filled. In my sandbox tests, it's not hitting the next if condition and does not throw the error on
https://github.com/unjs/h3/blob/853ae882b58927bbc8eed41b9c02fa7efc529192/src/utils/body.ts#L93
Additional context
No response
Logs
ERROR  [nuxt] [request error] [unhandled] [500] The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received an instance of URLSearchParams
  at Function.from (node:buffer:324:9)
  at ./node_modules/.pnpm/h3@1.12.0/node_modules/h3/dist/index.mjs:410:21
  at async readBody (./node_modules/.pnpm/h3@1.12.0/node_modules/h3/dist/index.mjs:438:16)
  at readBodyForNext (./node_modules/.pnpm/@sidebase+nuxt-auth@0.8.2_magicast@0.3.4_next-auth@4.21.1_next@13.5.6_@babel+core@7.25.2_reac_wqxp7nydnxshx7noobpzq4kbim/node_modules/@sidebase/nuxt-auth/dist/runtime/server/services/authjs/nuxtAuthHandler.mjs:18:12)
  at getInternalNextAuthRequestData (./node_modules/.pnpm/@sidebase+nuxt-auth@0.8.2_magicast@0.3.4_next-auth@4.21.1_next@13.5.6_@babel+core@7.25.2_reac_wqxp7nydnxshx7noobpzq4kbim/node_modules/@sidebase/nuxt-auth/dist/runtime/server/services/authjs/nuxtAuthHandler.mjs:75:18)
  at Object.handler (./node_modules/.pnpm/@sidebase+nuxt-auth@0.8.2_magicast@0.3.4_next-auth@4.21.1_next@13.5.6_@babel+core@7.25.2_reac_wqxp7nydnxshx7noobpzq4kbim/node_modules/@sidebase/nuxt-auth/dist/runtime/server/services/authjs/nuxtAuthHandler.mjs:87:25)
  at async ./node_modules/.pnpm/h3@1.12.0/node_modules/h3/dist/index.mjs:1975:19
  at async Object.callAsync (./node_modules/.pnpm/unctx@2.3.1/node_modules/unctx/dist/index.mjs:72:16)
  at async toNodeHandle (./node_modules/.pnpm/h3@1.12.0/node_modules/h3/dist/index.mjs:2266:7)
  at async ufetch (./node_modules/.pnpm/unenv@1.10.0/node_modules/unenv/runtime/fetch/index.mjs:9:17)

Likely the same issue as #479. Seems to be caused in this part of useAuth.ts, in which a URLSearchParams is thrown in a fetch as request body.
https://github.com/sidebase/nuxt-auth/blob/ae2bf092f73d079a5bf479d13bf0d37db414ee23/src/runtime/composables/authjs/useAuth.ts#L121-L133

@Invisi Yes exactly, that is the initial point then server tries to parse the body and throws an exception.

Hi @alimozdemir @Dunowen, I need to confirm why are we providing search params as body. This seemed to work so far, but apparently something changed in one of our dependencies (h3).
I will investigate today.

Is there any update on this?

After some investigation, I can confirm that this is a bug with h3 - using URLSearchParams is intended:
https://github.com/nextauthjs/next-auth/blob/285cb5ce166bdc1dc99013f0da538186c5be6e0b/packages/next-auth/src/react.tsx#L265-L280

@phoenix-ru that's why I tested h3 individually for URLSearchParams in a simple code. But it was ok, it was working

@alimozdemir Yes, I also tested it individually and URLSearchParams are definitely supported. But what happens here, I guess, is likely _fetch being dispatched to an internal function call instead of HTTP call - that's what I mean by h3 bug.
I will try to create a very minimal reproduction without nuxt-auth and see if that is the case.

I didn't know what _fetch had internal approach, although good information. Thank you for the headsup

Providing an update: I tested the Nuxt starter template and it consistently reproduces there. The only issue is that it seems to be changed in more recent versions of h3, but the starter uses 1.12.0.
Good news is that it seems to be finally patched in their main branch, we just need to wait for a new h3 release and adaptation inside Nuxt:
https://github.com/unjs/h3/blob/45cd3cca286c1309a639d1869d0de87411e79209/src/utils/body.ts#L29-L32

@phoenix-ru I am happy to hear that and hoping it will happen fast causing my app not to run in the production environment. I getting a 500 error saying Invalid URL.

I don't think it is going to be happening soon, could we have a workaround for this? e.g. disable _fetch internal approach for this call explicitly?
@phoenix-ru

Does anyone have a workaround? I can't run it in production environment, error 500.

main branch pointing for v2, and it is not clear yet when it is going to be ready.

You are right about it - I also considered patching this until a new h3 releases. I tried using readFormData but it unfortunately is also broken inside h3 for some reason. I will try yet again today

PR created inside h3:
https://github.com/unjs/h3/pull/888

To work I'm change this code in the build
Path<EMAIL_ADDRESS>Method: createRequestForAuthjs
  let body;
  try {
    body = isMethod(event, ["PATCH", "POST", "PUT", "DELETE"]) ? await readBody(event) : void 0;
  }catch(err){}

Thank you @phoenix-ru it got fixed right now.
You have to remove your lock file and node_modules so it will fetch<EMAIL_ADDRESS>then this error just gone.
But unfortunately, it gives me another error "State cookie was missing."
It is really missing in the state cookie, and it's expected somehow. I will do more research before I create another issue in the repo


Suggestion for Vue 3.0 : Add the method "valueOf", "toString", "Symbol.toPrimitive" to the "ref" type For implicit type conversion to work properly.

What problem does this feature solve?
Suggestion for Vue 3.0 : Add the method "valueOf", "toString", "Symbol.toPrimitive" to the "ref" type
For implicit type conversion to work properly.
What does the proposed API look like?
const num=ref(8)
const xxx=ref(4)
const yyy=ref("hello")

num+ xxx
//expected  : 12
//[object Object][object Object]
//
num*xxx
//expected  : 32
//NaN
yyy+xxx
//expected  : "8hello"
//[object Object][object Object]

Please don't create the issue twice


Add jars / libs to Spark / JupyterHub easily

for now, we can just use the following at the top of each notebook:
# You may need to Reconnect (more than Restart) the Kernel to pick up changes to these values

master = '--master spark://spark-master-2-0-1:7077'
conf = '--conf spark.cores.max=2 --conf spark.executor.memory=2g --conf spark.cassandra.connection.host=cassandra'
packages = '--packages com.amazonaws:aws-java-sdk:1.7.4,org.apache.hadoop:hadoop-aws:2.7.1,org.apache.spark:spark-streaming-kafka-0-8_2.11:2.0.1,com.datastax.spark:spark-cassandra-connector_2.11:2.0.0-M3,com.databricks:spark-avro_2.11:3.0.1,com.databricks:spark-xml_2.11:0.4.1'
jars = '--jars /root/lib/jpmml-sparkml-package-1.0-SNAPSHOT.jar'
py_files = '--py-files /root/lib/jpmml.py'

os.environ['PYSPARK_SUBMIT_ARGS'] = master \
  + ' ' + conf \
  + ' ' + packages \
  + ' ' + jars \
  + ' ' + py_files \
  + ' ' + 'pyspark-shell'

print(os.environ['PYSPARK_SUBMIT_ARGS'])

reminder that each running notebook will spawn a single kernel (across multiple runs of that notebook) with the notebook-scoped Spark configuration specified above.

this will override the following default configuration: https://github.com/fluxcapacitor/pipeline/blob/master/jupyterhub.ml/jupyterhub-rc.yaml


End Portal not disappearing when frame is broken (1.14.4)

???

Meant to put it on the Immersive Portals Mod For Forge page not sure how i wound up on the main

But this isn't forge specific. This applies to both versions, I just tested it on fabric and it has the same bug.

This is vanilla behavior

So it is, but breaking the portal blocks (not the frame the actual portal blocks) doesn't work either. The only way I've found to remove an end portal once placed was to uninstall the mod, run the world without it, then reinstall

So it is, but breaking the portal blocks (not the frame the actual portal blocks) doesn't work either. The only way I've found to remove an end portal once placed was to uninstall the mod, run the world without it, then reinstall

/portal delete_portal

/portal delete_portal

Doesn't exist in 1.14 afaik.

That "vanilla behaviour" is a bug: https://bugs.mojang.com/browse/MC-1174


Some violations of CodeReviewComments

Repeatation

Package helloworld contains a function NewHelloWorld.
So the client would initialize the HelloWorld type as helloworld.NewHelloWorld which is simply repeatation of the fact that helloworld package contains a HelloWorld and is not recommended Package Names
This should instead be helloworld.New()

Interfaces

Package helloworld contains an interface HelloWorld and function NewHelloWorld returns this interface type instead of concrete type. Interfaces on implementor side as an abstraction has no meaning
Package helloworld should contain a concrete type HelloWorld which is returned by helloworld.New function as recommended here
Clients who need to use features of HelloWorld type can define interfaces with only the features they really need and inject instance of HelloWorld as an implementation.

So if a presentation layer (e.g. REST API for HelloWorld) requires to use a domain entity

Actually, it's not that simple. Although there is nothing that permits doing that, it's a bad practice to use the domain entity outside of the use case layer.

In this particular project, only external component helloworld has is the logger and is being imported from go-kit directly which actually violates Clean Code

While this may be technically true, it is not practical not to import the go-kit logger here. The package provides a number of helpers which are used by the implementations (like level package). Building a full boundary around the logger would require a large amount of code for literally no advantage. The go-kit logger package/interface is quite small and stable, so I'm comfortable with importing it. This is where common sense should be applied IMHO.

In other words, this particular recommendation for interfaces does not really violate Clean Code in anyway. It actually enforces it.

Sure, my problem is rather with the struct exporting.

Also, interfaces recommendation reduces decoupling. If helloworlddriver had defined an interface HelloWorld and helloworld package had a concrete type DefaultHelloWorld then

I tend to avoid the word default in names: it does not mean anything, doesn't help understand what the thing is.

helloworlddriver package is also independent of helloworld package

Actually, this isn't true. Even if the interface is defined in the driver package, it still depends on the interfaces and structs defined in the use case package.

About invalid initialization of unexported fields: this was a concern for me as well.

I wish Go had a tool to enforce initialization compile time, otherwise this is always going to be a risk. The worst thing is that preventing this error to affect you requires full e2e tests, because it only causes issues runtime.

Actually, it's not that simple. Although there is nothing that permits doing that, it's a bad practice to use the domain entity outside of the use case layer.

I actually meant Use Case layer here. Apologies. But the point is, there is no reason not point inward. But avoiding pointing outward is the only rule in Clean Architecture.

While this may be technically true, it is not practical not to import the go-kit logger here.

I agree that this is an opinionated and use-case based decision.
type Logger interface {
      Debugf(msg string, args ...interface{})
      Infof(msg string, args ...interface{})
      Warnf(msg string, args ...interface{})
      Errorf(msg string, args ...interface{})

      // WithFields is for annotated loggers
      WithFields(fields map[string]interface{}) Logger
}

I prefer having above interface over importing log package because that way if the log package changes a contract my innermost core layers do not need to change which is the whole point of Clean Architecture (i will still be able to create a wrapper around gokit logger once and inject it everywhere instead of changing code all the different layers. [e.g., since go-kit/log is specifically designed for gokit micro-services, what if something changes in this package to incorporate a requirement specific to gokit framework.?])

I tend to avoid the word default in names: it does not mean anything, doesn't help understand what the thing is.

That was just an example name to avoid confusion between HelloWorld interface and HelloWorld implementation. But same goes for helloWorld and HelloWorld. :)

Actually, this isn't true. Even if the interface is defined in the driver package, it still depends on the interfaces and structs defined in the use case package.

That depends.

I wish Go had a tool to enforce initialization compile time, otherwise this is always going to be a risk.

Agreed.

Let's say helloworld package had 2 clients A and B. Client B requested for a feature called SayReverse in addition to already existing SayHello feature. You added this to helloWorld struct. But since this struct is unexported, client B will still not be able to use the added feature. How do you solve this ?  If you thought you could add SayReverse signature to HelloWorld interface, you would be violating Interface Segregation Principle  (because, even though,  client A doesn't need the new feature it's going to be forced since it's importing your interface instead of defining an interface matching it's requirements) possibly breaking client A.

Okay, first round is here: #17

Here is round two: #18

I was looking at the Logger interface you posted. Actually I had such interface a while back and I realized why I dropped it in the end:
      // WithFields is for annotated loggers
      WithFields(fields map[string]interface{}) Logger

Because of this line you either have to have an adapter for each interface or have one single, global interface with a single adapter.
I believe the first option simply isn't worth the effort.
The second option kinda defeats the whole purpose. It can protect you from API changes of third-party libraries but from the interface point of view it's the same. That being said, I might just add that global interface anyway, to separate the application from go-kit, but right now the implicit interface doesn't help anything in this case.

I decided to merge the PR. It looks fine, time will tell if it works well.
Thanks for your comments @spy16 again, I think all of them were addressed!

@sagikazarmark thanks for considering the suggestions.
I have been planning to setup a sample project myself. My idea was to build a full blown application ( droplets ) which could be used as a reference project by gophers.  But wasn't able to actively work on it due to time constraints. So kudos for your effort.

I'm planning to add some more examples alongside the greeting one.

Good idea, created an issue #20 for that

Everything from this discussion has been addressed.. closing this.

Thanks again @spy16


Add database model

Shop Cart Model added
100% test coverage

Schema attributes:

id
user_id
name
total_price
status

LGTM


content on grooming

This is for the new proposed outline in #53
Using the suggested template below as a guide, describe the concept of grooming and what role it plays in scrum. This should include (but not limited to)

Inputs: What are requirements to have this meeting (i.e. stories ready for estimation)
Participants required
Outputs: What decisions or actions are needed to conclude the meeting?

May also elaborate on

Criteria for knowing when story is ready to estimate (i.e. implementation is understood, testable, clear understanding of what success looks like)
Estimation

Voting without influencing
Resolving estimation conflicts (two people are sizing differently)

Suggested Template
Goals
What are the intended outcomes of the ceremonies?
Participation
What members of the team should participate?
Impact
What positive impact has been observed as a result of this practice?
Measures
How might one measure the impact of this ceremony positive or negative?
Facilitation Guidance
How might one go about running the ceremony? Is there a general pattern that the ceremony should follow?

looking at the content on backlog refinement - it looks to me like this issue might be resolved - I added a separate issue to remove the todo and replace it with a ticket instead - can you check the content and see if this issue is resolved @bsherwin

looking at the content on backlog refinement - it looks to me like this issue might be resolved - I added a separate issue to remove the todo and replace it with a ticket instead - can you check the content and see if this issue is resolved @bsherwin


Support Console Resize w/ Caveat Lector

@bpiepiora wrote:

Is it possible to detect size changes of the console and update the content accordingly?

@jzabroski wrote:

Handling console window size changes is not safe: https://stackoverflow.com/a/34208406

@TomaszRewak wrote

Yeah, unfortunately that's the case.
But actually thinking about it I could add a new method to the ConsoleManager that the user would have to call each "frame" (the same way it's currently implemented for keyboard input handling) that would simply check if the size of the window has changed as compared to the value from the previous frame.
It wouldn't be 100% foolproof (because if the window size would change to a different value and back to the initial value during one frame it might break the layout), but it would still be better than nothing.

Done in 46e20627c583539f8eb1b03cc0242b079d9f7492 ;)


Asynchronous Suggestions using CompletableFuture

Brigadier deals with suggestions asynchronously (ish) using CompletableFuture, so this PR allows suggestions to be given as a CompletableFuture too.
I gave all of the methods the suffix 'C' as they have same erasure as the existing ones, but feel free to improve these names if approved.

Wow, this looks very useful! I have to admit, I'm personally not very familiar with how the whole "completable future" mechanic works in Java, but this definitely looks like something that can be used well.
I'm currently fairly busy this weekend (and plan to get the 6.4.0 CommandAPI version released in the next few days in preparation for Minecraft 1.18's release), but after I've released that I'll make sure to come back to this!

Yea that'd be brilliant. I was trying to generate suggestions using the results of other suggestions from brigadier, which requires the async nature like this.
CompletableFuture is basically Java's equivalent of JavaScript's promise api if that makes it any more intuitive.

Ah okay, that helps me understand it much better, thanks!

@469512345 Apologies if I'm doing something completely wrong here (if I am, I would love you to point me in the right direction - again, I've not really used completable futures in Java before!), but I haven't managed to get your completable future implementation to generate asynchronous suggestions.
To test this out, I implemented 3 commands:

/cmd5sec which generates suggestions after 5 seconds. This was to simulate a long asynchronous task, such as a network request or a large database read task.
/cmdinstant which generates suggestions "instantly" using the completable future method. This simulates a fast asynchronous task, such as a square root calculation of a number.
/cmdnormal which generates suggestions normally without using an asynchronous method. This is a control method.

I used the following code to implement these commands:
Argument stringArgumentReturnAfter5Seconds = new StringArgument("strarg").includeSuggestionsC(info -> {
	return CompletableFuture.supplyAsync(() -> {

		// Print wait for 5 seconds. We use the Bukkit scheduler to make it run on the main thread
		Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> Bukkit.broadcastMessage("Waiting for 5 seconds"));

		// Wait for 5 seconds. Simulates a long async task (e.g. network request)
		try {
			Thread.sleep(1000 * 5);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}

		// Print done
		Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> Bukkit.broadcastMessage("Done!"));
		return new String[] { "hello", "world", "waddup" };
	});
});

Argument stringArgumentReturnInstantly = new StringArgument("strarg").includeSuggestionsC(info -> {
	return CompletableFuture.supplyAsync(() -> {
		return new String[] { "hello", "world", "waddup" };
	});
});

Argument stringArgumentNormal = new StringArgument("strarg").includeSuggestions(info -> {
	return new String[] { "hello", "world", "waddup" };
});

new CommandAPICommand("cmd5sec")
	.withArguments(stringArgumentReturnAfter5Seconds)
	.executes((sender, args) -> {
		Bukkit.broadcastMessage((String) args[0]);
	})
	.register();

new CommandAPICommand("cmdinstant")
.withArguments(stringArgumentReturnInstantly)
.executes((sender, args) -> {
	Bukkit.broadcastMessage((String) args[0]);
})
.register();

new CommandAPICommand("cmdnormal")
.withArguments(stringArgumentNormal)
.executes((sender, args) -> {
	Bukkit.broadcastMessage((String) args[0]);
})
.register();

I then ran these commands in-game, which displayed the following:

As you can see, the asynchronous tasks did not generate any suggestions, whereas the non-asynchronous suggestions did. I would expect the /cmd5sec command to generate suggestions (and for them to be displayed in the client) when the "Done!" message appeared and I would expect the /cmdinstant to generate suggestions just like in /cmdnormal.
I don't know if this is a Minecraft thing or a result of your implementation. I don't really want to merge in a feature which would cause this sort of interaction for CommandAPI users unless it works as intended.
Some insight into this would be much appreciated!

I've been able to reproduce the behaviour demonstrated using version 6.5.2. Looking into it now.

The issue was only occurring when including suggestions, not overwriting them (which is all I tested - my bad!).
The code for merging default and included suggestions wasn't suitable for asynchronous suggestions, this is my fault for missing this in the original commit. My apoligies!
I've added a new commit which fixes this. All of your examples work fine now for me.

This works as intended now. Lovely!

I'll work on a bit more manual testing for now and assuming everything goes well, I'll merge this into the CommandAPI (Please ignore CodeFactor's complaints, I'm aware my code is "too complex")
For what it's worth, this was actually a feature request opened earlier this year (#193) but I dismissed it because I thought it was impossible. I'm so glad this works!
Again, many thanks in advance for completing what I could not and improving the CommandAPI's functionality beyond what it was originally capable of.

I'm happy with the result. I've merged this over to my dev/dev branch (Annoyingly, I can't tell GitHub "Mark this pull request as merged" without re-merging and re-applying various changes and screwing up my commit log, so apologies if this looks like I've not merged this pull request!) and will include this in the next CommandAPI release (hopefully 6.6.0) in a few days time.
I've renamed the methods to use the suffix "Async" instead of "C". Hopefully, I can write some good corresponding documentation to give suitable examples of this. Again, thanks very much for your contribution!
I'll continue update progress on this in the feature request #193.


Added basemap import test

Checklist

[x] Used a fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-webservice.
I tried to re-render for you, but it looks like there was nothing to do.

@conda-forge/staged-recipes, @ocefpaf  My tests fail due to the well known basemap import problem related to KeyError 'PROJ_LIB', i.e. when running the docker build, it crashes  on my newly inserted basemap import check in test section of meta.yaml:
+ python -c 'from mpl_toolkits.basemap import Basemap'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/conda/feedstock_root/build_artifacts/geonum_1558516567768/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.7/site-packages/mpl_toolkits/basemap/__init__.py", line 155, in <module>
    pyproj_datadir = os.environ['PROJ_LIB']
  File "/home/conda/feedstock_root/build_artifacts/geonum_1558516567768/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.7/os.py", line 678, in __getitem__
    raise KeyError(key) from None
KeyError: 'PROJ_LIB'

I am not sure if it is really an environment problem, since I also tried to install (the currently distributed geonum, build no. 2) into a new, empty environment:
conda create -n geonum python=3.7
conda activate geonum
conda install -c conda-forge geonum
python -c "from mpl_toolkits.basemap import Basemap"

which outputs:
(geonum) C:\Users\Jonas\Jonas\repos\geonum>python -c "from mpl_toolkits.basemap import Basemap"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\Jonas\Anaconda3\envs\geonum\lib\site-packages\mpl_toolkits\basemap\__init__.py", line 156, in <module>
    epsgf = open(os.path.join(pyproj_datadir,'epsg'))
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Jonas\\Anaconda3\\envs\\geonum\\Library\\share\\proj\\epsg'

I would appreciate suggestions how to fix this. Thanks in advance.

Basemap is still using the old proj4 5.2.0 and pyproj 1.9.6, nothing changed with the environmental variable there in a while :-/
Your example,
conda create -n geonum python=3.7
conda activate geonum
conda install -c conda-forge geonum
python -c "from mpl_toolkits.basemap import Basemap"
echo $PROJ_LIB
~/miniconda3/envs/TEST/share/proj

installs after activation of the environment. That only works with newer versions of conda. (Not exactly sure when that feature was added.)
The "old way" is to install and then activate:
conda create --name TEST geonum
conda activate TEST
python -c "from mpl_toolkits.basemap import Basemap"
echo $PROJ_LIB
~/miniconda3/envs/TEST/share/proj

Both works for me on Linux (I'll test Windows later today). Here is my conda info -a (not the conda and conda-build versions there):
     active environment : None
            shell level : 0
       user config file : /home/filipe/.condarc
 populated config files : /home/filipe/.condarc
          conda version : 4.6.14
    conda-build version : 3.18.1
         python version : 3.7.1.final.0
       base environment : /home/filipe/miniconda3  (writable)
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/linux-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/filipe/miniconda3/pkgs
                          /home/filipe/.conda/pkgs
       envs directories : /home/filipe/miniconda3/envs
                          /home/filipe/.conda/envs
               platform : linux-64
             user-agent : conda/4.6.14 requests/2.22.0 CPython/3.7.1 Linux/4.4.179-99-default opensuse/42.3 glibc/2.22
                UID:GID : 1000:100
             netrc file : None
           offline mode : False

Problem is registered in issue #6

@ocefpaf Thanks for your hint, just tested on linux as well and it worked properly, like in your case. I have no idea what to do about the Windows issue, though...
Here is my conda info -a equivalent for linux:
     active environment : geonum
    active env location : /home/jonasg/anaconda3/envs/geonum
            shell level : 1
       user config file : /home/jonasg/.condarc
 populated config files :
          conda version : 4.6.14
    conda-build version : 3.17.8
         python version : 3.6.8.final.0
       base environment : /home/jonasg/anaconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/linux-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/jonasg/anaconda3/pkgs
                          /home/jonasg/.conda/pkgs
       envs directories : /home/jonasg/anaconda3/envs
                          /home/jonasg/.conda/envs
               platform : linux-64
             user-agent : conda/4.6.14 requests/2.21.0 CPython/3.6.8 Linux/4.15.0-47-generic ubuntu/16.04.5 glibc/2.23
                UID:GID : 421188:421188
             netrc file : None
           offline mode : False

Problem is registered in issue #6

In that issue you have a different problem (see my answer there).
Here you do get the right package set and the environment variable should be available during the test. May there was a regression on conda-build? Pinging @msarahan here for help.

@ocefpaf seems like updating pyproj conda-forge/pyproj-feedstock#40 solved the issue in the checks here as well. Thanks!!!


PHP CS Fix

This PR related to https://github.com/spiral/framework/issues/215

Hi, can I get your cs settings or script? There are few corrections I have to make.

sure!
<?php

declare(strict_types=1);

return PhpCsFixer\Config::create()
    ->setCacheFile(__DIR__ . '/php_cs.cache')
    ->setRiskyAllowed(true)
    ->setRules([
        '@Symfony' => true,
        '@Symfony:risky' => true,
        '@PHP71Migration' => true,
        '@PHP71Migration:risky' => true,
        '@PHPUnit60Migration:risky' => true,
        'trailing_comma_in_multiline_array' => false,
        'native_constant_invocation' => false,
        'native_function_invocation' => false,
        'protected_to_private' => false,
        'no_alias_functions' => false,
        'set_type_to_cast' => false,
        'phpdoc_inline_tag' => false,
        'function_to_constant' => false,
        'self_accessor' => false,
        'increment_style' => false,
        'phpdoc_var_without_name' => false,
        'binary_operator_spaces' => [
            'default' => 'align',
        ],
        'array_syntax' => [
            'syntax' => 'short',
        ],
        'is_null' => false,
        'cast_spaces' => [
            'space' => 'none',
        ],
        'declare_strict_types' => true,
        'ordered_imports' => [
            'sortAlgorithm' => 'alpha',
            'importsOrder' => [
                'const',
                'function',
                'class',
            ],
        ],
        'no_useless_else' => true,
        'no_useless_return' => true,
        'php_unit_construct' => true,
        'php_unit_strict' => true,
        'phpdoc_separation' => false,
        'concat_space' => [
            'spacing' => 'one'
        ],
        'phpdoc_align' => [
            'tags' => []
        ],
        'phpdoc_annotation_without_dot' => true,
        'phpdoc_no_alias_tag' => false,
        'yoda_style' => false,
        'phpdoc_to_comment' => false,
    ])
    ->setFinder(
        PhpCsFixer\Finder::create()
            ->in(__DIR__)
            ->exclude([
                'vendor',
                'bin',
                'tests',
            ])
            ->notPath('functions.php')
    );

<?php

declare(strict_types=1);

return PhpCsFixer\Config::create()
    ->setCacheFile(__DIR__ . '/php_cs.cache')
    ->setRiskyAllowed(true)
    ->setRules([
        '@Symfony' => true,
        '@Symfony:risky' => true,
        '@PHP71Migration' => true,
        '@PHP71Migration:risky' => true,
        '@PHPUnit60Migration:risky' => true,
        'trailing_comma_in_multiline_array' => false,
        'native_constant_invocation' => false,
        'native_function_invocation' => false,
        'protected_to_private' => false,
        'no_alias_functions' => false,
        'set_type_to_cast' => false,
        'phpdoc_inline_tag' => false,
        'function_to_constant' => false,
        'self_accessor' => false,
        'increment_style' => false,
        'phpdoc_var_without_name' => false,
        'binary_operator_spaces' => [
            'default' => 'align',
        ],
        'array_syntax' => [
            'syntax' => 'short',
        ],
        'is_null' => false,
        'cast_spaces' => [
            'space' => 'none',
        ],
        'declare_strict_types' => true,
        'ordered_imports' => [
            'sortAlgorithm' => 'alpha',
            'importsOrder' => [
                'const',
                'function',
                'class',
            ],
        ],
        'no_useless_else' => true,
        'no_useless_return' => true,
        'php_unit_construct' => true,
        'php_unit_strict' => true,
        'phpdoc_separation' => false,
        'concat_space' => [
            'spacing' => 'one'
        ],
        'phpdoc_align' => [
            'tags' => []
        ],
        'phpdoc_annotation_without_dot' => true,
        'phpdoc_no_alias_tag' => false,
        'yoda_style' => false,
        'phpdoc_to_comment' => false,
    ])
    ->setFinder(
        PhpCsFixer\Finder::create()
            ->in(__DIR__)
            ->exclude([
                'vendor',
                'bin',
                'tests',
            ])
            ->notPath('functions.php')
    );

@wolfy-j I followed https://cs.symfony.com/ and created .php_cs file, then run php php-cs-fixer-v2.phar fix

To avoid changing too much code style, I disabled some rules, although I think they make sense.

Thank you, considering the impact and 60+ repos we have to apply to I can't guarantee quick merge. I need to talk to all the teams to make sure that CS is aligned.

FYI, we did not forget about it, @alexndr-novikov is working on the full-size analysis of the best approach.

Thank you for your excellent work. 👍

Thank you @charescape , we highly appreciate your contribution.
Unfortunately, this PR requires some modifications to be merged. It does not fit PSR-12, and has some changes that are not required by it, but do some unnecessary code changes. (like php-cs-fix 'binary_operator_spaces' alignment with '=' sign and etc.)
Also it has conflicts with current codebase.
These's one problem : php-cs-fixer does not support PSR-12 yet (it is expected in v3, https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/4502), so now you'll need 2 tools to fix the code in proper way and check it: code sniffer that already supports PSR-12 checks, and PHP-CS-Fixer.
So, please follow the instruction to update this PR (or optionally close this one, re-fork and apply from scratch and then create new one)

Add to composer.json libraries:

composer require --dev  friendsofphp/php-cs-fixer:^v2.15.3
composer require --dev squizlabs/php_codesniffer:^3.5.0

add .php_cs file to the root of the repo with the following content: (and attach it to PR later)

<?php

declare(strict_types=1);

return PhpCsFixer\Config::create()
    ->setCacheFile(__DIR__ . '/.php_cs.cache')
    ->setRiskyAllowed(true)
    ->setRules([
        '@PSR2' => true,
        'binary_operator_spaces' => [
            'default' => null,
            'operators' => [
                '|' => 'single_space',
                '!==' => 'single_space',
                '!=' => 'single_space',
                '==' => 'single_space',
                '===' => 'single_space',
            ]
        ],
        'ordered_class_elements' => true,
        'trailing_comma_in_multiline_array' => false,
        'declare_strict_types' => true,
        'linebreak_after_opening_tag' => true,
        'blank_line_after_opening_tag' => true,
        'single_quote' => true,
        'lowercase_cast' => true,
        'short_scalar_cast' => true,
        'no_leading_import_slash' => true,
        'declare_equal_normalize' => [
            'space' => 'none'
        ],
        'new_with_braces' => true,
        'no_blank_lines_after_phpdoc' => true,
        'single_blank_line_before_namespace' => true,
        'visibility_required' => ['property', 'method', 'const'],
        'ternary_operator_spaces' => true,
        'unary_operator_spaces' => true,
        'return_type_declaration' => true,
        'concat_space' => [
            'spacing' => 'one'
        ],
        'no_useless_else' => true,
        'no_useless_return' => true,
        'phpdoc_separation' => false,
        'yoda_style' => false,
        'void_return' => true,
    ])
    ->setFinder(
        PhpCsFixer\Finder::create()
            ->in(__DIR__)
            ->exclude([
                'vendor',
                'bin',
            ])
    );

Run

./vendor/bin/php-cs-fixer fix
./vendor/bin/phpcbf --report=code --standard=PSR12 --colors tests src
./vendor/bin/phpcs -n --report=code --standard=PSR12 --colors tests src

If last check still alert any issues (usually about class docblock and declare order and blank lines) - fix it manually please

Add to .travis.yml on line 30

vendor/bin/phpcs -n --report=code --standard=PSR12 --colors tests src
And then update the pull request.
Let me know if you have any questions about it

@alexndr-novikov Thank you very much. I am going to follow your instruction and update this PR soon.

Add to composer.json libraries

done.

add .php_cs file to the root of the repo with the following content: (and attach it to PR later)

done.

Run auto fix

done.

Do manually fix

done.

Add to .travis.yml on line 30

done.

@charescape if you want you can use spiral/code-style by youself, so the PR will remain after you.

@charescape vendon/bin/spiral-cs fix src tests functions.php

@wolfy-j Thank you! I will try to update this PR today.

@wolfy-j Thank you! I will try to update this PR today.

I'll push an update with enabled CS to it. Travis will fail for now, so we will see how the CS will work.

@charescape
so the flow should be like

composer require --dev spiral/code-style
./vendor/bin/spiral-cs fix functions.php src/ tests
./vendor/bin/spiral-cs check functions.php src/ tests
fix the rest issues manually (declare order, ini_set('display_errors', '1');, etc)

@alexndr-novikov Thanks for your instruction. I will do it soon.

Hi, we are prepping big release, when do you think we can merge it? :|

@wolfy-j @alexndr-novikov Sorry, I'm still busy at the moment, and I don't want to delay the progress of your project, so this PR should be closed.

Sorry about that.


to_reo cause errors if using with other WIN32APIs

I have a Rakefile where I use other WIN32OLE objects.  When trying to use the other object that mirrors one of the REO methods (save), I am getting a an exception because of this line
raise TypeREOError, "given object cannot be type-lifted to a RobustExcelOle object" .  This object isn't a RobustExcelOle object but the redefining of the save method is causing this exception

Can you describe a bit more about the other WIN32OLE object, and what the mirroring the REO save method looks like?
The exception says probably that the object is not a win32ol object that is wrapped in RobustExcelOle.

Dr. Thomas Raths
Körperpsychotherapie, Kreativtherapie, WATSU
Friedenstraße 38
97072 Würzburg
0175 - 90 81 668
www.erlebens-raum.de

Gesendet: Mittwoch, 17. März 2021 um 22:07 Uhr
Von: "dsisnero" @.>
An: "Thomas008/robust_excel_ole" @.>
Cc: "Subscribed" @.***>
Betreff: [Thomas008/robust_excel_ole] to_reo cause errors if using with other WIN32APIs (#34)

I have a Rakefile where I use other WIN32OLE objects. When trying to use the other object that mirrors one of the REO methods (save), I am getting a an exception because of this line
raise TypeREOError, "given object cannot be type-lifted to a RobustExcelOle object" . This object isn't a RobustExcelOle object but the redefining of the save method is causing this exception
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Exporing this issue, we found that the bug is caused by a method General#init_reo_for_win32ole that defines RobustExcelOle methods for WIN32OLE objects (such that these methods are available for WIN32OLE objects, too). Here are some first solutions of this issue:

Can you define the save method starting with upper-case letter? Can you give feedback, if that works
In case there are several redefined methods starting with upper-case letter, in the last pushed version we implemented a version of the method General#init_reo_for_win32ole that should exclude redefined upper-case letter methods.
I will try a refinement such that using this method General#init_reo_for_win32ole can be controlled. We had problems with a first implementation with that.

I hope, this gives a first clue. Please send us feedback, whether this helps you. Thank you for pointing out this issue!

I was able to call it using uppercase Save without an error.

We have now fixed the problem. The methods in other WIn32OLE objects are now being preserved and not being overwritten.
Thank you for pointing this out.


Resource path is ignored when uploading a file

If the flow/user provides a value for resourcePath, the service ignores it and just places the file into the root of the bucket.

@josecollazzi could you review please?

@jonjomckay lgtm :racehorse:


how to asynchronous? (avoid block)

I have very large static json data (150k count)
When I initially create index, it block the browser UI, not responsive, until indexing completed.
Ideally I am ok with long time it took for indexing, as long as it NOT block UI.
I know if I indexing in web worker, it will not block main thread UI.
Can we make lunr.js as asynchronous? like ajax calls,
when I indexing,  it runs but not block UI, browser keep responsive on other UI task.

First, you should probably look into pre-building your indexes if the content is relatively static.
It isn't possible to make Lunr indexing asynchronous, it is compute bound and JavaScript is single threaded. If you must build the index in the browser and you don't want to block the UI thread then, as you mention, the indexing needs to be moved off the main thread using WebWorkers or similar.


Entity Group Transactions with Table Storage

I don't see how to do entity group transactions on table storage currently.  Is this missing functionality, or how would I go about this?
For instance, if I wanted to insert entities, and they all had the same partition key, instead of using func (*TableServiceClient) InsertEntity which inserts an entity at a time, it should be possible to create a batch of entity insert operations and transact them.  If that is currently supported, I'm missing how I might do that.

For further conversation around this issue, please see the issue linked above.


Sample Code won't work

After executing exactly what your mini-tutorial/sample code does, I get the error NameError: global name 'centerLat' is not defined but there's no such variable in the code. How is this fixed?

Hey @ZapDos7 could you attach your produced HTML file here?

I'll be closing this for now since I wasn't able to reproduce this and couldn't find an HTML file that shows this issue.
If it happens again, feel free to post your code or a problematic HTML file and I can reopen this.


Vapor crashes when creating a Barb renderer on an MPAS data

To reproduce:

Open VAPOR, load an MPAS data. I tested /glade/p/VAST/VAPOR/Data/MPAS/MPAS_V4.0/x1.40962.output.2012-05-25_06.00.00.nc
create a Barb renderer.
click the checkbox to enable the renderer. Vapor crashes.

John, I believe that the problem may lie within the DataMgr or Grid class for MPAS datasets.
The problem is deterministically reproducible.  On Geyser, the location of the crash is repeatable at MappingFrame.cpp:208, which is referencing an invalid Grid object.  The return code on DataMgrUtils::GetGrids is returning as valid, when the Grid object is NULL.
On OSX, the crash happens at seemingly random locations in the call trace.  For this reason I suggest debugging on Linux.
This problem does not seem to be exclusive to the Barb renderer.

Just assign it to me, Scott, and i’ll take a look.
jc

On Oct 24, 2017, at 11:46 AM, sgpearse<EMAIL_ADDRESS>wrote:
John, I believe that the problem may lie within the DataMgr or Grid class for MPAS datasets.
The problem is deterministically reproducible. On Geyser, the location of the crash is repeatable at MappingFrame.cpp:208, which is referencing an invalid Grid object. The return code on DataMgrUtils::GetGrids is returning as valid, when the Grid object is NULL.
On OSX, the crash happens at seemingly random locations in the call trace. For this reason I suggest debugging on Linux.
This problem does not seem to be exclusive to the Barb renderer.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub, or mute the thread.

John Clyne
National Center for Atmospheric Research
303.497.1236 (w),<PHONE_NUMBER> (c)
<EMAIL_ADDRESS>


ERROR: unable to open for writing: [Errno 36] File name too long:

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I remove or skip any mandatory* field

Checklist

[X] I'm reporting a bug unrelated to a specific site
[X] I've verified that I'm running yt-dlp version 2022.09.01 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Provide a description that is worded well enough to be understood
The following website fails:
ydl "https://twitter.com/JuliaDavisNews/status/1574860347697205262"

ydl is just my alias to yt-dlp on the commandline.
My browser does not play twitter videos for some reason so I download
via yt-dlp.
The error I get is:
[twitter]<PHONE_NUMBER>697205262: Downloading guest token
[twitter]<PHONE_NUMBER>697205262: Downloading JSON metadata
[twitter]<PHONE_NUMBER>697205262: Downloading m3u8 information
[info]<PHONE_NUMBER>697205262: Downloading 1 format(s): http-10368

ERROR: unable to open for writing: [Errno 36] File name too long: "Julia Davis - Top Russian propagandist Vladimir
Solovyov is quite upset with how Putin's ＂partial mobilization＂ is going and everything the supposed ＂superpower＂ is
lacking. So much in this video, just watch. It fits right in with what I described in my latest article⤵
[1574860347697205262].mp4.part"

Proposal to fix:
"if too long file name, and python is too stupid to handle long names, then rename
to a shorter name such as:
"Julia Davis - Top Russian _video_shortened_byyt_dlp.mp4"
or something like this. Right now it fails to download because of some weird
assumption it appears to be doing.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
See above.

PS: The template is really annoying to use. Do we also have to do sit ups
and leg push ups before filing a new bug report?

I mean it's just a simple bug. There is no magic behind it; I just fed
yt-dlp one remote URL. It failed. What more is there to show really? I
get that for some bug reports you need to know more information but
the error reporting "too long file name" is not good. In ruby I'd just
check for the file size and automatically rename (and notify the user
about this too).

Related: https://github.com/ytdl-org/youtube-dl/issues/29912

try again with  yt-dlp -o "%(id)s.%(ext)s" "https://twitter.com/JuliaDavisNews/status/1574860347697205262"
the video will now download.

Read pinned issue


ardca silently modifies input matrix

julia> X = [1 2; 4 4; 5 6] # two sequences of length 3
3×2 Matrix{Int64}:
 1  2
 4  4
 5  6

julia> w = [1/2, 1/2];

julia> out = ardca(X, w);
site = 1	pl = 0.8326	time = 0.0003	status = SUCCESS
site = 2	pl = 0.2272	time = 0.0013	status = FTOL_REACHED

julia> X # sequence sites have been shuffled!
3×2 Matrix{Int64}:
 4  4
 1  2
 5  6

julia> sample(out[1], 2) # a sample taken from the inferred model has the right order
3×2 Matrix{Int64}:
 1  2
 4  4
 5  6

I just realized this, after it caused a bug in some code I was running. I imagine it is due to re-ordering the sites using the entropic order.
Possible fixes:

rename the function to ardca! so that users know what to expect;
work on a copy the input matrix Z; I believe it should not be any issue even for large alignments.

I can make a PR if you think this is useful.

The problem is that the logic is that for ordering other than the natural I
permute the idx of the alignment. The safe thing should be to me make a
copy of the alignment in the constructor of arnet.
I am in Parma for a conference, but PR are welcome.
On Tue, Jun 20, 2023, 3:16 PM Pierre Barrat @.***>
wrote:

julia> X = [1 2; 4 4; 5 6] # two sequences of length 3
3×2 Matrix{Int64}:
1  2
4  4
5  6
julia> w = [1/2, 1/2];
julia> out = ardca(X, w);
site = 1	pl = 0.8326	time = 0.0003	status = SUCCESS
site = 2	pl = 0.2272	time = 0.0013	status = FTOL_REACHED
julia> X # sequence sites have been shuffled!
3×2 Matrix{Int64}:
4  4
1  2
5  6
julia> sample(out[1], 2) # a sample taken from the inferred model has the right order
3×2 Matrix{Int64}:
1  2
4  4
5  6
I just realized this, after it caused a bug in some code I was running. I
imagine it is due to re-ordering the sites using the entropic order.
Possible fixes:

rename the function to ardca! so that users know what to expect;
work on a copy the input matrix Z; I believe it should not be any
issue even for large alignments.

I can make a PR if you think this is useful.
—
Reply to this email directly, view it on GitHub
https://github.com/pagnani/ArDCA.jl/issues/27, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJYTHUZYP2FDG2Q5MWLQRLXMGPCRANCNFSM6AAAAAAZNIZ6HU
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Default Payment selection in /account should not be rule based

Description: /account/payment let the user choose wich payment method ist their default preferred one. But the selection is based on the rule conditions. So when the customer has something in their cart, which disable some of the payment methods, the method is no longer selectable as default. for the customer, it can be confusing.
Environment:
vanilla SW<IP_ADDRESS>.
Steps to reproduce:

Set up vanilla sw
Check /account/payment
make a rule which disables one or more paymentmethods (e.g. when a product with art.no. sw10000 is in the cart)
put the article which disable a payment method in the cart
check account/payment

Expected result:
All or at least all payment methods for my country should be visible.
Actual result:
Only the current "allowed" payment methods with all the rules applied are shown,

[public] Automated response: This issue is linked to the internal issue https://shopware.atlassian.net/browse/NEXT-33719.
[created from NEXT-33719, comment 486024]

[public] Hello,
Within our company roadmap and work capacity, we try to address each bug or improvement request but admit that not each one will be resolved. To continue our culture of honesty and openness, we are closing this issue to focus on our roadmap on behalf of all Shopware users.
If you feel like this issue is still impacting you, please create a new issue and let us know. Thank you again for your valuable feedback.
[created from NEXT-33719, comment 501266]


Invalid FindInMap does not get picked up

Got the following mapping:
Mappings:
  CertificateMap:
    us-east-1:
      Arn: arn:aws:acm:us-east-1:<account>:certificate/<id>

Resources
  AppAlbListener:
    Type: AWS::ElasticLoadBalancingV2::Listener
    Properties:
      # ...
      Certificates:
        - CertificateArn:
            Fn::FindInMap: [CertificateMap, !Ref 'AWS::Region', id]

As you can see, Fn::FindInMap is referencing the id key instead of Arn. We should add a rule to fail in such a scenario.

Agreed.  This would be a great rule.  Thanks.

Agreed! @hoshsadiq -- if you feel like tackling this let us know! There are some tools in the docs/ directory to help bootstrap you on writing rules, and you can reach out to any of us if you get stuck.
We've also got a Slack channel I can invite you too for real-time discussion.

Yes please, would be good. I do have a few questions.

Awesome -- send me your email either to<EMAIL_ADDRESS>or as a DM on twitter (@chuckm) and I'll get you invited.

I had ideas to create this rule a few times but I always paused when you realized you can use Ref for the MapName.  But what we should have done is just punt in that scenario.  Have some check for common scenarios of the map being a string is better than nothing.

Yeah I realised that. It was one of the reason I wanted to join the Slack, to see if you guys already have a way of resolving refs as best as possible, but haven't had a chance to ask it yet as I've been without internet everytime I've started looking at this.


refactor(papyrus_p2p_sync): convert state diff tests to use run_test

refactor(papyrus_p2p_sync): run_test supports all data types
refactor(papyrus_p2p_sync): convert state diff tests to use run_test

This change is