Allow developers to add CALayer instances as POI

Background
Allowing developers to add CALayer instances as POI (LocationAnnotationNode)
Current implementation with UIView does not allow dynamic change of contents because it is just taking a snapshot of the UIView when it was added.
Breaking Changes
None that I know of.
Meta
N/A
PR Checklist

[x] CI runs clean?
[x] Appropriate label has been added to this PR (i.e., Bug, Enhancement, etc.).
[x] Documentation has been added to all open, and public scoped methods and properties.
[x] Changelog has been updated
[ ] Tests have been added to all new features. (not a requirement, but helpful)
[x] Image/GIFs have been added for all UI related changed.

Screenshots
The current distance in this picture is updated live as you change your location for example.

I'll have to do some testing before I merge.  There was an issue with the original implementation of the LocationAnnotationNode initialize that took a view and the view hierarchy after popping the VC off of the NavigationController stack.  I'll need to make sure that's not still an issue with CALayers.  Thanks for the PR and for updating both README files!

@yfujiki I've been testing this branch, and I really like this feature.  I've been able to modify the contents of the CALayer, but have not been successful at changing the size of the CALayer Billboard node.  Have you done this?

@Pilot-Marc Thank you for commenting (and sorry for leaving this branch for long...)
As for the CALayer size, I just set the frame and that worked. Only tricky part for me was that I need to convert the coordinate from CoreAnimation world (y-0 = bottom) to UIKit world (y-0 = top).
This is the snippet from my CALayer subclass :
    override init() {
        super.init()
        frame = CGRect(origin: .zero, size: CGSize(width: 261, height: 149))
        backgroundColor = UIColor.gray.cgColor
        cornerRadius = 10
        masksToBounds = true

        addSublayer(titleLayer)
        // ... adding different sublayers

@intere Sorry to disappear for long. Updated the PR as your comment. Hopefully this will do!


New demo for PowerSession-rs

The demo in the README is from the old C# version. Maybe you should use the rust demo, which I see you've recorded recently.

thank you. forgot to update the link. just updated.


enhance testing

Here's a list of testing tools: https://wiki.python.org/moin/PythonTestingToolsTaxonomy

Not an issue - closing


Upcoming Release Changes

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to master, this PR will be updated.
Releases
<EMAIL_ADDRESS>Patch Changes

#168
3e25f6d
Thanks @ardatan! - Respect base path in the generated OpenAPI
document

<EMAIL_ADDRESS>Patch Changes

Updated dependencies []:

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

Updated dependencies
[3e25f6d]:

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

Updated dependencies []:

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

Updated dependencies
[3e25f6d]:

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

Updated dependencies
[3e25f6d]:

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

Updated dependencies
[3e25f6d]:

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>Patch Changes

Updated dependencies
[3e25f6d]:

<EMAIL_ADDRESS>

🚀 Snapshot Release (rc)
The latest changes of this PR are available as rc on npm (based on the declared changesets):

Package
Version
Info

fets
0.1.5-rc-20230510124439-a4bee59
npm ↗ unpkg ↗

💻 Website Preview
The latest changes are available as preview in: https://0db3a14c.fets.pages.dev

💻 Website Preview
The latest changes are available as preview in: https://f40889cd.fets.pages.dev

💻 Website Preview
The latest changes are available as preview in: https://b637a0b2.fets.pages.dev


Screenshot illustration should have the same font size as text

In computer literacy publication we have a common best practise that the emphasized text in a screenshot should be of the same visual size as the normal text of the publication.
Problem:

Download the PDF from https://github.com/AlphaWallet/TokenScript/releases/tag/0.3
Turn to page 23. Observe that the text size of emphasized text, like "Your Order Has Been Placed" or "Total Amount' is a lot smaller than the font of the paper.

I suggest making the screenshot 𝑏𝑒𝑓𝑜𝑟𝑒 and 𝑎𝑓𝑡𝑒𝑟 (❶ and ❷) vertical, that is, not side by side.
This way, the image will be auto-sized to fit the page, giving a much bigger font to match that of the paper text.
Also please strip off the white space around the screenshots so the actual screenshots will be auto-sized bigger.

Amended.
Purchase with shipment token

Purchase without shipment token


panic: runtime error: invalid memory address or nil pointer dereference

When running netlifyctl init manual
it asks for the username (gitlab for this project)
it then pauses with no feedback
when pressing enter I get this error
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x165cf2b]

goroutine 1 [running]:
github.com/netlify/netlifyctl/vendor/github.com/xanzy/go-gitlab.(*Client).NewRequest(0xc420192000, 0x189f111, 0x4, 0x18a2b00, 0x7, 0x16ff200, 0xc4203daba0, 0xc420421680, 0x1, 0x1, ...)
        /home/david/src/github.com/netlify/netlifyctl/vendor/github.com/xanzy/go-gitlab/gitlab.go:298 +0x4b
github.com/netlify/netlifyctl/commands/init.getSession(0xc4203daba0, 0xc420421680, 0x1, 0x1, 0x0, 0x0, 0x1, 0xc4204e4570)
        /home/david/src/github.com/netlify/netlifyctl/commands/init/gitlab.go:131 +0xbc
github.com/netlify/netlifyctl/commands/init.newGitLabConfigurator(0x21f10d0, 0xc4204e4210, 0xc42051e100, 0xc4204e43f0, 0xc42051e100, 0xc420241038)
        /home/david/src/github.com/netlify/netlifyctl/commands/init/gitlab.go:33 +0x180
github.com/netlify/netlifyctl/commands/init.loadConfigurator(0x21f10d0, 0xc4204e4210, 0xc42051e100, 0x1010199, 0xc4204e4210, 0x30, 0x30)
        /home/david/src/github.com/netlify/netlifyctl/commands/init/git.go:39 +0x113
github.com/netlify/netlifyctl/commands/init.initSite(0x21f10d0, 0xc4204e4210, 0xc4204926c0, 0xc4201b9280, 0x1, 0x1, 0x1, 0xc4204e4180)
        /home/david/src/github.com/netlify/netlifyctl/commands/init/init.go:38 +0x6e6
github.com/netlify/netlifyctl/commands/middleware.ClientMiddleware.func1(0x21f10d0, 0xc4204e40f0, 0xc4204926c0, 0xc4201b9280, 0x1, 0x1, 0x142370f, 0x17c1b20)
        /home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:183 +0x339
github.com/netlify/netlifyctl/commands/middleware.AuthMiddleware.func1(0x21f10d0, 0xc4204e4090, 0xc4204926c0, 0xc4201b9280, 0x1, 0x1, 0x1d9e9e0, 0x19214b8)
        /home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:128 +0x1ca
github.com/netlify/netlifyctl/commands/middleware.LoggingMiddleware.func1(0x20097d0, 0xc420034088, 0xc4204926c0, 0xc4201b9280, 0x1, 0x1, 0xc4202a3560, 0xc420421b80)
        /home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:116 +0x1f1
github.com/netlify/netlifyctl/commands/middleware.DebugMiddleware.func1(0x20097d0, 0xc420034088, 0xc4204926c0, 0xc4201b9280, 0x1, 0x1, 0x0,0x0)
        /home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:89 +0x4bb
github.com/netlify/netlifyctl/commands/middleware.NewRunFunc.func1(0xc4204926c0, 0xc4201b9280, 0x1, 0x1, 0x0, 0x0)
        /home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:52 +0xf2
github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra.(*Command).execute(0xc4204926c0, 0xc4201b9240, 0x1, 0x1, 0xc4204926c0, 0xc4201b9240)
        /home/david/src/github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra/command.go:644 +0x3db
github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x1d8d7c0, 0x1dbb7fd, 0x189eb65, 0x3)
        /home/david/src/github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra/command.go:734 +0x2d4
github.com/netlify/netlifyctl/commands.Execute()
        /home/david/src/github.com/netlify/netlifyctl/commands/netlify.go:41 +0x29b
main.main()
        /home/david/src/github.com/netlify/netlifyctl/main.go:16 +0x79

Hi,
Thanks for reporting this issues. That's definitely a problem. However, I noticed that you're not using manual as a flag, and it's trying to use the gitlab provider. This is probably because your repository remote is gitlab.
If you want to use the manual configuration, you have to run this netlifyctl init --manual.
I'm going to keep this bug open because we should look into the panic.

@calavera ok, that works, thanks. I've come across something else that I can't work out #91.


How to build multiple release artifacts?

I'm new to ceedling and trying to figure out how to build multiple release artifacts from a single project. I could, of course, make a separate project for each release, but they share a lot of code (most modules are shared between builds—often main() is the only place they're different). I don't want to duplicate the shared code (or play file system games).
I would like to set up my project like this.

build
src

apps

app1main.c
app2main.c
app3main.c

modules

everything else

test

I would like to make one "release" task that goes through the files in apps and compiles each with everything in "modules". So, I would end up with two different release binaries.
First, I'm wondering if Ceedling supports this (it doesn't look like it from the docs, but you never know).
Second, do you have any advice on extending Ceedling? I would like to use as much of Ceedling's existing functionality as I can (I would rather redirect existing mechanisms than reimplement them).
Thanks.

