Make metrics filterable based upon metadata

The "prefix or not to prefix" issue seems to boil down to the inability to allow users to conditionally handle an event based upon a predicate other than the event name. The proposal would be to add a filter predicate option which would be used by reporters to conditionally handle the event.
This should allow for simpler APIs for library authors going forward and help some tracing vendors with their needs by discouraging the use of required prefixes or auto-generated prefixes. User-supplied prefixes should still be accepted for power users with tight performance requirements where auto-instrumentation by vendors is less of a concern.
Example
I am read/write splitting to my DB which requires separate Ecto Repos. The latency requirements for my writes are much different than my requirements for my reads, resulting in different bucket sizes for each.
Currently, I must utilize event prefixes provided by Ecto to distinguish between these repos.
distribution("ecto.writer.query.duration.ms",
  buckets: [5, 10, 20, 50, 100, 200, 500, 1000, 1500, 2000, 5000, 10000],
  event_name: [:writer, :repo, :query],
  measurement: :query_time,
  unit: {:native, :millisecond},
  description: "Ecto query duration - Time spent executing the query",
  tags: [:repo]
),
distribution("ecto.reader.query.duration.ms",
  buckets: [5, 10, 15, 25, 35, 50, 100, 200],
  event_name: [:reader, :repo, :query],
  measurement: :query_time,
  unit: {:native, :millisecond},
  description: "Ecto query duration - Time spent executing the query",
  tags: [:repo]
)

If I could instead conditionally handle an event based upon the metadata, the need for a prefix could be removed in most use cases.
distribution("ecto.writer.query.duration.ms",
  buckets: [5, 10, 20, 50, 100, 200, 500, 1000, 1500, 2000, 5000, 10000],
  event_name: [:repo, :query],
  measurement: :query_time,
  unit: {:native, :millisecond},
  filter: fn meta ->
    match?(%{repo: MyApp.Repo}, meta)
  end,
  description: "Ecto query duration - Time spent executing the query",
  tags: [:repo]
),
distribution("ecto.reader.query.duration.ms",
  buckets: [5, 10, 15, 25, 35, 50, 100, 200],
  event_name: [:repo, :query],
  measurement: :query_time,
  unit: {:native, :millisecond},
  filter: &match?(%{repo: MyApp.ReadOnlyRepo}, &1),
  description: "Ecto query duration - Time spent executing the query",
  tags: [:repo]
)

Reporters should honor the predicate when implementing handlers when the filter is a function. To maintain the highest performance, reporters could add a second event handler which processes metrics defined with a predicate to remove an additional function call, e.g. handle_event/4 and handle_filtered_event/4.
/cc @binaryseed @josevalim @arkgil @GregMefford @tsloughter @hauleth

I like this idea. It gives enough flexibility to support both same or different prefix cases. Also very useful to report only subset of events as metrics.

To maintain the highest performance, reporters could add a second event handler which processes metrics defined with a predicate to remove an additional function call, e.g. handle_event/4 and handle_filtered_event/4.

@bryannaegele I'm not sure I understand this part - can you explain?

Simple question. Is that possible to update metric filter after creation? Maybe something like that would be feasible in some cases. If so, then maybe filter should be a list? Maybe we should take a look on how logger did it:

filters is a list of {filter_fun(), Opts :: term()}
there is default_action on each handler which is either log or stop which will be action if none of the filters decides otherwise
filter_fun() takes 2 arguments - event and Opts
filter_fun() can return:

stop - to prevent event from being logged
ignore - this filter doesn't do anything and further filters should decide what to do
event itself (can be modified) - event that will be sent to the handler

To maintain the highest performance, reporters could add a second event handler which processes metrics defined with a predicate to remove an additional function call, e.g. handle_event/4 and handle_filtered_event/4.

@bryannaegele I'm not sure I understand this part - can you explain?

Sure. I had two concerns about that.
With one handler, the handler would need to check if there is a predicate or provide a default, then execute it on every call. This isn't a huge hit, but it's not zero. However, user supplied predicates will almost always be an anonymous function which does have a measurable hit on performance. This pattern would help alleviate doing checks on every call to segregate known filterable calls to another handler.
I suppose you could provide a default handler in your reporter that is a function capture vs anonymous function.

Is that possible to update metric filter after creation?

I suppose you could if you used an MFA and your function was somehow dynamic. That doesn't sound like something you'd ever do in practice. What would be the use case?
As to filtering similarly to logger, we're only concerned with the question of "should I record this event with this definition?" which is a simple predicate rather than modifying anything. Modification of metadata is already available in tag_values/1.

@bryannaegele thanks for clarification 👍

Is it implied here that libraries move away from configurable event name? It seemed like in other discussions we're already past the point where we can change that...

Ecto doesn't always have a value for all its metrics so currently I have to set 0 as a default, which obviously skews results, so this would be a great addition. Is this waiting for a PR?

@bryannaegele what @hkrutzer says would be a valid use case for filtering based on measurements.
@hkrutzer I think we need to flesh out the details before moving into implementation, but we're certainly looking for contributors here 👍

@arkgil yes, definitely. This was a good use case which I have run into with Ecto, so I think it's good to support filtering on both.
My updated proposal is to change the proposed filter predicate function requirements to accept 2 arguments - measurements and metadata.
distribution("ecto.writer.query.duration.ms",
  buckets: [5, 10, 20, 50, 100, 200, 500, 1000, 1500, 2000, 5000, 10000],
  event_name: [:repo, :query],
  measurement: :query_time,
  unit: {:native, :millisecond},
  filter: fn _measurements, meta ->
    match?(%{repo: MyApp.Repo}, meta)
  end,
  description: "Ecto query duration - Time spent executing the query",
  tags: [:repo]
)

Thoughts?

@bryannaegele looks great now 👌

I was working on this last night and realized the described use case is supposed to already be handled by reporters but I fail to do so in the Prometheus one.
Under https://github.com/beam-telemetry/telemetry_metrics/blob/master/docs/writing_reporters.md#reacting-to-events

Measurements are optional, so we must skip reporting that particular measurement if it is not available

If we have this as a standard for reporters and still think it's a good idea (I do), then this is just a bug in the Prometheus reporter.
I don't see any harm with passing measurements to the filter, but I don't see a need to any longer.

@bryannaegele isn't the problem in the described use case not that the values are missing, but that they are set to 0, and skew the aggregations?

The only "harm" I would see is not having a need for it and making filter functions more verbose where a simple capture would suffice

I agree. Maybe this require more thinking.

They are set to nil

I agree that we can close this for now as the use case is address. We don't emitting metadata instead of emitting zero on purpose, exactly to avoid skews.

@josevalim the metadata filtering case is still relevant and removes the propensity of event prefixes. The remaining question was if there's any reason to include measurements as an argument when we can't think of a use case.

we can always ship with only the meta and in the future if we need the measurements we can check the function arity and dispatch accordingly with both meta and measurements.

Measurements are optional, so we must skip reporting that particular measurement if it is not available

So this code should work?
Telemetry.Metrics.summary("somerepo.query.idle_time_ms",
  event_name: "somerepo.query",
  measurement: fn x -> Map.get(x, :idle_time) end,
  tags: [:environment ],
  unit: {:native, :millisecond}
)

