Add worker pool library.

Description
Adds a library to create a worker pool queue pattern.
Related Issue(s)

Fixes #
How to test

For things that are not much code but housekeeping, I'm happy to take a PR from you @fharper 😆

Please do, it's everyone responsibilities to be sure that when they create a new repository, they had the proper license.

Pro tip then: I'll add you a story to add the license to the default template for GitOps, that way every new repo is guaranteed to be created with the LICENSE file in it.


Feature suggestion: automatic mode switching based on time

Many people use something to cover their laptop cameras when not in use, e.g. https://supporters.eff.org/shop/laptop-camera-cover-set
For such people, checking the ambient light is not possible because the camera is covered up most of the time. It would be nice to have a second mechanism to trigger automatic changes based on system time and sunset information.
What do you think?

Implemented :)


How to reconfigure a rule?

So, I'm a bit puzzled tbh. It seems like I can override css-loader options, but not the actual rule with the test property and all. I used the following snippet to extend CRA in Storybook 5. How can I rewrite this for Craco?
const sassRuleIndex = config.module.rules.findIndex(
  rule => rule.test.source === /\.(scss|sass)$/.source
)

if (sassRuleIndex === -1) {
  throw new Error('Cannot find sass rule in Webpack configuration.')
}

config.module.rules[sassRuleIndex] = {
  test: /\.(scss|sass)$/,
  use: [
    'style-loader',
    {
      loader: 'css-loader',
      options: {
        modules: true,
        importLoaders: 1,
        localIdentName: 'kn-[name]__[local]___[hash:base64:5]'
      }
    },
    'sass-loader'
  ],
  include: path.resolve(__dirname, '../')
}

With some exploring, I noticed I can mutate the config in a similar way, but it seems a bit more nested with a strange oneOf property that has all the actual rules.

Hi @adi518
To extends an existing webpack loader you can use  webpack.configure.
module.exports = {
    webpack: {
        configure: (webpackConfig, { env, paths }) => {
             // do you thing...

             return webpackConfig;
        }
    }
};

More info available at: https://github.com/sharegate/craco/blob/master/packages/craco/README.md#configuration-overview
Hope it helps!
Patrick

Thanks. I basically wanted to set all css-loader instances with modules=true, instead of having to rename existing CSS files to [filename].module.css, which seems like an awkward solution from Facebook (segregating CSS modules into its own extension). AFAICS, the only drawback of having modules=true is the need to to wrap your global CSS with the :global selector, but it's negligible. :+1:

You can look at a "kind of" sample there:
https://github.com/sharegate/craco/blob/master/packages/craco/lib/features/style/css.js
The getLoaders function is available to the craco.config.js file.
More info here:
https://github.com/sharegate/craco/blob/master/packages/craco/README.md#utility-functions


Add aliases for nested maven parameters

Fixes #382.
For example, the following:
<configuration>
  <to>
    <image>target-image</image>
  </to>
</configuration>

can now be written as:
<configuration>
  <to.image>target-image</to.image>
</configuration>

Closing this; no response on the mailing list, plus the added complexity isn't worth it.

Can we still use mavenProject properties to solve the other problem?

Yup, just put up another PR.


‘verify’ should not detect the algorithm from the unverified signature

Although HMAC-SHA1 is still believed to be secure at this time, if the point of GitHub’s migration from HMAC-SHA1 to HMAC-SHA256 was to guard against potential future weaknesses in HMAC-SHA1, that point is entirely negated when an attacker can force a signature to be treated as HMAC-SHA1 simply by starting it with sha1=.
https://github.com/octokit/webhooks-methods.js/blob/3fdcecf1dc50eed89a26afaebcd9f6e488473679/src/node/verify.ts#L7-L9
To fix this, the verify API needs to be changed to take the expected algorithm as a parameter, rather than detecting it from the unverified signature string.

Sadly this has not been addressed yet.
According to this answer which seems to be updated it is advised to "walk away but not run". So I assume there is still no rush...
Well at least here is an idea how to provide a way to control the required algorithm from the outside it in a non breaking way:
change verify from this
https://github.com/octokit/webhooks-methods.js/blob/75feb5e21d0263277daf821a9738bc05af87696d/src/web.ts#L78-L89
to
 export async function verify(
   secret: string,
   eventPayload: string,
   signature: string,
   algorithm = getAlgorithm(signature || ''),
 ) {
   if (!secret || !eventPayload || !signature) {
     throw new TypeError(
       "[@octokit/webhooks-methods] secret, eventPayload & signature required",
     );
   }

This way the option to control it becomes visible in the signature and existing code will not break, since it still falls back to sha1.
If you don't fear the breaking change you could already flip the default by dropping the getAlgorithm method from verify while still allowing users to opt in to sha1 when needed:
 export async function verify(
   secret: string,
   eventPayload: string,
   signature: string,
   algorithm: 'sha256' | 'sha1' = 'sha256',
 ) {
   if (!secret || !eventPayload || !signature) {
     throw new TypeError(
       "[@octokit/webhooks-methods] secret, eventPayload & signature required",
     );
   }

By the way the code recommended on the page that the OP linked already no longer considers the sha from the signature and assumes sha256, looks like it works in all current runtimes and browsers and is short enough to copy paste it, so you own it, instead of importing a library for it that you have to trust passing your secret to.


Create DB backup option

Create option to automate database backups and create one that can be imported on database data loss.

I think this will be an excellent addition to exDock, but it isn't necessary for the initial release. Therefore, I've modified the milestone to "Beta release".
It is perfectly fine to already start working on this, but this is not a requirement for the completing of the initial release milestone


Left-hand shift only

The Windows keyboard shortcut of ctrl-alt-shift-1 for triggering the debug logs must utilize the left-hand shift key. Could this be updated in the docs?

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

ID: 97d5e6d3-b7e0-d79f-0dea-ed423186a157
Version Independent ID: ec6e68aa-552f-ab45-3c8e-92eff526b173
Content: Use log files in troubleshooting Microsoft Teams - Microsoft Teams
Content Source: Teams/log-files.md
Service: msteams
GitHub Login: @LolaJacobsen
Microsoft Alias: lolaj

@rakova17 Thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.


[OPTIMIZE] #272: Move click handling from Adapters

Issue #272

Hi @XinyueZ , thanks for the PR.  I think we're taking the approach of a SingleLiveEvent (article), so these files will undergo a larger change beyond moving the handling logic to the ViewHolder.
I've updated #272 to clarify.

@tiembo The SingleLiveEvent has limit. Think about https://github.com/nickbutcher/plaid/tree/master/core/src/main/java/io/plaidapp/core/util/event


Terminal text all black in Chrome only

OS/Web Information

Web Browser: Chrome  92.0.4515.159 and 93.0.4577.63
Local OS: MacOS 11.5.2
Remote OS: Ubuntu 18.04
Remote Architecture: x64
code-server --version: 3.11.1 c680aae973d83583e4a73dc0c422f44021f0140e

Steps to Reproduce

Install and start code-server
Connect via Chrome and start a terminal session

Expected
Terminal output should show all ansi colors correctly.

Actual
All text is black, regardless of color or bold setting. The same output is shown regardless of shell used and regardless of theme being applied.

Logs
No errors or exceptions are logged
Screenshot
Screenshot from Safari 14.1.2

Screenshot from Chrome 93.0.4577.63

Notes
This issue can be reproduced in VS Code: No

Are you sure this isn't a theme, font or settings issue?
I can't reproduce locally on macOS + Brave

Here are some screenshots from the latest version of Brave (1.29.76) on my machine using different color themes.  This only seems to happen on Chromium based browsers.  Safari and Firefox render the terminal fine and the rendering issues do not happen anywhere in in the code-server window that I can tell.
Just as an FYI, this is the first time Brave had loaded this site so there are no cached assets being used here.
Default Light + theme

Material Theme

Monkai Theme

Hmm 🤔 This is very very strange. Have you tried disabling all extensions?
Do you mind posting your settings.json?

I just tried disabling all extensions (command palette -> Extensions: Disable all installed extensions) and then did a refresh. The outcome was the same.  It's definitely very weird.
Here is my settings.json file, very basic.
{
    "sync.gist": "",
    "sync.autoDownload": false,
    "workbench.colorTheme": "Monokai Dimmed",
    "editor.fontFamily": "'JetBrains Mono', 'Source Code Pro', Hack, Monaco, 'Courier New', monospace",
    "editor.tabSize": 2,
    "editor.fontWeight": 400,
    "terminal.integrated.fontFamily": "'Source Code Pro', 'JetBrains Mono', 'Courier New', Courier",
    "editor.fontSize": 14,
    "files.autoSaveDelay": 5000,
    "terminal.integrated.automationShell.linux": "",
    "terminal.integrated.shell.linux": "/bin/bash",
    "terminal.integrated.shellArgs.linux": [
        "-l"
    ],
    "files.autoSave": "off",
    "yaml.format.enable": true,
    "yaml.format.bracketSpacing": true,
    "workbench.editorAssociations": [
        {
            "viewType": "jupyter-notebook",
            "filenamePattern": "*.ipynb"
        }
    ],
    "redhat.telemetry.enabled": false,
    "terminal.integrated.tabs.enabled": false,
    "workbench.iconTheme": "material-icon-theme"
}

Bummer!
Can you comment out or remove these lines?
    "workbench.colorTheme": "Monokai Dimmed",
    "editor.fontFamily": "'JetBrains Mono', 'Source Code Pro', Hack, Monaco, 'Courier New', monospace",
    "terminal.integrated.fontFamily": "'Source Code Pro', 'JetBrains Mono', 'Courier New', Courier",

On an unrelated note I think
    "workbench.editorAssociations": [
        {
            "viewType": "jupyter-notebook",
            "filenamePattern": "*.ipynb"
        }
    ],

causes this issue and you may want to use this solution

Update,
I made the change for workbench.editorAssociations and that did solve my other issue with the Unable to write to Folder Settings notification - so YAY on that!
I also removed all of the above lines regarding theme and fonts and voila the issue was fixed. I then added them back in until it broke again - it was terminal.integrated.fontFamily.  I then went through and added the fonts in 1 by 1 and refreshed till it again broke, this time all works until Source Code Pro is added in. I'm not sure what about that font is breaking it on Chrome - and only chrome - but that is the issue. It works fine with JetBrans Mono or any of the other mono spaced fonts.

Hooray!
I had a feeling it might be the font family. Not sure what the issue is with Source Code Pro 🤔
Since this isn't an issue with code-server itself, do you mind if we close it?

Yes, that's fine.


Tracking issue for reloader docs

So we don't forget to document the work we did in https://github.com/kudobuilder/kudo/pull/996.

reloader was removed


FR: MT Image with Card Solutions Block

Agile Requirement
As a business owner, I want to display an image with some descriptive text and related links so that my client can get more information on my products and its technical advantages.
Description
Create an image with card block that will allow editors to add it to any page and configure it by adding an image, a header, text, a button and a maximum of 6 links, this block will have 2 variants (left image or right image)
Acceptance Criteria
1- As an editor, I can add the new "image with card" block to any page.
2- As an editor, I can select any of the two variants of this block.

Left Image (default)
Right Image

3- As an editor, I can configure any of the above-mentioned variants by adding an Image, a header, text, a button, a subtitle and a maximum of 6 links (which will be displayed in 2 columns in desktop version and one under the other in the mobile version). It's the editor's responsibility to stay within the 6 links limit.
4- The new block and its variants follow the Figma design for mobile and desktop:
- Left Image (desktop)
- Left Image (mobile)
- Right Image (desktop)
- Right Image (mobile)
5- For the tablet viewport, we will copy the #11 solution, adapting it to this block's style.
Technical hint
The positioning of the images and cards (overlapping diagonally) is something that was also used in the #11 implementation so that code can be reused.

adding screenshots of Figma file here for my reference:

Kamino cloned this issue to hlxsites/vg-macktrucks-com


Upgrade to @willdurand's Negotiation v2

Q
A

Bug fix?
no

New feature?
no

BC breaks?
no

Deprecations?
no

Tests pass?
yes

Fixed tickets
n/a

License
MIT

Doc PR
n/a

Upgrade to Negotiation v2 and add a unit test.

@dunglas you'll have to rebase on the new master classes :)


Launching game with glossi causes significant increase in dwm.exe GPU0 usage, decrease in game GPU1 usage and thus low fps

Actual Behavior
As the title suggests. When playing Microsoft flight simulator (MSFS) with glossi, desktop windows manager (dwm.exe) takes up to 70% of GPU0 while the game only uses <20% GPU1, resulting in a fps of 5-15.
Steps to Reproduce the Problem
I have tried
a. Launch the game from the Xbox app directly
b. Add the game to steam by glos config and launch the game from steam without glossi
c. Add the game to steam by glos config and launch the game from steam with glossi
d. Add the Xbox app to steam by glos config and launch the xbox app from steam with glossi, then launch the game from xbox app
In a) and b), dwm.exe only uses <20% of GPU0, and the game uses ~70% of GPU1, giving a normal fps of 25-35. But in c and d, the fps is very low.
Specifications
System: windows 10
CPU: i7 9750h
Integrated GPU: UHD 630 (driver: <IP_ADDRESS>0)
dedicated GPU: gtx 1660ti (driver: <IP_ADDRESS>9)