The cleanest way that I can think of is to do the following: set up a project yaml file that does most of what you want and call it project.yml, as is the usual. Then, for the additional releases, add a project yaml file that overrides just the parts that you want to override and name them something logical (like app1.yml, app2.yml, etc in your example).
Now, you can can call the one you want like so:
ceedling project:app1 clobber release
That will pull in the main project file, and then the app1.yml file over the top of it, replacing just the important details.
It might be a little tricky to get just right, but this is actually functionality I use, so I know it at least works in some circumstances. ;)


Fix toHaveText length logging

Some thoughts on #34

Codecov Report

Merging #46 (d118726) into master (e957950) will decrease coverage by 1.61%.
The diff coverage is 85.71%.

@@            Coverage Diff             @@
##           master      #46      +/-   ##
==========================================
- Coverage   99.07%   97.45%   -1.62%
==========================================
  Files           8        8
  Lines         108      118      +10
  Branches       20       24       +4
==========================================
+ Hits          107      115       +8
- Misses          1        2       +1
- Partials        0        1       +1

Impacted Files
Coverage Δ

src/matchers/utils.ts
97.05% <ø> (ø)

src/matchers/toHaveText/index.ts
90.90% <85.71%> (-9.10%)
:arrow_down:

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 e957950...d118726. Read the comment docs.

Codecov Report

Merging #46 (d118726) into master (e957950) will decrease coverage by 1.61%.
The diff coverage is 85.71%.

@@            Coverage Diff             @@
##           master      #46      +/-   ##
==========================================
- Coverage   99.07%   97.45%   -1.62%
==========================================
  Files           8        8
  Lines         108      118      +10
  Branches       20       24       +4
==========================================
+ Hits          107      115       +8
- Misses          1        2       +1
- Partials        0        1       +1

Impacted Files
Coverage Δ

src/matchers/utils.ts
97.05% <ø> (ø)

src/matchers/toHaveText/index.ts
90.90% <85.71%> (-9.10%)
:arrow_down:

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 e957950...d118726. Read the comment docs.

Closed since it seems stale.


Adding scrolling to postsignatures

This is a small change to css, and it just allows you to scroll inside a user's signature. Nothing big. the box doesn't grow at all, and will remain the same size it was defined as.

Thanks, but please file an issue and wait for it to be flagged as "help wanted" before making a PR.

The issues section doesn't appear to be open on this repo

Please open an issue on scratch-www.


Possible feature request:  Ignore Abandoned Reviews

In our TFS setup, once a reviewer uses "Send & Finish" to complete their review with a "Needs Work", nothing can be done by either the requestor or reviewer that will allow that "Send & Finish" response to be altered, and the review then prevents check-in unless an override is done. An added option to the check-in policy to ignore Abandoned reviews would allow the Requestor to close the Review as "Abandoned", and then make changes and request a new Review.

+1

@jgrinwaldDartChart  What if you just remove the Code Review work item from the list of associated ones?
I think that should let you check-in your changes.


Administrator commands

We need adminstrative commands such as:

[ ] clearing/purging messages
[ ] banning w/ public reason message
[ ] kicking w/o message deleting
[ ] softban (kick with messages deleted)
[ ] mute
[ ] deafen
[ ] moving user to another voice channel

I'd like to claim these if that is fine with everyone and we want to add these features.


Create LCA in Binary Tree

@amritansh22 please review this...

Please star this repository to show your support, in the meantime I am reviewing your code.

@amritansh22  done

Excellent work @Ashish-kumar7 Thanks a lot for making this PR.


chefdk: Remove autoupdate, update license

Relates to #8290

See above for details - ChefDK has reached end of life and has been replaced by Chef Workstation

This PR removes autoupdate because there will be no more versions

License seems to have changed

Adds note for users to install Extras/chef-workstation instead

[x] I have read the Contributing Guide.

/verify

Should we deprecate the manifest instead?

We could just add something like "Chef Workstation supercedes ChefDK" :)

Okay, I've moved it to the deprecated folder, will make another PR for the Chef Workstation description.

You can modify it here itself

I may need to open a new PR anyway, this branch is out of date and does not have chef-workstation.json

I've updated it

Oh perfect, thanks!


Update nested vm to support Windows 10

Updated documentation to show support for Windows 10 and custom requirments

@RogerBestMsft : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Moving the Windows 10 information to it's own documentation.


Questions on  compute_expectations

I have alreadly applied pymbar to umbrella sampling data successfully. Now I'd like to compute the effective mass of CV at the transition state.  A function compute_expectations under MBAR can get the expectation of an observable at all states. When all the data is generated by US, can I regard the mu values from this functions as the unbiased expectation at the center of umbrellas? And how to get the expectation of observables when the region of interst doesn't cover the spring center locations?

I'm not sure I 100% understand the question, but I'll give  pass here.  For the expectation of an observable at a state that is not sampled, you will need to pass in the energies at that state as well for all samples.  But for umbrella sampling, this should be easy, since you know the potential there.
Check out the examples directory, and particularly harmonic_oscillators examples; there, various observables like <x^2> are calculated both at states that are sampled, and states that are not sampled.  The potential of mean force example calculations should do something very much like you want to do as well.

And how to get the expectation of observables when the region of interst doesn't cover the spring center locations?

If these regiouns are close enough to the spring center locations (i.e. high overlap), everything should work out well.  If they are too far away, then you will get answers back but the uncertainties will be larger and unreliable; you can use the functions calculating the number of effective samples to test - less than 50 or 100 effective samples means you are probably too far away.

Thanks for your answer!
Maybe my question is a bit confusing and I try to make it clear. As you said, what I want to get is very similar to the potential of mean force. Using notation from the paper J. Chem. Theory Comput. 16, 4107 (2020), the desired "observable depending on CV" is
$A'(\xi) = \left \langle A(x_n) \delta (\Phi(x_n) - \xi) \right \rangle$
I already got the potential of mean force from umbrella sampling data. And the observables of all the samples are available. In this case, how to get $A'(\xi)$ by pymbar?


chronos crash - curator/zk issue?

Nov 16 15:03:07 ashmes004 chronos[22886]: [2015-11-16 15:03:07,459] ERROR Background exception was not retry-able or retry gave up (org.apache.curator.framework.imps.CuratorFrameworkImpl:543)
Nov 16 15:03:07 ashmes004 chronos[22886]: java.lang.IllegalArgumentException: Path must start with / character
Nov 16 15:03:07 ashmes004 chronos[22886]: at org.apache.curator.utils.PathUtils.validatePath(PathUtils.java:53)
Nov 16 15:03:07 ashmes004 chronos[22886]: at org.apache.curator.utils.ZKPaths.getNodeFromPath(ZKPaths.java:56)
Nov 16 15:03:07 ashmes004 chronos[22886]: at org.apache.curator.framework.recipes.leader.LeaderLatch.checkLeadership(LeaderLatch.java:523)
Nov 16 15:03:07 ashmes004 chronos[22886]: at org.apache.curator.framework.recipes.leader.LeaderLatch.access$700(LeaderLatch.java:62)
Nov 16 15:03:07 ashmes004 chronos[22886]: at org.apache.curator.framework.recipes.leader.LeaderLatch$7.processResult(LeaderLatch.java:581)
Nov 16 15:03:07 ashmes004 chronos[22886]: at org.apache.curator.framework.imps.CuratorFrameworkImpl.sendToBackgroundCallback(CuratorFrameworkImpl.java:715)
Nov 16 15:03:07 ashmes004 chronos[22886]: at org.apache.curator.framework.imps.CuratorFrameworkImpl.processBackgroundOperation(CuratorFrameworkImpl.java:502)
Nov 16 15:03:07 ashmes004 chronos[22886]: at org.apache.curator.framework.imps.GetChildrenBuilderImpl$2.processResult(GetChildrenBuilderImpl.java:166)
Nov 16 15:03:07 ashmes004 chronos[22886]: at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:590)
Nov 16 15:03:07 ashmes004 chronos[22886]: at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:498)

Anyone ever see these? it just happened on every chronos node i have lol

https://github.com/HubSpot/Singularity/issues/620
Maybe this is related?

Hi @flyinprogrammer, does it happen regularly and than disappear after your restart Chronos? What options dod you start Chronos with?


ALPACA GUI Updates

To-do list from meeting on 12/14

[ ] Open3D upgrade

[ ] Address the current file activation order inconsistencies.

[ ] Add a run all button?

[ ] New division of actions and results browser allowing return to previous visualizations

[ ] Default display for final step should be estimated landmarks on target

[ ] Add option to load gold-standard landmarks for RMSEE comparison

[ ] Show registered source model for registration parameter adjustment

[ ] Two opacity sliders for visualizing registered source/target

[ ] Slider to adjust point size

[ ] Increment output model point color and name
Dark Bright Chart colors for landmarks
Medium Chart colors for landmarks

[ ] Propagate the landmark names from the template to estimated landmark nodes

[ ] Improve landmark node names (include subject id)

[ ] Save/load settings menu options under the advanced tab

[ ] Split JSON output file into two sections, setting and file locations, to cover case where only settings are being saved.

updated via #210


Added changelog for v1.0.0. Updated package version to 1.0.0

resolves #402

