Eslint/Prettier Support

I tried every way I could think of to try to get format_on_save to work with my existing eslint/prettier setup but I can't figure out how to make it work. I have a narwhal monorepo with an eslintrc.json file at the root and one in every project and have it setup to use prettier as the formatter.
In vscode and webstorm they pickup the nearest eslintrc and use those rules to format my file on save since I added these lines to my settings.json
"editor.codeActionsOnSave": {
  "source.fixAll.eslint": true
},

Here's an example of what that root eslintrc.json looks like:
{
  "root": true,
  "plugins": ["@nrwl/nx"],
  "overrides": [
    {
      "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
      "rules": {
        "@nrwl/nx/enforce-module-boundaries": [
          "error",
          {
            "enforceBuildableLibDependency": true,
            "allow": [],
            "depConstraints": [
              {
                "sourceTag": "*",
                "onlyDependOnLibsWithTags": ["*"]
              }
            ]
          }
        ]
      }
    },
    {
      "files": ["*.ts", "*.tsx"],
      "extends": [
        "plugin:@nrwl/nx/typescript",
        "plugin:prettier/recommended"
      ],
      "rules": {
        "prettier/prettier": [
          "warn",
          {
            "semi": false,
            "singleQuote": true,
            "tabs": true,
            "useTabs": true,
            "tabWidth": 1,
            "printWidth": 120,
            "endOfLine": "auto"
          }
        ]
      }
    },
    {
      "files": ["*.js", "*.jsx"],
      "extends": ["plugin:@nrwl/nx/javascript"],
      "rules": {}
    }
  ]
}

Can I use the current format_on_save setting to replicate how vscode or webstorm work in this regard? I'm probably just being dumb but would really appreciate some clarification or direction. Awesome work so far, and if I can get this figured out Zed will likely be my editor of choice for the foreseeable future.

@jamesdbruner have you seen https://zed.dev/docs/javascript? It showcases an example in which you customize format_on_save to use Prettier instead.

Yes, I've seen that yes I can get prettier to format my code by doing that. I don't think you should have to install prettier globally when I have it installed at the root of my repository and also I'd prefer to let eslint dictate how and when prettier runs I guess is my point. Is it possible to do something like this?
    "language_overrides": {
        "TypeScript": {
            "format_on_save": {
                "external": {
                    "command": "eslint",
                    "arguments": [
                        "--stdin-filepath",
                        "{buffer_path}",
                        "--fix"
                    ]
                }
            }
        }
    }

Thanks for the feedback, @jamesdbruner! And thanks @kevinsjoberg for providing support on this! ✨

I don't think you should have to install prettier globally when I have it installed at the root of my repository

This should already be possible, as we run the command from the root of the worktree that you opened. So you should be able to run things like npx or specify a command as a relative path node_modules/.bin/prettier. Does something like this work for you?
"language_overrides": {
    "JavaScript": {
        "format_on_save": {
            "external": {
                "command": "npx", // you could also specify "node_modules/.bin/prettier" here
                "arguments": [
                    "prettier",
                    "--stdin-filepath",
                    "{buffer_path}"
                ]
            }
        }
    }
}

also I'd prefer to let eslint dictate how and when prettier runs I guess is my point.

As for eslint, they support reading files from stdin but I am afraid they don't support reporting the fixed output on stdout. I saw they support reporting fixes as JSON to stdout, so you can probably write a simple script that invokes eslint. I was able to make it work using https://github.com/mantoni/eslint_d.js and the following configuration:
"language_overrides": {
    "JavaScript": {
        "format_on_save": {
            "external": {
                "command": "npx",
                "arguments": [
                    "eslint_d",
                    "--stdin",
                    "--stdin-filename",
                    "{buffer_path}",
                    "--fix-to-stdout"
                ]
            }
        }
    }
}

I understand this is suboptimal and we should probably support a more out-of-the-box experience, but would the above work for you?

@as-cii Thanks so much for getting back to me! I'll try this tonight and let you know how it goes. Honestly so long as it works, I don't really mind adding configuration and considering how npx works, I believe it'll use my local eslint before reaching out to the web to download it. I think that should be a good solution until something out of the box is released.

I tried this but the experience is not so great. Formatting takes some time since it has to boot up Node each time, and the cursor is moved the the start of the line each time after formatting.
I'm sure this will be solved with user plugins :)

Should we make another issue about inline ESlint error/warning support? Personally, I'm interested in a language-server-like experience for ESLint similar to the extension for VS Code.
On another note, @fnky is right about prettier being slow when used like this.

@morajabi Yeah +1, especially when considering how a lot of enterprise apps are built using Prettier and ESLint together. If these technologies work great out of the box, it will help with Zed's adoption.

Should we make another issue about inline ESlint error/warning support? Personally, I'm interested in a language-server-like experience for ESLint similar to the extension for VS Code.
On another note, @fnky is right about prettier being slow when used like this.

I have created feature request for that https://github.com/zed-industries/community/issues/1219

Hi everyone,
Thanks to all tips here how I've succeed to format properly my TSX files with both prettier and eslint rules.
Here my eslintrc:
{
    "extends": ["next/core-web-vitals"],
    "plugins": ["arca", "prettier"],
    "rules": {
        "prefer-const": "error",
        "prettier/prettier": "error",
        "arca/import-ordering": [
            "error",
            {
                "sections": [
                    "^~/",
                    "^\\.\\./",
                    "^\\./"
                ]
            }
        ],
        "arca/newline-after-import-section": [
            "error",
            {
                "sections": [
                    "^~/",
                    "^\\.\\./",
                    "^\\./"
                ]
            }
        ]
    }
}

Here my Zed settings:
{
  ...
  "language_overrides": {
        "TypeScript": {
            "format_on_save": {
                "external": {
                    "command": "node_modules/.bin/eslint_d",
                    "arguments": [
                        "--stdin",
                        "--fix",
                        "--fix-to-stdout",
                        "--stdin-filename",
                        "{buffer_path}"
                    ]
                }
            }
        },
        "TSX": {
            "format_on_save": {
                "external": {
                    "command": "node_modules/.bin/eslint_d",
                    "arguments": [
                        "--stdin",
                        "--fix",
                        "--fix-to-stdout",
                        "--stdin-filename",
                        "{buffer_path}"
                    ]
                }
            }
        }
    }
}

I'm using https://github.com/mantoni/eslint_d.js as recommended by @as-cii to be able to handle properly stdin and stdout and an eslint plugin for prettier to apply prettier formatting at the same time.

I'm trying out zed and a bit disappointed that my .eslintrc config isn't supported for diagnostics.
My specific use case is that I am developing a next.js project and often rely on eslint warnings to catch react hooks dependency errors. If I run npm run lint to trigger a lint, it correctly detects these errors, but zed does NOT show these warnings in the editor anywhere.
I can even configure the warnings to show up as errors in .eslintrc config and they still don't show up. It appears that .eslintrc is being ignored by zed.

ESLint is very on our radar, and should be tackled soon!

I believe eslint is already integrated into typescript-language-server, so in theory my use case should be covered by zed.dev as long as typescript-language-server supports this. I have submitted an issue there as well that may resolve this. I'll update here if anything comes from it https://github.com/typescript-language-server/typescript-language-server/issues/708

Wait — I was confused eslint Isnt integration into typescript language server at all

Wait — I was confused eslint Isnt integration into typescript language server at all

But is integrated here: https://github.com/microsoft/vscode-eslint/tree/main/server so your idea still makes sense

Looking forward for this integration. ATM this is my most anticipated feature and would be awesome when we can have the same interaction as in vscode 👍

this is really needed for any dev work involving web dev, eslint language server support is definitely needed

Is this really necessary?
The ability to explicitly fine-tune formatting is nice; however, a specific property name to target formatting, linting, etc. seems too granular here. Perhaps a generic approach can grant greater flexibility in this case?
As an aside

I have used the JetBrains Suite, Visual Studios Suite, Notepad/++, Brackets, All the Sublime Text editors, and currently use VSCode as my primary.
There's been quite a few others I've sampled in my career but never got into the "die hard" command line options; My input caters to editors with more interactable interfaces.

So far, I really have enjoyed using Zed and will continue to do so, which is why I'm here today!
Improve the shortcomings in other tools
I see potentially greater gains with an option to enable project-level inheritance, particularly over automatable tasks such as formatting, as a more desirable enhancement. Much of these mundane tasks are being automated with tools like Git Actions or libraries such as lint-staged or husky. This helps abstract non-prod items but it feels short-sighted and hacky.
Bridging the gaps
Implementing something that makes those tools obsolete feels like the right goal of an IDE. Taking that a step further, if an IDE can replace any need for devDependencies or peerDependencies in package managers purely by granting the ability to relatively configure these tools you would certainly make a sizable impact on workflows. Perhaps even fully configuring these tools inside of the local settings.json.
Although everything below contradicts what I just mentioned, I have a few ideas to contribute that may benefit users in the interim...

Root directory assignment
An option to designate root_dir to override/dictate highest level of inheritance... could help narrow the scope for users.

NOTE: perhaps automate reference assignment to a degree?

local "zedings"

for configs from .zed/settings.json
can likely reference ../node_modules/.bin or ../package.json

default "zedings"

for configs from ~/config/zed/settings.json
could reference "global scope" (e.g. /usr/local)

offer something similar to VSCode's Workspaces or a way to set the root and extend settings into other sub-directories (Something to accommodate monorepo with libraries, apps, & webapp code that may require different options.)

{
  "root_dir": "~/dev/web/%PROJECT_NAME%", // can reach `node_modules` and `package.json`
  "extends": "~/dev/lib/%PROJECT_NAME%" // can reach `.zed/settings.json` to use as default
}

A more generic way to augment on_save events
An option for on_save or additional options for common tasks...

NOTE: I am inept in "all things" pertaining to naming convention.

keyname: possibly... "run_on_save" | "on_save_hooks" | "on_save_event" | "on_save"
presets: perhaps...

namespace:

e.g. "prettier" | "eslint" | "rome" | "stylelint" | "axe-linter" | "markdownlint" | "sonarlint"

This list will forever evolve, which is why referencing project level dependencies would be ideal.
Too much effort goes into reapplying configs to IDE's, projects, random tools like github, etc.

The ability to define "namespace" to enable options for calling a collection of plugins that already have configurations setup at the project root level would be a game changer.
you could then synchronously call them with ["rome", "sonarlint", "...etc"] somewhere.

This can use one or more of the following to configure them :