This results in
[error] Handler {TelemetryMetricsStatsd.EventHandler, #PID<0.810.0>, [:somerepo, , :query]} has failed and has been detached. Class=:error
Reason=:badarith
Stacktrace=[{:erlang, :*, [nil, 1.0e-6], []}, {Telemetry.Metrics, :"-maybe_convert_measurement/2-fun-0-", 3, [file: 'lib/telemetry_metrics.ex', line: 639]}

Am I doing it wrong?

Hi @hkrutzer. Nope, that was a bug. It has been fixed in master.

Thank you!

@hkrutzer This is fixed in the Prometheus library but I see your example is from StatsD. If this is happening in the StatsD reporter, that will need to be fixed in there, as well.


Azure DevOps pipeline - ModuleNotFoundError: No module named 'yaml'

Dear,
I am adding the Python script to the Azure DevOps pipeline. I cannot install the YAML module; see the message.
ModuleNotFoundError: No module named 'yaml'

Thanks for the feedback.
Frederik

Thanks for testing it :-)
Have you installed the dependencies first with pip install -r requirements.txt from the powerapps-docstring folder?

Hello Sebastian,
I'm not a python specialist in pipelines. Can you give me a tip?
The pipeline I'm building.

The details of the python step in the pipeline. I have tried to add an inline script and use the pipe install -r requirements.txt, but it's also failing.

Thanks for the feedback.

Hey Sebastian,
Currently, I have resolved it by adding a PowerShell step into the Azure DevOps pipeline.
The step, In the pipeline

Result:
2021-11-07T15:31:23.5295239Z ##[section]Starting: Install python requirements
2021-11-07T15:31:23.5413587Z ==============================================================================
2021-11-07T15:31:23.5413930Z Task         : PowerShell
2021-11-07T15:31:23.5414341Z Description  : Run a PowerShell script on Linux, macOS, or Windows
2021-11-07T15:31:23.5414595Z Version      : 2.194.0
2021-11-07T15:31:23.5414834Z Author       : Microsoft Corporation
2021-11-07T15:31:23.5415157Z Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/powershell
2021-11-07T15:31:23.5415535Z ==============================================================================
2021-11-07T15:31:24.4493807Z Generating script.
2021-11-07T15:31:24.4977530Z ========================== Starting Command Output ===========================
2021-11-07T15:31:24.5238007Z ##[command]"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ". 'D:\a_temp\46d22207-84b2-4ddf-bac8-f6835dc03398.ps1'"
2021-11-07T15:31:31.1193421Z Collecting mdutils
2021-11-07T15:31:31.1657433Z   Downloading mdutils-1.3.1.tar.gz (19 kB)
2021-11-07T15:31:31.2168285Z   Preparing metadata (setup.py): started
2021-11-07T15:31:32.2224116Z   Preparing metadata (setup.py): finished with status 'done'
2021-11-07T15:31:32.3350419Z Collecting pyyaml
2021-11-07T15:31:32.3455664Z   Downloading PyYAML-6.0-cp39-cp39-win_amd64.whl (151 kB)
2021-11-07T15:31:32.3725772Z Using legacy 'setup.py install' for mdutils, since package 'wheel' is not installed.
2021-11-07T15:31:32.4838414Z Installing collected packages: pyyaml, mdutils
2021-11-07T15:31:32.5955120Z     Running setup.py install for mdutils: started
2021-11-07T15:31:33.0700613Z     Running setup.py install for mdutils: finished with status 'done'
2021-11-07T15:31:33.0802310Z Successfully installed mdutils-1.3.1 pyyaml-6.0
2021-11-07T15:31:33.9863219Z ##[section]Finishing: Install python requirements
It resolved the issue.

Great to see that it works!
Your feedback is also highly welcome! Here or on twitter


Add IPFS Gateways on Network Parameters

What does this PR introduce?
Adds the IPFS gateways for testnet and mainnet to the network parameter lists.
Previously, these addresses have been used in various guides and the playground already, like:
Mentioned Upload RPCs:

https://docs.lukso.tech/learn/expert-guides/universal-profile/edit-profile/
https://github.com/lukso-network/lukso-playground/blob/main/README.md

Mentioned Download RPCs:

https://docs.lukso.tech/learn/dapp-developer/read-profile-data/
https://docs.lukso.tech/learn/dapp-developer/standard-detection
https://docs.lukso.tech/learn/expert-guides/read-asset-data/
https://docs.lukso.tech/learn/expert-guides/universal-profile/edit-profile/
https://github.com/lukso-network/lukso-playground/blob/main/README.md

Applied suggestions. I just checked- Infura does not allow custom RPC endpoints anymore. So I left it out of the applied suggestions.


Migrate CI/CD to GIthub Actions

Need codecov to find coverage find, but I will work on this later.


FireBase sendEmailVerification in flutter plugin

Any news or update that this will be implemented?
I can't seem to get the method described in
https://github.com/flutter/plugins/pull/529
In my pubspec.yaml:
dependencies:
flutter:
sdk: flutter
firebase_auth: "^0.5.10"

The sendEmailVerification method is on the FirebaseUser object.
    var user = await authService.currentUser();
    await user. sendEmailVerification();

If that is what you are referring to

Thank you. This is exactly what I needed. Where can I find the docs for the firebase auth plugin?

Well, I have not seen any official documentation. I tend to look at the source code and commit history to see what is added

That should be implemented flutter/plugins#529
Dup of #16776, #12459


Consider a redesign using a spring-return / push-pull solenoid

Something like the Push Pull Type Electric DC Solenoid; basically mount the solenoid inside the bell, so I can have the Pi underneath, the solenoid on top, and ding the bell from the inside. So it's just a bell with a little box underneath. Maybe a good time to consider switching to the Pi Zero W, too!

(Idea from comment: https://www.youtube.com/watch?v=Etr7uIL9spg&lc=UgxKTLrzPYfF4dLlNcR4AaABAg.9HHklQ8r4_v9HI7jTzobpe)

Going to try my luck with this soon. I have a solenoid, but forgot to order a second call bell since the first is still in continuous operation :)

A couple more things I've seen recently, for inspiration:

How Doorbells Work
Email Notification Bell

To provide the ~600mA current at 5V for the solenoid, I'll probably need to power it off the Pi's 5V rail instead of through GPIO directly, since according to this answer, the 3.3V rail can only drive ~50mA... more research required.

This circuit looks like a good guide: Pi 3 B+ 5v solenoid push-pull.

I'm also needing to design a new enclosure/case for the thing... was going to do some measurements and start building things up by hand... but it looks like @tenderlove already did some of that work for me: https://github.com/tenderlove/analog-terminal-bell/tree/master/case

I'm thinking of modifying that design to house everything below/inside the bell... if I can route the solenoid that way.

Some code:
import RPi.GPIO as GPIO
import time

# Use GPIO pin numbers instead of physical pin numbers.
GPIO.setmode(GPIO.BCM)

# Set GPIO pin 4 as the output.
GPIO.setup(4, GPIO.OUT)

# Set GPIO 4 high for .1s and then back low.
GPIO.output(4, GPIO.HIGH)
time.sleep(0.1)
GPIO.output(4, GPIO.LOW)

# Cleanup.
GPIO.cleanup()

Save that to a file like ding.py and also make sure your user has permissions to control GPIO with sudo adduser pi gpio and logging out and logging back in (else you'll get a warning RuntimeError: Not running on a RPi!).
Then run:
python ding.py

This should light up GPIO pin 4, and cause a ding, using the circuit in this comment: https://github.com/geerlingguy/pi-bell-slapper/issues/2#issuecomment-860276630

It verks!

Just noting this for myself: For the Pi Zero W, it requires 32-bit Pi OS (since the CPU is not 64-bit capable), and it only works on 802.11b/g/n at 2.4 GHz (no 5 GHz networking). With that out of the way, I can get it tested and working now :)

Next step: Learning OpenSCAD...

Almost everything is perfect... but the USB port in the current version (above commit) is a hair off center to the right. Have to move it back left so larger USB cables fit through correctly.
Someday if I design a proper PCB / HAT, I can make the tolerances much slimmer. For now it works with a simple small hacked-together protoboard.


Detect Dgs componets correctly in projects

Currently when dgs intellij plugin installed, it always show Dgs Components in the project view. I think it is better to determine if a project added dgs dependencies, then decide to show the Dgs Components.

We've implemented this for the next version that's going to be released soon.


[WFRP4e System] Randomize Wounds

Would it be possible to add a randomize to wounds. So that every creature perhaps get a random number of wounds, similar to the randomize Attributes?
Perhaps a 1d6 - 3 + Max WoundsFrom: danil0wfrp4e: 3.1.0wfrp4e-core: 1.1wfrp4e-eis: 1.0wfrp4e-rnhd: 1.02wfrp4e-starter-set: 1.02

This doesn't really have any basis within the system as written, which follows a formula.

The idea behind is that different creeps have different hp. So the players dont get use that a goblin only have 12 hp, but more random

I understand but that still isn't something that exists anywhere in the rules. Hp is derived from stats, if you want to change it, change the stats, or you can manually edit it.
If you want randomisation of just HP, that would have to belong in a module because there are no rules for it.


Fails to build with libjxl v0.9: use of undeclared identifier 'JXL_DEC_EXTENSIONS'

The last libjxl release removed some deprecated things and changed API/ABI in some places: https://github.com/libjxl/libjxl/releases/tag/v0.9.0
The build currently fails like this (there might be more issues):
imagecodecs/_jpegxl.c:20938:51: error: use of undeclared identifier 'JXL_DEC_EXTENSIONS'
 20938 |     __pyx_t_3 = __Pyx_PyInt_From_JxlDecoderStatus(JXL_DEC_EXTENSIONS); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 91, __py...
       |                                                   ^
1 warning and 1 error generated.
error: command 'C:\\msys64\\clang64\\bin/clang.exe' failed with exit code 1

Here is how other projects deal with the API differences, as an example: https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/970/diffs

That's already fixed in the development version. The next release will require libjxl 0.9.x.

Should be fixed in v2024.1.1.


Update sbt-plugin to 2.9.3

About this PR
📦 Updates com.typesafe.play:sbt-plugin from 2.8.19 to 2.9.3
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.typesafe.play", artifactId = "sbt-plugin" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.typesafe.play", artifactId = "sbt-plugin" }
}]

labels: sbt-plugin-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #47.


Bot: Translator

http://hackage.haskell.org/package/google-translate-<IP_ADDRESS>/docs/Web-Google-Translate.html
From the readme:
import Control.Monad
import qualified Data.Text.IO as T
import Data.Maybe
import Web.Google.Translate

main :: IO ()
main = do
  Right TranslationResponse { translations = xs }
    <- translate (Key "<API-Key>") (Just srcLang) trgLang (Body "Hello")
  forM_ xs $ \Translation { translatedText = TranslatedText txt } ->
    T.putStrLn txt
  where
    srcLang = Source English
    trgLang = Target Russian

Not likely to happen at this stage. Thanks though Jacob.


[$1000]  Web - Magic code of one email works for another

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open New Dot
Login
Add emailOne as first secondary login and don't verify it yet.
Add emailTwo as second secondary login and don't verify it yet
Request magic code for emailOne but don't input it yet
Request magic code for emailTwo but don't input it yet
Go back to magic code screen for emailOne
Enter the magic code received in emailOne for this emailOne. It does not work.
Enter the magic code received in emailTwo for this emailOne. It works.

Expected Result:
Either emailOne magic code should work for emailOne or both emailOne and emailTwo codes should not work and a new code should generate and should work for emailOne
Actual Result:
emailTwo secret code works for verifying emailOne
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number:  1.3.36-3
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/db57373c-19a8-4b9d-8c9c-e4d6242efb09
https://github.com/Expensify/App/assets/93399543/73544087-d05d-4740-ba74-82480793d738
Expensify/Expensify Issue URL:
Issue reported by: @c3024
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1688521454709009
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0177eb06e86cea7910
Upwork Job ID:<PHONE_NUMBER>895008256
Last Price Increase: 2023-07-11

Proposal
Please re-state the problem that we are trying to solve in this issue.

Last received code is only usable for One of the two added contact method.

What is the root cause of that problem?

The code is probably not mapped to added contact method in DB.

What changes do you think we should make in order to solve the problem?

Create a mapping between code and added contact method in DB.

What alternative solutions did you explore? (Optional)

N/A

Tested and was able to repro the issue. However, I think this will need to be fixed by someone internally?  Adding the External label to get a C+ on here to check me on that, thanks @allroundexperts!

Thanks for the gut check @c3024! Ok, switching this to internal then,

Just realized the Internal label didn't assign an internal engineer, added now!

Maybe @NikkiWines or @johnmlee101 would be interested given the knowledge in the domain

@kbecciv in your reproducible step video I do not see the issue occurring, and seems like a different flow than was reported by @c3024 ?

This might not be internal. Basically the UI thinks the login was validated for the other email, but in the database we verified the correct login associated with the correct code. If we don't have this information properly in the UI, I bet we can change the backend to return which login was properly validated

My proposal and I'll fix this now, is that we return the email that was validated in the call itself. Then we'll use that for onyx/local updates.

Actually talking to @NikkiWines I'm going to go with this option
Pass in the desired email in our backend, check if it matches with the validateCode and throw if it doesn't like the validateCode is bad

This is being handled internally, one PR is merged and the other is still being reviewed

second PR to fix this was just taken off hold: https://github.com/Expensify/Web-Expensify/pull/38212

PR is reviewed, waiting for merge

https://github.com/Expensify/Web-Expensify/pull/38212 was merged on 8/4. Seems like only payment due is for reporting.
@c3024 I couldn't find you on Upwork, can you please propose to the job when you get a chance? https://www.upwork.com/jobs/~0177eb06e86cea7910

All paid!


Fix delete pod test case

add waiting time before verifying that the pod is deleted.

@galal-hussein , Instead of adding a sleep before verification , can you wait for the pod to get deleted for a max of 30 secs?


Use CRDS sync instead of informal URL for HST reffile downloads

This update replaces use of an informal URL and website with calls to CRDS for downloading HST reference files.  It is a 'transparent' replacement in that there are no API changes and no changes in behavior from the previous implementation.

This PR will NOT be ready for merging until all the tests actually pass.  Working on it now...

Maybe should just say clearly in README now that this package is not compatible with Windows.

Actually, this package is perfectly compatible with Windows, since I developed and tested this change on my home Windows PC.

This change allowed the Drizzlepac pytest 'hap/test_pipeline.py' test to pass as before when run interactively (under Windows) without downloading any extra files.  The same test run interactively under Linux also worked as expected.


Raw_data_urls accession links

The links on the raw_data_url are not being generated. This is caused by the accessions becoming lower cased and the regex not recognizing the lower casing
ACCEPTANCE CRITERION
-- [X] bug fixed and pushed to dev

Done


Cloud SQL Proxy refreshing connections from localhost constantly