/cc @j0tunn

По мне :ok:


Apply Profile header to the Profile folder - not Our People folder

There are long form articles in the 'Our People' folder that should have the standard header. Is it possible to apply the style only to the 'Profile' folder within the 'Our People' folder.
Example: Khoi's article should have a standard header not the profile header: https://main--design-website--adobe.hlx3.page/stories/our-people/when-designers-give-each-other-books
Laura Herman's article is the other article
NOTE: Patrick - let me know how time intensive this issue is and I can reprioritize as needed.

Yes, I think this is possible to do, and will probably take a few hours to accomplish. Possibly fewer if I can reuse existing styles (which I think I can)


Feature Request: add extra directories to dired command

First, thanks for making selectrum. I think it's a clean and simpler replacement for ivy & counsel. I've been using it for about a week and haven't felt the need to switch back.
I was wondering if it was possible to either add or home-roll (myself) extra-directories to the dired command? Namely having ./ and ../ would be great.
I often jump to dired from my current file and since switching I've made the mistake of running C-x d <RET> multiple times. Because of selectrum's default keybindings, it selects the first candidate which results in jumping to a dired buffer filtered on the file candidate.
If I could have ./ and ../ to select from, then prescient should push those towards the top of my candidate list.
Yes, I could just run C-x d C-j which works fine, but I think adding the extra-directories could open up for functionalities in other areas as well.

Did this feature get removed in a recent update? I've noticed Selectrum has reverted to its original behavior.

Maybe related to #126?

Yes, I'm not sure exactly when directory sorting became broken. If the trailing slashes in directories became overlays again, then reverting https://github.com/raxod502/selectrum/commit/a6a2512e1970af1a8e4273a719160fc1d5cb7660 would probably fix the issue. But, https://github.com/raxod502/selectrum/pull/127 by @clemera seems like a more comprehensive solution which will also address the problem.

With #127 merged C-x d RET works again.


add ReplaceMetadata message and method for pfio

The clients now can replace the whole metadata of a collection.
Description

Related Issue

Motivation and Context

How Has This Been Tested?

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Trivial change (affects only documentation or cleanup)

Checklist:

[ ] I have tested this change with a run of GEOSgcm (if non-trivial)
[x] I have added one of the required labels (0 diff, 0 diff trivial, 0 diff structural, non 0-diff)
[x] I have updated the CHANGELOG.md accordingly following the style of Keep a Changelog

This PR is to address  issue #2182

I tested this PR, seems to do what we need.


Fix questions data re-rendering & Refactor home component (on quiz-app)

AS-IS

When I click another language option in quiz component, the quiz sentence is not changed to another language.
Translation json files have 'title' and 'id' fields each quiz, but not using this fields.

TO-BE

Update questions data -> computed on Quiz component.
Refactor Home component using v-for

References

#130

Thank you!!! Much appreciated!


Option to disable import inlining for a css file

Description
I have an issue where import inlining isn't generating correct css, and an easy way to solve it would be to just disable import inlining for the file, so that conditional imports can be used.
Suggested solution
Have an option when importing a css file to disable import inling for that file, like ?url (maybe ?noinline).
So the built output would be something like this:
@import "12345678.1234567.css";

@import "87654321.87654321.css" (prefers-color-scheme: dark);

with each import built as a seperate css file.
Alternative
Alternatively, a vite config option could be added to disable import inlining for css project-wide, although it would be a little less efficient.
Maybe something like:
{
  build: {
    cssImportInlining: false,
  },
}

Additional context
This is part of an effort to get https://github.com/QuiltMC/quiltmc.org/pull/58 working. It could be possible that I'm doing something wrong in that project.
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[x] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

It's better to fix a bug rather than implementing a workaround for it.
Please create a minimal reproduction of that bug.
Also it does not make sense to pass that code through without transformation.

Therefore, it cannot be used inside conditional group at-rules.
https://developer.mozilla.org/en-US/docs/Web/CSS/@import#description:~:text=Therefore%2C it cannot be used inside conditional group at-rules.

It's better to fix a bug rather than implementing a workaround for it. Please create a minimal reproduction of that bug.
Also it does not make sense to pass that code through without transformation.

Therefore, it cannot be used inside conditional group at-rules.
https://developer.mozilla.org/en-US/docs/Web/CSS/@import#description:~:text=Therefore%2C it cannot be used inside conditional group at-rules.

Forgot that it doesnt work outside scss, updated the post. I'll also try to make a minimal reproduction later today (in school rn)

@sapphi-red From trying to debug it on my own, I don't think this is an easy bug to fix (or even exactly what it is). It would be easier to just add a feature to disable import inlining.
I don't know exactly what the issue is, but it's somehow related to scss variables being used in the prefers-color-scheme: dark portion of the scss. It would work fine if both imports were compiled as their own files. This option could also be used in case similar bugs pop up in the future.

Yeah, I don't think any scss variables work in media queries

Regardless of whether the bug is hard to fix, we'll need a reproduction to know what is the best way to fix/workaround it.


Monthly Chat Agenda March 2023 (2023-03-06 and 2022-03-20)

This is the Agenda for the two Monthly CRS Chats.
The general chat is going to happen on https://owasp.slack.com in the channel #coreruleset on Monday, 2023-03-06, at 20:30 CET. That's the 1st Monday of the month. A separate issue chat is happening at the same location, same time on Monday, 2023-03-20. That's the 3rd Monday of the month. Please note that we have a CRS calendar (maintained by @fzipi).
Archived previous meetings and their decision are here.
What happened in the meantime since the chat last month
Outside development

:ireland: The CRS Community Summit took place in Dublin and was a success. 15 CRS developers, users, and interested parties attended a day of CRS-related talks. The videos are available at https://www.youtube.com/@owaspmodsecuritycoreruleset; blog post is in the making
:earth_africa: OWASP Global AppSec Dublin 2023 also took place, with several project members in attendance.
Note that OWASP has officially changed its name (the W has changed from Web to Worldwide).
ModSecurity vendor Atomicorp hosted an online conference.
(Did anyone attend? Did they say anything interesting about ModSecurity?)

Inside development
Rules

FIXME: Please fill in

CRS Sandbox

fix sandbox bot (update, status)
add response header x-crs-last-commit with the last commit hash

CRS Bug Bounty and Security

All Bug Bounty Findings addresses, everything blocked at PL2 (with very few wont-fix items).
We're currently tracking 4 security reports in our private repo.

Plugins

added test infrastructure and a couple of tests to the nextcloud plugin
fixed some setup issues with plugin tests

Documentation and Public Relations

:scroll: New blog post published: A new rule to prevent SQL in JSON
Covers our new rule 942550 which combats the recent JSON SQL syntax problem.
regex-assembly documentation has been updated.
Website (which includes documentation) updated with new OWASP name: Web -> Worldwide.
Issue templates have been updated. They ask for example curl requests to reproduce the problem now.

Project Administration and Sponsor relationships

No news to report other than OWASP is currently paying out CRS reimbursement requests for the dev retreat last year

Tools

work started on separating test specification from the test runner; this will allow us to evolve the test format and have proper versioning
crs-toolchain no longer includes any patterns that end up in the output (except for some internal fixups). Instead, patterns such as those used by the cmdline processors are read from the toolchain.yaml configuration file.

Testing incl. Seaweed and many future plans

Seaweed: we detached the repo and fixed CI runs by upgrading nuclei version.

Containers