What happens if you set "maxFps" in %appdata%\GlosSI\Targets\[YOUR_SHORTCUTT_NAME].json to let's say... 5?


can't request download with DioMixin,Isn't it right to use a posture?

can't download with DioMixin, is this api unusable?

Have this same error on web. It seems to work on mobile but throw an FileSystemException as it can't create file...

download is only available in DioForNative.


Request to add a custom identifier

Request to add a custom identifier
Request for custom sorting

The way the ID is setup is central to how the whole backend and frontend works. Having custom IDs would require huge changes for little gain, which is not something worth investing time in. I suggest utilizing the "comment" field instead, there you can write whatever you want and still have it sortable.


dendrograms, row/column group sizes?

The jupyter widget version of clustergrammer is a very nice piece of work.  Congratulations.
I am not yet clear on how to display row and column dendrograms, nor how to adjust row group and column group sizes, when running the sample notebook:
Running_clustergrammer_widget.ipynb
Can you point me to documentation I may have missed, or otherwise help out?

Thanks. Are you using Mozilla as your browser? In my experience, Mozilla does not render SVG paths correctly and the grey trapezoids that display the dendrogram are made with SVG paths. If you are using Mozilla you can try Chrome or Safari. If that is not the problem, then can you send me a screenshot? Also, the sliders on the left-sidebar can be used to control the size of the dendrograms.
-Nick

Hi Nick,
You got it right: the dendrograms work fine in chrome.
Two new questions:

Are hierarchical dendrograms available?  I think you once told me that they are

We would like to select rows and columns by name, via a python function call from the notebook, which resolves to a javascript function in the widget.  Similarly, we want to be able to query the current selection state of the widget from python.  The cyjs widget - should have  the nbextension version ready later this week - has quite a few operations like this.  I try to make all the interactive gestures also available as function calls.

My collaborators were pretty impressed by the clustergrammer widget demo I did today.

Paul

On Dec 3, 2016, at 12:28 PM, Nicolas Fernandez<EMAIL_ADDRESS>wrote:
Thanks. Are you using Mozilla as your browser? In my experience, Mozilla does not render SVG paths correctly and the grey trapezoids that display the dendrogram are made with SVG paths. If you are using Mozilla you can try Chrome or Safari. If that is not the problem, then can you send me a screenshot? Also, the sliders on the left-sidebar can be used to control the size of the dendrograms.
-Nick
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Paul,
I am glad the widget is working well. You can adjust the size of the dendrogram-groups (the grey trapezoids) using the sliders in the left sidebar: 'Row Group Size' and 'Column Group Size'.
Currently, there is only one-way communication from Python to JavaScript, but I would like to add JavaScript -> Python communication too. For instance, it would be nice to press a front-end button to modify clustering parameters (e.g. distance metric). In your question do you mean that: 1) you want to filter for a subset of rows/columns by passing a list to the Python function and 2) you want to export the current matrix (in its current state) from the JavaScript to Python as a DataFrame.
I look forward to seeing how you set up these operations on the cyjs widget.
-Nick

Paul,
The widget now works with nbviewer
http://nbviewer.jupyter.org/github/MaayanLab/clustergrammer-widget/blob/master/Running_clustergrammer_widget.ipynb
Nick

Thanks, Nick!
For what it's worth, my current strategy (and my current wish for clustergrammer) is described in issue 6.  I am very keen to try that out when you have the time to work on it.  Meanwhile, clustergrammer gets better and better!

Hey Paul,
Thanks, hopefully I can have a go at it this week. I'll keep you posted.
Nick


API feedback - Code splitting, co-location and verboseness

I hope a new issue is the right place to discuss this. I've seen parts of this discussed elsewhere, but I have a holistic take I wanted to note down and I didn't want to add noise to #15.
First of all, great job on this, I'm excited and really want this to succeed! 🎉 I've been using Redux in different apps for many years now and you are well on your way trying to solve a huge pain point here. I want to make it clear up front that I like a lot of the current API and even though the feedback is kind of "deep", I think it can be fixed with tweaks as opposed to bigger rewrites.
This feedback comes partly from having been involved in discussions around Redux lazy-loading, partly from having been tangentially involved in React Query and partly from my experiences as a long time consumer of Redux, though I do want to note I haven't used RTK extensively yet.
I have a few concerns, but I think a lot kind of centers around this from the docs:

With RTK Query, you usually define your entire API definition in one place

While allowing you to do that is certainly great, I think making this the default is a mistake that ignores previous pain points in Redux.
Before diving into details, these are my high level concerns:

Code splitting the users code should be the default (small library size doesn't really matter if this isn't in place since the effect of the library on userland code is usually a bigger problem)
The current API is more verbose than it should have to be (see above)
Co-location of data fetching code with where it is used is an important use case

