[discussion] Preparing v6

This is an umbrella issue that centralizes and lists all the potential improvements that we can consider in MUI Core v6. The potential improvements being listed here require breaking changes. We do not intend to ship v6 in 2022. We plan, as much as possible, to release the next major features in minor versions without breaking changes.
Big features
Ideas?:

[ ] Static CSS extraction? #34826 A new style engine, an alternative to emotion and styled components, with no runtime (extract the CSS at build time). Many of the fastest growing frontend libraries in 2022 were focusing on performance. Considering the feedback in our survey and the trend in the space where better performance = better UX, MUI needs to push in this direction. Now that we can use CSS variables, and that we have the styled API, we should be able to pull this off without a major breaking change. Another reason why https://www.robinwieruch.de/web-development-trends/#utility-first-css.
[ ] React Server components? #35993. For the same reason as above, this can improve performance. Deno, who is heavily biased in the claim raise a few reason why the need for server side rendering trend will continue to grow https://deno.com/blog/the-future-and-past-is-server-side-rendering.
[ ] Base UI as a foundation for all the components? We trend toward the removal of all duplication of logic between Joy UI, Base UI, and Material UI. It might be too big of a task to do it in a single major.
[ ] Material You? #29345. The default look of Material UI hasn't changed for a long time. Google seems to start to rolling out its new design language in production. As I'm writing these lines, very few end-users are exposed to it but we can be hopeful. It might be too many breaking changes to do it all at once.

Possible breaking changes
Ideas?:

[ ] Agree on #34510

[ ] Upgrade the min TypeScript version supported, e.g. #35877

[ ] Upgrade the min node.js version supported if v12 is out of maintenance: https://nodejs.org/en/about/releases/, #32546

[ ] https://github.com/mui/material-ui/issues/30671

[ ] Grid, remove the wrap prop. It duplicates with the flexWrap prop: https://codesandbox.io/s/basicgrid-material-demo-forked-0eebd?file=/demo.tsx

[ ] Drop UMD bundle https://github.com/mui/material-ui/issues/23098#issuecomment-710484703. Replace it with ES modules aware CDN bundlers (on-demand, in the cloud, like https://www.skypack.dev/ or https://esm.sh/). It seems to work just fine: https://github.com/mui/material-ui/issues/26254#issuecomment-1368913775.

[ ] Use gap to solve spacing issues https://github.com/mui/material-ui/pull/31885 (Also search the repo for "gap", I came across several issues that mention waiting for v6 to be able to use gap)

[ ] Use gap to solve spacing issue https://github.com/mui/material-ui/issues/33754

[ ] Drop Safari 12 and 13 support to allow https://caniuse.com/flexbox-gap. These Safari versions usage are really low now.

[ ] Drop support for Safari 12.5 browser by removing the outdated babel proposal plugins to minimize the bundle size - https://github.com/mui/material-ui/pull/36795. Had to revert it in https://github.com/mui/material-ui/pull/37331.

[ ] Use next.js lint rules for the docs once the node version has upgraded on the build. It uses ES2020 syntax not support in node 12. https://github.com/mui/material-ui/pull/32809

[ ] Remove the sx prop from the transition components - https://github.com/mui/material-ui/pull/32025#issuecomment-1106271947

[ ] Remove the React imports in all the codebase when it's done automatically https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html #33811

[ ] Remove deprecated ListItem button prop, introduced in #26446

[ ] Make CssBasline enableColorScheme the default #29454, https://github.com/mui-org/material-ui/pull/29611#issuecomment-966391839

[ ] Entirely remove support for IE 11. Ant Design is doing it https://github.com/ant-design/ant-design/issues/33862 we should too.

[ ] With the update of the default browsers, we can likely remove all of this normalization logic: https://github.com/mui/material-ui/blob/b3548fabeab1980d3c5e5b85945550df95ee6b82/packages/mui-utils/src/scrollLeft.js#L23

[ ] LoadingButton. Move to the core.

[ ] Modal. Make ModalManager private? It's only exposed for micro-frontend. Maybe there is a better way, like providing a singleton object rather than a full class.

[ ] Popper? Should we remove the modifiers prop? It sounds like the same as a popperOptions.modifiers.

[ ] Make @mui/utils private and document its module publicly from @mui/base.

[ ] Icons. Remove/Deprecate the legacy Material Design icons (the ones removed by Google).

[ ] Icons? Should we remove the barrel export? https://github.com/vercel/next.js/issues/29559#issuecomment-944108159

[ ] Icons? Should we remove the CJS files? The npm package is quite large, see the GitHub issue about the timeouts: https://github.com/mui/material-ui/issues/12432

[ ] TextField. Rename the input slot to htmlInput for clarity: https://github.com/mui/material-ui/issues/11377#issuecomment-868520905.

[ ] Switch. Remove the deprecated checked argument https://github.com/mui/material-ui/blob/4495d42027ebdc2835ca7465b6688238e91a8fe4/packages/mui-material/src/internal/SwitchBase.js#L116-L117

[ ] Drawer. Rename SlideProps -> TransitionProps to be consistent with the other props. https://github.com/mui/material-ui/blob/4495d42027ebdc2835ca7465b6688238e91a8fe4/packages/mui-material/src/Drawer/Drawer.js#L166

[ ] ? Rename "xs" breakpoint to "base" #26168

[ ] ? InputBase. The unit should probably be rem, not em as otherwise the height of an input can be 32.93px which is not around https://github.com/mui/material-ui/blob/15dab87b2592aedd0e8108680f29fc03620f7a65/packages/mui-material/src/InputBase/InputBase.js#L110

[ ] ? Migrate from react-popper to floating UI #32587

[ ] Typography. Remove/Deprecate the align prop. textAlign is already implemented by the system, and clearer.

[ ] ? Typography -> Text. https://github.com/mui/material-ui/issues/22470#issuecomment-687624252. Or maybe Header (hx) + Text (p/span/div) component). It could be about making the JSX more information-dense, hence easier to read. https://twitter.com/iamnonth/status/1593555998832459776. If we don't to the change, we could export an alias, not sure.

[ ] ? Fix the long-lasting API case issue with the TextField #11377, e.g. https://twitter.com/AlibekTurar/status/1537454071883374592

[ ] ? CssBasline, revamp to improve the resets and move to MUI System. e.g. button margin should be reset: I shouldn't have to spend time to do this #34861.

[ ] ? Is there a way we could simplify the breakpoint structure of the theme?

https://github.com/styled-system/styled-system/issues/651#issuecomment-517862699
https://github.com/mui-org/material-ui/issues/11649
https://tailwindcss.com/docs/text-decoration
https://theme-ui.com/theming#breakpoints
https://github.com/react-restart/hooks/blob/65f7cc9b0e1ffafc487cae7135aeba1ea576a4fa/src/useBreakpoint.tsx#L142-L148

[ ] Rename packages. The problem with the current imports is that it doesn't feel like you are importing from a dedicated open-source project, e.g. Base UI, but that you are importing MUI.

-@mui/material
-@mui/joy
-@mui/base
+@mui/material-ui
+@mui/joy-ui
+@mui/base-ui

Promotions

https://github.com/github/release-radar

What change does this fall under?
https://github.com/mui/material-ui/blob/97427f0ca0ef29fd5f942080c959f6827ccb641f/packages/mui-material/src/Tooltip/Tooltip.js#L232
I'm curious for the reason behind removing PopperProps

Hi everyone, not sure this is the best place to post my request, but it seems to me that V6 of MUI should also bring some "standardization" in a way to manipulate the styles. Let me give you an example. Do not hesitate to move my comment elsewhere
I spent couple of hours to find how to style the "a.active" in the theme.
Solution is the following :
styleOverrides: {
        root: () => {
          return {
            borderColor: themePalette.SECONDARY_COLOR,
            "&:hover": { //<--- :hover is also working. the & is not mandatory
              borderColor: themePalette.SECONDARY_COLOR,
              color: "white",
            },
            "&.active": { // <--- .active is not working... Need the &
              background: themePalette.THIRD_COLOR,
              color: themePalette.SECONDARY_COLOR,
              fontWeight: "bold",
            },
          };
        },
      },

That seems to be obvious for your BUT here is the trick:
for hover,  the & at the beginning of "&:hover" can be omitted, ":hover" is also applying the style correctly.
however for the .active, the & is mandatory, ".active" doesn't apply the style, whereas "&.active" works as expected
I'm not very famaliar with pure CSS, maybe in a CSS file this is also working this way, but for TS or JS, a standardization might be really powerful.
Anyway, your library is so great. Thks for you job and happy new year

It would be great to know your thoughts and to know whether you consider:

to attempt to make MUI framework agnostic or at least a layer that would be agnostic

Idk and don't have a clear proposal on how to achieve this
maybe, the way Material Web currently builds with lit (and lit having generators to create react/vue/etc. components) could prompt to similar approaches

at best, there would be no performance degradation between the current react components and generated ones

use of CSS Modules for the styles, instead of emotion. This point could be a plan B for the point 1 or initial work in this direction