Bug Description
Cloud SQL Proxy when deployed with Docker to Render.com keeps refreshing connections from the local network.
External connections work fine but this is not the expected behavior, we don't have any other service running that is listening to this port, I even tried to change the port to something random, like 13370 in the example below, but the connection keeps refreshing.
Example code (or command)
Jan 12 12:38:50 PM  2023/01/12 15:38:50 Listening on <IP_ADDRESS>:13370 for our_connection_instance
Jan 12 12:38:50 PM  2023/01/12 15:38:50 Ready for new connections
Jan 12 12:38:50 PM  2023/01/12 15:38:50 Generated RSA key in 66.655533ms
Jan 12 12:38:55 PM  2023/01/12 15:38:55 New connection for "our_connection_instance"
Jan 12 12:38:55 PM  2023/01/12 15:38:55 refreshing ephemeral certificate for instance our_connection_instance
Jan 12 12:38:55 PM  2023/01/12 15:38:55 Scheduling refresh of ephemeral certificate in 54m59s
Jan 12 12:38:55 PM  2023/01/12 15:38:55 Client closed local connection on <IP_ADDRESS>:13370
Jan 12 12:39:00 PM  2023/01/12 15:39:00 New connection for "our_connection_instance"
Jan 12 12:39:00 PM  Your service is live 🎉
Jan 12 12:39:00 PM  2023/01/12 15:39:00 Client closed local connection on <IP_ADDRESS>:13370
Jan 12 12:39:05 PM  2023/01/12 15:39:05 New connection for "our_connection_instance"
Jan 12 12:39:05 PM  2023/01/12 15:39:05 New connection for "our_connection_instance"
Jan 12 12:39:05 PM  2023/01/12 15:39:05 Client closed local connection on <IP_ADDRESS>:13370
Jan 12 12:39:05 PM  2023/01/12 15:39:05 Client closed local connection on <IP_ADDRESS>:13370
Jan 12 12:39:10 PM  2023/01/12 15:39:10 New connection for "our_connection_instance"
Jan 12 12:39:10 PM  2023/01/12 15:39:10 Client closed local connection on <IP_ADDRESS>:13370
Jan 12 12:39:15 PM  2023/01/12 15:39:15 New connection for "our_connection_instance"
Jan 12 12:39:15 PM  2023/01/12 15:39:15 Client closed local connection on <IP_ADDRESS>:13370
Jan 12 12:39:20 PM  2023/01/12 15:39:20 New connection for "our_connection_instance"
Jan 12 12:39:20 PM  2023/01/12 15:39:20 Client closed local connection on <IP_ADDRESS>:13370
Jan 12 12:39:25 PM  2023/01/12 15:39:25 New connection for "our_connection_instance"
Jan 12 12:39:25 PM  2023/01/12 15:39:25 Client closed local connection on <IP_ADDRESS>:13370
Jan 12 12:39:30 PM  2023/01/12 15:39:30 New connection for "our_connection_instance"
Jan 12 12:39:30 PM  2023/01/12 15:39:30 Client closed local connection on <IP_ADDRESS>:13370
Jan 12 12:39:35 PM  2023/01/12 15:39:35 New connection for "our_connection_instance"
Jan 12 12:39:35 PM  2023/01/12 15:39:35 New connection for "our_connection_instance"
Jan 12 12:39:35 PM  2023/01/12 15:39:35 Client closed local connection on <IP_ADDRESS>:13370
Jan 12 12:39:35 PM  2023/01/12 15:39:35 Client closed local connection on <IP_ADDRESS>:13370

How to reproduce

Start the proxy server with this dockerfile

# Cloud Sql Proxy
FROM alpine as proxy
WORKDIR /usr/src/app
COPY credentials.json /secrets/cloudsql/credentials.json

## When running local in an M1 you need to use an ARM compatible image that may not have apk add, use apt-get if needed
# RUN apt-get update && apt-get install --no-install-recommends -y wget
RUN apk add wget
RUN wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
RUN chmod +x cloud_sql_proxy

Environment

OS type and version: Linux Alpine amd64
Cloud SQL Proxy version (./cloud-sql-proxy --version): latest from docker
Proxy invocation (for example, ./cloud-sql-proxy --enable_iam_login --dir /path/to/dir INSTANCE_CONNECTION_NAME): ./cloud_sql_proxy -credential_file=/secrets/cloudsql/credentials.json -instances=our_connection_instance=tcp:<IP_ADDRESS>:13370

For context, in Render.com each of our processes is running in dedicated services, the cloud proxy is running in an internal service and we have a NestJS server that connects to it. I tried to have the node server target a different port and even shut down that server completely as it is a staging environment, but the connections kept refreshing in the auth proxy.

@MorenoMdz Are you referring to the "New Connection ..." / "Client closed local connection..." logs?

@MorenoMdz Are you referring to the "New Connection ..." / "Client closed local connection..." logs?

Yes @enocom, those are happening constantly, every 5 seconds or so

Closing this one, it seems that Render has a health check that runs every 5s on the first port it finds open 🙃 , I will have to figure out a way to keep that health check annoyance away from the proxy connections.

Glad you figured it out. :smile: The Proxy does have support for healthchecks too. Perhaps you could pointer Render at that?


running VBinDiff causes a crash

If I try to run a program called VBinDiff obtained from https://www.cjmweb.net/vbindiff/ then alacritty crashes. That is, the window immediately disappears. This happens on Windows, using PowerShell as the shell. An example invocation that repros the bug for me is to run .\VBinDiff.exe .\VBinDiff.exe. That is, asking VBinDiff to display itself. The crash happens with other files as well though.
System
OS: Windows (I tried it on Linux and it worked fine)
Version: alacritty 0.4.0 (b115b90)
Windows: WinPTY
Logs
If I run .\VBinDiff.exe .\VBinDiff.exe as above from an instance of alacritty that was started by running alacritty.exe -vv --print-events the last several lines of output were as follows:
[2019-12-22 01:58] [INFO] glutin event: WindowEvent { window_id: WindowId(WindowId(0x120c84)), event: KeyboardInput { device_id: DeviceId(DeviceId(0)), input: KeyboardInput { scancode: 28, state: Pressed, virtual_keycode: Some(Return), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, logo: false } } } }
[2019-12-22 01:58] [INFO] glutin event: WindowEvent { window_id: WindowId(WindowId(0x120c84)), event: ReceivedCharacter('\r') }
[2019-12-22 01:58] [INFO] glutin event: EventsCleared
[2019-12-22 01:58] [INFO] glutin event: NewEvents(WaitCancelled { start: Instant { t:<PHONE_NUMBER>418s }, requested_resume: None })
[2019-12-22 01:58] [INFO] glutin event: UserEvent(MouseCursorDirty)
[2019-12-22 01:58] [INFO] glutin event: EventsCleared
[2019-12-22 01:58] [INFO] glutin event: NewEvents(WaitCancelled { start: Instant { t:<PHONE_NUMBER>259s }, requested_resume: None })
[2019-12-22 01:58] [INFO] glutin event: WindowEvent { window_id: WindowId(WindowId(0x120c84)), event: CursorMoved { device_id: DeviceId(DeviceId(0)), position: LogicalPosition { x: 405.0, y: 120.0 }, modifiers: ModifiersState { shift: false, ctrl: false, alt: false, logo: false } } }
[2019-12-22 01:58] [INFO] glutin event: EventsCleared
[2019-12-22 01:58] [INFO] glutin event: NewEvents(WaitCancelled { start: Instant { t:<PHONE_NUMBER>92s }, requested_resume: None })
[2019-12-22 01:58] [INFO] glutin event: WindowEvent { window_id: WindowId(WindowId(0x120c84)), event: CursorMoved { device_id: DeviceId(DeviceId(0)), position: LogicalPosition { x: 405.0, y: 120.0 }, modifiers: ModifiersState { shift: false, ctrl: false, alt: false, logo: false } } }
[2019-12-22 01:58] [INFO] glutin event: EventsCleared
[2019-12-22 01:58] [INFO] glutin event: NewEvents(WaitCancelled { start: Instant { t:<PHONE_NUMBER>391s }, requested_resume: None })
[2019-12-22 01:58] [INFO] glutin event: DeviceEvent { device_id: DeviceId(DeviceId(65597)), event: Motion { axis: 1, value: -1.0 } }
[2019-12-22 01:58] [INFO] glutin event: DeviceEvent { device_id: DeviceId(DeviceId(65597)), event: MouseMotion { delta: (0.0, -1.0) } }
[2019-12-22 01:58] [INFO] glutin event: EventsCleared
[2019-12-22 01:58] [INFO] glutin event: NewEvents(WaitCancelled { start: Instant { t:<PHONE_NUMBER>214s }, requested_resume: None })
[2019-12-22 01:58] [INFO] glutin event: UserEvent(Exit)
[2019-12-22 01:58] [INFO] glutin event: UserEvent(Wakeup)
[2019-12-22 01:58] [INFO] glutin event: EventsCleared
[2019-12-22 01:58] [INFO] glutin event: LoopDestroyed

Could you try the latest master? We've recently fixed a crash in 0.4.0 with 44037fa42aa80002ce54f0a8e4a6203e3e12aaf5.