I think these are more interrelated than it might seem at first glance and might have a common solution.
Background
As you know, how Redux is used has gone through quite a journey over the years and I'll try to keep this short since you already know this part, but it's still important for context.
In the beginning, it was popular to have separate files for reducers and actions, and selectors weren't even used by many. After a long time of that, the pains became visible to many. It was hard to get an overview and change stuff since things were spread out in multiple files. Many projects had a /redux folder where all this was kept, or top level /reducers and /actions folders. Among other things, this often meant that even when you removed some components no longer in use, stuff got left around. Also, this didn't lend itself very well to code splitting, so most Redux state was included in the main app bundle, even if it was huge and bloated.
The strength of the ducks pattern was the realization that separation of concerns is not the same as separation of reducers/actions/selectors but instead a single file containing all of these for some piece of functionality is a better kind of separation. An effect of this is that you can keep that file close to where it is actually being imported and used. When you do that, it's also easier and more obvious that you should code split the Redux-stuff with the rest of the code.
(As an aside, createSlice is a great evolution of this, but I'm a bit sad that there is still no first class built in way to code split it in RTK (as an aside-aside, I think it should even accept middleware and code split that too)).
All of this is more painful the larger the app becomes. In large applications, my experience is that it becomes unfeasible to have a top-down approach where you declare all reducers etc up front. This is not only because of code size, but also because as more teams becomes involved, good separation becomes more important.
Concerns

With RTK Query, you usually define your entire API definition in one place

Imagine if the Redux docs (2020) said:

With Redux, you usually define your entire state definition in one place

I'm being a bit hyperbolic here to make a point and make the link to the background above clear, but I do think this is problematic.
You did also note the following:

Our perspective is that it's much easier to keep track of how requests, cache invalidation, and general app configuration behave when they're all in one central location in comparison to having X number of custom hooks in different files throughout your application.

I think this is a balance and a scale between fully global and very local where the best tradeoff differs from app to app. APIs can have hundreds of endpoints in which case it becomes important that separate teams can own just parts of it and the app and change those without fear. Also, some APIs (or parts of APIs) might just be used on some pages (or for lazy loaded content below the fold on a page), in which case it makes no sense to load that code for all other pages or before it's needed.
Just consider the case of adoption. A huge audience for RTK Query is existing Redux apps that have not and might not want to migrate to RQ or SWR etc. A single team might want to try implementing RTK Query on their part of the site, what is the user journey for that currently? The docs currently recommend them to just create an API definition and include that at the top which adds both the RTK Query code and their userland code into the main bundle.
The DX of RTK Query is currently, in one aspect, kind of the opposite to React Query, SWR, Apollo, URQL etc. What I mean by this is that in those libraries, you usually first define the query you want to make inside the component that needs the data and you are ready to go. Later you lift it out of there to be reused elsewhere if needed, or if it just fits better in a separate file. If you squint, you can see similarities to why the ducks-pattern became popular. I see this as a bottom up approach.
RTK Query in contrast requires you to create an API-abstraction and include the reducer output from that into the store when you are creating it. Then you need to import the hooks generated and use those in the component. I see this as a top down approach. (You can code split the reducer if you bring your own solution for that, but you still need to inject that before using the query, so it's still top down for the developer and a lot of ritual to go through and figure out).
I think there are a lot of reasons the mentioned libraries have become popular, but I think a big reason is this bottom up approach and the lack of boilerplate. I think it's too hard to get started with RTK Query at the moment and I think it's too cumbersome to create a new query.
(As a separate question, why the verbose builder syntax is necessary?)
Suggestions
Note that these are naïve suggestions, without having looked very deep into the code base. These are not finished solutions, more like something to jolt discussion around alternatives. If you agree these are actual issues and not just differing opinions/philosophies, I'm sure you can come up with better solutions. 🙂
The goal here is to support something like this as the entire first setup needed:
import { createEndpoints } from '@rtk-incubator/rtk-query'

const { useGetPokemonByNameQuery } = createEndpoints({
  reducerPath: 'pokemonApi',
  endpoints: (builder) => ({
    getPokemonByName: builder.query({
      query: (name: string) => `https://pokeapi.co/api/v2/pokemon/${name}`,
    }),
  }),
});

export default function Pokemon() {
  const { data, error, isLoading } = useGetPokemonByNameQuery('bulbasaur');

  return 'Omitted';
}

In this example, the useGetPokemonByNameQuery detects that there is no API with the reducerPath:'pokemonApi' currently in the store. It creates a default API and injects that reducer and middleware into the store before making the query.
If you want API configuration, maybe something like this?
import { createApi, createEndpoints } from '@rtk-incubator/rtk-query'

// This part is probably created in a different file and reused:
const api = createApi({
  reducerPath: 'pokemonApi',
  baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/' }),
});

const { useGetPokemonByNameQuery } = createEndpoints({
  api: api,
  endpoints: (builder) => ({
    getPokemonByName: builder.query({
      query: (name: string) => `pokemon/${name}`,
    }),
  }),
});

export default function Pokemon() {
  const { data, error, isLoading } = useGetPokemonByNameQuery('bulbasaur');

  return 'Omitted';
}

So how would we get here? Lets look at what a manual store setup would look like (also supported):
import { configureStore } from '@reduxjs/toolkit';
import { injectApi } from '@rtk-incubator/rtk-query';
import { pokemonApi } from './services/pokemon';

const store = configureStore(/* ... */);

injectApi(store, pokemonApi);

For this to work inside of React, something like a useInjectApi hook is needed that injects both the reducer and middleware, which probably means RTK should support lazy loading of these and RTK Query should use that abstraction.
This hook should only inject if needed and would be used inside of the generated hooks. Also, this hook would create a default API if one was not provided (the generated hook would provide reducerPath).
End
This is all very rough of course with lots of unsolveds, though I'm pretty certain something like it could be done. It would also allow for up front creation of APIs as outlined in the docs today. In essence, I think that by having something smaller than an "API" as a primitive and by finding some way for the useGeneratedQueryHook to inject the APIs/those primitives behind the scenes when necessary, these three could be solved with one stroke:

Code splitting
Terser API
Natural co-location of data fetching code when desired and at different granularity levels

yayyyy, long detailed and highly relevant user feedback!
uh... busy atm so I'll have to look through this later, but thank you very much for writing this :)

No worries, this is very much a wall of text and I fully expect it to take time to ingest and answer. 😄

(side note: I see you mentioned "code splitting in RTK". could you file a separate issue over in the RTK repo to discuss that and expand on your ideas?)

Sure thing! I remember us having a few good and very long threads about splitting back in v6, but I think this is both a better time and RTK a better place to implement it. 😄 I don't have time to get into the nitty gritty as much this time around, but should be able to write something up in the next few days. I'll find those old threads and PRs and link them in as well for context.

Thanks for your comments!
I'm trying to think about how this is a better solution than what is described in the code splitting docs. I honestly can't wrap my 🧠 around it.
Regarding the points about boilerplate, I don't exactly understand. If you're coming from a react-query mindset, here's a comparison: https://github.com/msutkowski/rtk-query-rq-custom-hooks-conversion/pull/1/files. It's actually less code than what you're asking for.
I'll think about this some more either way, and I'm sure @phryneas will have some feedback about any type of feasibility in regards to TS issues.

I think what you are looking for is kind of there in two variants:

You have the classical code splitting approach described in the docs, splitting one API into multiple files that can be lazy-loaded. An example for this can be found in this codesandbox
Having that createEndpoints method completely decoupled from the API as you are suggesting is not possible, if we want half-decent TypeScript support. There is just no way to create a "connection" between the two and validate or enrich stuff on a type level. So I believe we have found a pretty good compromise between type-safety and ease of use here.

The other approach would be just to inject multiple full apis, and there we are actually missing one key piece: late-injecting middlewares.
This is something on the list - something like a "collective" middleware you can just register all your apis in. But given that we already have the normal bundle-splitting so you could just inject multiple empty apis end enhance them later, it's not really a priority right now.

As for Apollo and urql: while these seem to have no prior setup required, once you get into the nitty-gritty details, you come very fast to a point where you have a LOT of bundle size to be provided up-front, like typePolicies and possibleTypes in Apollo (believe me, I run code generators for those because it's not feasible to write that by hand :facepalm:) and as far as I understand it, urqls TypeCache requires similar amounts of config.
But yes, generally this DX that feels opposed to SWR/React-Query is kind of a design target. The goal of RTK Query is not to take over the world and be the best solution for everyone, but to create something that Redux developers are more familiar with: a solution where the business logic is defined separate from the components - while still providing the ease of use in the components people love so much in SWR/React-Query.
Just creating a clone of React Query would not be of much benefit for everyone - providing options is though.
Still, I want to pick out some small things:

which adds both the RTK Query code and their userland code into the main bundle.

The RTK query code at the current moment is (once we have the new build for tree-shaking) about 4-5kb plus RTK & immer. The main bundle will contain both of these at the current state. All userland code can be lazy-loaded, apart from an almost-empty createApi call, so maybe another 50 bytes.

separate teams can own just parts of it

I'm viewing an API here not as the conglomerate of all APIs the application will ever talk to. But pretty much as one service. If it is one (micro)service, I would not want it to be split up, even - or especially - when multiple teams were using it. In the best case, you will have code duplication where overlap exists, in the worst case you will have duplicate code that slightly deviates between two different implementations and that does not get updated all the time, because it is littered around.
So if something is so much a "defined unit" as a service you are talking to: keep it in one central place. Maybe use the code splitting option to put it into multiple files (next to each other) for smaller bundle sizes, but still handle it as a unit. Something on the server changes? Exactly one place in your application to change.
Different (micro)service? Could be a good reason to define another api. Of course, you won't get automatic invalidation then, but usually that is not required over the borders of services and in the worst case a few manual invalidations can be added.

As a separate question, why the verbose builder syntax is necessary?

TypeScript support. Which you also benefit from as a JavaScript user if you use a modern IDE. Since those are repeated patterns, they are very compressable by the way ;)

I think it's too hard to get started with RTK Query at the moment and I think it's too cumbersome to create a new query.

As for "amount of code to write", ee already have a code generator from OpenAPI schemas finished in a first draft and will add code generators for graphql.
Realistically, the amount of setup should be somewhere between React-Query (instant, but if you don't have a clear concept of what you do, you'll end up with spaghetti code) and Apollo (which might take you hours to days if you also want to set up your editor & TypeScript code generation).
Also, adding a new endpoint is far less code than, say, writing a graphql query. ;)
Anyways, this answer might seem a bit chaotic, but I think I covered a lot and it is 1am here, so have a good night ;)

Thanks for your answers! 😍
I realize now that I'm a bit more awake myself that my main point got kind of muddled in that wall of text, so here it is hopefully formulated a bit clearer:

Code splitting should not be an afterthought or require extra work on the users part, it should be the default behavior.

In other words, I think if you code split a part of your application, data fetching logic only used in that part should be code split as well without extra work.
Everything else I wrote is details or secondary, and as I wrote the suggestions were included just for discussion around alternatives but I think they just muddled the point and problem description, so lets ignore those for now.
I'm not worried about the capabilities of the library, I can see that there are technically two different low level ways to code split currently even if some plumbing is work in progress (and having two ways might be confusing?). Entire APIs can be injected into the store after store creation and endpoints can be injected into APIs after API creation. I think these are still lacking high level polish and ease of use though, mainly because it's also missing from RTK.
This criticism can just as well be applied to (React-)Redux, or to RTK of course and I'll open an issue there, but I'm pointing it out here because this is a new library that I think has the opportunity to create better defaults.
Every Redux app I've worked with, I've had to help create lazy loading abstractions for and refactor to that. Huge parts of the main bundle has consisted of Redux code only used in certain parts of the application. This has been cumbersome and time consuming work not unique to these applications, and I think defaulting to putting stuff in the main bundle unless the developer figures out the pretty complex area of lazy loading in Redux and does extra work to implement that is not a good default.
When I read it again I think most of the rest of the wall of text was just a long way of saying that for any solution to this problem you can come up with, I think there can be positive spin off effects on the API. 😄

@Ephem I think it would be really helpful to see some examples of those "lazy loading abstractions", and descriptions of what use cases they're trying to handle.

I think it would be really helpful to see some examples of those "lazy loading abstractions", and descriptions of what use cases they're trying to handle.

I'm glad you're trying to guide me to make things clearer! If we are talking about RTK Query specifically, this is what I tried to provide under suggestions in the original post. injectApi would be the imperative function and useInjectApi would be the hooks-version. The goal of those suggestions however was to hide needing to call either explicitly in most cases, instead automatically doing that for the user in the useGeneratedQueryHooks. On a higher level, I think the key would be to:

Not ever include include the reducers or middlewares on store creation, enhance the store after instead (you can enhance the store right after creation and not have code splitting of course, but docs should steer away from that)
Make it easy, or even better automatic to enhance the store with the specific endpoints used when and where they are used

As for use case, consider this:
import { useSomeQuery } from './api';

function SomeComponent() {
  const { data } = useSomeQuery();

  return 'Omitted';
}

Imagine useSomeQuery is only used in this component, the following is problematic in the current default approach (up front definition):

useSomeQuery is included in the main bundle, even if SomeComponent is lazy
If we remove SomeComponent or remove the usage of useSomeQuery from that without removing the code for useSomeQuery itself, useSomeQuery is not dead code eliminated and stays in the bundle indefinitely

Wiring up the bits needed inside of Redux for an endpoint to work should by default and transparently to the user happen lazily when needed, not eagerly. This would allow at least 1. to be solved by default and without extra work on the users part. Remove an import, that API is no longer a part of the bundle. Import an API in a lazy loaded component, the build tool takes care of determining what/which bundles to include that code.
Nr 2. is trickier since endpoints are currently part of a bigger API-structure. Maybe this is necessary for other stuff to work well in which case I could live with that, 1. is the most important one.

