Updating Approval Workflow causes LHN to fall out of sync between devices

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

Version Number:
Reproducible in staging?:
Reproducible in production?:
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?:
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @AndrewGable
Slack conversation: https://expensify.slack.com/archives/C05LX9D6E07/p1729272573928429
Action Performed:
Break down in numbered steps
Use the app normally on native ios and on web at the same time throughout the day
Expected Result:
Describe what you think should've happened
The LHN on both platforms will remain in sync
Actual Result:
Describe what actually happened
Some reports are showing as unread on mobile while they do not show up in web
Seems like the only difference between the native mobile and web onyx version is that on native the report data includes the state property whereas the web version does not.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

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

[ ] Android: Standalone
[ ] Android: HybridApp
[ ] Android: mWeb Chrome
[ ] iOS: Standalone
[ ] iOS: HybridApp
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

Add any screenshot/video evidence

View all open jobs on GitHub
Issue OwnerCurrent Issue Owner: @tgolen

Hi, I'm Viktoryia from Callstack - expert contributor group - and I would like to work on this issue.

Ah good to know! Are you able to pinpoint any API responses or pusher events that are leading to those mis-matches?

Reproduction steps:
Pre-steps:

Open the desktop app and login User A-Admin.
Open the web app and login as User B.
Open the ios app and login as User B, close the ios app.
Open the web app in incognito mode and log in as User C.

Steps:

From User A
1.1 create a workspace
1.2 add User B and User C as members
1.2 enable Workflow feature
1.3 turn on approvals and make the User B approver.
From User B submit the expense to the workspace.
See that for User B the expense appeared in the LHN.
From User A, remove the User B as approver and set the User A as approver.
See, that for User B in the web the expense disappeared in the LHN. It's cleaned out by the pusher update:

As User B, go to the Search tab, the expense will be displayed there -> open it. After that it will start to be shown in the LHN on the web.
Open the ios app where we logged in as User B as well. There will be no expense in the LHN. This way the LHN on web and ios looks different.

The video with all of the steps:
https://github.com/user-attachments/assets/578877bf-1910-4afc-9cda-94fe0d741f19

@Beamanator Since you were working on the related functionality, could you please take a look at the comment above? I think the expense report shouldn't disappear from the LHN in this case and should be get by the app if user opens the app.

Update: waiting for @Beamanator thoughts based on the investigations above

Note: I'm going to be OOO Oct 31-Nov 3 🌴

@VickyStash sorry but can you tell me the exact workspace settings (collect vs control, delayed submission, approval mode) before you started step 2 here?

@Beamanator

Type: Collect
Delayed submission is off
Approval mode: Advanced

Note, I've added a small correction in the step 2

Thanks for the update @VickyStash !
Honestly I don't think ADVANCED approval mode should even be allowed for TEAM / Collect policies!! Right @garrettmknight @puneetlath ?? 😅
@VickyStash can you please let me know the steps you took to get to that stage so we can get that fixed first?? 😅

@VickyStash can you please let me know the steps you took to get to that stage so we can get that fixed first?? 😅

@Beamanator sure, in the new dot:

Create a new workspace.
Open More features and enable Workflows (turns policy areWorkflowsEnabled flag into true)
Go to the Workflows section.
Turn on Approvals toggle. At this stage we have BASIC approval mode.
Got to the Members section and add 2 more members.
Go to Workflows section.
Change approver to not admin member. <- this update turns approval mode in ADVANCED.

Honestly I don't think ADVANCED approval mode should even be allowed for TEAM / Collect policies!! Right @garrettmknight @puneetlath ?? 😅

Hm, yes, as far as I'm aware, that shouldn't be possible. I don't see the option to set that approval mode on Collect policies in the product. Do you?

I don't see the option to set that approval mode on Collect policies in the product. Do you?

In NewDot you're right, I do not 🤔  I think right now the main options are for Collect:

Approvals off = Submit & Close
Approvals on = Submit & Approve

But maybe we accidentally allowed turning on approvals & setting advanced approvals for collect workspaces?

Hm, yes, as far as I'm aware, that shouldn't be possible. I don't see the option to set that approval mode on Collect policies in the product. Do you?

@puneetlath @Beamanator As I mentioned above, the approval mode automatically turns into ADVANCED for Collect policies if I set a non-admin user as an approver in the New Dot (API returns these updates).
So the user just changes the approver, and the mode updates automatically due to the mentioned change.

Ok I was planning to look into the fix myself, but it looks like there's a test testPolicyApprovalModeIsUpdatedWhenApprovalsAreUpdated that specifically allows for this to happen 😅
@tgolen can you please comment on if you believe this is supposed to be allowed (a Team / Collect policy on Advanced approvals)? AFAIK, Advanced approvals is a Control policy feature.

When I added the SetWorkspaceApproval command, I only restricted it to paid policies, so that approvals could be set for either collect or control policies. Maybe that was wrong and it should only be restricted to control? I am not sure, but @JmillsExpensify should know.

bumped in slack - https://expensify.slack.com/archives/C06ML6X0W9L/p1731060374967819

Ok got confirmation in slack that Advanced approvals are a Control feature. 👍
@tgolen do you mind working on that fix? Hopefully will be quick since you have context on those commands

We are waiting for the fix from the internal engineer. I guess @tgolen is going to take a look at this problem.

I just submitted a PR to fix the approval mode today. I'm guessing it will get deployed to production in 1-2 days.

The PR is https://github.com/Expensify/Auth/pull/13108 and no, it hasn't been merged yet. It looks like it should merge today and then deploy tomorrow, Fri Nov 15

@tgolen Sorry, I don't have access to the PR you mentioned. Has it been deployed yet?

No, it hasn't been merged or deployed yet.

The PR has been merged now. It should be deployed on Monday if everything goes normally.

Still awaiting auth deploy I think

Will there be a front-end component to the fix here too? Or is the back-end PR all that's needed?

I'm not sure. Once the backend fix has been deployed (it still is not deployed yet), I think we should re-evaluate the bug.

@tgolen were the updates deployed, should I retest the issue?

It has been deployed now, yes. Can you please retest it?

Okay, so what I see right now:

The approval mode is Basic, even if I change the approver to non-admin user, so this is fixed ✅ The only thing I want to confirm is how it looks in the app (2 blocks are displayed in approvals, see the screenshot/video, is it expected)?

Video
https://github.com/user-attachments/assets/71455147-7c03-48a2-bc26-ff36b048c47c

If I change the approver, the expenses don't clean out from the LHN by the pusher for the previous approver anymore. ✅

But, the expenses are not displayed in the LHN after re-login, no matter if I was removed as an approver or not.
They are shown only when I open them from the Search page.

Video
https://github.com/user-attachments/assets/1258e773-90d8-4e06-9d05-083e0db80b8f

It happens cause OpenApp API call doesn't provide the necessary report. It's received only when OpenReport for report on the Search page is called.

The only thing I want to confirm is how it looks in the app (2 blocks are displayed in approvals, see the screenshot/video, is it expected)?

No, this is not expected. I am not able to reproduce this locally 🤔 so it must be some weird glitch you are experiencing. Can you try setting up the workspace fresh again and see if you can still reproduce it? See this video:
https://github.com/user-attachments/assets/97f7c324-daa5-45c8-bc3f-cc18f1bdbc97

It happens cause OpenApp API call doesn't provide the necessary report. It's received only when OpenReport for report on the Search page is called.

Can you clarify what you mean when you say "OpenApp API call doesn't provide the necessary report"? What report are you expecting it to have?

But, the expenses are not displayed in the LHN after re-login, no matter if I was removed as an approver or not.

I'm not sure what to make of the "no matter if I was removed as an approver or not" part.
Can you boil each of the problems down to a clear set of reproduction steps and an expected/actual outcome?

Issue:
Two approval flows are shown in the section if I change the approver to non-admin member.
Notes:
User<EMAIL_ADDRESS>Policy: AF12F09BA5B3DCEC
Steps:

Create a new account.
Create a new workspace.
Turn on Workflows feature.
Add two members.
Go to Workflows page and turn on approvals toggle.
Update the approver to be non-admin member.
Wait a couple of seconds, see the extra block in the approvals section.

https://github.com/user-attachments/assets/d3c1e858-cc5e-420b-8500-6a846ab2175b
Reason for showing the second block
In my example:
<EMAIL_ADDRESS>- workspace admin
<EMAIL_ADDRESS>- non admin member, which was assigned as an approver
After I set the<EMAIL_ADDRESS>as an approver , the approver field inside policy changes to<EMAIL_ADDRESS>as well.
But inside employeeList every user submits to<EMAIL_ADDRESS>
So the app adds a second block:
https://github.com/Expensify/App/blob/2166dffba5b3f0283d5cf2d9f0b700749c8fdcf1/src/libs/WorkflowUtils.ts#L163-L171

Issue:
Non-admin approver doesn't see expense to approve in LHN after re-login.
Steps:
We will have 3 users: Admin, Submitter, Approver

Login as Admin, create a workspace.
Turn on workflows feature.
Add Submitter and Approver as members of the workspace.
Turn on approvals on the workflow page. Set Approver (non-admin user) as the approver.
Login as Approver on one device and as a Submitter on another one.
As a Submitter - submit the expense inside a workspace.
As the Approver - see that the expense appeared in your LHN:

Log. out from Approver account and login again, see that no expense in LHN is displayed anymore.

https://github.com/user-attachments/assets/7db2485e-a5c3-41c2-adae-536498d21565
Note: if you go to the Search page and open expense there - the expense will start to be displayed in the LHN as well. You can see it in the video above
Reason for not showing expense report to approver after re-login
The Expense Report that I expect to see as<EMAIL_ADDRESS>user is the one with the id:<PHONE_NUMBER>94357 (you can see it on the screenshot above) in the step 7.
But I don't get it inside OpenApp API command:

Due to this it's not displayed in the LHN after re-login.

@tgolen I've added step by step description of both issues above, let me know if you need anything else!

Thanks, I think that first one has already been fixed, but maybe it just hasn't deployed yet. I'm going to wait until next week to see if I can reproduce it in production.
@garrettmknight I know you've been working on polishing these flows too. Have you seen the problem Vicky reported here?
I am a non-admin approver on our Expensify-US policy, and I haven't experienced this I don't think. If I log out and log back in, I still see the reports I need to approve in my LHN. I don't have any reports to approve right now, but when I do, I'm going to try and reproduce this. This one sounds difficult to debug, but reproducing it is a start.

OK, I just had a report to approve, so I logged out, logged back in, and it was still showing in my LHN 🤔 so there must be something else going on...

I will attempt to reproduce it in my local environment today according to your steps and report back!

Daily Update

