Support for constraints on nested paths

NOTE: All PR's into Flux-based branches require sign-off from multiple teams. Please do not merge until sign-off is confirmed.
Adds support for constraining elements on nested paths.  There may still be some edge cases that slip through, but they'll receive an error.

Thanks, @jgibson.  I meant to assign it to @Abhijay.  Must have picked the wrong name by mistake!


cmd/bosun/(conf|sched) add Ledis bind address config option

This will allow multiple instances to run on a single host.
Not sure I understood everything written in the CONTRIBUTING.md file(not a Go dev) but it did seem to pass the build/validate.sh script and it's fairly simple.

Thanks!


Upgrade script gets stuck when pods use eviction policies

We have eviction policies in place for pods, including some - postgres - that aren't supposed to be evicted.
evicting pod "postgres-0"
error when evicting pod "postgres-0" (will retry after 5s): Cannot evict pod as it would violate the pod's disruption budget.
...

Kubernetes 1.18 added disable-eviction as an option for kubectl drain. When upgrading to 1.18 or newer, kubectl drain should use that option to ignore PodDisruptionBudgets.

expected behavior: during an upgrade, it should be fair to evict them. right now this requires manual intervention by the customer, they'd have to manually delete the pod.
As a short term measure, could possible remove the eviction policy.
@MikaelSmith do things break when this pod gets rescheduled?

Not really, just have downtime while the pod is rescheduled because it's a single instance database.

I'm testing out a change for this. I have two questions:

will kubectl be upgraded before running kubernetes_drain? Looks like no, so this will only be usable when upgrading from an existing 1.18 or later instance.
when upgrading from Kubernetes 1.17.13 to 1.18.10, it used kubeadm and didn't call kubernetes_drain. That seems to have cleanly upgraded but didn't end up draining any pods. That seems preferable; why isn't this approach used for patch upgrades?

Turns out it doesn't actually get stuck, it just had a long timeout. Timeout has been reduced to 2 minutes. I consider this closed; we'll just note it in documentation.


First path's M should ideally be parsed as absolute (uppercase) command type

Dear Jarek Foksa,
not exactly an issue, but an idea to facilitate  path concatenations.
getPathData() flawlessly normalizes m commands introducing following relative l linetos (as well as a plethora of other shorthands...):
m 20 0  10 0  0 10  -10 0z
Unfortunately a lot of svg optimizers tend to output starting M commands in lower case while converting path data to relative.
Not a big deal – however, it would be great if path-data-polyfill would also sanitize this.
So it might be better to force the very first M command to be absolute(uppercase.
I've expanded on this here: Is there a way to merge two path elements (svg) using Javascript?
Codepen example
This example just overrides the first command by pathData[0].type='M';

This proposal seems to be against the spec. path.getPathData() should be only expanding the shorthand notation. Actual normalization should be performed only when you use path.getPathData({normalize: true}).

A path starting with an "m" command is not wrong as per the SVG 2 spec, it is just interpreted differently:

If a relative moveto (m) appears as the first element of the path, then it is treated as a pair of absolute coordinates. In this case, subsequent pairs of coordinates are treated as relative even though the initial moveto is interpreted as an absolute moveto. (link)

In my opinion getPathData() should not perform segment type conversion or removal of redundant/unnecessary segments unless this behavior is clearly stated in the spec.

I apologize for the late response – you can close this issue.
Of course, you're right – it's not wrong by means of invalid or against the specs.
My point:

the proposed command conversion (for the first M in a path ) would also be perfectly valid and spec compliant.
"getPathData() should not perform segment type conversion" – I totally agree! But honestly, I'd call the aforementioned (and perfectly sensible) " repeated shorthands" sanitizing – adding  l commands –  also as a kind of segment conversion.

However, it's not a big deal, and the solution for pathData concatenations is also quite simple.
It's just slightly annoying, to see "optimized" pathdata retrieved by API driven (all to relative) optimizers – introducing unnecessary m commands that screw up further processing steps like path concatenation.
Honestly, just hope we'll see getPathData() natively supported by major browsers some fine day – and implemented remotely as stable as your polyfill  ;)

I'd call the aforementioned (and perfectly sensible) " repeated shorthands" sanitizing – adding l commands – also as a kind of segment conversion.

From my understanding of the spec there are no segments added or converted when parsing something like "m 0 0 l 10 10 20 20 30 30". The "l" commands are already there - they are just implicit rather than explicit.
If you believe the current behavior should be changed, please ask the SVG WG to add the necessary clarifications in the SVG 2 draft.


Add visual block cooldown

Add some visual feedback to the status of the block command cooldown, since the only way to tell currently is to manually count the seconds or just spamming the button.

Won't add


fix:  Add support for multiple search fields

Proposed changes
Added support for multiple body fields in /api/blocks/search.  Added some additional filtering in existing test to prove functionality.
Types of changes

[X] Bugfix (non-breaking change which fixes an issue)

Checklist

[X] I have read the CONTRIBUTING documentation
[X] Lint and unit tests pass locally with my changes
[X] I have added tests that prove my fix is effective or that my feature works

Further comments
Fixes #39

Test failures are known and fixed in #36


[FEATURE] Read-only access to Log Archive for IAM roles

Required Basic Info
To properly assess the enhancement request, we require information on the version of the Accelerator you based this request upon:

Accelerator Version:  1.2.3
Install Type: (Clean or Upgrade) Clean/Upgrade
Install Branch: (ALZ or Standalone) Standalone
Upgrade from version: (N/A or v1.x.y) N/A

Is your feature request related to a problem? Please describe.
IAM roles created through the ASEA can use the 'ssm-log-archive-access' flag to give a role read + write access to the Log Archive account. However there is no equivalent read-only version of this flag. I'm currently trying to deploy an SIEM solution which uses a Lambda function to fetch objects from the Log Archives centralized logging bucket. The Lambda role needs read-only access to the bucket. Currently my only option is to give the role 'ssm-log-archive-access' which is too permissive.
Describe the solution you'd like
An equivalent of the ssm-log-archive-access flag, but for read-only access to the Log Archive centralized logging bucket. The flag could be called 'ssm-log-archive-read-only-access', and potentially rename the existing 'ssm-log-archive-access' flag to 'ssm-log-archive-full-access' to clearly differentiate the two flags.
Describe alternatives you've considered
For my use case I could use the existing 'ssm-log-archive-access' flag, but I'd be breaking principle of least privilege. If the Lambda function is compromised, files in the log archive could be deleted/modified.

Looks good, I look forward to the enhancement!

Please tweak per Naveen's comments on PR.

Shipping in v1.2.5


Provide some clarification for getting ready on windows 10

README has been updated, it should be easier to get it working


Base model class imported from npm dependency triggers error

I have two models A and B with A having a Model.HasManyRelation mapping to B. Both models inherit from a BaseModel class which is imported from a "common" project. When trying to query model A I receive the following error message:
Relation's owner is not a subclass of Model\n    at HasManyRelation.createError
The error is not caused by any circular dependencies, since everything works as soon as I copy the BaseModel over into the project instead of using the imported one from the npm dependency.
One workaround I've found is to export the objection Model class from the "common" npm dependency, import it in my main project and use it for Model.HasManyRelation. However, this seems to be a bit of a hacky approach.
Is there a cleaner way of solving this issue?

Don't add objection as dependency in the "common" project. You now have two copies of objection and the base class inherits from a class that objection doesn't detect as objection's model, because it's from a different copy.

Thanks for the quick response and the pointer to peer deps!


[SR-14810] Concurrency Interoperability with Objective-C: Swift runtime crashes after calling Objective-C async function which calls completion handler immediately

Previous ID
SR-14810

Radar
rdar://problem/79632420

Original Reporter
SvyatoslavScherbina (JIRA User)

Type
Bug

Environment
Xcode 13.0 beta (13A5154h)

Additional Detail from JIRA

Votes
0

Component/s
Compiler

Labels
Bug, Concurrency

Assignee
None

Priority
Medium

md5: 014d4f80d630d5722a90259e25948a24

Issue Description:
Steps to reproduce:
1. Create new "iOS App" project in Xcode (set "Interface" to "Storyboard", "Language" to "Swift")
2. Add Objective-C files:
Select main group in the project structure. Go to menu File -> New -> File... -> "Cocoa Touch Class". Set "Language" to "Objective-C", name the class "TestAsync", press Next, agree to create bridging header.
3. Add #import "TestAsync.h" to the bridging header.
4. Add the following method to TestAsync implementation:
- (void)testWithCompletionHandler:(void(^)(void))completionHandler {
    completionHandler();
}

Add the corresponding method declaration to TestAsync.h as well.
5. Add the following code to the end of ViewController.viewDidLoad:
async {
    await TestAsync().test()
    print("OK")
}

6. Run the app on the simulator.
The app prints "OK" and crashes with:
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
    frame #0: 0x00007fff3070c1be libswiftCore.dylib`bool swift::HeapObjectSideTableEntry::decrementStrong<(swift::PerformDeinit)1>(unsigned int) + 14
    frame #1: 0x000000010a9b598c TestAsyncIos3`closure #1 in ViewController.viewDidLoad() at ViewController.swift:19:9
  * frame #2: 0x000000010a9b5c60 TestAsyncIos3`partial apply for thunk for @escaping @callee_guaranteed @Sendable @async () -> () at <compiler-generated>:0
    frame #3: 0x00007fff6a5284a0 libswift_Concurrency.dylib`(1) await resume partial function for reabstraction thunk helper <τ_0_0> from @escaping @callee_guaranteed @Sendable @async () -> (@out τ_0_0) to @escaping @callee_guaranteed @async () -> (@out τ_0_0, @error @owned Swift.Error)
    frame #4: 0x00007fff6a534d50 libswift_Concurrency.dylib`reabstraction thunk helper <τ_0_0> from @escaping @callee_guaranteed @Sendable @async () -> (@out τ_0_0) to @escaping @callee_guaranteed @async () -> (@out τ_0_0, @error @owned Swift.Error)partial apply forwarder with unmangled suffix ".127TQ0_"

If I define testWithCompletionHandler as
- (void)testWithCompletionHandler:(void(^)(void))completionHandler {
    dispatch_async(dispatch_get_main_queue(), ^{
        completionHandler();
    });
}

then the code works without crashes and prints "OK".

By using Task instead of async in the OP  steps to reproduce code and in Svyatoslav Scherbina's comment, I am unable to reproduce the issue in Xcode 15.4 (Swift 5.10). I think this issue has long been fixed and it should be closed.

Thank you @alobaili! I also cannot reproduce the issue with Swift 6.0.


Migrate omnibus-chef project/software definitions for chef in here.

:construction:

Test build passed across full matrix: http://manhattan.ci.chef.co/job/chef-13-trigger-ad_hoc/8/downstreambuildview/

/cc @chef/client-core

@ksubrama Can you squash this down to 1 commit?  Is there a reason we want to copy over the whole commit history from omnibus-chef?  I would rather have a commit that is a pointer to the old history rather than copying it into here.
OTT, :+1: and awesome job

@tyler-ball @jaym @schisamo @danielsdeleo Y'all should vote on history vs. not :)
I'm ok with leaving a note in the README pointing to omnibus-chef.

I'm slightly in favor of porting over the history

The consensus with the group so far has been keep the history (my personal vote also).

I'm strongly in favor of keeping the history. I find I use it more frequently for omnibus stuff than anything else, because fiddling with CFLAGS and the like seems to be more likely to have unanticipated effects than we see with other kinds of software we make.

Should probably update the CHANGELOG and then I'm :+1:

Hi. I am an automated pull request bot named Curry. There are commits in this pull request whose authors are not yet authorized to contribute to Chef Software, Inc. projects or are using a non-GitHub verified email address. To become authorized to contribute, you will need to sign the Contributor License Agreement (CLA) as an individual or on behalf of your company. You can read more on Chef's blog.
Non-GitHub Verified Committers
There are 1 commit author(s) whose commits are authored by a non-GitHub verified email address. Chef will have to manually verify that they are authorized to contribute.
Please sign the CLA here.


Add CONTRIBUTING.md with description of how to run tests

It's apparent that there are tests but not immediately apparent how to run them.

It appears that
pip install tox
tox

is sufficient to run the tests on whatever versions of Python are installed that are specified in tox.ini.

Yes please!  :)