it might increase complexity, but could potentially bring more users
it would not only make use of MUI more flexible, but would noticeably decrease the negative effect of MUI on LCP (from Google's Lighthouse) affecting issues like #32103

Removing all IE11 support is premature because it is still the one and only required browser for all Outlook Web Add-in for Outlook 2016 and Outlook 2019 volume licensed version.
According to Microsoft there is no alternative browser or way to move to edge for Outlook 2016 and for volume licensed Outlook 2019.

It would be great to know your thoughts and to know whether you consider:

@o-alexandrov I have added a new section for big feature ideas for v6.

Considering https://twitter.com/olivtassinari/status/1619858999943516160, if we ever do this, I think that it will be by wrapping the React components into a light runtime, e.g. Preact. (I don't think that it would make sense to use web components inside or even expose them, I think that web component was invented to solve a 10-year-old problem that doesn't really exist anymore).
It's part of the list :)

How about simplifying MUI's codebase on how you do animation by adopting framer-motion, Transitions in particular?

Chakra UI uses framer-motion for Collapse component for example
Material Design 3 would need effort on the changed/new animation. Using framer-motion should simplify the task
MUI has animation-related performance issues that would be resolved #31009
framer-motion is also very popular, so for those who use it, you'd decrease the bundle size if you make a switch in your codebase

for those who don't, it'd be great if there was interoperability similar to how you did with styled API

@o-alexandrov I saw few days ago that the framer motion team noted in their 3.0 roadmap that they want to remove the framer motion dependency:

Remove dependency on framer-motion: We'll redesign the components to fit any motion library or native css animation.

their roadmap post is here: https://github.com/chakra-ui/chakra-ui/issues/7180
so maybe doing that would actually be the best solution, allow framer motion or any other motion library to replace (mui) motion, similar to how it is done for date libraries and probably similar to the idea of removing the dependency on emotion to allow other css-in-js libraries as alternatives (see server components discussion https://github.com/mui/material-ui/issues/34826)

With regard to static CSS extraction, would/could this cover use cases where theme configs are loaded dynamically at runtime?
For example, I have an app that has a different color scheme based on the customer that it's deployed for. The theme config is fetched on page load and applied to the app.

When will v6's stable version be available?
@oliviertassinari

Hi @oliviertassinari now the Next Js 13 app Routing is Stable, I cannot implement MUI 5 fully even if I use "Use Client". I am eagerly waiting for the MUI to get full support otherwise I have to go with Tailwind Css for my upcoming Project. So same question what all are asking as mine "When will MUI V6 will come with Next JS 13.4 Support".

I cannot implement MUI 5 fully even if I use "Use Client".

@nunesunil What prevents you to do such? I haven't experienced issues so far.

@oliviertassinari reply to above, I had a custom Theming for entire app and I want to wrap the entire tree in ThemeProvider. Where Can I apply It? as in RootLayout if we apply ThemeProvider by converting to Client side using "Use Client", MetaTag is not supported in Client side of Next 13. Is there any alternative?

@nunesunil The recommended way is to wrap your ThemeProvider and make that one Client component, then place it on the RootLayout, which remains as RSC.

https://github.com/mui/material-ui/pull/31885 How is support for Gap looking?

Are there plans to support server components (primarily with Next.js) in the initial v6.0 release?
Would be great to reduce the bundled javascript in some static pages.

@MartinXPN
There is this:
https://github.com/mui/material-ui/issues/38137
It is added to the v6 milestone

Hello everyone,
For a much smoother migration experience, we’ve decided to split the next year’s major into two releases. Generally speaking, it’s a new release strategy we’re adopting after hearing feedback from many of you about the v4 → v5 migration—more frequent and less breaking majors seem like the way to go. With that, here’s what you can expect for Material UI v6 and v7:

v6 will primarily focus on shipping the new zero-runtime CSS-in-JS style engine we’ve been working on. It paves the way for compatibility with React Server Components (RSC) and allows many performance improvements, such as reducing total blocking time, to name one. This release is targeted for Q2 2024.
v7 will focus on design improvements, but most notably, adding “native support” to Material 3 to all the Material UI components. We’ll also bake in many smaller design and DX improvements all around. This release is tentatively targeted for Q4 2024.

Check out the public Material UI GitHub project for an overview of this plan and the respective GitHub milestones for a detailed list of what will be included in each release. We also put out this announcement as a blog post!
As always, feel free to continue the discussion here or on a specific issue. Let us know if there’s anything else you’d like to see included in each major!

Can you please consider to drop React 17 support?

so useMediaQueryOld could be dropped https://github.com/mui/material-ui/blob/48251abb01cac73ee9924feb804286f97c2e45ff/packages/mui-material/src/useMediaQuery/useMediaQuery.ts#L53

and other logic that has global state; maybe @floating-ui/react-dom could be replaced with @floating-ui/dom and use of useSyncExternalStore for global state

Can you please consider adding the select options to accept any value
<Option value=''> </Option> string | number | readonly string[] | undefined
to
<Option value=''> </Option> string | number | readonly string[] | undefined | null | boolean
To fix the issue we are facing with other libraries like react-hook-form

@o-alexandrov hi! Could you please open an RFC for that so we can discuss it? Please point out the benefits of removing support. We would also have to analyze the ratio of downloads between both versions.
@ahmed-saber hi! Is there a GitHub issue describing the issue you're facing?

It would be great if mui could implement a component for numbers. I know there is already a github issue for that but this is already open for years: Number input component.
I don't know how a web application can be done without entering numbers. Therefore, I find this component to be one of the most important missing things from mui.
Besides:
I'm in favor of keeping the name mui in the packages. Just because it doesn't "feel" like it fits, I don't think it's a legitimate reason to change it. Because of this change, every class would have to be attacked.
Thank you for your work

Hey @nameer, thanks for reaching out!
Your suggestion seems to align with #29345, which we're doing for v7. Would you be willing to open an issue so we can add it to that milestone? That way, we can track the progress.

Hey @nameer, thanks for reaching out!
Your suggestion seems to align with #29345, which we're doing for v7. Would you be willing to open an issue so we can add it to that milestone? That way, we can track the progress.

Created https://github.com/mui/material-ui/issues/41579

F

Is the compatibility of pigment-css with MUI-X planned for the initial release of v6?

Is the compatibility of pigment-css with MUI-X planned for the initial release of v6?

@JoseVSeb This isn't really in our target. MUI X has about 20% of the use relative to Material UI. It's also almost has much work as in Material UI to support. So it makes more sense for us to first prove that the model works with Material UI before expending. Pigment CSS and Emotion by design must be able to cohabite in the same page to allow progressive migrations, so it's incremental value as more components are migrated.
We have two official release slots in the year to ship breaking changes that syncs all projects together (Pigment CSS, Base UI, Material UI, MUI X), September and March: https://mui-org.notion.site/React-releases-7490ef9581b4447ebdbf86b13164272d. If Material UI gets shipped out of shedule, it means that it should be designed in a way makes it possible for downstream, e.g. MUI X to not release a breaking change while supporting the latest version of Material UI. So again, you should be able to see incremental value.

Will it be possible to use MUI v6 in combination with MUI X at all (with or without MUI being on Pigment while MUI X still uses emotion) when it launches? From looking at the MUI X repository there doesn't seem to be any effort right now to support MUI v6. MUI X is currently a blocking issue for testing out the v6 release. We used to follow along with alphas and betas in a test branch to not have all breaking changes come in at once, but that hasn't been possible with v6 in combination with MUI X.

@Studio384 What issue did you face?

MUI X v7 currently requires MUI v5 and only v5. So from what I get here, you're saying it might take until MUI v7 before MUI X supports MUI v6?

Is MUI v6 with Pigment CSS compatible with Remix?
It's not listed as a supported framework even though Remix is just a Vite plugin these days:
https://next.mui.com/material-ui/migration/migrating-to-pigment-css
I can only seem to get Pigment CSS working when SSR is disabled:
https://stackblitz.com/edit/remix-run-remix-aroqz5

Hi, @Studio384 I'm confirming that MUI X v7 will support Material UI v6 once there is a stable release.

hello @oliviertassinari , just tried the beta and followed the upgrade guide on a new nextjs project. Seems pigment is working but all material ui components are still using emotion. I also built material-ui and looked at the demo app, it works and mui uses pigment. So I'm probably missing something. Is there a way to completely remove emotion and prevent it from being loaded unintentionally?

Seems pigment is working but all material ui components are still using emotion.

I have been facing this as well. pigment works fine. but it's not being used for mui components. they still rely on emotion at runtime. an example would be nice.

To get things working with @mui/material and Pigment and vite:

remove ThemeProvider or CssVarsProvider
add @mui/material to transformLibraries in the vite plugin config:

const theme = extendTheme(themeOptions);

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    pigment({
      theme,
      transformLibraries: ['@mui/material'],
    }),
    react(),
  ],
});

After that the MUI components would start picking up the Theme customizations using Pigment.
Sorry, I don't use NextJS so I don't know what the same approach there would look like.

      transformLibraries: ['@mui/material'],

That's what I was missing. Thanks.

Thanks, @gaetansnl, @rossipedia, and @JoseVSeb, for pointing out this issue; this was indeed missing in the guide. We're adding it: https://github.com/mui/material-ui/pull/43217

Thanks all for this amazing project. Possible I'm doing something wrong, but when I add that transformLibraries config to a new project, with Vite 5.4 and MUI beta 5, the server drowns in hundreds of errors, such as:

[vite] Pre-transform error<EMAIL_ADDRESS>Cannot read properties of undefined (reading 'palette')

I removed the ThemeProvider first. I have not customized a theme, so that's not present.
If any additional information would be helpful, I'm happy to provide.

I'm having issues using MUI v6 Beta w/ Pigment CSS in a Remix project. I'm getting error:
[vite] Error when evaluating SSR module /app/root.tsx: failed to import "@mui/material"
|- /home/projects/github-ctaqne-71kwv1/node_modules/@mui/material/index.js:9
import * as colors from './colors';
^^^^^^

SyntaxError: Cannot use import statement outside a module

I've taken a popular template kiliman/remix-vite-mui and followed all steps in the migration path to replace emotion with pigment, including using the updated instructions for the next beta release
Here's my upgraded version of the template - hopefully something I've just done wrong, and if so any pointers on how to fix would be greatly appreciated!

@sdriffill-tm @endaquigley I dunno if you can call this a full fledged "starter", but here's a Remix repo I setup where I got MUI6 and Pigment working:
https://github.com/rossipedia/remix-mui-6
Maybe it can help get y'all unstuck :+1:

@rossipedia thanks for your help. I noticed that your components aren't rendering as expected either:

I'm guessing that's related to this comment https://github.com/mui/material-ui/issues/30660#issuecomment-2267596805

Hey @xml, @sdriffill-tm, and @endaquigley! Thanks for the reports. May I ask you to create separate issues for these? This way, it will be easier to track, debug, and respond to 😊

@endaquigley wow you're right. it was working perfectly with beta 2 🤔

Material UI v6 is stable! 🚀
Thanks, everyone, for contributing to the discussion. Hopefully, you can try the new major and provide feedback. If you have any issues or suggestions, please create separate issues to track those 😊.


Use for remote dev / interaction with git repositories (seeking advice)

I really like that a stated goal of the project is "remove development" as that is exactly the problem I'm currently trying to solve. My goal is for our devs (including me) to continue to be able to use preferred local editors, mostly on macOS like SublimeText and VSCode, but move our Docker-based development stack off to more powerful remote VPS servers.
I've been playing with Mutagen for this use case and enjoyed immediate success with two-way sync which was great! As I spent a little more time working though I hit some rough edges around synchronizing a git-based project and I'm curious if you've developed any best practices / have suggestions on how to best handle this.
At this point I'm not exactly sure what series of events would trigger this, but I was able to frequently to get my git tree in weird states where a ton of files would show as modified. I think this was occurring while I was showing off how cool it was that I could modify a source file in any number of ways and have the changes immediately propagate between my laptop and ec2 instance. It also could have been happened when I switched back and forth between git branches both on my local and remote.
I can certainly gather better diagnostic information, but I was wondering if you have any general advice. For example, do you advise syncing the .git folder in a git project? I like the idea of being able to do git operations on the machines on either side of the sync but I could limit git operations to only one end if that makes things less error prone, etc. Have you run into issues with this or did I trip myself up on something else? Thanks!