I was able to reproduce this locally. So, that's the first step!
I have absolutely no idea what causes it

Next Steps

@tgolen dig into OpenApp locally to debug why the report isn't being returned

ETA

I ran out of time today, so I will probably start this tomorrow and have a better ETA once that is done.

Daily Update

I tracked down where this is happening and it's due to this Web-E PR from @marcaaron a couple of weeks ago
I'm unsure of what solution we want for this and we are discussing it in Slack

Next Steps

@tgolen @marcaaron figure out a good path forward that fixes this case
Implement the fix and get it reviewed and merged

ETA

Monday Dec 2

Daily Update

There was quite a bit of discussion in Slack about this.
https://github.com/Expensify/Expensify/issues/448335 was opened to try and track down and fix what we think the actual bug is (a bug in step 4 of these steps where the workspace chat isn't being shared with the updated approver)

Next Steps

I think this issue can be placed on HOLD until https://github.com/Expensify/Expensify/issues/448335 is fixed and then this can be re-evaluated

ETA

TBD

Daily Update

Still on hold with https://github.com/Expensify/Expensify/issues/448335 See this issue for updates

Daily Update

Same

Daily Update

I'm changing this to weekly priority for now

Weekly Update

I am still chugging away at this and the current PR I am working on is https://github.com/Expensify/Auth/pull/13442
It should be done reviewing soon and merged

Next Steps

@tgolen get that PR merged and deployed
Then we can re-evaluate what's going on with the LHN and see if there are any more bugs

ETA

Wednesday, Dec 18

Hey @tgolen, any updates?

Yeah, I usually update my weekly issues on Friday, but I am feeling festive and can give you an early update!
Weekly Update

The final backend PR https://github.com/Expensify/Auth/pull/13442 was just merged today

Next Steps

Once it has been deployed, this bug can be re-evaluated to see if it's fully fixed or what else needs to be done to close it out.

ETA

Tomorrow, Dec 20

The backend PR was deployed yesterday. @VickyStash Can you please give this another look and see if it's ready to be closed out?

Thank you! I'll re-test it on Monday morning

Results of testing:
User A - admin of the workspace
User B - non-admin user, approver
User C - expense submitter
✅  Workspace approval mode turns into Advanced if non-admin User B is selected as the approver - FIXED
✅  Expense doesn't disappear from LHN for User B if he is not approver anymore -  FIXED
➖ Expense for approval isn't display for User B if he is not approver anymore and re-login the app.
Steps:

From User A
1.1 create a workspace
1.2 add User B and User C as members
1.2 enable Workflow feature
1.3 turn on approvals and make the User B approver.
From User C submit the expense to the workspace.
See that for User B the expense appeared in the LHN.
From User A, remove the User B as approver and set the User A as approver.
See that User B still has expense in the LHN.
Re-login as User B. See that the expense isn't displayed in the LHN.
Go to the Search page, open the expense from there. Go back to the main tab . See that now the expense is displayed in the LHN.

https://github.com/user-attachments/assets/ddb9085e-9013-4aab-8ce2-d5d037dd72e5

I'm going to be OOO Dec 25 - Dec 29 🎄

➖ Expense for approval isn't display for User B if he is not approver anymore and re-login the app.

@youssef-lr @aldo-expensify I think we discussed this one. Is the previous non-admin approver supposed to retain access to the reports? In my PR, we unshared the reports from the previous non-admin approver I thought.
https://github.com/Expensify/Auth/blob/2a9f31e420a09bdb40f335d64a6be62641eff86e/auth/lib/Policy.cpp#L2596-L2603
Should we remove that, or update the testing steps because that is now expected that they would be unshared?


spacing in logmessage

a specific log message lists a few terms. 2 of these terms do not have any spacing between them as I noticed in actual output,
2 additional spacing adjustments for consistency.

If you are applying the same style padding-left: 10px to all divs with the input-group-btn class you could define that class in the https://github.com/apache/activemq-artemis/blob/master/artemis-hawtio/activemq-branding/src/main/webapp/plugin/css/activemq.css

I have to apologize deeply here!
Due to a faulty rebase, this PR contained also code from another PR.
None of the HTML changes were supposed to be here.
That has now been corrected.


Unify variable of #method_missing and #respond_to?

Unify first variable of #method_missing  and #respond_to? to method_name.

👍


Add enum support

Types

[x] 🎉 New Features
[ ] 🐛 Bug Fixes
[ ] 📚 Documentation Changes
[ ] 💄 Code Style Changes
[ ] 💄 Style Changes
[ ] 🪚 Refactors
[ ] 🚀 Performance Improvements
[ ] 🏗 Build System
[ ] ⏱ Tests
[ ] 🧹 Chores
[ ] Other Changes

Background or solution
for #357 ，支持枚举配置，以及 default 提示
Changelog

在其他样式下的效果，开天默认主题的 --kt-select-border 变量似乎有点问题，和背景颜色一样了

Codecov Report

Merging #382 (0fc3e55) into main (c262abb) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #382      +/-   ##
==========================================
- Coverage   59.33%   59.32%   -0.01%
==========================================
  Files        1189     1189
  Lines       72861    72861
  Branches    15085    15085
==========================================
- Hits        43231    43224       -7
- Misses      27003    27009       +6
- Partials     2627     2628       +1

Impacted Files
Coverage Δ

...s/core-common/src/preferences/preference-schema.ts
77.27% <ø> (ø)

packages/core-common/src/node/port.ts
43.93% <0.00%> (-3.04%)
:arrow_down:

packages/monaco/src/browser/schema-registry.ts
68.88% <0.00%> (-2.23%)
:arrow_down:

...kages/theme/src/browser/workbench.theme.service.ts
70.32% <0.00%> (-0.90%)
:arrow_down:

...erences/src/browser/preference-settings.service.ts
79.16% <0.00%> (-0.70%)
:arrow_down:

Continue to review full report at Codecov.

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

@erha19 你提到的点都改了


Rust: update Cargo.lock and attempt formatting-preserving Cargo.toml update

I've been using the initial Rust support ( https://github.com/googleapis/release-please/pull/684 ) for a week now and I want to come up with some improvements:
Cargo.toml
The editing of Cargo.toml that is not formatting-preserving is more annoying than anticipated.
The initial PR is noisy (as expected) and the subsequent PRs aren't as noisy (also as expected), which is what is is, but acceptable.
What's less ideal is that it also strips all TOML comments from the file, so comments like "revert to upstream once PR #ZZZ lands" get lost in translation.
Cargo.lock
I initially considered Cargo.lock too hard to update, since it would require running a command like cargo check, which requires a fully-functioning Rust toolchain, potentially with a C compiler, an alternative linker (like LLVM), etc.
I also didn't want to edit it "by hand" (without running cargo) since [[package]] entries contain checksums.
As it turns out, not updating Cargo.lock prevents cargo publish from working after a release has been created, since the first thing it does is updated the Cargo.lock. It then fails because there are "dirty" (uncommitted) files in the repository.
This is only an issue for binary crates that are not in a monorepo, because:

library crates have their Cargo.lock gitignored
monorepos have their Cargo.lock at the top level, not in crates/mycrate

Nevertheless, I want to try and address both of these - I'll open a relevant PR soon.

@fasterthanlime 👍 thanks for keeping this moving forward.

@fasterthanlime 👍 thanks for keeping this moving forward.

One thought, could we potentially write a parser for Cargo.lock in JavaScript? How complex are the bits we need to edit?

It's also "just TOML"! I managed to achieve formatting-preserving edits with @iarna/toml, drafting the PR as we speak, here's a screenshots of the proof of concept:

One thought, could we potentially write a parser for Cargo.lock in JavaScript? How complex are the bits we need to edit?

It's also "just TOML"! I managed to achieve formatting-preserving edits with @iarna/toml, drafting the PR as we speak, here's a screenshots of the proof of concept:


Adds GH action to trigger generate_llmstxt.py, testing action

Description
Spawned off of https://github.com/wandb/weave/pull/3045. The goal of this PR is to add a GH action to trigger docs/scripts/generate_llmstxt.py created in #3045 and serve as a testing branch for the new action.
What this PR does:

[x] Add .github/workflows/generate-llms.yaml to trigger docs/scripts/generate_llmstxt.py
[x] In pyproject.toml, add new entry llmspy = ["PyYAML>=6.0"] in [project.optional-dependencies]  for use by hatch in creating env to run script
[x] Updates docs/scripts/generate_llmstxt.py with logic to get right directory before calling script
[x] Removes llms.txt and llms.md so we can test
[x] Makes some sort of change to this branch to check that llms.py is properly triggered
[ ] Update action logic to work in prod i.e. [on.push.branches]

Testing

[x] Locally:

[x] hatch env create llmspy -> confirmed creates hatch env with necessary dep
[ ] hatch env shell -> confirmed activates env
[x] In shell, python3 scripts/generate_llmstxt.py -> runs script and generates expected folders in static dir

[ ] On branch:

[x] Initial commits with GH action + deleted llms.txt and llms.py
[x] Make any change to the branch and confirm action triggered
[x] Confirm that, upon action triggered, expected files generated

@scottire this is about 99% ready to go. Commit history is a little confusing, because I was fumbling around with testing for a bit.
Anyways, confirmed that the llms.txt was autogenerated and pushed to this test branch in https://github.com/wandb/weave/pull/3047/commits/d39df3433edddd6499ee2f2c0cbbdc2bee1a1d83.
So I think the remaining todo here is to update the action logic so that it pushes to main. LMk if you think we should add other logic here.
Once that's done, I was thinking we could just merge into your #3045


Add the tag "integration-test" to the it configuration in BSP.

Fixes https://github.com/sbt/sbt/issues/6548
This tiny PR adds the "integration-test" tag to the IntegrationTest configuration when using BSP

Hi @samuelClarencTeads,
Thank you for your contribution! We really value the time you've taken to put this together.
Before we proceed with reviewing this pull request, please sign the Lightbend Contributors License Agreement:
https://www.lightbend.com/contribute/cla

retest

retest

retest this please

I don't know how to run the CLA validation again but @eed3si9n will probably be able to merge the PR anyway.


bug(python): Need add metric function in LanceQueryBuilder

LanceDB version
0.10.2
What happened?
There is no metric() function in the abstract class LanceQueryBuilder
Are there known steps to reproduce?
No response

@FounderHy can you provide an example of when this would be needed? the metric() function exists on the concrete implementations LanceVectorQueryBuilder and LanceHybridQueryBuilder


Hot-reloadable config, or graceful agent restart?

Hi BK team!
We're currently evaluating BuildKite to see if it's a good fit for our build-deploy process long-term. Right now we're in the following situation we need to account for:

We have an error or potential security issue with the buildkite-agent.cfg config file / environment config
We want to reload the agents with the rolled-back or updated config
We don't want to interrupt any builds that are in-flight

Right now our only option is to force-stop / start agents en masse, but this runs the risk of killing inflight jobs.
Is there a mechanism to either
Hot-reload the configuration (buildkite-agent.cfg in our case)
Be able to issue a command to live running agents to restart and pick up latest settings/environment/etc once the current build they're running has completed?
Thank you!

Nice fit for blue-green deploys if you're running your builds in a cluster of containers or VMs. Roll out the cfg change by building & deploying new containers and gracefully shutting down the running instances (allowing agents to complete their current jobs).

I'm not sure that we document it very well, but you can gracefully stop an agent and it will wait for builds to finish. That said, I think either live config reload or a USR1sig would make a lot of sense!

Note that while the agent itself supports graceful stops, the init scripts that come with it do not: the timeout before giving up and sending sigkill to the agent is very low and the systemd one defaults to sending sigterm to the whole process group, not just the agent, which means all your build scripts would have to handle sigterm as well.

Hmmm, we should definitely look at that @uri-canva!

Just had a sneaky chat with @lox about this, and I think the answer for us is to support a graceful restart of the agent, which would reload any config changes if you're using a config file. We've slated this for a potential 4.0 release.

The following systemd service drop-in under /etc/systemd/system/buildkite-agent.d/timeout.conf works fine for me to get a graceful (but guaranteed) job cancellation.
[Service]
TimeoutStopSec=5min
KillMode=mixed


template applied

This applies a standardized Taija package template I have been working on (not published yet)

@pat-alt it looks good to me. I assume that for codecov we will have to register it at the codecov.io site?


ilab test&co for other platforms

Right now some features like test are available only on M-series, will be great if they will be available for other platforms (Linux cuda/rocm).

Dup of https://github.com/instructlab/instructlab/issues/659? In-progress here https://github.com/instructlab/instructlab/pull/1337. Please close if this is a dup or change the title/description for your enhancement request. Thanks!

It looks like, there is another macos only warning here https://github.com/instructlab/instructlab?tab=readme-ov-file#-serve-the-newly-trained-model but it seems it's a mistake as ilab serve worked just fine on Linux. (Didn't test the ilab convert though.

Just checked it:  ilab convert is only implemented for macOS with M-series chips for now.
Aren't you using convert-hf-to-gguf.py for that job?

Tests for linux implemented, also eval exists. Closing.


Block Editor blocks are not rendered in CMS

I followed docs, but I cannot get block editor to work in CMS.

I have 'blocks' table
Model has 'HasBlocks' trait
Repository has 'HandleBlocks' trait
I have run php artisan twill:blocks successfully

This is what I see in CMS after adding a new block:

And it looks like Vue component is not really rendered:

resources/views/admin/blocks/quote.blade.php is
@formField('input', [
    'name' => 'quote',
    'type' => 'textarea',
    'label' => 'Quote text',
    'maxlength' => 250,
    'rows' => 4
])

resources/views/admin/news (model)/form.blade.php is
@extends('twill::layouts.form')
@section('contentFields')
    @formField('block_editor', [
        'blocks' => ['quote']
    ])
@stop

config/twill.php is
return [
    "block_editor" => [
        'blocks' => [
           'quote' => [
              'title' => 'Quote',
              'icon' => 'text',
              'component' => 'a17-block-quote',
           ],
        ],
    ]
];

resources/assets/js/blocks/BlockQuote.vue exists and is exactly like in docs.
I sort of run out of ideas how to solve this.

I am still having this issue. Using ubuntu 20.04. I have followed all the steps including the npm run twill-build after npm run twill-build after php artisan twill:blocks but still no form is showing in the block. Anyone can please help?

Added new block into blocks array in module form:

@formField('block_editor', [
    'blocks'    => [
        'testing'
     ]
]

created the block in /resources/views/admin/blocks/testing.blade.php

@formField('input', [
    'name' => 'testing',
    'type' => 'textarea',
    'label' => 'Test text',
    'maxlength' => 250,
    'rows' => 4
])

added the new block into twill config
'content_header' => [
'title'     => 'Testing',
'icon'      => 'text',
'component' => 'a17-block-testing'
],

Now run this command: php artisan twill:blocks

And then the following command: npm run twill-build

But still the form isn't showing


fixed duplicated chr:pos by using an extra ID as index of each SNPs

1, using unique ID to deal with duplicated SNPs in different gene
2, adding intersect parameter to output intersection or union SNPs, default is False.
3, changing —keep_ambigous to boolean type, default is False
4, updating yaml file (adding a ID: CHR,POS row). ID: CHR,POS can be ID: CHR,POS,GENE or any other combinations.
5, updating description in pipeline.

@changebio looks good, thanks! But shall we make the default ID chr_pos_a0_a1 I believe this is the  case for now anyways? Notice that this ID will use adjusted a0 and a1 after strand flip, and should be consistent with a0 and a1 in target set.

@changebio looks good, thanks! But shall we make the default ID chr_pos_a0_a1 I believe this is the case for now anyways? Notice that this ID will use adjusted a0 and a1 after strand flip, and should be consistent with a0 and a1 in target set.

The SNP ID is still chr_pos_a0_a1, But the index of each row is the ID, which will be removed in output.

ID is used to distinguish different SNPs before strand flip. In here, duplicated ID will be removed.

I see. My proposal is that we make the ID both the final SNP ID and the ID to use before strand flip. Of course, before strand flip you'll ignore a0 and a1 if they are part of the ID. The reason to do it is that we want the final SNP ID to be customizable, eg, we want the output SNP to have ID that contains the gene information. this is important for makeing the VCF format for QTL applications.

@changebio looks good, thanks! But shall we make the default ID chr_pos_a0_a1 I believe this is the case for now anyways? Notice that this ID will use adjusted a0 and a1 after strand flip, and should be consistent with a0 and a1 in target set.

at the moment default is chr:pos_ref_alt, shall I change other places to accommodate the chr_pos_ref_alt format?

@changebio looks good, thanks! But shall we make the default ID chr_pos_a0_a1 I believe this is the case for now anyways? Notice that this ID will use adjusted a0 and a1 after strand flip, and should be consistent with a0 and a1 in target set.

at the moment default is chr:pos_ref_alt, shall I change other places to accommodate the chr_pos_ref_alt format?

All you need to do is adding a ID row in yml, but the ID row shouldn't be ID:CHR,POS,A0,A1(The reason as following my reply to Gao). It can be ID:CHR,POS or ID:CHR,POS,GENE.

I see. My proposal is that we make the ID both the final SNP ID and the ID to use before strand flip. Of course, before strand flip you'll ignore a0 and a1 if they are part of the ID. The reason to do it is that we want the final SNP ID to be customizable, eg, we want the output SNP to have ID that contains the gene information. this is important for makeing the VCF format for QTL applications.

I thought about that. But SNPs' ID and the ID shouldn't be the same. Because we need to use the ID to find overlapping SNPs. If we use chr_pos_a0_a1 as the ID, we will miss strand fliped or reversed SNPs.
But if you want to add something to SNPs' ID, this can be done by another way. such as SNP:CHR,POS,A0,A1,GENE.

But SNPs' ID and the ID shouldn't be the same. Because we need to use the ID to find overlapping SNPs. If we use chr_pos_a0_a1 as the ID, we will miss strand fliped or reversed SNPs.

Please note in my previous reply, " Of course, before strand flip you'll ignore a0 and a1 if they are part of the ID. ". So my solution should still work.

But if you want to add something to SNPs' ID, this can be done by another way. such as SNP:CHR,POS,A0,A1,GENE.

I dont want to introduce another field. That seems redundant.


List comprehension in WHERE clause results in server process segmentation fault

Describe the bug
List comprehension in a WHERE clause causes server process to terminate with "signal 11: Segmentation fault"
How are you accessing AGE (Command line, driver, etc.)?

Node.js/DBeaver/psql

What data setup do we need to do?
SELECT * from cypher('graph', $$
    CREATE ({list:["one","two","three","four"]})
$$) as (a agtype);

What is the necessary configuration info needed?

Age extension compiled from master

What is the command that caused the error?
SELECT * from cypher('graph', $$
    MATCH (n) WHERE size([e in n.list where e starts with "f"]) > 0 RETURN n
$$) as (result agtype);

Running the above example query results in server process segfault and lost driver connection.
Expected behavior
Completed query result.
Environment (please complete the following information):

Age: master
PGSQL version: 16
OS: WSL Ubuntu "jammy"

Additional context
None.

@bravius the bug is reproducible. I will try to come up with a fix as soon as possible, but it can take some time.


Make from_unixtime aware of execution timezone

Is your feature request related to a problem or challenge?
No response
Describe the solution you'd like
Applies an offset to the unixtime after the cast.
Describe alternatives you've considered
No response
Additional context
Datafusion's from_unixtime is not aware of timezone. The following code block demonstrates the interaction between me and datafusion-cli.
> set datafusion.execution.time_zone = '+08:00';
0 row(s) fetched.
Elapsed 0.000 seconds.

> select to_unixtime('2024-09-01 10:00:00+08:00');
+------------------------------------------------+
| to_unixtime(Utf8("2024-09-01 10:00:00+08:00")) |
+------------------------------------------------+
|<PHONE_NUMBER>                                     |
+------------------------------------------------+
1 row(s) fetched.
Elapsed 0.001 seconds.

> select from_unixtime(1725156000);
+----------------------------------+
| from_unixtime(Int64(1725156000)) |
+----------------------------------+
| 2024-09-01T02:00:00              |
+----------------------------------+
1 row(s) fetched.
Elapsed 0.001 seconds.

Specifically, when converting a date to unixtime with the to_unixtime function, we can provide a timezone and the cast result could reveal the timezone. However, when converting the unixtime back to a date, Datafusion is not aware of timezone. Yes, the cast result is correct, but the timezone info is discarded and only a date with timezone UTC+0 is returned.
I wonder if we can make the from_unixtime function aware of timezone. For example, by setting the execution timezone through the datafusion.execution.time_zone configuration, we can apply an offset to the cast result so the timezone info could be revealed.

UDF's currently do not have access to the DF context which would make implementing this using configuration a bit difficult. Was could be easily supported is allowing an additional argument 'tz' which would be used to generate the timestamp in tz aware fashion.

@Omega359 would that be desirable? I can start working on to overload from_unixtime function with additional time_zone parameter as you've mentioned.

Sounds good. I would like to still think about what it would take to get udf's access to the config though.

This may now be feasible after

https://github.com/apache/datafusion/issues/13519


Ionic sidemenu and jsPDF

Hi,
i have a problem with ionic.
When I save the pdf, the sidemenu is disabled. The code is the follow
`   var doc = new jsPDF('p', 'px', 'a4');
var elementToPrint = document.getElementById('content')

doc.html(elementToPrint, {

    html2canvas: {
        scale: 0.7
    },
    callback: function (doc) {
        doc.save();
        that.menu.enable(true, 'menu');
        that.menu.open('menu');
    }
});`

I don't know why.
Thank you.

Do you mean the sidemenu when viewing the PDF? Please provide a complete repro and the exact steps to reproduce the issue.

Hi, thanks for the response.
I have a ionic application with  and  . When I click the button to save the html to pdf (this button is located inside a page in right side), the sidemenu collapse and doesn't works anymore, but the pdf created correctly.

I'm pretty sure this has nothing to do with jsPDF in particular.
I'm closing this for now. If you think this is really an issue of jsPDF, feel free to reopen.


KAFKA-4450: Add upgrade tests for 0.10.1 releases and rename TRUNK to CURRENT_BRANCH to reduce confusion.

@ijuma Perhaps you can take a gander at this one. The bulk of the changes are just the renaming we discussed in the thread. I went with a slightly different name because the directory for the code and the name in the ducktape code are semi- tied together. DEV_BRANCH seemed a reasonable compromise.
Buried in the changes are the few test additions. I'm actually not that familiar with those tests and they include parameters that I was a bit unclear on why we have the set of parameterizations we have, so look carefully at those changes.
I kicked off a test for the core system tests and it looks mostly ok here: https://jenkins.confluent.io/job/system-test-kafka-branch-builder/691/consoleFull There are some failures, but some are known (the issue with ProduceConsumeValidate). The others I'm hoping someone can explain -- I'm not sure why a cluster ID in ZK (or lack thereof) would suddenly show up in these tests.

Addressed those issues and kicked of one final run to validate it: https://jenkins.confluent.io/job/system-test-kafka-branch-builder/692/

System tests passed, merging to trunk and 0.10.2 branches.


Fix useRequestUrl returning localhost on production environment

Using useRequestUrl composable is returning localhost on some production environments.
According to the docs here https://nuxt.com/docs/api/composables/use-request-url it is a known behavior, caused by Nitro caching features.
Currently, this is happening regardless of the hosting platform, i.e. both the playground of this module here, hosted on GitHub Pages:

https://stefanobartoletti.github.io/nuxt-social-share/

and a live website here, on Netlify:

https://nuxt-storyblok-starter.netlify.app/blog/article-8/ (here it is happening only if accessed directly, if navigating from another page on the site, the URL seems correct)

If possible, some configuration to be placed here in the module is desirable, to avoid setting this up in every project that uses the module.
Some help and clarifications have been asked here https://github.com/nuxt/nuxt/discussions/27393

The facebook issue https://github.com/stefanobartoletti/nuxt-social-share/issues/175 seems to be more than just localhost being provided by in the URL. You can see here that the URL is actually correct, but the facebook share still doesn't work correctly. The other platforms seem to work.

Thanks for reporting, apparently it is a problem on Facebook side, either they changed the behavior of the URL or they have some issues. Besides trying to stay updated about this, there is not much I can do on the module at the moment I fear.

The bug returning localhost has been fixed in the latest v1.0.0 release.
@letoast @junogueira The issue with Facebook is not 100% related to this, and it seems to be related to external factors and not always reproducible. If the issue persists, and if it can be solved on the module, another specific issue can be opened.


This PR fixes the problem of adding a button to save the drawing file path selection style error when using Chinese

Fix the problem that the style of adding the button to save the plots file path selection is wrong when using Chinese
Since the style error only occurs in the two files, I used the inline style
After fix https://imgtu.com/i/gzLKVx
Before fix https://imgtu.com/i/gzLrRg

I will change it to nowrap because min-width can be buggy when user change font size or use zoom


Update docs with note about vertical align bug

Note about issue https://github.com/mjmlio/mjml/issues/470 which is closed but not yet fixed as far as I can tell.

It's a small gotcha of HTML vertical-align but why not add this to the doc 👍


Cannot autowire service Http\HttplugBundle\Collector\Formatter

Q
A

Bug?
yes

New Feature?
no

Version
v1.7.1

Actual Behavior
I have the following error with no-debug env:
  [Symfony\Component\DependencyInjection\Exception\AutowiringFailedException]
  Cannot autowire service "Http\HttplugBundle\Collector\Formatter": argument "$formatter" of method "__construct()" references interface "Http\Message\Formatter" but no such service exists.
  Cannot autowire service "httplug.factory.docker": argument "$formatter" of method "Http\HttplugBundle\Collector\ProfileClientFactory::__construct()" references class "Http\HttplugBundle\Collector\Formatter" but no such service exists.

Expected Behavior
No error and service building like it works with debug setting.
Steps to Reproduce
Define the following services:
services:
  httplug.factory.docker:
    class: Http\HttplugBundle\Collector\ProfileClientFactory
    arguments:
      $factory: [ Docker\DockerClient, 'createFromEnv' ]
  Docker\Docker:
    arguments:
      $httpClient<EMAIL_ADDRESS>
And run:
./bin/console cache:clear --env=prod

Possible Solutions
See https://github.com/php-http/HttplugBundle/issues/210#issuecomment-334863967

It seems this class is loaded only with profiling enable: https://github.com/php-http/HttplugBundle/blob/3da46d5b4e6d2438a17a059bbeaf784bda00dbff/DependencyInjection/HttplugExtension.php#L58-L59
It seems legit, but it's the only way I found to get httplug logging with this client: https://github.com/docker-php/docker-php/blob/1.24/src/DockerClient.php#L62-L94
Without having to re-define anything.
Related to: https://github.com/docker-php/docker-php/pull/257
Maybe it would be great to have a CallbackClientFactory for this?

I finally solve my issue by creating this class:
use Http\HttplugBundle\ClientFactory\ClientFactory;

/**
 * Special factory that call another factory not implementing ClientFactory.
 *
 * @author Sullivan Senechal<EMAIL_ADDRESS> */
final class CallableClientFactory implements ClientFactory
{
    /**
     * @var callable
     */
    private $factory;

    /**
     * @param callable $factory
     */
    public function __construct(callable $factory)
    {
        $this->factory = $factory;
    }

    /**
     * {@inheritdoc}
     */
    public function createClient(array $config = [])
    {
        return \call_user_func($this->factory, $config);
    }
}

And replacing the ProfileClientFactory by this one:
services:
  httplug.factory.docker:
    class: AppBundle\Httplug\ClientFactory\CallableClientFactory
    arguments:
      $factory: [ Docker\DockerClient, 'createFromEnv' ]
  Docker\Docker:
    arguments:
      $httpClient<EMAIL_ADDRESS>
If you think this is a good solution, I may write a PR for that.

All collector stuff is internal and should not be used by other libraries/bundles.

what exactly are you trying to achieve @Soullivaneuh ? if its about logging, the idea would be to use the logger plugin with the plugin client: http://docs.php-http.org/en/latest/plugins/logger.html
if that plugin does not work for you, we need to better understand what you want to do to figure out what the right solution is.

@dbu It's about logging. My solution currently works, but it's maybe not the simplier.
I also forget my configuration file:
httplug:
  plugins:
    logger: ~
  clients:
    default:
      factory: 'httplug.factory.guzzle6'
      plugins: ['httplug.plugin.logger']
    docker:
      factory: 'httplug.factory.docker'
      plugins: ['httplug.plugin.logger']
  profiling:
    captured_body_length: 1000

I have to do this because I have to use this part: https://github.com/docker-php/docker-php/blob/961e1d4f2b5d6617920babe440f585d1d517a763/src/DockerClient.php#L62-L95
Do you have a cleaner view of what I'm trying to do? Can it be done simpler?
Maybe a fix must be done on the docker-php library to create a proper factory.

i think i would try to provide a factory. we provide an example in http://docs.php-http.org/en/latest/plugins/introduction.html#plugin-client-libraries - then you can have a DockerFactory::createFromEnv that does most of what the constructor does and don't need your own client class.

@dbu I didn't get time to found a solution, but I think it should be solved on docker-php side: https://github.com/docker-php/docker-php/issues/255#issuecomment-339298314
You may close it if you want. I'll open a new one if something more precise has to be done.

alright. sure, open a new issue or ask us on slack if you need something.


Add custome elements manifest

This adds the Custom Elements Manifest to this project, which allows for ways to introspect the classes in other languages, in a standardized format without parsing an AST.

:wave: Hello and thanks for pinging us! This issue or PR has been added to our inbox and a Design Infrastructure first responder will review it soon.

:art: If this is a PR that includes a visual change, please make sure to add screenshots in the description or deploy this code to a lab machine with instructions for how to test.
:fast_forward: If this is a PR that includes changes to an interaction, please include a video recording in the description.
:warning: If this is urgent, please visit us in #primer on Slack and tag the first responders listed in the channel topic.


Find position of another player

How can I enumerate the positions of all players in nexus, or a realm?
I would like to find this information and print it to the console as part of a plugin.
The goal is to ultimately make a bot that walks to a player in nexus, and trades with them only once they are located on top of the player.

In the update packet you can loop over newObjs anc check if the objectType is a player class, these ids are located in constants/classIds.py. Then once you got the player(s) you need you can update info about them by comparing the tracked player's objectId with the objectIds in newTick.statuses.
Hope this helps

Apologies in advance, I still have a lot to learn.  Appreciate your time to help tremendously.
    @hook("update")
    def onUpdate(self, client, packet):
        for e in packet.newObjs:
            if e.objectType == 800:
                print("assassin")

if I am playing an assassin class, and I am in the same nexus or map as the bot, it will print assassin as expected.  How do I access the variables for the object?  For instance, if I want to print the name of the bot, I can just use print(client.playerData.name).
When I tried to do e.PlayerData.name, it does not work, I assume the object is not recognized as a playerData type class?
I am clearly doing something wrong here if you can point me in the right direction.  I'd like to start by being able to read the name of every player in nexus and output to console, and then I can work on figuring out how newTick.status works to triangulate position.

e is an objectData, from data/objectData.py, so to get the name you'll have to access the stats of the object. The stats are in e.status.stats, then you can loop over these and use constants/statTypes.py to find the name stat.
Posision of objects are also on the stat object so you can just find it by e.status.pos

This is perfect for my needs, thank you very much!

My apologies Maxi,
Can you provide rough pseudo code on hooking the newTick packet so I can update the player position?
I got it working to move to the player, but this only works once for the initial time the player enters the nexus I cannot seem to update the target user position if target moves.
    @hook("update")
    def onUpdate(self, client, packet):
        global followTarget
        global followTargetLoc
        for e in packet.newObjs:
            if e.objectType == 800:
                charClassAndName = []
                charClassAndName.append("Assassin")
                for i in e.status.stats:
                    statType = str(i).split()[1]
                    if statType == "31":
                        charClassAndName.append((str(i).split()[3]))
                        print(charClassAndName)
                        print(e.status.pos)
                        print(followTarget)
                        if charClassAndName[1] == followTarget:
                            x = True
                            while x == True:
                                followTargetLoc = e.status.pos
                                client.nextPos = [followTargetLoc]
                                print(e.status.pos)
                                print(type(print(e.status.pos)))
                    else:
                        next

Yea sure I think this should work:
Add this in init
def __init__(...):
    self.targetName = "blabla"

For update
    @hook("update")
    def onUpdate(self, client, packet):
        for e in packet.newObjs:
            if e.objectType == 800:
                for stat in e.status.stats:
                    if stat.statType == 31 and stat.strStatValue == self.targetName:
                        self.targetObjectId = stat.objectId
                        print(charClassAndName)

@hook("newTick")
def onNewTick(self, client, packet):
    for status in packet.statuses:
        if status.objectId == self.targetObjectId:
            self.targetPos = status.pos

Thank you again for taking all the time to help.
I seem to be having an issue with this line:
self.targetObjectId = stat.objectId
I get the error StatData object has no attribute object ID

    @hook("update")
    def onUpdate(self, client, packet):
        global followTarget
        global followTargetLoc
        global followTargetObjectID
        for e in packet.newObjs:
            if e.objectType == 800:
                #print(type(e))
                #print(e)
                charClassAndName = []
                charClassAndName.append("Assassin")
                for i in e.status.stats:
                    statType = str(i).split()[1]
                    if statType == "31":
                        charClassAndName.append((str(i).split()[3]))
                        print(charClassAndName)
                        print(e.status.pos)
                        print(followTarget)
                        if charClassAndName[1] == followTarget:
                            followTargetObjectID = e.status.objectId
                            followTargetLoc = e.status.pos
                            client.nextPos = [followTargetLoc]
                            print(e.status.pos)
                    else:
                        next

           # elif e.objectType == 782:
               # print ("wizard")
    @hook("newTick")
    def onNewTick(self, client, packet):
        global followTargetObjectID
        for status in packet.statuses:
            if status.objectId == followTargetObjectID:
                #print(status)
                client.nextPos = status.pos
                time.sleep(.5)

I think it's almost done.  I couldn't get your class based code to work so I'm using sloppy global vars.
getting an issue with the client.nextPos portion, for some reason there is a type error:
if len(self.nextPos) > 0:
TypeError: object of type 'WorldPosData' has no len()
any ideas?

Yes it is because client.nextPos is a list, so you should do: client.nextPos.append(status.pos)

I'll take it as this i solved, open again if you still have problems


Use the new node bulk delete from Dahai's Alcor branch

Currently using the New Node Bulk Delete functionality from Dahai's branch https://github.com/DavidLiu506/alcor/tree/alcor/nodemanager.
Don't merge yet, since we may change the function a little bit in the near future.

From local env test, with current code. We do have the ability to delete all node registered with Alcor with one API call


WIP: Persistence Integration Workflow

For PostgreSql, we have to set max_prepared_transactions in postgresql.conf (usually under /usr/local/var/postgres), the default value is 0 which mean disabled. the suggested value is equal to the maximum connection number.  so, suggest  max_prepared_transactions = 64 for now.


Upgrade dependencies

Let's see if we can fix #10

10:24:12 PM: npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
10:24:12 PM: npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
10:24:12 PM: npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>|| >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta but none is installed. You must install peer dependencies yourself.
10:24:12 PM: npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/fsevents):
10:24:12 PM: npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
10:24:12 PM: npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/chokidar/node_modules/fsevents):
10:24:12 PM: npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
10:24:12 PM: added 524 packages from 57 contributors, removed 415 packages, updated 207 packages and audited 2886 packages in 37.078s
10:24:14 PM: 154 packages are looking for funding
10:24:14 PM:   run `npm fund` for details