Update log-analytics-azure-networking-analytics.md

Fixing typos.

Hi @alexandair, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
We will now validate the agreement and then real humans will evaluate your PR.
TTYL, AZPRBOT;

@alexandair : Thanks for your contribution to the Azure documentation! The author, @richrundmsft, has been notified to review your proposed change.

Thanks @alexandair for fixing my typos.
@Jim-Parker these changes are ready to be merged as-is.
#sign-off


Make the pseudo-futures in /internal/popple/popple.go receive-only channel types

This better describes how they're meant to be used.
i.e.,
@@ -120,7 +120,7 @@ func GetLeaderboard(pl adapter.PersistenceLayer, serverID string, top bool, limi
        return f
 }

-type SetAnnounceF chan error
+type SetAnnounceF <-chan error

 func SetAnnounce(pl adapter.PersistenceLayer, serverID string, on bool) SetAnnounceF {
        f := make(chan error, 1)

Not completely. There are other instances in that file that need to receive a similar change.

Obsoleted by commit 033633a8f9254f172e740e5d48dd733c5bfbcb6b


wireguard-ui doesn't read config

I just installed wireguard-ui on top of my existing wireguard installation and think I have it set up correctly. My config file is in /etc/wireguard/wg0.conf. I used the demo docker-compose file from this repo which should link the config to the image.
However when I load the UI it doesn't show my clients and the settings do not match those of my wireguard install.
Please let me know what I'm doing wrong.

You are not doing anything wrong; it does not read wg0.conf files, it only writes them.

Oh, thanks! I guess it must store a shadow config somewhere in a different format then? Could I manually convert my Wireguard configuration into that file?

Client data is stored in the /app/db/clients folder and the server config is in the /app/db/server folder in the container
wireguard@wireguard:~$ sudo docker exec -it wireguard-ui ls -lac /app/db/server
total 24
drwxr-xr-x    2 root     root          4096 Jun  1 13:23 .
drwxr-xr-x    4 root     root          4096 Jun  1 05:25 ..
-rw-r--r--    1 root     root           221 Jun  1 13:22 global_settings.json
-rw-r--r--    1 root     root           400 Jun  1 13:23 interfaces.json
-rw-r--r--    1 root     root           177 Jun  1 05:25 keypair.json
-rw-r--r--    1 root     root            46 Jun  1 05:25 users.json
wireguard@wireguard:~$ sudo docker exec -it wireguard-ui ls -lac /app/db/clients
total 12
drwxr-xr-x    2 root     root          4096 Jun  1 13:23 .
drwxr-xr-x    4 root     root          4096 Jun  1 05:25 ..
-rw-r--r--    1 root     root           484 Jun  1 13:23 c2r39rt24nqmc2un4sq0.json

example client.json
{
        "id": "XXXXXXXXXXXXXXXXXXXX", //note this ID matches the name of the file
        "private_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "public_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "preshared_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "name": "kking124",
        "email"<EMAIL_ADDRESS>        "allocated_ips": [
                "<IP_ADDRESS>/32"
        ],
        "allowed_ips": [
                "<IP_ADDRESS>/24"
        ],
        "enabled": true,
        "created_at": "2021-06-01T13:23:59.187801043Z",
        "updated_at": "2021-06-01T13:23:59.187801043Z"

example global_settings.json (general settings to pinpoint the server wg0.conf and configure client peers)
{
        "endpoint_address": "<IP_ADDRESS>", //could be an FQDN if you have one
        "dns_servers": [
                "<IP_ADDRESS>"
        ],
        "mtu": "1450",
        "persistent_keepalive": "15",
        "config_file_path": "/etc/wireguard/wg0.conf",
        "updated_at": "2021-06-01T13:22:40.070206188Z"
}

example interfaces.json (the interface settings in the wg0.conf and the address space for the client peers)
{
        "addresses": [
                "<IP_ADDRESS>/24"
        ],
        "listen_port": "51820",
        "updated_at": "2021-06-01T13:23:24.968720788Z",
        "post_up": "iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE",
        "post_down": "iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE"
}

example keypair.json (this is the key pair for the server interface)
{
        "private_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "public_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "updated_at": "2021-06-01T05:25:07.86299407Z"
}

To apply the changes from wireguard-ui to your wireguard instance, use the Apply Config button in the top right corner. This will update the server's wg0.conf with new server configuration and/or register newly created peers. You'll still need to trigger a wireguard service restart after the config is applied.

Wow, thanks so much for the detailed explanation! I got it all up and running now.

omg this worked for me too thank you so much


ImageInformation not populated on Success Event for Animated Gifs on Android

Description
On a minimal repo, without any additional libraries or components installed, Animated GIFs (and this may apply to non-animated GIFs but I have not tested) do not provide ImageInformation on the Success callback on Android only.  It works perfectly on iOS.  It does not seem to matter what type of control or layout is used.  I thought maybe there was an order of operations issue with the rendering/sizing/inflation order depending on the layout but that does not seem to be the case.
Steps to Reproduce

Create an empty XamForms project.
Add a CachedImage with a URL source to an animated GIF.
Add Success callback, inspect ImageInformation.

Expected Behavior
ImageInformation should be populated
Actual Behavior
ImageInformation has 0 values for OriginalWidth, CurrentWidth, OriginalHeight and CurrentHeight.
Basic Information

Version with issue: <IP_ADDRESS>0
Last known good version: Unknown
Platform: Android

Code
BugDemo.zip

Update: I have a working fix for this issue which I will submit a PR for.  Don't want to commit to a timeline for it, though.  Hopefully I get around to it in the next few days.

+1 same issue

@DKWaters Looking forward for a PR :)

Wow, can't believe it's been 21 days.  Time flies.  I will get this pushed up in the next 24 hours.  Competing priorities…as always.  :-)


Difficulties when Training RL Policies

I tried to run the RL training scripts for multiple tasks such as Stabilize, Reach and Grasp, and Insert by
python3 main/rl/train.py task=<task_name> sim_device=cuda:<gpu_id> rl_device=cuda:<gpu_id> graphics_device_id=<gpu_id>
However, none of the RL agents successfully learn to complete the tasks even after long time (an example for ReachAndGraspSingle shown below). I used the num_envs in the default task config file. Are there any hyperparameters I need to tune?

For most tasks we also added task-specific curricula (such as warm up over object geometries and action space), reward functions provided in the code correspond to those in the last curriculum stages. But for the task Stabilize there should be some learning signal without the curriculum. Could you provide some learning curves for that task so I can take a look?

Hello @yunfanjiang, thanks for open-sourcing your code. I would also like to ask the same question that if we should be tuning any parameters before running the code. I ran the InsertSingle task as it is and here are the plots:


BUG: GA4 Pixel GET Route Throwing ValidationErrors

Description
The GA4 pixel tracking endpoint is generating 4xx errors due to various query parameter handling issues. These errors are cluttering logs and affecting tracking accuracy. The primary issues include:

Query parameters being truncated, removed, or not processed correctly.

Apple email clients stripping all query parameters from GET requests.

Validation errors due to unexpected characters or formats in the query parameters (e.g., spaces or malformed URLs).

[x] Ticket is understood, and QA has been contacted (if the ticket has a QA label).

Steps to Reproduce

View logs here
Use body params from 400 errors to test calling endpoint GET /ga4/open-email-tracking and duplicate the error

Impact/Urgency

Medium
This appears to impact a small number of GET requests. Roughly 600 for the 378,000 emails sent

Expected Behavior

[ ] Ensure the system catches and logs errors when query parameters are modified or stripped
[ ] Investigate and fix the URL encoding/parsing issues causing schema validation errors
[ ] Endpoint gracefully returns a 200 if there is a problem with validation
[ ] Update the Slide deck with the key win and a demo slide

QA Considerations

Confirm system logs a graceful error when query parameters are modified or stripped

Additional Info & Resources

See slack thread regarding the issue

Hey team! Please add your planning poker estimate with Zenhub @coreycarvalho @cris-oddball @EvanParish @k-macmillan @kalbfled @MackHalliday @mchlwellman

Here are the error types and some sample payloads:
GA4 Validation Errors

GA4 ValidationError: 'VBA Education/*/* does not match '^[^/]{1,255}/[0-9a-zA-Z-]{36}/[0-9a-zA-Z-]{36}$'
Payloads:
    - /ga4/open-email-tracking?campaign=em_enrollment-submission-notification&campaign_id=ff7913a5-39f5-4185-907d-754d6f87554c&name=email_open&source=vanotify&medium=email&content=VBA%20Education/4266121d-f301-434b-a97f-8ec1597143e9/c
    - /ga4/open-email-tracking?campaign=ua-sco_resolution-confirmation&campaign_id=7dd3b8ac-1c31-4e35-872e-e3492e443197&name=email_open&source=vanotify&medium=email&content=VBA%20Education/4266121d-f301-434b-a97f-8ec1597143e9/d5ac6e2e
    - /ga4/open-email-tracking?campaign=em_enrollment-submission-notification&campaign_id=ff7913a5-39f5-4185-907d-754d6f87554c&name=email_open&source=vanotify&medium=email&content=VBA%20Education/4266121d-f301-434b-a97f-8ec1597143e9/df3

GA4 ValidationError: '*/*/* does not match '^[^/]{1,255}/[0-9a-zA-Z-]{36}/[0-9a-zA-Z-]{36}$'
Payloads:
    - ?campaign=Debt:%20New%20Benefit%20Overpayment%20-%20VBA&campaign_id=7efc2b8b-e59a-4571-a2ff-0fd70253e973&name=email_open&source=vanotify&medium=email&content=dmc/b3357476-adf1-4350-be1b-3604034665f9/efcf7164-1191-4'
    - ?campaign=Appeal%20decision%20mailed%20(Non-contested%20claims)%20-%20email&campaign_id=6f514913-0c85-4bc9-8343-9f6272574d1c&name=email_open&source=vanotify&medium=email&content=BVA/c157bd6e-6e3b-4561
    - ?campaign=QuickSubmit%20Confirmation%20MultiUserTypes&campaign_id=c2ccd60a-37f3-47f7-9a2b-afecf23f80f7&name=email_open&source=vanotify&medium=email&content=QuickSubmit/3368b0ba-63db-4c34-b90c-1c4e0ff827f3

GA4 ValidationError: '*' is a required property
Payloads: # I've checked 4, they are all the same...sometimes 'medium' is the missing property, and sometimes it is 'campaign'
    - ?campaign=20-10206%20Freedom%20of%20Information%20Act%20(FOIA)%20or%20Privacy%20Act%20(PA)%20Request%20Confirmation&campaign_id=07d76dd0-2b8f-4866-8c97-45eb2638d07e&name=email_open&source=vanotify