Latest version published with tag ending in<PHONE_NUMBER>03 now creates a new certificate (if it doesn't exist) dynamically each time you start the container. This fixes long-standing problem of shipping the certificate baked into the image.

CRS Status Page

No news to report. Waiting for CRS v4 until we pick this up for real.

Project Decisions

FIXME: Please fill in

Rules development, key project numbers
PRs that have been merged since the last meeting

#3145
#3142
#3132
#3137
#3136
#3134
#3133
#3131
#3130
#3128
#3120
#3123
#3056
#3119
#3126
#3092

We merged 16 PRs since the last monthly project chat.
Open PRs
Open PRs marked DRAFT or work in progress or needs action

#3151
#3141
#2637
#3135
#2666
#2878
#3029
#3152

Open issues and PRs

As of Monday, we have 101 open issues.
As of Monday, we have 16 open pull requests.

Agenda for Monthly meeting

(themiddle) detailed changelog for integrators
(themiddle) many referer and user-agent request header FPs 4.0
Status of keyword lists update
https://github.com/coreruleset/coreruleset/issues/2998: Do we want to add t:htmlEntityDecode on 932115?

Separate 2nd Meeting (Monday, 2023-03-20)

FIXME: Agenda to be defined

How to get to our slack and join the meeting?
If you are not yet on the OWASP Slack, here is your invite: https://owasp.org/slack/invite.
Everybody is welcome to join our community chat.

Decisions March 6

(themiddle) detailed changelog for integrators -> just ideas (enforce commit messages in the future, pay somebody to "fix" current 4.0 changelog -> no decision yet, ideas welcome
(themiddle) many referer and user-agent request header FPs 4.0 -> basically RCE and SQLi rules have an increment of FPs just because referer and ua. themiddle will create a detailed issue with more data.
Status of keyword lists update ->
https://github.com/coreruleset/coreruleset/issues/2998: Do we want to add t:htmlEntityDecode on 932115?

Decisions March 20

#3154: we agree on the pragmatic approach: wait for 4.1 and for now set in plugin. setvar:'tx.allowed_methods=%{tx.allowed_methods} GET POST OPTIONS HEAD PUT PATCH CHECKOUT COPY DELETE LOCK MERGE MKACTIVITY MKCOL MOVE PROPFIND PROPPATCH SEARCH UNLOCK REPORT TRACE jsonp'". The arguments for this are:

it's easy to do
we gain more time
it shouldn't happen often

Slack message from @jcchavezs: Hallo CRSers, could something like https://github.com/jcchavezs/coraza-httpbin replace the CRS playground? It is httpbin with coraza as reverse proxy. Does it make sense?
Status keyword list updates
Mark Curphey retiring from OWASP board of directors after "open letter" was not adopted fast enough. Announces new organization that will work with "focused, planned and coordinated set of sustainably high quality projects". Also promises central funding of development. (https://www.linkedin.com/pulse/yesterdays-owasp-board-directors-meeting-i-resigned-my-mark-curphey/)


EU4 directory not recognized in Linux

The Linux version of the converter expects a file named "eu4.exe" in the Europa Universalis IV installation folder. But in the Linux install the file is named "eu4". Simply creating a link file named "eu4.exe" already solves the problem, but for the sake of compatibility maybe it could be corrected in the converter.

implemented a fix.


High proportion of "could not calibrate" reads?

Hi @jts,
I'm trying to figure out what's giving me a high proportion of "could not calibrate" reads when trying to call methylation.
For example, using Guppy-generated reads trimmed with Porechop (to get rid of adapters) and discarding the ones containing middle adapters (--discard_middle), I get something like:
[post-run summary] total reads: 637, unparseable: 0, qc fail: 0, could not calibrate: 401, no alignment: 4, bad fast5: 0

Using the same reads straight from Guppy (i.e. no Porechop) gives somewhat different results:
[post-run summary] total reads: 660, unparseable: 0, qc fail: 0, could not calibrate: 199, no alignment: 4, bad fast5: 0

Either way the are a lot of reads that did not calibrate, but it seems to be twice as bad of an issue with the Porechopped reads for whatever reason. What causes the calibration issue? I guess I don't know what "calibration" it's actually referring to.

Hi @kautto,
Each read that goes through the pore varies a little in its current profile. The calibration step corrects for these subtle variances. If we can't find calibration values that give a good fit to the expected signal, we discard the read.
Can you describe the data you've generated? Is it MinION or PromethION? genomic dna? what sequencing kit? Any info you have might be helpful.
Thanks
Jared

Hi Jared,
it's on a MinION, using FLO-MIN106D and SQK-LSK109. The sample is native DNA (not amplified), but the DNA of the sample is pretty chewed up and degraded. The bulk of the reads are short (only a few hundred bp).
Looking at some of the other samples I ran recently, using the non-trimmed (i.e. didn't go through Porechop) reads always results in less reads failing calibration. Although with the higher-quality samples, I lose way less reads to that.
Given the limitations of some of our samples, I can't improve the library to get longer reads, although my intuition tells me that the shortness is probably contributing to the problem. I'm guessing keeping the adapter sequences on gives the calibration step more to work with, which could explain why I lose less of the untrimmed than trimmed reads?
Thanks,
Esko

Hi Esko,
Thanks for providing details about the experiment. I strongly suspect the root cause is the short read length. The calibration step relies on having many "events" in the signal data to be able to accurately estimate the scaling factors. With short reads, this may not work well. As you suspected, this is probably why keeping the adapters worked slightly better.
Jared


add enter_graceful_shutdown() to health service

This allows the health check service during a graceful shutdown grace period (e.g., after receiving SIGTERM) to report NOT_SERVING and freeze any subsequent updates to services' health status.

The cancel() seems not triggering the added done callback. That seems is an unrelated-to-this-pr bug.


⚠ ClamAV has degraded performance

In fbf63a7, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 55 ms

Resolved: ClamAV performance has improved in a4a0f92.


Azure: Create caa image

This adds CAA image for azure provider
Fixes: #226
Signed-off-by: Kautilya Tripathi<EMAIL_ADDRESS>

cc @bpradipt please review. Also, how do I push to quay.io/confidential-containers/cloud-api-adaptor-azure?


NIFI-4700: Moved all PostHTTP http clients, http responses to try-with-resources

… to make sure they're closed
Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

[x] Is your initial contribution a single, squashed commit?

For code changes:

[x] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

Hi @m-hogue I got an error when trying to test PostHTTP sending to a ListenHTTP with this PR.
2018-02-02 22:15:43,007 ERROR [Timer-Driven Process Thread-7] o.a.nifi.processors.standard.PostHTTP PostHTTP[id=01611004-47b6-1aa6-0836-08b0dc270fae] Failed to Post StandardFlowFileRecord[uuid=ac9ba210-264f-43
b3-bfcf-34bc4c566932,claim=StandardContentClaim [resourceClaim=StandardResourceClaim[id=1517609573204-1, container=default, section=1], offset=364938, length=121646],offset=0,name=nifi-app.log.txt,size=121646]
to http://localhost:7777/contentListener: sent content and received status code 303:See Other but no Hold URI
2018-02-02 22:15:43,020 ERROR [Timer-Driven Process Thread-7] o.a.nifi.processors.standard.PostHTTP PostHTTP[id=01611004-47b6-1aa6-0836-08b0dc270fae] PostHTTP[id=01611004-47b6-1aa6-0836-08b0dc270fae] failed to
process due to java.lang.IllegalStateException: Connection pool shut down; rolling back session: {}
java.lang.IllegalStateException: Connection pool shut down
at org.apache.http.util.Asserts.check(Asserts.java:34)
at org.apache.http.pool.AbstractConnPool.lease(AbstractConnPool.java:184)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.requestConnection(PoolingHttpClientConnectionManager.java:257)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:176)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
at org.apache.nifi.processors.standard.PostHTTP.onTrigger(PostHTTP.java:643)
at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1122)
at org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:147)
at org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:47)
at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:128)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)


Update s3 backend to allow for IAM

Relatively small change that allows for using IAM roles instead of access keys to make use of the s3 backend

Thanks!


setup mino s3 default integration as part of deploy

instead of AWS S3 we can use s3 compatible mino component. It should be integrated by default

done. develop branch already have recursive minio s3 compatible storage

Verified. Fixed.

Verified. Fixed.


Merging forks that were never merged into the official pug-cli

In case anyone in the official repository wants an easy merge...
If not, you can get all this by from tokilabs/pug3-cli by installing the npm package @tokilabs/pug3-cli
Here's a list of the merged contributions:

@anduh at anduh/pug-cli