[Comms] Speaker and Talk+Workshop announcement/promotion

We want to announce our speakers and their talks on social media, each talk/workshop can have a poster which we share over the social media.
Example from last year:

https://x.com/pyconindia/status/1705892330451128376 (they did two posters at once, we can do one at a time also as we have some time till conference).

Tasks

[ ] Create poster for all the talks + workshops, design wg (total: 36).
[ ] Announce all these talks and workshops on social media.

How to interpret the sheet
I have shared a sheet with @WatchfulHitman and @iamaravindsekar here are things:

The ones marked with green in title have two speakers for the same talk, this should be single poster/image.
There are things to be mindful about marked in red, these are some requests made by speakers.

@WatchfulHitman you can use the sheet's Q column onward to write social media messages and get it reviewed from others, that way everything remain at a single place.

If speaker's photo is not available, can check their LinkedIn/social media profiles and use photo from there. If no social media links are given, the image/poster can be just the talk title :)

Timeline
Can be started from 2nd 9th September onward and finish it over 10 days or so? Something the Comms wg can take a decision on.
Communication Channel (if needed for your task)
- [ ] Mailing List

[ ] Social Media

[ ]  Twitter
[ ]  Linkedin
[ ]  Mastodon
[ ]  Instagram
[ ]  Facebook

Review of content: https://pad.riseup.net/p/AjAkMVoNnv8wS69HXdNa
@sayanchowdhury @bhavin192 @rayandas @palnabarun @kalyan678 @Sc0rpi0n101 @harisibrahimkv

@WatchfulHitman You can find the speaker posters here:
https://drive.google.com/drive/folders/1yFrCR-a9-CL57wzX6JN6RKBKfaSaVpxC?usp=sharing
We have uploaded 15 posters for now, and we are working on the rest of the posters.
cc: @bhavin192

This is done.