Hi @jalessio, thanks for your feedback.  It would probably be worth adding some additional documentation on this because similar questions have come up before and the answer requires a bit of knowledge about Git's internals.
The short answer to your question is that synchronizing a Git repository's working tree to a remote system is a totally normal workflow (and what I usually do), but you should not sync the .git folder itself between systems (using any sort of synchronization tool).
To elaborate...
My normal workflow is that I check out a Git repository onto my laptop where my development environment is set up.  If I want to run the code from the repository on remote systems while editing it locally (potentially synchronizing back any files generated on the remote), I mirror the working tree of the repository to those systems by creating Mutagen sessions with the repository on my laptop as the "hub" of a hub/spoke model.  Generally I have only one "spoke" that I'm mirroring to for each repository, but in general you can mirror out as many copies as your like.  However, I always exclude the .git folder from synchronization, so the mirrored copies only reflect the working tree on my laptop (they don't contain .git folders themselves).  Ignoring the .git folder can be done with a --ignore flag, or (even better) by using the VCS ignore group as a per-session or global setting.  I then build, run, and debug the code on the remote systems using SSH.
When setting up this sort of workflow, I generally always start with a copy of the repository only on my laptop.  You can start with copies of the files on both endpoints, but you'd want to ensure that the working trees match exactly, otherwise you'll see synchronization conflicts on startup since Mutagen won't know which side you want to keep.  The issue I've seen in the past is that people set up a synchronization session between two Git repositories thinking that they're the same since they are the "same" repository, but they don't realize that the working trees of the repositories are sitting at different commits or on different branches, and then they see a bunch of conflicts when they create a synchronization session.  In my experience, it's generally better to think of one side of the synchronization session the "master" (the one with the .git repository) and one side the "slave", even though it's a bi-directional sync.
In any case, there are a variety of reasons why you want to avoid syncing a .git folder with any sort of synchronization system, not just Mutagen.
The first reason is that the Git index data structure records inode numbers, device ids, and modification times that are specific to the filesystem that it resides.  If you move it to another system, then the next time you run git status (or any command relying on similar Git infrastructure), Git is going to have to do a full re-hash of the working tree and will then write a new copy of the index with the inode numbers, device ids, and modification times for the working tree on which it was just run.  This is fine if you just want to move a Git repository once, you'll just incur a little extra penalty the first time you run git status, but it won't play well with constant synchronization.  The Git index can also be a bit large (up to tens of MB for very large working trees) and is rewritten every time you run certain Git commands (e.g. git status), so you'd be constantly resynchronizing it.
The second reason is that Git's object store is not homogenous or immutable.  Some objects are stored as loose objects and some are stored in pack files, and it will be completely dependent on the history of a particular copy of a Git repository.  They can also be pruned or relocated into pack files at any point by Git's garbage collection.  This will not play well with synchronization for a variety of reasons that are a bit too numerous to go into, but it will be more than a performance nuisance like the Git index - it may actually cause Git to complain about duplicate objects, or cause weird behavior when Git does its garbage collection.  Again, this doesn't matter when you're just copying a Git repository one time, since in that case you're not continuing to synchronize against it.
A third reason is that Git isn't expecting concurrent modifications of its .git directory (in fact it has an index lock that has to be held by Git processes specifically for this reason).
There are a number of other reasons, but it basically comes down to the fact that only Git is in a position to be in control of what's in its .git folder (at least when it comes to the index and object stores).
But to address your question from a more pragmatic standpoint: Is it possible to run Git commands on both your laptop and in the remote environment into which you synchronize?  The short answer is "no", and the longer answer is "at least not in a way that's useful".
You could imagine a set up where you synchronize two copies of a Git repository, each with a .git folder, but exclude the .git folders from synchronization.  At first this will appear to work, because both will show you the same result for git status and git diff.  However, as soon as you do a git commit operation on one side, the other side will still be on the previous commit and see modified files while the committed side will show a clean working tree (even though both repositories have the exact same files in their working trees).  The only way to propagate the commit to the other side would be to do a push/pull cycle, but to pull the commit you'd need to stash your working tree changes, which would revert your working directory back to the previous commit, which in the mean time would be sync'd back to the committed side, which would then show modifications, at least until you pulled down the commit on the other side, etc., etc.
This problem is similar (though not exactly the same) to the reason why Git won't allow you to push to a non-bare repository.  Essentially it comes down to a separation of states between HEAD, the Git index, and the working tree.  A push to the current working branch would only affect HEAD, and the index (which acts as an intermediary between the repository history and the working tree) would be confused since HEAD would have changed without its knowledge.
Unfortunately this isn't really something that has a solution at the synchronization level.  Yes, in theory you could synchronize the .git directory and get what you want, but the secondary effects from doing so (in terms of performance and behavior) would far outweigh any benefits.  Conceivably you could imagine a .git folder format that was syncable, but it would probably rely on having nothing but loose objects (which would be horrendously inefficient) and a per-machine index data structure that would still incur the cost of synchronizing on modification.
I hope this answers some of your questions.  My guess is that the issues you're seeing are either due to syncing the .git folder (probably specifically something with the Git index) or trying to keep two repositories in sync while ignoring their .git folders.  I would advise the "master/slave" model, i.e. synchronizing only the working tree out to the slaves and controlling Git status only from the machine where your development environment is set up.  This will still support any Git integration you might have with your editors and is probably the easiest route since you'll have your ~/.gitconfig file fully set up on that machine.

I should mention that this also applies to most other version control systems, all of which maintain something like a Git index to avoid having to rehash or rescan files on every status check.  But again, the same master/slave model will work in those cases.
I've also thought about making the VCS ignore option the default in sessions created by later versions of Mutagen.  I generally like to avoid any sort of magic or unexpected defaults, but synchronizing the .git directory can be downright dangerous, and in 99.9999% of use cases, it doesn't make sense.

Thanks for the thorough response! What you describe makes perfect sense and the "master/slave" approach of only having the .git directory on one side of the sync was my planned solution, but now I have a much better understanding of why that is necessary 😃

Glad to hear that it clarified the issue.  I think what I'll do is distill that response into an additional documentation file and link to it from the site and README, but I'll leave this issue open until that's complete.  Ideally I'll eventually have some diagrams to illustrate this hub/spoke master/slave setup.  It's not impossible to explain with words, but it takes about 1/100th the time to understand with a simple diagram.


Body tracking support lacking

Is there a plan to add and support the Kinect body tracking directly from a ROS2 node? If so, what is the expected timeline?

The Kinect body tracking relies on the data interface of AKDK. You can refer to our K4a wrapper (https://github.com/orbbec/OrbbecSDK-K4A-Wrapper) , replace the AKDK header files and library files, and then you can run Azure Kinect ROS （https://github.com/microsoft/Azure_Kinect_ROS_Driver）.

Thank you very much indeed!


Make value_and_pushforward_function consistent with other APIs

Fixes #119

I'm not sure that #119 is an actual issue: https://github.com/JuliaDiff/AbstractDifferentiation.jl/issues/119#issuecomment-1779136206


KeeAnywhere ignore KeePass Proxy configuration

Hi.
Probably linked to issue #55 .
I have already configured two accounts (Dropbox and Dropbox restricted).
Keepass setup:

direct connection

Windows setup:

system proxy script inherited by a policy

KeeAnywhere always show errors which demonstrate it is wrongly connecting to the Internet via proxy.

KeeAnywhere uses KeePass' Proxy Configuration for everything except the visual WebBrowser part for registering an account. This is a known limitation which I can't circumvent.
In the future I will use the system browser for registering an account. With this it is implicitly clear, the Browser has to be configured independent of KeePass.

@Kyrodan As ilvetz said, this occurs everywhere, not just in the visual web browser. For example, the "Check" fails, as does loading a database or saving a database.
In my particular case, I have KeePass configured to not use a proxy ("No proxy"). However, KeeAnywhere still attempts to use the system proxy at all times, apparently ignoring the KeePass setting.

Found the issue: UseProxy defaults to true, and KeeAnywhere never explicitly sets it to false when there's no proxy defined:
https://github.com/Kyrodan/KeeAnywhere/blob/1ae5539bfa9ddde0906c1296393a61f9a8df2604/KeeAnywhere/StorageProviders/ProxyTools.cs#L32-L39
With the defaults of UseProxy = true, Proxy = null, HttpClientHandler falls back to using the system default ... despite the explicit setting of "No proxy" in KeePass.
Quick and easy fix. I'll PR it in a minute.


Animate blinking of caret

Editor is no longer being worked on, and has been removed from the repo. Closing.


Fixed disabling the requests, improved notification links

Motivation and context

How has this been tested?

Checklist

[ ] I submit my changes into the develop branch
[ ] I have created a changelog fragment
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] I have linked related issues (see GitHub docs)
[ ] I have increased versions of npm packages if it is necessary
(cvat-canvas,
cvat-core,
cvat-data and
cvat-ui)

License

[ ] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.

Summary by CodeRabbit

New Features

Introduced a new action to disable requests, expanding request management functionality.
Added a new CVATMarkdown component for improved rendering of markdown content in error notifications.

Enhancements

Replaced ReactMarkdown with CVATMarkdown across various components for consistent error message formatting.
Added a disabled prop to RequestCard component to manage interactive states.

Bug Fixes

Improved notification message formatting by adding punctuation to the end of sentences.

Styles

Added a new CSS class for better styling of notification links.

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

Project coverage is 83.40%. Comparing base (865f85a) to head (44f085e).
Report is 2 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #8197      +/-   ##
===========================================
+ Coverage    83.37%   83.40%   +0.03%
===========================================
  Files          388      388
  Lines        41300    41309       +9
  Branches      3854     3855       +1
===========================================
+ Hits         34432    34453      +21
+ Misses        6868     6856      -12

Components
Coverage Δ

cvat-ui
79.72% <100.00%> (+0.06%)
:arrow_up:

cvat-server
86.70% <100.00%> (+<0.01%)
:arrow_up:


Where's the compiler?

I'm trying to understand how this library works and I'm seeing "compiler" mentioned all over the place. However, when I look through the code, I don't see a compiler anywhere.
From your paper:  https://arxiv.org/pdf/2202.08409v1.pdf

This was accomplished by designing a computationally efficient diffing algorithm that relies on a compiler,

built-in mechanisms are implemented to allow for imperative optimizations, allowing the compiler to directly skip runtime diffing.

I'm seeing the diff code here, but that looks like its happening at runtime? 🤷♂   https://github.com/aidenybai/million/blob/392b07a86ceb87e5aa4181b57bcbb705f34b27b5/packages/million/render.ts#L29
From your website:

Million supports full-class support for compiler optimizations, allowing you to ergonomically create your own compiler over Million.

By computing the user interface beforehand with a compiler, Million reduces the overhead of traditional Virtual DOM.

Million takes it a step further by leveraging compilation to make a quantum leap in improving bundle size and render speed.

The documentation says all I have to do is npm install million to get started but there doesn't appear to be a build step necessary to do any compilation... When / where does the compiling happen?
As for the performance benchmarks, you say its faster than React, but React isn't in your benchmark for comparison...

Maybe consider using the list of popular virtual dom libraries in the Preact benchmark comparison.

Thanks for the help!

FYI, the code of the compiler located here: https://github.com/aidenybai/million/tree/main/packages/vite-plugin-million

Hi @ccorcos, thanks for your interest in Million and happy to answer your questions.

I'm seeing the diff code here, but that looks like its happening at runtime? 🤷♂

Million is a Virtual DOM, there is a runtime component for diffing, alongside a compiler.

The documentation says all I have to do is npm install million to get started but there doesn't appear to be a build step necessary to do any compilation... When / where does the compiling happen?

The compilation happens with the vite plugin, per @SukkaW's comment.

As for the performance benchmarks, you say its faster than React, but React isn't in your benchmark for comparison...

I assume you're referring to the Tweet. The test made in the benchmark was measuring the time it takes to add 5000 nodes in succession (for loop). On the left, it shows the time it takes to diff and patch the nodes. On the right, it shows delta compute and dom application.
The benchmark itself is only to compare to other Virtual DOM libraries. We are exploring comparisons between libraries with #37

Ah ok. Thanks for the reply.
So regarding the compiler, what exactly is the optimization here? It looks like it's unwrapping components into one large single component? Is that what's going on? I'm also curious how this handles hooks in subcomponents.
https://github.com/aidenybai/million/blob/392b07a86ceb87e5aa4181b57bcbb705f34b27b5/packages/vite-plugin-million/compile.ts#L75

I assume you're referring to the Tweet. The test made in the benchmark was measuring the time it takes to add 5000 nodes in succession (for loop). On the left, it shows the time it takes to diff and patch the nodes. On the right, it shows delta compute and dom application.