GA4 ValidationError: '*' was expected
Payloads:
    - HEAD https://api.va.gov/ga4/open-email-tracking?campaign=Confirmation%20of%20VA.gov%20Profile%20Information%20Changing&campaign_id=8d34e7d2-00f9-4cdf-9c34-6c5c87fe9d5b&name=email_open&source=vanot 400 0.01484
    - ?campaign=Debt:%20New%20Benefit%20Overpayment%20-%20VBA&campaign_id=7efc2b8b-e59a-4571-a2ff-0fd70253e973&name=email_open&source=vanotify&medium=ema

GA4 ValidationError: '' does not match '^[^/]{1,255}/[0-9a-zA-Z-]{36}/[0-9a-zA-Z-]{36}$'
Payloads:
    - ?campaign=Account%20Activated%20MultiUserTypes&campaign_id=3b01b2b7-897d-4277-b0b8-0994a313ef88&name=email_open&source=vanotify&medium=email&content=

GA4 ValidationError: 'va.gov/5bda137e-689e-4532-b3d2-2c81c0324331/* does not match '^[^/]{1,255}/[0-9a-zA-Z-]{36}/[0-9a-zA-Z-]{36}$'
Payloads:
    - ?campaign=Form%20526ez%20email%20confirmation&campaign_id=0c1335fc-ca67-408a-b2ae-08b91ffaceba&name=email_open&source=vanotify&medium=email&content=va.gov/5bda137e-689e-4532-b3d2-2c81c0324331/25febfaa-209

GA4 ValidationError: 'Mail Automation Services/e5af2191-4903-4426-8177-f91' does not match '^[^/]{1,255}/[0-9a-zA-Z-]{36}/[0-9a-zA-Z-]{36}$'
Payloads:
    - ?campaign=WebPMC%20Application%20Submitted%20&campaign_id=896208be-2a70-49e2-bb6b-7e53a47254dc&name=email_open&source=vanotify&medium=email&content=Mail%20Automation%20Services/e5af2191-4903-4426-8177-f91

GA4 ValidationError: Additional properties are not allowed (' Pen Benefits' was unexpected)
Payloads:
    - ?campaign=Direct%20Deposit%20Update%20Confirmation%20-%20Comp%20&%20Pen%20Benefits&campaign_id=36d8ba76-9a08-4dfa-a044-7fe6ec267520&name=email_open

GA4 ValidationError: '*' does not match '^[^/]{1,255}/[0-9a-zA-Z-]{36}/[0-9a-zA-Z-]{36}$'
Payloads:
    - ?campaign=Form%20526ez%20email%20confirmation&campaign_id=0c1335fc-ca67-408a-b2ae-08b91ffaceba&name=email_open&source=vanotify&medium=email&content=v
    - ?campaign=686-c%20Application%20Confirmation&campaign_id=9770facf-1a47-44c4-a558-968e8b696aae&name=email_open&source=vanotify&medium=email&content=va
    - ?campaign=526%20EZ%20Application%20Reminder&campaign_id=b9c6513b-efa2-45b7-9691-5c70925dc450&name=email_open&source=vanotify&medium=email&content=va.gov/5bda137e-689e-4532-b3d2-2c81c0324331/39412ea7-a138-

GA4 ValidationError: 'VA Profile' does not match '^[^/]{1,255}/[0-9a-zA-Z-]{36}/[0-9a-zA-Z-]{36}$'
    - HEAD https://api.va.gov/ga4/open-email-tracking?campaign=Auto-auto%20notify%20BAI&campaign_id=4b3436a0-d0c7-4325-91e5-9c2e30deb7f8&name=email_open&source=vanotify&medium=email&content=VA%20Profile

GA4 ValidationError: Additional properties are not allowed ('cont' was unexpected)
Payloads:
    - ?campaign=Direct%20Deposit%20Update%20Confirmation&campaign_id=bd5b7827-15c3-4d18-b97b-97aa29b0d6db&name=email_open&source=vanotify&medium=email&cont

GA4 ValidationError: 'Mail%' does not match '^[^/]{1,255}/[0-9a-zA-Z-]{36}/[0-9a-zA-Z-]{36}$'
Payloads:
    - ?campaign=WebPMC%20Application%20Approved&campaign_id=99c335f2-f237-491b-8fef-9f5994fd67be&name=email_open&source=vanotify&medium=email&content=Mail%25

GA4 ValidationError: 'va.' does not match '^[^/]{1,255}/[0-9a-zA-Z-]{36}/[0-9a-zA-Z-]{36}$'
Payloads:
    - ?campaign=526%20EZ%20Application%20Reminder&campaign_id=b9c6513b-efa2-45b7-9691-5c70925dc450&name=email_open&source=vanotify&medium=email&content=va.

GA4 ValidationError: Additional properties are not allowed ('amp;campaign_id', 'amp;content', 'amp;medium', 'amp;name', 'amp;source' were unexpected)
Payloads:
    - ?campaign=QuickSubmit%20Confirmation%20MultiUserTypes&campaign_id=c2ccd60a-37f3-47f7-9a2b-afecf23f80f7&name=email_open&source=vanotify&medium=email&content=QuickSubmit/3368b0ba-63db-4c34-b90c-1c4e0ff827f3/3b3bdf24-05c1-4ec2-b61d-ee8ee2725fd4
    # GET https://api.va.gov/ga4/open-email-tracking?campaign=QuickSubmit%20Confirmation%20MultiUserTypes&campaign_id=c2ccd60a-37f3-47f7-9a2b-afecf23f80f7&name=email_open&source=vanotify&medium=email&content=QuickSubmit/3368b0ba-63db-4c34-b90c-1c4e0ff827f3/3b3bdf24-05c1-4ec2-b61d-ee8ee2725fd4 400 0.01925

The plan for fixing this is to

Change the url for the pixel to have the notification id in the route and remove query strings altogether
Change the route handler to not do any schema validation, just pass the notification id on to the celery task and always return an image
Change the celery task to look up the notificaton and build the GA4 payload from there
Fix/Add unit tests

QA testing is blocked because nothing is being received when sent through Perf. The notifications (smsand email) report as delivered, but I haven't received any of them (and that part is necessary to be able to validate this work).

QA PASSED
My issue earlier was that I had Postman configured to use a test key (which never sends, but always reports delivered). I switched that back to a normal key and I am back in business.
-[ ] TC01 - sent an email, open the email, check that the logs show a post request to google analytics.

Hard to navigate the GA console, but here we see the notification_id from the above test is recorded

Note that it is capturing data from the regression being run. I have not opened that email account in a while, so there are no email opens. I believe Google is pre-fetching the data, somehow, and brought that up to Ksenia. When testing using an icloud account with that email client closed, I did not observe the behavior.

Most likely, we will want to monitor what we see in the GA4 console for a while, since we are now building the POST request in the code (instead of relying on what email clients must do with munging the GET request path params) and Google will truncate any fields without rejecting them if they are over their value limit.
Will send this up to Prod in the morning and close out this ticket.

Holding this commit for another one, so closing this ticket as done.


Stuck in infinite loop

I am stuck in an infinite loop, entering the nether works fine, but upon leaving the nether it takes me to another portal in the nether. Please help my players get stuck in the nether forever.

Are your worlds linked correctly? Send your /mvv -p link

Closing as stale


ugghhh bug - validation needed for options object properties

I have been using this package to much delight for several years. I have the following promise wrapping code. The fact that it's a wrapper isn't important. Do you see what might be wrong with the code below?
 let requestp = function (method, url, headers = {}, query = {}, body = {}) {
    return new Promise(function (resolve, reject) {
      request({method, url, headers, query, json: true, body}, function (err, response, body) {
        err ? reject(err) : resolve({response, body});
      });
    });
  };

If you thought query should be 'qs', then you'd be right.
This is correct:
 let requestp = function (method, url, headers = {}, query = {}, body = {}) {
    return new Promise(function (resolve, reject) {
      request({method, url, headers, qs: query , json: true, body}, function (err, response, body) {
        err ? reject(err) : resolve({response, body});
      });
    });
  };

how hard would it be to include validation in the request library, so that an error is thrown, or at least a warning logged, when a property is passed to the request options object that does not belong?
for example, if I pass foo to request, I'd hope to get a warning:
request({method, url, headers, foo: query , json: true, body}, fn);

bamp


No documentation on how to test config.yml locally?

Hello fellow users,
I want to test my config.yml configuration and how my admin panel looks like on localhost before deploying the website. Lots of googling and sifting through the docs has led me here.
Any resources to help me figure it out?

Hi @96312,
I don't like Youtube tutorials, but this one answered this question.
Do not forget to run npx netlify-cms-proxy-server every time you need to run tests locally

@RoneoOrg Brilliant! Thank you, that answered my question.


When running cs2

Regression?
No
System Info and Version
 System/Version info
Hyprland, built from branch main at commit 4fdc0d55e4b44bb5300679025d2378fb6de0cae4  (eventloop: don't dispatch in enterLoop).
Date: Sat Aug 10 06:04:26 2024
Tag: v0.42.0-5-g4fdc0d55, commits: 5074

flags: (if any)

System Information:
System name: Linux
Node name: mxaddict-pc
Release: 6.10.3-arch1-2
Version: #1 SMP PREEMPT_DYNAMIC Tue, 06 Aug 2024 07:21:19 +0000

GPU information:
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900M] [1002:744c] (rev c8) (prog-if 00 [VGA controller])
18:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Raphael [1002:164e] (rev c1) (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

======Config-Start======

Config File: /home/mxaddict/.config/hypr/hyprland.conf: Read Succeeded
# Please note not all available settings / options are set here.
# For a full list, see the wiki https://wiki.hyprland.org/

# See https://wiki.hyprland.org/Configuring/Monitors/
source=~/.config/hypr/monitors.conf
source=~/.config/hypr/workspaces.conf

# See https://wiki.hyprland.org/Configuring/Keywords/ for more

# Execute your favorite apps at launch
exec-once = hyprpaper
exec-once = waybar
exec-once = findex-daemon
exec-once = swaync
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = dbus-update-activation-environment --systemd --all
exec-once = sleep 30; nm-applet
exec-once = sleep 30; blueman-applet

# Fix qt application cursor size
env = HYPRCURSOR_THEME,Bibata-Modern-Ice
env = HYPRCURSOR_SIZE,24

# Themes
env = CLUTTER_BACKEND,wayland
env = GTK_THEME,Lavanda-Dark
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_QPA_PLATFORMTHEME,qt6ct
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland

# Tearing cause AMDGPU does not work without it yet
env = WLR_DRM_NO_ATOMIC,1

misc {
   disable_hyprland_logo = yes
   # vrr = 1
}

# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
    kb_layout = us
    kb_variant =
    kb_model =
    kb_options =
    kb_rules =

    follow_mouse = yes
    natural_scroll = yes

    touchpad {
        natural_scroll = yes
    }

    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.

    force_no_accel = yes
}

general {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    gaps_in = 4
    gaps_out = 8
    border_size = 2
    col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
    col.inactive_border = rgba(595959aa)

    layout = dwindle

    # Tearing
    allow_tearing = true
}

decoration {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    rounding = 4
    drop_shadow = yes
    shadow_range = 4
    shadow_render_power = 3
    col.shadow = rgba(1a1a1aee)

    blur:enabled = no
}

animations {
    enabled = yes

    # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
    bezier = fafb, 0.05, 0.9, 0.1, 1.05
    animation = windows, 1, 7, fafb
    animation = windowsOut, 1, 7, fafb, popin 80%
    animation = border, 1, 10, fafb
    animation = borderangle, 1, 8, fafb
    animation = fade, 1, 7, fafb
    animation = workspaces, 1, 6, fafb
}