In case of updating to the latest master wont change anything, please provide us with backtrace. You can get one with RUST_BACKTRACE=full alacritty (idk how you should set env variables on windows, but you've got an idea).

Updating to the latest master appears to have fixed this issue.


What does build_closure_modules.js do exactly?

Hey @mlaval thank you for such an excellent repo. This is a support request since you seem to be one of the few, if not only engineer who has cracked how to lazyload Angular NgModule with ClosureCompiler.
What are the problems that you are solving with this particular build script? optimize-angular-app/scripts/build_closure_modules.js
It seems like you are removing duplicate imports from the Manifests of the main and lazy loaded bundles and then building a new Manifest. Then you are writing custom exports. Can you please explain what the (self['_S']=self['_S']||[]) is for?
In the other active issue you mentioned you needed to use a polyfill of SystemJS used in Splittable. Why are you importing this polyfill?  It seems to be related to the above question.
I'm just looking for more clarification as I begin to write similar logic.

I was able to integrate most of this logic into my build but for some reason when the lazy loaded bundle is loaded, it can't find dependencies in the app bundle. Please help!
Uncaught ReferenceError: module$$angular$core is not defined
at lazy.component.js:7
at Array.self._S.push ((index):61)
at lazy.bundle.js:1

Hi, there are some details in this issue: https://github.com/mlaval/optimize-angular-app/issues/2#issuecomment-284421250
optimize-angular-app/blob/master/scripts/build_closure_lazy.sh orchestrates steps 3, 4 and 5.
optimize-angular-app/scripts/build_closure_modules.js implements step 4.
If you need more information, please let me know.

I am still a little fuzzy on the SystemJS part. What problem does the polyfill solve and why do the source maps for each bundle need to be modified for the polyfill?


Adding helper types

Added U128, U64, I128, I64.
Added Base58PublicKey
Added Base64VecU8

Addresses some classes from #128
Test plan

Added unit tests for ser/de

Bumping version to 0.9.1. Will wait for https://github.com/near/near-sdk-rs/pull/135 and publish. There are no new API changes. Only fixes


Generic state notifier with multiple types

Describe the bug
I'm facing an issue when creating a state notifier with multiple generic types.
typedef FetchFunction<Result, TParams> = Future<Result> Function(TParams);

@riverpod
class Controllers<CResult, S> extends _$Controllers<CResult, S> {
  @override
  ControllerState<Failure, CResult> build({
    required FetchFunction<Result<CResult>, ControllerParams<S>> fetchFunction,
    ControllerParams<S>? params,
  }) {
    fetch();
    return const Initial();
  }

  Future<void> fetch() async {
    state = const Loading();

    final result = await fetchFunction.call(params ?? const NoParams());

    switch (result) {
      case Success<CResult>(value: final successResult):
        state = Loaded(successResult);
        break;
      case Error<CResult>(
          exception: final errorResult,
        ):
        state = Fail(errorResult);
        break;
    }
  }
}

This is a generic notifier to fetch some random stuff.
On generation file i got an error for not casting the fetch function:
 @override
  AutoDisposeNotifierProviderElement<Controllers<CResult, S>,
      ControllerState<Failure, CResult>> createElement() {
    return _ControllersProviderElement(this);
  }

  ControllersProvider _copyWith(
    Controllers Function() create,
  ) {
    return ControllersProvider._internal(
      () => create()
        ..fetchFunction = fetchFunction
        ..params = params,
      name: name,
      dependencies: dependencies,
      allTransitiveDependencies: allTransitiveDependencies,
      debugGetCreateSourceHash: debugGetCreateSourceHash,
      from: from,
      fetchFunction: fetchFunction,
      params: params,
    );
  }

Error: A value of type 'Future<Result> Function(ControllerParams)' can't be assigned to a variable of type 'Future<Result> Function(ControllerParams)'.
I don't understand why this is happening, because all the values of fetchFunction are of correct type all over the file.
To Reproduce
Use the las flutter version and las version of flutter_riverpod, riverpod_generator.

Generics aren't supported unless you use the 3.0-dev version

I'm on 3.0-dev

This looks fixed on the current dev branch. I've added a regression test just in case.

Thanks, works flawless with:
dependency_overrides:
  riverpod:
    git:
      url: https://github.com/rrousselGit/riverpod.git
      path: packages/riverpod
      ref: 28d70d0 # dev
  flutter_riverpod:
    git:
      url: https://github.com/rrousselGit/riverpod.git
      path: packages/flutter_riverpod
      ref: 28d70d0 # dev
  riverpod_annotation:
    git:
      url: https://github.com/rrousselGit/riverpod.git
      path: packages/riverpod_annotation
      ref: 28d70d0 # dev
  riverpod_generator:
    git:
      url: https://github.com/rrousselGit/riverpod.git
      path: packages/riverpod_generator
      ref: 28d70d0 # dev
  riverpod_analyzer_utils:
    git:
      url: https://github.com/rrousselGit/riverpod.git
      path: packages/riverpod_analyzer_utils
      ref: 28d70d0 # dev


added controls feature

New to typescript. Comments and criticism welcome!

Thanks @ryyu for this !
Will give it a try this weekend and follow up with comments !
Cheers :)

Hey @ryyu,
First of all thank you for taking the time to submit this pull request !
I tried your implementation and it works perfectly, but it doesn't allow the user to use more than one control or to take control of the dashboard layout.
I made #230 to add controls, you can check out examples here
Thanks again !
Cheers !


Not adding time correctly

I liked these extensions but there is one fairly major issue. I believe this is what is referenced in one of the other listed issues.
When adding time to a specific date, you should be using the dateByAddingComponents:toDate:options: function on the NSCalendar class. Otherwise, by just adding seconds it will not function properly across changes in daylight savings, leap years, and potentially other scenarios.
This should be used in all your dateByAdding... functions.
For example, below is the proper way to add one day to the current date in Objective-C.
+ (NSDate *)addDays:(NSInteger)days ToDate:(NSDate *)date
{
    NSCalendar *currentCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

    NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
    dateComponents.day = days;

    return [currentCalendar dateByAddingComponents:dateComponents toDate:date options:0];
}

Hope this is clear.

Thanks, fixed in https://github.com/melvitax/AFDateHelper/commit/15daf87d143c927ec0c118504afb499e69abd84e


Users not getting merged when signing in first with Google and then with Apple

Not sure if this is an issue with supabase-js or with gotrue-js. go-true is the one that is supposed to link users that are the same?
Bug report
Describe the bug

Sign in with Google first and then with Apple: It fails to merge users
Sign in with Apple first and then with Google: Everything is ok

To Reproduce
I use native sign in with Apple:
const result = await supabase.auth.signInWithIdToken({
  provider: 'apple',
  token <THE_ONE_I_GOT_NATIVELY>,
});

That works ok. For Google I use supabase.auth.signInWithOAuth. It also works ok.
Both using same email. If I sign in first with Apple and then with Google, everything is ok (users are merged because same email).
But If I sign in using Google first (user gets created) and then I try to sign in with Apple (same email), I get the following error:
duplicate key value violates unique constraint "users_email_partial_key"

Expected behavior
I think sign in method should not matter, if email is the same, users should get merged.
Screenshots
If applicable, add screenshots to help explain your problem.
System information

OS: macOS
React Native: 0.70.7
Version of supabase-js: 2.10.0
Version of Node.js: 16.18.1

Additional context
Add any other context about the problem here.

duplicate of #625


Make generate_package more reproducible

Make it easier to use same or chosen commit to generate the package.

For this, we should use a specific version or commit to generate the package from.  If we specify a commit, we will have to install homeassistant/core from github rather than PyPI.

In #46 it would be useful to allow extracting from a different repo than homeassistant/core

I wrote this in #47, but it fits better here:
It is possible to install homeassistant directly from github using a commit ref, so it is possible to pin it this way. The big advantage here is being able to test your custom component with the most up to date version possible.
The other option is to instead extract from the rc or master branch which would have the latest releases available on PyPI. Distinguishing which is the most recent between the branches is a hurdle here, but probably doable. Another downside is that I then need to synchronize updates with homeassistant, which is too much work for me. The big advantage here is you could image setting up a battery of tests in CI to test your component against versions X-Y of homeassistant.
I'm leaning towards simply using the commit ref from dev branch as this is the most straightforward to implement. I'm not sure how useful being able to test backwards to a very specific version is. You would still be able to test backwards using dev branch commits, it just isn't as precise.

I think supporting a local version of home assistant to generate the package is out of scope for now.

It is possible to retrieve the release commits using git describe --tags but it has to be done separately for rc and master branch to get both beta version or stable version.  Generate based on latest tag version of either?
This approach will be brittle to the home-assistant/core releases if there is a missing tag.  It looks like they recently all have tags, but it may not always occur?


Add video transcripts to plates, batches, and barcodes slide deck

Convert the Plates, Batches, and Barcodes slide deck into a video

https://training.galaxyproject.org/training-material/videos/watch.html?v=transcriptomics/tutorials/scrna-plates-batches-barcodes/slides
Is this video still being generated? I cannot get it to play in either Firefox or Chrome -- it mentions a missing key?

Yeah, need to wait for https://github.com/galaxyproject/training-material/actions/workflows/video.yml to run again. looks like it'll go in a couple minutes.

oh thanks!

ping me if it doesn't show up after 14:30?

working great, thanks!


Create /get_actor endpoint

Create /get_actor endpoint which would take "fio_public_key" and return actor. This is just hashing, no table lookups.

.

Resolved by #119.


Add remove method for redis_storage.js

I needed the ability to remove teams/users from Redis. I added the method to the example file here, but didn't add it for the other types of storage (simple and firebase). I can explore adding it to the other methods to make this pull request complete if there is enough interest. I wasn't sure why it wasn't included in the first case so I could be missing some context. Open to thoughts/suggestions/improvements.

You should add this function to botkit-storage-redis. Not here.
https://github.com/howdyai/botkit-storage-redis

Seems to me this is part of a larger conversation about supporting delete. I would think botkit itself would need to be updated to support delete, right? At least the storage_test files. And if it were included for Redis, shouldn't it be included for the other storage libs?
Personally, I really like the idea of having a delete method for the storage interfaces, it's always seemed missing to me.


Do not activate recommended extensions globally

Please do not activate the recommended extensions globally without asking the user to do so.
For example I cloned the elk repository. That repository contains an extensions.json file. In most cases those extensions are just needed for the repository that contains the extensions.json file. So it would be good to have the option to enable those extensions only for the project / workspace.

Previously https://github.com/microsoft/vscode/issues/85735#issuecomment-584993761

/duplicate


Reset to factory settings

In section "Reset to factory settings" first point needs to be updated. It mentions "select Update > Reset". In HoloLens 2 devices (OS build 10.0.19041), Reset Device option sits under Update & Security > Recovery > Reset Device.

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

ID: cd4de184-bdeb-2611-8d75-28376e30b0fc
Version Independent ID: 7b330f9a-d1c0-72f9-0d00-d7fac13e7e00
Content: Restart, reset, or recover HoloLens
Content Source: devices/hololens/hololens-recovery.md
Product: hololens
Technology: windows
GitHub Login: @mattzmsft
Microsoft Alias: mazeller

@dariminhas The section you are refering to is in the article about HoloLens Gen 1, not Gen 2, as you can see if you look on the left side:

Please check the article about HoloLens Gen 2 for the Gen 2 reset procedure.

HL1 recovery doc now states "Recovery" instead of "Reset".


⚠ Bofrost.at has degraded performance

In 4f5933f, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1037 ms

Resolved: Bofrost.at performance has improved in 9e26649 after 28 minutes.


Added TechSmith.Camtasia version <IP_ADDRESS>207

PS C:\Users\Test> winget validate --manifest "M:\Git\winget-pkgs\manifests\t\TechSmith\Camtasia\<IP_ADDRESS>207"
Manifest validation succeeded.

PS C:\Users\Test> winget install -m "M:\Git\winget-pkgs\manifests\t\TechSmith\Camtasia\<IP_ADDRESS>207"
Found Camtasia [TechSmith.Camtasia]
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://download.techsmith.com/camtasiastudio/releases/2106/camtasia.exe
  ██████████████████████████████   451 MB /  451 MB
Successfully verified installer hash
Starting package install...
Successfully installed

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

/azp run

@ImJoakim we're looking at this one. It passed once via manual run, but failed again with the second execution here.

@ChuckFerring This needs the Azure-Pipeline-Passed label as well for it to merge.

/azp run


Introduce get_thermal_expansion_output() function

Remove the code duplication of defining multiple instances of the ThermalExpansionOutput by defining one function to create the corresponding output object:
def get_thermal_expansion_output(temperatures_lst, volumes_lst, output_keys):
    return OutputThermalExpansion(
        **{
            k: getattr(ThermalExpansionProperties, k)
            for k in OutputThermalExpansion.fields()
        }
    ).get(
        ThermalExpansionProperties(
            temperatures_lst=temperatures_lst, volumes_lst=volumes_lst
        ),
        *output_keys,
    )

EDIT: syntax highlighting
Again this change was initially introduced in https://github.com/pyiron/atomistics/pull/176 and is now moved to a separate pull request.

..., but I am sad that both OutputThermalExpansionProperties and OutputThermalExpansion both exist.