Ah, so that tweet has nothing to do with the compiler, right? That's just useList which keeps track of list mutations via Proxy and passes those deltas on to the component?
https://github.com/aidenybai/million/blob/15a85673bb9fbb8adb4be1ccc57cabd85f113aa5/website/pages/docs/react/use-list.mdx
Still trying to figure out how the deltas bypass the diffing mechanism though... somewhere in here?
https://github.com/aidenybai/million/blob/392b07a86ceb87e5aa4181b57bcbb705f34b27b5/packages/million/render.ts
Thanks,
Chet

So regarding the compiler, what exactly is the optimization here? It looks like it's unwrapping components into one large single component? Is that what's going on? I'm also curious how this handles hooks in subcomponents.

The current optimization renders hyperscript calls to flattened vnode objects, similar to how inferno does it. More optimizations to come.

closed via v2


chore: upgrades dependancies

:tada: This PR is included in version 1.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[BUG] Middle Click Sort weird behaviour

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
When middle clicking on a machine in ATM9, their inventory sorting mod (unsure which) will scramble the order of machine slots.
Expected Behavior
Slots should not be rearranged.
Steps To Reproduce

Load up ATM9
Open a machine and put stuff in it
Middle click a slot.

Environment
- Minecraft version: 1.20.1
- Version: 6.0.5-alpha
- Pack: ATM9 0.0.32

Anything else?
No response

The mod that seems to be doing this is Inventory Profiles Next. But its not the default out of the box behavior. I had to copy the ATM9 config file for the mod.
I also tested this with the Inventory Sorter mod and the same behavior occurs. I took a look at its repo and it seems to just see what slots the player is allowed to pick up from in a container and uses that as what to sort. It seems the only way to exclude it is it uses a config file to exclude certain containers or individual slots.
https://github.com/cpw/inventorysorter/blob/77ba84f571dfd6d409d26f0d677db66f6b05fbff/src/main/java/cpw/mods/inventorysorter/SortingHandler.java#L122

If this is the case is there much to be done besides telling people to blacklist the EnderIO containers when using these mods? Inventory Profiles Next has a similar mechanic.

Then again there is the case that I am wrong 😆

This behaviour appears to have been fixed sometime down the line.

This behaviour appears to have not fixed sometime down the line.


Feature Request: Replace the go-sqlite3 based by CGO with a pure GO sqlte3.

Using the pure Go version of sqlite3 will increase the binary compiled size by 2~3MB.
The benefit is that it makes cross-platform compilation easier and more convenient to be referenced by other repositories.

Due to the fact that this project only uses some simple SQL statements, its stability and security are relatively low. It seems that the sqinn-go library meets the requirements, and it even has a smaller size than go-sqlite3.

Due to the fact that this project only uses some simple SQL statements, its stability and security are relatively low. It seems that the sqinn-go library meets the requirements, and it even has a smaller size than go-sqlite3.↳

After conducting research, sqinn-go need emebd sqinn bianry. However, it is possible to package this binary file using go-bindata or golang embed. It is necessary to undergo accurate testing before deciding which method to use.

After testing go-sqlite3, modernc sqlite, sqinn with go embed and sqinn with go-bindata, they were scored according to three dimensions. The full score is 5 stars (the higher the better).

Binary Size represents the size after compilation (difference, not final value)
Reliability represents reliability
BuildEase represents build difficulty

Method
Binary Size
Reliability
BuildEase

go-sqlite3 (CGO)
⭐⭐⭐ 8.3 MB
⭐⭐⭐⭐⭐
⭐⭐⭐

modernc sqlite (PureGO)
⭐ 11 MB
⭐⭐⭐⭐
⭐⭐⭐⭐⭐

sqinn with go embed
⭐⭐⭐⭐ 6.3 MB
⭐⭐⭐
⭐

sqinn with go-bindata
⭐⭐⭐⭐⭐ 6.1 MB
⭐⭐⭐
⭐

Further detailed testing is needed to determine which specific plan to choose.


User forced to enter credit card information

When in the checkout() function, user has no way to back out and only way out is to enter valid payment credentials.

This issue is now resolved.


feat: add quit confirmation

Implements a prompt if the user initiates a quit from the base screen.
? Really quit? (y or n) ›

I added commits to close the prompt if the user cancels it and for the unit tests. I'm still planning on looking into having the functionality be dependent on configuration.

OK I added a config entry and defaulted the behavior to not confirm the quit. I then squashed my commits. It's ready for re-review.

Codecov Report
Attention: Patch coverage is 54.28571% with 16 lines in your changes are missing coverage. Please review.

Project coverage is 85.52%. Comparing base (f526a46) to head (8405439).

Files
Patch %
Lines

src/state.rs
33.33%
16 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master      #89      +/-   ##
==========================================
- Coverage   85.84%   85.52%   -0.33%
==========================================
  Files          37       37
  Lines        3264     3295      +31
==========================================
+ Hits         2802     2818      +16
- Misses        462      477      +15

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


Update components for finders

We want to use components for form fields in finders, which requires some changes to components to support this. Specifically:

input component needs aria-controls attribute option
input component needs id option (turns out this was already present, but not documented)
change how id option works in checkbox
add data-attributes option to checkbox
add aria-controls option to checkbox using Javascript to apply
add margin-bottom option to checkbox

Trello card: https://trello.com/c/fhhTwfLo/178-use-form-element-components-in-finders
Component guide for this PR:
https://govuk-publishing-compon-pr-643.herokuapp.com/component-guide/

@vanitabarrett are you happy to approve this PR?


Installing rye with --yes does not install interactive defaults

When I install rye in interactive mode it will put use-uv=true as a default in the config file as defined in https://github.com/astral-sh/rye/blob/43ac3a3ebfe2fd647e7b9a9fca723eeb37194b7d/rye/src/cli/rye.rs#L589-L602
When the interactive mode is disabled https://github.com/astral-sh/rye/blob/43ac3a3ebfe2fd647e7b9a9fca723eeb37194b7d/rye/src/cli/rye.rs#L194 nothing is being put in the config file.
I think this should be aligned.

I think this is less relevant now that uv is the default when omitted... but agree it's a bit odd.


use full moment-timezone js and add test

We previously used timezone-2010-to-2020 js file, which wis working. However, its name got changed when moment timezone upgraded to 0.5.13. In this change, we replace the file by the full-time-range timezone js, which will permanently stay and should not be changed in future. Also, we add some moment js tests to guarantee moment js working.

Thanks for fixing this and adding tests!

Also is there a way to fail the build if a file being copied doesn't exist?

@HappyRay Unfortunately this way can not guarantee a file being always copied. I made a quick research. It looks like running nodejs and browser is quite different. In order to detect if we have an exact js file, I guess we probably need to set up browser integration test.

Is there a gradle config that will fail the gradle build process when the file is copied?


link to external markdown from slides.md????

In the action master.yml can I compile > 1 md file and link to the html?
Trying to link from slides to other md files.
Doesn't work with pages but works with local server.

Oh man sry... Thanks for the bug report. I haven't realized I have one until I tried to use template myself today.
*cough ...  The script fileInclude.js is reading only the  main file and including that one. When using the template best you fix it directly within your fork. I usually had the files broken down into subchapters:
{{1_ChapterOneIntro.md}}
{{1_1_ChapterOneSubOne.md}}
{{1_2_ChapterOneSubOne.md}}
{{1_3_ChapterOneFinale.md}}
{{2_appreciations.md}}
{{3_glossary.md}}

Sry, for the trouble.
I will keep the issue open, until I may fix it. If - by any chance - fix it on you fork, I will be happy about a PR of course :smile_cat:


Export and re-import of RXNBlocks with aromatic bonds