So, just to reiterate this:
At the current moment, you can, if you really insist on doing so, even declare new endpoints in your component file, which - as long as that component file itself is properly code-split - will not require any additional code-splitting magic:
For everyone reading this, please reconsider actually doing so!
Not everything that is possible is good style and this library is written with the mindset of having your API definition in one place.
You might be more happy with another library?
import { api } from 'src/api';

const { useGetPostsQuery } = api.injectEndpoints({
  endpoints: build => ({
    getPosts: build.query({
      query: () => 'posts',
      provides: (result) => result.map(({ id }) => ({ type: 'Posts', id })),
    }),
  }),
});

function MyComponent() {
  const result = useGetPostsQuery();
  return <div>...</div>
}

As I actively discourage the approach presented above, this is what I recommend doing instead:

Put a file posts.js adjacent to the file where you configured your api in the first place.

import { api } from './api';

export const { useGetPostsQuery } = api.injectEndpoints({
  endpoints: build => ({
    getPosts: build.query({
      query: () => 'posts',
      provides: (result) => result.map(({ id }) => ({ type: 'Posts', id })),
    }),
  }),
});

And in your code-split component, import this hook:

import { useGetPostsQuery } from 'src/api/posts';

function MyComponent() {
  const result = useGetPostsQuery();
  return <div>...</div>
}

Again, in that case: the code will be properly split into bundles and only loaded when it is imported by your bundle.

Apart from that: Yes, you have to put your api into your store. Another point of this library is that it is simply a wrapper around plain RTK, no additional magic.
If there will be a "default" way to inject reducers and/or middlewares into your Redux store after the fact, that will be invented over in RTK, not here.
One additional thing:

and having two ways might be confusing?

See it this way: All your api is served from example.com/pet-store-api? That is one Api and should be handled as one.
Do you have data that is served from amazon.com/users, github.com/posts and another graphql endpoint over at facebook.com? Those are three different APIs and handling them as one will only hurt you down the line.

I think the two of you are talking past each other a bit, as far as I can tell :)
Part of Fredrik's point is that there is no built-in way to handle the "re-combine reducers and replace reducer" dance that's typically used for code-splitting slice reducers, and that something like that really ought to be in RTK so that there's at least a baseline implementation people don't have to keep re-inventing.
@ephem fwiw, I was actually asking more for examples of non-RTKQ Redux-related code-splitting that you've done in other apps, although that might be better suited for the issue over in RTK itself.
I think for both of you, it would probably be good to have a couple working examples demonstrating A) what actual problems may still exist with code-splitting in RTKQ atm, and B) how code-splitting does actually work atm.

Oh, I started my answer before @Ephem wrote his last post ;)
But generally: that's why I added the

If there will be a "default" way to inject reducers and/or middlewares into your Redux store after the fact, that will be invented over in RTK, not here.

We can discuss that over there if you want to & have good suggestions - discussing the "injecting stuff into the redux store" itself is out of scope for this repository.
So let's keep the "RTKQ Code-Splitting" discussion here and the "RTK Code-Splitting" discussion there, okay?

Yeah, I reeally wish I hadn't mixed in co-location in this discussion, that's not the main point. 😄 Also, as I stated, I don't worry about what is possible to do when it comes to code splitting, I worry about what patterns are the default and encouraged when it comes to code splitting.

So let's keep the "RTKQ Code-Splitting" discussion here and the "RTK Code-Splitting" discussion there, okay?

Totally agree and this is what I've been trying to do, though they are intermingled of course. I'll open an issue there when I get some time to formulate it better than I did this one.. 😓 That said, even if there is a default way to code split in RTK, that is different from RTK Query doing code splitting by default which is what I'm arguing is important here.

doing code splitting by default which is what I'm arguing is important here.

If by that you mean a pattern of declaring endpoints in different files by default, without having a central definition - that's simple: that just won't happen.
It is not possible to create that with even remotely safe TypeScript. Which is something I'm not willing to sacrifice.
There are explicit relationships here:

the return value of a queryDefinition's query function is the input to the baseQuery
the return value of baseQuery is the input value to transformResponse
provides/invalidates is heavily linked to entityTypes
api.util.updateQueryResult/prefetchThunk is linked to all query definitions

All that will either be 100% type-checked (it is right now) or completely loose if you disconnect it.
As an example:
Right now, you can define three hooks with the same API key and completely different types in libraries like SWR or React-Query. This will definitely cause a bug, as those queries will override each other's cache, so 2/3 of your code will use the wrong types at any given time.
Nobody will stop you from doing that, and frankly, they can't. Because they are disconnected. I do not want to repeat that mistake.
Also, I will argue that "code splitting by default" is required for everyone and that it is too urgent a requirement. This is an advanced use case many people will just not care about.
As an example: This file defines 19 endpoints and is probably more than enough for a small to mid-size application. Transpiled and gzipped, that comes down to 657 bytes. Assuming that your application also ships with at least one jpeg, it just doesn't matter where those bytes are.

This is an advanced use case many people will just not care about.