dwindle {
    # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
    pseudotile = yes # ???
    preserve_split = yes # you probably want this
}

# Findex
windowrulev2 = float, class:^(findex)$
windowrulev2 = noanim, class:^(findex)$
windowrulev2 = noborder, class:^(findex)$
windowrulev2 = noshadow, class:^(findex)$

# Tearing apps
windowrulev2 = immediate, class:^(cs2)$

# WINE STUFF
windowrulev2 = opacity 0.0 override 0.0 override,class:^(explorer.exe)$
windowrulev2 = move 0 0,class:^(explorer.exe)$
windowrulev2 = noanim,class:^(explorer.exe)$
windowrulev2 = nofocus,class:^(explorer.exe)$
windowrulev2 = noinitialfocus,class:^(explorer.exe)$
windowrulev2 = workspace 10 silent,class:^(explorer.exe)$

# Make apps opaque when in focus
windowrule = opacity 1.00 0.95,^(.*)$

# Force some apps/windows to be floating
windowrulev2 = float,title:^(Calculator)(.*)$
windowrulev2 = float,title:^(MetaMask)(.*)$
windowrulev2 = float,title:^(Steam - News)(.*)$
windowrulev2 = float,title:^(Friends List)(.*)$
windowrulev2 = float,title:^(btop)(.*)$
windowrulev2 = float,class:^(nm-connection-editor)$
windowrulev2 = float,class:^(blueman-manager)$
windowrulev2 = float,class:^(pavucontrol)$
windowrulev2 = float,class:^(chrome-bhghoamapcdpbohphigoooaddinpkbai.*)$
windowrulev2 = float,class:^(chrome-aholpfdialjgjfhomihkjbmgjidlcdno.*)$
windowrulev2 = float,class:^(nwg-look)$
windowrulev2 = float,class:^(nwg-displays)$

# Hide the sharing screen window
windowrulev2 = opacity 0.0 override 0.0 override,title:^(.*)(is sharing your screen.)$
windowrulev2 = move 0 0,title:^(.*)(is sharing your screen.)$
windowrulev2 = noanim,title:^(.*)(is sharing your screen.)$
windowrulev2 = nofocus,title:^(.*)(is sharing your screen.)$
windowrulev2 = noinitialfocus,title:^(.*)(is sharing your screen.)$
windowrulev2 = workspace 10 silent,title:^(.*)(is sharing your screen.)$

# Workspace rules
#windowrule = workspace 1 silent, Chromium
windowrule = workspace 2 silent, discord
windowrule = workspace 2 silent, teams-for-linux
windowrule = workspace 3 silent, thunderbird
windowrule = workspace 7 silent, Exodus
windowrule = workspace 8 silent, lutris
windowrule = workspace 8 silent, steam
windowrule = workspace 9 silent, obs
windowrule = workspace 9 silent, Spotify
#windowrule = workspace 10 silent, alacritty

# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mod = super

# START???
bind = $mod shift, g, exec, notify-send "Join them not beat them"; .start

# Notification center
bind = $mod, n, exec, swaync-client -t -sw
bind = $mod shift, n, exec, swaync-client -d -sw
bind = $mod alt, n, exec, swaync-client -C -sw

# App binds
bind = $mod, b, exec, chromium
bind = $mod, c, exec, alacritty
bind = $mod, e, exec, nautilus -w
bind = $mod, m, exec, hyprlock
bind = $mod shift, m, exec, systemctl suspend && hyprlock
bind = $mod, space, exec, echo 1 > ~/.config/findex/toggle_file
bind = $mod, r, exec, gnome-calculator
bind = $mod, o, exec, spotify-launcher
bind = $mod, p, exec, grimblast --notify --freeze copysave area ~/Captures/$(date "+%Y%m%d_%Hh%Mm%Ss").png
bind = $mod ctrl, p, exec, hyprpicker --no-fancy | wl-copy --trim-newline && notify-send "Picked $(wl-paste)"
bind = $mod shift, p, exec, kooha

# Systemcontrol binds
bind = $mod, f, fullscreen, 1
bind = $mod shift, f, fullscreen, 0
bind = $mod, q, killactive,
bind = $mod, s, togglesplit, # dwindle
bind = $mod, v, togglefloating,

# Volume control
bind = $mod, up, exec,    pactl -- set-sink-volume @DEFAULT_SINK@ +5%
bind = $mod, down, exec,  pactl -- set-sink-volume @DEFAULT_SINK@ -5%
bind = $mod, left, exec,  pactl -- set-sink-mute   @DEFAULT_SINK@ on
bind = $mod, right, exec, pactl -- set-sink-mute   @DEFAULT_SINK@ off

# Microphone volume control
bind = $mod shift, up, exec,    pactl -- set-source-volume @DEFAULT_SOURCE@ +5%
bind = $mod shift, down, exec,  pactl -- set-source-volume @DEFAULT_SOURCE@ -5%
bind = $mod shift, left, exec,  pactl -- set-source-mute   @DEFAULT_SOURCE@ on
bind = $mod shift, right, exec, pactl -- set-source-mute   @DEFAULT_SOURCE@ off

# Move focus with mod + hjkl keys
bind = $mod, h, movefocus, l
bind = $mod, l, movefocus, r
bind = $mod, k, movefocus, u
bind = $mod, j, movefocus, d

# Window TAB for switching while in fullscreen or fakefullscreen
bind = $mod, tab, cyclenext
bind = $mod shift, TAB, cyclenext, prev

# Move window with mod + hjkl keys
bind = $mod shift, h, movewindow, l
bind = $mod shift, l, movewindow, r
bind = $mod shift, k, movewindow, u
bind = $mod shift, j, movewindow, d

# Switch workspaces with mod + [0-9]
bind = $mod, 1, workspace, 1
bind = $mod, 2, workspace, 2
bind = $mod, 3, workspace, 3
bind = $mod, 4, workspace, 4
bind = $mod, 5, workspace, 5
bind = $mod, 6, workspace, 6
bind = $mod, 7, workspace, 7
bind = $mod, 8, workspace, 8
bind = $mod, 9, workspace, 9
bind = $mod, 0, workspace, 10

# Move active window to a workspace with mod + shift + [0-9]
bind = $mod shift, 1, movetoworkspace, 1
bind = $mod shift, 2, movetoworkspace, 2
bind = $mod shift, 3, movetoworkspace, 3
bind = $mod shift, 4, movetoworkspace, 4
bind = $mod shift, 5, movetoworkspace, 5
bind = $mod shift, 6, movetoworkspace, 6
bind = $mod shift, 7, movetoworkspace, 7
bind = $mod shift, 8, movetoworkspace, 8
bind = $mod shift, 9, movetoworkspace, 9
bind = $mod shift, 0, movetoworkspace, 10

# Move/resize windows with mod + LMB/RMB and dragging
bindm = $mod, mouse:272, movewindow
bindm = $mod, mouse:273, resizewindow

Config File: /home/mxaddict/.config/hypr/monitors.conf: Read Succeeded
# Generated by nwg-displays on 2024-08-10 at 22:22:45. Do not edit manually.

monitor=desc:ASUSTek COMPUTER INC XG27ACS S2LMTF053713,2560x1440@180.0,0x0,1.0

Config File: /home/mxaddict/.config/hypr/workspaces.conf: Read Succeeded

======Config-End========

Description
When running CS2 in fullscreen, resolution is correct, but image has black bar on right side
Running resolution 1920x1440 on a 2560x1440 monitor
When running in fake fullscreen, the image is correct (stretched)
How to reproduce
Run CS2 on fullscreen with a 4:3 resolution on a 16:9 display
Crash reports, logs, images, videos

Is there a way to set the app to fullscreen but also stretch the image?

Actually not sure if this is a hyprland issue, I just tested dota 2 and seems to be working fine, might be a cs2 specific issue

Closing as seems this is a cs2 specific issue and not a hyprland one.


Option to only emit declarations, no JavaScript

Expected behavior:
I'm able to consume only the .dts stream of a gulp-typescript stream.
Actual behavior:
I have to manually close the unused .js stream, if I only want the definitions.
Your gulpfile:
  const stream = gulp.src(inputs, { matchBase: true })
    .pipe(sourcemaps.init({ loadMaps: true }));

  if (!usingTypescript) {
    return stream
      .pipe(babel())
      .pipe(sourcemaps.write('.'))
      .pipe(gulp.dest(destinationFolder));

  } else {
    let gulpTypescript;
    try {
      gulpTypescript = require('gulp-typescript');
    } catch (e) {
      throw new PluginError('@codeverse/gulp-registry',
        'The TypeScript peer-dependency is missing, and `tsx?` is present in' +
        '\n    `transpileGlobs`. Either add the former, or remove the latter.');
    }

    const typedStream = stream
      .pipe(filter('**/*.{ts,tsx}'))
      .pipe(gulpTypescript.createProject('tsconfig.json', {
        declaration: true
      })());

    // Horrible hack, this time to discard the emitted JavaScript output
    typedStream.js.emit('end');

    return merge(
      typedStream.dts
        .pipe(gulp.dest(destinationFolder)),
      stream
        .pipe(babel())
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest(destinationFolder))
    );

Basically, I think we need the inverse of the declarations: option — an equivalent of tsc's --emitDeclarationOnly. (My personal use-case is that we have a set of separate, complicated build-systems; and we'd like to standardize on a single source-of-truth regarding as much configuration as possible. I'm trying to make sure that Babel is responsible for all JavaScript output, including stripping TypeScript extensions; I only want to use the TypeScript compiler as a static type-checker, and to publish typing information to npm. Hence gulp-typescript.)

That's strange, I would have expected that to just work. Especially since it works fine the other way around, if you only consume the .js stream. What happens without your hack? Does the stream pass all files but never closes, or does it not pass any files at all? Does merge have an influence on this, eg could you try to only return the definitions stream?

Unfortunately, I've lost access to the code in which I added this behaviour.
If you're unable to reproduce personally, feel free to close!

I am working with the same requirements (using babel to transpile to js and typescript only for types generation) and this is working for me to generate only the dts files:
return gulp.src(SRC_TS_FILES)
	.pipe(tsProject()).dts
	.pipe(gulp.dest(DEST));

But I was struggling a while until have it working. If I have the "emitDeclarationOnly": true, option in the tsconfig.json nothing is written using this plugin while running tsc from the command line works and generates only the .d.ts files. If I remove the option both behave the same way (i.e.: both .js and .d.ts are generated).
I'm not sure if this is related to the problem described here but I think this behaviour is at least confusing. As this plugin has another way to choose if we want the .js or the .d.ts files it could make sense ignoring the emitDeclarationOnly option to avoid breaking anything if it is included in the tsconfig.
Maybe the original problem was caused by another tsconfig option?

Working o the same situation, if i add option emitDeclarationOnly to my tsconfig.json nothing will be compiled. If i remove emitDeclarationOnly from my tsconfig, both files are compiled .jsx and .d.ts.
I'v tried the @kai670 solution .pipe(tsProject()).dts and it didn't work.
So i did a workaround very similar to @ELLIOTTCABLE, after compiling the .d.ts I delete de jsx manually.
Would be great if emitDeclarationOnly work as it works when um do a tsc --emitDeclarationOnly.