I agree, as discussed in the meeting today, I am open for suggestions, I just want to merge the parts we can agree on, to simplify future discussions.

... Still, might as well merge this as it at least makes the bad thing better.

Ok.


ValidationRuleLength on Nil

This rule will always trigger when String? is nil. If the string is nil and min >= 0 then this should probably treat the nil string as an empty string.

input?.characters.count >= min
false

Thanks! Will sort this soon

Hang on, sorry I'm not sure I understand you.
Should handle nil as being invalid anyway.
public func validate(input: String?) -> Bool {
        guard let input = input else { return false }
        return input.characters.count >= min && input.characters.count <= max
    }

@adamwaite nil should be handled as 0


Feature: Instance groups association with teams

I would like to see if we could implement roles to team of type instance groups. I didnt find any documenation or any such examples that could point if this is already been developed, but as far as i check it seems we dont have it implemented yet. Would it be possible to get this included in the stack?

Hi @reshifirdous can you point me to the API in question for association? I need to check.

https://github.com/ilijamt/terraform-provider-awx/blob/b9223490c7687b395d627efbdf7906dcd9e49c80/examples/roles/main.tf#L68-L79

You can try the new releases depending on which version you use.

v23.5.1-0
v23.6.0-0
v23.7.0-0
v23.8.1-0


extract: Plural-Forms header should be fixed up

$ i18n_tool extract
$ grep Plural-Forms conf/locale/en/LC_MESSAGES/django-partial.po
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
Which then blows up python-gettext with errors like:
ValueError: invalid token in plural form: EXPRESSION
I think it's reasonable for extract.py to -- along with its other header cleanup it does -- also clean up that header to look like the normal en locale setting:
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

Hi Mikix,
I am running a native install of open-release/hawthorn.master. Today I have pulled a new language translations from tx using paver i18n_robot_pull. This resulted in the .mo .po files for djangojs-studio, django-studio, djangojs-partial and django-partial for default language (EN) all having "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" I had to manually redo them as mentioned in your note. I still cannot compile assets even if i18n_tool validate does not show any errors anymore. Now the failure to build must be due to a different / unrelated reason.

Fixed in https://github.com/edx/i18n-tools/pull/73


 Not sure we actually want it in the repo proper.

Closing as not-wanted, but we can find it again if we need it.


Add a method for matching model parameters inputted in command line and HTTP requests

Hi there. When I want to use mlx_lm.server to load a local model as a service, I need to run the command:
python -m mlx_lm.server --model /works/huggingface.co/mlx-community/dolphin-2.9-llama3-70b-4bit --host <IP_ADDRESS> --port 9001

After that, I make HTTP requests using the curl command:
curl localhost:9001/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
     "messages": [{"role": "user", "content": "hi there"}]
   }'

Everything runs fine up to this point.
However, when I need to make requests using LibreChat, I found that the HTTP request body structure is as follows:
{
	"model": "dolphin-2.9-llama3-70b-4bit",
	"temperature": 0.2,
	"top_p": 1,
	"presence_penalty": 0,
	"frequency_penalty": 0,
	"stop": [
		""
	],
	"max_tokens": 8000,
	"user": "6693bd66cf55a62392ffe31c",
	"messages": [
		{
			"role": "user",
			"content": "hi there"
		}
	]
}

The model parameter in the body causes the model_path in the load method of the ModelProvider class in server.py to be set to "dolphin-2.9-llama3-70b-4bit" instead of "default_model". server.py L119-L127
I've carefully reviewed the code and understand that this design allows for downloading the model directly from HuggingFace if it doesn't exist locally. However, if the local model exists, it doesn't match, triggering a download again.
To address this, I have added a check: if the model parameter specified in the HTTP request matches the model parameter Path.name specified when starting mlx_lm.server (server.py) (i.e., if the local model folder name matches the requested model name), then prioritize using the local model rather than downloading it from HuggingFace.

How does the model field get set in the LibreChat API?
One thing you could do is just not load the model when you start the server:
python -m mlx_lm.server --host <IP_ADDRESS> --port 9001

And then specify the model path in the LibreChat HTTP request:
{
	"model": "/works/huggingface.co/mlx-community/dolphin-2.9-llama3-70b-4bit",
	"temperature": 0.2,
...
}

