docs: write Prisma section in Why page

✅ Checklist

[x] I have followed every step in the contributing guide (updated 2022-08-15).
[x] The PR title follows the convention we established conventional-commit
[x] I performed a functional test on my final commit

Changelog
Added Prisma section to the Why page. Based on a lot of sources so I'm throwing them into this gist.

Screenshots

💯

I'm not nearly as familiar with Prisma as I was with tailwind when I wrote the other Why, feedback is VERY appreciated.

I also wanted to add something about how Prisma doesn't care about the DB you're using as long as a connector exists for it but didn't know how to write it...

Regarding "features":

Agree that mentioning Prisma works on so many different DBs, from sqlite to various 'real' SQL or even Mongo, is important.
Prisma Studio is good to mention I think.
Introspection maybe? I've found that to be very powerful.

That being said I think the main focus should be on DX rather than features because that's the main thing where Prisma is the best. Maybe even put the TS metaphor first?

Yeah we can say that Prisma also doesn't care what db you're using, be it Postgres or MySQL, or even CockroachDB, it will give you the same DX everywhere. You can even connect to mongo if you're into that.
We can also talk about how Prisma allows for each database migrations, like moving from postgres to mysql, etc.

While all of this is technically true and is part of the big pitch for Prisma, there's a lot of nuance here that can lead to footguns if devs lean too heavily into this. It's not super straight forward to actually change your migrations and there's a lot of caveats. One of those databases you mentioned doesn't even have migrations for example. The concept of moving your migrations from a relational db to Mongo is nonsensical.
See this section from the Prisma docs: You cannot automatically switch database providers.
the tldr is migrations create a migration_lock.toml file that is checked into your version history which requires you to wipe and rerun your migrations if you want to change the database provider. That can be okay, but there needs to be a clear call out that if you want to change providers you can't necessarily take your migrations with you, you can regenerate brand new ones that hopefully don't break.

I'll merge and we can iterate on it


Assign user dialog improvements

Disable buttons when the issue was not found and maintain assignee on opening the dialog

Codecov Report

Merging #109 into dev will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev     #109   +/-   ##
=======================================
  Coverage   89.18%   89.18%
=======================================
  Files          42       42
  Lines        1156     1156
  Branches      136      136
=======================================
  Hits         1031     1031
  Misses         85       85
  Partials       40       40

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 217d397...0595d7b. Read the comment docs.


Add professional services page

Description
Created the /professional-services page
Related Issue(s)
closes #1148
Checklist

[x] I have read the contribution guidelines
[x] I have considered the performance impact of these changes
[ ] Suitable unit/system level tests have been added and they pass
[ ] Documentation has been updated

Hi @iskerrett I started working on the page. I still need to:

Add it to the main nav, under the company menu.
Update the form (let me know when you have it and all add it).

Add this: /professional-services/ at the end of the preview URL to see it 😉

Here is the embeded javascript for the form.


when patching dependencies, common dependencies are not deduplicated and features are missing

Problem
I'm using a patch section to redirect an indirect dependency to my own fork. The main crate directly references this dependency.
my main cargo.toml
[dependencies]
gdext_coroutines    = { git = "https://github.com/0x53A/gdext_coroutines", branch = "dev" }
godot               = { git = "https://github.com/0x53A/gdext", branch = "dev-multiple-impl-blocks", features = ["experimental-wasm", "lazy-function-tables"] }
fe-o-godot-macros   = { git = "https://github.com/0x53A/fe-o-godot-macros", branch = "dev" }

[patch."https://github.com/godot-rust/gdext"]
godot               = { package = "godot", git = "https://github.com/0x53A/gdext", branch = "dev-multiple-impl-blocks" }

gdext_coroutines references godot from the original repository:
godot = { package = "godot", git = "https://github.com/godot-rust/gdext" }

https://github.com/0x53A/gdext_coroutines/blob/41fafbd58fb6694f42b67b1c2794461fed52aee3/rust/Cargo.toml#L19-L20

fe-o-godot-macros references godot from my fork, but without the additional features
godot           = { git = "https://github.com/0x53A/gdext", branch = "dev-multiple-impl-blocks" }

https://github.com/0x53A/fe-o-godot-macros/blob/4ef212df813bd166782213bef6fbcf6ffff6db47/Cargo.toml#L11-L12