Update Pug to version 3.0.2 (Closes #88)

@anthony-tron at anthony-tron/pug-cli

Hot reload of options file and YAML in -O | --obj option (Closes #89)

@lazdmx at https://github.com/lazdmx/pug-cli

Allow symlink as input 2d6c334a (Closes #80) 2d6c334a

@funai at funai/pug-cli

Allow templates to use YAML front-matter
Inject extends from  frontmatter layout

Did you change back so pug works as cli command, and not just pug3 that was a change made in the forks? (when I made my fork, I changed the command to pug3 so it could be installed alongside the official package and not, and this was incorporated into later pug-cli forks like tokilabs'.)
At least the documentation & examples still says pug3 is the command, so think it need to be added back as an alias for the cli command, or it would cause trouble for anyone who used pugjs/pug-cli and relies on the command being named pug (and not pug3).
There was a new issue opened on pugjs/pug discussion the situation: Pug-cli is unmaintained despite being mentioned in the readme #3444

@Anduh nops. It is still pug3


The discover factes endpoint returns 500 if an invalid query is provided

Describe the bug
The server/api/discover/facets endpoint cause an internal server error if the provided query is not a valid solr query.
To Reproduce
Steps to reproduce the behavior:

Call the endpoint server/api/discover/facets/* with an invalid query (as https://api7.dspace.org/server/api/discover/facets/author?page=0&size=5&sort=score,DESC&page=0&size=10&query=test%3A)

Expected behavior
An error with status 400 or 422 should be returned.
Related work
Related to https://github.com/DSpace/dspace-angular/issues/1365

Moving this over with the related ticket to 7.2 board.


Running in Docker

Hey,
I have Ruby LSP working just fine via ASDF on my local machine (macOS) on VS Code, but none of the Rails features are working. I don't use any of the VS Code remote features, I run docker compose up in my terminal. The documentation says that the Rails LSP should just work "automatically".
What's the process like for getting it running in Docker Compose, do I need to add anything to my project's gemfile?
Does the gem need to be able to hook into my Rails app/server somehow?

We don't offer a way to change this, it's set here:
https://github.com/Shopify/ruby-lsp-rails/blob/955dc27e44c015f5839a438d37b03a64f2cb1642/lib/ruby_lsp/ruby_lsp_rails/runner_client.rb#L74


FancyZones: Expand the window into 2+ zones at the same time?

Let's say I have 3 vertical zones, each took 1/3 of the screen.
Zone 1 | Zone 2 | Zone 3.
When dragging and holding shift key, it will snap the windows to the zone that you like.
How about in the case that I want a window to expand to fill both zone 2 and zone 3 at the same time, meaning that this window takes 2/3 of the right side of the screen?
Please add this feature enabling the ability to expand across several pre-defined zones at the same time.
I know we can pre-define another zone 4 overlapping zone 2, 3 but that will be more complex, esp. in the case that you already have many zones. Allowing expanding across zones would simplify a lot.
I remember I had used a small software tool in the Desktop Utility category which also allows snapping to zones, and snap to multiple zones at the same time. Can't remember the name, it's been long before, even before windows 7 when windows snapping was first integrated natively into windows OS.
Thank you.
N.

I think you can already do that:
https://docs.microsoft.com/en-us/windows/powertoys/fancyzones#snapping-a-window-to-two-or-more-zones
Is that what you're trying to accomplish?

What @Pl0i pointed out, this is already supported both with mouse and keyboard. https://docs.microsoft.com/en-us/windows/powertoys/fancyzones#snapping-a-window-to-two-or-more-zones for how


Change _mkldnn test and build scenarios names to _onednn

Description
This change changes _mkldnn test and build scenarios names to _onednn.
Checklist
Changes

[x] Change scenarios names
[x] Change names of created in Jenkins files instances of mxnet using onednn
[x] Change return strings from scenarios
[x] Change workspace names in scenarios

Comments
Work in progress.

@mxnet-bot run ci [unix-cpu,windows-cpu]

@mxnet-bot run ci [unix-cpu,windows-cpu]

@mxnet-bot run ci [centos-cpu,windows-cpu]

@leezu Please help with the merge.

@szha @leezu As I have resolved the merge problem please help with the merge.

@szha @leezu Is something blocking the merge of this PR? If so can I help with resolving the problem?

@mxnet-bot run ci [windows-cpu]

@szha Is there something blocking this PR?

Is there something blocking this PR?

No :) Sorry for the delay


Include the 'diarization_config' parameter in the RecognitionConfig object.

Hello,
I am trying to include the SpeakerDiarizationConfig to the RecognitionConfig via the 'diarization_config' parameter but I am not being able to do that and I don't see any example on the documentation page in order to make it work.
My approach looks as follow:
diarization_config = { "enableSpeakerDiarization": True, "minSpeakerCount": 2, "maxSpeakerCount": 3}
config = types.RecognitionConfig( encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16, sample_rate_hertz=frame_rate, language_code="es-ES", enable_word_time_offsets=True, diarization_config=diarization_config, enable_automatic_punctuation=True)
As far as I understand, the 'diarization_config' is supposed to be a SpeakerDiarizationConfig object but I don't get how to use it properly.
My actual result is: "ValueError: Protocol message RecognitionConfig has no "diarization_config" field." In contrast, my expected result is a transcript that includes the 'speakerTag' in the word list, like:
{             "startTime": "127.500s",             "endTime": "127.700s",             "word": "la",             "speakerTag": 2         },         {             "startTime": "127.700s",             "endTime": "129.300s",             "word": "direcci\u00f3n.",             "speakerTag": 2         }
Thanks in advance for your kind help.

Hi @ibalejandro,
It looks like your issue concerns the Python Speech client. I suggest you open this issue here, where the team responsible for the Python clients will be able to assist. :)
That said, it looks like diarization_config is present in the latest protos, so I'd suggest you first make sure you are using the most up-to-date version of the client!


Possible bug with  in beta.7?

Version
4.0.0-beta.7
Test Case
I use webpack and react-router for code splitting and lazy loading parts of my page. My component to lazy load looks like this.
And I use it like this:
// this is our single page application
import React from 'react';
import { render } from 'react-dom';
import { Router, Route, Switch} from 'react-router-dom';
import { Lazy } from 'react-lazy';  // package defined above
import { createHashHistory } from 'history';
//import { App } from './App'; // our app component - now loaded lazily!

const hashHistory = createHashHistory();

render(
  <Router history={hashHistory}>
    <Switch>
      <Route exact path="/" render={() => <Lazy fetch={() => _import('./App')} />} />
      {/* other routes */}
    </Switch>
  </Router>,
  document.getElementById('app')
);

This worked in beta.6 and it works in beta.7 without <Switch/> around my <Route/>'s. I thought it was a problem with blocked-updates.md, because only the first route which lazy loads a component is displayed correctly. Navigation through my app doesn't update correctly. But the render method of my <Lazy/> component is always called correctly and no matter how I force updating with passing location through props, it doesn't work (because render is called anyway...). It looks more like <Switch/> doesn't display the the newly rendered part.
Strange enough... it works when I use <Lazy/> just once:
      <Switch>
        <Route
          path="/foo"
          render={() => <Lazy fetch={() => _import('./foo')} />}
        />
        <Route
          path="/bar"
          render={() =>
Bar
}
        />
      </Switch>

And it of course it works without it:
      <Switch>
        <Route
          path="/foo"
          render={() =>
Foo
}
        />
        <Route
          path="/bar"
          render={() =>
Bar
}
        />
      </Switch>

But this fails:
      <Switch>
        <Route
          path="/foo"
          render={() => <Lazy fetch={() => _import('./foo')} />}
        />
        <Route
          path="/bar"
          render={() => <Lazy fetch={() => _import('./bar')} />}
        />
      </Switch>

As well as this:
      <Switch>
        <Route
          path="/foo"
          render={({ location }) => <Lazy location={location} fetch={() => _import('./foo')} />}
        />
        <Route
          path="/bar"
          render={({ location }) => <Lazy location={location} fetch={() => _import('./bar')} />}
        />
      </Switch>

Or even this nightmare 😄:
      <Route render={({ location }) => <Switch>
        <Route
          path="/foo"
          render={({ location }) => <Lazy location={location} fetch={() => _import('./foo')} />}
        />
        <Route
          path="/bar"
          render={({ location }) => <Lazy location={location} fetch={() => _import('./bar')} />}
        />
      </Switch> } />

It looks like componentWillMount is just called once. Is this because of cloneElement in <Switch/>?

It looks like I do need <Route component> here (see https://github.com/ReactTraining/react-router/issues/4658, too). This works:
      <Switch>
        <Route
          path="/foo"
          component={() => <Lazy fetch={() => _import('./foo')} />}
        />
        <Route
          path="/bar"
          component={() => <Lazy fetch={() => _import('./bar')} />}
        />
      </Switch>

If this is the canonical way to solve my problem, feel free to close this issue.
However I'm surprised that writing my example this way results in <Lazy/> being re-used instead of having two different examples.
      <Switch>
        <Route
          path="/foo"
          render={() => <Lazy fetch={() => _import('./foo')} />}
        />
        <Route
          path="/bar"
          render={() => <Lazy fetch={() => _import('./bar')} />}
        />
      </Switch>

If your <Lazy> component had a cDU lifecycle method, you would see that it is called on subsequent renders. Add a key prop to your <Lazy> components and it should work as expected.
<Route path='/quux' render={() => <Lazy key='quux' fetch={...}/> }/>

Thanks for the response @pshrmn

@pshrmn Thanks. This works. But it works a little bit unexpected for me.
I don't want to sound bad - you all do a great job - but this seems somewhat tedious to me. Inside <Switch/> I always just want to render one route. This only make sense if the path (and maybe in combination with exact) is always unique. If I would have a supported way to define custom <Route/>s inside <Switch/> (coming back to https://github.com/ReactTraining/react-router/issues/4576). I could create a <LazyRoute/> or something like that which would generate a unique key based on path and exact automatically.
But anyway, thank you.

<Switch> is a very simple component that iterates over its children elements. If you need to support custom routes, then the best solution would probably be to implement your own <Switch>-like component.
For example, I created a <ConfigSwitch> component. It has the same effect as <Switch>, but I prefer to explicitly define the array of route objects.

Cool, thank you for the link and your support! ❤


is EUSIPCO a CCF-B?

please refer to the official website: https://www.ccf.org.cn/Academic_Evaluation/By_category/

I want to tell, EUSIPCO is not a CCF-B, but it is in your websit.


calc( ) issue?

I recently ran into an issue where one of my declarations was being removed completely by clean-css. The declaration in question: width: calc(24.44444% + (17.36111% - 250px)/3);
After some debugging it looks like the reason this is happening is because there are not spaces between the division. Refactoring the code to: width: calc(24.44444% + (17.36111% - 250px) / 3); fixes the issue.
This worked in my previous build process (not using clean-css) with no issues. Is this working as intended and I am just missing something?
Thanks!

There are some tests addressing calc() but it should work fine: https://github.com/jakubpawlowicz/clean-css/blob/master/test/integration-test.js#L85
Which version of clean-css do you run?
Does it affect all browsers or only specific ones?

I am using a gulp build process with the package gulp-clean-css. That being said, the current version being used is 3.4.20. When I run the build process it strips out the declaration from the css file completely. So it's not really on the browser level.
Could this be an issue with that package instead? I guess reading their npm page it seemed like it would  be a clean-css issue.
Thanks for the prompt response!

That's recent enough to work fine. Could you first try aggressiveMerging: false option and if it doesn't help could you share an excerpt of your CSS so I can try it locally?

On 11 Jan 2017, at 20:41, Alex Fernandez<EMAIL_ADDRESS>wrote:
I am using a gulp build process with the package gulp-clean-css. That being said, the current version being used is 3.4.20. When I run the build process it strips out the declaration from the css file completely. So it's not really on the browser level.
Could this be an issue with that package instead? I guess reading their npm page it seemed like it would be a clean-css issue.
Thanks for the prompt response!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Please recheck with clean-css 4 which got rid of aggressive merging.


feat: add an additional author card

@scissorsneedfoodtoo, I would appreciate it if you could take a look.
top of the article

bottom of the article

Hey @ahmadabdolsaheb, this looks great.
One small thing I noticed is that there's an extra <hr> element at the bottom of the article if the author is freeCodeCamp.org:

I left a possible quick fix as a review comment.

Thanks for the review, This should do it.

That looks way better than what I suggested :)
Tested locally with and without authors named freeCodeCamp.org and everything LGTM :+1: :+1:


Fix: initial push calendar filter border and placement

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #70
Fix #80
Test URLs:

Before: https://main--accenture-newsroom--hlxsites.hlx.page/
After: https://59884-calendar-filter2--accenture-newsroom--hlxsites.hlx.page/

@zozo-j this change is breaking the category pages https://59884-calendar-filter2--accenture-newsroom--hlxsites.hlx.page/subjects/technology

The border box for search/filter is explicitly added to make this similar to the category pages

Can you please check with the business, if we can have home page and category pages to have the same box?

Hello @ravkiran , I'm sorry I overlooked the other pages where it was also affecting the view. If it's the look in category pages, I can just isolate my update to the homepage so that the category pages won't get affected, if it's fine. :)

@zozo-j did you check with business on

Can you please check with the business, if we can have home page and category pages to have the same box?


fixed the bin_target to prevent issue with install

My install was breaking (on Ubuntu and Centos) because it was creating a webhookd directory and webhookd wasn't starting because of a permissions issue. This resolves that and puts webhookd in /usr/local/bin properly.

Hello, thanks a lot for this!
Can you also remove the wildcard of this line: https://github.com/ncarlier/webhookd/blob/master/install.sh#L38
If not removed the tar.gz file is also copied into the bin dir.

Good call. Done!

Thanks a lot!


Mobile layout for the docs website is broken

This is a Bug Report

Problem:
The mobile screen layout of the website appears to be broken and disrupted.
Please refer to the below screenshot for a visual representation of the problem.

Proposed Solution:
Fix the website  layout for smaller mobile screens
/area web-development

It seems that this issue may be a result of a recent change we merged as part of PR #41695. The change was intended to add a splitter so that the left navigation panel can be resized.

The splitter works just fine, Should we just roll back to using the second hamburger menu on mobile?

I can help with that /assign

/assign @Gauravpadam

/triage accepted

Symptom of #42795 is also there, at right side.

Symptom of #42795 is also there, at right side.

Will try to address that too, Thanks for the heads up

Oops.
/priority important-soon
We can either:

revert Split the doc view #41695
fix the splitter for small viewports

Let's do whichever feels simplest and quickest.

@sftim I was thinking of reverting to the old layout specifically for the smaller viewports, That way we can keep the splitter as well. I'd like to hear your thoughts on this

@Gauravpadam Thanks. I wasn't able to make the splitter work for smaller devices. Your help is appreciated.

Also, see #42947


unnecessary PREG_OFFSET_CAPTURE usage (?)

Just wondering is PREG_OFFSET_CAPTURE is needed here https://github.com/thunderer/Shortcode/blob/65d8b2937430e944c84a0123d2b0dd392c1c85c7/src/Parser/RegularParser.php#L338
I don't see offset used anywhere in the following code however during tests I found that it uses up memory pretty heavily. If I did my testing right, in one case preg_match_all() uses up 80 MB with PREG_OFFSET_CAPTURE and 23 MB without.

Interesting, it looks like a leftover from the time I actually used the offset, now replaced with calculation via mb_strlen(). Would you be interested in preparing a PR for this?

I've actually tried that, but the logic in the following switch statement is a little but over my head. What I could share is why I have investigated this, and minimal test cases which shows memory issues with that preg_match_all() statement https://1drv.ms/f/s!AgnMn-haWyFrkcN50beuEO4A0m6PQw?e=GjwcEV . Ideally I wanted to find out why these content cases uses so much memory, but other cases don't. PREG_OFFSET_CAPTURE looked like a low hanging fruit, but there could be other issues still.

@ViliusS @funkjedi the PR is merged now, and I also got another idea to make it even better using PCRE MARK verb. Unfortunately this will work in PHP 7+ only, so I'll merge it after figuring out the strategy to bump the required PHP version and modernize the codebase. My plan so far is v0.8.0 for PHP 5.3+, v1.0.0 for PHP 7.1+ and v2.0.0 for PHP 8.1+, with dedicated branches for each major version - master stays for 0.x, then v1.x, and v2.x respectively.


refactor: improve error message for not found contracts

Problem
When setting up a script to automatically deploy a smart contract with other contracts in its parameters, I encountered an error due to a missing contract deployment. However, the error did not specify which contract was missing
Solution
I have added a more descriptive revert message that includes the contract name and chain ID when a contract is not found. This improves the developer experience for users of the tool 🙂
Before

After

Lovely! Thank you!


Unify feedback message classname

LiveURL: https://smartfaq-fix-cypress-test.surge.sh

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[BUG] v1 docs CSS missing

The docs are returning a 404 for the /css/style.min.c4db12f74faef69e28efd1fea384bb0dcdd9d3daf7a9a66c158914ef0cc56234.css path.
Impact: Website is rendered incorrectly.

Keptn V1 has reached EOL on December 22nd, 2023, so this issue has been closed.


AttributeError: 'LlamaConfig' object has no attribute 'rope_theta'

I followed the instructions in the README to deploy tinychat on jetson agx orin and tried to get the llama-2-7b-chat model. However, Meta doesn't seem to provide a model in huggingface format, so I downloaded llama-2-7b-chat-hf  uploaded by another user as an alternative.
When running the command in step 4 “Run the TinyChat demo”, I encountered the following error:
Traceback (most recent call last):
  File "/SSD/codes/./llm-awq/tinychat/demo.py", line 175, in <module>
    model = model_type_dict["llama"](config).half()
  File "/SSD/codes/llm-awq/tinychat/models/llama.py", line 325, in __init__
    self.model = Transformer(params)
  File "/SSD/codes/llm-awq/tinychat/models/llama.py", line 281, in __init__
    self.layers.append(TransformerBlock(layer_id, params))
  File "/SSD/codes/llm-awq/tinychat/models/llama.py", line 250, in __init__
    self.self_attn = LlamaAttentionFused(args)
  File "/SSD/codes/llm-awq/tinychat/models/llama.py", line 85, in __init__
    self.rope_theta = args.rope_theta
  File "/SSD/anaconda3/envs/tinychat-test/lib/python3.10/site-packages/transformers/configuration_utils.py", line 261, in __getattribute__
    return super().__getattribute__(key)
AttributeError: 'LlamaConfig' object has no attribute 'rope_theta'

I searched for this error and found a similar case, where it seems that I need to upgrade the transformers library to a higher version.
Even though this contradicts the earlier instructions specifying transformers==4.32.0, I tried pip install --upgrade transformers to upgrade transformers to version 4.45.1, and was able to run the demo after that.
Although the problem has been solved for now, I still want to ask if this is normal and whether it will cause protential problems? Is there a better solution?

Thank you for your report! We have also noticed this error and upgraded the version of transformers in #218.


Text with mixed english and Hebrew is strangely formatted in RTL.

Text with placeholders is by definition a mixture of RTL and LTR characters as the placeholder must be '%1' etc.
The translation for glide is:

גלוש %1 שניות ל x: %2 y: %3
But this appears as:

Clearly the 'x:' is in the wrong place.
A note from a translator suggests adding this style could help as it would override all the text.
text.blocklyText { direction: rtl; }

As Chris wrote, the Hebrew version is not usable as it is now. Some blocks are unreadable, while others, like operators, work wrong. I give examples below.
It seems that the style command
.blocklyText { direction: rtl; }
does fix it all (at least, all the mistakes I have noticed).
For example, at present  "slide to" block looks like

and after the implementation of the style above it looks as it should:

The above style also fixes the order of the elements in the operator blocks. For example:
at present in the Hebrew version, due to inverse order of the fields, you get:

after implementing the above style:

(BTW, "true" and "false" should be translated, but I have noticed there is another thread regarding that.)

Fixed in https://github.com/LLK/scratch-blocks/pull/1702


Introduce SSO Session Cookie

As a Service Provider I want to be able to discover whether a user can log in or is logged in via Engineblock,
so that I can optimize the start of the authentication process.
When the user is successfully authenticated by the Identity Provider, Engineblock must store an SSO session cookie in
their browser. With this cookie it is possible, if necessary, to verify whether the user has been successfully
authenticated with at least one Identity Provider.
With this functionality it is possible for a service provider to check whether the user has a valid SSO session. If this were to be the case they can; skip the login screen, directly login the user and grant them access to the request content.
An authentication with the Identity Provider is successful when the SAML response contains:
<samlp:Status>
    <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
</samlp:Status>

The value of the cookie contains an array of the entity ID('s) of the successfully authenticated Identity Providers.
This cookie will be deleted at /logout or will expire according to the set sso_session_cookie_max_age.
If the SSO Cookie Session feature is enabled it is also possible to manually delete this cookie at
/authentication/idp/remove-cookies. Do note however, that the remove cookies endpoint is only available if
wayf.remember_choice=true

SSO query
In this PR we implemented an SSO cookie that will be stored by Engineblock after the user has been succesfully authenticated by the IdP. With SSO Query, we want to implement a standalone SSO query microservice for the OpenConext platform.
The SSO Query service will me implemented with the following logic:

A Service Provider sends an SSO query to the SSO query service of the OpenConext platform
The SSO query service evaluates the user's SSO session status

Status TRUE (user has already been authenticated via OpenConext): SSO query immediately sends a response to the Service Provider
Status REMOTE (there is an SSO notification cookie on the OpenConext domain):
Status FALSE (there is no SSO session or SSO notification cookie on the OpenConext domain yet)

We will share the SSO Query service once it is finished.

What is the difference between this approach and the SSO Notification feature? It seems both have a very similar functional goals.

Hi Thijs,
There is a difference between the SSO Notification feature (together with SSO Notification Service) and the SSO Session feature ( together with SSO Query service).
The SSO Notifications actually notifies the WAYF which IDP to preselected, so it can skip the list of choices.
This enables schools to reduce the number of steps users have to take during the login process and increase user-friendliness by providing the possibility to skip the WAYF (Where Are You From) screen. This is done via the use of a cookie that is set using the SSO Notification Service, which can be set for example after the user has logged in on his own environment (for example an intranet page or the homepage of an Electronic Learning Environment).
The SSO Query actually queries EngineBlock to determine the status of a user.
With the SSO Query service it is possible for a Service Provider to check if the user is known and has a valid Single Sign-on Session. This SSO cookie is set by Engineblock and read from the SSO Query service. This way the Service Provider is able to request the authentication status of the user. And if the authentication is complete the users can skip the login screen all together.
We have put the topic of discussing the SSO Session / SSO Query functionality on the agenda for the next meeting.
Hope this clarifies things and if not feel free to contact me meanwhile.
Regards,
Stephan

Any updates on this @Stephan-Kok?

I have implemented the requested changes.


Bump GDS API adapters to 20.1.0

This changes the user agent to include the app
name in API requests.
https://trello.com/c/qkHdtob4/247-bump-gds-api-adapters-everywhere-it-s-used-to-include-user-agent-information

:+1: Looks good to me.


M.A.R. ಠ_ಠ: Watch Learntek

M.A.R. ಠ_ಠ requests the watch of the watch_keyword Learntek. See the Metasmoke search here and the Stack Exchange search here.

!!/approve


odd even row striping

It would be really nice it you would add
 cellCss += (row % 2 == 1 ? ' slick-cell-odd' : ' slick-cell-even');
to appendRowHtml just above the line
stringArray.push("<div class='" + cellCss + "'>");

What for?  This is already applied on the row element so any odd/even cell can be styled using a child selector if needed.

I was having some issues where it wasn't cascading properly. it also makes it so that my editors I also use a if(\$(args.container).parent().hasClass('slick-cell-even')) { to tell what css I should be using in them.

Most likely, your selector was applied property, but the level of specificity wasn't enough to override the default cell style.  You can either increase the specificity of the selector or make it "!important".
As for the editors, all you have to do is to add another ".parent()" :)

OMG... Do you know how long I have been adding that custom line to my copy of slick.grid.js? Thanks for the tip.... works great now :/


Need intelligent pre-packaging of pathway data-sets

How large would a sparse matrix representation of this be? If too large, can we host in Zenodo? Should the user have the option to specify custom pathways?

wontfix


[draft] Support stable-diffusion-webui-forge

Hijacks the forge_sample function and calls it separately for each individual text conditioning. The outputs are then recombined into a format that the extension already knows how to work with.
This doesn't use forge's patcher or take advantage of all of forge's performance optimizations brought over from ComfyUI via ldm_patched,  but it does guarantee backwards compatibility for base A1111 users, and allows Forge users to use the extension without maintaining a separate install of A1111.
For a discussion of some of the challenges of manipulating denoised latents more directly using built-in functionality of Forge, see: https://github.com/hako-mikan/sd-webui-regional-prompter/issues/299

Is this PR still a work in progress? I am playing a bit with the code and it looks relatively complete.
There is something I am not sure I completely grasp, I would appreciate if you could help clarify this part. There seems to be a lot going on in the code, is there something preventing us from calling the original forge function with each auxiliary latent stacked on the batch dimension and keep the settings as they are as input to forge_sample?
Good work overall!

I think I should also clarify something. You may already know this, but let me explain this just in case.
The reason that the combine_denoised original webui implementation is called for the base prompts is that other extensions also patch the combine_denoised function in A1111 (see for example the dynamic thresholding extension). If we don't use the original function, then all previous patches are just overridden and it can break other extensions assumptions. In the case of forge, if anything changes in the original implementation, then we can be sure people will report errors when using the extension at some point.
If there is a way to implement this without monkey patching, we should consider it I think. I don't know exactly what builtin extension mechanisms are in place in forge, maybe we need to investigate the code or maybe we should ask lllysaviel to add something for this use case.

Is this PR still a work in progress? I am playing a bit with the code and it looks relatively complete.

Yes -- there's a lot of things that I want to improve/fix, but I don't mind merging a hacky but working version and cleaning it up in a second pass.
I'm about to be called away to a family engagement shortly. I'll be able to respond more fully to the comments later tonight and push some fixes I've been working on.

The reason that the combine_denoised original webui implementation is called for the AND prompts at the base of the prompt tree when the extension is enabled is that other extensions also patch the combine_denoised function in A1111 (see for example the dynamic thresholding extension). If we don't use the original function as much as possible, then all previous patches are just overridden and it can break other extensions assumptions. In the case of forge, if anything changes in the original implementation, (i.e. a new paper implementation related to denoising) then we can be sure people will report errors when using the extension at some point.
If there is a way to implement this without monkey patching, we should consider it I think. I don't know exactly what builtin extension mechanisms are in place in forge, I need to investigate the code or maybe we should ask lllysaviel to add something for this use case / contribute a PR to forge ourselves.

The issue I think is what is returned here: https://github.com/lllyasviel/stable-diffusion-webui-forge/blob/main/ldm_patched/modules/samplers.py#L289
Generating at 896x1152 with a batch size of 1, with the prompt my first prompt AND my second prompt :0.5 and no monkey patch, cond_pred will have shape torch.Size([1, 4, 144, 112])
If I use the same settings with the prompt
my first prompt
AND my second prompt
AND my third prompt
AND my fourth prompt
AND my fifth prompt
AND my sixth prompt
AND my seventh prompt
AND my eighth prompt
AND my ninth prompt

I still get cond_pred with shape torch.Size([1, 4, 144, 112]) -- because ldm_patched already combined the auxiliary conds and returned just the single cond latent
Increasing batch size to 8, then I get torch.Size([8, 4, 144, 112])
I think you knew this already, because you suggested:

There is something I am not sure I completely grasp, I would appreciate if you could help clarify this part. There seems to be a lot going on in the code, is there something preventing us from calling the original forge function with each auxiliary latent stacked on the batch dimension and keep the settings as they are as input to forge_sample?

I think that may be cleaner for playing nice with other extensions, the part I'm trying to figure out is how to perform the surgery on denoiser_params.text_cond and cond_composition to make that work.

I think that may be cleaner for playing nice with other extensions, the part I'm trying to figure out is how to perform the surgery on denoiser_params.text_cond and cond_composition to make that work.

Yeah it seems tricky to make it work at a first glance. Let me see if I can get it to work on my side and I'll come back here with what I find. For personal reasons I don't want to falsely promise that I will find something by tonight, however I really intend to look into this today.

Yeah it seems tricky to make it work at a first glance. Let me see if I can get it to work on my side and I'll come back here with what I find. For personal reasons I don't want to falsely promise that I will find something by tonight, however I really intend to look into this today. I can also focus on something else if you want to tackle this part.

so ldm_patched.modules.samplers.calc_cond_uncond_batch returns a pair of denoised latents (cond_pred, uncond_pred) and then applies classifier-free guidance (a custom implementation can be supplied via model_options) to compute a single cfg_result. if model_options includes any any sampler_post_cfg_function, those can further alter cfg_result before it is returned.
this extension wants to work with a tree structure of latent vectors and compute the cfg_result by traversing that tree, but ldm_patched can only compute cfg_result from two vectors at a time
I am thinking maybe we should work at a lower level, at ldm_patched.modules_samplers.sampling_function or ldm_patched.modules_samplers.calc_cond_uncond_batch, to call the original calc_cond_uncond_batch multiple times and collect the results.
for example, let's say the batch size is 2, and B=1 has 5 prompts while B=2 has only 2 prompts. we'd call calc_cond_uncond_batch 7 times, and collect the results like
[
  [
    (batch1_nocond_pred, batch1_uncond_pred),
    (batch1_cond1_pred, batch1_cond2_pred),
    (batch1_cond3_pred, batch1_cond4_pred),
    (batch1_cond5_pred, _)
  ],
  [
    (batch2_nocond_pred, batch2_uncond_pred),
    (batch2_cond1_pred, batch2_cond2_pred),
    (batch2_cond3_pred, batch2_cond4_pred)
  ]
]

we'd then traverse the cond tree for each batch to compute the modified (cond_pred, uncond_pred) in a form that other extensions can still work with
I think it still has to be a monkey patch rather than a change to forge itself, because forge doesn't have any concept of manipulating trees of conds or latents

for example, let's say the batch size is 2, and B=1 has 5 prompts while B=2 has only 2 prompts. we'd call calc_cond_uncond_batch 7 times, and collect the results like

I looked at the code and the web API docs for the txt2img route, and now I'm skeptical of my previous statement on B being different for each index in N because I only see a single prompt in the suggested JSON body. I recall that at least within an extension in A1111, it is possible to set a different prompt for each batch index in the p object.
After seeing this, I made a test extension that overwrites the second prompt in the batch with 3 positive AND conds while leaving the first prompt with no AND, and it seems that in forge, cond_from_a1111_to_patched_ldm_weighted discards any extraneous condition. It keeps only the smallest number of conditions. So my assumption above that N can be different for each index in B doesn't hold in forge. However, neutral prompt extension will expect conds that will be missing if we discard them in larger trees, which will definitely create issues (it will raise an exception at generation time), so maybe we can use padding for this? I'm not sure honestly.

for example, let's say the batch size is 2, and B=1 has 5 prompts while B=2 has only 2 prompts. we'd call calc_cond_uncond_batch 7 times, and collect the results like

Yeah maybe that'd be a better approach to padding... I believe we have to change the behavior of forge in this way, so as to allow a different number of conds per batch index, to prevent crashes in the extension.

(the noconds aren't necessary for current functionality, but they'd be almost free to implement with this design, and would enable cool features like https://github.com/comfyanonymous/ComfyUI/blob/master/comfy_extras/nodes_perpneg.py)

Perpneg is implemented with the AND_PERP keyword already. The tree structure is supposed to enable these alternative denoising methods. I'm not sure I fully understand the "nocond" concept, so please ignore this paragraph if it doesn't add any useful info for you.

I think it still has to be a monkey patch rather than a change to forge itself, because forge doesn't have any concept of manipulating trees of conds or latents

I think that's a valid point, it's much simpler to implement it like this and I totally support this approach. Another possibility to look at could be to have in forge a pre-processing list of modifiers and a post-processing list of modifiers in reverse order of registration. Like this, we can change the shape of what needs to be processed before and after denoising while respecting the order of other patches and whatever expectation of shapes they have. But that's a bit involved... I think it could be tackled at a different time if we ever do it.

Yeah maybe that'd be a better approach to padding... I believe we have to change the behavior of forge in this way, so as to allow a different number of conds per batch index, to prevent crashes in the extension.

Another approach might be to just print an error when conds are missing in the tree. It isn't a very frequent use case to begin with. IIUC it would simplify the implementation IIUC to just let forge strip the extra conds?

I think that's a valid point, it's much simpler to implement it like this and I totally support this approach. Another possibility to look at could be to have in forge a pre-processing list of modifiers and a post-processing list of modifiers in reverse order of registration. Like this, we can change the shape of what needs to be processed before and after denoising while respecting the order of other patches and whatever expectation of shapes they have. But that's a bit involved... I think it could be tackled at a different time if we ever do it.
Of course the simplest solution would be to have a tree of prompts natively in the base repo but I don't think forge maintainers would welcome this kind of contribution as it is a concept very specific to neutral prompt.

Maybe forge would accept a contribution of a calc_multi_latent_batch method. That would be useful to other extensions as well, and there seems to be a recognition of the value it would add already: https://github.com/lllyasviel/stable-diffusion-webui-forge/issues/242#issuecomment-2008147318
I think a good path forward is

monkey patch ldm_patched.modules.samplers.sampling_function to move this PR forward and get this extension working on forge
submit a draft PR to forge for multi latent sampling, get feedback from forge and regional prompter maintainers
reduce reliance on monkey patch here

I pushed a draft of the type of implementation I have in mind
It is surely bug ridden and likely doesn't work at all yet, but I have to step away for the evening

monkey patch ldm_patched.modules.samplers.sampling_function to move this PR forward and get this extension working on forge
submit a draft PR to forge for multi latent sampling, get feedback from forge and regional prompter maintainers
reduce reliance on monkey patch here once forge natively supports multi latent sampling

Seems to be a sensible approach, let's go with that.
I pushed changes that make the code work at a basic level. With multiple AND keywords, it seems to give different results when the extension is enabled vs when the extension is disabled, this needs to be investigated. I am also not totally sure that patches and other extensible properties of conds (like cond['area']) are properly working, although it is a possibility that the current code respects comfy-like extensions properly. I intend look into it further tomorrow.

with assigned weights of :0 for different combinations of leaf prompts and bracketed groups, and in all cases the generated result was the same as if the zero'd out prompts were removed completely

I made some progress on this, it seems that in the original sampling_function, CFG is multiplied by the sum of cond["strength"]. I am not sure why this decision was made, but it makes even the builtin AND behave differently than in A1111 already.
Do you mind if I push my attempt for this to your branch? I don't want to conflict with any local changes you have.

I made some progress on this, it seems that in the original samplers.sampling_function(), CFG is multiplied by the sum of cond["strength"] (see how edit_strength is computed).

lol, that would explain why results were so much better for me when I implemented weight normalization >_<

I am not sure why this decision was made, but it makes even the builtin AND behave differently than in A1111 already.

wow you're right, and it's forge specific / not inherited from comfy -- https://github.com/lllyasviel/stable-diffusion-webui-forge/commit/998327c744d83a9327289c5639afb603cc2d3464
might be worth raising an issue there to inquire

Do you mind if I push my attempt at fixing this to your branch? I don't want to conflict with any local changes you have.

go for it, I can test on a different branch or rebase as needed

Damn this being forge specific is really surprising. I pushed the changes, let me know if it helps in any way with your testing.

I got the same results when I sampled once per cond, as I did when I sampled in pairs treating every other cond as uncond, so our efficient sampling idea works :tada:

@ljleb I fixed an issue that occurred when using this extension together forge's builtin self-attention guidance extension, which occurred because that extension calls calc_cond_uncond_batch separately after computing CFG, at https://github.com/lllyasviel/stable-diffusion-webui-forge/blob/main/ldm_patched/contrib/external_sag.py#L155

Awesome! Thanks for the contribution. This is starting to look solid.
For personal reasons, I have not been able to bring myself to finish testing/reviewing unmerged work on this repo. As you spent a lot of time and efforts here, I'm starting to feel really bad with this situation. There is unfortunately not much I can do about it in the short term, but I'm actively seeking a solution.
As you seem to have a couple ideas with the tree of prompts and other syntax extensions, I was initially considering exceptionally giving away ownership to you eventually if I can't resolve my personal reasons somehow.
I am however not really in favor of giving away ownership to anyone usually, and now especially in light of the recent xz situation. If the repo becomes stale for long enough (like a couple of months) and your fork has useful additions in it, w-e-w might accept a PR for changing the URL in the extensions listing.
Before it gets to that point, I intend to test this code and move forward with it when I get the opportunity, but I can't promise anything. Sorry for the trouble this causes.

Upon testing this further, I find that a basic prompt with a single AND does not reproduce the results I get with the extension disabled. I learned why edit_strength was used, in fact it is because forge merges the prompts to a normalized scale in calc_cond_uncond_batch. So to restore the behavior people get in a1111, it multiplies the entire batch by the sum of the scale.

Upon testing this further, I find that a basic prompt with a single AND does not reproduce the results I get with the extension disabled. I learned why edit_strength was used, in fact it is because forge merges the prompts to a normalized scale in calc_cond_uncond_batch. So to restore the behavior people get in a1111, it multiplies the entire batch by the sum of the scale in sampling_function.

Thank you, I'll block out some time to look into this tonight.

Thank you, I'll block out some time to look into this tonight.

I have started working on this and fixed it, but the results are a little bit different still for some other reason (I suspect it is caused by the top level AND prompts being merged in delta space, which is not exactly how they are merged normally. it is mathematically equivalent but might be creating imprecisions in the denoising process).
I will take some time to finish this tomorrow if I can't do it tonight.

In case anyone is here trying to get this to work locally with manually installed forge, lllyasviel has made structural changes to the backend including removing the module that this pull request interfaces with entirely last month.


several unrelated cleanups

This PR includes several unrelated cleanups. It requires an MSRV bump.
Checklist

[ ] Sensible git history (for example, squash "typo" or "fix" commits). See the Rewriting History guide for help.
[ ] Update the changelog (if necessary)

I removed the workspace dependency inheritance feature. Should need no MSRV bump now.