Hi,
We have a process currently where we read in a reaction SMILES, generate a RXN block / file and read it back into RDKit, and want to export it back as reaction SMILES.
The issue is: if the reaction SMILES contains aromatic bonds, they are exported as aromatic bonds (Type 4) in the RXN file, but when they are imported back, they are considered as query features and exported accordingly into the reaction SMILES. Example:
rxn: AllChem.ChemicalReaction = AllChem.ReactionFromSmarts('Cc1[nH]c2ccccc2c1C(=O)CN.O=C(Cl)c1cc(Br)cn2ccnc12>>Cc1[nH]c2ccccc2c1C(=O)CNC(=O)c1cc(Br)cn2ccnc12', useSmiles=True)`

block = AllChem.ReactionToRxnBlock(rxn)
rxn = AllChem.ReactionFromRxnBlock(block)
smi = AllChem.MolToSmiles(rxn.GetReactantTemplate(0))
print(smi)

This results in:
CC1:N:C2:C:C:C:C:C:2:C:1C(=O)CN
Which is not a valid SMILES (aromatic bonds, but aliphatic atoms)
I would expect, upon creating the RXN block that structures get kekulized. Or at least to have the option to kekulize the structures upon exporting the reaction.
Configuration (please complete the following information):

RDKit version: 2024.3.5
OS: Windows 10
Python version (if relevant): 3.9.15
Are you using conda? Yes
If you are using conda, which channel did you install the rdkit from? Conda-forge
If you are not using conda: how did you install the RDKit?

I'm on the fence on this one.
One of the issues you are seeing is that reactions really are smarts and not smiles, and sometimes the conversion between them is not obvious or possible.
To see what is really going on:
>>> prod = Chem.Mol(rxn.GetReactantTemplate(0))
>>> prod.Debug()
Atoms:
	0 6 C chg: 0  deg: 1 exp: 1 imp: N/A hyb:  query: AtomAtomicNum
	1 6 C chg: 0  deg: 3 exp: 4 imp: N/A hyb:  query: AtomAtomicNum
	2 7 N chg: 0  deg: 2 exp: 3 imp: N/A hyb:  query: AtomAtomicNum
	3 6 C chg: 0  deg: 3 exp: 4 imp: N/A hyb:  query: AtomAtomicNum
	4 6 C chg: 0  deg: 2 exp: 3 imp: N/A hyb:  query: AtomAtomicNum
	5 6 C chg: 0  deg: 2 exp: 3 imp: N/A hyb:  query: AtomAtomicNum
	6 6 C chg: 0  deg: 2 exp: 3 imp: N/A hyb:  query: AtomAtomicNum
	7 6 C chg: 0  deg: 2 exp: 3 imp: N/A hyb:  query: AtomAtomicNum
	8 6 C chg: 0  deg: 3 exp: 4 imp: N/A hyb:  query: AtomAtomicNum
	9 6 C chg: 0  deg: 3 exp: 4 imp: N/A hyb:  query: AtomAtomicNum
	10 6 C chg: 0  deg: 3 exp: 4 imp: N/A hyb:  query: AtomAtomicNum
	11 8 O chg: 0  deg: 1 exp: 2 imp: N/A hyb:  query: AtomAtomicNum
	12 6 C chg: 0  deg: 2 exp: 2 imp: N/A hyb:  query: AtomAtomicNum
	13 7 N chg: 0  deg: 1 exp: 1 imp: N/A hyb:  query: AtomAtomicNum
Bonds:
	0 0->1 order: 1
	1 1->2 order: a aromatic?: 1
	2 2->3 order: a aromatic?: 1
	3 3->4 order: a aromatic?: 1
	4 4->5 order: a aromatic?: 1
	5 5->6 order: a aromatic?: 1
	6 6->7 order: a aromatic?: 1
	7 7->8 order: a aromatic?: 1
	8 8->9 order: a aromatic?: 1
	9 9->10 order: 1
	10 10->11 order: 2
	11 10->12 order: 1
	12 12->13 order: 1
	13 9->1 order: a aromatic?: 1
	14 8->3 order: a aromatic?: 1

So at this point, your molecule has been changed into a query and this query doesn't need to know the aromaticity of the atom as it only matches atomic number.
RXN Blocks can handle aromatic bonds just fine, so if you want to capture the exact query you are using, the rxn blocks encodes the aromaticity in the bonds, otherwise it will need to be perceived when reading.
Also the reaction doesn't need to know the protonation state of the aromatic nitrogen, so it isn't recorded in the reaction block.  This is probably an oversight we can look into, but fixing it might break the query.
Note that for general reaction blocks, we do have a SanitizeRxn function that fixes some of these issues, but here it can't figure out the aromatic nitrogen:
block = AllChem.ReactionToRxnBlock(rxn)
rxn2 = AllChem.ReactionFromRxnBlock(block)
AllChem.SanitizeRxn(rxn2)

prod = Chem.Mol(rxn2.GetReactantTemplate(0))
print("orig": Chem.MolToSmiles(rxn.GetReactantTemplate(0)))
print("conversion mb": Chem.MolToSmiles(prod))

Cc1[nH]c2ccccc2c1C(=O)CN
CC1:N:c2ccccc2:C:1C(=O)CN

So close!

Hi Serge, I agree this is a bug because you specified asSmiles=True.
In fact, the reactant template has no query atoms, and the reaction is displayed with kekulized bonds, and therefore I believe ReactionToRxnBlock should kekulize the aromatic bonds:
from rdkit import Chem
from rdkit.Chem import rdChemReactions

rxn = rdChemReactions.ReactionFromSmarts('Cc1[nH]c2ccccc2c1C(=O)CN.O=C(Cl)c1cc(Br)cn2ccnc12>>Cc1[nH]c2ccccc2c1C(=O)CNC(=O)c1cc(Br)cn2ccnc12', useSmiles=True)
for a in rxn.GetReactantTemplate(0).GetAtoms():
    print(a.GetIdx(), a.GetSymbol(), a.HasQuery())
0 C False
1 C False
2 N False
3 C False
4 C False
5 C False
6 C False
7 C False
8 C False
9 C False
10 C False
11 O False
12 C False
13 N False
rxn

It makes sense that the bonds are output as type 4 in the RXN block only when asSmiles=False, since in that case all atoms are query atoms, and the reaction is displayed with aromatic bonds:
rxn = rdChemReactions.ReactionFromSmarts('Cc1[nH]c2ccccc2c1C(=O)CN.O=C(Cl)c1cc(Br)cn2ccnc12>>Cc1[nH]c2ccccc2c1C(=O)CNC(=O)c1cc(Br)cn2ccnc12')
for a in rxn.GetReactantTemplate(0).GetAtoms():
    print(a.GetIdx(), a.GetSymbol(), a.HasQuery())
0 C True
1 C True
2 N True
3 C True
4 C True
5 C True
6 C True
7 C True
8 C True
9 C True
10 C True
11 O True
12 C True
13 N True
rxn

@ptosco kekulizing the reactant templates will not round trip back into the RDKit without calling SanitizeRxn, I don't think I recommend kekulizing the reactants especially as you need to encode the aromaticity model you are using.

Rather, I think the MolBlock should have enough information to deduce kekulization which it currently does not.

@bp-kelley , @ptosco ,
Thanks a lot for your valuable input.
I would argue that exporting a reaction (not a query !) to a RXN block should not allow Type 4 atoms. According to the MDL/Biovia CTFile format manual, bond Types 4 to 8 are for queries only (BIOVIA Databases 2020 • CTFile Formats | Page 11). Therefore, if I am dealing with a reaction object in RDKit (again, not a query, since it was imported 'as SMILES'), I would expect RDKit to run a "kekulization" on the reaction components when generating the RXN Block.

Reaction blocks are queries.

I think I have a good example of the issue, when I get back to my computer I’ll write it up for discussion

Along the way I've found a bug for sure.
print("*"*44)
m = Chem.MolFromSmarts("Cc1[nH]c2ccccc2c1C(=O)CN.O=C(Cl)c1cc(Br)cn2ccnc12")
rxn = rdChemReactions.ChemicalReaction()
rxn.AddReactantTemplate(m)

print(AllChem.ReactionToRxnBlock(rxn))
rxn2 = AllChem.ReactionFromRxnBlock(AllChem.ReactionToRxnBlock(rxn))

This causes a (I'll test on the latest release):
[12:48:37] Found a SCD/SED line with missing/empty SDT specification at line 96

Back to the example, I think we can all agree that this should produce the same results, but I don't think kekulizing the results is the right solution.  I think the right solution is adding the appropriate # hydrogens
m = Chem.MolFromSmiles("Cc1[nH]c2ccccc2c1C(=O)CN")
rxn = rdChemReactions.ChemicalReaction()
rxn.AddReactantTemplate(m)
print("orig:", Chem.MolToSmiles(rxn.GetReactantTemplate(0)))
rxn2 = AllChem.ReactionFromRxnBlock(AllChem.ReactionToRxnBlock(rxn))
print("roundtrip:", Chem.MolToSmiles(rxn2.GetReactantTemplate(0)))

If we AddHs to the molecule, we get identical results after sanitization which leads me to believe this is the right thing to do.
print("="*44)
m = Chem.AddHs(Chem.MolFromSmiles("Cc1[nH]c2ccccc2c1C(=O)CN"))
rxn = rdChemReactions.ChemicalReaction()
rxn.AddReactantTemplate(m)
print(Chem.MolToSmiles(rxn.GetReactantTemplate(0)))
rxn2 = AllChem.ReactionFromRxnBlock(AllChem.ReactionToRxnBlock(rxn))
Chem.SanitizeMol(rxn2.GetReactantTemplate(0))
print(Chem.MolToSmiles(rxn2.GetReactantTemplate(0)))

[H]c1c([H])c([H])c2c(c1[H])c(C(=O)C([H])([H])N([H])[H])c(C([H])([H])[H])n2[H]
[H]c1c([H])c([H])c2c(c1[H])c(C(=O)C([H])([H])N([H])[H])c(C([H])([H])[H])n2[H]

@bp-kelley
Thank you for this example.  Do I have to iterate through each reaction component, add the hydrogens and rebuild the reaction through rxn.AddReactantTemplate calls ? This would be quite cumbersome.

Currently you can't since the hydrogens are lost.  The example was showing that we should retain them if they exist so you can round trip, assuming that this doesn't break the reactions.

And no, you should have to explicitly add hydrogens, that will break other things :)

I'm going to move this to a discussion since there are a lot of moving parts, I'll also ping greg there.
https://github.com/rdkit/rdkit/discussions/7866


Getting the following exception 500: Expecting value: line 1 column 1443 (char 1442)

Hello guys,
Thank you for this awesome project.  I'm getting this exception: 500: Expecting value: line 1 column 1443 (char 1442). I'm using a local Ollama (0.1.39) docker instance with the llama3 model. Here is the details log:
INFO:     <IP_ADDRESS>:52334 - "POST /chat HTTP/1.1" 200 OK
Search provider: searxng
Traceback (most recent call last):
File "/workspace/src/backend/chat.py", line 111, in stream_qa_objects
async for completion in response_gen:
File "/workspace/.venv/lib/python3.11/site-packages/llama_index/core/llms/callbacks.py", line 280, in wrapped_gen
async for x in f_return_val:
File "/workspace/.venv/lib/python3.11/site-packages/llama_index/llms/ollama/base.py", line 408, in gen
chunk = json.loads(line)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/json/init.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1443 (char 1442)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/workspace/src/backend/main.py", line 97, in generator
async for obj in stream_qa_objects(chat_request):
File "/workspace/src/backend/chat.py", line 140, in stream_qa_objects
raise HTTPException(status_code=500, detail=detail)
fastapi.exceptions.HTTPException: 500: Expecting value: line 1 column 144

Thanks for your help,

I am experiencing basically the same error, with searxng. Results stream in and then blow up with this: 500: Expecting value: line 1 column 4091 (char 4090) . Wonder if this is a problem in the ollama library, given that it's happening in site-packages.

Same thing except 500: Expecting value: line 1 column 2891 (char 2890)

While that stops the page from crashing, it suppresses the entire answer from the LLM. A better way to do it would be to put the try-catch inside the loop, but I'm not sure that's possible, because I think it is deserializing the JSON when yielding. That is, the error happens before the completion variable is even assigned to the loop iteration.


New wsp language

Language name
Wsp
URL of example repository
https://github.com/Linkangyis/Wsp_language
URL of syntax highlighting grammar
https://github.com/Linkangyis/Wsp_language
Most popular extensions

Detected language

.wsp
.wspx
.opwsp


[ci skip] adding user @conda-forge/cuda

Hi! This is the friendly automated conda-forge-webservice.
I've added user @conda-forge/cuda as instructed in #14.
Merge this PR to add the user. Please do not rerender this PR or change it in any way. It has [ci skip] in the commit message to avoid pushing a new build and so the build configuration in the feedstock should not be changed.
Please contact conda-forge/core to have this PR merged, if the maintainer is unresponsive.
Fixes #14

I opened this PR because we (NVIDIA) want to maintain the recipes for NVIDIA packages.


Raise error when score for sorted sets is not a valid float

I noticed that the current implementation of FakeRedis::ZSet#[]= applies _floatify to the value passed as score. I think this doesn't reflect exactly how a real client (like redis-rb) works when passing a value that doesn't have a string representation that can't be converted to float (_floatify seems to be applied to the output only).
I run into this problem when I was passing a Time value to zadd. All my tests that used fakeredis worked without any issues, but the code failed in production with a a ERR value is not a valid float error. I have tweaked the _floatify method to not convert everything to float, and to return the same error as Redis when you pass something that cannot even be converted.

Thank you very much for this!!!


ci: Add basic Travis CI support

Travis CI build the sln using msbuild in Release and Debug configurations
Ref #4

I notice the trusty distro tag, does that mean we can create a ppa (or whatever the current Ubuntu community project is) from our builds?

Yeah, packaging is something we should think about, too.
In this case the distro tag ensures we build on Ubuntu 14.04. Without it, Travis would default to 12.04, which does not have all dependencies (and frankly is quite old).

i could probably make the makefiles for a basic deb ...

@arfbtwn I enabled some more projects to be built.
Do you want the autotools part in this PR? Although I don't really know how to deal with NuGet dependencies using that build system. So some help there would be really appreciated.

I wouldn't worry about auto-tools for this one - I guess for NuGet packages we'd want to record the dependencies somewhere in the makefiles and have them restored during the configure phase but having the PackageReference elements seems like the way to go for MSBuild, I'm guessing the YouTube support libraries aren't available as distribution packages anymore?

I at least couldn't find any distribution packages. Even for gstreamer-sharp I couldn't find anything in the *.deb-world

werent there an issue to move away from gstreamer-sharp?

@nicman23: yeah #6, when we raised it we were having some fundamental trouble with the managed engine that @Carbenium was able to patch in #8.
@Carbenium: No worries on the tricky to build/OS dependent stuff, we'll try and take care of some of it in the autotools version so let's remove the commented build script for gstreamer-sharp.
Somewhat unrelated but I had a look at setting up an Ubuntu PPA, might be a solution for getting the tricky dependencies built and packaged so we can install them on the CI build host and target machines in the usual way with apt.
This is looking really good, I'm not sure about the inter-extension dependency from the ubuntu sound menu to the notification area (in order to get the notify-sharp binding stuff) though - perhaps we should pull that internal define out into a small library (ala Mtp) so we can keep those separate? - if you have time to do the refactor and MSBuild changes then I'll follow up with an autotools commit for it.

[...] perhaps we should pull that internal define out into a small library (ala Mtp) so we can keep those separate? - if you have time to do the refactor and MSBuild changes then I'll follow up with an autotools commit for it.

I'll see what I can do ;)

next time you rebase over this if you make 35d6cd9 a fixup for 89787b9 then I think it'll remove it from the history - looks like that's when the build script appeared :)

I'm going to take a final look (at least resolve the merge conflict :wink: ) this evening and get back to you on this.

@arfbtwn Alright, we have a green build again. This one is ready from my side.


use xnet.DialTimeoutLocal for swarmctl grpc Dialer

It will support swarmctl on windows(etc, swarmctl.exe -s //./pipe/swarm.sock cluster inspect default)

Please sign your commits following these rules:
https://github.com/moby/moby/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "patch-1" git@github.com:better0332/swarmkit.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.

can anyone merge it?

Just to make sure I understand correctly, does this actually work? Can you run swarmctl on Windows with this change?

@dperny yes, swarmd --listen-control-api support  for windows pipe, but swarmctl not
swarmd.exe -d host-m0 --listen-control-api //./pipe/host-m0/swarm.sock --hostname host-m0 --engine-addr http://<IP_ADDRESS>:2376
time="2017-12-05T19:46:32+08:00" level=info msg="Listening for connections" addr="[::]:4242" module=node node.id=yxd5lvz814aplldkzljydjp16 proto=tcp
time="2017-12-05T19:46:32+08:00" level=info msg="Listening for local connections" addr="//./pipe/host-m0/swarm.sock" module=node node.id=yxd5lvz814aplldkzljydjp16 proto=pipe
time="2017-12-05T19:46:32+08:00" level=info msg="635e287ad38e717a became follower at term 2" module=raft node.id=yxd5lvz814aplldkzljydjp16
time="2017-12-05T19:46:32+08:00" level=info msg="newRaft 635e287ad38e717a [peers: [], term: 2, commit: 38, applied: 0, lastindex: 38, lastterm: 2]" module=raft node.id=yxd5lvz814aplldkzljydjp16
time="2017-12-05T19:46:32+08:00" level=info msg="635e287ad38e717a is starting a new election at term 2" module=raft node.id=yxd5lvz814aplldkzljydjp16
time="2017-12-05T19:46:32+08:00" level=info msg="635e287ad38e717a became candidate at term 3" module=raft node.id=yxd5lvz814aplldkzljydjp16
time="2017-12-05T19:46:32+08:00" level=info msg="635e287ad38e717a received MsgVoteResp from 635e287ad38e717a at term 3" module=raft node.id=yxd5lvz814aplldkzljydjp16
time="2017-12-05T19:46:32+08:00" level=info msg="635e287ad38e717a became leader at term 3" module=raft node.id=yxd5lvz814aplldkzljydjp16
time="2017-12-05T19:46:32+08:00" level=info msg="raft.node: 635e287ad38e717a elected leader 635e287ad38e717a at term 3" module=raft node.id=yxd5lvz814aplldkzljydjp16
time="2017-12-05T19:46:32+08:00" level=error msg="error creating cluster object" error="name conflicts with an existing object" module=node node.id=yxd5lvz814aplldkzljydjp16
time="2017-12-05T19:46:32+08:00" level=info msg="node is ready"

swarmctl.exe -s //./pipe/host-m0/swarm.sock cluster inspect default
ID          : gu0witg6rr2ezh73vkh54r1fs
Name        : default
Orchestration settings:
  Task history entries: 5
Dispatcher settings:
  Dispatcher heartbeat period: 5s
Certificate Authority settings:
  Certificate Validity Duration: 2160h0m0s
  Join Tokens:
    Worker: SWMTKN-1-4mqk8iwtb7arw0p675wghzza1aflr49wwhkhyvm1tisccvwjav-e0y529pd446oyx47rqupfplaq
    Manager: SWMTKN-1-4mqk8iwtb7arw0p675wghzza1aflr49wwhkhyvm1tisccvwjav-er4uik2kbg6oips3lns5c82i5

I have test on win10, should use Administrator account to run

Great! This is really cool. Swarmctl is just a development tool, it's not really useful for production, but this is still a welcomed change. LGTM


Adding FAO/GHG/1/DROS-A and FAO/GHG/1/DROS-E to the public catalog

Will be followed up by an email from<EMAIL_ADDRESS>

Thank you for your pull request. Please explain how the datasets here are different from:

https://github.com/google/earthengine-catalog/blob/main/catalog/FAO/FAO_GHG_1_DROSA_A.jsonnet
https://github.com/google/earthengine-catalog/blob/main/catalog/FAO/FAO_GHG_1_DROSE_A.jsonnet


doc: Add Redux Performance Guidelines

Adding guidelines on how to improve performance for Redux and also Best practices

Do we have any sort of caching strategy on the mobile app? In extension, we have fetchWithCache which caches the result of an API request so that it isn't over fetched.
Useful with things like fetching safeChains or something along those lines.


--enable-vm-service flag behaviors are inconsistent between debugger and cli

CC @DanTup (re conversation: https://discord.com/channels/608014603317936148/1282837915847757964)
Given the following Dart script:
import 'dart:developer';

Future<void> main(List<String> args) async {
  print('Starting server code...');

  final vmServiceInfo = await Service.getInfo();
  final wsUri = vmServiceInfo.serverWebSocketUri!;
  print('VM Service accessible at: $wsUri');
}

... and the following launch config and cli commands:
launch.json (debugger):
    {
      "name": "launch.json example",
      "request": "launch",
      "type": "dart",
      "program": "bin/main.dart",
      "toolArgs": [
        "--observe",
        "--enable-vm-service=6968",
        "--disable-service-auth-codes"
      ],
    },

cli command:
dart run --observe --enable-vm-service=6968 --disable-service-auth-codes bin/main.dart

The output / behavior is different.
debugger output (incorrect expected behavior)
Connecting to VM Service at ws://<IP_ADDRESS>:51752/32Cv_oigsEk=/ws
Connected to the VM Service.
Starting server code...
VM Service accessible at: ws://<IP_ADDRESS>:51752/32Cv_oigsEk=/ws

cli output (correct expected behavior)
❯ dart run --observe --enable-vm-service=6968 --disable-service-auth-codes bin/main.dart
Starting server code...
VM Service accessible at: ws://<IP_ADDRESS>:51780/ws
The Dart VM service is listening on http://<IP_ADDRESS>:6968/
The Dart DevTools debugger and profiler is available at: http://<IP_ADDRESS>:6968/devtools/?uri=ws://<IP_ADDRESS>:6968/ws

@bkonyi my guess is that this is because the flag is passed to the VM by the debug adapter and the original VM Service does use that port, but then the debug adapter starts DDS which binds a new port, and we take the URI from that?
https://github.com/dart-lang/sdk/blob/a6a2c57d689c5aca7d9fadd5dbf04615246ed198/pkg/dds/lib/src/dap/adapters/dart.dart#L792
What's the best way to handle this? Can we return the normal VM Service URI (I can't remember if DDS needs to proxy all the traffic or is just registering new services etc.)? If not, I wonder if we'd need to either parse the VM args in DAP (which doesn't seem ideal to duplicate here) and use the port for DDS instead of passing it to the VM?

@bkonyi my guess is that this is because the flag is passed to the VM by the debug adapter and the original VM Service does use that port, but then the debug adapter starts DDS which binds a new port, and we take the URI from that?

It seems like that's the case.

What's the best way to handle this? Can we return the normal VM Service URI (I can't remember if DDS needs to proxy all the traffic or is just registering new services etc.)? If not, I wonder if we'd need to either parse the VM args in DAP (which doesn't seem ideal to duplicate here) and use the port for DDS instead of passing it to the VM?

All traffic should go through DDS as any attempt to connect directly to the VM service while DDS is connected will either fail or get a redirect to DDS (depending on whether or not the websocket implementation allows for following redirects).
While there's definitely a way to handle this properly, I'm wondering why the Dart DAP adapter even needs to start DDS itself? I honestly can't remember why we decided to do this, but since we don't rely on dart run to launch DDS anymore (the VM service handles this now) maybe we can avoid the headache and just let the VM handle this?

While there's definitely a way to handle this properly, I'm wondering why the Dart DAP adapter even needs to start DDS itself?

I think we wanted to avoid an additional process and thought we might one day have DDS + DAP closer together (to avoid additional layers). I don't know if that still makes any sense though, and Flutter always has its own DDS and is hard-coded to set false to the DAP-provided DDS.
If you think it makes no sense to do here, I will remove it (keeping constructor the flag as a no-op initially, to simplify rolling the update into Flutter) and do some testing.


No templates defined.

Hello,
in "Edit Page" - Insert - Template I see the following error: "No templates defined."
How can I load a default template and make it static?
Thanks for the answer,
Alessandro

How can i put a standard template? can you help me?

https://www.tiny.cloud/docs/plugins/template/

I think this will help. closing this issue for now.


Saving Mappable models with identical key/value pairs in $maps

When saving a model that uses the Mappable trait, are we unable to have aliases with matching column names? For example:
class MyModel extends \Eloquent {
    use Eloquence, Mappable;

    protected $fillable = ['first_name'];
    protected $maps = [
       'first_name' => 'first_name',
       // ...
    ];
}

// ...

$model = new MyModel;
$model->first_name = 'Jon';
$model->save();

The save is successful but the value of first_name is not persisted to the database. I can work around the issue by having an alias of a different name. Using version 0.4.13 and Postgres.

Yes, it is impossible because it makes no sense. Why would you want to have an alias matching aliased column?

You're right, now that I re-think it through, if the alias is the same as the column, it doesn't need to be mapped.


Fluentd - Kubernetes - ParserError error="pattern not matched with data"

Describe the bug
I'm trying to redirect Kubernetes logs from containers to OpenSearch But there is always some error with the date. What am I doing wrong?
I've tried many different date/time formats but it's always the same. My guess is that I'm not doing something wrong, it's a bug in the formatter.
To Reproduce
Tail docker logs with lines:
{"log":"time=\"2022-04-01T10:02:31Z\" level=warning msg=\"Cannot take snapshot backup\" controller=longhorn-backup error=\"could not find snapshot 'snapshot-0d1744c2-ff8d-4a68-8a2c-fbfd16408975' to backup, volume 'pvc-03557105-c20d-4fbe-8d0d-8a0b4ac16f6d'\" node=k8s-worker2\n","stream":"stderr","time":"2022-04-01T10:02:31.230191143Z"}
{"log":"E0401 10:02:31.230146       1 backup_controller.go:153] longhorn-backup: fail to sync backup longhorn-system/backup-989764daba094e0d: could not find snapshot 'snapshot-0d1744c2-ff8d-4a68-8a2c-fbfd16408975' to backup, volume 'pvc-03557105-c20d-4fbe-8d0d-8a0b4ac16f6d'\n","stream":"stderr","time":"2022-04-01T10:02:31.230214608Z"}
{"log":"time=\"2022-04-01T10:02:31Z\" level=warning msg=\"Dropping Longhorn backup longhorn-system/backup-989764daba094e0d out of the queue\" controller=longhorn-backup error=\"longhorn-backup: fail to sync backup longhorn-system/backup-989764daba094e0d: could not find snapshot 'snapshot-0d1744c2-ff8d-4a68-8a2c-fbfd16408975' to backup, volume 'pvc-03557105-c20d-4fbe-8d0d-8a0b4ac16f6d'\" node=k8s-worker2\n","stream":"stderr","time":"2022-04-01T10:02:31.230218285Z"}

Expected behavior
Correct log parsing without error.
Your Environment
Docker fluent/fluentd:v1.14.5-debian-1.0
OS: Centos 7

Your Configuration
<source>
  @type tail
  @id tail_all_container_logs
  @label @FLUENTD.OPENSEARCH
  path /var/log/containers/longhorn*.log
  pos_file /var/log/fluentd-containers.log.pos
  tag kubernetes.*
  exclude_path "#{ENV['FLUENT_ALL_CONTAINERS_TAIL_EXCLUDE_PATHS']}"
  <parse>
      @type json
  </parse>
</source>

<filter kubernetes.**>
    @type parser
    key_name log
    <parse>
        @type json
        time_format %Y-%m-%dT%H:%M:%S.%N%z
        #time_format %Y-%m-%dT%H:%M:%S.%z
        #time_format %Y-%m-%dT%H:%M:%S%z
        #time_format %Y-%m-%dT%H:%M:%Sz
        #time_format %Y-%m-%dT%H:%M:%SZ
        #time_format %Y-%m-%dT%H:%M:%S%Z
        #time_format %Y-%m-%dT%H:%M:%S.%z
        timezone +00:00
    </parse>
</filter>

Your Error Log
fluentd/fluentd-x7pgc[fluentd]: 2022-04-01 09:54:33 +0000 [warn]: #0 dump an error event: error_class=Fluent::Plugin::Parser::ParserError error="pattern not matched with data 'time=\"2022-04-01T09:54:33Z\" level=warning msg=\"Cannot take snapshot backup\" controller=longhorn-backup error=\"could not find snapshot 'snapshot-15dfec02-b8c4-40db-a7ed-bf84429ac220' to backup, volume 'pvc-03557105-c20d-4fbe-8d0d-8a0b4ac16f6d'\" node=k8s-worker1\n'" location=nil tag="kubernetes.var.log.containers.longhorn-manager-5lmdf_longhorn-system_longhorn-manager-5f6bc9870a9efe75670274d177d0bf17dee0dd995a433343432b3155af946823.log" time=2022-04-01 09:54:33.524389862 +0000 record={"log"=>"time=\"2022-04-01T09:54:33Z\" level=warning msg=\"Cannot take snapshot backup\" controller=longhorn-backup error=\"could not find snapshot 'snapshot-15dfec02-b8c4-40db-a7ed-bf84429ac220' to backup, volume 'pvc-03557105-c20d-4fbe-8d0d-8a0b4ac16f6d'\" node=k8s-worker1\n", "stream"=>"stderr"}
fluentd/fluentd-x7pgc[fluentd]: 2022-04-01 09:54:33 +0000 [warn]: #0 dump an error event: error_class=Fluent::Plugin::Parser::ParserError error="pattern not matched with data 'time=\"2022-04-01T09:54:33Z\" level=warning msg=\"Error syncing Longhorn backup longhorn-system/backup-c5104cf80da04be6\" controller=longhorn-backup error=\"longhorn-backup: fail to sync backup longhorn-system/backup-c5104cf80da04be6: could not find snapshot 'snapshot-15dfec02-b8c4-40db-a7ed-bf84429ac220' to backup, volume 'pvc-03557105-c20d-4fbe-8d0d-8a0b4ac16f6d'\" node=k8s-worker1\n'" location=nil tag="kubernetes.var.log.containers.longhorn-manager-5lmdf_longhorn-system_longhorn-manager-5f6bc9870a9efe75670274d177d0bf17dee0dd995a433343432b3155af946823.log" time=2022-04-01 09:54:33.524404952 +0000 record={"log"=>"time=\"2022-04-01T09:54:33Z\" level=warning msg=\"Error syncing Longhorn backup longhorn-system/backup-c5104cf80da04be6\" controller=longhorn-backup error=\"longhorn-backup: fail to sync backup longhorn-system/backup-c5104cf80da04be6: could not find snapshot 'snapshot-15dfec02-b8c4-40db-a7ed-bf84429ac220' to backup, volume 'pvc-03557105-c20d-4fbe-8d0d-8a0b4ac16f6d'\" node=k8s-worker1\n", "stream"=>"stderr"}
fluentd/fluentd-x7pgc[fluentd]: 2022-04-01 09:54:33 +0000 [warn]: #0 dump an error event: error_class=Fluent::Plugin::Parser::ParserError error="pattern not matched with data 'time=\"2022-04-01T09:54:33Z\" level=warning msg=\"Cannot take snapshot backup\" controller=longhorn-backup error=\"could not find snapshot 'snapshot-9d5705bf-26fc-49e5-a771-cf9352049c04' to backup, volume 'pvc-03557105-c20d-4fbe-8d0d-8a0b4ac16f6d'\" node=k8s-worker1\n'" location=nil tag="kubernetes.var.log.containers.longhorn-manager-5lmdf_longhorn-system_longhorn-manager-5f6bc9870a9efe75670274d177d0bf17dee0dd995a433343432b3155af946823.log" time=2022-04-01 09:54:33.538539106 +0000 record={"log"=>"time=\"2022-04-01T09:54:33Z\" level=warning msg=\"Cannot take snapshot backup\" controller=longhorn-backup error=\"could not find snapshot 'snapshot-9d5705bf-26fc-49e5-a771-cf9352049c04' to backup, volume 'pvc-03557105-c20d-4fbe-8d0d-8a0b4ac16f6d'\" node=k8s-worker1\n", "stream"=>"stderr"}

Additional context
No response

Now I have a similar case with a different log.
    fluentd/fluentd-9gfjs[fluentd]: 2022-04-05 08:46:58 +0000 [warn]: #0 dump an error event: error_class=Fluent::Plugin::Parser::ParserError error="pattern not matched with data '[2022-04-05T08:46:58,305][INFO ][o.o.j.s.JobSweeper       ] [opensearch-cluster-master-0] Running full sweep\n'" location=nil tag="opensearch-master" time=1970-01-01 00:33:42.306044198 +0000 record={"log"=>"[2022-04-05T08:46:58,305][INFO ][o.o.j.s.JobSweeper       ] [opensearch-cluster-master-0] Running full sweep\n", "stream"=>"stdout"}
    fluentd/fluentd-9gfjs[fluentd]: 2022-04-05 08:51:58 +0000 [warn]: #0 dump an error event: error_class=Fluent::Plugin::Parser::ParserError error="pattern not matched with data '[2022-04-05T08:51:58,306][INFO ][o.o.j.s.JobSweeper       ] [opensearch-cluster-master-0] Running full sweep\n'" location=nil tag="opensearch-master" time=1970-01-01 00:33:42.306370871 +0000 record={"log"=>"[2022-04-05T08:51:58,306][INFO ][o.o.j.s.JobSweeper       ] [opensearch-cluster-master-0] Running full sweep\n", "stream"=>"stdout"}

I have tried the following formats. Each of them does not work.
    <filter opensearch-master>
        @type parser
        key_name log
        <parse>
            @type json
            time_key @timestamp
            time_format %Y-%m-%dT%H:%M:%S,%3N
            #time_format %Y-%m-%dT%H:%M:%S,%L
            timezone +02:00
        </parse>
    </filter>

Ruby Documentation:
https://docs.ruby-lang.org/en/2.4.0/Time.html#method-i-strftime

It seems that it's not your time format's problem, it seems that you use a wrong parser in <filter> section.
<filter kubernetes.**>
    @type parser
    key_name log
    <parse>
        @type json
        time_format %Y-%m-%dT%H:%M:%S.%N%z

The contents in log field don't seem JSON format, they seem plain text:
e.g.)
"log"=>"time=\"2022-04-01T09:54:33Z\" level=warning msg=\"Cannot take snapshot backup\" controller=longhorn-backup error=\"could not find snapshot 'snapshot-15dfec02-b8c4-40db-a7ed-bf84429ac220' to backup, volume 'pvc-03557105-c20d-4fbe-8d0d-8a0b4ac16f6d'\" node=k8s-worker1\n"

You should use regexp parser in <filter>section  instead: https://docs.fluentd.org/filter/parser

@ashie Thanks for the answer.
But this is a bit untrue. This is the dockerlog. Example above.
Or do you have to enter that the capacious log of the string is not json, so the parser tries to convert the entire string in time?


Remote build won't happen on Linux when using WEBSITE_RUN_FROM_PACKAGE

@shawnswlin commented on Wed Apr 15 2020
I'm having a problem with remote build on Linux host for python based functionapp.
After specifying ENABLE_ORYX_BUILD,
SCM_DO_BUILD_DURING_DEPLOYMENT and WEBSITE_RUN_FROM_PACKAGE, 3rd-party packages in requirement.txt still could not be imported.

文件詳細資料
⚠ 請勿編輯此區段。 這是 docs.microsoft.com ➟ GitHub 問題連結的必要項。

ID: 4dc400d6-feaf-3239-094e-3c19aae44345
Version Independent ID: aabb7db4-27fc-63c9-b019-d116450c439f
Content: Azure 函數中的部署技術
Content Source: articles/azure-functions/functions-deployment-technologies.md
GitHub Login: @georgewallace
Microsoft Alias: gwallace

@srvbpigh commented on Wed Apr 15 2020
Hello, @shawnswlin
Thank you for your feedback.
We are actively reviewing your comments and will get back to you soon.
Kind regards,
Microsoft DOCS International Team

@shawnswlin As this is something specifically to a Product question , recommendation at this point is to create the product issue to the official Azure Functions Repo for better clarity. Azure Function Repo will be monitored by Product team of Azure function.

@shawnswlin Just following up again in case missed the previous communication.

@DixitArora-MSFT Thanks for your recommendation, we have decided using az command instead external zip. Will open another issue if we need additional help.


Expand the set of doneOn clauses available to walkthrough steps

Currently vscode only allows a step to be doneOn a command having been executed. This should be expanded to support:

[x] A link being opened (via a walkthrough)
[x] A view having become visible
[x] A setting having been modified
[x] An extension being installed
[x] A context key being set
[x] A script (in core) explicitly checking the item off
[x] The item being selected

Maybe more?
cc @digitarald

Given how flexible context keys are, that list looks good!

For C++, clauses for launch.json and tasks.json set up. Potentially looking at specific types of entries.

Couple changes in tomorrows insiders:

doneOn is deprecated in favor of new "completionEvents", doneOn will still work the same, but completionEvents are preferred going forward (this mirrors activationEvents)
by default, with no doneOn or completionEvents set, the step will be checked when any of its buttons are pressed (links or commands)

if the step has no buttons, it will be checked when it's selected

completionEvents accepts entries in the format:
'onCommand:${1:commandId}'
'onLink:${2:linkId}'
'extensionInstalled:${3:extensionId}'
'stepSelected'

Verify by playing with the sample https://github.com/microsoft/vscode-extension-samples/tree/main/getting-started-sample, the steps use these completion events.

I can't get onLink to work:
					{
						"id": "openlink",
						"title": "Open Link",
						"description": "This step will open a link and check off.\n[Open Link](http://bing.com)",
						"media": {
							"image": "media/image.png",
							"altText": "Empty image"
						},
						"completionEvents": [
							"onLink:http://bing.com"
						]
					}

Also, onSettingChanged causes steps to always show as complete, even when a setting has never been touched.

A script (in core) explicitly checking the item off

How should this one be tested?

How should this one be tested?

That's there to enable checking off on settings sync being activated. If you see

when settings sync is activate, it is working as intended.

@alexr00 did you verify this or what are the items you didn't get to? I will do those.

onLink needs to be verified.
This one also needs to be verified: https://github.com/microsoft/vscode/issues/122570#issuecomment-854889959.
Everything else has been verified.


How about using YACL for config screen

https://modrinth.com/mod/yacl

imho, YACL isn't an ideal option for ThatOrThis or Mod Sets because it has hard dependencies to the Minecraft versions. Moreover, YACL does not even have direct compatibility, and its developer don't support older versions.
ThatOrThis config GUI was version-independent, as the entire mod itself, so switching to the YACL will result in the need to regularly update the mod to support the latest version of the library.


Player ID not parsed correctly in cfbd_json_py.players.get_cfbd_player_season_stats()

Hi I've been recently using this package for a Heisman trophy model, and have found it a lot more accessible than the regular cfbd package.
Caught a bug I believe in the code for the get_cfbd_player_season_stats function.
For passing statistics player_id appropriately commented out,

But not for rushing statistics,

I personally like having player_id available, and I was playing around with the code to get it to work.
I figured this kind of patch would work for the function,

Thanks for all that you do in this package!

Issue has been identified, update will be pushed as soon as I can validate that the fix has been implemented corectly.
Thanks for the bug find!


Fetching User Data v2

The current way of fetching user data from a large CSV file (generated by ISERV) might not be sufficient for a web server anymore.
We could use the ISERV API directly to fetch usernames and emails. However, we then would specifically depend on ISERV, and schools without ISERV couldn't use this project.
The alternative would be to keep the CSV import and specify a path for this file when starting the webserver. In the UI, we only need a button to update all roles from the user file.

Also made a patch for the db for that: commit

So we settled on the user CSV file then?

Yes, I guess so...as you always say: "Don't Change a Running System!". But we could update the export from iServ to be a CSV file and not a TXT file with a divider (→ "|")

I don't say that always ^^
Here it seems a lot of effort for a very small effect...
And does the divider really make a difference?

I mean it's a quite unusal character...
But if you mean we shouldn't, we can it leave it as it currently is.
Shouldn't this be closed by now?


Last partition is not consistently grown even when target_image_size is set

When running the packer-builder-arm out of a Docker container (Jan 25 release on MacOS, which shouldn't matter), the second image partition is inconsistently resized.  My json file specifies the target_image_size properly and it seems like every 3rd or 4th build the image resizes.  Otherwise, the Growing partition to 4096 M step is completely skipped (which results in running out of space in the image when I perform an apt-get dist-upgrade).  I've included the output of two different attempted builds - both run with the exact same command.
Here's the builder snippet from my packer json file:
    "builders": [
      {
        "type": "arm-image",
        "iso_url": "/mnt/image/2020-02-13-raspbian-buster-lite.zip",
        "target_image_size":<PHONE_NUMBER>,
        "iso_checksum_type": "sha256",
        "iso_checksum": "12ae6e17bf95b6ba83beca61e7394e7411b45eba7e6a520f434b0748ea7370e8"
      }
    ],

Here's the output when the partition doesn't get expanded:
==> arm-image: Copying source image.
==> arm-image: Image is a zip file.
==> arm-image: Unzipping 2020-02-13-raspbian-buster-lite.img
    arm-image: Speed:   47.23 MB/s
    arm-image: Progress: 38.30%
    arm-image: Speed:   36.32 MB/s
    arm-image: Progress: 67.76%
    arm-image: mapping output-arm-image/image
==> arm-image: kpartx -s -a -v output-arm-image/image

vs when the partition growing actually gets invoked:
==> arm-image: Copying source image.
==> arm-image: Image is a zip file.
==> arm-image: Unzipping 2020-02-13-raspbian-buster-lite.img
    arm-image: Speed:   48.89 MB/s
    arm-image: Progress: 39.66%
    arm-image: Speed:   39.17 MB/s
    arm-image: Progress: 71.41%
==> arm-image: Growing partition to 4096 M<PHONE_NUMBER> bytes)
    arm-image: mapping output-arm-image/image
==> arm-image: kpartx -s -a -v output-arm-image/image

Just confirming, I am also seeing this problem on macOS. Does not happen when I run on Debian or Ubuntu.

i am using fedora and wasnt able to reproduce this as well.. any more info to help debug  this is appreciated

I'm trying this on a Debian image. It consistently claims to resize the image:
==> arm-image: Growing partition to 6144 M<PHONE_NUMBER> bytes)
    arm-image: mapping output-arm-image/image
==> arm-image: losetup --show -f -P output-arm-image/image
==> arm-image: partitions: [/dev/loop33p1 /dev/loop33p2 /dev/loop33p3]
==> arm-image: partitions: [/dev/loop33p1 /dev/loop33p2 /dev/loop33p3]
    arm-image: Mounting: /dev/loop33p3
    arm-image: Mounting: /dev/loop33p2
    arm-image: Mounting: /dev/loop33p1

But when I check df afterwards I get
/dev/loop33p3                    2,0G  1,4G  492M  74% /tmp/armimg-1998442362
/dev/loop33p2                    300M  4,0K  300M   1% /tmp/armimg-1998442362/boot/efi
/dev/loop33p1                     16M  3,0K   16M   1% /tmp/armimg-1998442362/config

2GB is what's in the original image.


[DO NOT MERGE] Update migrate-email-and-contacts-admin.md

@DaniHalfin

Reviewing. Thanks.

@1justingilmore - could you address the feedback Sirkku sent over email? Thanks.

@1justingilmore - could you address the feedback Sirkku sent over email? Thanks.

Done


Gym Monitoring

Hello,
When I run
python3 train.py --env Breakout --noisy --save-dir ./data/Breakout/ --attack fgsm --num-steps 200000000 --attack-prob 1.0
I get the following bug,
from gym.monitoring import VideoRecorder
ModuleNotFoundError: No module named 'gym.monitoring'
How can I get the gym.monitoring? I guess it is not installed with pip install e .

Hello,
When I run
python3 train.py --env Breakout --noisy --save-dir ./data/Breakout/ --attack fgsm --num-steps 200000000 --attack-prob 1.0
I get the following bug,
from gym.monitoring import VideoRecorder
ModuleNotFoundError: No module named 'gym.monitoring'
How can I get the gym.monitoring? I guess it is not installed with pip install e .

i have the same problem

very similar issue....was this solved?
AttributeError: module 'gym.wrappers' has no attribute 'Monitor'


Signup and login

I've gotten this error twice. Once when logging in and other time when signing up. I think it has to do with our dev server, but not sure:

I've gotten this error twice. Once when logging in and other time when signing up. I think it has to do with our dev server, but not sure:

hm I haven't noticed it yet. I will look into it once I finish the feature I planned in this pr. You haven't noticed this in current master?

You haven't noticed this in current master?
No, I'll let you know if it comes up again. Only happened so far when running this branch locally


[azblob] Enable errors.Is checking on wrapped InternalError error

This changes the implementation of the Is method of azblob.InternalError
to check the target error against the wrapped error value instead of the
InternalError type itself, if the target type is not itself
InternalError. Prior to this commit, type information about the wrapped
error was not accessible. The motivation for this change is to allow the
caller to check a returned InternalError to see if it is wrapping a
context cancelation.
For instance, given a BlockBlobClient, one may like to call
_, err := client.Download(ctx, nil)
if err != nil {
  if errors.Is(err, context.Canceled) {
    return // all good
  }
  // handle error
}

and be able to recognize that the failure was due to context
cancelation.
Existing logic around checking if an InternalError type assertion
succeeds is left in place to account for compatibility issues. New logic
is in place only if that check fails.

We are refactoring the azblob module, and as a part of that work, the InternalError type is going away.


Remove references to any JDK from examples

Description
Removes references to JDKs from examples

there is one reference to JDK (21) in archetypes:
archetypes/helidon/src/main/archetype/common/files/README.md.mustache

if it shall also be removed please let me know


[💡 FEATURE REQUEST]: Add getter for the PSR7Worker->httpWorker property

Q
A

Bugfix?
❌

Breaks BC?
❌

New feature?
✔

We are able to get the Spiral Worker from Spiral\RoadRunner\Http\PSR7Worker but for some reason we cannot get the wrapped HttpWorker. This PR fixes that.

Summary by CodeRabbit

New Features

Introduced a method to obtain HTTP worker instances in the application.

Codecov Report
Attention: 2 lines in your changes are missing coverage. Please review.

Comparison is base (7a1f7d0) 18.85% compared to head (4402f93) 18.64%.

Files
Patch %
Lines

src/PSR7Worker.php
0.00%
2 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff              @@
##                3.x      #21      +/-   ##
============================================
- Coverage     18.85%   18.64%   -0.22%
- Complexity       60       61       +1
============================================
  Files             4        4
  Lines           175      177       +2
============================================
  Hits             33       33
- Misses          142      144       +2

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

BTW @FluffyDiscord could you add some Unit Test to cover this getter?

BTW @FluffyDiscord could you add some Unit Test to cover this getter?

I guess I can

Would the last commit do? I am not sure how you would like to create the test, should have asked.

Would it be possible to release new package version with this feature?

Yep, will be released shortly.
@msmakouz Could you please take a look and manage the release?


Use latest rdoc

For same reason as https://github.com/Shopify/ruby-lsp/pull/1810

Oh, @vinistock already updated in https://github.com/Shopify/ruby-lsp-rails/pull/298, not sure why the sha has changed?

Ah that would explain it.


support for a module loader i.e. UMD?

It would be great if the syntax support a module loader, for e.g. using UMD (https://github.com/umdjs/umd). Personally, I'd like to be able to include materialize.js or a component as a CommonJS module and let browserify do the bundling.

:+1: I would like to import it using browserify

+1 Materialize is published to NPM, but it's not CommonJS compliant so it can't really be used in that fashion.
I can't easily use it in my build process. Actually, even in Bower I can't easily use it in my build process. This is even more important for projects using AngularJS.

Or JSPM :smile:

I'm using materialize with Browserify, but since materialize is not just a js file, you still need to include manually the css file in order get materialize working, for using materialize.js with browserify take a look a this issue #923

Making this browserifiable would make my life infinitely better. +1

For the browserify users out there, you can use (browserify-shim)[https://github.com/thlorenz/browserify-shim] to "inject" dependencies into modules that aren't explicitly required in within the module. It's not an idea solution, but such a strategy is often used with non-CommonJS/AMD modules I've found.

Moved to https://github.com/Dogfalo/materialize/projects/3

#2085 related

Closed due inactivity. Feel free to reopen it, if it's still necessary.


GitHub edit

Issue #, if available:
Add edit page button at the top of each page.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

example link: https://eksworkshop.com/pr-45/eksctl/test/ (upper right corner)

merging after positive feedback from @arun-gupta and @dalbhanj


Update CompatHelper.yml

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 65.08%. Comparing base (4df26b0) to head (8ef16dd).
Report is 2 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #53   +/-   ##
=======================================
  Coverage   65.08%   65.08%
=======================================
  Files          57       57
  Lines        2870     2870
=======================================
  Hits         1868     1868
  Misses       1002     1002

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