<root_dir>/node_modules/.bin/%PACKAGE_NAME%
<root_dir>/package.json to find "dependencies" key-name
<root_dir>/%PACKAGE_NAME%/.*\\.(config\\.)?(ya?ml|[cm]?js(on)?|tsx?)
../*.{js,ts,cjs,jsx,mjs,tsx,yml,json,yaml}

reference:

"github" - .github/actions
"project" - package.json dependencies/scripts
"language" - file type extension specific defaults, basically automagically apply based on type of file.
"none" - or just null for generic default

overrides: an object with necessary entries to override each setting...

NOTE: I use Rome as an example as its various use-cases better demonstrate my intentions. The three examples below encapsulate a variety of input formats. All of which, in my eyes, add value.

"on_save": {
  "scope": "project", // local reference
  "plugin": "rome", // runs "node_modules/.bin/rome"
  "command": "check", // runs "rome lint"
  "before": {
    "command": "start", // "rome start"
  },
  "arguments": [
    "--apply", // references "<root_dir>/rome.json"?
    "app", // dir
    "--use-server" // requires "rome start" to execute before, with that in mind, offering the ability to setup callahead/back hooks somehow: `before` & `after` maybe?
  ],
  "after": {
    "command": "stop", // stops server
    "delay": 200
  }
},

Offer various formats to applying configs (and things like arguments)
I'd love to see an IDE with the ability to consume .ya?ml files as configs.
Also, I think for arguments there are a few formats that could grant greater flexibility. Common approaches I've seen in the wild:

array: ["--write .*\\.[jt]sx?", "--config-path='config/rome.json'"]
string: "--apply src app --configPath \"config/rome.json\""
object: { "applyUnsafe": "**/*.{js,ts}", "useServer": true }

Boolean args may feel odd in object-style.

NOTE: Regardless of format, ensure RegExp and/or Glob pattern matching works!

Should also, perhaps, allow multiple hooks to execute on_save
"on_save": [
  {
    "scope": "global", // maybe... "global" (e.g. npx) | "project" (e.g. node_modules/.bin/) | "workspace" (e.g. think "monorepo")
    "plugin": "rome", // runs "node_modules/.bin/rome ci"
    "command": "ci", // runs format & lint
    "arguments": {
      "ci": true,
      "configPath": "./config/rome.json", // separate config file
      "applyUnsafe": "**/*.{js,ts}" // glob
    }
  },
  {
    "scope": "project", // local reference
    "plugin": "rome", // runs "node_modules/.bin/rome"
    "command": "check", // runs "rome lint"
    "before": {
      "command": "start", // "rome start"
    },
    "arguments": [
      "--apply", // references "<root_dir>/rome.json"?
      "src", // dir
      "--use-server" // requires "rome start" to execute before, setup a prerquisite hook somehow?
    ],
    "after": {
      "command": "stop", // stops server
      "delay": 200
    }
  },
  {
    "scope": null, // references "generic rome default config" or a CDN?
    "plugin": "rome", // perhaps, with no scope, it attempts "rome" & "npx rome" & "node_modules/.bin/rome"?
    "command": "format", // runs "rome format"
    "arguments": "--write . --colors=off" // regex
  }
],

Closing notes

DISCLAIMER: I do not generally do this... In-fact, this may be my first comment on a public repo, ever.

If by chance, I have done anything that violates any rules or guidelines that I conveniently failed to look for, please leave a note. I will make the necessary adjustments or whatever is required to correct the error.
Lastly, I wrote this sporadically across my work day and only lightly proofed; there may be areas that cause confusion or are repetitive. Feel free to raise anything and I'll add clarity where able if desired.

Been following this thread for a while, and am using eslint_d with prettier integration on save. Wanted to share a little trick that someone might find useful:
Use a separate eslint config file for your format on save action, so you still get the benefit of useful errors and warnings while editing with integrated prettier on save!
Why / how / if you need details:
prettier advises to keep prettier and eslint separate, primarily because every prettier correction is interpreted as a warning / error while writing code, which can slow things down, and takes away a huge benefit of eslint: to see actual errors and warnings while you are writing. If every line is an error, they are meaningless.
To get around this, while still running eslint fix and prettier on save, use eslint_d, and create a separate .eslintrc.json files(for example, .eslintrc.json, and .eslintrc.withprettier.json).
.eslintrc is detected by zed, so should just have your lint rules you want to see in the editor.
.eslintrc.withprettier.json has all those rules, but also includes prettier:
  "plugins": [ ...otherplugins,     "prettier"   ],   "rules": {     "prettier/prettier": "warn",     "arrow-body-style": "off",     "prefer-arrow-callback": "off",     ...otherRules }
Then, your formatOnSave settings will call eslint_d using the withprettier config.
  "language_overrides": {     "TypeScript": {       "format_on_save": "on",       "formatter": {         "external": {           "command": "node_modules/.bin/eslint_d",           "arguments": [             "--config",             ".eslintrc.withprettier.json",             "--stdin",             "--stdin-filename",             "{buffer_path}",             "--fix-to-stdout"           ]         }       }     },     "JavaScript": {       "format_on_save": "on",       "formatter": {         "external": {           "command": "node_modules/.bin/eslint_d",           "arguments": [             "--config",             ".eslintrc.withprettier.json",             "--stdin",             "--stdin-filename",             "{buffer_path}",             "--fix-to-stdout"           ]         }       }     },     "TSX": {       "format_on_save": "on",       "formatter": {         "external": {           "command": "node_modules/.bin/eslint_d",           "arguments": [             "--config",             ".eslintrc.withprettier.json",             "--stdin",             "--stdin-filename",             "{buffer_path}",             "--fix-to-stdout"           ]         }       }     }   }
Just remember, when changing eslint rules, you need to make your changes to both configs. An improvement would probably be to use .eslintrc js files, then the .prettier version would import the standard, add the prettier stuff, and return a new config with prettier included. But for those of us not constantly updating our eslint rules, this works fine!
In practice, only real errors warnings while editing, fixing works fine, and onsave, thanks to eslint_d, linting / formatting is lightning quick!

Wow this is what holds me back from using Zed! @ebg1223 but, I'm a bit confused about what to do, can you please elaborate more on these steps? Let's say I have these settings on a repository (I think it's from work). I have a .eslintrc.js file (has some path configs for graphql schema that's why the .js extension) and a .prettierc.json.
.eslintrc.js
const path = require('path');

const graphqlConfig = {
  env: 'apollo',
  schemaJsonFilepath: path.resolve(__dirname, './src/graphql/schema.json'),
};

module.exports = {
  env: {
    browser: true,
    commonjs: true,
    es6: true,
    node: true,
    jest: true,
    'jest/globals': true,
  },
  extends: [
    ....
  ],
  parser: '@typescript-eslint/parser',
  plugins: [
    ....
    'no-relative-import-paths',
    'prettier', <----
    'react',
    'react-hooks',
    'testing-library',
    .....
  ],
  rules: {
    .....
    'prettier/prettier': ['error'], <----
    'react/destructuring-assignment': 0,
    'react/prop-types': "off",
    .....
  },
  globals: {
     .....
  },
  settings: {
    'import/resolver': {
      typescript: {},
      node: {
        paths: ['src'],
        extensions: ['.js', '.jsx', '.ts', '.tsx', '.d.ts', '.graphql'],
      },
    },
  },
};

.prettier.json
{
  "printWidth": 120,
  "singleQuote": true,
  "trailingComma": "all",
  "bracketSpacing": true
}