When I run cargo build in my main project, I get compile errors related to the feature "lazy-function-tables", as one example:
D:\repos\RustedArmor\rust>cargo build
   Compiling godot-ffi v0.1.3 (https://github.com/0x53A/gdext?branch=dev-multiple-impl-blocks#c8ce78d1)
   Compiling gdext_coroutines v0.6.0 (https://github.com/0x53A/gdext_coroutines?branch=dev#ea23c8ca)
error[E0433]: failed to resolve: could not find `lazy_keys` in the crate root
 --> D:\repos\RustedArmor\rust\target\debug\build\godot-ffi-acf9a0802143616d\out\table_builtins.rs:5:80
  |
5 |     string_cache: StringCache < 'static >, function_pointers: HashMap < crate::lazy_keys::BuiltinMethodKey, crate::BuiltinMethodBind >,
  |                                                                                ^^^^^^^^^ could not find `lazy_keys` in the crate root

It seems like cargo has a duplicated reference to 0x53A/gdext and loses the features ("experimental-wasm", "lazy-function-tables") at some point.
here is the output of cargo tree -d, which I would expect to be empty
D:\repos\RustedArmor\rust>cargo tree -d
godot v0.1.3 (https://github.com/0x53A/gdext?branch=dev-multiple-impl-blocks#c8ce78d1)
└── fe-o-godot-macros v0.0.1 (proc-macro) (https://github.com/0x53A/fe-o-godot-macros?branch=dev#09563587)
    └── rustato_lib v0.1.0 (D:\repos\RustedArmor\rust)

godot v0.1.3 (https://github.com/0x53A/gdext?branch=dev-multiple-impl-blocks#c8ce78d1)
├── gdext_coroutines v0.6.0 (https://github.com/0x53A/gdext_coroutines?branch=dev#ea23c8ca)
│   └── rustato_lib v0.1.0 (D:\repos\RustedArmor\rust)
└── rustato_lib v0.1.0 (D:\repos\RustedArmor\rust)

godot-core v0.1.3 (https://github.com/0x53A/gdext?branch=dev-multiple-impl-blocks#c8ce78d1)
└── godot v0.1.3 (https://github.com/0x53A/gdext?branch=dev-multiple-impl-blocks#c8ce78d1) (*)

godot-core v0.1.3 (https://github.com/0x53A/gdext?branch=dev-multiple-impl-blocks#c8ce78d1)
└── godot v0.1.3 (https://github.com/0x53A/gdext?branch=dev-multiple-impl-blocks#c8ce78d1) (*)

godot-ffi v0.1.3 (https://github.com/0x53A/gdext?branch=dev-multiple-impl-blocks#c8ce78d1)
└── godot-core v0.1.3 (https://github.com/0x53A/gdext?branch=dev-multiple-impl-blocks#c8ce78d1) (*)

godot-ffi v0.1.3 (https://github.com/0x53A/gdext?branch=dev-multiple-impl-blocks#c8ce78d1)
└── godot-core v0.1.3 (https://github.com/0x53A/gdext?branch=dev-multiple-impl-blocks#c8ce78d1) (*)

Steps

clone https://github.com/0x53A/rustlang-cargo-issue-14740
run cargo build and observe that it fails, cargo tree -d prints a list of duplicated dependencies
in cargo.toml, disable the # doesn't work block and enable the # works block
run cargo build and observe that it works, cargo tree -d is empty

Possible Solution(s)
It works when I set the correct repository and features in all packages (inside gdext_coroutines and fe-o-godot-macros.
godot = { git = "https://github.com/0x53A/gdext", branch = "dev-multiple-impl-blocks", features = ["experimental-wasm", "lazy-function-tables"] }

Then compilation succeeds and cargo tree -d returns an empty result as expected.
Notes
There are a lot of git related issues already open, but most of them are about unifying slightly different urls (like tag vs rev). In my case, the url is exactly the same and they are still not unified.
Version
cargo 1.84.0-nightly (e75214ea4 2024-10-25)
release: 1.84.0-nightly
commit-hash: e75214ea4936d2f2c909a71a1237042cc0e14b07
commit-date: 2024-10-25
host: x86_64-pc-windows-msvc
libgit2: 1.8.1 (sys:0.19.0 vendored)
libcurl: 8.9.0-DEV (sys:0.4.74+curl-8.9.0 vendored ssl:Schannel)
os: Windows 10.0.22621 (Windows 11 Professional) [64-bit]

I think it's actually not related to the patch and purely caused by fe-o-godot-macros. I'll try to create a smaller repro when I have some more time ...

Got it! please see the edit at the top

resolver = "2" (default with 2021 edition) resolves features for the host (proc macros, etc) separate from the target (normal dependencies).  That the code generated by the proc macro can depend on the target having the same features is being tracked in #14415.
Closing in favor of #14415.  If there is a reason for us to keep this open separately, let us know!

TIL. Thanks!


Fix bug children is array of length 1

We always do data.map with data coming from backend, when the length of data is 1 (rare case), _renderChildren treat it as a element !! then it goes to React.cloneElement( array(element), {}, ....) which cause the render stop completely in our case.

:+1: I just spent 3 hours debugging my app just to find that there's already PR for the fix.
Thanks for this awesome library!
BTW, here's my workaround:

My workaround was simply to put an empty  inside the , then render my input elements.  It guarantees that the Form will never have a single child.

My workaround was just to add an empty div tag inside the Form before mapping/rendering my ValidatedInput elements.  This insured that the Form had more than 1 child element.

Hi guys! Thanks for your feedback and PR. I didn't have much time recently, but I took a proper look at this PR and will merge/deploy it very soon. Thanks again for your contribution.

I've pushed a new version with 'beta' tag. Can any of you please try it with npm install react-bootstrap-validation@beta and confirm that the problem's gone? If it's working correctly, I'll publish a production release.

It works.  Thanks!
Steve Gaetjens
Director of Application Architecture | PartsSource
Direct<PHONE_NUMBER>
sgaetjens<EMAIL_ADDRESS>| www.partssource.comhttp://www.partssource.com
Stay Updated:http://www.partssource.com/category/news/ Sign up to receive the latest PartsSource news.
Confidentiality Note: This message and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify me immediately.
From: Ivan Reshetnikov<EMAIL_ADDRESS>Sent: Tuesday, January 5, 2016 3:45 PM
To: heilhead/react-bootstrap-validation<EMAIL_ADDRESS>Cc: Steve Gaetjens<EMAIL_ADDRESS>Subject: Re: [react-bootstrap-validation] Fix bug children is array of length 1 (#24)
I've pushed a new version with 'beta' tag. Can any of you please try it with npm install react-bootstrap-validation@beta and confirm that the problem's gone? If it's working correctly, I'll publish a production release.
—
Reply to this email directly or view it on GitHubhttps://github.com/heilhead/react-bootstrap-validation/pull/24#issuecomment-169127672.

Thanks for pulling this in. I was able to verify that it worked for me, too!


[⚠WIP⚠] Add video support: introduce media provider protocol instead and retu…

…rn it instead of images

Current coverage is 74.79% (diff: 63.33%)

Merging #29 into master will decrease coverage by 4.58%

@@             master        #29   diff @@
==========================================
  Files            11         14     +3
  Lines           742        849   +107
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            589        635    +46
- Misses          153        214    +61
  Partials          0          0

Powered by Codecov. Last update 3f38668...8f2a44b


Cannot destructure property 'files' of 'parameters' as it is undefined

I am getting the above error even though I have parameters and files defined. My preview.ts is as follows:
import './global.css';
import '../src/utilities.css';
import SportsTheme from "../src/themes/sports.css";
import NationTheme from "../src/themes/nation.css";

import type { Preview } from "@storybook/preact";
import cssVariablesTheme from "@etchteam/storybook-addon-css-variables-theme";

const preview: Preview = {
  parameters: {
    actions: { argTypesRegex: "^on[A-Z].*" },
    controls: {
      matchers: {
        color: /(background|color)$/i,
        date: /Date$/,
      },
    },
  },
};

export const decorators = [
  cssVariablesTheme
];

export const parameters = {
  cssVariables: {
    files: {
      "Sports": SportsTheme,
      "Nation": NationTheme
    }
  }
};

export default preview;

FYI: The css files are being imported correctly as I tell webpack to use css-loader to import css files as modules, and if I make a css syntax mistake on purpose Storybook tells me about that error first. After I resolve that error, the above error pops up.

@mdesilva could you try combining the two parameters objects you have there...
const preview: Preview = {
  parameters: {
    actions: { argTypesRegex: "^on[A-Z].*" },
    controls: {
      matchers: {
        color: /(background|color)$/i,
        date: /Date$/,
      },
    },
    cssVariables: {
      files: {
        "Sports": SportsTheme,
        "Nation": NationTheme
      }
    }
  },
};

@DanWebb Yep I realized this shortly after posting the question. Thank you.

I'm still having a similar error using @storybook/html-webpack5. This happened to me after upgrading from storybook 6 to 8.

I experienced the same issue when upgrading storybook to v8. The fix was to introduce a new parameters key instead of directly exporting the object.
e.g.
This is not going to work.
export const parameters: {
...
}

This will work.
export const parameters: {
  parameters: {
    ...
  }
}


Make path helpers work correctly with decimal values

Fixes FormidableLabs/victory#753
Using math.round in all of these functions meant that the round could go one way or the other if provided decimal x or y values, which in turn would mess up the point shapes.
Everywhere I could, just swapped functions over to use Math.floor.  Unfortunately, for plus, square, and diamond that lead to dramatically different results. For those, I had to rework the way the shapes were drawn quite a bit.  For the most part, the shapes should be very similar.  Using floor instead of round meant that some of the shapes decreased in size ever so slightly, and I had to completely rethink how plus was drawn, so the version I have is more symmetrical than the old version, but it seemed worth it to get rid of the old shapes.
For comparison's sake, here's all of the shapes, going from size 2 to 13 in increments of three. The right icon in each pair is the old implementation of path-helpers and left icon is my implementation.

@cbranch101 Thank you for this fix!


Check schema of MPI patient seed extract in LAC Azue

Go into LAC Azure and check the schema of the parquet file they generate weekly containing patient data to seed the MPI.
Acceptance Criteria
The schema (columns and associated data types) of the the patient seed data is saved some place that is owned by the DIBBs Skylight team.

The schema is as follows:
first_name: string
middle_name: string,
last_name: string,
ssn: string,
birthdate: string (e.g. '10JUL203:00:00:00.000'),
sex: string,
mrn: string,
address: string (street address),
city=string,
state=string (postal code),
zip:string,
home_phone: string (xxx-xxx-xxxx),
cell_phone: string (xxx-xxx-xxxx),
email: string


Custom code-runners don't always load on initial dev preview

Describe the bug
Sometimes, the initial run of the dev preview does not load custom code-runner implementations.
Minimal reproduction
Steps to reproduce the behavior:

Execute npm run dev
Go to preview
Attempt to manually run / auto-run a non-standard monaco runner
See Error: Runner for language "<lang>" not found

See slidev-code-runner for an example with a custom Python implementation in ./setup/code-runners.ts
Environment

Slidev version: v0.49.26 (using npm create slidev@latest)
Browser: Chrome
OS: Windows 10

Notes
This issue only occurs sometimes on the initial load of the dev preview, any subsequent loads after making edits to the project are fine. The built version of the project also appears to be fine.

Are there two Slidev servers running at the same time, and on the same port?

Are there two Slidev servers running at the same time, and on the same port?

Yes! Your question made me realize that I had the in-browser tab that pops up when starting the dev server AND the VSCode Slidev extension preview active at the same time. During my testing yesterday, I did not have the preview tab opened in VSCode and it worked fine. I just tried it again with the VSCode preview window open in my editor and one of the presentation instances (looks like the first one to load) encounters the Error: Runner for language "<lang>" not found error.


Remove mandatory AWS_PROFILE from the makefile

Description of changes:
Some automation processes does not necessarily have AWS_PROFILE set, and it's not mandatory as long as there a default AWS credentials or assumed instance profile to run the commands

lgtm :)


LGBM_BoosterLoadModelFromString failed on windows, but succeed in macos

Description
LGBM_BoosterLoadModelFromString c_api failed on windows, but succeed in macos.
Error msg in windows:
Model format error, expect a tree here. met shrinkage=0.1

Env
lib_lightgbm.dll version: 3.3.3, windows x86_64

@SKTT1Ryze thanks for using LightGBM!
I see you opened and then immediately closed this....what happened? It would be useful for others arriving at this issue from search engines to understand the cause of that error and how you got past it.

In the windows platform, model file is dos format and only the unix format is understood by LightGBM.

@SKTT1Ryze thanks for using LightGBM!
I see you opened and then immediately closed this....what happened? It would be useful for others arriving at this issue from search engines to understand the cause of that error and how you got past it.

I see, I suspect you ran into the same issue as #5508.
Thanks for that explanation. In the future, if you post here and then close the discussion, please provide an explanation so that other people finding the conversation from search engines can learn from your experience.


Jesse: Watch 00962 7929 00001

Jesse requests the watch of the watch_number 00962 7929 00001. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

Approved by Jeff Schaller in Charcoal HQ


Added Strong number file in c folder

Added a file to check if given number is Strong number

@all-contributors add @ShabadVaswani for code


Support Windows Subsystem for Linux (WSL)

Add instructions for how to build, test, and install the SDK in WSL
Fix build errors in WSL
Run all tests in WSL

I found some warning messages in GCC 7.1 on WSL. However, I think some are bugs in GCC, and the rest are warning messages from gtest. For reference, I leave a log message here.
In file included from /home/utilForever/CubbyFlow/Includes/Array/Array2.h:383:0,
                 from /home/utilForever/CubbyFlow/Includes/FDM/FDMLinearSystem2.h:12,
                 from /home/utilForever/CubbyFlow/Includes/Solver/FDM/FDMLinearSystemSolver2.h:12,
                 from /home/utilForever/CubbyFlow/Includes/Solver/FDM/FDMICCGSolver2.h:13,
                 from /home/utilForever/CubbyFlow/Sources/Solver/Grid/GridFractionalSinglePhasePressureSolver2.cpp:18:
/home/utilForever/CubbyFlow/Includes/Array/Array2-Impl.h: In member function ‘void std::thread::_State_impl<_Callable>::_M_run() [with _Callable = std::thread::_Invoker<std::tuple<CubbyFlow::ParallelRangeFor(IndexType, IndexType, IndexType, IndexType, const Function&, CubbyFlow::ExecutionPolicy) [with IndexType = long unsigned int; Function = CubbyFlow::{anonymous}::Restrict(CubbyFlow::Array2<float>&, CubbyFlow::Array2<float>*)::<lambda(size_t, size_t, size_t, size_t)>]::<lambda(long unsigned int, long unsigned int)>, long unsigned int, long unsigned int> >]’:
/home/utilForever/CubbyFlow/Includes/Array/Array2-Impl.h:291:16: error: ‘*((void*)& iIndices +24)’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
   return m_data[i + Width() * j];
          ~~~~~~^
/home/utilForever/CubbyFlow/Sources/Solver/Grid/GridFractionalSinglePhasePressureSolver2.cpp:73:28: note: ‘*((void*)& iIndices +24)’ was declared here
      std::array<size_t, 4> iIndices;
                            ^~~~~~~~


disk_quota incorrectly blocked using v3-apply-manifest

Please fill out the issue checklist below and provide ALL the requested information.

[x] I reviewed open and closed github issues that may be related to my problem.
[x] I tried updating to the latest version of the CF CLI to see if it fixed my problem.
[x] I attempted to run the command with CF_TRACE=1 to help debug the issue.
[x] I am reporting a bug that others will be able to reproduce.

Describe the bug and the command you saw an issue with
NOTE: We have a custom disk_quota set to 4096 MB.
using cf push, I can push an app with this manifest specifying a disk_quota of 4096 MB:
---
applications:
- name: test-python-flask
  random-route: true
  buildpacks:
    - python_buildpack
  memory: 256M
  disk_quota: 4096MB

Using cf v3-apply-manifest -f ./manifest.yml, I get the error disk_quota too much disk requested (requested 4096 MB - must be less than 2048 MB)
What happened
I get the error disk_quota too much disk requested (requested 4096 MB - must be less than 2048 MB)
Expected behavior
I should be able to use the full disk quota allowed
To Reproduce
Steps to reproduce the behavior; include the exact CLI commands and verbose output:

Have an environment with a custom maximum_app_disk_in_mb, higher than 2048MB
use cf v3-apply-manifest with a manifest requesting more than 2048MB, but less than maximum_app_disk_in_mb disk quota
See error

Provide more context

Mac OS X 10.14 iTerm
cf version 6.46.0+29d6257f1.2019-07-09
2.138.0

Note: As of January 2019, we no longer support API versions older than CF Release v284/CF Deployment v1.7.0 (CAPI Release: 1.46.0 (APIs 2.100.0 and 3.35.0).

Hi @bengerman13 sorry for the delay. We'll try to reproduce and get back to you soon as we can.

Hi @bengerman13, we weren't able to reproduce the issue with the latest edge version of the CLI.  We don't think this is an issue with the CLI.  It seems like the error message is coming back from the Cloud Controller API.
We wondered if you might need to add maximum_app_disk_in_mb to additional BOSH jobs in your Cloud Foundry bosh manifest?

We're setting this here
Is there somewhere else it needs to be set?
To reiterate in case it got missed - cf push allows pushing an app of this size, but cf v3-apply-manifest does not.

(also, happy to move this over to the cloud_controller_ng repo if that's a better place to discuss)

cc @selzoc and @ssisil (CC API anchor and PM)

@bengerman13 - Yes, please move this over to cloud controller repo,  it will help us track this issue as this.

Sure thing, moving over to CAPI's repo.


Git gud.

Git gud.

Thx mate for telling me i took 3 seconds on this
Thx for taking the time out of your day too review this for me Thankyou

Yes it takes 1 second for anyone to literally see the mistake, yw
And wow it’s as if it’s hard to make log calls in 3 seconds - much less 1 !!

Yes it takes 1 second for anyone to literally see the mistake, yw
And wow it’s as if it’s hard to make log calls in 3 seconds - much less 1 !!

: o

going to do something else


Please clarify what "types" mean

In this sentence "Project Oakdale environments won't be allowed to change types", does "types" mean Production to Sandbox and vice-versa?

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

ID: 66be7882-5440-7cff-142f-4436a2d648ca
Version Independent ID: b1876c76-62e5-2e0f-c823-09be35cfd7a5
Content: About the Project Oakdale environment (Preview) - Power Platform
Content Source: power-platform/admin/about-teams-environment.md
Service: power-platform
GitHub Login: @jimholtz
Microsoft Alias: jimholtz

@rajyraman
Yes. Type refers to environment type.


Issue on mobile

Hi, all.
I have a issues on device mobile. please help me.

Hi,
in order to get help please describe the issue, the code you are using (html and js) and the version of LazyLoad you’re getting the issue on.

This is version and my script

Thanks a lot.

Thanks.
Everything should be working fine.
Are the script placed AFTER your HTML (so to be sure the DOM is ready when the JS is executed)?
What is the issue you are having?

By the way, I see you didn’t use the img tag, but I took it for a copy/paste error, or markdown trying to use it as an image. But you did use the tag, right?

@verlok thanks you, i solved the issue, but image load on mobile so slow.

You should really use responsive images in order to make mobile phones use a smaller version of the image.
Google “responsive images” to find out more.
My LazyLoad script supports responsive images so you will have best results on mobile too.


bring repo in standard with org

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


Add analysis output logic into workflows as a schema

Manually generate logic that shows the relationship of the outputs from the inputs for production workflows.
This will help transition to icav2 where data can be moved into separate folders per analysis output
An example of this would be:
s:analysisOutput:
  umccrise_output_directory: .output_directory_name

We can use the out/ directory to catch all outputs and direct wherever we need. Not implementing per-directory uploads.


Adding leptonica methods

I'd like to add a few additional leptonica methods to do image cleanup (e.g. pixRotateAMGray, pixCloseGray) and expose them in Pix.
Happy to make these changes and do a pull request, but I wanted to see if there was a design preference on how much to expose low level leptonica functions (and the resulting cluttering of the Pix public methods).  Some options that come to mind depending on how people feel:

Add new function signatures to LeptonicaApi.cs and equivalent public methods to Pix.cs.
Add new function signatures to LeptonicaApi.cs, unseal Pix.cs and add new public methods to my own subclass of Pix.cs.  The subclass would live in my own code and not get pulled back into tesseract.net.
Add new function signatures to LeptonicaApi.cs and expose LeptonicaApi.Native as a property of Pix.
Don't touch the tesseract.net code and create my own leptonica wrapper using InteropDotNet

I'm happy to accept any changes provided they keep to same style as the
rest of the project. Ideally with a corresponding integration/regression
test.
In regards to the options I think option 1 would be best, even though it
does potentially lead to an explosion of methods on Pix. Ideally you
shouldn't use the *API calls directly from your code base as it's an
implementation detail and really should be internal but couldn't be for
technical reasons.
On 29 May 2016 09:15, "jli416"<EMAIL_ADDRESS>wrote:

I'd like to add a few additional leptonica methods to do image cleanup
(e.g. pixRotateAMGray, pixCloseGray) and expose them in Pix.
Happy to make these changes and do a pull request, but I wanted to see if
there was a design preference on how much to expose low level leptonica
functions (and the resulting cluttering of the Pix public methods). Some
options that come to mind depending on how people feel:

Add new function signatures to LeptonicaApi.cs and equivalent public
methods to Pix.cs.
Add new function signatures to LeptonicaApi.cs, unseal Pix.cs and add
new public methods to my own subclass of Pix.cs. The subclass would live in
my own code and not get pulled back into tesseract.net.
Add new function signatures to LeptonicaApi.cs and expose
LeptonicaApi.Native as a property of Pix.
Don't touch the tesseract.net code and create my own leptonica wrapper
using InteropDotNet

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/charlesw/tesseract/issues/272, or mute the thread
https://github.com/notifications/unsubscribe/AAPzyJv9s2xLbHaCQQ1iYp6f7wFeFQMQks5qGUsPgaJpZM4IpPVx
.

@jli416 Those methods have been pulled into develop branch recently.

Closing, if you have any additional api methods you want exposed please create a separate issue detailing exactly what functionality should be included or better yet a pull request :)


Adds gitter badge to README

Coverage remained the same at 89.265% when pulling e3356918b45bdfedda9058cbc7167627bc4f54d5 on brianium:gitter into 01fa66e2517bfca839bf42fd9655f643c6bc8e09 on peridot-php:master.

Looks like you're already aware of shields.io, haha. Good stuff.

All good man. If the codecov PR is good, maybe we can get that merged first and ill update this badge to the flat style with the rest of them.

Ended up just re-doing this work in #d04dfa4 because the merge proved problematic.


Planning on using your source code to promote some components I've built.

Is that ok with you? Calling it PlaidBlocks fyi

Say less! ill be waiting the pr👀

ohh I misunderstood you hahaha. You can use it of course, I would just like some mention

Appreciate it, will do thanks :)

Gave credit here! thanks again


Package request: Planka

Project description

Free open source kanban board for workgroups.

Very closely reproduces Trello UI.
Metadata

homepage URL: https://planka.app/
source URL: https://github.com/plankanban/planka
license: GNU Affero General Public License v3.0
platforms: unix, windows

I'm very interested in this too. Does anyone have any flakes or other prior art in the meantime?

I'm very interested in this too. Does anyone have any flakes or other prior art in the meantime?

Hey, I personaly used compose2nix with planka docker-compose.yml file
this look like this and this is working fine :
https://github.com/JustAlternate/nixcfg/tree/main/Beaver/planka

@JustAlternate I set it up and it's working. Thanks for sharing. It just sucks because upstream hasn't added configurations for lots of stuff, so you kind of end up needing to patch it to customize hardly anything about your deployment. Nix is much better at this than docker, as with docker you have to do a imperative rebuild process, but with Nix a custom package can just be built from another upstream package.
(I also like using Nix for other reasons, e.g. true reproducibility, etc).


Update README.md

I was wondering how to change the font size and color of text of Autolink component, so I mentioned it as a prop in README.

There is already a note in the README that all Text props will be passed through to the main Text node (e.g. style, numberOfLines, etc.). I've moved that higher up to make it more visible. Thanks for pointing this out.

@joshswan Thanks for the update on this pull request. 👍

@joshswan do you want me to delete this pull request?


WordprocessingDocument XML not updating after MainDocumentPart.Document is accessed

I am trying to follow the instructions of this MSDN article: https://blogs.msdn.microsoft.com/ericwhite/2008/12/10/working-with-in-memory-open-xml-documents/
My example is only slightly modified from it. I extracted the code to update text into its own function:
   public static void TestUpdateText(WordprocessingDocument doc, Func<string, string> contentFunc)
   {
   	XDocument xdoc = doc.MainDocumentPart.GetXDocument();
   	XNamespace w = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
   	XElement firstParagraph = xdoc
   	  .Element(w + "document")
   	  .Element(w + "body")
   	  .Element(w + "p");
   	if (firstParagraph != null)
   	{
   		string text = firstParagraph
   		  .Descendants()
   		  .Where(n => n.Name == w + "t" || n.Name == w + "ins")
   		  .Select(n => (string)n)
   		  .StringConcatenate();
   		firstParagraph.ReplaceWith(
   		  new XElement(w + "p",
   			new XElement(w + "r",
   			  new XElement(w + "t", contentFunc(text)))));
   		// write the XDocument back into the Open XML document
   		doc.MainDocumentPart.PutXDocument();
   	}
   }

therefore the main function is updated to:
    static void Main(string[] args)
	{
		byte[] byteArray = File.ReadAllBytes(@"dummy-testing.docx");
		using (MemoryStream mem = new MemoryStream())
		{
			mem.Write(byteArray, 0, (int)byteArray.Length);
			using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(mem, true))
			{
				TestUpdateText(wordDoc, t => t.ToUpper() + " First Change");
				var tempDoc = wordDoc.MainDocumentPart.Document;
				TestUpdateText(wordDoc, t => t.ToLower() + " Second Change");
			}

			using (FileStream fileStream = new<EMAIL_ADDRESS>System.IO.FileMode.Create))
			{
				mem.WriteTo(fileStream);
			}
		}
	}

The issue is quite strange, if I comment out the line
var tempDoc = wordDoc.MainDocumentPart.Document;

the final document will contain both "First Change" and "Second Change", but if I don't comment it out the final document will only contain "First Change" only. It seems whenever .Document property is accessed the part can no longer be updated via XML directly. Is this a bug or a restriction that has been documented somewhere else?
By the way, updating MainDocumentPart with API still works, for example, if I add the following line
tempDoc.AppendChild<Paragraph>(new Paragraph()).AppendChild<Run>(new Run()).AppendChild<Text>(new Text() { Text = "HELLO!!!" });

the final document will have the HELLO text.

"dumm-testing.docx" is just an arbitrary near blank Word document I created using Word 2017, only contain the text "this is a test document".

@ylw633, please have a look at issue #198, in which I describe the incompatibility between the Open XML SDK and the PowerTools for Open XML. I provided a way to fix that general issue in a pull request for the Open XML PowerTools that got merged a while ago.
That pull request also contains unit tests which demonstrate the issue you are facing and the solution, which is to use the (1) PowerToolsBlock or (2) StronglyTypedBlock classes to demarcate usages of (1) the Open XML PowerTools or (2) the strongly typed classes provided by the Open XML SDK where both are used together.
Looking at your code, I assume that you just wanted to demonstrate that usages of the strongly typed classes in such scenario can cause issues. The line of code causing the issue is not used in your sample code and should otherwise not be there. Right?

Thank you @ThomasBarnekow the information is really helpful!
Though the reason is different but it ends with same result. In fact, we had an existing component that first construct a document using strongly typed mechanism (SDK api), then merge the result with several documents using XML overwrite (PowerTools way). Since the changes of direct overwrite were not taken as mentioned previously, our code forced it by performing:
part.RootElement.InnerXml = documentContent;

However occasionally we get this exception
Index was outside the bounds of the array
   at DocumentFormat.OpenXml.TagAttributeTranslator.get_Trait()
   at DocumentFormat.OpenXml.OpenXmlElement.TrySetFixedAttribute(String namespaceUri, String localName, String value, Boolean strictTranslation)
   at DocumentFormat.OpenXml.OpenXmlElement.LoadAttributes(XmlReader xmlReader)
   at DocumentFormat.OpenXml.OpenXmlLeafElement.Populate(XmlReader xmlReader, OpenXmlLoadMode loadMode)
   at DocumentFormat.OpenXml.OpenXmlElement.Load(XmlReader xmlReader, OpenXmlLoadMode loadMode)
   at DocumentFormat.OpenXml.OpenXmlCompositeElement.Populate(XmlReader xmlReader, OpenXmlLoadMode loadMode)
   at DocumentFormat.OpenXml.OpenXmlElement.Load(XmlReader xmlReader, OpenXmlLoadMode loadMode)
   at DocumentFormat.OpenXml.OpenXmlCompositeElement.Populate(XmlReader xmlReader, OpenXmlLoadMode loadMode)
   at DocumentFormat.OpenXml.OpenXmlElement.Load(XmlReader xmlReader, OpenXmlLoadMode loadMode)
   at DocumentFormat.OpenXml.OpenXmlCompositeElement.Populate(XmlReader xmlReader, OpenXmlLoadMode loadMode)
   at DocumentFormat.OpenXml.OpenXmlElement.Load(XmlReader xmlReader, OpenXmlLoadMode loadMode)
   at DocumentFormat.OpenXml.OpenXmlCompositeElement.Populate(XmlReader xmlReader, OpenXmlLoadMode loadMode)
   at DocumentFormat.OpenXml.OpenXmlElement.ParseXml()
   at DocumentFormat.OpenXml.OpenXmlElement.MakeSureParsed()
   at DocumentFormat.OpenXml.OpenXmlCompositeElement.get_FirstChild()
   at DocumentFormat.OpenXml.OpenXmlCompositeElement.set_InnerXml(String value)

I tried to resolve this by not doing that but still need to make merging work, so I am weighing a better solution. Your answer does provide me with a direction to go, thank you very much for your help!

You are welcome, @ylw633. And for everybody else, the short form of the solution is to structure your code roughly as follows:
// Your strongly typed code here

using (new PowerToolsBlock(wordDoc))
{
    // Your PowerTools/Linq-to-XML code here
}

// Your strongly typed code here

And if you mainly use the PowerTools approach and only occasionally the strongly typed classes, you would turn it around as follows:
// Your PowerTools/Linq-to-XML code here

using (new StronglyTypedBlock(wordDoc))
{
    // Your strongly typed code here
}

// Your PowerTools/Linq-to-XML code here

This pull request saved my life! Many thanks to you and Eric for all the great work you do on the OpenXML Power Tools library.


Misc suggestions

Apologies for spamming bunch of issues.

[ ] Mark capability registers as read-only.
Currently they are read-write but they're supposed to be read-only according to the spec sheet.
[ ] Rename doorbell::Register into doorbell::Doorbell (with an alias of doorbell::Register).
There are lots of other registers and it is clearer to say Doorbell than to keep prefixing doorbell::Register.
[ ] Chain-able context setters, just like register bitmap setters ( as in https://github.com/rust-osdev/xhci/issues/83 )

I'll add a PR if these changes are appropriate.

Agree with all three suggestions. Please go ahead with PRs.


Issue with types? Using refine() with an array results in typescript linting error saying type is missing the message property. However, works in runtime.

Hello, I am using zod as a resolver with react hook form. I have a schema setup as follows:

const mySchema = z.object({
  // some other properties
  myArray: z.array({
    // some properties
  })
  .min(1)
  .max(10)
  .refine(
    (item) => {
      // some validation
    },
    {
      message: "My error message"
    }
  )
});

When trying to access the error message like below, I get a linting error saying property 'message' does not exist on type. However during runtime there is no error and I can access the message properly.
formState.errors.myArray.message

Any idea on how to resolve this?

Currently I'm using (errors.someField as any)?.message but that seems like a hack.
The example is constructed with Chakra UI & react-hook-form in mind but I guess the error might be similar with other libs.

If you don't want to use any you can use @ts-expect-error as a workaround for now.
Solution courtesy of bennettdams. Discussion: https://github.com/react-hook-form/react-hook-form/discussions/7111#discussioncomment-2956401

I tried to reproduce this issue but wasn't able to get the error: https://codesandbox.io/s/issue-with-types-using-refine-with-an-array-results-in-typescript-linting-error-z9etol?file=/src/App.tsx
Can you show a full example where this error occurs?


Add signal for notify changing frames in AnimationPlayer

Add signal for notify changing frames in AnimationPlayer
Added signal frame_changed to AnimationPlayer, with arguments
anim_name, track_name, track_index and frame, with the
following meaning:

anim_name: name of the animation inside AnimationPlayer
track_name: name of the track (i.e. Sprite:position)
track_index: the index of that track inside anim_name
frame: the key index inside that track (starting in 0)

Should implement #17623.

Is there a way to have this feature without penalizing performance for people not using this signal?

animation func track is so powerful too though. characters with a rigged skeleton animations are going to have massive signals being emitted with that, right? could be dangerous.
if does it get added, i ask please for option to opt-in (if condition) before signals get emitted

Yes, I had the same thoughts while coding it. I sent the PR for a discussion.
It's definitively too much signals in any case. I really don't think a notification in every frame is usefull. I have some ideas but I don't know if the use cases are covered by them. The most useful I see is this:
You can set the animation keys to emit the signal with an argument. For example, you can set the walking_anim/Sprite:position key at 2.3s (the 14th key of that track, index 13) to emit the key_trigger signal with the String argument walking_left_foot. This way, you can choose exactly which keys are the one you are interested in listening. In this example, the received signal could be somehow similar  to the one in the PR: _on_key_trigger('walking_left_foot', 'walking_anim', 'Sprite:position', 0, 13)
If a lot of signals are sent at the same time, perhaps the parameters could be converted to arrays or lists, but generating the same signal, or grouped by anim name or the custom String to emit.

To clarify my use cases in #17623, it is not required to received such signals in per-track basis and I don't even need any parameters (though, maybe timestamp would be nice to have).
Unity provides 'layer index' as the sole parameter of its OnAnimatorIK callback, but we don't have such a concept yet, so I guess we won't need it for now.
So, if there to be any significant performance overhead with adding many parameters to such a signal, I'm fine with omitting them since it wouldn't affect such use cases covered by #17523.

This is overkill, i suggest looking for a different way to solve the problem

Yes, I think this is (as the PR implements it) absurd.
I don't know if a valid solution could be have a "special" track for signals. And adding keys to that track would create the event for emit the signal. Thus, every time a key in that track is reached, the object will emit the signal. Only one signal track per object, one key per frame max, as the rest of tracks.

closing as no consense


question: what's the best way to execute code in the remote process from within the int3 exception handler?

i tried process.remote().ExecInNewThread, but the (*thread)->Join() takes forever
i tried process.remote().ExecInAnyThread, but it fails to suspend threads, because they are terminating, i think
tried something like this also, but not sure if can just modify return address (it generates access violation)
void Hook(blackbone::RemoteContext& context)
{
	auto assembly = blackbone::AsmFactory::GetAssembler(blackbone::AsmFactory::asm32);

	(*assembly)->jmp(context.returnAddress());

	void* code = (*assembly)->make();
	size_t codeSize = (*assembly)->getCodeSize();
	auto mem = process.memory().Allocate(codeSize, PAGE_EXECUTE_READWRITE, 0, false);
	if (!mem) {
		printf("Memory allocation failed!\n");
		return;
	}

	blackbone::MemBlock memBlock = std::move(mem.result());
	memBlock.Write(0, codeSize, code);
	context.returnAddress(memBlock.ptr());
}

not a bug / issue, just unsure how to deal with it

There's
void AsmHelper32::GenCall( const AsmFunctionPtr& pFN, const std::vector<AsmVariant>& args, eCalligConvention cc /*= CC_stdcall*/ )
consider using it instead of jump instruction. And make sure you've created a RPCEnvironment
before hooking like this:
process.remote().CreateRPCEnvironment(Worker_None, true);
Nonetheless your assembly code lacks essential procedures -
void AsmHelper32::GenPrologue( bool switchMode = false )
and
void GenEpilogue( bool switchMode = false, int retSize = -1 )
RemoteHook::hwpd  is a faster method of hooking. And by calling RemoteHook::Apply you are hooking every thread, you could avoid it like this:
process.hooks().Apply(RemoteHook::hwbp, address, &hookFunction, process.threads().getMain());
All I've said is also valid for 64bit assembler. You shouldn't use  process.remote().ExecInAnyThread and pass your main thread as an arguments, since it's probably being debugged.

thanks for your response, I managed to get the code running by changing to hwbp and modifying the Join() in process.remote().ExecInNewThread. there's some kind of deadlock there, due to the thread refusing to terminate, but DarthTon seems to be aware of this already. (https://github.com/DarthTon/Blackbone/issues/283#issuecomment-410546694)
i'll post again if i figure out why


libtpms: 0.8.0 -> 0.8.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/libtpms/versions.
meta.description for libtpms is: "The libtpms library provides software emulation of a Trusted Platform Module (TPM 1.2 and TPM 2.0)"
meta.homepage for libtpms is: "https://github.com/stefanberger/libtpms"
meta.changelog for libtpms is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 0.8.2 with grep in /nix/store/h09hqcqb5mg5lq53vqjkv4kgmv595bxd-libtpms-0.8.2

directory tree listing: https://gist.github.com/c849f5d03d8c8cdc7423ef7acf0d95d7

du listing: https://gist.github.com/7108f9fd0b7969542c1c304a9aee6e47

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

2 x86_64-linux rebuild(s)
0 i686-linux rebuild(s)
0 x86_64-darwin rebuild(s)
0 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
libtpms
swtpm

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/h09hqcqb5mg5lq53vqjkv4kgmv595bxd-libtpms-0.8.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A libtpms https://github.com/r-ryantm/nixpkgs/archive/2a3115f2154988e251d586fa6614c22469f1daa3.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/h09hqcqb5mg5lq53vqjkv4kgmv595bxd-libtpms-0.8.2
ls -la /nix/store/h09hqcqb5mg5lq53vqjkv4kgmv595bxd-libtpms-0.8.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

libtpms
swtpm (swtpm-tpm2)

Maintainer pings
cc @baloo for testing.

Reviewed the changes, they make sense.
Compiled and tested with my development workflow, everything work, but I don't use the affected parts.
+1


org_settings: Using the file name as the emoji_name

Fixes part of #20316
Testing plan:
GIFs or screenshots:

@somesh202 thanks for working on this!  I don't think we want to use the emoji filename when submitting; instead, the idea was to prepopulate the name field if empty when uploading the emoji file.

@timabbott In this case, if the name field is empty and user submits the emoji, then it uses the filename as the emoji name.
Can you please elaborate on the idea of pre-populating the field once, so that I can implement that?
Thanks!

The intent is for the user to see what name might be used before a request is sent to the server to create that emoji; it's not a good user experience to auto-submit a value, since the user won't have the opportunity to view and potentially change it if they don't want to use the filename.

This is a sample data list that would suggest the user for selecting names and can also write/modify it before submitting the emoji. Will this work? @timabbott


[Testing] Update PrjFSLib to create sparse files

Go for the simplest approach of seeking to the end and writing '\0' to start.

I think this should work for APFS, but does ftruncate() not have the same effect there?
HFS+ doesn't support sparse files, my suggestion there would be to write a compressed file with all zeroes, which should fit into a single 4KiB xattr extent for all but the most gigantic files.

Can we also add a test to verify this? (I think stat on the file can be used to read the size as would be seen by user and du could be used to verify actual disk usage of the file.)

Can we also add a test to verify this? (I think stat on the file can be used to read the size as would be seen by user and du could be used to verify actual disk usage of the file.)

On Linux, this is certainly true, on macOS I'm not having much luck with either stat or du:
$ rm -f ./sparse
$ dd oseek=1000 count=1 if=/dev/zero of=./sparse
1+0 records in
1+0 records out
512 bytes transferred in 0.000031 secs (16519105 bytes/sec)
$ stat -f "%z %b" sparse
512512 1008
$ du sparse
1008	sparse

This is on APFS on macOS 10.14.3, so in theory sparse files should be supported.

Can we also add a test to verify this? (I think stat on the file can be used to read the size as would be seen by user and du could be used to verify actual disk usage of the file.)

On Linux, this is certainly true, on macOS I'm not having much luck with either stat or du:
$ rm -f ./sparse
$ dd oseek=1000 count=1 if=/dev/zero of=./sparse
1+0 records in
1+0 records out
512 bytes transferred in 0.000031 secs (16519105 bytes/sec)
$ stat -f "%z %b" sparse
512512 1008
$ du sparse
1008	sparse

This is on APFS on macOS 10.14.3, so in theory sparse files should be supported.

Tried this on on 10.13.6 APFS (am using if=/dev/null) -
$ rm -r ./sparse
$ dd oseek=10000 count=1 if=/dev/null of=./sparse
0+0 records in
0+0 records out
0 bytes transferred in 0.000047 secs (0 bytes/sec)
$ stat -f "%z %b" sparse
5120000 0
$ du sparse
0	sparse

HFS+ doesn't support sparse files, my suggestion there would be to write a compressed file with all zeroes, which should fit into a single 4KiB xattr extent for all but the most gigantic files.

How does this work? Do you mean keeping a compressed all-zero template file, that could be used for placeholder creation?

How does this work? Do you mean keeping a compressed all-zero template file, that could be used for placeholder creation?

Compressed files on HFS+ (“decmpfs”) consist of a header struct followed by the compressed payload written to the special xattr.  So you can just send an appropriate number of zero bytes through deflate() and write the result to the xattr to give you an all-0 file with that size. If you know the deflate bitstream format, you can also just keep explicitly emitting commands for blocks of repeated zero bytes to avoid the cost of the whole compression algorithm. Alternatively there are probably cheaper/simpler algorithms you can choose which are just as good at repeating 0 bytes.

@nickgra @jeschu1 can this PR be closed now that we've gone with the approach of writing empty files?

@nickgra @jeschu1 can this PR be closed now that we've gone with the approach of writing empty files?
(See #1130 for that change)

I'd thinks so but @nickgra is the boss of this PR :-)

@nickgra @jeschu1 can this PR be closed now that we've gone with the approach of writing empty files?
(See #1130 for that change)

I'd thinks so but @nickgra is the boss of this PR :-)

Thanks for the reminder, closing this stale PR.


enable typescript compiler to javascript files

typescript compiler can run in javascript project or files when is configured with "allowjs" and "checkjs" in tsconfig.json

Thanks!

Please edit the wiki accordingly: https://github.com/neomake/neomake/wiki/Makers

Ok


Changing cursor for desktop apps

For desktop applications it would be nice to be able to change the mouse cursor when hovering elements.
If someone would guide me in the right direction I'd be willing to add this feature myself. Currently I'm lacking knowledge of Kivy internals.
I looked into the possibilities of doing so and found https://wiki.libsdl.org/SDL_CreateSystemCursor
I think implementing this as Window.set_cursor(self, cursor_type) would be nice, but I'm not sure if any of this is possible.
PS:I also found this commit by @akshayaurora which shows the files that need to be touched (i guess)
https://github.com/kivy/kivy/commit/616be4835768aeed5cb7cc72ce51c19dac09d1a0

I have implemented and tested it in sdl2_cursors branch . It works very well on Windows and Linux, except for some reason it is not using the correct resizing icons on Ubuntu.
PR will come some time later.

With https://github.com/kivy/kivy/pull/5308 and https://github.com/kivy/kivy/pull/7658 features available it is now possible write code to change mouse cursor when hovering over widgets.
You can find working hover event manager and hover behavior at https://github.com/pythonic64/hover.


Magetwo 90719 reorder exception

This PR is to fix the mistakes in this commit https://github.com/magento/zf1/commit/34a90a1e791c173073235d9e213a0d8235db399b. The change looks good to me


Is there a meaningful extension system in React? Is it at all documented?

Hi everyone!
I've been itching to contribute to React ever since I read about the project, but haven't been able to understand how to extend any of the several key points I could potentially want to use. Say, if I want to use CFV\SpiffyNewResponse instead of React\Http\Response (just an example) or maybe start building a MongoDB driver that plays nice into the general way of working with react for one reason or another, there is just no clear guidance on how to do that, or even if such a thing is something that can be done.
Hence my questions. Is this something that is already in place, or planned? Is there any documentation whatsoever on what the requirements to even start doodling such a thing are? How does one inject any non-default functionality at all into React?

I've wanted to do certain stuff to React as well, but since it is using "private" properties instead of "protected" properties most of the place it is kind of hard to add functionality without forking the entire project.
If properties had been protected, you could extend core classes and that way you would be able to inject functionality.
I have been working on an "application server" for react (https://github.com/frodeborli/fubber-reactor). It has a special controller type "ForkingController" that I am unable to get working without actually forking react core.

Hey folks. The best way I've found, to hook into these private props is by decoration...

Unfortunately I don't really see how to apply that to cover my use case

I think you should patch react, by simply making the properties protected, instead of private. Send in a pull request on your change. You would then be able to override React\Http\Server and use your own version.
Also, React has a powerful event system. You can listen to events and hook into them. Take a look at the source code to find the events that are emitted.
For the example you provide I would take the following approach:
$loop = \React\EventLoop\Factory::create();
$socket = new \React\Socket\Server($this->loop);
$http = new \React\Http\Server($this->socket);
$this->http->on('request', function($request, $response) {
   $myRequest = new PSRReactResponseWrapper($response);
   $myResponse = new PSRReactRequestWrapper($request);

   someRequestHandler($myRequest, $myResponse);
});

I would look into https://github.com/php-fig/fig-standards/blob/master/proposed/http-message.md for my response/request wrappers.

I'm running in the same issues, and the main reason seems to be not only the private properties but also extensive logic in the factories.
I'm using AuraPHP, which has a dependency injection system specifically designed for easily adding in your replacements (be it for mocking with tests or extending). But I constantly find myself negating the power of this system by using the various static create functions, which contain logic I otherwise can't access.

For the most part, React uses interfaces and DI all over the place and allows you to inject custom instances and has an elaborate event mechanism that easily allows you to hook into.
Private properties came up multiple times already and we have yet to see some good arguments against them. Also, this is really a non-issue as it can easily be avoided by using the usually much cleaner decorator pattern as pointed out by @assertchris .
Let's make this actionable, what other issues are you seeing that need to be addressed? :+1:

I'll assume this is resolved and will close this for now, please feel free to report back otherwise :+1:


Upgrade golang.org/x/oauth2

akeyless-go has golang.org/x/oauth2 version v0.0.0-20190604053449-0f29369cfe45 as a dependency, which uses golang.org/x/net version v0.0.0-20190108225652-1e06a53dbb7e. This version is affected by multiple vulnerabilities.
For instance:

https://security.snyk.io/vuln/SNYK-GOLANG-GOLANGORGXNETHTML-3314984
https://security.snyk.io/vuln/SNYK-GOLANG-GOLANGORGXNETHTTP2-3028257

This PR upgrades the version for golang.org/x/oauth2, fixing those vulnerabilities.
@rani-sharim Does it look good to you?

akeyless-go has golang.org/x/oauth2 version v0.0.0-20190604053449-0f29369cfe45 as a dependency, which uses golang.org/x/net version v0.0.0-20190108225652-1e06a53dbb7e. This version is affected by multiple vulnerabilities.
For instance:

https://security.snyk.io/vuln/SNYK-GOLANG-GOLANGORGXNETHTML-3314984
https://security.snyk.io/vuln/SNYK-GOLANG-GOLANGORGXNETHTTP2-3028257

This PR upgrades the version for golang.org/x/oauth2, fixing those vulnerabilities.
@rani-sharim Does it look good to you?

Hi, @betabandido, thank you for your interest. We have upgrade oauth2 package to version 0.8.0 and released new SDK. Please, use latest version.


v19.0.1 improve PHPDoc

[Current coverage][cc-pull] is 98.09%

Merging [#472][cc-pull] into [master][cc-base-branch] will not change coverage

@@             master       #472   diff @@
==========================================
  Files            27         27
  Lines           420        420
  Methods         103        103
  Messages          0          0
  Branches          0          0
==========================================
  Hits            412        412
  Misses            8          8
  Partials          0          0

Powered by Codecov. Last updated by [b869b76...ae4014b][cc-compare]
[cc-base-branch]: https://codecov.io/gh/eugene-matvejev/battleship-game-api/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/eugene-matvejev/battleship-game-api/compare/b869b76cf97a23cbb18c7eb4437db8cc01135e8c...ae4014b5dad3c995b70b9b264b3ffc5c415f3a22
[cc-pull]: https://codecov.io/gh/eugene-matvejev/battleship-game-api/pull/472?src=pr


Empty Template is missing AddRouting()

The empty template is missing a call to AddRouting() so it doesn't start :(

Preview5?

Nevermind. This is not broken https://github.com/aspnet/AspNetCore/blob/master/src/DefaultBuilder/src/WebHost.cs#L227
The default host does this.

The explantion is that I started with the empty template, and then I changed Program.cs to not use the default builder.


Added Heroku config to redirect to https

This just adds a Heroku config file to redirect to https.
Referencing this: https://stackoverflow.com/a/64119594

nice! Thanks for picking this up


When does this oss test Laravel 9?

Thank you for your great project. Laravel9 was released February 8th, 2022. So, we plan to use Laravel 9 as a web application in our project. And I have a question. Does this oss have plans to test Larave9? I want to know a rough roadmap on it for me and other developers waiting for that.
Also, I will share the information on our local testing result with Laravel9 if I get it.

@pomcho555 I've successfully installed this on Laravel 9 and it works, just add the package and the credentials on config/queues.php and that's all.

Thank you for your kind report.
I have to share my experiment with you. This oss should do the trick on Laravel 9.2 like you did.
We also tried some tests to verify if it works well with sample messages on SQS, and they were successful.
My gentle suggestion is that the README.md should have this information for Laravel 9.x users.

Added this commit:
https://github.com/Binternet/laravel-sqs-fifo-queue/commit/7986e6509e11c57270238073729e2b8fb95cab0e
If this looks OK let me know and i'll open a PR.

@pomcho555 , @Binternet ,
I appreciate the patience on this. The package has been updated to support both Laravel 9x and 10x, as well as PHP 8+. The new 3.0.0 tag for this support was released today.
Thanks,
Patrick


Upgrade getallheaders polyfill

Upgrade from v2 to v3 here since we are on PHP 7+

Install
For PHP version >= 5.6:
composer require ralouphie/getallheaders
For PHP version < 5.6:
composer require ralouphie/getallheaders "^2"
(https://github.com/ralouphie/getallheaders#install)

Coverage remained the same at 99.731% when pulling c68223e5667c37edbf85767ebd2d9c7508dc9648 on danopz:upgrade-getallheaders into d312896b7cd4aca7d4b86b64acdfcb5cc3da758f on slimphp:master.

Good to merge.


"Invalid status code provided" while processing the Http Response

[x] I was not able to find an open or closed issue matching what I'm seeing.
[x] This is not a question. (Questions should be asked on chat (Signup here) or our forums.)

Issue #27 should be reopened.
This is 2019 and we should not fail to parse a response just because the HTTP Status is not strictly standard.
Adding a custom HTTP status is not an option if we are dealing with external Http servers. In my case I'm getting a 520.
Code to reproduce the issue

Response.php

    /**
     * Set HTTP status code and (optionally) message
     *
     * @param  int $code
     * @throws Exception\InvalidArgumentException
     * @return self
     */
    public function setStatusCode($code)
    {
        $const = get_class($this) . '::STATUS_CODE_' . $code;
        if (! is_numeric($code) || ! defined($const)) {
            $code = is_scalar($code) ? $code : gettype($code);
            throw new Exception\InvalidArgumentException(sprintf(
                'Invalid status code provided: "%s"',
                $code
            ));
        }

        return $this->saveStatusCode($code);
    }

Expected results

Treat anything >= 600 as a 500 - Internal Server Error
Accept any 5xx
Accept any 4xx
Accept any 3xx
Accept any 2xx as OK
No change to 1xx

Actual results

Zend-Http is able to understand "I'm a teapot"  but unable to process LOTs of valid responses coming from a myriad of sources.
This really needs to be fixed. Otherwise people will accelerate the move out of Zend altogether.
Please let me know if you are willing to accept this issue, and need help implementing it.

This is 2019 and we should not fail to parse a response just because the HTTP Status is not strictly standard.

That's not a helpful way to report issues: if you have a problem, send a patch with a test case, but writing "it should zomg why no fix yet?!" is not going to make you a lot of friends in OSS projects.
I'm pretty sure that we should not support anything above 599 anyway though, as zendframework/zend-diactoros also enforces that

Hi Ocramius
Thanks for reading.
I'm more than happy to submit a patch for this. But first I need the approvers to agree on a design or expected results.

Ok. No response from any maintainer. Good thing is I did not fix anything.
This seems to be abandonware. I will stop using zend-http, and as always try to get out of zend and PHP.

Ok. No response from any maintainer. Good thing is I did not fix anything.
Nice state of mind ...

Maintainers have fulltime-job and family life, some are also involved in several open-source projects (like Ocramius; thanks for your job :+1: ) or go to events in the PHP community (as speakers or not).
They may not answer as fast as YOU would like...Be patient

Zend-Http is able to understand "I'm a teapot" but unable to process LOTs of valid responses coming from a myriad of sources.
Not strictly valid since HTTP code 520 itself is not documented by any of the HTTP specifications...

I will stop using zend-http, and as always try to get out of zend and PHP.
It's not a problem proper to Zend Framework nor PHP...

Hi MadCat34,
Let's try to solve this issue.
zend-diactoros: https://github.com/zendframework/zend-diactoros/blob/9a4b4a3c78c1a65e6096fb1f37ab424f33c68821/src/Response.php#L170
zend-http: https://github.com/zendframework/zend-http/blob/master/src/Response.php#L280
We need to make zend-http behave exactly like zend-diactoros:

setStatusCode should only throw an exception is the http status code is < 100 or > 599

Please note, the standard defines ranges, but from my understanding it doesn't prohibit anything like 520 or 555.

If you guys are willing to accept this change, I'm fine to write the code and few tests.

The approach is fine: send a patch with a failing test case and the fix for it, and it will most likely be merged.
Also, as @MadCat34 said, OSS is not my full-time job: I do this when I have time and the mood for it.

@roypalacios Are you willing to submit your PR?

Hi @webimpress,
Yes, I can submit it in the next few days!

Hello @webimpress @Ocramius @MadCat34
Please review the pull request -> https://github.com/zendframework/zend-http/pull/194
I have modified the code so that it behaves just as diactoros in this sense.
zend-diactoros: https://github.com/zendframework/zend-diactoros/blob/9a4b4a3c78c1a65e6096fb1f37ab424f33c68821/src/Response.php#L170
If anything else is needed, please let me know.
Roy


Where to pull CLI image from after bintray sunset?

According to https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/ bintray will be taken down on May 1. However, your README still says to download the CLI docker image from bintray. https://github.com/jfrog/jfrog-cli#using-jfrog-cli-docker-image Is there somewhere else we should be pulling from?

Sure @rittneje,
The README and the Get CLI pages will be soon updated with the new docker images. See below.
In addition to the "slim" JFrog CLI docker image, which includes only JFrog CLI, we added a new "full" docker image. The new image includes, in addition to JFrog CLI, all the tools and package managers JFrog CLI supports, such as curl, maven, gradle, npm, pip, and more.
Here's how you fetch the images -
docker run releases-docker.jfrog.io/jfrog/jfrog-cli jfrog -v

docker run releases-docker.jfrog.io/jfrog/jfrog-cli-full jfrog -v

Please let me know if this helps.

Perfect, thanks!


Many changes to the FAQ content

Add “Hyku” term and info about it; restructured content; general text improvements.

@hannahfrost I'm inclined to merge.


Add custom headers on request

Your use case
We are looking for a way to add a custom defined header on the useAsyncQuery function of the client. In our case the visitors Customer Id needs to be added to some requests. But it seems we are not able to override the headers from the query location.
      const query = gql`
        query getShips($limit: Int!) {
          ships(limit: $limit) {
            id
            name
          }
        }
      `
      const variables = { limit: 5 }
      const { data } = await useAsyncQuery(query, variables)

The solution you'd like
I would be nice to add custom headers like below, they should than be merged with the auth headers specified when defining the client.
const query = gql`
  query getShips($limit: Int!) {
    ships(limit: $limit) {
      id
      name
    }
  }
`
const variables = { limit: 5 }
const headers = { customer-id: "123456789" }

const { data } = await useAsyncQuery(query, variables, headers)

Possible alternatives
No response
Additional information
No response

I would also like to have this option, it would be very useful

After many failed attempts and a lot of conversation with ChatGPT I managed to arrive at this palliative. I don't know if this is the best way to solve this problem. But in my application it is working.
packge.json
{
  "private": true,
  "version": "1.0.0",
  "devDependencies": {
    "@nuxtjs/apollo": "5.0.0-alpha.6",
  },
  "dependencies": {
    "@vuestic/nuxt": "^1.0.14",
    "vue": "^3.3.4",
  }
}

I created this middleware that does the magic
middleware/apollo.global.ts
import { defineNuxtPlugin } from '#app'
import { ApolloClient, InMemoryCache, HttpLink } from '@apollo/client/core'
import { setContext } from '@apollo/client/link/context'

export default defineNuxtPlugin(nuxtAppMain => {

  const getTenant = () => (window ? window.location.hostname.split('.')[0] : '')
  const getApiUrl = () => (window ? window.origin.replace(getTenant(), 'api').replace(':3000', '') : '')

  const httpLink = new HttpLink({ uri: `${getApiUrl()}/graphql`, })

  const token = localStorage.getItem('userToken'); // Recuperar o token do localStorage

  const authLink = setContext((_, { headers }) => {
    return {
      headers: {
        ...headers,
        'x-tenant': getTenant(),
        'Authorization': token ? `Bearer ${token}` : "", // Token in header
      },
    }
  })

  const apolloClient = new ApolloClient({
    link: authLink.concat(httpLink),
    cache: new InMemoryCache(),
  })

  const nuxtApp = useNuxtApp()

  nuxtApp._apolloClients.default = apolloClient
})

It's working for me, I'll leave it here in case it helps anyone else, but I'd prefer the functionality described here to be the definitive one and not this middleware creation just to recreate the graphql instance and give me the possibility to adjust the headers. It should be simpler.

Nice work @CeruttiMaicon let's see if it works for us too @Kevintjuhz

Just curious – what is the use case for this? If the customer_id influences the query result, it should really be a variable in the query itself.

Nice work @CeruttiMaicon let's see if it works for us too @Kevintjuhz

Did it work correctly for you?

I would also like to see this functionality.
@CeruttiMaicon, your provided code is a middleware but uses the defineNuxtPlugin app?

IT works for me.
const {data} = await useAsyncQuery({   query: query,   variables:   {id: '....'},   clientId: 'default',   context: {     headers: {       'X-Custom-Header': 'customHeaderValue',     },   }, })


[keyword] if/then/else

https://github.com/json-schema-org/json-schema-spec/issues/180

I would prefer a containing keyword for these, so you can have multiple ifs for a single entry. Something like this, maybe?
"conditional": [
    {
        "if": {"$ref": "#/definitions/condition1"},
        "then": {"$ref": "#/definitions/schema1"},
        "else": {"$ref": '#/definitions/schema2"}
    },
   {
         "if": {"$ref": "#/definitions/condition2"},
        "then": {"$ref": "#/definitions/schema3"},
        "else": {"$ref": '#/definitions/schema4"}
    }
]

The order of the array shouldn't impact whether data passes validation or not, so schema writers can focus on it having it make sense at first glance.
If you only have need for one conditional statement,, then you could just skip the array entirely.
"conditional":  {
         "if": {"$ref": "#/definitions/condition1"},
        "then": {"$ref": "#/definitions/schema1"},
        "else": {"$ref": '#/definitions/schema2"}
    }


Use List.ConvertAll instead of LINQ

PR Summary

PR Context
PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[x] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[x] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: or [ WIP ] to the beginning of the title (the WIP bot will keep its status check at Pending while the prefix is present) and remove the prefix when the PR is ready.

Breaking changes

[x] None
OR
[NA] Experimental feature(s) needed

[NA] Experimental feature name(s):

User-facing changes

[x] Not Applicable
OR
[NA] Documentation needed

[NA] Issue filed:

Testing - New and feature

[x] N/A or can only be tested interactively
OR
[NA] Make sure you've added a new test if existing tests do not effectively test the code changed

Tooling

[x] I have considered the user experience from a tooling perspective and don't believe tooling will be impacted.
OR
[NA] I have considered the user experience from a tooling perspective and opened an issue in the relevant tool repository. This may include:

[NA] Impact on PowerShell Editor Services which is used in the PowerShell extension for VSCode
(which runs in a different PS Host).

[NA] Issue filed:

[NA] Impact on Completions (both in the console and in editors) - one of PowerShell's most powerful features.

[NA] Issue filed:

[NA] Impact on PSScriptAnalyzer (which provides linting & formatting in the editor extensions).

[NA] Issue filed:

[NA] Impact on EditorSyntax (which provides syntax highlighting with in VSCode, GitHub, and many other editors).

[NA] Issue filed:

Do we have performance results before and after for this?
cc @daxian-dbw

@TravisEz13 In general, there's not a large performance difference between the two approaches.
Using ConvertAll does avoid an IEnumerable allocation and means we can remove the using System.Linq.
    private List<int> list = Enumerable.Repeat(10, 10).ToList();
    public List<string> Linq()
    {
        return list.Select(t => t.ToString()).ToList();
    }
    public List<string> ConvertAll()
    {
        return list.ConvertAll(t => t.ToString());
    }

https://gist.github.com/xtqqczze/22cfeb3eb34e4ca21f4af87adf4956a5
|   Method  |     Mean |   Error |   StdDev |  Gen 0 | Gen 1 | Gen 2 | Allocated | Code Size |
|---------- |---------:|--------:|---------:|-------:|------:|------:|----------:|----------:|
|      Linq | 352.1 ns | 8.89 ns | 25.93 ns | 0.1259 |     - |     - |     528 B |    1313 B |
|ConvertAll | 295.1 ns | 9.09 ns | 26.66 ns | 0.1087 |     - |     - |     456 B |     353 B |

@daxian-dbw  Can you review?

I wonder why do you fix only one place? I found some more with .Select( pattern.

I wonder why do you fix only one place? I found some more with .Select( pattern.

The analyzer I used only found 1 instance of the pattern: list.Select(d).ToList().
All the other locations seem to be ienumerable.Select(d).ToList().

The analyzer I used

Ok :-)

The analyzer I used

RCS1077

The analyzer I used

RCS1077

It seems it does not cover array.

Format working group can you review the change?

Maintainers reviewed and agreed to merge this.


Interface Inherits others Interface

Hello Abel, I wanted to consult you if there is a way to handle an interface that inherits other interfaces. Within my application I have this situation and when validating the json generated it tells me the following error Duplicate key post, this because the json duplicates the documentation of the methods that correspond to the inheritance of the interface, I attach the Json generated in line 233 You can see that there is a duplicity. I remain attentive to your comments.
UnderWritingService.txt
UnderWritingService.txt

Hide all the unwanted tags in the web.config.

Thanks @xkzt0 for your help but the problem persists.
I need to be able to indicate within the schema of inheritance swagger. For what I checked inside the Schema class there is a property that is ParentSchema but how can I use that property since this class is internal. I need to do this since my project has interface inheritance and the json that generates swagger has errors that indicate that there is a duplicate key because the legacy methods document them more than once.
Please any suggestions

@cacosta2018 do you add ServiceContract Attribute on both interfaces ? even implement class ?

Hi @justin0522 yes on both interface

@cacosta2018 maybe you should remove ServiceContract Attribute from interfaces, add it on implement class. Or merge two interfaces to one.


Allow monitoring applications from Librato

There's already support for reporting metrics to Datadog, we should support Librato as well.
I would love to see a PR for this!

Apparently the standard Statsd integration is enough :+1:


[core] - tracingPolicy only invoked once on retries

Tested this on both core V1 and core V2 - it looks like tracingPolicy is only run once regardless of number of retries.
To reproduce (using Key Vault as an example):
async function main(): Promise<void> {
  const provider = new NodeTracerProvider();
  provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
  provider.register();

  const tracer = provider.getTracer("my-service");

  const keyClient = new KeyClient("<KEYVAULT_NAME>", new AzureCliCredential(), {
    retryOptions: {
      maxRetries: 2,
    },
  });
  await tracer.startActiveSpan("root", async (span) => {
    await keyClient.createEcKey("retry");
  });
}

Then modify exponentialRetryPolicy to always retry up to the retryCount (easier than setting up the retry conditions).
Expected:

3 spans should be created, one for original try and 2 for 2 retries

Actual:

Only one span is created

Note: haven't had a chance to dig into the root cause yet - would we just need to reorder policies in coreHttp and coreClient?

This might get fixed by #19078 thanks to @sadasant 😄
This is fine to parent against Azure Core Fundamentals for JS IMO - it won't block core-tracing GA


[GradleV3] Improve task failure message

Task name: GradleV3
Description:
Improve task failure message to make it user-friendly
Changelog:

Improved task failure message
Moved helper functions to separate modules
Added interfaces
Resolved linter warnings
Updated linter settings
Added JSdoc to the functions

Documentation changes required: No
Added unit tests: No
Attached related issue:

#3472

Checklist:

[x] Task version was bumped - please check instruction how to do it
[x] Checked that applied changes work as expected

/azp run

Hey @mmrazik, could you please review and merge this pull request?

/azp run

/azp run


[release-0.49] virt-launcher: adjust overhead calculation for processes

This is a manual backport of https://github.com/kubevirt/kubevirt/pull/7264
What this PR does / why we need it:
This commit effectively addresses a TODO in the memory overhead calculation for virt-launcher.
It replaces an arbitrary overhead value with the observed memory usage of each process running inside virt-launcher.
A test also ensures we catch any future growth.
Release note:

NONE

/cc @dhiller Would you be able to look at this one?

/cc @vladikr @davidvossel

/approve

@enp0s3 PTAL

/approve


Better documentation of Duration field

Even tho the logging fields are listed in the docs, it really doesn't provide much value without a description of each field. For example, the time unit for the Duration field really needs to be written somewhere. It would also be good to know exactly how Duration is measured, see for instance the documentation for timetaken in IIS: https://support.microsoft.com/en-us/help/944884/description-of-the-time-taken-field-in-iis-6-0-and-iis-7-0-http-loggin

This is confusing to my organization too. What is the time unit on the Duration fields?

@knbnnate
In a Duration field, you can specify the unit directly ex. 1s or 1ms.
For more information, please join our Community Forum and reach out to us on the Traefik section.

looks like it is us not ms?

I'd like to help fix this for the Hackaethon


REQUEST FEATURE "DELETE"

All other wave controllers/gateways I have owned and used in the years. I have always been able to delete a device.
it is because some times it is needed either the system think it is there but actually not is.
Then it keep the system busy trying to Heal og re-interview the device but can not because it is not there.
so you have to be able to delete and forget devices.
and the failed node is not enough because it can take hours before the system find it is not present.

Hi there @koburg 👋
This is the issue tracker for the add-on. However, add-ons wrap existing software (in this case, Z-Wave JS to MQTT). We don't develop features in the add-on, so I cannot help you.
Please request features specific to the software program running inside the add-on, with the upstream project.
Thanks! 👍
../Frenck 🚂


加载插件时报错

01-30 09:48:39 [DEBUG] nonebot | Succeeded to load adapter "OneBot V11"
01-30 09:48:39 [SUCCESS] nonebot | Succeeded to import "echo"
01-30 09:48:40 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_heweather"
01-30 09:48:40 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_pixivrank_search"
01-30 09:48:40 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_guild_patch"
01-30 09:48:40 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_abbrreply"
01-30 09:48:40 [DEBUG] nonebot_plugin_trace_moe | 2
01-30 09:48:40 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_trace_moe"
01-30 09:48:40 [SUCCESS] nonebot | Succeeded to import "nonebot_plugin_htmlrender"
01-30 09:48:40 [ERROR] nonebot | Failed to import "nonebot_plugin_imgexploration"
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python3.8/multiprocessing/spawn.py", line 116, in spawn_main
exitcode = _main(fd, parent_sentinel)
File "/usr/lib/python3.8/multiprocessing/spawn.py", line 129, in _main
return self._bootstrap(parent_sentinel)
File "/usr/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap
self.run()
File "/usr/lib/python3.8/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.8/dist-packages/uvicorn/_subprocess.py", line 76, in subprocess_started
target(sockets=sockets)
File "/usr/local/lib/python3.8/dist-packages/uvicorn/server.py", line 60, in run
return asyncio.run(self.serve(sockets=sockets))
File "/usr/lib/python3.8/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.8/dist-packages/uvicorn/server.py", line 67, in serve
config.load()
File "/usr/local/lib/python3.8/dist-packages/uvicorn/config.py", line 477, in load
self.loaded_app = import_from_string(self.app)
File "/usr/local/lib/python3.8/dist-packages/uvicorn/importer.py", line 21, in import_from_string
module = importlib.import_module(module_str)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/root/LING/./bot.py", line 27, in
nonebot.load_from_toml("pyproject.toml")
File "/usr/local/lib/python3.8/dist-packages/nonebot/plugin/load.py", line 122, in load_from_toml
return load_all_plugins(plugins, plugin_dirs)
File "/usr/local/lib/python3.8/dist-packages/nonebot/plugin/load.py", line 59, in load_all_plugins
return manager.load_all_plugins()
File "/usr/local/lib/python3.8/dist-packages/nonebot/plugin/manager.py", line 168, in load_all_plugins
return set(
File "/usr/local/lib/python3.8/dist-packages/nonebot/plugin/manager.py", line 169, in
filter(None, (self.load_plugin(name) for name in self.available_plugins))

File "/usr/local/lib/python3.8/dist-packages/nonebot/plugin/manager.py", line 141, in load_plugin
module = importlib.import_module(name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "/usr/local/lib/python3.8/dist-packages/nonebot/plugin/manager.py", line 233, in exec_module
super().exec_module(module)
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/usr/local/lib/python3.8/dist-packages/nonebot_plugin_imgexploration/init.py", line 10, in
from .imgexploration import Imgexploration
File "/usr/local/lib/python3.8/dist-packages/nonebot_plugin_imgexploration/imgexploration.py", line 13, in
class Imgexploration:
File "/usr/local/lib/python3.8/dist-packages/nonebot_plugin_imgexploration/imgexploration.py", line 95, in Imgexploration
async def ImageBatchDownload(urls: list, client: httpx.AsyncClient) -> list[bytes]:
TypeError: 'type' object is not subscriptable

考虑是uvicorn和uvloop导致的兼容问题，插件使用原生asyncio，卸载uvicorn和uvloop后再尝试

uvicorn卸载之后直接没法启动了🤣

卸载uvicorn之后直接没办法启动bot了🤔

我后来一直用的环境是python3.11，nb-cli1.0.0以上版本

那我回头升级一下Python环境再试试😂，感谢感谢


Date picker showing up on DOB under "add people"

The browser default date picker is appearing in the DOB field when adding a new person. This is a usability issue as date pickers really work best for dates within proximity to the current date and fall apart when you're going years back. Please change so date is entered by keyboard.
Safari:

Firrefox:

This is what it looks like in iOS on both Chrome and Safari. Cannot type in the data, have to use the weird picker.

wont fix


[BUG] many dependent tasks depend on a node, task status bug

Describe the bug
When many dependent tasks depend on a node and the dependent task supports failed retry, the task that submitted the retry will be judged as kill. causes process instance to fail.
I think, no need to verify process strategy when submitting tasks.
The method updateProcessInstanceState of the MasterExecThread class has been verify process strategy.
    private void updateProcessInstanceState() {
        ExecutionStatus state = getProcessInstanceState();
        if(processInstance.getState() != state){

    private ExecutionStatus getProcessInstanceState(){
        ProcessInstance instance = processService.findProcessInstanceById(processInstance.getId());
        ExecutionStatus state = instance.getState();

        if(activeTaskNode.size() > 0){
            return runningState(state);
        }
        // process failure
        if(processFailed()){
            return ExecutionStatus.FAILURE;
        }

    private Boolean processFailed(){
        if(hasFailedTask()) {
            if(processInstance.getFailureStrategy() == FailureStrategy.END){
                return true;
            }
            if (processInstance.getFailureStrategy() == FailureStrategy.CONTINUE) {
                return readyToSubmitTaskList.size() == 0 || activeTaskNode.size() == 0;
            }
        }
        return false;
    }

Which version of Dolphin Scheduler:
-[1.2.0-preview]

i think the situation is above DAG,

failure strategy is "end"
"2" failed
"3" failed and retry, but retry state is "kill"

Is that so？

yes

i think the situation is above DAG,

failure strategy is "end"
"2" failed
"3" failed and retry, but retry state is "kill"

Is that so？
@Rubik-W

yes

the key is the design of  failure strategy,
whether we can submit tasks (retry tasks /new tasks) to run when strategy is "end".
when strategy is "end", i think we should not submit any tasks(retry /new ) to run if there have task failed, so it's right to commit to "kill" status
关键是失效策略的设计，当策略为“结束”时是否可以继续提交任务（重试/新任务）以运行。
当策略为“结束”时，我认为如果任务失败，不应该提交任何要运行的任务（重试/新任务）,所以提交kill状态是正确的。

Before submitting the failure task, it has been verified whether it is a retry task.
So, in the process of submitting the task, there is no need to check the failure status again.
In the design business, the retry task is processed first, then the failed policy is processed.
MasterExecThread.java
task.taskCanRetry()
                // node fails, retry first, and then execute the failure process
                if(task.getState().typeIsFailure()){
                    if(task.getState() == ExecutionStatus.NEED_FAULT_TOLERANCE){
                        this.recoverToleranceFaultTaskList.add(task);
                    }
                    if(task.taskCanRetry()){
                        addTaskToStandByList(task);
                    }else{
                        completeTaskList.put(task.getName(), task);
                        if( task.getTaskType().equals(TaskType.CONDITIONS.toString()) ||
                                haveConditionsAfterNode(task.getName())) {
                            submitPostNode(task.getName());

Before submitting the failure task, it has been verified whether it is a retry task.
So, in the process of submitting the task, there is no need to check the failure status again.
In business design, the retry task is processed first, then the failure strategy is processed.
MasterExecThread.java
task.taskCanRetry()
                // node fails, retry first, and then execute the failure process
                if(task.getState().typeIsFailure()){
                    if(task.getState() == ExecutionStatus.NEED_FAULT_TOLERANCE){
                        this.recoverToleranceFaultTaskList.add(task);
                    }
                    if(task.taskCanRetry()){
                        addTaskToStandByList(task);
                    }else{
                        completeTaskList.put(task.getName(), task);
                        if( task.getTaskType().equals(TaskType.CONDITIONS.toString()) ||
                                haveConditionsAfterNode(task.getName())) {
                            submitPostNode(task.getName());

yes, you are right. there is a check when add retry tasks to standby list ,
but before submitting to run, we should check the failure strategy again when there have some other tasks failed. because other tasks would be failed between standby and submitted.

Yes, The processing of current task results and the submission of tasks are serial. I think this is a low probability event, instant optimization into parallel processing, it cannot absolutely solve the problem. Because at any moment when a task is submitting, there may be new failed tasks.
I found another problem:
When obtaining the active task execution result, if first task is success, second task is failure, failure strategy is end model. In the current code logic, subsequent nodes of successful tasks are added to the list to be submitted.
In business, no tasks should be added. And the end of the workflow should not go to sleep.
Method updateProcessInstanceState() should be executed before method submitStandByTask().
            if(canSubmitTaskToQueue()){
                submitStandByTask();
            }
            try {
                Thread.sleep(Constants.SLEEP_TIME_MILLIS);
            } catch (InterruptedException e) {
                logger.error(e.getMessage(),e);
            }
            updateProcessInstanceState();

the submission of tasks may be happened a long time after standby when memory/cpu load
are not enough, we cannot know what would happened during this period.

In business, new tasks should not be standby list when trigger failed policies "end".
but in order to prompt user why the workflow cannot continue, i think it's appropriate to submit a "kill" task.

the order of submission task  and updating state is not very important.

yes, sleep can be move to the beginning of the loop.

1:
a) If the master server  is under-loaded, will only affect the submission of tasks. The Master will continue to process task results, when the failed task is found, it is directly processed.
b) If the worker server  is under-loaded, the task will not be executed, the master finds a failed task, and the worker task will be killed.
2:
This happens because of failed tasks, the user is able to know the cause of the failure.
If many tasks depend on one task, there will be many kill tasks, which will easily mislead the user,
we have already seen this happen.
3:
There is a failed task and a failure strategy is triggered. It no longer makes sense to continue to submit tasks.
4: I agree

Oh, I see

Method updateProcessInstanceState() should be executed before method submitStandByTask().

This modification is wrong, the purpose of submitting a task is to record the status of the workflow execution. Designed for workflow failure retry.
So, the core problem is that a failed retry task cannot be determined as a workflow failure.

New modification plan:
1.The method runProcess() of the MasterExecThread class. Update instance status before submitting task.
            updateProcessInstanceState();

            if (canSubmitTaskToQueue()) {
                submitStandByTask();
            }

            if (processInstance.IsProcessInstanceStop()) {
                break;
            }

            try {
                Thread.sleep(Constants.SLEEP_TIME_MILLIS);
            } catch (InterruptedException e) {
                logger.error(e.getMessage(),e);
            }

2.The method getSubmitTaskState() of the ProcessDao class. If instance status is failure, the task status is set to kill.
        if( processInstanceState == ExecutionStatus.READY_PAUSE){
            state = ExecutionStatus.PAUSE;
        }else if(processInstanceState == ExecutionStatus.READY_STOP
                || processInstanceState == ExecutionStatus.FAILURE) {
            state = ExecutionStatus.KILL;
        }else{
            state = ExecutionStatus.SUBMITTED_SUCCESS;
        }

i think the situation is above DAG,

failure strategy is "end"
"2" failed
"3" failed and retry, but retry state is "kill"

Is that so？
@Rubik-W

failure strategy is "end"
failed and retry
failed and retry, but retry state is "kill"

@lenboo  Please read the last three replies again.

New modification plan:
1.The method runProcess() of the MasterExecThread class. Update instance status before submitting task.
            updateProcessInstanceState();

            if (canSubmitTaskToQueue()) {
                submitStandByTask();
            }

            if (processInstance.IsProcessInstanceStop()) {
                break;
            }

            try {
                Thread.sleep(Constants.SLEEP_TIME_MILLIS);
            } catch (InterruptedException e) {
                logger.error(e.getMessage(),e);
            }

2.The method getSubmitTaskState() of the ProcessDao class. If instance status is failure, the task status is set to kill.
        if( processInstanceState == ExecutionStatus.READY_PAUSE){
            state = ExecutionStatus.PAUSE;
        }else if(processInstanceState == ExecutionStatus.READY_STOP
                || processInstanceState == ExecutionStatus.FAILURE) {
            state = ExecutionStatus.KILL;
        }else{
            state = ExecutionStatus.SUBMITTED_SUCCESS;
        }

@lenboo

the order of submission task and updating state is not very important.
in dolphinscheduler, master and worker run asynchronously,   the "strategy end" can be  triggered at any time, maybe between updating process state and submitting the next tasks. so the strategy checking  is  necessary when submitting task.

@lenboo
The problem is the trigger point for the "strategy end". I think the responsibilities should be clear.
When submitting tasks, the task processing thread should only care about the state of the process instance.
MasterExecThread controls the main process, and to check the "strategy end".
Unified caliber, instead of checking "strategy end" everywhere.
This is also the purpose of updating the process status before submitting the task.

It's time to solve this problem.

Already fixed in 2.x


Middleware StartSession do not working!!!

Hi,my laravel is 5.2,when i use {!! csrf_field() !!} in my test.blade.php ,i find "_token" is null,then i call
session()->has("_token"),return false,i call session()->->isStarted(),return the same result...when i put the  \Illuminate\Session\Middleware\StartSession::class from $middlewareGroups  to the $middleware,everything is OK !  i don't why!!This is my problem or framework BUG?

Looks like you forgot to put your route inside the web middleware group.

thank you !! but I remember do not this step in laravel5.1

thank you !! but I remember do not this step in laravel5.1

Yes. Please see the L5.2 upgrading docs

Or, just add this middleware to your global middlewares to get the same behaviour as in 5.1 if you want.

Just contact laravel5.2,I'm a little uncomfortable.I will remember your say。thank you !!