It will only be loaded once in that case. I think the model field in the request should always be set to a valid model path (so either a Hugging Face repo or an actual path on disk. Setting it to dolphin-2.9-llama3-70b-4bit is not really supported since it's not a valid path or valid HF repo.

@awni I eventually found the issue: my local model path was softlinked, but the _validate_model_path method used Path.cwd() which returns the original path, leading to failures in _validate_model_path.  Thank you for your response.


Clean workspace

Checklist

[x] I've looked at the contribution guidelines.
[x] This pull request is complete and ready for review.

Description
This PR removes all files that are not available anymore from the .xcworkspace file. Furthermore it adds those projects which were not present in the workspace already. I've also removed all the READMEs of root (How to Contribute.md and so on) from it. (Please tell me if you want them in there, I would revert those changes immediately)
Secondly I ran a quick swiftlint autocorrect with the newest version of swiftlint available.

Cheers!


Forge version does not launch

When I try to open the game with the mod the mod doesn't load

Looking at the log, it doesn't even show up in the initial mod list (the "found mod file" messages). Architectury does, and loads fine. I wonder if it's missing sort of metadata necessary for Forge to recognize it as a mod?

I think I've tested it in normal client and it was working. It was, however, just one version that I've made for both Fabric & Forge, which is also one that uses Architectury, and then I updated for just Fabric. Are you sure to use the Forge one?
Even if so, I just don't feel like working on this idea at all, more so supporting it on both loaders any time soon. Perhaps I could remove that file for Forge so it won't show up for it 😅


Support PDBbind dataset

Support PDBbind dataset!

I revised my commit according to comments.
Please comfirm.

LGTM for the design, Could you check? @mottodora

get_molnet_dataframe function supports PDBbind dataset.
Please confirm this commit.


adding http protocol

Without the protocol github is treating the link as another branch link.

/assign @msvticket

/ok-to-test

/approve


Spyder crashes instantly, resetting & uninstalling doesn't help

No computer science or programming background, but I need Spyder to run some models for engineering classes, I apologize in advance for my complete lack of knowledge about these things.
Problem: Spyder crashes, --reset doesn't help, neither does uninstalling
How it happened:

I installed Anaconda 4.2.0 / Python 2.7, 64-bit. Windows 10
Spyder ran perfectly, but the model didn't recognize GAMS so I needed to add a path to import GAMS.
I went to pythonpath manager, chose the path as I did in Matlab (C>GAMS>win64>24.7) and the manager asked me whether I want to synchronize.
First I didn't sync because I wasn't sure what would change, (apologies I'm just really not good with these things). The model gave an import error, not recognizing the module GAMS
This time I synced the aforementioned path in the pythonpath manager and restarted Spyder.
Since then, whatever I do, Spyder crashes and gives the "crashed during last session" message.
I type "spyder --reset" in the command window, I see it removing files but it still doesn't work
I uninstalled Anaconda and deleted all traces I could find of Anaconda, Spyder, Python etc. (.ipython, .anaconda, anaconda2, .spyder, .matplotlib, .qtweb-something if I remember correctly) but it still doesn't work.

A text file of the spyder crash says the following:
"Traceback (most recent call last):
File "C:\Users\micha\Anaconda2\lib\site-packages\spyder\app\mainwindow.py", line 2998, in main
mainwindow = run_spyder(app, options, args)
File "C:\Users\micha\Anaconda2\lib\site-packages\spyder\app\mainwindow.py", line 2912, in run_spyder
main.post_visible_setup()
File "C:\Users\micha\Anaconda2\lib\site-packages\spyder\app\mainwindow.py", line 1274, in post_visible_setup
self.check_updates()
File "C:\Users\micha\Anaconda2\lib\site-packages\spyder\app\mainwindow.py", line 2804, in check_updates
from spyder.workers.updates import WorkerUpdates
File "C:\Users\micha\Anaconda2\lib\site-packages\spyder\workers\updates.py", line 9, in
import ssl
File "C:\Users\micha\Anaconda2\lib\ssl.py", line 125, in
from _ssl import HAS_SNI, HAS_ECDH, HAS_NPN, HAS_ALPN
ImportError: cannot import name HAS_ALPN
"
Googled for HAS_ALPN and couldn't find anything of use.
So to recap: Spyder worked fine until I added something in the pythonpath manager and synchronized. resetting and uninstalling/reinstalling doesn't solve the problem. I can see the Spyder interface for about 1 or 2 seconds, after which it crashes.
Thank you in advance.
Stavro

Did you also remove C>GAMS>win64>24.7?

I did not uninstall GAMS or remove anything GAMS-related. Would uninstalling and deleting all traces of both Anaconda and GAMS work?

Yes, that could help. I mean, it's very strange that after removing Anaconda and all it's traces, Spyder is still failing to start.

Closing because there's nothing we can about this in our side, sorry.


Duplicating a product

Hi, just tried duplicating a product with a new install of concrete 8.5.1 and Community Store <IP_ADDRESS>, I get a database error:
An exception occurred while executing 'UPDATE atSelect SET avID = ? WHERE avID = ?' with params [452, "430"]: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (c5sites_fish.atSelectOptionsSelected, CONSTRAINT FK_40C97EC3A2A82A5D FOREIGN KEY (avID) REFERENCES atSelect (avID))
The item is added to the store, but when I click on Manage I get another error:
Call to a member function getVariationPackageData() on null
from /packages/community_store/single_pages/dashboard/store/products.php Line 1344
textarea('pvPackageData[' . $varid . ']', $variation->getVariationPackageData(), ['rows' => 4, 'placeholder' => t('%s LENGTHxWIDTHxHEIGHT', strtoupper(Config::get('community_store.weightUnit')))]) ?>

I'm not sure of the cause of the first issue, that seems a bit more core related to me.
But for the second one, try changing the line as per this fix here: https://github.com/concrete5-community-store/community_store/commit/ebf3079bf0900f7c97a1b7749725dbce43a55732

That fixed the second error

Attribute values do not get copied over when I make a duplicate product.

I've been able to replicate the same initial bug and I've pushed up a potential fix - it worked for me at least with some select attributes and plain text.
https://github.com/concrete5-community-store/community_store/commit/ea7a8aa585b841e75b57de75581bf4a3d90e98fc
Give that fix a try and let me know how you go

That's working now, thanks for looking into it so quickly, appreciate it!

Great, good one to get fixed!


error[unsupported-nested-javascript]: referenced a JavaScript module without type declarations from a TypeScript module

There's a problem with types in the @noble/hashes (github, npm) module in my package.json
When I run npx jsr publish I get the following error:
➜  nostr-tools git:(master) ✗ npx jsr publish --dry-run
Checking for slow types in the public API...
error[unsupported-nested-javascript]: referenced a JavaScript module without type declarations from a TypeScript module
 --> /home/alex/Projects/nostr-tools/node_modules/.deno/@noble+hashes<EMAIL_ADDRESS>  = hint: add a type declaration (d.ts) for the JavaScript module, or rewrite it to TypeScript

  info: JavaScript files with no corresponding declaration require type inference to be type checked
  info: fast check avoids type inference, so referencing a JavaScript file with no type declarations is not supported
  docs: https://jsr.io/go/slow-type-unsupported-nested-javascript

This package contains errors for slow types. Fixing these errors will:

  1. Significantly improve your package users' type checking performance.
  4. Improve the automatic documentation generation.
  5. Enable automatic .d.ts generation for Node.js.

Don't want to bother? You can choose to skip this step by
providing the --allow-slow-types flag.

error: Found 1 problem
Child process exited with: 1

Things I tried:

having "type": "module" in package.json
having "moduleResolution": "Bundler" in tsconfig.json

The upstream package has types:

This issue does not occur when using deno publish, only npx jsr

@alexgleason What problem is failing to publish? noble-hashes or nostr-tools?


RegisterInstance isn't thread-safe and sometimes attempts to create a new instance instead of returning the one we registered

We found a race condition in RegisterInstance where the container will try to create an instance of the type we registered an instance of instead of returning the registered instance.
Looking at the code, we suspect that the following lines are in the wrong order:
UnityContainer.cs#L157
SetLifetimeManager(type, name, lifetime);
lifetime.SetValue(instance);

We found the problem. We were using an ExternallyControlledLifetimeManager, which held a weak reference to our instance which was subsequently GC'd.

Actually, the problem is both. once we switched to using a different lifetime manager, we still had the problem until we called SetValue on it before calling RegisterInstance.

Thank you, Completely makes sense. I'll switch these lines.

Thanks! Any chance to get the fix ported to v4 as well? We still haven’t upgraded, and I want to pick up the fix without all the work and validation required when upgrading a major version.

Unfortunately V4 is off limits. The signing certificate is lost and no compatible assemblies could be generated. This explains it.


[Feature Idea] Display layers dimensions on layered_view

The layered view works well for me and we can see the changes in size between each layer. However I believe it would be nice to be able to read the dimensions and number of filters / channels of each layer. I haven't dove in the code to create the visualization yet but I believe this is easily obtainable information on keras with layer.output_shape for example.

I added this feature in my fork and made a pull request. Would love to see this added to the main repository.


New Object EVTB based on AFF

See #5708
https://github.com/abapGit-tests/EVTB

see changes in https://github.com/abapGit/abapGit/pull/5712

welcome to abapGit as a contributor 🎉


Add cocoapods support

Hi, I don't know much about cocoapods. Could you add the command to publish to pod to Makefile? and add notes in the installation section in README.md?

Closed because of no response.


Do not find OSM manifest

Cluster workload utility, Open Service Mesh (see: osm-system),  the link leads to 404 and do not find OSM manifest in repository. Can we use Istio to replace OSM?

I think I find it in kube-system folder.

You're welcome to use any service mesh (or no service mesh) as you wish.
I'll try to track down the link you're talking about and update it so that it's not a 404.  If you have any specifics on where I can find that link @liuzhiyong1982, let me know otherwise I'll just search for it.

I've updated that page, thank you for letting us know!
You won't find the manifest to deploy OSM, as that is being handled as an AKS add-on.  Just the configuration of OSM is included as a manifest file.


Up Cocoapods deployment target for Xcode 14

Thanks @Sergey70 for PR and @matux for openning the issue #443.
The release 1.16.0 will be published soon


Adding callbacks for before and after events on open and close.

This is so you can have complete flexibility to run any code you want before/after the different events take place.

This is an excellent idea. Thank you @leighhalliday!


ResizeTo option always errors now, as react always returns window as an object

Description
https://github.com/inlet/react-pixi/blame/7b10107e73c16541712ba63f9ee6f88e6f179b73/src/stage/index.js#L72
This has been erroring since the commit on this line.
Steps to reproduce

add resizeTo in your stage options
set resizeTo to window, global.window, document.getElementById('root'), or document.getRootNode()
watch as line 72 of stage/index.js is hit as it returns an object.

const PixiStage = () => {
  const options = {
    resizeTo: document.getElementById('root'), // or window, or global.window, etc
  };

  return (
        <Stage options={options} width={window.innerWidth} height={window.innerHeight}>
           ...
        </Stage>
)}

Additional info

@inlet/react-pixi version:  5.1.4
React version: 16.13.1
ReactDOM version: 16.13.1
PIXI version: 5.3.0

Turns out the condition itself needs to be boolean opposite as invariant runs if condition is not met (is falsy).
So
el !== window && !(el instanceof HTMLElement)

needs to be
el === window || el instanceof HTMLElement

Thanks @ajitid that was indeed the case. Just pushed an update.
Btw, make sure to add { autoDensity: true } if you'd like to enable auto resolution.

Hi @inlet,
I want to report that in the newest release (that is 5.1.5), when providing options prop to Stage without specifying resizeTo attibute it prints out warning in the console:
index.js:1 Warning: Failed prop type: Invalid prop `resizeTo` of type undefined, expect `window` or an `HTMLElement`.

In release 5.1.4 it doesn't cause any warnings.
Sample code to reproduce the problem:
function App() {
    return <Stage options={{}}></Stage>
}

ReactDOM.render(<App/>, document.getElementById("root"))

I think the prop validation is a bit overkill given it works when you specify it regardless of the warning

Nah, having prop validation is fine. @inlet missed putting an early return for undefined case before calling invariant.
if (el === undefined) {
  return
}

👆 It is present for view but not for resizeTo

Thanks @zelksnug, I’ll create a patch with a fix soon

I've just released a new patch v5.1.6. The prop resizeTo now only validates when set.
Thanks for contributing!


Sync composer.lock

This should fix TravisCI

This should fix TravisCI

No, TravisCI still does not work, but the error has changed: before composer failed, now the tests fail because the CollectionVersionBlocksOutputCache table can't be found.


Deleting cells with dd: the above cell should be selected after the deletion

We are getting closer and closer to parity!
Small issue I noticed when deleting cells: the previous cell is not selected after a deletion.

Fixed in #159.


Bia calculation and display update

Pull Request instructions:

Please follow the update protocol
Answer the questions below in detail. Your responses will be emailed to experimenters.
If the experimenters must do anything new, provide detailed step by step instructions on the wiki
If computer maintainers need to manually update anything, provide detailed step by step instructions
Use markdown syntax in order for your comments to be rendered reliably in the email: "1." instead of "1)", use four spaces for indents.
If you use the keyword "skip email" in the title, it will skip the email updates
Merges from "develop" into "production_testing" should use the keyword "production merge" in the title for reliable indexing of updates
Merges from "production_testing" into "main" should use the keyword "update main"

Describe changes:

calculating bias is updated to be for last 200 trials and bias graph updated to show upper and lower CI

What issues or discussions does this update address?

resolves #1027

Describe the expected change in behavior from the perspective of the experimenter

bias should be more accurately calculated

Describe any manual update steps for task computers

None

Was this update tested in 446/447?

[ ] 446/7

Video of bias graph changes
https://github.com/user-attachments/assets/3a52ca4b-8001-4206-acfa-8169556dd207

I think we can set the y limits to (-1,1), I'm not sure what they are set at now
Are the red and blue horizontal lines at +/- .7? I think I remember that being the case. I think thats fine for now.
Can you add a faint gray horizontal line at bias=0? That will help users know if the mouse is slightly biased towards left or right
I think we have been going in circles on the x-axis of this plot. Sorry if I've been communicating poorly. In the video above, the ticks are trial number, but the label says "Trial start time(s)"

This is confusing because the ticks are trial number, but the label says "seconds"
Its also confusing because the other plot has ticks of seconds from session start.
So I think we should EITHER

Make the label say "Trial #", and just live with the fact that the other plot is in time
Make the x-axis time relative to session start. Before this PR, we had time, but it wasn't relative to session start, so the units were hard to interpret and a user still couldn't compare to the other plot.

Are the red and blue horizontal lines at +/- .7? I think I remember that being the case. I think thats fine for now.

Yep exactly.

I think we have been going in circles on the x-axis of this plot. Sorry if I've been communicating poorly. In the video above, the ticks are trial number, but the label says "Trial start time(s)"

This is confusing because the ticks are trial number, but the label says "seconds"

Yeah I forgot to change the axis title, my bad. Personally, I like plotting bias vs trial number but I am not a user. maybe @ellahiltonvano could weight in if RA's would prefer x axis in time relative to session start or trial number. Alternatively we can use trial number for now and refactor if users would rather it be in time

New bias indicator just dropped!
https://github.com/user-attachments/assets/a573e7c9-7371-461e-948b-2412d10f6ab2
also @alexpiet I can't figure out how to pin >= version for gthub repos. Let me know if you know how. I was able to pin to v0.11.2

New bias indicator just dropped!
2024-11-21.08-15-08.mp4
also @alexpiet I can't figure out how to pin >= version for gthub repos. Let me know if you know how. I was able to pin to v0.11.2
Also couldn't get cv=1 to work so still using cv=5. Can change to cv=2 maybe?

No, we should absolutely use cv=1. Which depends on v 0.11.2. I mentioned this in a comment, but repeating here. The package is on pypi, so we can use aind-dynamic-foraging-models>=0.11.2
You should also set fit_exponential=False when you call logistic regression (https://github.com/AllenNeuralDynamics/aind-dynamic-foraging-models/blob/e094eb36fab34eefc861ceacdfee29b026cb7862/src/aind_dynamic_foraging_models/logistic_regression/model.py#L124)

Huh I was also having issues using aind-dynamic-foraging-models>=0.11.2. Will investigate further

Oh actually ever since installing the stage-widget my pip install has been a little wonky that's probably what it is. Will test on a rig instead

This probably got lost on teams. But you should also implement logic like I did here (https://github.com/AllenNeuralDynamics/aind-dynamic-foraging-basic-analysis/blob/44eefc5099309207ffaa4c9efac126a211fc490b/src/aind_dynamic_foraging_basic_analysis/metrics/trial_metrics.py#L146)
The idea is that we need to pro-actively check to see if we have all left, or all right, or all ignore choices, and handle those edge cases.

Making a note based on in person conversations that the confidence intervals look like they are plotted wrong on the last demo

Slightly worse video but now CI is shaded grey area
https://github.com/user-attachments/assets/78e03398-b6f5-4ccf-b8a8-6c02fbc7de15


Remove Rspec (Ruby dependency)

Ruby with is an extra dependency for an for an front-end project.
Investigate if JavaScript alternatives are viable, e.g. move to a NodeJS/NPM/JS world.

Closing this as of yet I have not seen a good enough alternative to Capybara. Feel free to reopen if we have something concrete that could rightfully replace Capybara.


ASv2 🤝

ASv2 - Trusted Issuer Attestation Service

@alecps do we need this in addition to the MVP ticket? Could we instead just change the MVP -> ASv2, since we probably won't have as concrete of a delivered MVP without the off-chain client?

closing in favor of https://github.com/celo-org/celo-monorepo/issues/9730


Unbound namespace prefix: "xlink"

Describe the bug
svgo does not create an output of https://camo.githubusercontent.com/48fff2a348143da7155275645da575b81276b9810d1e9f8b38547e34c9aaacb8/68747470733a2f2f7376672e6769746875622e696f2f7376676f2d6c6f676f2e737667 with multipass: true
To Reproduce
svgo -i input.svg -o output.svg
with input.svg and  svgo.config.js.txt
Expected behavior
Don't delete  xmlns:xlink="http://www.w3.org/1999/xlink" in <svg  if some child-elements use  xlink:href="
Screenshots

Desktop:

SVGO Version  3.0.2
NodeJs Version 14.21.1
OS: Ubuntu 22.04

copyright
source: https://github.com/svg/svgo/issues/1336#issue-811366801
author: unkown, maybe <!-- ! https://github.com/svg/svgo --><!-- ! SVGO project logo by Yegor Bolshakov (http://xizzzy.ru/) --> or André Castillo
license: assuming MIT License

I've been looking into this, but I'm tempted to say the solution might be to make some plugins incompatible with multipass. 🤔
Alternatively, we could make the parser more forgiving regarding unknown namespaces.
The motivation behind the removeXMLNS plugin is for use in HTML5, where XML namespaces are not required. The browser knows how to handle common ones, and ignores unknown ones.
In other words, the goal is to intentionally create a malformed standalone SVG, but that will parse and render correctly with an HTML parser.

When using the HTML syntax, the namespace is provided automatically by the HTML parser.
<html>
<svg viewBox="0 0 100 100">
  <circle cx="50" cy="50" r="50" fill="green">
</svg>
</html>

As the example shows there's no need to have an ‘xmlns’ attribute declaring that the element is in the SVG namespace when using the HTML parser.
— https://www.w3.org/TR/SVG2/struct.html#Namespace

I'll give this more thought later, but the solution probably won't be to keep used namespaces. If you need them, users just shouldn't use this plugin. (It's disabled by default!)

The motivation behind the removeXMLNS plugin is for use in HTML5, where XML namespaces are not required. The browser knows how to handle common ones, and ignores unknown ones.

Why is the error occurring with svgo.config.js: (With svgo 3.0.2)
module.exports = {
  multipass: true,
  plugins: ([
    {
      name: 'removeXMLNS',
      active: false
    },
	{
      name: 'reusePaths',
      active: false
    },
  ])
}

Actually for HTML it's enough just “href” without “xlink:” prefix, which is now considered outdated. (But still probably needed for not updated software.)

SVG 2.0 is ofiically still a draft and all common SVG 2.0-renderes work with  xlink:href=" as well with  href="
SVG 1.1 spec does only allow  xlink:href=" (not with  href=")
As long as svgo does not declare to be a SVG2.0-only tool, which breaks SVG1.1, it should imho use  xlink:href=", or make a setting to switch between SVG2.0 and SVG1.1 (even though many tools only work with one or the other)

Ahh, I misunderstood the issue.
You're using the SVGO v2 config syntax in SVGO v3. Note that when the major version increments, that means there are breaking or interface changes, so it's best to read the changelog and README/documentation.
The active property is being ignored in v3, so by defining the plugin the way you are, you're actually enabling it.

SVG 1.1 spec does only allow  xlink:href=" (not with  href=")

GreLI is correct on the basis that you were enabling the removeXMLNS plugin where SVG 1.1 or SVG 2 compatibility no longer applies because the SVG is inlined to an HTML document which doesn't require namespaces, refer to what I described in https://github.com/svg/svgo/issues/1730#issuecomment-1732389417.

While the primary issue seems to be the SVGO v2 vs v3 config syntax, the issue you ran into here been resolved and will be released in SVGO v3.0.4.

removeXMLNS will no longer remove the XLink namespace at all.
A new plugin, removeXlink can be used to migrate from the XLink namespace to the SVG 2 equivalent when only SVG 2 or inline HTML compatibility is required. (disabled by default)

I'm seeing the same error with this SVG:
<svg width="59" height="59" viewBox="0 0 59 59"><style id="style562">.B{stroke-linejoin:miter}.C{stroke-width:.788}.D{stroke:none}.E{stroke-linecap:square}.F{stroke-width:3.15}</style><g id="g621" class="D" transform="translate(.56 -7.6)"><path id="use619" d="M57.88 29.93c0 5.9-13 11.03-29.14 11.03C13 40.96 0 35.84 0 29.93v16.15c0 6.3 13 11.41 28.74 11.41 16.15 0 29.14-5.11 29.14-11.41z"/></g><path id="use625" stroke="none" d="M29.3 9.34C13.55 9.34.56 14.46.56 20.76c0 5.9 13 11.02 28.74 11.02 16.15 0 29.14-5.12 29.14-11.02 0-6.3-13-11.42-29.14-11.42zm11.03 2.35v3.94l-2.36-.4-4.33 3.55-4.33-.4 4.72-3.54-2.75-.79zM7.65 15.24l13.39 2.36L23 16.03l2.36 3.93-9.06 1.97 1.97-1.57-14.17-2.37zm34.26 4.33-1.18 1.18 13.38 2.36-3.15 2.76-13.38-2.76-1.97 1.97-1.58-3.94zm-16.54 2.75 4.33.8-5.12 4.32 2.76.79-9.06 1.58v-3.94l2.37.4z"/><symbol id="A" overflow="visible"><g id="g570" fill="none" class="B E"><path id="path566" d="M47.65 26.38V.78" class="C"/><path id="path568" d="M47.65 25.99V8.27" class="F"/></g><path id="path572" d="M48.44 3.15h-1.58V0h1.58v3.15z" class="D"/><g id="g578" fill="none" class="B E"><path id="path574" d="M9.46 26.38V.78" class="C"/><path id="path576" d="M9.46 25.99V8.27" class="F"/></g><g id="g584" class="D"><path id="path580" d="M10.24 3.15H8.67V0h1.57v3.15z"/><use xlink:href="#C" id="use582"/></g><use xlink:href="#C" id="use586" fill="none" class="B C"/><use xlink:href="#D" id="use588" class="D"/><use xlink:href="#D" id="use590" fill="none" class="B C"/><path id="path592" d="m22.45 25.2 2.36 3.94-9.05 1.97 1.96-1.58-14.17-2.36 3.54-2.76 13.4 2.37 1.96-1.58zm12.6 9.06-1.58-3.94 7.88-1.58-1.18 1.19 13.38 2.36-3.14 2.75L37 32.3l-1.96 1.97zm-4.33-11.03 9.05-2.36v3.94l-2.36-.4-4.33 3.55-4.33-.4 4.72-3.54-2.75-.79zm-3.94 14.18-9.06 1.57v-3.94l2.37.4 4.72-3.94 4.33.79-5.12 4.33 2.76.79z" class="D"/></symbol><defs id="defs597"><path id="C" d="M57.88 29.93c0 5.9-13 11.03-29.14 11.03C13 40.96 0 35.84 0 29.93v16.15c0 6.3 13 11.41 28.74 11.41 16.15 0 29.14-5.11 29.14-11.41z"/><path id="D" d="M28.74 40.96c16.15 0 29.14-5.12 29.14-11.03 0-6.3-13-11.42-29.14-11.42C13 18.51 0 23.63 0 29.93c0 5.9 13 11.03 28.74 11.03z"/></defs></svg>

Adding the removeXlink plugin does not make the error go away. This is my usage:
    const {data} = optimize(str, {
      plugins: [
        {name: "preset-default"},
        {name: "removeXMLNS"},
        {name: "removeDimensions"},
      ],
    });

@silverwind Hey! The error you're encountering is different from this issue.
The bug reported in this issue was because the error was caused by SVGO, we broke the SVG ourselves. In the SVG you've posted, it's already malformed before SVGO can touch it.
SVGO shouldn't touch SVGs that are malformed. We have no way of knowing what the user wants. It's better if they're given an error message that their SVG is malformed so they can fix it before going through SVGO, which is exactly what it's doing now.

@SethFalco thanks. I've replaced that SVG with a different, valid one now. Though, it does render in all browsers that I've tested (Firefox, Chrome, Safari), so I think they are just more lenient towards this error than svgo.

While the primary issue seems to be the SVGO v2 vs v3 config syntax, the issue you ran into here been resolved and will be released in SVGO v3.0.4.
* `removeXMLNS` will no longer remove the XLink namespace at all.

* A new plugin, [`removeXlink`](https://svgo.dev/docs/plugins/remove-xlink/) can be used to migrate from the XLink namespace to the SVG 2 equivalent when only SVG 2 or inline HTML compatibility is required. (disabled by default)

Confirm fix with 3.2.0.
Thanks!


Upgrade ktlint conventions

Upgrade ktlint-conventions plugin that brings latest ktlint-gradle plugin and ktlint.
Existing rules got more checks in ktlint. This pull request also applies the new rules to all sources creating a hugs diff with lots of whitespace changes. Better look at individual commits to see the changes to the build.

@bot-gradle test this

OK, I've already triggered ReadyForMerge build for you.

@bot-gradle test this
@bamboo I did a pass over the indentation of triple quoted function parameters and fixed the code generated by the kotlin-dsl. Please take another look

OK, I've already triggered ReadyForMerge build for you.

@bot-gradle test this

OK, I've already cancelled the old build and triggered a new ReadyForMerge build for you.

@bot-gradle test this

OK, I've already cancelled the old build and triggered a new ReadyForMerge build for you.


Add SameSite cookie attribute support

Adds SameSite support: https://github.com/simplabs/ember-cookies/pull/269

SameSite support was released as part of ember-cookies 0.5.1: https://github.com/simplabs/ember-cookies/releases/tag/0.5.1. Can you update the ember-cookies dependency as part of this PR and add some tests?

@marcoow Done! :)

@marcoow Do we know when this change will make it into a release?

Looks like it made it into 2.1.1!


en: add document about how to do performance test

What is changed, added or deleted? (Required)

add document about how to do the performance test
update benchmark-v1.0-ga.md
TOC updated in https://github.com/pingcap/docs-dm/pull/133
merge https://github.com/pingcap/docs-dm/pull/129 then merge this PR

Which DM version(s) do your changes apply to? (Required)

[x] master (the latest development version, including v2.0 changes for now)
[ ] v1.0 (TiDB DM 1.0 versions)

What is the related PR or file link(s)?

This PR is translated from: https://github.com/pingcap/docs-dm/pull/85
Other reference link(s):

/merge


Added simple dockerfile to create a solr-image preconfigured for Smarti

Summary
Simple solr-image docker-configuration compatible with Smarti and Chatpal. Also addresses https://github.com/redlink-gmbh/chatpal-search/issues/11
I'm docker novice, so feel free to improve

Some improvements:

the solr-core definition/configset is now created as separate artifact during the build
I've integrated the docker-image into the maven build environment


#6 Create CI/CD (default for now - github actions)

First step: create directory named "compose" in which we will store our docker-compose files.
a) infrastructure.yml which will contains third-party services, for instance (redis, postgres, rabbit, etc);
b) services.yml which will contains sln services (back, front)