Here, prettier is inside the rules of eslint and I have installed eslint_d globally. Should I use a copy of that somewhere and use that file in Zed settings? (sorry if that doesn't make any sense :P)
zed settings
{
  "theme": "Gruvbox Light Soft",
  "show_copilot_suggestions": false,
  "base_keymap": "Atom",
  "buffer_font_size": 15,
  "buffer_font_family": "FuraMono Nerd Font",
  "format_on_save": "on",
  "lsp": {
    "typescript-language-server": {
      "initialization_options": {
        "preferences": {
          "includeInlayParameterNameHints": "all",
          "includeInlayParameterNameHintsWhenArgumentMatchesName": true,
          "includeInlayFunctionParameterTypeHints": true,
          "includeInlayVariableTypeHints": true,
          "includeInlayVariableTypeHintsWhenTypeMatchesName": false,
          "includeInlayPropertyDeclarationTypeHints": true,
          "includeInlayFunctionLikeReturnTypeHints": true,
          "includeInlayEnumMemberValueHints": true
        }
      }
    }
  },
  "language_overrides": {
    "TypeScript": {
      "format_on_save": "on",
      "formatter": {
        "external": {
          "command": "node_modules/.bin/eslint_d",
          "arguments": [
            "--config",
            ".eslintrc.js",
            "--stdin",
            "--stdin-filename",
            "{buffer_path}",
            "--fix-to-stdout"
          ]
        }
      }
    },
    "JavaScript": {
      "format_on_save": "on",
      "formatter": {
        "external": {
          "command": "node_modules/.bin/eslint_d",
          "arguments": [
            "--config",
            ".eslintrc.js",
            "--stdin",
            "--stdin-filename",
            "{buffer_path}",
            "--fix-to-stdout"
          ]
        }
      }
    },
    "TSX": {
      "format_on_save": "on",
      "formatter": {
        "external": {
          "command": "node_modules/.bin/eslint_d",
          "arguments": [
            "--config",
            ".eslintrc.js",
            "--stdin",
            "--stdin-filename",
            "{buffer_path}",
            "--fix-to-stdout"
          ]
        }
      }
    }
  },
}

Maybe a config like eslint.workingDirectories is great for using eslint in monorepo

Looks like this feature can be achieved with eslint and ~4-lines custom formatter.
Created the one for personal usage: eslint-formatter-zed.
Hope it works correctly and can help others.

Zed team can also use https://dprint.dev
It's written in Rust and does same thing as Prettier too.

Zed team can also use https://dprint.dev
It's written in Rust and does same thing as Prettier too.

Oooh, this is a neat suggestion - thanks for pointing it out @nikitavoloboev.

with this config zed anyway use spaces instead of tabs:
  "hard_tabs": true,
  "tab_size": 2,
  "language_overrides": {
    "JavaScript": {
      "hard_tabs": true,
      "tab_size": 2
    }
  }

native autofixing eslint on save is very desirable feaure.
other options like dprint are good for solo developers, but javascript industry standard is eslint and/or prettier.

For anyone experiencing performance issues with prettier when saving a file (takes a bit to format the file), you can use prettierd:
brew install fsouza/prettierd/prettierd

Make sure its command path is correct:
which prettierd

And set it:
{
  "formatter": {
    "external": {
      "command": "/opt/homebrew/bin/prettierd",
      "arguments": [
        "--stdin-filepath",
        "{buffer_path}"
      ]
    }
  }
}

I already use it on Sublime and does its job perfectly

For anyone experiencing performance issues with prettier when saving (takes a bit to format), you can use prettierd:
brew install fsouza/prettierd/prettierd

Make sure its command path is correct:
which prettierd

And set it:
{
  "formatter": {
    "external": {
      "command": "/opt/homebrew/bin/prettierd",
      "arguments": [
        "--stdin-filepath",
        "{buffer_path}"
      ]
    }
  }
}

I already use it on Sublime and does its job perfectly

For anyone experiencing performance issues with prettier (it's slow and takes more than expected to format), you can use prettierd:
brew install fsouza/prettierd/prettierd

Make sure its command path is correct:
which prettierd

And set it:
{
  "formatter": {
    "external": {
      "command": "/opt/homebrew/bin/prettierd",
      "arguments": [
        "--stdin-filepath",
        "{buffer_path}"
      ]
    }
  }
}

I already use it on Sublime and does its job great.

For anyone experiencing performance issues with prettier (it's slow and takes more than expected to format), you can use prettierd:
brew install fsouza/prettierd/prettierd

Make sure its command path is correct:
which prettierd

And set it:
{
  "formatter": {
    "external": {
      "command": "/opt/homebrew/bin/prettierd",
      "arguments": [
        "--stdin-filepath",
        "{buffer_path}"
      ]
    }
  }
}

I already use it on Sublime and it's great jsPrettier replacement.

@smastrom
Doesn't your setting
{
  "formatter": {
    "external": {
      "command": "/opt/homebrew/bin/prettierd",
      "arguments": [
        "--stdin-filepath",
        "{buffer_path}"
      ]
    }
  }
}

Should say that it should only apply the formatter on specific file types only? I assume with above setting it would run even on .rs files which doesn't make sense.

I opened up Zed again for the first time in a while and was excited to see the huge improvements and was ready to switch to it for my day to day work until I realized this still isn't resolved. None of the solutions in this thread work for me. Could we please get some official documentation or a timeline for a more complete solution? My setup is a very common one using eslint with the prettier plugin. In 2023 I can't find myself working without a formatter in my workflow :(

Saw Zed on X, if not fromatter it's a no. Can't collab with the team.

For those who'd like to test things out, the current Zed Preview comes with Prettier support.

@BasixKOR do you or anyone from the team know how zed preview determines what files to format with prettier? i removed my existing "formatter" config from settings.json, and one project i have that has a .prettierrc file had prettier format on save working out-of-the-box, while another project i have isn’t doing any format on save. it does have prettier in its package.json and the prettier config in package.json as well, so i tried extracting the config into a separate .prettierrc file and restarted the editor and still no luck.
my best guess is that the issue stems from the second project being a yarn PnP project (v3.6.3), and so not having a node_modules folder. maybe zed is expecting to find the executable for prettier there? maybe i should create a new issue specifically for prettier support on yarn > v2 (and pnpm) projects?

For those who'd like to test things out, the current Zed Preview comes with Prettier support.

it's in stable now, tested today, seems like it ignores my Prettier config, at least the tab indent setting. ESLint support is still broken because it does not support monorepos properly.

cc: @SomeoneToIgnore ^

@Stanzilla , you can do debug: open language server logs and select the prettier to see what exactly it uses (including the RPC requests) to debug it better.
In general, it's either the project's prettier (from project's node_modules) that's being used, or the "default" one if no prettier was found on the project.
In the former case, it tries to search the config in the project's files, otherwise it composes its own config from Zed's settings (including the tab size) and from prettier field of Zed's config.
Looks like you're hitting the latter case, but I have zero clues what you project is and where your config is.

@Stanzilla , you can do debug: open language server logs and select the prettier to see what exactly it uses (including the RPC requests) to debug it better.
In general, it's either the project's prettier (from project's node_modules) that's being used, or the "default" one if no prettier was found on the project. In the former case, it tries to search the config in the project's files, otherwise it composes its own config from Zed's settings (including the tab size) and from prettier field of Zed's config.
Looks like you're hitting the latter case, but I have zero clues what you project is and where your config is.

there is no prettier in there for me. I'm on 0.109.2

Which means it did not start for some reason, editor logs may help with that.
Alas, I cannot help you with anything beyond this point without a project and a reproduction steps.

Which means it did not start for some reason, editor logs may help with that.
Alas, I cannot help you with anything beyond this point without a project and reproduction steps.

i used https://github.com/WeakAuras/WeakAuras-Companion as a test, which files does it check for to know if it has to start?

Seems to work for me and picking the correct config (judging by the tab size at least).
I've git clone'd the project, did pnpm install, opened a file on the screenshot, tabbed it and reformatted.
So, again, curious to know your reproduction steps to break it. Any particular file it does not work with?

which files does it check for to know if it has to start?

There are numerous checks, which start with the "web" files that have the languages applicable for prettier: JavaScript, TypeScript, Json, etc.
Then, it walks up from every file being formatted up until the project's root and looks for node_modules/package.json and tries to locate prettier (there's more checks and exclusions, the logic pretty much repeats https://github.com/prettier/prettier-vscode).

Seems to work for me and picking the correct config (judging by the tab size at least). I've git clone'd the project, did `pnpm install`, opened a file on the screenshot, tabbed it and reformatted. So, again, curious to know your reproduction steps to break it. Any particular file it does not work with?

which files does it check for to know if it has to start?

There are numerous checks, which start with the "web" files that have the languages applicable for prettier: JavaScript, TypeScript, Json, etc. Then, it walks up from every file being formatted up until the project's root and looks for node_modules/package.json and tries to locate prettier (there's more checks and exclusions, the logic pretty much repeats prettier/prettier-vscode). The config lookup is done by prettier itself, pretty much in the same, ascend-from-the-file-to-root, manner.

Interesting, I did the same steps minus the cloning and the install because I already had it. Used the same ts file as in your screenshot, changed formatting, saved it, it was formatted but no prettier in the logs.
then tried a .vue file, hit save and it was formatted as well, with the wrong spacing here (4 instead of 2 spaces), no prettier in the logs and vue server logs being empty and eslint server logs only showing that it was loaded

Could it be that you have custom formatter settings?
// How to perform a buffer format. This setting can take two values:
//
// 1. Format code using the current language server:
//     "formatter": "language_server"
// 2. Format code using an external command:
//     "formatter": {
//       "external": {
//         "command": "prettier",
//         "arguments": ["--stdin-filepath", "{buffer_path}"]
//       }
//     }
// 3. Format code using Zed's Prettier integration:
//     "formatter": "prettier"
// 4. Default. Format files using Zed's Prettier integration (if applicable),
//    or falling back to formatting via language server:
//     "formatter": "auto"
"formatter": "auto",

To use prettier, either auto (the new default) or prettier values need to be used for the formatter key.
If not, time to look at the editor logs: zed: open log action could help with that, or straight opening ~/Library/Logs/Zed/Zed.log will do.

My settings (I don't think I ever touched the formatter section):
// Zed settings
//
// For information on how to configure Zed, see the Zed
// documentation: https://zed.dev/docs/configuring-zed
//
// To see all of Zed's default settings without changing your
// custom settings, run the `open default settings` command
// from the command palette or from `Zed` application menu.
{
  "base_keymap": "VSCode",
  "theme": "Ayu Dark",
  "buffer_font_size": 15,
  "soft_wrap": "editor_width",
  "cursor_blink": false,
  "project_panel": {
    // Default width of the project panel.
    "default_width": 240,
    // Where to dock project panel. Can be 'left' or 'right'.
    "dock": "left",
    // Whether to show file icons in the project panel.
    "file_icons": true,
    // Whether to show folder icons or chevrons for directories in the project panel.
    "folder_icons": true,
    // Whether to show the git status in the project panel.
    "git_status": true,
    // Amount of indentation for nested items.
    "indent_size": 8
  },
  "collaboration_panel": {
    // Whether to show the collaboration panel button in the status bar.
    "button": false,
    // Where to dock channels panel. Can be 'left' or 'right'.
    "dock": "left",
    // Default width of the channels panel.
    "default_width": 240
  },
  "assistant": {
    // Whether to show the assistant panel button in the status bar.
    "button": false,
    // Where to dock the assistant. Can be 'left', 'right' or 'bottom'.
    "dock": "right",
    // Default width when the assistant is docked to the left or right.
    "default_width": 640,
    // Default height when the assistant is docked to the bottom.
    "default_height": 320
  },
  // Whether the screen sharing icon is shown in the os status bar.
  "show_call_status_icon": true,
  // Whether to use language servers to provide code intelligence.
  "enable_language_server": true,
  // When to automatically save edited buffers. This setting can
  // take four values.
  //
  // 1. Never automatically save:
  //     "autosave": "off",
  // 2. Save when changing focus away from the Zed window:
  //     "autosave": "on_window_change",
  // 3. Save when changing focus away from a specific buffer:
  //     "autosave": "on_focus_change",
  // 4. Save when idle for a certain amount of time:
  //     "autosave": { "after_delay": {"milliseconds": 500} },
  "autosave": "off",
  // Settings related to the editor's tabs
  "tabs": {
    // Show git status colors in the editor tabs.
    "git_status": false,
    // Position of the close button on the editor tabs.
    "close_position": "right"
  },
  // Whether or not to remove any trailing whitespace from lines of a buffer
  // before saving it.
  "remove_trailing_whitespace_on_save": true,
  // Whether to start a new line with a comment when a previous line is a comment as well.
  "extend_comment_on_newline": true,
  // Whether or not to ensure there's a single newline at the end of a buffer
  // when saving it.
  "ensure_final_newline_on_save": true,
  // Whether or not to perform a buffer format before saving
  "format_on_save": "on",
  // How to perform a buffer format. This setting can take two values:
  //
  // 1. Format code using the current language server:
  //     "formatter": "language_server"
  // 2. Format code using an external command:
  //     "formatter": {
  //       "external": {
  //         "command": "prettier",
  //         "arguments": ["--stdin-filepath", "{buffer_path}"]
  //       }
  //     }
  "formatter": "language_server",
  // How to soft-wrap long lines of text. This setting can take
  // three values:
  //
  // 1. Do not soft wrap.
  //      "soft_wrap": "none",
  // 2. Soft wrap lines that overflow the editor:
  //      "soft_wrap": "editor_width",
  // 3. Soft wrap lines at the preferred line length
  //      "soft_wrap": "preferred_line_length",
  // The column at which to soft-wrap lines, for buffers where soft-wrap
  // is enabled.
  "preferred_line_length": 80,
  // Whether to indent lines using tab characters, as opposed to multiple
  // spaces.
  "hard_tabs": false,
  // How many columns a tab should occupy.
  "tab_size": 4,
  // Control what info is collected by Zed.
  "telemetry": {
    // Send debug info like crash reports.
    "diagnostics": true,
    // Send anonymized usage data like what languages you're using Zed with.
    "metrics": true
  },
  // Automatically update Zed
  "auto_update": true,
  // Git gutter behavior configuration.
  "git": {
    // Control whether the git gutter is shown. May take 2 values:
    // 1. Show the gutter
    //      "git_gutter": "tracked_files"
    // 2. Hide the gutter
    //      "git_gutter": "hide"
    "git_gutter": "tracked_files"
  },
  "copilot": {
    // The set of glob patterns for which copilot should be disabled
    // in any matching file.
    "disabled_globs": [
      ".env"
    ]
  },
  // Settings specific to journaling
  "journal": {
    // The path of the directory where journal entries are stored
    "path": "~",
    // What format to display the hours in
    // May take 2 values:
    // 1. hour12
    // 2. hour24
    "hour_format": "hour12"
  },
  // Settings specific to the terminal
  "terminal": {
    // What shell to use when opening a terminal. May take 3 values:
    // 1. Use the system's default terminal configuration in /etc/passwd
    //      "shell": "system"
    // 2. A program:
    //      "shell": {
    //        "program": "sh"
    //      }
    // 3. A program with arguments:
    //     "shell": {
    //         "with_arguments": {
    //           "program": "/bin/bash",
    //           "arguments": ["--login"]
    //         }
    //     }
    "shell": "system",
    // Where to dock terminals panel. Can be 'left', 'right', 'bottom'.
    "dock": "bottom",
    // Default width when the terminal is docked to the left or right.
    "default_width": 640,
    // Default height when the terminal is docked to the bottom.
    "default_height": 320,
    // What working directory to use when launching the terminal.
    // May take 4 values:
    // 1. Use the current file's project directory.  Will Fallback to the
    //    first project directory strategy if unsuccessful
    //      "working_directory": "current_project_directory"
    // 2. Use the first project in this workspace's directory
    //      "working_directory": "first_project_directory"
    // 3. Always use this platform's home directory (if we can find it)
    //     "working_directory": "always_home"
    // 4. Always use a specific directory. This value will be shell expanded.
    //    If this path is not a valid directory the terminal will default to
    //    this platform's home directory  (if we can find it)
    //      "working_directory": {
    //        "always": {
    //          "directory": "~/zed/projects/"
    //        }
    //      }
    //
    //
    "working_directory": "current_project_directory",
    // Set the cursor blinking behavior in the terminal.
    // May take 4 values:
    //  1. Never blink the cursor, ignoring the terminal mode
    //         "blinking": "off",
    //  2. Default the cursor blink to off, but allow the terminal to
    //     set blinking
    //         "blinking": "terminal_controlled",
    //  3. Always blink the cursor, ignoring the terminal mode
    //         "blinking": "on",
    "blinking": "terminal_controlled",
    // Set whether Alternate Scroll mode (code: ?1007) is active by default.
    // Alternate Scroll mode converts mouse scroll events into up / down key
    // presses when in the alternate screen (e.g. when running applications
    // like vim or  less). The terminal can still set and unset this mode.
    // May take 2 values:
    //  1. Default alternate scroll mode to on
    //         "alternate_scroll": "on",
    //  2. Default alternate scroll mode to off
    //         "alternate_scroll": "off",
    "alternate_scroll": "off",
    // Set whether the option key behaves as the meta key.
    // May take 2 values:
    //  1. Rely on default platform handling of option key, on macOS
    //     this means generating certain unicode characters
    //         "option_to_meta": false,
    //  2. Make the option keys behave as a 'meta' key, e.g. for emacs
    //         "option_to_meta": true,
    "option_as_meta": false,
    // Whether or not selecting text in the terminal will automatically
    // copy to the system clipboard.
    "copy_on_select": false,
    // Any key-value pairs added to this list will be added to the terminal's
    // environment. Use `:` to separate multiple values.
    "env": {
      // "KEY": "value1:value2"
    },
    // Set the terminal's line height.
    // May take 3 values:
    //  1. Use a line height that's comfortable for reading, 1.618
    //         "line_height": "comfortable"
    //  2. Use a standard line height, 1.3. This option is useful for TUIs,
    //      particularly if they use box characters
    //         "line_height": "standard",
    //  3.  If this option is not included,
    // the terminal will default to matching the buffer's font size.
    // "font_size": "15"
    // Set the terminal's font family. If this option is not included,
    // the terminal will default to matching the buffer's font family.
    // "font_family": "Zed Mono"
  },
  // Difference settings for semantic_index
  "semantic_index": {
    "enabled": false,
    "reindexing_delay_seconds": 600
  },
  // Different settings for specific languages.
  "languages": {
    "Plain Text": {
      "soft_wrap": "preferred_line_length"
    },
    "Elixir": {
      "tab_size": 2
    },
    "Go": {
      "tab_size": 4,
      "hard_tabs": true
    },
    "Markdown": {
      "soft_wrap": "preferred_line_length"
    },
    "JavaScript": {
      "tab_size": 2
    },
    "TypeScript": {
      "tab_size": 2
    },
    "TSX": {
      "tab_size": 2
    },
    "YAML": {
      "tab_size": 2
    },
    "JSON": {
      "tab_size": 2
    }
  },
  // LSP Specific settings.
  "lsp": {
    // Specify the LSP name as a key here.
    // "rust-analyzer": {
    //     //These initialization options are merged into Zed's defaults
    //     "initialization_options": {
    //         "checkOnSave": {
    //             "command": "clippy"
    //         }
    //     }
    // }
  }
}

"formatter": "language_server",

Either touched or not, this is the culprit.
I suggest using "auto" instead of the "language_server" value.

logs:
2023-10-26T13:42:53 [INFO] Node runtime install_if_needed
2023-10-26T13:42:53 [INFO] Fetching default prettier and plugins: [("prettier", "3.0.3")]
2023-10-26T13:42:53 [INFO] Node runtime install_if_needed
2023-10-26T13:42:53 [ERROR] Failed to create prettier instance for buffer during autoformatting: prettier start: no prettier server package found at "/Users/stan/Library/Application Support/Zed/prettier/prettier_server.js"
2023-10-26T13:42:55 [INFO] 12 unhandled notification eslint/status:
{
  "uri": "file:///Users/stan/projects/personal/WeakAuras-Companion/src/libs/build-account-list.ts",
  "state": 1
}
2023-10-26T13:42:56 [ERROR] Failed to create prettier instance for buffer during autoformatting: prettier start: no prettier server package found at "/Users/stan/Library/Application Support/Zed/prettier/prettier_server.js"
2023-10-26T13:42:56 [INFO] 10 unhandled notification eslint/status:
{
  "uri": "file:///Users/stan/projects/personal/WeakAuras-Companion/src/libs/build-account-list.ts",
  "state": 1
}

"formatter": "language_server",

Either touched or not, this is the culprit. I suggest using "auto" instead of the "language_server" value.

Yup, looks like it, had to restart Zed for it to take effect but now it shows up in the lsp logs! Thanks!

Great, let's close this as done then, thank you for testing it on another project.
Please open new issues for future related bugs.

IIRC, it should fall back to language server formatting with that "formatter": "auto" setting.

Ok I figured it out based on this from the last few days. Here is my working config for eslint with prettier plugin:
{
  "theme": "Andromeda",
  "buffer_font_size": 15,
  "vim_mode": true,
  "language_overrides": {
    "TSX": {
      "formatter": "auto"
    }
  },
  "TypeScript": {
    "formatter": "auto"
  },
  "lsp": {
    "typescript-language-server": {
      "initialization_options": {
        "checkOnSave": {
          "command": "eslint_d",
          "arguments": [
            "--stdin",
            "--stdin-filename",
            "{buffer_path}",
            "--fix-to-stdout"
          ]
        }
      }
    }
  }
}

I know you're in the beta phase but I personally wouldn't have considered this done until it was documented but thanks! I know the js ecosystem is an incredibly annoying one to support because there are so many different tools/ways of doing something this is pretty standard and it would have been great to see an example for a pretty standard workflow like this in the docs

@ijsnow , I know that you've edited your comment, but I would nonetheless want to address that part separately: we have a https://github.com/zed-industries/docs/ repository, fully open for external contributions and welcoming PRs.
Our main codebase is written in Rust, and knowing how to configure every web project is hard: I am not a proficient enough to make extensive docs on the topic, but at least I am trying to elaborate the general principles in default settings descriptions.
At this point, not sure how to make things better but welcoming any input on the topic in discussions, PRs or issues.

This is my settings - The prettier is not working neither the language-server formatting, setting it to the language-server- formatting works though. Setting it to prettier or auto doesn't work when there is no prettier package or config in my project. I want to use Zed prettier integration to work regardless if the project config or prettier is installed or not.
"base_keymap": "VSCode",   "buffer_font_family": "Liga MonacoB",   "theme": "Andromeda",   "buffer_font_size": 15,   "autosave": "on_window_change",   "format_on_save": "on",   "confirm_quit": true,   "formatter": "auto",   "inlay_hints": {     // Global switch to toggle hints on and off, switched off by default.     "enabled": true,     // Toggle certain types of hints on and off, all switched on by default.     "show_type_hints": true,     "show_parameter_hints": true,     // Corresponds to null/None LSP hint type value.     "show_other_hints": true   } }

"formatter": "auto" looks legit and the same works for a random project without prettier for me, so I cannot help you with just this information.
What is the project you're using, can I clone and test on it? Any sequence of actions (files opened, actions made) are interesting too.
Also,

doesn't work when there is no prettier package or config in my project

Does it fail or rather not working silently?
What do Zed logs and LSP logs show in relation to prettier? (see above comments on how to access either).

The way prettier-less projects should work is

after any "web" file opened in the project, Zed checks and, if not yet present, installs prettier-related files into ~/Library/Application\ Support/Zed/prettier/ (there are issues with language server installations for some users, could be the culprit)
tries to locate closest prettier in the project for that file, ascending up, and fails
bails to default prettier and starts it up (there could be a slight delay on the first formatting attempt due to that)
repeats the same steps as the custom project prettier formatting does

So, there's not much to fail on.
One extra possible step to fail on: if the project does declares prettier dependency in package.json but had not installed it, Zed will fail since it does not make assumptions on users' tools needed to install the packages and does not do the installation.
But this all is useless guessing without a proper reproduction example.

I am still entirely unclear on how I can get nextJS warnings to show up with estlint. Prettier can format my file, but without the actual error checking I'm kind of at a loss.

Ok I figured it out based on this from the last few days. Here is my working config for eslint with prettier plugin:
{
  "theme": "Andromeda",
  "buffer_font_size": 15,
  "vim_mode": true,
  "lsp": {
    "typescript-language-server": {
      "initialization_options": {
        "checkOnSave": {
          "command": "eslint_d",
          "arguments": [
            "--stdin",
            "--stdin-filename",
            "{buffer_path}",
            "--fix-to-stdout"
          ]
        }
      }
    }
  }
}

ty for sharing! is this your exact settings.json? I can't get it to auto-fix in a nextjs project. eslint is working tho.. i just have to manually do npx eslint . --fix in order for the file to auto format.
Is your formatter set to auto?

@SomeoneToIgnore i have a project where prettier still doesn’t work, even though it’s in the devDependencies and configured in package.json via the "prettier": {…} key. the repo is open source, so hopefully it can serve as a reproducible instance: https://github.com/acusti/uikit/
i put "formatter": "auto" in my zed settings.json. here are the logs after opening zed fresh, opening a .tsx file (packages/date-picker/src/MonthCalendar.tsx), adjusting indentation, and hitting save:
2023-11-05T17:44:47 [INFO] Opening main db
2023-11-05T17:44:47 [INFO] starting language server "typescript-language-server", path: "/Users/andrew/Projects/uikit", id: 1
2023-11-05T17:44:47 [INFO] starting language server "eslint", path: "/Users/andrew/Projects/uikit", id: 2
2023-11-05T17:44:47 [INFO] starting language server "tailwindcss-language-server", path: "/Users/andrew/Projects/uikit", id: 3
2023-11-05T17:44:47 [INFO] Node runtime install_if_needed
2023-11-05T17:44:47 [INFO] Node runtime install_if_needed
2023-11-05T17:44:47 [INFO] Node runtime install_if_needed
2023-11-05T17:44:47 [INFO] Node runtime install_if_needed
2023-11-05T17:44:47 [INFO] Node runtime install_if_needed
2023-11-05T17:44:48 [INFO] 2 unhandled notification window/logMessage:
{
  "type": 3,
  "message": "ESLint server running in node v18.15.0"
}
2023-11-05T17:44:48 [INFO] 2 unhandled notification eslint/noLibrary:
{
  "source": {
    "uri": "file:///Users/andrew/Projects/uikit/packages/date-picker/src/MonthCalendar.tsx"
  }
}
2023-11-05T17:44:48 [INFO] Fetching default prettier and plugins: [("prettier-plugin-tailwindcss", "0.5.6"), ("prettier", "3.0.3")]
2023-11-05T17:44:48 [INFO] Node runtime install_if_needed
2023-11-05T17:44:48 [INFO] Node runtime install_if_needed
2023-11-05T17:44:48 [INFO] Node runtime install_if_needed
2023-11-05T17:44:48 [INFO] 3 unhandled notification window/logMessage:
{
  "type": 4,
  "message": "[Global] Creating projects: []"
}
2023-11-05T17:44:49 [INFO] Found prettier in "/Users/andrew/Projects/uikit", starting.
2023-11-05T17:44:49 [INFO] Node runtime install_if_needed
2023-11-05T17:44:49 [INFO] Node runtime install_if_needed
2023-11-05T17:44:49 [ERROR] invalid LSP message header ""
2023-11-05T17:44:49 [ERROR] server shut down
2023-11-05T17:44:49 [ERROR] Failed to create prettier instance for buffer during autoformatting: prettier start: prettier server initialization: oneshot canceled
2023-11-05T17:44:49 [INFO] 1 unhandled notification window/logMessage:
{
  "type": 2,
  "message": "[lspserver] Typescript specified through user setting ignored due to invalid path \"/Users/andrew/Projects/uikit/lib/tsserver.js\""
}
2023-11-05T17:44:49 [INFO] 1 unhandled notification window/logMessage:
{
  "type": 3,
  "message": "Using Typescript version (bundled) 5.0.4 from path \"/Users/andrew/Library/Application Support/Zed/languages/typescript-language-server/node_modules/typescript/lib/tsserver.js\""
}
2023-11-05T17:44:49 [INFO] 1 unhandled notification $/typescriptVersion:
{
  "version": "5.0.4",
  "source": "bundled"
}

Thank you, it's a yarn project and modern versions do not populate node_modules at all, which we currently rely on when searching for prettier, instead, there's only .yarn/cache/prettier-npm-2.8.0-746e3df53e-72004ce0cc.zip artifacts in the project.
The problem is, we do not use a real node runtime when searching for prettier and neither we do invoke it through project's set-up, so that needs more work to understand how to get it running..

This issue is closed, but does someone figured out how to implement autofix on save for eslint without 3rd party packages, except eslint itself?


Failed to build gem native extension

Hello,
I have followed the installation steps and I am stuck on the following command:
git push heroku master
when I execute it, I get the following error:
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rack
remote: -----> Using Ruby version: ruby-2.3.4
remote: -----> Installing dependencies using bundler 1.15.2
remote:        Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
remote:        Fetching gem metadata from https://rubygems.org/...........
remote:        Fetching version metadata from https://rubygems.org/.
remote:        Using bundler 1.15.2
remote:        Fetching json 1.8.1
remote:        Fetching multi_xml 0.5.5
remote:        Fetching rack 1.5.2
remote:        Installing multi_xml 0.5.5
remote:        Installing rack 1.5.2
remote:        Installing json 1.8.1 with native extensions
remote:        Fetching tilt 1.4.1
remote:        Installing tilt 1.4.1
remote:        Fetching rack-protection 1.5.3
remote:        Installing rack-protection 1.5.3
remote:        Fetching sinatra 1.4.5
remote:        Installing sinatra 1.4.5
remote:        Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
remote:        current directory:
remote:        /tmp/build_zzz/vendor/bundle/ruby/2.3.0/gems/json-1.8.1/ext/json/ext/generator
remote:        /tmp/build_zzz/vendor/ruby-2.3.4/bin/ruby -r
remote:        ./siteconf20171102-197-1uh015g.rb extconf.rb
[...]
emote:
remote:        make failed, exit code 2
remote:
remote:        Gem files will remain installed in
remote:        /tmp/build_zzz/vendor/bundle/ruby/2.3.0/gems/json-1.8.1
remote:        for inspection.
remote:        Results logged to
remote:        /tmp/build_zzz/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/json-1.8.1/gem_make.out
remote:
remote:        An error occurred while installing json (1.8.1), and Bundler cannot continue.
remote:        Make sure that `gem install json -v '1.8.1'` succeeds before bundling.
remote:
remote:        In Gemfile:
remote:        httparty was resolved to 0.13.3, which depends on
remote:        json
remote:  !
remote:  !     Failed to install gems via Bundler.
remote:  !
remote:  !     Push rejected, failed to compile Ruby app.
remote:
remote:  !     Push failed

am I doing something wrong? I tried installing rvm, ruby2.0, json 1.8.1, ... without luck.
on my computer, running "bundle install" works fine:
b```
undle install
Using bundler 1.16.0
Using json 1.8.1
Using multi_xml 0.5.5
Using httparty 0.13.3
Using rack 1.5.2
Using rack-protection 1.5.3
Using tilt 1.4.1
Using sinatra 1.4.5
Bundle complete! 2 Gemfile dependencies, 8 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into ./vendor/bundle

This can be solved by using the deprecated cedar-14 stack on heroku, and configuring heroku to use ruby 1.9.3.
The better solution would probably to fork this gem and make it work on newer ruby versions..


Success or fail with latest LG software update versions

Today my 55UH6159.AEU announced update from 05.60.15 to 05.65.10.
I did not find a changelog or anything on the web.
Was or is somebody brave enough to test it with webos-homebrew-channel?
Does the exploit still work?

Does it fix the ssl certificate problem in the browser?

My LG 75UQ91006LA updated to the latest software yesterday version 03.11.65, however the ad free YouTube no longer works, and the home brew channel is gone, I tried to rootmytv again, but to no avail, the home brew icon won’t even appear after reboot.

05.70.30 is now announced on my TV
Could not find a changelog.

Never update your firmware, if you want to stay rooted. This has been stated on many occasions.


Feature 92 client syntax

Summary of Changes:

Updated pyproject.toml with new poetry property:

 [tool.poetry.scripts]
 hashstore = "hashstore.hashstoreclient:main"

Updated README.md with new instructions on how to use the hashstore client

The update to the client has been tested locally and on knbvm, and appears to be working in good order.


Fix a flaky test by waiting until the Okio watchdog is caught up.

We had tests that flake because they expected the watchdog to have
completed closing a connection, but we weren't blocking until that
work was done.
Closes https://github.com/square/okhttp/issues/1328

LGTM


[stdlib] Fix String.hasPrefix and String.hasSuffix when self and arg are in NFC form

This commit resolves #67427. When the string and argument are both in NFC form, besides performing the prefix/suffix check, we also have to perform a grapheme boundary check to make sure that the prefix/suffix are not in between an extended grapheme cluster.
In addition, it also seems to pass a test that was previously marked as failing.

@LucianoPAlmeida Can you also add @natecook1000 as a reviewer too?

@swift-ci Please smoke test

What would be the next steps here?

@swift-ci Please smoke test

Thanks for the fix, @nishithshah2211!

Thanks for the guidance and merge! @natecook1000


prevent compiler test to make exe out of DDS

To make it possible to build the DDS via cmake's ExternalProject_Add as static library, it is necessary to run the compiler test only as a static library.  This is possible via the CMAKE_TRY_COMPILE_TARGET_TYPE option.
This customisation allows you to add that option to the project.

Build status:

Linux
Windows

Build status:

Linux
Windows


Can't create issues on Jira issue tracker

The README file says issues should be created on Jira, but it isn't possible for the general public to create issues there at the moment.
As a workaround, I think it's acceptable to create issues here until this is fixed.

Thanks for raising this @davux
I've checked and the project is open for anyone to create issues: https://pegasys1.atlassian.net/projects/ES/issues - what was the particular error you got?
Having said that, we are investigating the best tools to use to make it as easy as possible, so feel free to use Github issues if that's more straightforward.

I just saw the + icon in the toolbar on the left. I must have missed it before, sorry.


Overflow behavior for response tab items is not working properly

Describe the bug
When resizing the sidebar so that it covers the maximum possible space, overflow behavior for pivot items is not triggered making the pivot tabs wrap
To Reproduce
Steps to reproduce the behavior:

Resize the browser to 1440x1361
Drag the sidebar resize handler to fit the maximum possible space
Notice that the response tab items wrap

Expected behavior
The response tab items should overflow into an ellipsis
Screenshots

Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

@Onokaev  is this still an issue?


Don't print the results automatically

Don't print out the results unless the CLI is being used.

I'm going to keep this in the script for now


Please add a support of ReactOS

I want this browser to be able to run on ReactOS. Is it possible to port it there?

It is an issue with ReactOS itself. Please make a ticket on jira.reactos.org.

Correct. As soon as Supermium is running fine on Windows XPSP3 / Windows 2003 Server SP2, also on unicore PCs, there is nothing left to do for the Supermium author. Every problem that will remain with ReactOS after that, is to be handled by the ReactOS developers. Please close this ticket, as we do have other tickets already covering the remaining single-core-issues for Supermium. We don't need more duplicates for that.

Right now, it is getting the same error being outputted in its  debug.log which is mentioned in https://github.com/win32ss/supermium/issues/323. Maybe it will work under ReactOS once a new release has been made (since he already fixed it in the code).

Correct. As soon as Supermium is running fine on Windows XPSP3 / Windows 2003 Server SP2, also on unicore PCs, there is nothing left to do for the Supermium author. Every problem that will remain with ReactOS after that, is to be handled by the ReactOS developers. Please close this ticket, as we do have other tickets already covering the remaining single-core-issues for Supermium. We don't need more duplicates for that.

No, it does not. At least when using the installer of the latest release on latest XP SP3 with updates. See screenshot.
Same behaviour is on 2k3 and on ReactOS.

In the log, I see the error about Windows version is too old. (ERROR_OLD_WIN_VERSION error code). This occurs both in XP/2k3 and in ReactOS, so no ROS bug here. The only difference is, in ROS it does not show an error about missing export, but in XP it does.


Provisioned Concurrence is not Scaling down/in when there is no traffic/utililzation

I've noticed that my provisioned concurrency is scaling up properly in production but it never scales back down at night when there are no users on our site. It seems this is because the alarm is in Insufficient Data state and by default, the provisioned concurrency is set to Treat missing data as missing, so nothing happens.
I've recorded this Loom video to help explain it: https://www.loom.com/share/6030e49b9ea542d2888bf54f54d5e1f7
I also previously opened this stack overflow issue with a lot of details, before I figured out that it's the configuration being output by this plugin (or perhaps the lack of configuration being output), that's the issue.
Here's the place where this configuration needs to be changed:

Oh. I thought this plugin was creating the alarm. I guess I need to go read the source code. What is this plugin creating?
Also, if I was to roll my own, is there an example somewhere of how to reference the auto scaling resources?

@rsshilli what did you end up doing for this? We have a similar problem.

Well, I'm glad you asked @pavan-tw. I just realized that we never really fixed this. It's still a ticket in our backlog.

Hi @rsshilli - were you able to scale down the provisioned concurrency? if so, how?

@Kunalkatdare We never really solved this problem.


Allow async has_permission methods for permission_classes on fields

I am trying to use sqlalchemy async ORM everywhere but there is not currently support for async has_permission methods on permission classes. As the actual resolver can be async, I can simply check/raise at the beginning of each resolver, but it is a bit clumsy to do something in the resolver when there is a mechanism there for it. A brief look makes me think this will quite likely be a lot of work, and with a simple workaround, there may not be a pressing need for it.

Just spend some hours on it, got a working solution, I'll clean it up and open a PR soonish :)

@DoctorJohn How is that PR going? I ve been testing out on how to use my async authentication and got something out too. Do you mind me pushing my PR? It's only 4LOC and I don't mind closing it if there is a better solution. I would like to be able to use async there. Thanks

Thanks for sharing your approche! I'm suprised it worked for you since that's the first thing I tried and I had some issues with it. Namely python complaining about already running event loops when exeuting the schema asynchronous.
I will draft a PR to make it's progress more transparent. At it's current state it's already working, but I discovered some flaws in the code around it which I want to fix in one go. This should hopefully make it easier to add more async features like #1115 in the future :)
That being said, I'm really busy at the moment. So if I take too long feel free to create an alternative PR! :)


Minimify dist version

53.00% compression,
saving 1.3 kb

The ngCordova module name has changed from ngCordovaNativeStorage to ngCordova.plugins.nativeStorage. So I will make a minified version in the dist folder ;)
See commit f52afc465b05061071f04d507a31b637dfc6529f


Incorrect naming convention for model files

https://github.com/gracecox/MagPySV/blob/74293261ba9ea2ba479f408372490466d8bb7f41/magpysv/model_prediction.py#L133
Elsewhere in MagPySV we now expect ob.upper() as the file naming convention when reading these files.

This is now fixed.


Update/Add Visual Studio and .NET Core SDK

Tool information

Tool name: Visual Studio and .NET Core SDK
Add or update? Update
Desired version: Visual Studio 16.4.1 + .NET Core SDK 3.1.100
Approximate size:

Virtual environments affected

[ ] macOS 10.15
[ ] Ubuntu 16.04 LTS
[ ] Ubuntu 18.04 LTS
[ ] Windows Server 2016 R2
[x] Windows Server 2019

Can this tool be installed during the build?
Visual Studio cannot.  The SDK can.
Are you willing to submit a PR?
If I knew how to update the virtual environment image, sure I'd be willing to do that...but I don't.  If there are doc pointers I'll take a look.

We pull the latest version of VS that's available when we create the virtual environment. We're in the process of rolling out an update with VS16.4.0. VS16.4.1 will be included in an update following that.

@kaylangan This is great!  Is there a public area for roadmap/rollout details?

Can this tool be installed during the build?
Visual Studio cannot. The SDK can.

Although .NET Core SDK can be installed individually, using msbuild to compile a .NET Core 3.1 project will fail, as older Visual Studio does not recognize or support some of the features in 3.1 projects. To correctly build a 3.1 project, it requires the VS 2019 16.4 to be installed.

@jozefizso for .NET Core projects, are you doing custom MSBuild items because you should be able to use dotnet build CLI command from the SDK to build Core projects.

I use the VSBuild@1 task to compile solution.
PS: projects target .NET 4.0, 4.7 and Core 3.1 simultaneously

@jozefizso got it, so you don't really need it for core, but your solution has other bits that require it.  Makes sense.  If your .NET Framework projects are SDK-style projects than they can be built using dotnet as well but I suspect they are not and are classic csproj.

FYI, I created https://github.com/actions/virtual-environments/pull/164 which updates Ubuntu 16.04 and 18.04 to include .NET Core 3.1.

VisualStudio/16.4.0+29519.181 and .NET Core SDK 3.1.100 are available now :) .


Update addressbook references to clientcare

Updated savefile from addressbook.json to clientcare.json
Updated addressbook reference in clear command to clientcare
Updated screenshots in UG to reflect correct images

Relates to #176


Running in CI (github actions)

Describe the bug
I found it difficult to run script inside docker based on php:8.3-cli-alpine to use it in github actions. I've tried install it as composer dependency, it results in:
> phanalist
Detecting architecture.
CPU architecture: x86_64

Running phanalist on architecture: x86_64
sh: ./vendor/denzyl/phanalist/release/x86_64-unknown-linux-gnu/phanalist: not found

or in
/var/www/html $ sh ./vendor/denzyl/phanalist/release/x86_64-unknown-linux-gnu/phanalist
./vendor/denzyl/phanalist/release/x86_64-unknown-linux-gnu/phanalist: line 2: y
                                                                               �
                                                                                ���������ti: not found
./vendor/denzyl/phanalist/release/x86_64-unknown-linux-gnu/phanalist: line 1: ./vendor/denzyl/phanalist/release/x86_64-unknown-linux-gnu/phanalist: ELF: not foundline 2:
y
�P: not found./vendor/denzyl/phanalist/release/x86_64-unknown-linux-gnu/phanalist:
line 2: syntax error: unterminated quoted string

when script run directly, or in
Run curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/denzyldick/phanalist/main/bin/init.sh | sh
info: Downloading ${_url} ...
info: Saved ${_bin}
/__w/_temp/743ad242-cc1a-4bac-9405-d97a32c876ed.sh: line 2: /root/phanalist: not found

when run as github actions step inside same container on Github Actions:
      - name: Testing stateless ability
        run: |
          curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/denzyldick/phanalist/main/bin/init.sh | sh
          /root/phanalist

To Reproduce

Build container with php based on php:8.3-cli-alpine
Try to run script using either shell script or composer dependency

Expected behavior
It should be possible to run script on cli alpine image with sh only using composer OR dependencies should be better described.
Desktop (please complete the following information):

OS: linux

Additional context
As a workaround I managed to successfully run phanalist by copying it from docker container:
 FROM php:8.3-cli-alpine as php-base
#...
COPY --from=ghcr.io/denzyldick/phanalist:latest /bin/phanalist /usr/bin/phanalist

@mleczakm thanks for reporting! :)
I just tried to do the following:

Created docker/aarch64-php8.3-cli-alpine:FROM --platform=linux/aarch64 php:8.3-cli-alpine
COPY release/aarch64-unknown-linux-musl/phanalist /usr/bin/phanalist

Build the image:docker build -f docker/aarch64-php8.3-cli-alpine -t aarch64php83alpine .

Run phanalist:docker run aarch64php83alpine /usr/bin/phanalist -h

And I got the expected output:
A static analyser for your PHP project

Usage: phanalist [OPTIONS]

Options:
  -c, --config <CONFIG>                [default: ./phanalist.yaml]
  -s, --src <SRC>                      [default: ./src]
  -r, --rules <RULES>                  The list of rules to use (by default it is used from config)
  -o, --output-format <OUTPUT_FORMAT>  Possible options: text, json [default: text]
      --summary-only                   Output only summary
  -q, --quiet                          Do not output the results
  -h, --help                           Print help
  -V, --version                        Print version

It confirms that the released binary runs fine in php:8.3-cli-alpine. I am pretty sure it will also work for linux/x86_64 platform, but release/x86_64-unknown-linux-musl/phanalist needs to be used in that case.
And seems like there are 2 issues in your report:

Composer runs ./vendor/denzyl/phanalist/release/x86_64-unknown-linux-gnu/phanalist for php:8.3-cli-alpine. Instead it should run release/aarch64-unknown-linux-musl/phanalist /usr/bin/phanalist (musl, but not gnu). @denzyldick can you please look into it?
There are some issues with downloading compiled binary as part of GitHub action. @mleczakm can you please provide the output of the download? Is it actually saved into /root/phanalist?

The simplest solution here might be to download release/x86_64-unknown-linux-musl/phanalist in your GitHub actions. And use that:
curl https://raw.githubusercontent.com/denzyldick/phanalist/main/release/x86_64-unknown-linux-musl/phanalist -o phanalist
./phanalist -h

@mleczakm can you please try it?

Fetching binary directly works, but I created fix to init.sh to cover all this problems anyway. Pull request is waiting for action :)

Thanks a lot! https://github.com/denzyldick/phanalist/pull/61 is merged, and it seems to resolve this issue.


importing into android studio unable to build.

cmake is unable to build because it is unable to find glm/glm.hpp

Did you init the submodules as described in the readme?

Exactly. The zip provided by github doesn't contain submodules.


[LCS] Add a limit to recursion depth

Motivation
Last batch of LCS improvements:

Prevent stack overflows by setting a limit on the depth of LCS data.
(nit) Set MAX_SEQUENCE_LENGTH = 1 << 31 - 1 instead of 1<< 31 to accomodate Java arrays.

The notion of "depth" suggested in this PR consists in counting named boundaries i.e. struct and enum nodes (but not tuple nodes for instance). This is meant to minimize code changes and computation while still preventing unbounded stack allocations. (Indeed, recursive formats only happens through recursive structs and enums.)
The current code costs some extra memory for serialization but (at least on my mac) when I increase the limit I still get a stack overflow first for deserialization. By the way, the limit is around 900 for my mac with the default stack settings and using single lists as a benchmark.
As a follow up, we should probably design a test to create the most stack-expensive Libra transaction authorized by the specs and allow validators to adjust their stack sizes.
Test Plan
CI

@vgao1996 We should make sure the depth checks you're planning at the Move level are consistent with this.

@bob-wilson sounds good. I'll likely set a limit below the LCS limit for both types and values.

@bob-wilson sounds good. I'll likely set a limit below the LCS limit for both types and values.

@vgao1996 For a simple (but not super efficient) solution, you may call lcs::serialized_size to verify that a newly created object is "LCS-compliant".

@bors-libra r=davidiw

:pushpin: Commit f3cc8ac has been approved by davidiw

:hourglass: Testing commit f3cc8ac9d5a2cbaf7d5fccef24cacc883225902a with merge 7d3015be758a39d849940f545947f67f64755083...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: davidiw
Pushing 7d3015be758a39d849940f545947f67f64755083 to master...


Suggest --full-index on new index failures or missing gems

While we're getting all the kinks worked out of the compact index, we should suggest that users try adding --full-index to their command when there's a missing gem (especially if that gem is locked).
Relatedly, we should fall back to the full index (or at least the dependency API?) anytime there's a 4xx or 5xx response from the compact index server.

Related! https://github.com/bundler/bundler/issues/4384

We already have automatic fallback through the list of different fetchers, I think that should be sufficient?


Look for "_initialize" only if "_start" not found

A wasm module can be either a command or a reactor, so it can export either _start or _initialize.
Currently, if a command module is run, iwasm still looks for _initialize, resulting in the warning can not find an export 0 named _initialize in the module:
[08:15:00:315 - 1DC30DB40]: Load type section success.

[08:15:00:332 - 1DC30DB40]: Load import section success.

[08:15:00:335 - 1DC30DB40]: Load function section success.

[08:15:00:337 - 1DC30DB40]: Load export section success.

[08:15:00:339 - 1DC30DB40]: Load code segment section success.

[08:15:00:384 - 1DC30DB40]: /Users/eloparco/dev/forks/wasm-micro-runtime/core/iwasm/common/wasm_runtime_common.c, line 5838, can not find an export 0 named _initialize in the module
[08:15:00:387 - 1DC30DB40]: Load module success.

[08:15:00:401 - 1DC30DB40]: Memory instantiate:
[08:15:00:402 - 1DC30DB40]:   page bytes: 65536, init pages: 1, max pages: 1
[08:15:00:404 - 1DC30DB40]:   heap offset: 65536, heap size: 0

[08:15:00:409 - 1DC30DB40]: Memory instantiate success.

LGTM.


[AST] Fix Oscilators models instability

Signed-off-by: Jacob Levy<EMAIL_ADDRESS>

Initialized the free running oscillator to start at '0' for the first half of the period.

Updated 2 AST files from "[clkmgr] Address several d2s items. #11094" PR.

CI(private) passed locally.
          [   legend    ]: [Q: queued, D: dispatched, P: passed, F: failed, K: killed, T: total]
00:14:42  [    build    ]: [Q: 000, D: 000, P: 044, F: 000, K: 000, T: 044] 100%
00:41:49  [     run     ]: [Q: 000, D: 000, P: 115, F: 000, K: 000, T: 115] 100%

Rebase & push.

thanks for the quick fix @Jacob-Levy
@matutem
any objections to me merging once CI passes?


fix: ignore undefined external auth provider

What kind of change does this PR introduce?
Bug fix
What is the new behavior?
Allows external auth config to be undefined to use platform defaults.
Additional context
Add any other context or screenshots.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

141 of 243 (58.02%)  changed or added relevant lines in 2 files are covered.
7 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.07%) to 59.864%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/config/auth.go
140
242
57.85%

Files with Coverage Reduction
New Missed Lines
%

internal/storage/rm/rm.go
2
89.53%

internal/gen/keys/keys.go
5
12.9%

Totals

Change from base Build<PHONE_NUMBER>2:
-0.07%

Covered Lines:
7638

Relevant Lines:
12759

💛  - Coveralls


Support for 'minlength'

Have you considered adding a polyfill for the 'minlength' validation attribute? It is supported natively in Chrome 40+ as is the validity.tooShort method.
W3 spec: http://www.w3.org/TR/html5/forms.html#the-maxlength-and-minlength-attributes

It's there, it is only not part of the feature detection. You can do this:
https://github.com/aFarkas/webshim/issues/499#issuecomment-87378449


feat: index success attribute in health index

Issue
https://gravitee.atlassian.net/browse/APIM-7355
Description
Update Health mapping in a patch version for 5.3.x to update the mapping on older APIM version (4.2, 4.3, 4.4)
Additional context

Gravitee.io Automatic Deployment
🚀 A prerelease version of this package has been published on Gravitee's private artifactory, you can:

use it directly by updating your project with version: 5.3.3-apim7355-5-3-x-SNAPSHOT
download it from Artifactory here

:tada: This PR is included in version 5.3.3 :tada:
The release is available on:

5.3.3
GitHub release

Your semantic-release bot :package::rocket:


SocketTimeoutException should be translated as HectorTransportException

In ExceptionTranslator, org.apache.cassandra.thrift.TimedOutException and java.net.SocketTimeoutException are both translated as HTimedoutException.
I don't think it makes sense to translate these the same. TimedOutException is thrown by cassandra when an rpc call takes longer than the configurable timeout, while SocketTimeoutException is a networking issue.
We had an issue where hector would hang when one of our cass machines was powered down, as by default it looks like we retry HTimedOutExceptions forever.
I think it makes more sense to translate SocketTimeoutException as a HectorTransportException, which would correctly mark the host as down.
If you agree, I can submit a patch.

+1 from my side. Thanks.

What is the protocol.  I committed,
https://github.com/sbridges/hector/commit/fb76ae61b272e6b3e88739fa50c446d14e785418
which shows up in this bug above, do I issue a pull request as well?

Sorry, I don't follow this last part.
Are you trying to say that that is still an issue in Cassandra ?
the removed lines seem ok to me.
On Wed, Mar 7, 2012 at 4:36 PM, sbridges <
<EMAIL_ADDRESS>
wrote:

What is the protocol.  I committed,
https://github.com/sbridges/hector/commit/fb76ae61b272e6b3e88739fa50c446d14e785418
which shows up in this bug above, do I issue a pull request as well?

Reply to this email directly or view it on GitHub:
https://github.com/rantav/hector/issues/434#issuecomment-4382267

just a git hub workflow issue.  I pushed the changes to sbridges/hector, and github puts a note on this issue.  Do I issue a pull request for rantav/hector now?

sure


Dev

Hi @vissumca, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. Real humans will now evaluate your PR.

TTYL, MSBOT;

Master branch is only updated as part of the master merge happening once a month on first Friday of the month. This seems to be a mistake. If you are looking into getting started with the PnP contributions and GitHub, would suggest to have a look on following wiki page in this repo: https://github.com/OfficeDev/PnP/wiki/contributing-to-Office-365-developer-patterns-and-practices


Implement Gas Slider

Enhance the gas slider as a subunit to match the spec in Zeplin.
Spec is here:
https://zpl.io/b67kerd
However since this view isn't ready yet, the component can be written separately into the existing view 'activity_gas_settings' as a view component (similar to how the 'PasswordInputView' and 'FunctionButtonBar' work).
This sub component can replace the old horrible looking one in GasSettingsActivity. It should look exactly like the component in the zeplin spec with 'Speed (Gas)' at the top and '1 Gwei      9000' at the bottom, and replaces the whole of the view in GasSettingsActivity, ie this:

This component should be ready to insert into the confirmation when this view is complete - so it'll need its own backing class same as FunctionButtonBar. Simply including the 'gas_selector' into your view you should get this self-contained component with auto-updating values. So, the class needs to regularly poll the API and update the view. It should also stop the polling when the view is destroyed.
You will need to convert Gwei to ETH for the central value (in the spec example 0.0003642). This obtained by multiplying the gas limit with the gas price as seen in the 'updateNetworkFee' calculation.
All values in the existing GasSettingsActivity are shown in Gwei (except network fee).
You'll need to know some basic conversion values, have a look at this site and try a few values:
https://converter.murkin.me/
class BalanceUtils has some basic conversions written in code you can use.
All calculations should be done in wei and then scaled back to ETH.
Example: I set the slider gas price at 1.2 Gwei (1.2 * 10^9 wei) and gas limit to 90000 Gwei (90000 * 10^9 wei). Expected network fee is 90000 Gwei or<PHONE_NUMBER>0000 wei which is 0.00009 ETH.
Initially, to get implementation working quick set a default gas limit to 90000 Gwei. You can later update this with a method but let's get it working first.
Why do we want to change gas and what is it? Gas is the network transaction fee. It's an incentive for Ethereum miners to include your transaction in their block calculation. If they win the mining competition in addition to mining reward they get your gas fee if they included it in their block.
If there's a lot of transactions competing for limited block space the miner will always want to include the transaction with highest included gas fee.
Therefore there's an expected transaction time associated with the fee, the higher the fee you include the more quickly your transaction gets processed. There's an API you can call with gas fee vs expected inclusion time here:
https://ethgasstation.info/json/ethgasAPI.json
All gas prices are in 10*Gwei, so you'll see fast = 50, safeLow = 10 which is 5 Gwei and 1 Gwei.
  "fast": 50.0,
    "fastest": 100.0,
    "safeLow": 10.0,
    "average": 10.0,

...
corresponding speed in minutes

    "safeLowWait": 2.8,
    "avgWait": 2.8,
    "fastWait": 0.3,
    "fastestWait": 0.3,

These are prices in gwei * 10, so eg for safeLow, gas price is 1 gwei, expected wait time is 2 minutes 48 seconds (2.8 mins).
Let's say the gas limit is set at 90000 Gwei, and I want my transaction to be fast I set the slider at 5 Gwei. The Expected fee will be 90000*5/10^9 = 0.00045 ETH. My expected wait time for this is 0.3 mins or 18 seconds.
Make sense? Lets use safeLow as the minimum slider position and 'fastest' as the maximum slider position. You can use linear interpolation to calculate the estimated transaction time for now. It's more complex than linear but let's enhance that later.
Addend: Once the slider is working with linear interpolation the enhancement is to use the more detailed information from the API to produce more accurate wait time:
    "gasPriceRange": {
        "100": 0.3,
        "95": 0.3,
        "90": 0.3,
        "85": 0.3,
        "80": 0.3,
        "75": 0.3,
        "70": 0.3,
        "65": 0.3,
        "60": 0.3,
        "55": 0.3,
        "50": 0.3,
        "45": 0.7,
        "40": 0.7,
        "35": 0.7,
        "30": 0.8,
        "25": 1.0,
        "20": 1.0,
        "15": 1.4,
        "10": 2.8,
        "8": 133.9,
        "6": 133.9,
        "4": 133.9
    }

Once you finished getting the slider working you will understand the above values - they are just gas price vs expected wait time. From bottom, 0.4 Gwei = 133 minutes 54 seconds, 10 Gwei = 18 seconds. Use linear interpolation between those finer point values, you will end up with a time spread, which if represented visually will be like the view in MetaMask:

You can see the enhancement they make too: since above 5 Gwei there's no improvement they don't allow you to slide above 5. This is definitely an enhancement we want to make too.

@JamesSmartCell Issue is not closed automatic after PR merge. Should close manually?

Yes, issue is resolved.


Image proble with 3.14.1

Hi,
I just upgraded to 3.14.1 pro and images uploading doesn't work well anymore.
The  uploaded image change name from flower.jpg to something like ef0a3800b0b4f36a948ea9c1d085338c without extension.
I need to retain at least extension, but I would prefer to retain name and extension.

Do you have any plugin enabled?

I need more context, and how to reproduce it.


JS Batch Script "Invalid Return Statement" Error

On the Studio Query Configuration, set "Type" to "BATCH" and "Language" to "JAVASCRIPT".
Execute this query:
return true;

I receive this error:
com.orientechnologies.orient.core.command.script.OCommandScriptException: ScriptManager: error :1:0 Invalid return statement return true; ^ in  at line number 1 at column number 0. Function unknown: 1: >>> return true;
However, other Javascript code executes fine, such as
var t = 100;
var db = orient.getGraph();

.
However, executing
var t = 100;
var db = orient.getGraph();
return true;

again yields error.
I apparently cannot return anything (of any Type) from Javascript Batch scripting. I am not sure if this is a bug or is a gap in my understanding.
Studio Version: 2.1
DB Version: 2.1.6 and 2.1.4
Thank you for your time.

You marked it as a question so I suppose it's behaving the way it is supposed to be.
Then, how can I return any data from Javascript batch scripts?

Ok, I figured it out...
Reference for anyone else, all you do is put the variable you want to return at the end of the query without the return keyword in front.
e.g.
var g = orient.getGraph();
var data = g.command("sql", "some query");
data

Added this to the docs.


License file missing

Hello,
i'd like to use this library for a commercial project.
Could you please add a License?

good point maybe @tiff can help you with that

Could you add the license..??

done


Generalize krnlmon synchronization logic in DpdkHal

Generalized the logic used to synchronize DpdkHal with krnlmon by replacing the global pthread variables with optional pointers to absl::Notification objects passed to the DpdkHal constructor.

Signed-off-by: Derek G Foster<EMAIL_ADDRESS>

superseded by rework-krnlmon-sync-2


allow to pass custom whitespace sensitive tags

The only tags that are whitespace sensitive don't include something generic like article.
An option to pass custom tags could be considered?
Using the code tag to wrap content is not ideal, while using pre with css white-space: break-space is ok, although confusing

I probably won't implement this as this would increase the complexity by a lot, due to how calling from other languages works (managing memory, ensuring pointer safety, dealing with Rust lifetimes, heap allocation, etc.), which would have to be done for every platform. There would also be a performance cost, since configuration data is no longer static. This is a trade off as the default rules are made with standard usages of HTML5 in mind according to the specs, so there may be disadvantages for a more rare and nonstandard input.


Objects not processed

@asford https://github.com/dask/gcsfs/blob/master/gcsfs/core.py#L559 - should this not be moved to the line above like "items": [self._process_object(bucket, i) for i in items], ? As it is, the items are being processed and then ignored.

Yes, this is not well expressed in the current implementation. _process_object performs an in-place update of the input object dict as well as returning the modified input dict. This is obviously surprising behavior, as one would expect the function to either modify the object in-place or return a modified copy of the object.
The current implementation does function, as https://github.com/dask/gcsfs/blob/master/gcsfs/core.py#L559 is evaluated for the side-effect of updating the object listing, but should be changed. I'll open a PR.

OK, got it. I'll remove the items = part at some point then, so I don't get confused again.


Total number of hosted zones instead of records per zone

This PR removes the metric "records_per_hosted_zone" and instead now collects the total number of hosted zones per aws account.
In our use-case ( monitoring of the managed privatelink infrastructure ), the amount of records in each hosted zone is pretty much constant, as compared to the number of hosted zones, which directly correlates to the number of privatelink clusters.

we are already planning on relying on this metrics: https://gitlab.cee.redhat.com/service/app-interface/-/merge_requests/43915
i propose you add the new one in addition.

I'll go ahead and close this PR as we decided to not remove the records per hosted zone metric. There will be a follow up pull request implementing the number of hosted zones separately


Unnecessary brackets in query

This issue is somewhat related to #128 and #132.  I'm writing queries for MS SQL server, trying to use fully qualified names with square brackets since I'm querying multiple schemas.  Using the raw function variants seem to work as expected (ie .FromRaw).  However, I'm running into issues when using the non-raw versions (ie .From)
Let's say we're querying tables named [dbo].[OrderItem] and [ref].[Product].  Based on the docs, I would expect the compiler to see that square brackets are correct for MS SQL server.
The code is something like this. I'm paraphrasing so syntax may not be perfect.
Query.From("[dbo].[OrderItem]");
Query.Join("[ref].[Product]", j => j.WhereRaw("[dbo].[OrderItem].[ProductID] = [ref].[Product].[ID]"), "INNER JOIN")

So I would expect:
SELECT ... FROM [dbo].[OrderItem]
INNER JOIN [ref].[Product] ON [dbo].[OrderItem].[ProductID] = [ref].[Product].[ID]

but instead it creates
SELECT ... FROM [[dbo]]].[[OrderItem]]]
INNER JOIN [[ref]]].[[Product]]] ON [dbo].[OrderItem].[ProductID] = [ref].[Product].[ID]

The WhereRaw does not change the brackets in the ON predicate.  But the Join and From do change the values incorrectly.  I can use a FromRaw to avoid that one issue, but for Join there isn't a way to specify the table name in a raw way.
Any suggestions?

@avlcodemonkey
On my phone at the moment, but at first glance try
Query.Join("Product AS ref", j => ...

Yes this is by design, you don't have to pass the keyword identifiers (square brackets for sql server) when using non raw methods

@avlcodemonkey
Just threw this together, so sorry if there are any small typo's or anything but:
Here is a .NET fiddle

Thanks for the rapid response guys.  Sounds like I was misunderstanding proper usage.  I'll adjust my code accordingly.


copyright header should not be deleted

You are free to fork and renamed the projects, you can add your own copyright header to your modifications and new files, but you should not remove copyright header from any each existing files.

Exactly. Let me add back the original copyright headers.


Track if a process is running or not

Add some metric to help track if a process is running or not. I guess a simple way to do it is to send the number of processes currently matching each [[Process]] entry

I agree that we need this, but keep in mind that right now at Stack Exchange we have a single toml file that defines all the monitored processes. We wouldn't want our lbs saying that redis isn't running, since redis has never been run on that system. We may have to somehow filter to processes that are registered in systemd/init or that have been seen previously, or we may just need to bite the bullet and customize the toml file for each host (althought this goes against the "automatically start monitoring" goal a bit)

I can try to do that "filter to processes that are registered in systemd/init" part in #1161 . Although with sysv initd getting registered/enabled status is not an easy feat, easy with systemd/runit.

Reopening. Was closed via 1316 but we also plan on adding service tracking for SystemD and other init systems.

I believe we did this.


fix: correct Debian version mapping for Trixie

This pull request fixes the issue where using --version 13 incorrectly pointed the suite to Bookworm. The suite should be directed to Trixie instead.

Thank you for the contribution!


V6.10.0 not working??

Describe the bug
New version 6.10.0 is not compiling ?
To Reproduce
get latest version of freerasp
Screenshots
If applicable, add screenshots to help explain your problem.
Please complete the following information:

Version of freeRASP: [6.10.0]

Additional context
e: file:///C:/Users/AppData/Local/Pub/Cache/hosted/pub.dev/freerasp-6.10.0/android/src/main/kotlin/com/aheaditec/freerasp/handlers/MethodCallHandler.kt:78:9 Unresolved reference: TalsecThreatHandler
e: file:///C:/Users/AppData/Local/Pub/Cache/hosted/pub.dev/freerasp-6.10.0/android/src/main/kotlin/com/aheaditec/freerasp/handlers/MethodCallHandler.kt:91:9 Unresolved reference: TalsecThreatHandler
e: file:///C:/Users/AppData/Local/Pub/Cache/hosted/pub.dev/freerasp-6.10.0/android/src/main/kotlin/com/aheaditec/freerasp/handlers/MethodCallHandler.kt:134:17 Unresolved reference: TalsecThreatHandler

@Omkar6652 ,
I could not reproduce the issue, just verified the pub.dev plugin and the referenced file is there. Can you try reinstalling the plugin? Also please ensure that the cache is cleared.
Regards,
Tomas

ok it works now. only clearing cache didnt seem to work somehow had restart everything... anyways thanks .


Magic Editor Currently can't support this edit

Device name: Pixel 6 Pro
Rom name: Stock
Android version: 14
Pixelify version: 3

Bug Description:
When opening magic Editor I get the message in the title and am returned to the non edit menu.

Happens on android 13 as well.

Fixed it, don't turn on enforce denylist when Google Play Services are in the denylist.