Exactly, you are making this an advanced use case (I think it shouldn't be), so people won't care about it. I think this is a mistake, you don't and I respect that. You are designing the API and have a vision and more context for what you are trying to achieve and the tradeoffs. 😄
Thanks for listening! 🌹


Dart call go method

Dart call go method by CGO ,"cgo result has Go pointer"  occured when the return value is *C.char which is got from slice '[ ]byte'

Unlike many projects, the Go project does not use GitHub Issues for general discussion or asking questions. GitHub Issues are used for tracking bugs and proposals only.
For questions please refer to https://github.com/golang/go/wiki/Questions


[BUG] Using PnP with ExchangeOnlineManagement - Could not load file or assembly 'Microsoft.Identity.Client, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae'. Could not find or load a specific file. (0x80131621)

Reporting an Issue or Missing Feature
Using PnP with ExchangeOnlineManagement - Could not load file or assembly 'Microsoft.Identity.Client, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae'. Could not find or load a specific file. (0x80131621)
Expected behavior
Use PnP PowerShell successfully with ExchangeOnlineManagement
Actual behavior

Steps to reproduce behavior
See screenshot
What is the version of the Cmdlet module you are running?
Latest
Which operating system/environment are you running PnP PowerShell on?

[x] Windows
[ ] Linux
[ ] MacOS
[ ] Azure Cloud Shell
[x] Azure Functions
[ ] Other : please specify

This is an issue with the VSCode PowerShell Extension and PnP.PowerShell.  Last update was Don't count on this ever being fixed
Either use 5.1 or the Console

In my example, I am executing it in the console. Also, the way I read the other thread is to use PowerShell Core (AKA 7) which I am also doing. This worked for months and only recently stated failing

Any ideas?

The only other thing I've come across with the EXO module was that you had to have basic Auth enabled, but I don't think that would effect what you're doing in this instance.
Could you sanitise the script and I can try to replicate on my tenant

save-module ExchangeOnlineManagement -Path .\;
save-module pnp.powershell -path .\;
Import-Module .\PnP.PowerShell\1.10.0\PnP.PowerShell.psd1;
Import-Module .\ExchangeOnlineManagement\2.0.5\ExchangeOnlineManagement.psd1;
$runAs = [PSCustomObject]@{
    "ClientId"   		= "xxx"
    "Thumbprint" 		= "xxx"
    "Tenant"     		= "xxx"
    "Organization"     	= "xxx"
};
Connect-ExchangeOnline -AppId $RunAs.ClientId -CertificateThumbprint $RunAs.Thumbprint -Organization $RunAs.Organization -ErrorAction Stop -ShowBanner:$false;
Connect-PnPOnline -Url "xxx" -ClientId $RunAs.ClientId -Thumbprint $RunAs.Thumbprint -Tenant $RunAs.Tenant -ReturnConnection -ErrorAction Stop;

The ExchangeOnlineManagement loads a Microsoft.Identity.Client, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae and PnP.PowerShell is expecting Microsoft.Identity.Client, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae. I thought PowerShell Core has some fancy way of isolating the binaries

Am transferring this to discussions as this is not an issue with PnP PowerShell command executions.


on:click-events do not work on clones

I currently have a carousel with on:click-events on the images. When the carousel is not infinite, it works well. With infinite=true however, the clones get the correct styling as the original images, but the on:click-events only work on the originals and not on the clones. it would be awesome if the clones could also handle the events.

Seconded -- I'm using events such as OnMouseEnter and the same behavior exists


Testing your lynx setup with docker fails

Running the docker command in the readme here fails on my system with what looks like the usage message of lynx:
lynx: Invalid Option: -h
USAGE: lynx [options] [file]
Options are:
[...]

try docker container run -it --rm rwxrob/lynx google

That worked perfectly!


Add extension methods to VoiceResponse and MessagingResponse to convert to TwiMLResult

We could add extension methods to make the TwiML generation code more eloquent.
Consider this code:
app.MapPost("/submit", () =>
{
    var voiceResponse = new VoiceResponse()
        .Say($"You pressed 1. Good choice. Goodbye.");
    return Results.Extensions.TwiML(voiceResponse);
});

Which could become:
app.MapPost("/submit",  () =>
    new VoiceResponse()
        .Say($"You pressed 1. Good choice. Goodbye.")
        .ToTwiMLResult()
);

with a convenient extension method.

@Swimburger Seems cool. It'd be amazing if you could just return a VoiceResponse object and it automatically converts it to a TwiMLResult for you without needing any function, however. Would that just involve overriding the .ToString() method of VoiceResponse, or something else perhaps?

@dprothero that would get the XML into the body, but wouldn't set the content-type header.

Implemented by #101.


Experimental: Try moving key v2 apis to 1x line

Why
We want to see if we can build all the nice features from 2.x on top of the 1.x engine. To experiment with this We want to first attempt to move the auth systems and tenant from the 2.x line into the current master-1.x line.
Prerequisites

[x]  KV Store
[x]  Api Handler for 2.x apis to be added modularly
[x]  command line arguments for bolt store file location.

Primary Work

[x]  Move tenant system over and plug into new api Handler
[x]  Move over DBRP
[x]  Create a shard group service
[ ]  Write a write and api/v2/write endpoing that uses these new systems.

Stretch Goals

[ ]  Move Auth and Session systems over
[ ]  Integrate tenant authorization and middleware layers for all requests (including query (influxql and flux) and write (v1/v2))

Expiriment complete.


PowerToys Bug Report

Microsoft PowerToys version
<IP_ADDRESS>
Running as admin

[X] Yes

Area(s) with issue?
General
Steps to reproduce
PowerToys will no longer start automatically on startup. Now I manually start it by searching in the taskbar. Everytime it opens with an error, and asks me to make a post here. So I am finally doing that.
After closing the error, it does seem to work fine. I mostly use FancyZones and ColorPicker though
2022-04-14.txt
.
✔ Expected Behavior
No response
❌ Actual Behavior
No response
Other Software
No response

Please try to uninstall PowerToys and reinstall again from https://aka.ms/installpowertoys and see if this helps. /needinfo

Frank920920's comment was correct.
Uninstall and reinstall fixed issue.


Fix candidate for bonsai state root mismatch

Signed-off-by: Karim TAAM<EMAIL_ADDRESS>

PR description
The problem comes from concurrent access to Bonsai's storageToUpdate map. These concurrent accesses can lead to the overwriting of certain data in this map and impact the behavior when importing a block
Fixed Issue(s)

Documentation

[ ] I thought about documentation and added the doc-change-required label to this PR if
updates are required.

Changelog

[ ] I thought about the changelog and included a changelog update if required.

To add weight to this theory a this transaction has been observed failing and has interacted with (this contract as a internal call)[https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2] and there were access list entries here, here, and here in the same block.  All three are mev bots so it makes sense they would be sure the access list saves on gas.

thanks for the review @shemnon
I just compiled the result of the weekend with 5 nodes without the fix and 5 nodes with the fix

Without the fix each nodes had state root mismatch (total during the weeking 58 state root mismatch)
With the fix 0 state root mismatch during the weekend


Gateway install and config via automation

This document has this to say:
The gateway cannot be installed and configured by using automation.
In fact, we have released a Powershell module which does all of these things:
https://learn.microsoft.com/en-us/powershell/module/datagateway/?view=datagateway-ps
Perhaps we should state that this is actually a supported scenario.

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

ID: dc58ee8d-9650-6a07-8740-e10bf9dc12af
Version Independent ID: ca47ad42-0033-3b26-f7ac-6fb32c3ff8d6
Content: Learn how to install On-premises data gateway for Azure Analysis Services
Content Source: articles/analysis-services/analysis-services-gateway-install.md
Service: analysis-services
GitHub Login: @Minewiskan
Microsoft Alias: owend

@caroysMSFT
Thanks for your feedback! We will investigate and update as appropriate.


fix: Don't set include_type_name query param for ES v7 template creation call

What issue does this PR address?
#518
Does this PR introduce a breaking change?
No
Please check if the PR fulfils these requirements

[x] The commit follows our guidelines
[ ] Unit Tests for the changes have been added (for bug fixes / features)
Sorry, there are no unit tests around the changed code, and making them would require me to mock the ElasticLowLevelClient that's being used there, which would require more time then I can spend on this.

Other information:
The previous code (treat all <8 version the same) would have been fine if the TypeName would have had a valid value, but I noticed that in the constructor of the ElasticsearchSinkState class we have some code which sets  its value to null for anything higher or equal to ES v7:
// Resolve typeName
if (_versionManager.EffectiveVersion.Major < 7)
    _options.TypeName = string.IsNullOrWhiteSpace(_options.TypeName)
        ? ElasticsearchSinkOptions.DefaultTypeName // "logevent"
        : _options.TypeName;
else
    _options.TypeName = null;

Therefor you had a scenario for ES v7 where the TypeName would be null, but the include_type_name query parameter would be set to true, which wasn't a valid API call for ES v7

Any updates on this PR?
The regression introduced in the IncludeTypeName is breaking some of our logs to Elastic.

@RefaelP23 Yes, this was coding error. @AlexGoris-KasparSolutions did not yet reply to my review suggestions.
@mivano I believe this fix should be 9.0.1 release, before we switching to v10.

@nenadvicentic Thanks for the prompt reply.
I also saw your discussion here Added original exception to FailureCallback action and I understand that it might take some time until it's released.
Is there some workaround I can try until it's released?

@RefaelP23 From the top of my head, I can only think of this two options:

Set configuration option AutoRegisterTemplate to false. I think this should suffice. I think Elasticsearch v7 is working just fine without using custom template.
Manually create index template on the Elasticsearch servers/clusters where you have the issue, using PostMan, curl, or similar tool. Perhaps to take exact template JSON from the servers where you currently don't have issue and put it to the once where you have the issue. You can list all templates via /_cat/templates and find the one related with this sink.

@mivano Yes. This can be deleted. I implemented in #533  what I described in this code review


Fix for deleting multiple IDs are once

Merged in https://github.com/jasoncabot-ms/demo_reaper/commit/cc6bda3f548523b772c4808f274bbf7e0f27ed6e


Deploying vespa on aws multi-node localhost error

Hi, im a new dev in a company i just joined and im not adept with vespa. our vespa service is currently down but the aws instance still says its health and everything is successful. when i ssh into the instance and try to run vespa again to restart it i get an error saying it cannot connect to localhost. Please can anyone help me with this. im currently in a rot. The image below shows the error i get. Any help is welcome. Thanks

It could be that the config server on that host is not running - please review https://docs.vespa.ai/en/operations/configuration-server.html

It could be that the config server on that host is not running - please review https://docs.vespa.ai/en/operations/configuration-server.html

Hi ive checked our hosts.xml file and everything seems to be ok. we have an admin0, stateless0, statless1, content0, content1 aliases there with the correct ip address to our instances

But did you follow the procedure in the doc and validate that a config server is actually running on that host (like using state/v1/health in the start sequence)? deploy_vespa.sh is not a script from the Vespa distribution afaik, so hard to know what it does, unless you paste its content here.
https://docs.vespa.ai/en/overview.html is a great intro to the different kinds of Vespa services, and there is also a managed service at https://cloud.vespa.ai/

hi yes i checked and the config servers are down. ill work on bringing it up

Hi when i try to start the config server i get permission errors as well. im on the  centos user (main user for the ec2 instance). do you know what might be wrong?

It seems like the user starting Vespa does not have the privileges to change the directories? you can inspect the start scripts starting from https://docs.vespa.ai/en/reference/vespa-cmdline-tools.html#vespa-start-services for details. you can try to start Vespa with a user with more privileges?

Hey we used the centos user to start vespa. any idea as to why the user suddenly does not have enough priviledges to start the vespa?. Thanks

I am not sure what you mean by suddenly - what changed before this happened, and does it happen on all nodes?
I suggest you start with something that is known to be working, like https://docs.vespa.ai/en/vespa-quick-start-kubernetes.html (Based on https://app.slack.com/client/T01RFPFNAHX/C038YTM5SUQ/thread/C038YTM5SUQ-1658271844.299179 which I think is the same problem / this is run using kubernetes?)
        Ss   07:01   0:01 vespa-runserver -s configserver -r 30 -p /opt/vespa/var/run/configserver.pid -- java -Xms128m -Xmx2048m -XX:+UseTransparentHugePages -XX:+PreserveFramePointer -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/vespa/var/crash -XX:ErrorFile=/opt/vespa/var/crash/hs_err_pid%p.log -XX:+ExitOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -XX:MaxJavaStackTraceDepth=1000000 --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED --add-opens=java.base/sun.security.ssl=ALL-UNNAMED -Djava.io.tmpdir=/opt/vespa/tmp -Djava.library.path=/opt/vespa/lib64 -Djava.security.properties=/opt/vespa/conf/vespa/java.security.override -Djava.awt.headless=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.net.client.defaultConnectTimeout=5000 -Dsun.net.client.defaultReadTimeout=60000 -Djavax.net.ssl.keyStoreType=JKS -Djdk.tls.rejectClientInitiatedRenegotiation=true -Djdisc.config.file=/opt/vespa/var/jdisc_container/configserver.properties -Djdisc.export.packages= -Djdisc.cache.path=/opt/vespa/var/vespa/bundlecache/configserver -Djdisc.bundle.path=/opt/vespa/lib/jars -Djdisc.logger.enabled=false -Djdisc.logger.level=WARNING -Djdisc.logger.tag=configserver -Dfile.encoding=UTF-8 -Dzookeeper_log_file_prefix=/opt/vespa/logs/vespa/zookeeper.configserver -cp /opt/vespa/lib/jars/jdisc_core-jar-with-dependencies.jar com.yahoo.jdisc.core.StandaloneMain standalone-container-jar-with-dependencies.jar

Hi thanks for that. i ran the commands you put up and i got these.

Also what i mean by suddenly is that vespa config server was run by the centos user before and now when i try to re run it using the same user it gives me permission errors. so i was asking do you know why im getting those permission errors now?

https://docs.vespa.ai/en/operations/multinode-systems.html#aws is updated, closing


Feature Request: Analogue Pocket GBA Core Support

Hey there, I love this kind of old Pokemon Game support.
Like many enthusiasts I got an Analogue Pocket, which can play my Cardridge and also .gba files if you install an GBA core on this.
Anyways, I my opinion this will really fit in the analogue pocket environment.
The idea is to make the flash card unrequited for an Analogue Pocket environment.
So that you can load the Poke_Transporter.gba with the Analogue Pocket GBA core and read (in the bestway) the original Cardridge or another .gba file of the 3.Gen.

Hello!! I've gotten a lot of requests about the Analogue Pocket and I definitely want to look into making this process smooth for those users. Unfortunately, I don't own an Analogue Pocket at the moment, so I can't do testing for it. Someday in the near future I'd like to get one, but they're not currently in stock. In the meantime, I'm going to look into the documentation and see how it works with Multiboot titles- it honestly might just work out of the box like that haha

Yes, I am also a owner of an Analogue pocket, but not of a flashcard.
I would also love it, if the transporter would correctly run on an emulator like the analogue pocket too, without having to buy a pricey flashcard.
I will be following this progress closely, and hoping for it to work in the future 🙏
My thanks for being willing to look into it and the fantastic work!


404 links on project Mochitest wiki

Request type

[ ] Please close this issue, I accidentally submitted it without adding any details
[ ] New documentation
[x] Correction or update

Details

URL https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Mochitest/
404 links

a set of command line arguments
test_CrossSiteXHR.html
gen_template.pl
Modifying Mochitest SSL behavior

Same story as Shumway; I'll leave this for now.


Why must evidence be specified within a seprate block?

What is our motivation for this constraint?

This is just how Jisheng implemented it. Anyway, all of this is going away soon, as evidence is declared using comments.

But evidence being declared via comments is orthogonal to whether blocks are used. We could mix and match both options of block/evidence.  Should this constraint be continued forward?

To directly answer your question, it is to differentiate multiple holes (in future). Without being in a separate block, we wouldn't know if
foo() {
  ...
  Evidence.apicalls("readLine");
  Evidence.types("BufferedReader");
  ...
}

the user provides a single hole with two pieces of evidence, or two holes next to each other with one evidence each. A block represents a hole implicitly, and all evidence in a block is considered together. With the new triple slash notation, we should consider all evidence in a line as being together.

I think we should allow multiple triple slash comments to be part of the same evidence declaration though. The evidence declarations needed for a task may not fit on a line. We could use the block syntax for this. This means
{
/// call:readLine
/// type:BufferedReader
}
should have the same semantics as
/// call:readLine type:BufferedReader
An alternative is to use a C-style comment notation that can span multiple lines
/**
call:readLine
type:BufferedReader
**/
I am okay with both options, although the C-style comment seems simpler. We can use the web interface to autocomplete the closing of the comment, so the user doesn't need more keystrokes.

Can evidence be interleaved with statements? If not, I propose that all contiguous /// be treated as a single hole unless enclosed by a block.  So:
void foo() {
    /// I am in hole A
    /// I am in hole A
}

void bar() {
    /// I am in hole B
    /// I am in hole B
   int i = 0;
    /// I am in hole C
    /// I am in hole C
}

void zebra() {
   /// I am in hole D
   {
        /// I am in hole E
        /// I am in hole E
   }

}

This would not be very consistent if, say, I would like to define two holes one after another with single evidence each.
void foo() {
  /// I am in hole D
  {
    /// I am in hole E
  }
}

Even though E is defining the same kind of input as D (single hole, single evidence), it has to defined differently than D, otherwise it will be conflated with D.
Why not always just have a consistent representation within a block? It's literally just two extra characters for the user.

In my vision
void foo() {
    { /// I am in hole D }
    { /// I am in hold E }
}

would still be legal.
I like the brief syntax for the same reason I like line comments.  We could have a world in C like languages where all comments were block
void bar()
{
    /* a line comment */
   /* also
      a comment */
}

But since single line comments are the most frequent comments they get special simpler syntax.  So when I think about evidence holes I ask my self: what is going to be most frequent? (probably statement, single evidence hole, statement) and how can I make that as simple and easy to read as possible?

I like Matt's suggestion. Not requiring braces for the special case where there's only one hole is a win IMO.

Alright then, let's go with that. As minor point, we should be careful about this:
void foo() {
    { /// I am in hole D }
    { /// I am in hold E }
}

The ending } would be parsed as part of the comment line.

Ha. Good catch.  Yea, we would need to have the close braces on a new line. I was just saving space in my post.

I believe this has been answered, so I'm closing this. Feel free to reopen if you want to discuss further.


Is it possible to make a node editing GUI?

Is it currently possible to make a node editing gui in OrbTK? Something similar to what's seen in Blender: https://duckduckgo.com/?t=ffab&q=blender+node&iax=images&ia=images
I realize some features that would be nice like drag and drop aren't in yet. But I can probably work around things like that if I just know it's possible to render an arbitrary number of widgets somehow.
Current situation
I'm trying to render an arbitrary number of widgets, but I can't find any example code that shows this and haven't been able to figure it out on my own.
I saw the List in the widgets example, but they seem to render a pre-determined list of Strings, which is not what I want. When I tried a similar thing I ran into the issue of IntoPropertySource not being implemented for Vec<MyStruct>>. Can't figure out how to impl that.
Any pointers are appreciated!

Not sure what it does exactly, but there is a macro called into_property_source!() in crates\api\src\macros.rs,
You can try wrapping the properties of your widgets in the macro.
Also, you can modify your widget's children at runtime, but there is no documentation for that yet.
Look into the last comments on https://github.com/redox-os/orbtk/issues/183.

@lukors I think it would possible to develop a node editing GUI with OrbTk. Drag and drop is not yet implemented but it would be possible to implement a custom drag and drop for the nodes. You could check the ListView widget. It creates a dynamic number of widgets and uses a builder Fn to define the generat children. It should be possible to do it similar for the nodes.

After many hours of tiny experiments I'm slowly starting to understand how this works, I think. There are still a ton of things left to do, but I feel like I have some basic understanding now.
Look what I have:

Thanks to both of you for your critical help!


drivers: rtc: rtc_ll_stm32:  rtc calibration out support

Hi everyone!
soc rtc modules needs digital smooth calibration sometimes but we should scope rtc output frequency for that case. that implementation supports that case.

Makes sense to me :)


Matrix parameters don't work

Example:
module Example
    using ModelBaseEcon
    model = Model()
    @variables model x
    @shocks model e
    @parameters model begin
        c = [0.1 0.2]
    end
    @equations model begin
        x[t] = c[1,1] * x[t-1] + c[1,2] * x[t-2] + e[t]
    end
    @initialize model
end

Example.model.equations[:_EQ1].resid
# Shows c[1] everywhere: var"#x#0#" - (c[1] * var"#x#-1#" + (c[1] * var"#x#-2#" + var"#e#0#"))
# Instead of: var"#x#0#" - (c[1,1] * var"#x#-1#" + (c[1,2] * var"#x#-2#" + var"#e#0#"))

This was fixed in v0.6.3 under #67 (under model.jl line 1043):
name, index = ex.args was replaced by name, index... = ex.args


[FEAT]: pass down svg attributes?

Description
Can we pass svg attributes? i.e. stroke-width="2"?
Additional Information
No response

Yes, I just updated and you can use the strokeWidth prop to change it.
Please update to<EMAIL_ADDRESS>REPL

Looks good! thank you


Fix Rucio rule creation when there are duplicate rules

Fixes #9621
Status
ready
Description
Use list_did_rules instead of list_replication_rule_full_history API to look for rules locking a given DID (I believe the latter lists also rules long deleted).
In addition to that, compare DID + Scope + Account + RSE expression to find what the duplicate rule IDs are.
Is it backward compatible (if not, which system it affects?)
yes
Related PRs
None
External dependencies / deployment changes
None

tests went fine, merging.


I'm reaching out to report a performance issue.

I'm reaching out to report a performance issue.
The problem involves performance in two scenarios:

When updating the search parameters using useNavigation, the entire page, including all layout components and child components, is re-rendered.
When there is a layout component with multiple child pages, navigating between these child pages triggers a re-render of the entire page, including all layout components.

In the classic react-router package, this problem does not exist, there it works as expected, parts are rerendered as expected.
Example Link: https://stackblitz.com/edit/vitejs-vite-ifxs98
Originally posted by @AndrejNemec in https://github.com/TanStack/router/discussions/1460

Do we have an update on this? Also having this issue.

Same issue here.

React.memo can fix this issue for now.

@tannerlinsley do you know how this issue could be fixed?

The latest version may have fixed it. We improved performance quite a bit with some more fine grained selectors

The latest version may have fixed it. We improved performance quite a bit with some more fine grained selectors

It didnt'.  I'm on v1.45.6 and I'm running into the same problem.
Here's code on how to reproduce it. The onChange firest updateQuery which re-render the entire app.
https://github.com/TanStack/router/discussions/1993#discussion-6952871

Not sure if it's totally related, but I had some performance issues when dealing with URL hash updates when using the Default Browser History as mentioned here: https://github.com/TanStack/router/issues/1999

We are also having this issue. we migrated to tanstack from react router and found this problem very annoying. this kind of issue is not happening with react routers. we are thinking of rolling back to react router because of this issue.

We are also having this issue. we migrated to tanstack from react router and found this problem very annoying. this kind of issue is not happening with react routers. we are thinking of rolling back to react router because of this issue.

@last-Programmer That's no way to communicate. Please show some respect for people who put time and effort into open source. There is already a workaround using React.memo, and you should use it until it's fixed, or go back to whatever you want to use.

Not sure this is exactly related but on the React Example: Basic & Basic File Based (haven't tested others), on every url change, the RootComponent re-render twice. Was struggling with this and after putting memo and useCallback everywhere without success, I'm glad to find out it could be the issue.
Versions tested: 1.45.7 & 1.45.11

I just upgraded to 1.45.14. While there was a double rerender in my root component when using const router = useRouter() there is now none at all, so it breaks my app.
Is it expected that we get no rerender at all now on new url navigation and should use another hook for a single rerender?

@trompx can you please share a complete minimal example?

@schiller-manuel

Go to https://tanstack.com/router/latest/docs/framework/react/examples/basic
Import useRouter and add the following at the beginning of the function RootComponent() {:

  const router = useRouter();
  console.log("ROOT", router)

Check console: only renders "ROOT" on the first page

useRouter is not reactive, we need to document this better.
use useRouterState instead: https://stackblitz.com/edit/tanstack-router-m1avwu?file=src%2Fmain.tsx&preset=node

useRouter is like useQueryClient. Somehow, there most people understand that it's not reactive. Maybe it should be useRouterInstance or something?

I just upgraded tanstack router to version 1.58.9 from 1.45.14 and tried using useRouterState instead.  It also rerenders when hovering links.
Is there a way to have a single rerender on route navigation?
Sometimes rerenders are not problematic but I'm trying to do some custom page navigation/animation stuff with framer AnimatePresence and it breaks it.

@trompx please create a new issue with a complete minimal example by forking one of the examples on stackblitz


CHAOSS Africa Brand Style Guide

We need brand identity designers, including illustrators to help curate our Styleguide, covering some key areas like;
Color palette,
Font style,
Illustrations,
Imagery, etc.
Details will be made available to contributors who express interest.

I am interested in this

Which of the components would you like to work on, @EmeosongweAruruje?

I am interested. I will contribute in defining the marketing design (online and offline) language

Awesome @NyiaJoe
Check our workspace for this.
Let me know anything you need

I have branding experience and I'll be happy to assist.

Done, Thank you @ayoolafelix

This is still open for contribution @Busayo-ojo

Thanks @iamkingsleey Can you add the information contributors will need to work on this in the MD file

Hello @Mayaleeeee I saw your comment about not hearing me on our call yesterday; I can schedule one today with you to go over this if that works. Please feel free also to drop me a message on Slack.

Hello @Mayaleeeee I saw your comment about not hearing me on our call yesterday; I can schedule one today with you to go over this if that works. Please feel free also to drop me a message on Slack.

Thank you @iamkingsleey

Hello @Mayaleeeee I saw your comment about not hearing me on our call yesterday; I can schedule one today with you to go over this if that works. Please feel free also to drop me a message on Slack.

Hello, @iamkingsleey
I sent a message to you on Slack regarding my availability for the meeting, but you haven't responded yet.


Post-run visualization

Simply exporting solution data to a numpy structured array, does not help with decision making.
We should add tools for visualizing Pareto front data, such as

2D/3D scatter plots
spider plots
projections
etc.

Closed in Release 0.2.0


[Event Modification] page 9223 "Item Statistics Matrix" OnAfterCalculate

hello
Is it possible to get the following added to an event:
  OnAfterCalculate(ItemBuffer, SetColumnFilter, Amount);

to
OnAfterCalculate(ItemBuffer, SetColumnFilter, Amount, Name, CalcSalesAmount(SetColumnFilter));

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Add snowflake snowsql 1.1.21

If there’s a checkbox you can’t complete for any reason, that's okay, just explain in detail why you weren’t able to do so.
After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Additionally, if adding a new cask:

[x] Named the cask according to the token reference.
[x] brew cask install {{cask_file}} worked successfully.
[x] brew cask uninstall {{cask_file}} worked successfully.
[x] Checked there are no open pull requests for the same cask.
[x] Checked the cask was not already refused in closed issues.
[x] Checked the cask is submitted to the correct repo.

Would you accept this PR? Let me know if anything else I need to add or adjust. Thanks!

Thank you for your contribution.


Docker Machine executor retired

Hello! Thank you for a great module.
There is however a small issue that will become quite problematic soon: docker-machine executor is currently archived: https://github.com/docker/machine
Gitlab has created a fork, but they are only looking to maintain it until end of 2024: https://gitlab.com/gitlab-org/ci-cd/docker-machine
They are replacing docker-executor with docker autoscaler (https://docs.gitlab.com/runner/runner_autoscale/).
I was wondering if there are any plans to replace the docker machine executor with docker autoscaler?
Thank you!

I can see that this is a duplicate, my bad!


Update CPI methods after BOSH registry is removed in CPI contract v2

The community is actively removing BOSH registry from CPI contract. The plan for now is to add the capability in the Director, Agent, and CPIs so that they can bypass the registry all and do not require it anymore.
In CPI contract v2, several CPI methods don't need to connect to BOSH registry to update the settings. They just need to be return the updated settings as the result. Director will handle them.
Note: The registry job in the Director will NOT be removed. For backwards compatibility reasons, the registry job will remain there in case one of these 3 components (Director, Agent, CPI) does not support the new contract, so that it can safely fallback to registry.
Currently, this issue is only for tracking.
https://github.com/cloudfoundry/bosh-notes/blob/master/proposals/cpi-api-v2.md

Delivered in https://github.com/cloudfoundry/bosh-azure-cpi-release/pulls/606


fueltanks can explode when shot with lethal bullets/pellets

About the PR
Probably needs discussion since it somewhat changes the balance of bullets/pellets. What essentially I've done is given each projectile 1 heat damage while taking away 1 blunt. I think this overall maintains the balance of the gun for unarmored targets, but it does change the numbers for how much damage is resisted per armor and may require tweaking.
I would like to justify the heat damage as minor friction burns as the projectile strikes the object.
Other downsides would be having to treat both brute and burn wounds for someone gunned down, but the total burn damage shouldn't exceed 20-30 in most gunned down scenarios that I can imagine.
I've also created a new damage modifier material for explodey things made of metal for the fuel tanks and lowered the damage threshold for heat to 1. Nearly all heat based weapons and tools do more than 5 heat damage which would have ignited the fuel tank anyway. Except for lighters which do 1 heat damage. So.... don't smoke near the welder tanks!
Screenshots

Changelog

:cl:

add: Welder tanks explode when shot with projectile guns. (Also don't smoke near them)

wouldn't a better way to handle this to just have a chance or something to explode when taking piercing damage, or have it explode after taking X piercing damage that scales on how full of fuel the tank is? seems weird to add heat damage to bullets just so you can explode fuel tanks. Similarly, touching a fuel tank with a cigarette wouldn't explode it, that's pretty silly. Welders do it because they are welding torches, so they "punch" through and the flame ignites it.

wouldn't a better way to handle this to just have a chance or something to explode when taking piercing damage, or have it explode after taking X piercing damage that scales on how full of fuel the tank is?

The problem with that is other melee weapons like the spear would make it explode.

wouldn't a better way to handle this to just have a chance or something to explode when taking piercing damage, or have it explode after taking X piercing damage that scales on how full of fuel the tank is?

The problem with that is other melee weapons like the spear would make it explode.

It could be argued that any weapon that punctures could be capable of triggering the explosion. The weapon pierces the tank, and the friction/sparks of that forceful puncture is the ignition source. I at least feel it makes more sense than bullets doing heat damage, but definitely curious what other people think. I could be in the minority here with my reasoning lol

i agree with @theashtronaut here, piercing should have a chance to make it explode. nothing wrong with stabbing it with a spear and exploding

haven't really looked at fuel tank code so it might not be possible, but can't you just add a check for a bullet entity hitting the fuel tank?

adding heat damage to bullets seems like a bad move, since the heat damage will likely stop any bleeding you recive from getting shot


Remove unused SlackClient package

Coverage decreased (-0.04%) to 87.961% when pulling 3183048d075411bcac590b1045a82c4d74aaf7ba on remove-slackclient into 75d65575f023d11cf451fb51fc6615c3137c5581 on master.


[BUG] Site LockState  always returns $null

Reporting an Issue or Missing Feature
Get-PnPTenantSite -Url $siteUrl -Detailed  does not return the correct information for the LockState property.
It always return $null, where as the site is set to ReadOnly, it should return "ReadOnly"
It does work in PowerShell 5.1 with the old PnP module, it does not work anymore with PnP.PowerShell.
Expected behavior
Please describe what output you expect to see from the PnP PowerShell Cmdlets
$x.LockState would be "ReadOnly" instead of $null
Actual behavior
Please describe what you see instead. Please provide samples of output or screenshots.
LockState is $null
Steps to reproduce behavior
# first set a site in ReadOnly state.

$siteUrl = "https://<your sharepoint site here>"
$tenantUrl = "<your tenant site here>"
$con = Connect-PnPOnline -Url $siteUrl -Credentials $cred -ReturnConnection
Set-PnPSite -LockState "ReadOnly" -Connection $con

#  wait some time to be sure it was set, and check to see if it is readonly

$conTenant = Connect-PnPOnline -Url $tenantUrl -Credentials $cred -ReturnConnection
$siteInfo = Get-PnPTenantSite -Url $siteUrl -Detailed -Connection $conTenant
$siteInfo.LockState

# as an extra: run the second part again in PS5.1 with the Old PnP module, and it returns "ReadOnly" as expected

What is the version of the Cmdlet module you are running?
(you can retrieve this by executing Get-Module -Name "PnP.PowerShell" -ListAvailable)
1.2.0
Which operating system/environment are you running PnP PowerShell on?

[X ] Windows
[ ] Linux
[ ] MacOS
[ ] Azure Cloud Shell
[ ] Azure Functions
[ ] Other : please specify

Please update to the latest nightly release, as we've fixed this issue there.
Update-Module -Name PnP.PowerShell -AllowPrerelease


[BUG] RKE2 Custom Cluster Cloud Provider RKE2 Embedded After Delete of Node used for RKE2 Snapshot Restore - causes init: node not found

Describe the bug
Following Scenario 2 from here.
Noting:

There seems to be some interesting things that show up.

If VMs ( those that are for the RKE2 nodes in Harvester ) are powered off (through Harvester UI), it seems that the Custom RKE2 Cluster hangs in an "Update" state.  If in this "Update" state, the user were to try to register a new "all roles (worker, control-plane, etcd)" node, it will hang in perpetually and never become registered.  A work-around discovered: was to delete the original "control-plane" & "etcd" nodes from the Cluster Management UI in Rancher - and re-run the registration on the new third (all-roles: etcd, control-plane, worker) node - then eventually the cluster would be at an "Active" state.

W/ Work-Around from above mentioned, was able to notice that a restore was able to successfully be preformed to the third node.  But this cluster isn't a Harvester Cloud Provider based RKE2 Custom Cluster.

The Third Node, that gets added, will need to have the snapshot restored shortly after it's registered, or else it will just hang and the cluster will never become ready but I believe this is expected as we encounter the:

[INFO ] rkecontrolplane was already initialized but no etcd machines exist that have plans, indicating the etcd plane has been entirely replaced. Restoration from etcd snapshot is required.

But then if you delete the third node that was added, after adding back a new worker & control-plane&etcd node,
There is an error of:
"init node not found"
And the cluster state ends up staying in "Provisioning".
So the "All Roles" Node, upon deletion, is causing the RKE2 Custom Cluster to become unusable.

Also noting:
For workload, NGINX was just used as Deployment, for testing.
Env to Utilize

Minio with https certs to allow for S3 Backups
Rancher v2.7.5-rc4
Helm install based Rancher w/ K3s: curl -sfL https://get.k3s.io/ | INSTALL_K3S_VERSION="v1.25.9+k3s1" sh -s - server --cluster-init

To Reproduce
Steps to reproduce the behavior:

Follow along in Scenario 2, with workaround steps.
After Step 10, the deletion of the all-roles node, will cause the error

Expected behavior
There to not be an error present when removing the node that was used for temporary RKE2 Snapshot Restore.
Environment

Harvester ISO version:  Version: v1.2-0d1cf827-head
Rancher Version: v2.7.5-rc4
Underlying Infrastructur: Bare Metal, for both Rancher & Harvester
Helm install based Rancher w/ K3s: curl -sfL https://get.k3s.io/ | INSTALL_K3S_VERSION="v1.25.9+k3s1" sh -s - server --cluster-init
helm install rancher rancher-latest/rancher --devel --version v2.7.5-rc4 ......

Additional context

The workaround doesn't always work but this behavior seems similar across multiple Rancher versions v2.7.2-v2.7.4.
It seems interesting that if both nodes are down and still a part of the cluster that a third node can't always be added - it will talk to Rancher and generate a cattle-id, the VM in Harvester that is - but it always times out and fails to register.

Same issue here with rke2 via CAPI vmware: After Delete of Node used for RKE2 Snapshot Restore - causes init: node not found

@irishgordo  just with RKE2 via CAPI VMWare (not Harvester).

Hi @irishgordo

If VMs ( those that are for the RKE2 nodes in Harvester ) are powered off (through Harvester UI), it seems that the Custom RKE2 Cluster hangs in an "Update" state.

This is an expected behavior.

If in this "Update" state, the user were to try to register a new "all roles (worker, control-plane, etcd)" node, it will hang in perpetually and never become registered. A work-around discovered: was to delete the original "control-plane" & "etcd" nodes from the Cluster Management UI in Rancher - and re-run the registration on the new third (all-roles: etcd, control-plane, worker) node - then eventually the cluster would be at an "Active" state.

This is not in the Scenario 2 test steps from https://github.com/rancher/rancher/issues/41080#issuecomment-1563269826
And I think this is an expected behavior, because there are two etcd nodes in the cluster, but one of them fails, so the cluster has crashed.
I followed the all steps of https://github.com/rancher/rancher/issues/41080#issuecomment-1563269826, all is well.
do you still have any issues if you follow the test steps?

@futuretea  - sorry about the delay in getting back to you on this :sweat_smile:  -
I seem to have not pasted the correct Scenario 2 link:
https://github.com/rancher/rancher/issues/41080#issuecomment-1558134028

But then if you delete the third node that was added, after adding back a new worker & control-plane&etcd node,
There is an error of:
"init node not found"

@irishgordo  The delete the third node that was added is not in the Scenario 2 test steps from https://github.com/rancher/rancher/issues/41080#issuecomment-1558134028

@futuretea from:
https://github.com/rancher/rancher/issues/41080#issuecomment-1558134028
Seems to be stuck on step 7 of scenario 2 with:
v2.7.6 Rancher -> v2.7.7-rc4
and
v1.2.0 Harvester

@futuretea from: rancher/rancher#41080 (comment) Seems to be stuck on step 7 of scenario 2 with: v2.7.6 Rancher -> v2.7.7-rc4 and v1.2.0 Harvester

@irishgordo from https://github.com/rancher/rancher/issues/41080#issuecomment-1558134028, we should test the upgrade from 2.7.3 to 2.7.6

Hi @futuretea , thanks for explaining that more :smile: -
After checking from v2.7.3 -> v2.7.6, it seems to be hung at step 7 still:
ubuntu@all-roles-vm-new:~$ curl --insecure -fL https://the-ipv4-address-of-the-rancher-vm-that-was-running-v273-that-then-was-upgraded-to-v276.nip.io/system-agent-install.sh | sudo  sh -s - --server https://the-ipv4-address-of-the-rancher-vm-that-was-running-v273-that-then-was-upgraded-to-v276.nip.io --label 'cattle.io/os=linux' --token 4h7rn4mgrqbg87tl6cq9wvfqj97jv86lhnnn879nvthcnm4p7d98qv --ca-checksum 00e5a268ec3d5fb7bff2369021078fd8452b1c4148cf59c12a251c6f7595c440 --etcd --controlplane --worker
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 30867    0 30867    0     0   115k      0 --:--:-- --:--:-- --:--:--  115k
[INFO]  Label: cattle.io/os=linux
[INFO]  Role requested: etcd
[INFO]  Role requested: controlplane
[INFO]  Role requested: worker
[INFO]  Using default agent configuration directory /etc/rancher/agent
[INFO]  Using default agent var directory /var/lib/rancher/agent
[INFO]  Determined CA is necessary to connect to Rancher
[INFO]  Successfully downloaded CA certificate
[INFO]  Value from https://the-ipv4-address-of-the-rancher-vm-that-was-running-v273-that-then-was-upgraded-to-v276.nip.io/cacerts is an x509 certificate
[INFO]  Successfully tested Rancher connection
[INFO]  Downloading rancher-system-agent binary from https://the-ipv4-address-of-the-rancher-vm-that-was-running-v273-that-then-was-upgraded-to-v276.nip.io/assets/rancher-system-agent-amd64
[INFO]  Successfully downloaded the rancher-system-agent binary.
[INFO]  Downloading rancher-system-agent-uninstall.sh script from https://the-ipv4-address-of-the-rancher-vm-that-was-running-v273-that-then-was-upgraded-to-v276.nip.io/assets/system-agent-uninstall.sh
[INFO]  Successfully downloaded the rancher-system-agent-uninstall.sh script.
[INFO]  Generating Cattle ID
curl: (28) Operation timed out after 60001 milliseconds with 0 bytes received
curl: (28) Operation timed out after 60001 milliseconds with 0 bytes received
[ERROR]  000 received while downloading Rancher connection information. Sleeping for 5 seconds and trying again
curl: (28) Operation timed out after 60000 milliseconds with 0 bytes received
[ERROR]  000 received while downloading Rancher connection information. Sleeping for 5 seconds and trying again
curl: (28) Operation timed out after 60000 milliseconds with 0 bytes received
[ERROR]  000 received while downloading Rancher connection information. Sleeping for 5 seconds and trying again
curl: (28) Operation timed out after 60000 milliseconds with 0 bytes received
[ERROR]  000 received while downloading Rancher connection information. Sleeping for 5 seconds and trying again
curl: (28) Operation timed out after 60000 milliseconds with 0 bytes received
[ERROR]  000 received while downloading Rancher connection information. Sleeping for 5 seconds and trying again

For some reason it seems to think that the worker-node is still up and running - but both - had been powered off prior to upgrade from v2.7.3->v2.7.6 - and the cluster was seen as "dies"...
I'm not sure why the custom rke2 cluster after upgrade to v2.7.6 seems to think that the original worker node is still on :thinking:

I can confirm the similar issue on Harvester 1.2.0 VMs. Using Rancher 2.7.6 and creating RKE2 cluster. All hanging when adding VMs to the cluster >> " Rkecontrolplane was already initialized but no etcd machines exist that have plans, indicating the etcd plane has been entirely replaced. Restoration from etcd snapshot is required. "

Hi @irishgordo, since there was error link in previous comment, I copy full scenario 2 steps here. The original step is not clear about how to handle old stopped worker, so I also remove it in step 7.

Fresh install of Rancher v2.7.9.
Provision a downstream RKE2 Custom cluster w/ 1 etcd/cp node and 1 wkr node w/ s3 snapshots configured.
Once active, deploy a workload in default namespace.
Take a snapshot (s3).
Once snapshot is successfully captured, power down all nodes.
Once cluster "dies", upgrade Rancher to v2.8.2.
Register 1 new node - all-roles to cluster, then delete the existing etcd/cp/worker nodes.
Once active, restore to snapshot taken in step 4.
Observe restore worked by confirming workload deployed in step 3 is still seen in cluster.
Register 2 more nodes - 1 etcd/cp, and 1 worker.
Verified - RKE2 cluster successfully restored from snapshot when cluster is down.

When I delete old worker node, it can't be removed smoothly. The reason is that CAPI try its best to drain workload and detach volume on the node. If we don't set nodeDrainTimeout and nodeVolumeDetachTimeout, CAPI will keep trying. However, I don't think this is a bug, because CAPI wants to safely remove node and it also provides options to skip the check. I think we can have a known issue document to guide users to remove old nodes if the cluster is down caused of restoring snapshot.
cc @bk201
https://github.com/harvester/harvester/assets/4927361/2982a4b7-1f70-4c67-91cd-7e4dc3bef3a9

@irishgordo can you check PoAn's comment and see if this is still a high-priority issue? Thanks.

@bk201
I do think that if there's a document to highlight this guide like @FrankYang0529 mentions:

I think we can have a known issue document to guide users to remove old nodes if the cluster is down caused of restoring snapshot.

Then we can close this out.
I believe it is less common to see custom cloud provider rke2 clusters generally w/ Harvester, but still unsure :thinking:  -so not sure on the priority but a document to highlight modifying nodeDrainTimeout &  nodeVolumeDetachTimeout that would be good :smile:

Hi @irishgordo, the root cause here is not about custom cloud provider. Also, the drain options are about Rancher. Probably, we can leave Rancher to document it and we can close this issue? Thanks.
https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/manage-clusters/nodes-and-node-pools#aggressive-and-safe-draining-options

Yeah that sounds good to me :smile: :+1: - thanks @FrankYang0529  - I'll go ahead and close this out


Support for storing recurring blocks

In order to be able to replace the old HSD Python implementation in the SkProgs suite, it would be nice to add support for defining recurring blocks, e.g.
$OCCUPATIONS_Ne {
  1S = 1.0 1.0
  2S = 1.0 1.0
  2P = 3.0 3.0
}

@aradi
Is that possible to solve this issue with low effort?


Pawn cannot pass through unless en passant

Satisfies chess-core test case criteria such that a pawn's available movement is filtered: reducing options that allow a piece to pass through blindspots.

Closing this because it should be impossible with the incoming replacement on calculate_vision to use a local static variable containing ordered move history within a BTreeSet.


default notification icon

I've replaced the company default logo with mine (1024x1024 also 512x512) but it still shows a very tiny and old logo post attempts to change it a completely different logo of the same size. My log and script below.. Where did I go wrong?
#!/bin/bash

png_file="/Users/Shared/Jamf.png"
temp_file=$(/usr/bin/mktemp)
dialogDir="/Library/Application Support/Dialog"

/bin/cp "$png_file" "$temp_file"
sleep 2

sudo /bin/mkdir -p "$dialogDir"
sleep 2

sudo /usr/bin/sips -s format png "$temp_file" --out "$dialogDir"/Dialog.png
sleep 2

============
[2024-01-26 00:39:36] swiftDialog postinstall started
[2024-01-26 00:39:37] swiftDialog <IP_ADDRESS>34
[2024-01-26 00:39:37] Icon file detected. Updating dialog icon
Custom icon assigned to folder '/Library/Application Support/Dialog/Dialog.app' based on '/Library/Application Support/Dialog/Dialog.png'.
[2024-01-26 00:39:37] Icon update success
[2024-01-26 00:39:37] Checking for Setup Assistant
[2024-01-26 00:39:38] Current user is username
[2024-01-26 00:39:38] swiftDialog postinstall complete

Sorry, but this is not relevant to this github repo.
You'll want to ask questions on the Mac Admins Slack #swiftdialog channel, or post this issue on the official SwiftDialog repo: https://github.com/swiftDialog/swiftDialog


Remove GI methods in parentheses from the light_bake_mode property

Presently, on lights, the "Bake Mode" property has 3 options:

Disabled
Static (VoxelGI/SDFGI/LightmapGI)
Dynamic (VoxelGI/SDFGI)

I think this is potentially confusing (it confused me :-)) because it makes it sound like lights marked "Dynamic (VoxelGI/SDFGI)" won't be baked into LightmapGI lightmaps.
However, they are baked into LightmapGI lightmaps, but only the bounced light, not the direct light.
So, in this case, I think it'd be best to just remove the GI methods from the option names, since all the options do apply to all GI methods.
There are a number of other properties with similar options, for example, gi_mode on VisualInstance3D, but in that case I think it's OK because it's true (if marked as "Dynamic (VoxelGI only)" that visual instance won't receive light from LightmapGI). The same goes for the meshes/light_baking option from ResourceImporterScene.

(if marked as "Dynamic (VoxelGI only)" that visual instance won't receive light from LightmapGI).

It'll receive indirect light from LightmapGI's dynamic probe system.

Alright, I've updated the PR to remove the GI method names from all the light baking options

Thanks!

Cherry-picked for 4.2.2.


Enhancement: Anti-Keyspam?

Could there be an option to disable key spamming in songs? I want to get better at this game but the old input system makes it hard to learn, but this one makes it so I can just spam keys and win the song. Sort of ruins the fun :/
Like I get for competitive community it's nice to have it off but at least an option for it would be nice for newer players.

If you want to get better, don't spam :). Most 4k games do this. Try to get a good score on the leaderboards.
You can find them here https://discord.gg/n3fXZdCsab