Second step: Setup github-actions for default build, and test (Asp Net App, React App)


Spec ./spec/rspec/support/encoded_string_spec.rb:204 will likely never pass on Rubinius

The spec ./spec/rspec/support/encoded_string_spec.rb:204 currently fails on Rubinius. This test assumes that the following raises an encoding conversion error:
"foo\nbar".encode("UTF-16LE").split("\n")

Rubinius however supports this just fine and will return the following:
["foo", "bar\x0"]

Now the question is, is this spec supposed to stick around? What is it supposed to test? The expectation of this code failing seems to be based on implementation specific behaviour, although I'm not entirely sure.
@brixen Any thoughts on this, is the specific error here something we want to raise similar to MRI?

Now the question is, is this spec supposed to stick around? What is it supposed to test? The expectation of this code failing seems to be based on implementation specific behaviour, although I'm not entirely sure.

The spec was added recently by @bf4 in #151 (which originated in #134).  RSpec::Support::EncodedString handles various encoding errors.  That spec (and others like it -- you'll see 5 other it 'normally does x' specs in the file) pair with the other spec in the context, and serves two purposes:

It documents the behavior with raw strings, apart from what EncodedString does to deal with it.
The other spec in the context has the assumption that that error would normally be raised (as it is meant to cover one of the particular rescue clauses), so that spec validates that the assumption is valid.