feat(#151): snippets step

In this pull I've implemented snippets step, that counts code snippets: "```" in README files.
closes #151
History:

feat(#151): start
feat(#151): snippets
feat(#151): test case
feat(#151): zero count test case
feat(#151): test case for all
feat(#151): snippets in final

PR-Codex overview
This PR focuses on adding functionality to count snippets in README files and integrates this feature into the existing data processing pipeline. It also includes tests for the new functionality and updates related CSV files to accommodate the changes.
Detailed summary

Added snippets functionality to count code snippets in README files.
Updated final.py to include snippets in the output DataFrame.
Created snippets.py with main logic for counting snippets.
Added tests for snippets functionality in test_snippets.py.
Updated CSV files to include a new snippets column.
Modified workflow to incorporate the new snippets task.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

@rultor merge

@rultor merge

@h1alexbel OK, I'll try to merge now. You can check the progress of the merge here.

@rultor merge

@h1alexbel Done! FYI, the full log is here (took me 10min).

@rultor release, tag is 0.0.8

@rultor release, tag is 0.0.8

@h1alexbel OK, I will release it now. Please check the progress here.

@rultor release, tag is 0.0.8

@h1alexbel Done! FYI, the full log is here (took me 18min).


Comprehensive Guide to Contributing to Open Source Projects

The reason behind this guide
Modifying open-source projects is daunting for the majority of people. When I heard people say, "Just fork the project", I immediately felt unqualified. But I don't believe it doesn't have to be this way. There are fantastic technical writers who I am sure could help Bitcoiner.Guide with a little bit more instructions.
Quick overview of the PR
This PR adds an extensive step-by-step guide on contributing to open-source projects using Bitcoiner.Guide as a case study.
It covers everything from setting up a GitHub account and necessary tools, forking and cloning a project, to making and submitting changes via a pull request. It also includes instructions on making additional changes after creating a PR and keeping a fork updated.
Note: It passed the non-technical, non-tech-savy GF test for a simple article addition 🤓

Once again, thank you so much for this contribution. Just done a thorough review and this is absolutely fantastic. Here's some incredibly minor nits and feedback. Feel free to push back on any of them, this is your work :)

Link to this guide from the contribute page should be just /fork no need for the domain before it since it's an internal link
The link in the readme needs to be a full domain, including https:// since it's linking from GitHub
It's common practice to capitalize the term Open Source
Step 1 - Git is pre-installed on lots of machines. Worth mentioning that and linking here
Step 3 - The numbers go 1 > 2 > 1 > 2 > 3 > 4 > 1. It's a little confusing
Step 4 - Possible typo in dialog. Should be dialogue I think, but I could be wrong
Step 5 - Numbering
Step 6 - Numbering
Step 6 - Maybe a brief mention about Markdown formatting with an external link?
Step 7 - Numbering
Anywhere you mention me by name, just use "QnA"
Don't forget to include the same sign off about yourself, including a place for people to tip you for this super detailed page.

Again, THANK YOU!

Thanks for reviewing this quickly and for the feedback and advice, QnA.
The numbers are a real PITA; they start from one again whenever I add a picture. I found that this was a limitation of Markdown formatting, but I will dig deeper into it or find an alternative.
Nothing to push back on; super good feedback once again 🙏

Here's the solution for your listing
1. Some text
2. some text
3. some text

{:start="4"}
4. Some more text
5. Some more text

Brilliant, smashing. Thanks!!

Thanks again for the feedback. I learnt about the internal link system and the numbering formatting!
I have pushed the changes. Let me know if it looks good and if you think I missed an important step.
If I am not mistaken, there is a slight difference between dialog and dialogue.  The latter refers to two people or more discussing. Whereas the first could, for example, be a type of window in the GUI of an operating system or an input box popping up in software.

Thank you for the speedy updates and the grammar lessons. Told you I was likely wrong!
I have to focus on a few other bits now, but will do a final review before merging this weekend.
Thank you again.


luarocks: Update detected platform version

Motivation for this change
Now that our MACOSX_DEPLOYMENT_TARGET is set to 10.12 (see #64458), we shouldn't be hardcoding the platform at build time as 10.10. This change makes it inherit the MACOSX_DEPLOYMENT_TARGET value.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[X] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[X] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

Notify maintainers
cc @raskin @teto

@GrahamcOfBorg build luaPackages.neovim luaPackages.rapidjson

I had found the hardcoded value strange at the time but it fixed an urgent issue and I am no mac user. The fix looks ok, merging.


Build and test the tests/alternative-deps component with bzlmod enabled.

The alternative-deps tests define a separate Stackage snapshot stackage-b next to the default stackage to test Gazelle Cabal's ability to generate imports and dependencies for a differently named snapshot. Support for this is blocked on https://github.com/tweag/gazelle_cabal/issues/61.


fix(errors): added check if IE11 then use hashchange event listener F…

fix #1849
IE11 does not fire the popstate event when the URL's hash value changes. Changed, in IE11 case, from propstate event listener to hashchange.

Some news? I am having this very same problem

Im also facing the same problem - would be great if this solves it!

Same issue here.

IE10 also has this problem

any progress?

@posva Any results? Almost one yer ago you promissed to run tests.

@posva how is this not merged yet? Was it resolved already somewhere else? @aclifford85


Catkin Build failed

We trie to install on a Ubuntu 18.04 Machine, but we have got the following error.
It looks like the errros occur with QP collection.
We are afraid that the cause may not be the library itself, but would apprecaite if you make suggestions on how to solve this.
221028-catkin-error.txt

Could you try the following commands?
cd <smplpp directory>
git fetch -a
git checkout fix-issue-1
git branch # Make sure the current branch is fix-issue-1
source /opt/ros/${ROS_DISTRO}/setup.bash
catkin build smplpp -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLIBTORCH_PATH=<absolute path to libtorch> -DENABLE_QLD=ON --catkin-make-args all tests

If it still fails, please try
source /home/yoshidalab/catkin_ws/src
catkin build smplpp -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLIBTORCH_PATH=<absolute path to libtorch> -DENABLE_QLD=ON --catkin-make-args all tests

I would like to know a little more about your environment, so could you please tell me the output of the following commands?
lsb_release -a

cmake --version

g++ --version

echo $ROS_DISTRO

If there are still errors, please share the output of catkin build with the following command. (Added -vi option)
catkin build smplpp -vi -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLIBTORCH_PATH=<absolute path to libtorch> -DENABLE_QLD=ON --catkin-make-args all tests

Thanks, as far as I could see from the log file, there seemed to be no problem...
I don't know why many linking errors happen.
For example, the following linking error happens
[smplpp:make] /home/yoshidalab/catkin_ws/src/SMPLpp/node/node.cpp:660: `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)' に対する定義されていない参照です (Undefined reference)

although /opt/ros/melodic/lib/librosconsole.so is linked to the target.
Could you print the output of the following commands?
nm -D /opt/ros/melodic/lib/librosconsole.so | grep initializeLogLocation

Also, could you try putting libtorch outside of catkin_ws?

Thank you for your kind instructions. Unfortunately the same result after moving libtorch.
The results are attached. Thank you again for your support.
221101-catkin-error-2.txt

I investigated this issue directly with @yoshida-e and found that some versions of libtorch cause link errors in ROS.
We have confirmed that installing a slightly older libtorch (e.g. this one) instead of the latest version of libtorch solves this issue.
Similar issues have been reported below and seem to be resolved by changing the libtorch version:
https://github.com/pytorch/pytorch/issues/22197
https://github.com/pytorch/pytorch/issues/49450
https://github.com/pytorch/pytorch/issues/60178


Capitalization

Should the body and the footer be capitalized?

Should body be capitalized?

YES. (IMHO) because "a commit body is free-form and MAY consist of any number of newline separated paragraphs."
Thus the first letter of the first sentence of the first paragraph should (must?) be capitalized.
And it should/must end with a period, too.
NO. See the following example:
fix: correct minor typos in code

see the issue for details on typos fixed.

Reviewed-by: Z
Refs #133

Should footer be capitalized?

YES. BREAKING CHANGE (as an exception) is required to be uppercase.
YES. The other footers are formally case insensitive, but from the examples in https://git-scm.com/docs/git-interpret-trailers  and https://www.kernel.org/doc/html/v4.17/process/submitting-patches.html#when-to-use-acked-by-cc-and-co-developed-by I understand that the recommendation is capitalizing the first letter of the footer.
What do you think?

Yes, I agree with everything, so basically we would be "customizing" or changing what is specified in ConventionalCommits, so that example in our case should be something like this:
fix: correct minor typos in code

See the issue for details

On typos fixed.

Reviewed-by: Z
Refs #133

Am I right?

so basically we would be "customizing" or changing what is specified in ConventionalCommits,

We would be extending ConventionalCommits by adding a constraint on body.  ConventionalCommits doesn't impose any restriction, hence both your example and mine are conforming.
The question regarding body is whether we want to:

Restrict that body must begin with an uppercase letter (an absolute requirement) and that it must not begin with a lowercase letter (an absolute prohibition).
Weakly recommend that body begins with a uppercase letter, while allowing committers to start it with lowercase letter if they feel so inclined.
Allow body to begin with either an uppercase or lowercase letter.

I'm between 1) and 2). If I understand correctly the body part will provide additional contextual information about the code changes. If 72 characters in the subject were not enough for explaining the commit, and that additional info is needed, then it's reasonable to assume that paragraphs are going to be included in the body for that explanation. For easier reading of those paragraphs, they should be well formed (starting with a capital letter and ending with a dot).
What do you think?

I agree. The pending question is whether we are going to request a rewriting of the commit because body starts with lowercase or doesn't end with a period.

That might be too strict, I would go with uppercase and ending period strong recommendation for body, but without demanding a rewriting of the commit if those recommendations are not used.

Makes sense. The weak/strong difference is kind of lost anyway, since I'm (intentionally) not using RFC 2119 keywords.

Added:

The commit body is free-form text and may consist of any number of newline separated paragraphs. It may contain URIs and links to other issues.
If possible, use the imperative present tense ("change" not "changed" nor "changes") and follow basic grammar rules: capitalize the first letter, end each sentence with a period, etc. This restriction can be relaxed.


typo fix

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

@ryfow Thanks for the typo fix; merging.


Undocumented crash on Server component using 'asChild' prop

When using <Button/> asChild prop inside a server component, a error is thrown, because it uses a ref.
Would be nice to have a disclaimer that using this prop needs a "use client" in the docs: https://ui.shadcn.com/docs/components/button#link
Alternatively add  "use client" to <Button/> component.

This was recently fixed upstream: https://github.com/radix-ui/primitives/pull/2116
You can update your slot dependency to the release candidate


English doc not working

for English-speaking users, the documentation does not open.
http://swoft.io/docs

Same problem, but I'm using this for now: WayBackMachine


Saving a file downloaded with wget - v3. combined commit

Saving a file downloaded with wget
wget, as is coded, only displays downloaded files on console.
Impact
This patch allow saving files on as per command syntax:
wget  [-o <local-path>]  <url>
Tested on esp32-devkit:
mount -t spiffs /dev/esp/partition/spiffs /var
wget -o /var/test4.txt http://<IP_ADDRESS>:8000/partitions.csv
Version
v2. corrected checkpatch.sh errors
v3. combined commit

@koliqi could you remove the merge commit from PR?

BTW, please push your update directly instead create a new PR by:
git push -f origin wget-branch3


Base

Hi, I'm trying to run your app but I'm facing some issues to access a server declared in Constants.swift baseHost = "http://<IP_ADDRESS>:8000". How could I configure locally the server? Server's source code is available for to download?
Regards,
Paulo Victor.

Hey, you can find the backend code here: https://github.com/silverlogic/omnipark-back


random root readme change

@stevengum told me to.

Closing, thanks @Zerryth :)

Pull Request Test Coverage Report for Build 140792

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.07%) to 80.961%

Totals

Change from base Build 140776:
0.07%

Covered Lines:
12915

Relevant Lines:
15236

💛  - Coveralls


fix: composer loading bot forever due to unexpected main dialog

Description

In this PR if the name is empty, disable the "OK" button
Do we need to use { validateOnMount: true }? This will show error message when we open the dialog first time

Task Item
closes #3428

Screenshots

I see the root cause, but for the fix, i think we should also validate in server side, not just in client, so that any invalid input, for whatever reason, that flows into server is rejected, make sense?

let's also validate in server and make sure it throws error

Yes, server has validate now, in main branch will throw error, I reproduced this in electron version 1.0.2

Coverage increased (+0.006%) to 57.358% when pulling b193ea129877f9a013b1198d01cf8e242623b9ef on lei9444:create into 27dd06716fef08c54de0de32b9897b64bc08a6b3 on microsoft:main.


wumpus intro statement not playing

We just hear the 'intro-statement' robot... this may be as simple as me putting the sounds in the wrong place.
The intro recording lives under the anzie-wumpus recordings in our content repo.

people are getting it without the intro!


Placing energy blocks next to energy pipe does not automatically connect

if you place down a machine that accepts or extracts power next to/on top of an energy pipe, it does not automatically connect. however placing an energy pipe on the machine itself always works. the energy entity might have to push energy itself rather than relying on the pipe to extract

After looking at the github repo for this video it might just because client is not syncing. See https://www.youtube.com/watch?v=SjXUBG1cKxg


ERROR in Metadata version mismatch - found version 4, expected 3

What version of ngx-editor should I use for working with Angular 4.0 ? I am getting the error "ERROR in Metadata version mismatch - found version 4, expected 3". Could you please help ?

You Should work with version 1.x. The current editor is for Angular version 5+


Support raml 1 and multiply responses per status code

I've added two main changes to your great great project.
1.) support for raml1.0, achieved this by using "raml-1-parser"
2.) handeling multiply responses per status code
Because of different response object now handling multiply responses per status code I as well changed the requestMocker.js file to handle better that kind of responses.
Hope you see my modifications as good addition to already great module!

This closes #26


pre-commit fmf subpath

Allow to run pre-commit with fmf root in a subpath

This means we need a way to propagate --root for tmt commands and for path= argument used in git ls-files

Might be easy enough. Docs to read about hooks: https://pre-commit.com/#new-hooks

Indeed, if it was such a simple fix, I would have made a PR with the feature. If we can create a simple wrapper I think it's trivial, but otherwise I don't see how to extract a specific args in the .pre-commit-hooks.yaml format. Do you think it worth making a small wrapper file for that?

I'm afraid we will have to. If tmt could accept args everywhere it would be easy but it doesn't (we need to add it as the first option)....
The 'entry point' with current 'bash -c' is too hackish to my liking anyway, dedicated scripts might be easier to fix/extend .

I did a bit of quick testing, and there is a more crucial issue that tmt --root path/to/fmf_root lint fails:
fail No tree found in repo 'None', missing an '.fmf' directory?

Running the tmt --root ... run works though so this is a bug in lint.

Which tmt version is that?
$ tmt --version
tmt version: 1.22.0 (ea71a188)

$ tree -a
.
└── a
    ├── .fmf
    │   └── version
    └── t.fmf

3 directories, 2 files

$ tmt t lint

No metadata found in the '.' directory. Use 'tmt init' to get started.

$ tmt --root a t lint
/t
pass test script must be defined
pass directory path must be absolute
pass directory path must exist
warn summary is very useful for quick inspection
pass correct attributes are used

I have tried with both 1.21 and 1.22. Try with this minimal example plan:
summary:
  simple example
discover:
  how: fmf
  filter: "tag: something"
execute:
  how: tmt

@lukaszachy Let me know if you can confirm this behaviour

Confirmed. Please create the issue for lint

As for the pre-commit, I've tried a hack as:
-   id: tmt
    name: tmt
    entry: tmt
    files: '.*\.fmf$'
    verbose: true
    pass_filenames: true
    language: python
    language_version: python3

and
  - repo: https://github.com/LecrisUT/tmt.git
    rev: pre-commit
    hooks:
      - id: tmt
        args:
          - "--root"
          - "test"
          - "lint"
          - "--source"

It sort-of works, but it is not a good solution. We should still maybe make different executable that is not installed outside of a pypi environment (or maybe not even there?). Is it ok if this one is not using click and entry-point for this one?
Also, what do you think about modernizing the build to PEP621 (requires dropping python 3.6 support and rhel8 at least and switching the versioning to git tags)

I'd say rhel-8 support (so python 3.6) is required for now and we will start thinking about being python3.9+ once centos-8 is EOL or rhel-8 moves to AUS
@LecrisUT If you find a way how to create helper script just for the pre-commit usage it would be nice.
All I can think of now is to create separate project (e.g. teemtee/precommit) and let it live there.

Yeah, I've managed to make a helper script in #2007 as you can see. So far works ok, just missing tests and this test if failing. Might be something deeply rooted in testing-farm, so I don't know how to deal with it.


Support Page in LRO response type in CADL

This issue was reported in dotnet https://github.com/Azure/autorest.csharp/issues/2905, but I expect Java DPG should also support this.
Below is an example CADL with LRO POST action that generates a pageable collection of file URIs.
  #suppress "@azure-tools/cadl-azure-core/use-standard-operations" "ADP data-plane API uses custom LRO response template the LRO actions."
  @doc("Initiates the process of generating SAS signed URIs for accessing the data-stream files.")
  @extension("x-ms-long-running-operation", true)
  @asyncOperationOptions("location")
  @pollingOperation(LongRunningOperationStatus)
  generate is CustomLongRunningResourceCollectionAction<
    DataStreamFile,
    {},
    Page<DataStreamFile>
  >;

mgmt generated code https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/resourcemanager/azure-resourcemanager-network/src/main/java/com/azure/resourcemanager/network/implementation/NetworkManagementClientImpl.java#L2279
However, mgmt leaves out the LRO part of the API, it only generate the pageable API
PagedFlux<BastionShareableLinkInner> putBastionShareableLinkAsync

not the LRO + pageable
PollerFlux<T, PagedFlux<BastionShareableLinkInner>> beginPutBastionShareableLinkAsync

(I am not sure whether this thing is even valid)
So, basically we do not know what be the method signature.

ADP removed this. So lower priority.
Discussed with Srikanta, actually we'd like API arch and SDK arch to have guideline on this case. Currently there is no guideline on LRO + pageable, and it is rarely used (if ever) in data-plane.


fix : warning not appropiate when parameter's length is 1

The "There were multiple progress values. [...]" warning is misleading when only one value is getting passed.

thanks!! apologies for the delay!


fix: test staking libs

:notebook: Overview
Adds test contracts for staking libs. Adds unit tests for test contracts.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

10 of 10 (100.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+10.8%) to 95.987%

Totals

Change from base Build<PHONE_NUMBER>:
10.8%

Covered Lines:
900

Relevant Lines:
921

💛  - Coveralls


'posts' and the 'comments' collections lacking subscription

As described here, I had difficulties with displaying the content of the posts and comments collections from the admin panel. I have later found that adding subscriptions for both in the client/tracker.coffee file solved my problem.

I appreciate your PR but we're going to rewrite a lot of this code so it won't be an issue any more.


rationalize naming between target and run-target

the CLI refers to them as "target"s. profiles.yml refers to them as "run-target"s. either we should change the config parameter to just "target" or we should call it "default-target".

@jthandy i remember talking about this a while back. This would be a breaking change. That ok? I figure it's better to do it now than later

I think it's a confusing naming convention as-is. I agree that it would be breaking; maybe we could introduce a deprecation pathway? Deprecate it by 0.6.0? And in the meantime spit out warnings when we detected it in a run?


Add Filter to Default Pet Tasks page

🔗 Issue
886
✍ Description
This PR adds a filter for Default Pet Tasks in the DefaultPetTasksController index method. The filter includes options for Name, Species, Due After, and Recurring, using the same UI design as the Fosters and Adoption Application Reviews page.
Changes:

Added filtering logic to DefaultPetTasksController.
Updated the index view to support the new filter options.

📷 Screenshots/Demos

https://github.com/rubyforgood/pet-rescue/issues/886

Notes for Erin

Are we only dealing with dogs and cats?

@kasugaijin Thank you! keeping that logic in the controller did not feel convention. Happy to make the change

@ErinClaudio looks really good! Much better moving the logic to a concern like that. I have some questions and small comments.

I will finish this up on monday

@kasugaijin


Feature: Support Hotplugging

Currently, if a controller disconnects, the entire app must be restarted. Hotplug support would fix this.

Fixed by 2416e6d


https://jfrog.com/help/r/jfrog-artifactory-documentation/scan-conan-packages-and-buildsCreate devcontainer.json

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


数值类型转换精度调整

Current coverage is 99.45%

Merging #49 into master will decrease coverage by -0.19% as of d7b90a5

@@            master     #49   diff @@
======================================
  Files            2       2
  Stmts         1424    1467    +43
  Branches         0       0
  Methods
======================================
+ Hit           1419    1459    +40
  Partial          0       0
- Missed           5       8     +3

Review entire Coverage Diff as of d7b90a5

Powered by Codecov. Updated on successful CI builds.

已经在很早的版本修改过了：https://github.com/ibireme/YYModel/commit/13cc5979518131cb5fa30952f0c163286ebf57c8


Errors on v4.0.0

Since the upgrade to v4.0.0 we've seen the action throw a very uninformative error, it appears to just print the contents of the lib/index.js file. Our configuration works just fine on v3.0.0.
Do you have any clue what might be going on?

Could be related to the node 16 update? Looking forward to hearing from you.


Make the linera-storage-service handle requests and replies that have size higher than 4M.

Motivation
The service store is limited to 4M in size which is a classic limit of GRPC server. This prevents
having the matching engine test working on service. Here we address this limitation.
Proposal
The following steps were done:

The submission of the write_batch was changed so that now we incrementally submit the batch. In the case of big values, we split into some blocks which are then put together.
We did not use the value-splitting mechanism since we are in full control of both sides of the divide. The lack of use of the value-splitting gets us better speed.
The limitation of 4M also applies to the returning values. That limitation is for tonic, which may be specific to tonic. This limits to the read_value_bytes, read_multi_values_bytes, find_keys_by_prefix, and find_key_values_by_prefix.

These modifications allow to make the end-to-end test of the matching_engine to work.
Test Plan
The test for the matching_engine was switched from rocksdb to service which was the objective and an individual test for writing a single big value was introduced.
Release Plan
Nothing relevant.
Links

reviewer checklist

Let's discuss with the team whether we should be using gRPC streams instead.


[Feat] Static template compilation, Web Workers, Service Workers and sw-precache

I'm submitting a ...
[x] feature request
Do you want to request a feature or report a bug?
A feature
What is the current behavior?
There's no current support for Static Template Compilation nor Web Workers nor Service Workers
What is the expected behavior?
Have support for those 3 technologies in the app.
What is the motivation / use case for changing the behavior?

Static template compilation: Speed up the render process and performance as well as lowering the size of the bundles.
Web Workers: Offloading resource intensive operations to a new thread thus making better use of multicore cpus (today even mobile have multicore).
Service workers: Mainly to support offline applications using libs like sw-precache or sw-toolbox, but also to support background sync and push notifications.

Other information
Here are some links about those subjects:

Static Template Compilation
Web Workers
Service Workers
The difference between Service Workers, Web Workers and WebSockets

Aditionally i'm working on the sw and sw-precache feature myself so i can provide some help in that field.

I've been digging in how to integrate with webpack and so far i have seen 2 plugins that takes care of that:

Offline plugin
sw-precache-webpack-plugin

So far it seems the Offline plugin is better since it states that it fallbacks to AppCache if service worker isn't supported in the browser, further testing and analysis required.

After analysing the current support i take for granted that the best tool is Offline plugin since it allows to use a fallback to AppCache, the browsers related are Safari (partial support) and Edge (currently only available from development builds).
Resource (support):  https://jakearchibald.github.io/isserviceworkerready

After a bit more testing i still think the Offline plugin is the way to go, it works excelent to generate both the service worker for offline support and the cache manifest for as fallback, as well as caching the app.
Meanwhile the sw-precache-webpack-plugin doesn't offer any fallback without support for service worker, it caches fine when in supported browsers, however docs are a bit outdated comparing to the code, and there's some weird behaviour where in production the service worker just generates 1 cache for each file instead of putting all files in the same cache, which i think is due to the WebpackMd5Hash plugin, idk if it's expected behaviour or a bug.
Lastly the sw-precache-webpack-plugin will not work with dev server as the generated service worker doesn't get served by the webpack-dev-server.

ya, eventually these will all be added

I already did add precache with webworkers and fallback to cache.manifest using the Offline Plugin, want me to make a PR?
Although people will need to be aware that Service Workers enforces https.

Also have a manifest.json for Progressive Web Apps, could be a great addition.

@Luchillo I'd love to see your webworker / cache.manifest integration. Please PR! 👍

Gimme a week or so to put my repo on sync with the latest changes in this one.

Hey, feel free to contact me if you need any help with offline-plugin integration :-)

I've had mine working with that plugin for a month or so, but since i started my repo not as a clone but as a different project that after i merged this one, i think i shouldn't make a pull request with all the changes i've made, so i practically need to clone this and put it to work again.

Okay, I think I may submit a PR later this week.

Any updates? How can one create a progressive web app with this project?

Why there isn't any update for progressive web app on this project?? Did someone tried it?


Antibody setup

Hello!
Your dotfile really is a great source for a beginner to learn from. I find myself going back to it and learning new configuration for me own dotfile.
I wanted to ask if your current set up of antibody overpopulates your fpath with each plugin destination and if you've experienced any duplications on your fpath as well?

Hi @Sasquiche! Glad to hear this repo has helped you a little bit :)
It looks like I have one duplicate in my fpath. If you are worried about duplicates in your path or fpath, check out this blog post: https://www.linuxjournal.com/content/removing-duplicate-path-entries
I'm also not sure what you mean by 'overpopulates'?
Here's what my fpath looks like:
/usr/local/share/zsh/site-functions
/usr/local/Cellar/zsh/5.7.1/share/zsh/functions
/Users/jon/Library/Caches/antibody/https-COLON--SLASH--SLASH-github.com-SLASH-mafredri-SLASH-zsh-async
/Users/jon/Library/Caches/antibody/https-COLON--SLASH--SLASH-github.com-SLASH-rupa-SLASH-z
/Users/jon/Library/Caches/antibody/https-COLON--SLASH--SLASH-github.com-SLASH-felixr-SLASH-docker-zsh-completion/src
/Users/jon/Library/Caches/antibody/https-COLON--SLASH--SLASH-github.com-SLASH-felixr-SLASH-docker-zsh-completion
/Users/jon/Library/Caches/antibody/https-COLON--SLASH--SLASH-github.com-SLASH-zsh-users-SLASH-zsh-completions/src
/Users/jon/Library/Caches/antibody/https-COLON--SLASH--SLASH-github.com-SLASH-zsh-users-SLASH-zsh-completions
/Users/jon/Library/Caches/antibody/https-COLON--SLASH--SLASH-github.com-SLASH-zsh-users-SLASH-zsh-autosuggestions
/Users/jon/Library/Caches/antibody/https-COLON--SLASH--SLASH-github.com-SLASH-sindresorhus-SLASH-pure
/Users/jon/Library/Caches/antibody/https-COLON--SLASH--SLASH-github.com-SLASH-zdharma-SLASH-fast-syntax-highlighting
/Users/jon/Library/Caches/antibody/https-COLON--SLASH--SLASH-github.com-SLASH-zdharma-SLASH-fast-syntax-highlighting
/Users/jon/Library/Caches/antibody/https-COLON--SLASH--SLASH-github.com-SLASH-zsh-users-SLASH-zsh-history-substring-search

Thank you for the additional information.
It's clarified my confusion about duplicate items within a *PATH variable.
I misspoke when I said "overpopulate". I had meant if your fpath was being filled with the full path name of each plugin after antibody bundle:
/Users/you/Library/Caches/antibody/https-COLON--SLASH--SLASH-github.com-SLASH-zdharma-SLASH-fast-syntax-highlighting
Rather than a single entry for the plugins home directory:
/Users/you/Library/Caches/antibody
But in the time writing this I just realized that the former has to be the case, as fpath only goes 1 lvl deep when reading! It's silly that I missed that.
You definitely answered my question anyways! Thanks for taking the time to clarify.


Adding Appartme APRM-04-001 TRV

https://github.com/Koenkk/zigbee-herdsman-converters/pull/5497/files

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 83.706%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
6848

Relevant Lines:
8181

💛  - Coveralls

Codecov Report
Base: 83.70% // Head: 83.70% // No change to project coverage :thumbsup:

Coverage data is based on head (797c2c1) compared to base (f5ed78d).
 Consider uploading reports for the commit 20d4128 to get more accurate results

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@           Coverage Diff           @@
##              dev    #2210   +/-   ##
=======================================
  Coverage   83.70%   83.70%
=======================================
  Files         257      257
  Lines        8181     8181
=======================================
  Hits         6848     6848
  Misses       1333     1333

Impacted Files
Coverage Δ

zhaquirks/tuya/ts0601_trv.py
81.46% <ø> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


rendering fails after adding points with mouse and clicking stop/continue instead of start/restart

-> F5/reload
-> start
-> stop
-> add 1+ points with mouse
-> stop/continue
generation/mutation/best value are updating, but the updated paths aren't rendered in canvas
this is due to the following snippet in src/main.js:
if(best.length === points.length) {
    drawLines(best);
}

same behaviour when adding random points using the button then clicking stop/continue
the same patch [https://github.com/parano/GeneticAlgorithm-TSP/pull/2] will address both

@likethisinstead thanks for fixing this!


wrong rpcport (reported by Elbandi)

rpc port (https://github.com/ROIcoin/ROIcoin/blob/master/src/chainparamsbase.cpp#L20) and protocol port (https://github.com/ROIcoin/ROIcoin/blob/master/src/chainparams.cpp#L45) port are conflicted. rpc should be 3376.

https://github.com/ROIcoin/ROIcoin/releases/tag/v<IP_ADDRESS> has been released, closing this bug.


Adding Normal Layer After WMS Layer Does Not Increment Z-Index Correctly

I have 4 layers, in this order:

normal layer
wms layer
wms layer
normal layer

These render out with the following z-indexes:

As you can see the z-index gets reset when switching from WMS layers back to normal layers. Expected behavior should probably be where z-index to continues incrementing in the order layers are added to the map.
Versions

Leaflet: 1.3.1
Vue: 2.5.17
Vue2Leaflet: 1.2.3

My apologies ... I feel bad about posting this. Turns out I was setting the z-index manually.... grrrr


Query with AND operator

This example uses default OR operator.
q = S().query(title__match='taco trucks')

It is possible to use here AND operator?

@un1t Are you deeply invested in using ElasticUtils? If the answer is no, use https://github.com/elasticsearch/elasticsearch-dsl-py instead (as suggested in README). There, you can easily use all the features of Elasticsearch in a straight-forward way.
Just saying, because this is no longer maintained and my experience has been that transitioning the queries to elasticsearch-dsl-py was not hard. The mapping classes and indexing tasks for django are convenient, though - I still use these.

I did not know that project is not maintaned anymore. So, OK, I'll switch to elasticsearch-dsl-py.

I wrote up a blog post about some things we did when converting:
http://bluesock.org/~willkg/blog/mozilla/ditching_elasticutils.html

Thank you!


Very low wps with H200 Gpus

Hello, I am running the multinode_trainer.slurm (llama3_70b.toml) on 4 nodes that have 32  H200 Gpus. However, wps is only around ~200. Any ideas what can cause this slowness?
output.txt
multinode_trainer.slurm.txt

Hi @aniltrkkn  - hard to say without a trace, but most likely something is amiss on the 'between node' connections for your setup and creating this slowness.
You mentioned you are using the multinode_slurm script - are you running this on AWS?  There are some settings in there that were to ensure EFA is used for cross node comms, but it was never tested with H200 as AWS did not have them at that point and we no longer have AWS cluster access.
AWS has up to 3200 GBs for H100/H200 but it could be the settings need to be adjusted for EFA with the new H200s.
A couple options here:
a - if you can confirm you are on AWS (please confirm exactly what you are using ala EC2,  etc)  I can reach out to their SA's to review the multi-node slurm script and see what might need adjusting.
b - if you are not on AWS, you could adjust it directly for your hardware as the script assumes EFA is available so it might need tuning to leverage your higher speed node interconnect.  Assuming my guess re: the likel issue is the between node network speed is correct.
c - finally, you could also run the same test you ran above but turn on profiling in the toml and get a trace or two and that would confirm where the slowdown is. You can gz compress a trace and post here as it should shrink it down to minor size and happy to take a look.

btw, a quick test would also be just run the same short run on llama3-8b with FSDP only and using a single node and lets see how your wps looks there.  That should be quite fast but if that is also slow, then the issue is within node rather than between node and would help ensure we bisecting the issue properly.

Hi @lessw2020, Thank you very much for your response. Here are my responses to your questions:
I am getting high wps with single node 8B trainings.
We are not using AWS for trainings so I need to check if we EFA is available in our training datacenter. But, our multi node training code works fine in the same cluster.
I am attaching the profile trace for one of the multi-node 70B trainings.
profile_trace.tar.gz
This may be not related to the issue but we are training 70B with a mesh of ['dp', 'tp'], [4, 8] (4 nodes). I always thought each data parallel group will have its own shards. But when I increase the number of training nodes to 5, I get this error:
"FSDP+TP sharding does not support uneven sharding for now: tensor dim 0 has size 8192 which cannot be evenly sharded into 40 shards"
It seems like we are sharding the model into 40 instead of 5. Is this the intended behavior?

Hmm the slurm script you posted says CUDA_LAUNCH_BLOCKING=0, but the trace looked like it was run with CUDA_LAUNCH_BLOCKING=1. Could you double check this?

Hi @yifuwang, i made it 0 and it is still very low. It seems like we don't support EFA, and we use InfiniBand. I tried our regular parameters
export CUDA_LAUNCH_BLOCKING=0
export NCCL_SOCKET_IFNAME=eth0
export NCCL_IB_HCA=ibp
export NCCL_MIN_CTAS=32
export UCX_NET_DEVICES=ibp0:1,ibp1:1,ibp2:1,ibp3:1,ibp4:1,ibp5:1,ibp6:1,ibp7:1
export SHARP_COLL_ENABLE_PCI_RELAXED_ORDERING=1
export NCCL_COLLNET_ENABLE=0
export NCCL_DEBUG=INFO
export NCCL_ALGO=NVLSTREE
but they also do not help. Is EFA absolutely necessary?

@aniltrkkn Could you share the new trace? Either way, you are heavily communication bound (e.g. FSDP all-gather is >2x longer than the forward compute). Perhaps, could you try HSDP (no TP) with 8-way sharding to keep the FSDP all-gather/reduce-scatter within node?

@aniltrkkn I struggled with the same issue, but fixed it by specifying the right environment variables and installing a library
Related:
https://github.com/pytorch/torchtitan/issues/708#issuecomment-2506388356


update dockerclient & stretchr & add 'docker run --add-host' param

update the dependency "dockerclient and strrtchr" and supported "docker run --add-host param"

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "myfeature" git@github.com:lokikiller/swarm.git somewhere
$ cd somewhere
$ git rebase -i HEAD~2
editor opens
change each 'pick' to 'edit'
save the file and quit
$ git commit --amend -s --no-edit
$ git rebase --continue # and repeat the amend for each commit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

Hi @lokikiller I think you miss something :) When update the dependencies, the json file of Godeps should be changed and be a part of the commit too.

Indeed!
godep is not very straightforward to use.
Anyway: One should never touch Godeps/ manually.
In order to update dockerclient for instance, you should do something like:
go get -u github.com/samalba/dockerclient
godep update github.com/samalba/dockerclient

This should take care of updating both Godeps/Godeps.json and Godeps/_workspace
Maybe we should write something about that in the contributing docs.
@chanwit @jimmyxian thoughts?

@aluzzardi it's partially there in:
https://github.com/docker/swarm/blob/master/CONTRIBUTING.md
I'll update the doc accordingly.

@aluzzardi @chanwit
Yeah.. Also, I think we should add some guidelines in Godeps/Readme

I'm closing this one, please ping us when you are ready and we will reopen.