I was also experiencing this issue, so I did a bit of debugging and I believe the problem is due to this line of code: https://github.com/ivogabe/gulp-typescript/blob/d0410c2dc37cd4259689e4bc354a8ec68e779823/lib/compiler.ts#L197
When emitDeclarationOnly is on, then jsFileName === undefined, so the entire emitFile is skipped, and nothing is written to either the .js or .dts streams.
From looking at the history this was originally added as a fix for #416 in d4b8c1c, though it looks like the surroundings have changed a fair bit since then.
I'll see if I can figure out a solution and make a pull request. 🤞


Log when first succesful connection is made

There's no indication in the logs when a successful connection has been made. The exporter should log the first success so people know it was least works.

This issue has been addressed in v1.2.0.


neil new throws if there's no deps.edn file into which to add its data

I was experimenting with making deps-new templates that are aimed at babashka. These templates don't end up with a deps.edn file for neil to add an alias to (there's a bb.edn, but bb.edn doesn't use aliases afaik).
deps-new is quite happy to process one of these templates:
$ clojure -Sdeps '{:deps {bobisageek/bb-template {:local/root "./bb-template"}}}' -Tnew create :template bobisageek/bb-template :name bbt :target-dir bbt2 :overwrite true
Creating project from bobisageek/bb-template in bbt2

Using the template from neil works, but throws after deps-new runs:
$ neil new bobisageek/bb-template bbt2 --overwrite true --local/root "./bb-template"
Creating project from bobisageek/bb-template in bbt2
----- Error --------------------------------------------------------------------
Type:     java.io.FileNotFoundException
Message:  bbt2/deps.edn (No such file or directory)
Location: /home/linuxbrew/.linuxbrew/bin/neil:236:18