It sounds like RBX handles some encoding situations that MRI doesn't.  Given that, we can simply exclude that spec on RBX -- after all, it's not testing RSpec logic at all.

Sounds like the spec is doing its job, in that it pointed out that Rbx has a different behavior.  I tried in writing the tests to pick examples of each encoding-related exception that would behave the same on all Rubies. Perhaps there is a better example we could use for Encoding::CompatibilityError?

I should add, for completeness, that all the specs that I wrote were around existing behavior.  It's possible we'd want to change how we handle Encoding::CompatibilityError. In any case, now that we have the specs, we can make changes with more confidence.

I believe this has been resolved and may be closed


fix(icons): summary page

@oliverschuerch I cherry-picked your commit into a separate PR

@alizedebray I've updated the PR so it should be ready for merge now ;)


chore: add jest tests for mapOwn

Overview

Converting the jil browser tests for the mapOwn utility method to jest. Also updating the utility method to be more concise and use ES5 Object.entries native functionality.
Related Issue(s)

https://issues.newrelic.com/browse/NEWRELIC-7850
Testing

Even though it'd be slightly more work, wouldn't it be ultimately cleaner to just re-eval the places using mapOwn and switch them over? I notice not all the usage is the same (sometimes can be done with .keys() or .values() and others .entries(), or can just be replaced with a forEach.

Even though it'd be slightly more work, wouldn't it be ultimately cleaner to just re-eval the places using mapOwn and switch them over? I notice not all the usage is the same (sometimes can be done with .keys() or .values() and others .entries(), or can just be replaced with a forEach.
I can volunteer to do this if you'd like to hand it off.

Sure @cwli24 if you would like to do that or I could.

Even though it'd be slightly more work, wouldn't it be ultimately cleaner to just re-eval the places using mapOwn and switch them over? I notice not all the usage is the same (sometimes can be done with .keys() or .values() and others .entries(), or can just be replaced with a forEach.
I can volunteer to do this if you'd like to hand it off.

I opened a ticket to track this as a separate effort: https://issues.newrelic.com/browse/NEWRELIC-7937

Even though it'd be slightly more work, wouldn't it be ultimately cleaner to just re-eval the places using mapOwn and switch them over? I notice not all the usage is the same (sometimes can be done with .keys() or .values() and others .entries(), or can just be replaced with a forEach.
I can volunteer to do this if you'd like to hand it off.

I opened a ticket to track this as a separate effort: https://issues.newrelic.com/browse/NEWRELIC-7937

Given that, can we just close this? Since this also changes mapOwn implementation

No, this still has tests that have already been wrote and can be useful until that ticket is addressed.


Not launching - Exception in thread "main" java.lang.ExceptionInInitializerError

Ripme version: ripme-2.1.2-3-ea90b172

Java version:

java version "11.0.16" 2022-07-19 LTS
java version "17.0.1" 2021-10-19 LTS
java version "18.0.2" 2022-07-19

Operating system: Windows 10 21H2 (Build 19044.1826)

Exact URL you were trying to rip when the problem occurred: None
Please include any additional information about how to reproduce the problem: Try to launch ripme via command prompt to get log output.

Expected Behavior
ripme launches.
Actual Behavior
ripme does not launch.
ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
Exception in thread "main" java.lang.ExceptionInInitializerError
        at com.rarchives.ripme.App.main(App.java:62)
Caused by: java.util.MissingResourceException: Can't find bundle for base name LabelsBundle, locale en_EN
        at java.base/java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:2055)
        at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1689)
        at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1593)
        at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1556)
        at java.base/java.util.ResourceBundle.getBundle(ResourceBundle.java:1066)
        at com.rarchives.ripme.utils.Utils.getResourceBundle(Utils.java:733)
        at com.rarchives.ripme.utils.Utils.<clinit>(Utils.java:104)
        ... 1 more

this does not seem to be a general problem? you have some config folder? if you have details please reopen.


window.fetch is polluted by Backbone

If for some reason you forget to declare the fetch function from Focus :
let fetch = FocusCore.network.fetch;

You will use the fetch function from window. And this function is defined by backbone during startup.
This can lead to very confusing behaviour, because this will result in a correct XHR call to the server, but with incorrect parameter (like : GET http://localhost:8080/myWebApp/[object%20Object] 404 (Introuvable) Fetch complete: GET "http://localhost:8080/myWebApp/[object%20Object]"). As this call send effectivelly an xhr request to the server, you're misleaded at this point and you don't realize rapidly that you're using the wrong lib.
Please remove this behaviour or at least add a wrapper arround this function that inform the user (in console) that this function is not the correct one to use.

Window.fetch is not polluted by Backbone it is a new browser API https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API

Projects shouldn't use global variables, you have an eslint warning on this case.


Update de-DEcoffee

New strings translated into german. Please add this strings soon. Thanks a lot

Hello, @Zeldaretter! Thank you for contributing. Can you sign our CLA so that I can merge your pull request?

I just did, thank you.


What does "sqlite:///:memory:" mean?

I've been following basic tutorial on how to create a web application with a Postgres DB. I've followed the tutorial to the letter but I'm getting an error message and not the results shown in the tut. Can anyone who knows more tell me what I'm doing wrong?
I have the following code in app.py:
from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLAlchemy_DATABASE_URI']='postgresql://postgres:password@localhost/height_collector'
db=SQLAlchemy(app)

class Data(db.Model):
    __tablename__="data"
    id=db.Column(db.Integer, primary_key=True)
    email_=db.Column(db.String(120), unique=True)
    height_=db.Column(db.Integer)

    def __init__(self, email_, height_):
        self.email_=email_
	    self.height_=height_

and then in prompt command i run python then
from app import db

then i receive belwo message

neither sqlalchemy_database_uri nor sqlalchemy_binds is set. defaulting sqlalchemy_database_uri to sqlite:///:memory

It means your data is gone once you restart your app. And that happened because the config option is SQLALCHEMY_DATABASE_URI instead of SQLAlchemy_DATABASE_URI.
PS: Please use Stack Overflow, IRC or Discord for future questions that are related to your own code.

Thank you. I will use Stack Overflow
I changed to SQLAlchemy_DATABASE_URI but i got same message and i am not able to create any table.

please read what I wrote. it needs to be all-uppercase.

I did and run again but i see still below message. it seems fine as if already db created but nothing is in pgadmin4

your database uri is still not being set. instead of screenshots of the error, show your current code.

Here is my code now

dude, don't post code as screenshots but as actual text.
anyway, your STILL don't have an all-uppercase SQLALCHEMY_DATABASE_URI (your L in ALCHEMY is lowercase)

Thank you very much. It works now :)

Thank you so much. So weird that me too had the second L in  SQLAlCHEMY lower cased. I wonder if that's what VScode does ?

Thank you @ThiefMaster !. I have wrote all in UPPERCASE. But there was just a 'l' letter wasn't be UPPERCASE :)


Add the target name as param to settings_post_process

The post-processing could be different according to the target.

I agree :+1:

Just the label or the entire Pod::Installer::HooksContext::UmbrellaTargetDescription?

I think passing the umbrella target desc would work best


const syntax possibly confusing to users

Background
const in noir currently means "known at compile-time." In this way it mostly matches with the rust usage of compile-time evaluation. Noir differs from rust here namely in that const can be attached to types, allowing functions to specify only certain parameters need be const. This is important because this is how array indices are typechecked currently - the index must be known at compile-time.
Problem
With the introduction of "global consts" we now have 2 features with const in the name which do not relate to each other. This mostly matches rust, though users from other languages may still find it confusing. Users would also find writing const FOO: const Field = 2; confusing, even though both consts are semantically different. Currently to avoid this confusion the default behavior for global consts is to add an implicit const to any type annotation such that const FOO: Field = 2; is still valid and is identical to the previous example.
Solution
To avoid this confusion, we likely need to break from rust syntactically. I have a few points here on aspects which could be clearer if we broke free from rust's syntax:

Renaming const to ct (short for compile-time) would be a smaller change which would still keep us mostly compatible with rust. The new keyword ct is meant to indicate something must be known at compile-time and would replace const in types.
let is a more natural choice to declare globals since there is no reason for a separate keyword to be required to separate global definitions from local ones (we do not share rust's distinction of const and static globals). Additionally, if we did want a separate keyword anyway, then global is the clearer choice over const.

Alternatives considered
The following alternative names were also considered:

compiletime is very descriptive but lengthy enough to discourage use.
ctime is a possible middle-ground between ct and compiletime. Could be confused for time in the C programming language without additional context.
comptime as used by Zig. Slightly longer/clearer than ctime.
Arbitrary sigils like $ are short but not easily memorized and make the language look like symbol-soup to unfamiliar readers.

After an internal discussion we've decided to:

Change the keyword for const globals to global
Change the keyword for const types to comptime
Allow type inference for globals

Just to add some quick examples:
global x = 5 is allowed
global x : comptime Field = 5 is allowed
fn foo(x : comptime Field) is allowed

const Field is replaced by comptime Field
const FOO : Field = 10 is replaced by global FOO : Field = 10


Fix: Allow 'CMD ...' to match any CMD instructions

Part of fix for  returntocorp/semgrep#4770

Note: will need someone to publish this for me

@ajbt200128 you probably want to do the PR on the original tree-sitter-dockerfile, not on this fork. https://github.com/camdencheek/tree-sitter-dockerfile
cc @mjambon

Then what you need is to make a PR on https://github.com/returntocorp/ocaml-tree-sitter-semgrep that use a new tree-sitter-dockerfile. From there we can publish a new semgrep-dockerfile that can be used inside semgrep.
I know it's a bit complicated. There's some documentation here: https://github.com/returntocorp/ocaml-tree-sitter-semgrep/tree/main/doc

A deduplication is nice but it's not really needed. I try to avoid touching too many repos at once unless it's necessary. In https://github.com/returntocorp/ocaml-tree-sitter-semgrep/pull/293, I extend the shell_command rule which should work.


tob-axiom-10

https://github.com/axiom-crypto/halo2-lib/commit/bb5c2074c09abf374212c4ee1f408772a325f0ae

need we pick that commit? i noticed you have already an divide_unsafe PR (I have merged that).

oh yes this was fixed and did not use Axiom's method.