----- Context ------------------------------------------------------------------
232:
233: (defn ensure-neil-project [{:keys [dir deps-file]}]
234:   (let [deps-file (resolve-deps-file dir deps-file)
235:         _ (println "deps file:" deps-file)
236:         deps-edn (slurp deps-file)
                      ^--- bbt2/deps.edn (No such file or directory)
237:         edn (edn/read-string deps-edn)]

At first I thought, "well, bb.edn is sort of the deps-file in this case, and indeed, adding --deps-file "bb.edn" to the neil command line quells the error, but in a way, that's not an ideal outcome, because it adds the neil alias, and since bb.edn doesn't use aliases, it's a little superfluous.
The solution I had in mind is basically to swallow the exception, and if there's no deps file to which to add the alias, then :shrug: . I suppose there could also be an option to disable the call to assoc-project-meta! (which adds the neil alias), but that feels a bit "neither necessary nor sufficient" to me, because it says that a consumer needs to know that neil is going to try to add the alias (which isn't clear in neil new --help) and needs to sort of preempt the exception caused by the assumption of a deps.edn file.

The solution I had in mind is basically to swallow the exception, and if there's no deps file to which to add the alias, then 🤷

Seems good to me


Not possible to start the integration on my docker instance

Describe the bug
I removed Stephens integration and copy&paste your integration to the custom_components directory.
I tried to add your integration via the web interface, than I faced two errors.
At first there is a debug line in api.py which thrown an exception -> I commented out this line, than this issue was "solved".
Then I came to the next issue: cannot import name 'DeviceInfo' -> is this because I'm on a docker instance?
Attach the debug log
2024-08-27 10:54:17.124 ERROR (MainThread) [homeassistant.loader] Unexpected exception importing platform custom_components.solarman.config_flow,
Traceback (most recent call last):,
  File "/usr/src/homeassistant/homeassistant/loader.py", line 779, in get_platform,
    cache[full_name] = self._import_platform(platform_name),
  File "/usr/src/homeassistant/homeassistant/loader.py", line 796, in _import_platform,
    return importlib.import_module(f"{self.pkg_path}.{platform_name}"),
  File "/usr/local/lib/python3.10/importlib/__init__.py", line 126, in import_module,
    return _bootstrap._gcd_import(name[level:], package, level),
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import,
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load,
  File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked,
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed,
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import,
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load,
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked,
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked,
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module,
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed,
  File "/config/custom_components/solarman/__init__.py", line 14, in <module>,
    from .api import Inverter,
  File "/config/custom_components/solarman/api.py", line 250,
    ('succeeded.' if results[i] == 1 else f'attempts left: {attempts_left}{'' if attempts_left > 0 else ', aborting.'}'),
                                                                                ^,
SyntaxError: f-string: f-string: expecting '}',
2024-08-27 10:54:17.129 ERROR (MainThread) [homeassistant.config_entries] Error occurred loading configuration flow for integration solarman: Exception importing custom_components.solarman.config_flow,
2024-08-27 11:01:09.545 ERROR (MainThread) [homeassistant.config_entries] Error occurred loading configuration flow for integration solarman: cannot import name 'DeviceInfo' from 'homeassistant.helpers.device_registry' (/usr/src/homeassistant/homeassistant/helpers/device_registry.py),
2024-08-27 11:01:36.505 ERROR (MainThread) [homeassistant.config_entries] Error occurred loading configuration flow for integration solarman: cannot import name 'DeviceInfo' from 'homeassistant.helpers.device_registry' (/usr/src/homeassistant/homeassistant/helpers/device_registry.py),```

**Metadata:**
Version: HA 2023.3.0

**Additional context**
Add any other context about the problem here.

I remove also 'DeviceInfo' from api.py, than I getting the next failures from discovery.py
Something is really not working for me :(
Traceback (most recent call last):,
  File "/usr/src/homeassistant/homeassistant/loader.py", line 779, in get_platform,
    cache[full_name] = self._import_platform(platform_name),
  File "/usr/src/homeassistant/homeassistant/loader.py", line 796, in _import_platform,
    return importlib.import_module(f"{self.pkg_path}.{platform_name}"),
  File "/usr/local/lib/python3.10/importlib/__init__.py", line 126, in import_module,
    return _bootstrap._gcd_import(name[level:], package, level),
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import,
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load,
  File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked,
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed,
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import,
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load,
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked,
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked,
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module,
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed,
  File "/config/custom_components/solarman/__init__.py", line 15, in <module>,
    from .discovery import InverterDiscovery,
  File "/config/custom_components/solarman/discovery.py", line 109,
    (f'attempts left: {attempts_left}{'' if attempts_left > 0 else ', aborting.'}'),
                                                                    ^,
SyntaxError: f-string: f-string: expecting '}',
2024-08-27 11:22:13.441 ERROR (MainThread) [homeassistant.config_entries] Error occurred loading configuration flow for integration solarman: Exception importing custom_components.solarman.config_flow,```

Another Update from Stephan's version:
1.5.1 -> I get also an error like above
2024-08-27 11:32:20.418 ERROR (MainThread) [homeassistant.setup] Unable to prepare setup for platform solarman.sensor: Platform not found (cannot import name 'SupportsResponse' from 'homeassistant.core' (/usr/src/homeassistant/homeassistant/core.py)).
1.4.3 -> it is working well on my "old" HA Version
So I need to investigate my docker HA installation.

Your version of HA is shown as 2023.3.0. I would suggest you need to update to the latest version.

I know it's not anywhere stated but the integration is made for the "newest" version of HA.
As you can see you will find progressively more issues with older versions such are missing parts of the HA dev framework or even used older version of python itself.


PlatformException(CANCELED, User canceled login, null, null)

@okrad I'm having a hard time getting started with your library. I like it's simplicity. I setup a simple test project (https://github.com/phr34k/oauth-example), and am able to initiate the authentication workflow, but after it has authenticated it doesn't seem to redirect back to the app- when i go back to the app myself I'm hitting the PlatformException exception stating that the user cancelled the login
I have been going backwards and forwards over the instructions you provided but just I can't seem to get it working. Can you share any insights what I would need to do get google oauth working? I believe at least that I have followed all of your steps.
As you can see https://github.com/phr34k/oauth-example/blob/master/android/app/src/main/AndroidManifest.xml#L34 the activity and intends are clearly registered, together with custom scheme and redirect uri https://github.com/phr34k/oauth-example/blob/master/lib/main.dart#L20
What seems odd to me at least when I try to trigger the intent from the command line through adb shell nothing is happening either, when i moved the intend on purpose to the main activity and try to authenticate I am getting a redirect_uri mismatch, so it seems to suggest it does actually do /something/
I'd appreciate your thoughts if you can point me in the right direction.

Hi @phr34k, sorry for the late response!
It seems something has changed since the last time I used Google OAuth services...
From what I understand, the Bundle ID shouldn't be used anymore as the redirect uri custom scheme. Instead, you must use the "IOS URL scheme" as displayed in the Client ID edit screen. It should be something like com.googleusercontent.apps.XXX.
So, to instantiate the client you should do something like:
import 'package:oauth2_client/google_oauth2_client.dart';

OAuth2Client googleClient = GoogleOAuth2Client(
	redirectUri: 'com.googleusercontent.apps.XXX:/oauth2redirect', //Just one slash!
	customUriScheme: 'com.googleusercontent.apps.XXX'
);

Don't forget to set the <data android:scheme="com.googleusercontent.apps.XXX" /> in the AndroidManifest.xml intent filter!
Hope it can still be of any help!


Drawer issues with lazy loaded components

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Steps to reproduce 🕹
Link to live example: https://codesandbox.io/s/mui-drawer-with-lazy-components-yyg5n0
Steps:

click the button in the page to open the drawer
click a link in drawer to change route
sometimes the drawer won't close anymore

Current behavior 😯
Sometimes the Drawer seems to ignore the open prop and stays opened even if set to false.
Expected behavior 🤔
The Drawer should close if the open prop equals true
Context 🔦
We use the drawer as a sidebar navigation, each children is a react router <Link> pointing to a dedicated <Route> which will render a React.lazy loaded component.
The issues is not present using standard component imports.
Your environment 🌎

npx @mui/envinfo
  System:
    OS: macOS 13.3
  Binaries:
    Node: 18.15.0 - ~/.nvm/versions/node/v18.15.0/bin/node
    Yarn: 1.22.19 - ~/.nvm/versions/node/v18.15.0/bin/yarn
    npm: 9.5.0 - ~/.nvm/versions/node/v18.15.0/bin/npm
  Browsers:
    Chrome: 112.0.5615.121
    Edge: Not Found
    Firefox: 107.0
    Safari: 16.4

I can reproduce this, though I wonder if it can be reproed without react router 🤔

I can reproduce this, though I wonder if it can be reproed without react router 🤔

Hello @mj12albert , I updated the sandbox removing react-router, the problem is still present

This also seems to be the case for Menu in the same context as described above.

Any update on this? We are attempting to implement lazy loading in our application and this bug is preventing us from making that change.

The same issue.
Using:
"react": "18.2.0",
"react-router-dom": "6.10.0",
"@mui/material": "5.11.14"

This might be related to a Suspense/Lazy issue in React:

https://github.com/facebook/react/issues/26670
https://github.com/emotion-js/emotion/issues/3038 (EmotionJS)

+1 here :(

My fix was like this: when clicking an item to not do closeMenu() and navigate(path) in the same render. (you can put one of them in a setTimeout with a small time, but I didn't went like this.)
My solution was:
when clicking to navigate to the desired path (if the path is the current pathname just close the menu).
an effect listening for changes in the pathname that closes the drawer.
const location = useLocation();
 const { pathname } = location;

useEffect(() => {
   closeMenu();
 }, [pathname]);

 const onSelectItem = (path: string) => {
     if (path === pathname) {
       closeMenu();
       return;
     }
     navigate(path);
};

I'm experiencing an issue when routing to another page, the drawer closes, but the backdrop remains. If I click twice, it disappears and I don't see the behaviour again unless I do a full page refresh.

This works fine.
You can use a lower value for the setTimeout but 300 ms is safe for low speed loading.
  const navigate = useNavigate();
  const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
  const open = Boolean(anchorEl);

  const handleClick = useCallback((event: MouseEvent<HTMLButtonElement>) => {
    setAnchorEl(event.currentTarget);
  }, []);

  const handleClose = useCallback((url?: string) => {
    setAnchorEl(null);
    if (url) setTimeout(() => navigate(url), 300);
  }, []);

<IconButton
    aria-haspopup='true'
    aria-expanded={open ? 'true' : undefined}
    onClick={handleClick}
    color='inherit'
>
    <AccountCircle />
</IconButton>
<Menu
    anchorEl={anchorEl}
    open={open}
    onClose={() => handleClose()}
    anchorOrigin={{
        vertical: 'bottom',
        horizontal: 'center',
    }}
    transformOrigin={{
        vertical: 'top',
        horizontal: 'center',
    }}
>
    <MenuItem onClick={() => handleClose('/profile')}>
        <ListItemIcon>
        <Person fontSize='small' />
        </ListItemIcon>
        <T>Profile</T>
    </MenuItem>
    <Divider variant='middle' />
    <MenuItem onClick={() => handleClose('/logout')}>
        <ListItemIcon>
        <Logout fontSize='small' />
        </ListItemIcon>
        <T>Logout</T>
    </MenuItem>

</Menu>


Allow helper script to be sourced

Allow helper script to be sourced

Updated to Quote the $vrbl to resolve linter error

added error handling


feat(discv5): add crate for interfacing reth network and sigp/discv5

Makes sigp/discv5 usable in reth network by implementing minimal interface HandleDiscovery.
Parses enodes into multiaddresses (used by CL) that can be added into sigp/enr via public api.
Exposes sigp/discv5 api for filtering queries with custom filters, to narrow down lookup queries. this is necessary since mostly eth2 peers are found on discv5 rn. populating kbuckets with eth2 nodes will lead to almost inability to find EL peers if kbuckets become full, since by Kademlia, kbuckets favour long lived connections - this means it will keep the first nodes it puts in its buckets if those nodes stay online.

blocked by https://github.com/paradigmxyz/reth/pull/7328, missing TryFrom<Enr> impl

re-request review @Rjected

the uint, why are we defining new uint types?

because I copied a module from sigp/discv5, because I didn't want to invent smthg new to test the code, i wanted to use code that is used in production and is heavily audited. it's just a dev dep so I'm hoping it doesn't disturb you.

then this function should be pub crate

related to the point above, if libraries would just make functions public, code would seldom have to be copy pasted. I'm relecetuant to restrict visibility since I don't know in what way users may want to use reth, and want it to be as fun as possible for them. an inaccessible function doesn't spark joy.

they get all sent to the same service.
doing this on separate tasks is unnecessary.

yes, but they only get sent when the preceding query finishes if not spawned on separate threads.

the uint, why are we defining new uint types?

because I copied a module from sigp/discv5, because I didn't want to invent smthg new to test the code, i wanted to use code that is used in production and is heavily audited. it's just a dev dep so I'm hoping it doesn't disturb you.

let's remove the construct_uint call and use our U256, because Key logic is more important wrt testing imo

the uint, why are we defining new uint types?

because I copied a module from sigp/discv5, because I didn't want to invent smthg new to test the code, i wanted to use code that is used in production and is heavily audited. it's just a dev dep so I'm hoping it doesn't disturb you.

let's remove the construct_uint call and use our U256, because Key logic is more important wrt testing imo

alright sure, how do I do this with our type (need to re-write the copied sigp module so I can run the test)?
let a = U256::from(self.hash.as_slice());


Debug some players get through intro steps early

Running the experiment today, two players managed to get through the intro steps and start a game before the official launchdate. This may be because they participated in a previous game? Or something else.

Occurred again with empirica 1.9.0, 2 players managed to get around the countdown a few minutes early (one at 11:04 for a 1 pm game, another at 12:56).
This might be a problem, because it means that the player can advance to the lobby before they should, and then possibly drop from the lobby. Not sure if they would still be assigned to a game, but they wouldn't get a notification that the game was going on, and so may not be paying attention. Then the game would go on in the background without them participating.
The issue is probably because we are relying on the participants' local clocks to control the countdown component, but the countdown time is set for the universal time.
We already fire a server-side callback when players enter the countdown. We could include the client-side time in that, and then compute an offset with server-side time when the callback fires. It will be off by a little bit, but we can probably absorb that variation. Then the client side can include that offset in the time remaining calculation.

Added a separate clock coordination callback localClockTime, so that we could use it if necessary in other parts of the study. The most robust way would be to re-set it in every component that requires coordination of local clocks. Firstly, because we can't guarantee that it will have been called before (not every game has a countdown) and secondly so that we are paranoidly up-to-date with the current clock offset when we need to know it. Not important now, but could be if we move into longer running games.

Had this problem again today after we thought we'd fixed it:

The game was only supposed to be available at 1:00, so not sure what happened. We'll have to look at the data and see what the reported clock offset was.

Still open:


Convert to Jekyll

I'm going to leave this to you, @BenP51 to merge in. While there is a very minimal change to the front-end, the back-end is essentially rewritten from scratch.
Jekyll is an awesome blog generator, or template engine, or something (I don't remember what the actual description is). Basically, it allows you to do a lot of neat things with HTML that you would have to turn to PHP to do otherwise. (And Github Pages doesn't support PHP, unfortunately.)
Jekyll 101: Jekyll allows you to:

Define front matter. This is the key-value assignments fenced in by triple-dashes at the top of each page. You can define values here and reference them anywhere in the file using {{ page.<key> }}. You can also define things in _config.yml (which looks remarkably similar to the front-matter) and reference them through {{ site.<key> }}.
Define layout pages. Jekyll will find the file in the _layouts folder with the name that you put in the layout attribute of the front matter. So if you put layout: page, Jekyll would go find _layouts/page.html and insert the page's content into that layout.
Perform if-else, for, etc. For example, the list iterates over all of the pages that contain the given folder name in their URL. (The folder name is stored in the front-matter of each subject's index.html page. That's the other great thing about front-matter: you can pass values from page to template.)
There's a 75% chance I'm forgetting something, so you can find out what in the official docs.

If you happen to have a Mac or Linux box, you can also download Jekyll and build the site locally before pushing. Unfortunately, Jekyll isn't compatible with Windows, so I just have to commit and view through the web browser. (Trial-and-error with this method turns into a lot of commit spam, so I'll primarily work in my fork to avoid assaulting your inbox.)

Oh, also made a Twitter icon at the bottom of every page. Trade-off for the selected item in the menu not showing up, because I can't figure that out right now.

Example commit spam. All 10 of those commits, just to make the current page's item in the navbar light up again. And it still only works for the subject home page, not the pages with actual answers.

 This batch was shorter and more effective though: I fixed the link highlighting (albeit after removing the Home link), and fixed the Elemental Calculator. So, for now, I declare this PR ready to merge. On your mark, @BenP51.

I will try to get this working, but as of now it says I cant merge it. Using command line rn

Pretty sure its fixed. Tell me if its right.
If it is, I'll close. Thanks!

The commits you made are conflicting with mine. I'll try to resolve it.

All better.

Sweet
Sent by Outlook for Android
On Tue, May 26, 2015 at 3:42 PM -0700, "endreman0"<EMAIL_ADDRESS>wrote:
All better.

Reply to this email directly or view it on GitHub:
https://github.com/HomeHelp/HomeHelp.github.io/pull/3#issuecomment-105689894

By the way, the issue with the broken CSS issue is a problem with transferring between two sites. If you take a look at _config.yml in the main site and my clone, the url and baseurl attributes are different. This is prepended to every link, so having my config in your repository (or vice versa, which I'm working on fixing right now) breaks all the links to stylesheets and scripts.


Automated Package Upgrade

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Draft: add details to InstrumentModelEnum

See https://github.com/microbiomedata/nmdc-schema/discussions/2132
If we're going to use instrument_model as the search function for the data portal, we need to expand on the enum
Add title so it's not snake case and a description
@kheal @SamuelPurvine @corilo @turbomam

Another detail we could add is to include mappings the MS ontology for the mass spectrometry instruments - https://ontobee.org/ontology/MS?iri=http://purl.obolibrary.org/obo/MS_1000031.  The sequencing instruments have already been mapped to OBI ontology, but there aren't appropriate mappings in that ontology to the mass spectrometry instruments.


Add map declarations to the grammar

Adds support for declaring maps

There's some wild stuff in this language. I never noticed these while reading the docs. Thanks for the PR!


Cardano-node versions

Issue:
Execution of cardano-node does not return the version installed.
Solution/Feature request:
It would be helpful to have access to that piece of information before running it, as done for cardano-wallet for example.
ex.
  cardano-wallet-byron version
  2020.3.16 (git revision: 15d6b4e4d6a33fab19550581ddc967d2121ae537)

@psychomb cardano-wallet is another repo. I will transfer this issue to the correct one.


Adding "eXpandLib" using nuget return error

trying to add package eXpandLib to Winforms project result in the following
`
Attempting to gather dependency information for package 'eXpandLib.21.1.301' with respect to project 'XafTest.Win', targeting '.NETFramework,Version=v4.7.2'
Gathering dependency information took 1.07 min
Attempting to resolve dependencies for package 'eXpandLib.21.1.301' with DependencyBehavior 'Lowest'
Unable to resolve dependency 'akarnokd.reactive_extensions'. Source(s) used: 'nuget.org', 'DevExpress 21.1 Local', 'Microsoft Visual Studio Offline Packages'.
Time Elapsed: 00:01:04.2016575
========== Finished ==========
`

please use the packagereference format instead of the packages.config

trying to add package eXpandLib to Winforms project result in the following
`
Attempting to gather dependency information for package 'eXpandLib.21.1.301' with respect to project 'XafTest.Win', targeting '.NETFramework,Version=v4.7.2'
Gathering dependency information took 1.07 min
Attempting to resolve dependencies for package 'eXpandLib.21.1.301' with DependencyBehavior 'Lowest'
Unable to resolve dependency 'akarnokd.reactive_extensions'. Source(s) used: 'nuget.org', 'DevExpress 21.1 Local', 'Microsoft Visual Studio Offline Packages'.
Time Elapsed: 00:01:04.2016575
========== Finished ==========
`

Have you got this resolved ? I have the same issue .

tx,
gabor

packages.config is not supported use packagereference format instead

thanks took me a while that I need to convert the packaging in visual studio :) but worked !
g

Closing issue for age. Feel free to reopen it at any time.
.Thank you for your contribution.


State Abbreviations to Geo_Data

I think most countries put their state equivalent in the name of the address, but in the US we use abbreviations. @Arpan-206, on the API-side could you test for these abbreviations and set the us_state inside geo_data as that state?
Here's what that code may look like:
https://pastebin.com/smRiESKM

Done in commit f9b3c511e592c79867abf26d1905b02d486a312c.


Can't get the A2DP profile to use LDAC codec

Problem
I can't get bluealsa to use the LDAC codec for my Sony WF-1000XM5 earbuds. Only SBC seems to be working.
I've installed from the source using ../configure  --enable-ldac --enable-systemd, and had prebuilt ldacBT from the source as well, before compiling bluealsa.
Reproduction steps
$ bluealsa-aplay -L
bluealsa:DEV=XX:XX:XX:XX:XX:XX,PROFILE=a2dp,SRV=org.bluealsa
    WF-1000XM5, trusted audio-headset, playback
    A2DP (SBC): S16_LE 2 channels 48000 Hz

Setup

Ubuntu 22.04 LTS Server
the version of BlueALSA (v4.2.0-5-g9d73103)
the version of BlueZ (5.64)
the version of ALSA (1.2.6)
if self-built from source, please state the branch and commit
(9d73103 (HEAD -> master, origin/master, origin/HEAD) Create A2DP D-Bus path based on codec object), and the used configure options: --enable-ldac, --enable-ldac

Additional context
$ cat .asoundrc
defaults.bluealsa.interface "org.bluealsa"
defaults.bluealsa.device "XX:XX:XX:XX:XX:XX" # change this to your Bluetooth device address
defaults.bluealsa.profile "a2dp"
defaults.bluealsa.codec "ldac"
defaults.bluealsa.delay 10000

$ journalctl -u bluealsa
May 20 11:23:01 server systemd[1]: Starting BlueALSA service...
May 20 11:23:01 server bluealsa[726]: Couldn't get HCI version: Network is down
May 20 11:23:01 server systemd[1]: Started BlueALSA service.
May 20 11:35:40 server bluealsa[726]: Couldn't set A2DP configuration: Extra A2DP endpoint not available
May 20 11:35:40 server bluealsa[726]: Couldn't select codec: LDAC: Input/output error
May 20 11:40:52 server bluealsa[726]: Couldn't set A2DP configuration: Extra A2DP endpoint not available
May 20 11:40:52 server bluealsa[726]: Couldn't select codec: LDAC: Input/output error

Could you share the output from bluealsa-cli info <pcm_path> ?

Seems like bluealsa-cli didn't installed in the process. How do I install it?

$ bluealsa-cli info /org/bluealsa/hci0/dev_XX_XX_XX_XX_XX_XX/a2dpsrc/sink
Device: /org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX
Sequence: 0
Transport: A2DP-source
Mode: sink
Running: false
Format: S16_LE
Channels: 2
Sampling: 44100 Hz
Available codecs: SBC
Selected codec: SBC
Delay: 190.0 ms
DelayAdjustment: 0.0 ms
SoftVolume: true
Volume: L: 127 R: 127
Muted: L: false R: false

Available codecs: SBC

It seems that your end-device does not support LDAC. Or LDAC was not enabled in bluealsa service. It has to be enabled on command line when running service: bluealsa -c ldac

It seems that your end-device does not support LDAC
This headset supports LDAC 100%

It has to be enabled on command line when running service: bluealsa -c ldac

rhqp@hqpe-nuc:~$ bluealsa -p a2dp-source -c ldac
bluealsa: E: Couldn't acquire D-Bus name. Please check D-Bus configuration. Requested name: org.bluealsa
```

bluealsa: E: Couldn't acquire D-Bus name. Please check D-Bus configuration. Requested name: org.bluealsa

I assume that you are running bluealsa as a system service. In such case you have to add this -c ldac option to bluealsa systemd file. If you are compiling this project from source, you can use --with-systemdbluealsaargs in the configuration step (or use sudo systemctl edit bluealsa). The default is --with-systemdbluealsaargs="-S -p a2dp-source -p a2dp-sink", so modify it as: --with-systemdbluealsaargs="-S -p a2dp-source -p a2dp-sink -c ldac"
And one last thing to confirm. Check whether LDAC is available as A2DP source codec. See output from bluealsa -h. There should be something like:
...
Available BT audio codecs:
  a2dp-source:  SBC, LDAC
  a2dp-sink:    SBC, LDAC
...

However, LDAC works only when I pass -p a2dp-source as parameter and not both -p a2dp-source and -p a2dp-sink. Is it because LDAC isn't available as a2dp-sink codec in my case?

To be honest, I'm not sure. I've just checked and it seems that everything should work properly in that case... What is the outcome when both a2dp-source and a2dp-sink are specified? Earbuds does not connect with your host, or maybe they connect but the audio does not work?

One more related question: the file /etc/dbus-1/system.d/bluealsa.conf wasn't created

If you are installing bluez-alsa from source, it should be in /usr/share/dbus-1/system.d/ by default. D-Bus should read it from there. The /etc/dbus-1 is for distribution provided config (override for upstream config).

If you are installing bluez-alsa from source, it should be in /usr/share/dbus-1/system.d/ by default

I've just checked the manual page and the troubleshooting guide and they are both still saying /etc/dbus-1/system.d, so they both need updating. I can do that it you wish.

I've just checked the manual page and the troubleshooting guide and they are both still saying /etc/dbus-1/system.d, so they both need updating. I can do that if you wish.

To be honest I'm not sure what manual and troubleshooting guide should say about that. For sure, installation from source should be based on upstream. However, consider scenario where bluez-alsa is packaged by distribution and in such case override config is stored in /etc. Then, modifying config in /usr will do nothing... So, I'm all up to your gut feelings about that :D If you think that it will be better to update docs, then please do that.

D-Bus should read it from there

It does indeed as I deleted bluealsa.conf from  /etc/dbus-1/system.d and everything is working fine.


Create tunnels

Add the ability to create tracks with tunnels, like the ones in the base game or with a custom prefab.

https://assetstore.unity.com/packages/tools/terrain/digger-terrain-caves-overhangs-135178
The only unfortunate thing..... not compatible with the 2019.4.40 version we use..........

Since i have requested help on a few issues, i thought this would be appreciated.
I have made a tunnel, yes, its only a straight and short one, but it works, might look a little dull, but hey beggars can't be choosers right?

If you happen to be interested in how i made said tunnel i will be happy to share.
Also if i can figure out how to package it id send it too.

Can a train pass through them?

Oh yes they can quite well too.
The only slight issue at the moment is that the interior terrain has no mesh colliders, so if you walk through the tunnel stay on the tracks.

Not sure how DV does it but you could try placing box colliders along the edges (automatically of course).
I think DV simply has the holes in the terrain then extrudes a mesh along the track to make the tunnel, but don't quote me on that.

Yeah I'm adding in box colliders, 2d for the walls and 3d for the roof and floor, will let you know how it goes.

Tunnel works fine, 3d colliders for roof, floor and walls.
I do have a 150mb clip of the de6 with a load going through the tunnel, any idea how to upload?

Upload to Youtube, make it unlisted, post a link here

I've had this on the project board since April, I just forgot to turn it into an issue. The ideal implementation would allow you to simply run the track as you'd like and any parts of it that are fully underground would automatically be turned into tunnels.


[Docs]: Create a secrets YAML reference page

Type
New content idea
What do you want to report?
Create a secrets YAML reference page
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Review link: https://storage.googleapis.com/sem-docs/main/index.html#/docs/reference/secret-yaml


15 Swift Compiler Errors

I am trying to include SwiftCharts in a small graphing app targeted at iOS 8 or later.
Swift Chart is the only library beyond UIKit in my app. I am programming in Swift.
I installed CocoaPods, and linked to the SwiftCharts pod without trouble. The same issues arise on versions 0.1 and 0.2.
Console output:
(Thanks in advance for your help)

I am using XCode 6.1 in OS 10.9.5

This library uses Swift 1.2. You have to use XCode 6.3.


Explode: height / width vs outerHeight / outerWidth

This is meant to start a discussion on the use of jQuery .width() and .height in the explode animation (also present in flyTo). Was there a specific reasoning behind choosing these two methods instead of outerWidth() and outerHeight?
To give some context as to what prompted this question, I am displaying a list of items in a <ul>. Using liquid-with, I am animating items with the explode transition when the user applies filters. The issue is that my list items have padding, and the use of width() and height() cause "jerky" animations, because the real width / height are applied after the animation is over, causing the item to "snap" into place.
I feel that with the widespread use of border-box, padding and border are taken into account in the width / height calculation for elements most of the time. That being the case, it would make sense to me to use outerHeight and outerWidth in these transitions.
If the current version needs to be kept, perhaps we can add an option that would allow the outer method to be called?
Open to ideas, or someone telling me why this is a horrible idea :smile:

I think you're right, it's just an oversight that I'm using width instead of outerWidth in these two transitions. We should switch.

Closed via 8622f078a9558bd08ed4786dc9051158f0738f23


[Impeller] MacOS+SwiftShader doesn't render

In order to get some Vulkan validation checking on CI, we'll need to use Swift Shader (Software Rendering). However, as of HEAD (https://github.com/flutter/engine/commit/d0ff708bdf17d0f4758a2acf616f6308af77a8c3 at time of writing), there are two problems with Vulkan+Swift Shader on MacOS hosts (which I can also reproduce locally):

Asynchronous presentation causes a timeout
Even with synchronous presentation, the image is blank

There is a some more information here:

https://github.com/flutter/flutter/issues/133506#issuecomment-1722098909
https://github.com/flutter/flutter/issues/126022#issuecomment-1541039713

It's likely the issues are same (nothing is being drawn).

To reproduce (remember, MacOS host - and I only tried ARM64):
# Assuming you're in $ENGINE/src/flutter

# GN
./tools/gn \
  --unopt \
  --mac-cpu arm64 \
  --enable-vulkan-validation-layers \
  --enable-impeller-vulkan \
  --target-dir=host_debug_impeller_vulkan \
  --no-stripped

# Ninja
ninja -j1000 -C ../out/host_debug_impeller_vulkan impeller_unittests

# Make sure this path is right, if not you'll silently use MoltenVK, which works fine.
ls ../out/host_debug_impeller_vulkan/vk_swiftshader_icd.json

# Run, providing Swift Shader, and enabling validation.
VK_ICD_FILENAMES=../out/host_debug_impeller_vulkan/vk_swiftshader_icd.json \
  ../out/host_debug_impeller_vulkan/impeller_unittests \
  --gtest_filter="Play/AiksTest.*/Vulkan" \
  --playground_timeout_ms=1000 \
  --enable_vulkan_validation

I'm filing this issue so we can at least get validation coverage (https://github.com/flutter/engine/pull/45918).

MacOS+SwiftShader does work for at least the golden tests.  The big gap was making sure the interactive tools don't break since chinmay was relying on them to iterate quickly.  I was going to suggest maybe we just look at making the the interactive tests use moltenvk since that's how people are using them anyway.  I'm not sure if that is possible though on CI.

Maybe they have GPUs? Do any modern Mac hosts, even on CI, not?

Maybe they have GPUs? Do any modern Mac hosts, even on CI, not?

Yea they have to, especially if they are arm64 since it's physically attached to the cpu.  I think the setup and licensing of moltenvk are more of blockers.

@zanderso I'm re-assigning this to you just to figure out if there are issues with installing MoltenVK on CI. Please re-assign back, and @gaaclarke and I can take over setup/switching over, if necessary.
@gaaclarke If SwiftShader software rendering doesn't work, and won't, should be just error out/fail instead of doing nothing?

@gaaclarke If SwiftShader software rendering doesn't work, and won't, should be just error out/fail instead of doing nothing?

Swiftshader does work with the golden image tests.  Sorry, what I meant is that I ran into that problem and I fixed it.  That's why the golden image tests work today.

Got it, thanks for clarifying!

For CI (and locally as well), we can put the releases like https://github.com/KhronosGroup/MoltenVK/releases/tag/v1.2.5 in CIPD, and pull them with the DEPS file under e.g. flutter/prebuilts.

I ran into this issue when I tried to run our screenshot test in the iOS simulator with the 3.16.x.
Here's the failed job link
https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/actions/runs/7016067696/job/19089615557?pr=1451

This works now, but you have to run with the cwd as the build output directory so we can find the swiftshader binary.


Service instance labeling

Hi,
Following this issue: https://github.com/spring-cloud/spring-cloud-open-service-broker/issues/311
Regarding support for the labeling service instances.
I saw that in OSB master, fetching a Service Instance returns also the metadata
https://github.com/openservicebrokerapi/servicebroker/blob/master/spec.md#fetching-a-service-instance
Is this implementation planned for the next release?
Thanks,
Zohar.

Hi,
I have an implementation ready here:
https://github.com/zoharyehezkely/spring-cloud-open-service-broker/commit/f7650699631079ecf47a7bee3e693258d2aef475
Can someone assist with merging it to master?
Thanks,
Zohar.

I have created a PR here:
https://github.com/spring-cloud/spring-cloud-open-service-broker/pull/349

@zoharyehezkely thanks for the PR. It appears that change to the response body for fetching a service instance is not part of OSB API 2.16. Because it hasn't been released as part of a versioned specification, we can't include yet. Anything that is unreleased in master can potentially change, even if unlikely. We'll be happy to merge this once it is included in a released spec.

@royclarkson - Any idea when the next OSB release is due?
Thanks,
Zohar.

Hi @royclarkson,
There is a PR for OSB API 2.16 waiting for reviewers:
https://github.com/openservicebrokerapi/servicebroker/pull/751
I was told there are 2 people on the committee from vmware.
Can you check from your side if it is possible to notify them for assistance here?
Thanks,
Zohar.

Hi @royclarkson
OSB 2.17 has been released.
https://github.com/openservicebrokerapi/servicebroker/tree/v2.17
Regards,
Zohar.

Hi,
Any updates with this issue?
Regards,
Zohar.

Hi @royclarkson
Any new updates on this issue?
Thanks,
Zohar.

@zoharyehezkely we have to finalize the OSB 2.16 support first in a release, and then I'll get this added for future 2.17 support. It will probably be a version 4.1. Thanks for your patience.


Remove outdated 'main-tabbed' UI

Automated message from Dropbox CLA bot
@borisyankov, it looks like you've already signed the Dropbox CLA. Thanks!


Bundle NixOS images we build with a channel pointing at the nixpkgs that built them

Without this, you can't call nixos-rebuild switch and friends on a custom NixOS image without downloading a ton of stuff and aligning yourself to an official release of NixOS.
I've got some prototype code that does this but it's kind of unpleasant to work with, because with every change you make to your repository, you have to rebuild the image. If anyone has ideas on how to make this better, I'd love to hear them!

When you change the repository files, you do need to change the channel, don't you?

I don't understand. Our ISO images already contain a channel. See https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/cd-dvd/channel.nix.

@edolstra ah, that's exactly it. I think we just need to factor out more common image-building code (something I've already been doing in a private branch), because the EC2 image doesn't get that and I didn't even realize it existed. I'll close this ticket and try to use a similar pattern, thanks!


For Android  java.lang.nullpointerexception

Hello!
Help me please. I have a problem with the project on Android.
I kind of connected everything correctly, but this error does not go away:
http://joxi.ru/n2Ykk90FoYa5Qr
http://joxi.ru/Q2Kpp9qF4zQdlA
Compilation options: http://joxi.ru/8An66kNsjB4RLA
http://joxi.ru/KAxzzlMhMWD8Jm

Have you tried this on an emulator or real device? I think xamarin previewer doesn't support custom renderers.

I'm closing the issue as no further response from user. Feel free to re-open if you run into issues around this again or there are further comments.


Exit code should indicate status of results

It would be nice if exit code for reviews that indicate warnings or failures to exit with a non-zero code so that it integrates nicely with build tooling.

Hi @mixmatch, thanks for your comment. Can you please give me an example to better understand your use case?

I want to run this daily in Jenkins and have the build fail if there are warnings in the results. Currently the script always exists with 0 status.

Examples:
https://support.smartbear.com/testcomplete/docs/working-with/automating/command-line-and-exit-codes/exit-codes.html
https://llvm.org/docs/CommandGuide/lit.html
https://github.com/FriendsOfPHP/PHP-CS-Fixer#exit-codes

Here is how I did it to suit my own needs. Might want a cleaner implementation if you decide to do this:
https://github.com/Alfresco/prowler/compare/master...mixmatch:master

ok, thanks @mixmatch I'll take a look and see what can I do :)

Hi @mixmatch you can check now that enhancement. For max items, instead of removing the option you can just use option -m 1000 for example. I'll close this case, don't hesitate to open it again if it doesn't work properly for you.


catch default config init errors

Constructing a NewConfig with source options can panic in certain situations due to the default config constructor not handling Init() errors.
Example: trying to load a non-existent file source
  1 package main
  2
  3 import (
  4   "github.com/micro/go-micro/v2/config"
  5   "github.com/micro/go-micro/v2/config/source/file"
  6 )
  7
  8 func main() {
  9   c, err := config.NewConfig(config.WithSource(file.NewSource(file.WithPath("thisdoesnotexist"))))
 10   if err != nil {
 11     panic(err)
 12   }
 13
 14   c.Map()
 15 }

calling Map() panics because config.vals is nil
$ go run main.go
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x30 pc=0x1599c70]

goroutine 1 [running]:
github.com/micro/go-micro/v2/config.(*config).Map(0xc000168280, 0x0)
	/Users/colinhoglund/go/pkg/mod/github.com/micro/go-micro/v2@v2.7.0/config/default.go:134 +0x70
main.main()
	/tmp/microtest/main.go:14 +0xdb
exit status 2

Our config loading is a background process so we don't really want to do this. The file might appear in future as opposed to being there right now. Ideally we just want to address the panic.

Our config loading is a background process so we don't really want to do this. The file might appear in future as opposed to being there right now. Ideally we just want to address the panic.

Gotcha, I didn't notice that nil vals were being handled elsewhere in the package. Does it make more sense then to simply check for nil wherever vals is used?
something like
	if c.vals != nil {
		return c.vals.Map()
	}

	return make(map[string]interface{})

Yea I think its important to ensure vals is not nil but we can maybe just pre-initialise someting so it doesn't have to be evaluated everywhere

@asim Thanks for the feedback!
I dug a little deeper and it looks like the Init() error was coming from the c.opts.Loader.Load(c.opts.Source...) call, which would explain why vals is not being initialized.
https://github.com/micro/go-micro/blob/3d36398818f4f9f646b2e2f0268eec27922a1ccb/config/default.go#L52-L65
I pushed a new commit that gathers errors during Init() rather that returning immediately after failure. Let me know if this looks better.

I pushed a new commit that gathers errors during Init() rather that returning immediately after failure.

@asim Any thoughts on this approach?

Two things here.
Firstly, if Init() errors I wouldn't expect anyone to try and do anything else with it. Carrying on and collecting all the errs feels like non-obvious behaviour. So on that basis I'm inclined to not merge this PR.
Secondly, as you've seen NewConfig() doesn't return error ever. This is on purpose as the other New* funcs across the framework don't return errors either. BUT NewConfig() actually has error in its return signature which is wrong. We'll add a note to the func to let users know this is the case and we'll remove it from the sig in the next major release as a breaking change.
For you @colinhoglund I think you're best to do the init yourself and do essentially what NewConfig() is doing yourself but check for errors from Init
var c config
c.Init(opts...)
go c.run()

Carrying on and collecting all the errs feels like non-obvious behaviour

I totally agree, I noticed this used elsewhere in the code base so I figured I'd commit it as a suggestion since it seemed better than an unhandled panic.

I think you're best to do the init yourself

Thanks, this works for my use case to avoid running into a panic. So if this doesn't seem like something worth fixing feel free to close this PR.

Thanks for the understanding, will be closing rather than merging.


Multiple portbindings to 1 new container

Hey guys,
I want to run a container with multiple portbindings, with the CLI it would be "-p 8120:80 -p 9120:443 ".
How do i translate this into code?
I have this in HostConfig = new HostConfig() {

}
Portbindings only accepts 1 Dictionary ... how can I add a second one for "443"?
Thanks for you help!

Yes it's one dictionary but a dictionary can have multiple items ;)
Create a dictionnary with all your entries and then set PortBindings.
For example I have this kind of code on my side to do the same job:
`
private Dictionary<string, IList> GetPortBindings(List portCouples)
{
var portBindings = new Dictionary<string, IList>();
        foreach (var port in portCouples)
        {
            portBindings.Add(port.InternalPort, new List<PortBinding> { new PortBinding { HostIP = "<IP_ADDRESS>", HostPort = port.HostPort } });
        }

        return portBindings;
    }

public class PortCouple
{
public string HostPort { get; set; }
public string InternalPort { get; set; }
public PortCouple(string hostPort, string internalPort)
{
HostPort = hostPort;
InternalPort = internalPort;
}
}
`
So on you sample you can do something like this:
var portBindings = new List<PortCouple> {       new PortCouple(8120, 80),       new PortCouple(9120, 443) };
then just set PortBinding property with this list.

@alexandreberton Thank you very much, solved my issue!


Unify container types.

Coverage decreased (-0.3%) when pulling d4dc8af5733c06a4838634b197f20460f170a1f6 on mh/misc-fixes into e9faff95e990d107be612e77cdec6201a406860e on master.


silx.gui.plot: Updated BandROI item

This PR addresses post-merge comments on PR #3680 (https://github.com/silx-kit/silx/pull/3680#issuecomment-1282635661 and https://github.com/silx-kit/silx/issues/3638#issuecomment-1284199029), it:

Adds some basic tests
Changes the rotation center from the center of the ROI to the other edge
Inherits from InteractionModeMixIn in order to integrate the bounds mode change with context menu, click on selection ROI,.... This also allows to extend later for half-bounded ROI.

I also added a setAvailableInteractionModes so from the code, one can force the user to do either bounded or unbounded ROIs. This can be put in the InteractionModeMixIn so the ArcROI can also benefit from it.. but being close to the release I choose not to change the existing ROI, this can be done later if needed.
attn @kklmn

Hi,
I've tested the latest BandROI. Looks good. Pulling one end behaves as expected. Clicking on the handles to toggle the bounded state is lovely.
A suggestion: dragging with Shift pressed should orient it to the nearest 'round' angle: 0, 45 or 90.
Thank you for adding new features!

Added support of the Shift key modifier, ready for review.

Tested. Works beautifully!

Hi,
I've just found one problem with the latest update of rois: plot.clearImages() also clears roi lines (only lines, not roi handles), and I think it shouldn't. At least it didn't in v1.0.0.


Can not modify two different Listen directives

Hello,
In a default apache 2.4 ports.conf there is those directives:
Listen 80
<IfModule ssl_module>
	Listen 443
</IfModule>

As it's redefined elsewhere in our confs, I wanted to drop them both:
  apache_directive { 'Listen80':
    ensure => 'absent',
    name   => 'Listen',
    args   => '80',
    target => '/etc/apache2/ports.conf',
  }

  apache_directive { 'Listen443':
    ensure  => 'absent',
    name    => 'Listen',
    args    => '443',
    target  => '/etc/apache2/ports.conf',
    context => 'IfModule[arg="ssl_module"]',
  }

Unfortunately, with or without args, it gives an error on puppet execution:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Evaluation Error: Error while evaluating a Resource Statement, Cannot alias Apache_directive[Listen443] to ["Listen"] at apache.pp:112; resource ["Apache_directive", "Listen"] already declared at apache.pp:105 at apache.pp:112:3 on node XXX

raphink on irc told me to open an issue, comment:
"probably not planned in the composite namevar"

This should be fixed by 183289f5751984692a1b55be9124a3e4be63076b