GTDB.r220 taxID vs scientific name

I am trying to figure out how to merge the read counts in the outputs from centrifuger-kreport. I’ve separated the report by taxonomic level and now I’m trying to merge the counts across samples. I believe these are the column IDs  for the kreport format.

root_relAbund
root_fragCount
direct_fragCount
rank_code
taxID
scientific_name

I thought I could use the scientific_name, but I’m realizing that these are not unique and there are multiple taxIDs per scientific name. I am trying to decide if it would be reasonable take the sum of root_fragCounts for all rows with the same scientific name. For example, here are the first 10 matches of Bacillota_I using the gtdb.r220 index.
The first taxID recruits most of the fragments but there are many fragments mapping to the other taxIDs with the same scientific name.
0.34     64338   0             P             10316302               Bacillota_I
0.01     1877      0             P             10315291               Bacillota_I
0.01     1609      0             P             10316628               Bacillota_I
0.00     870        0             P             10055357               Bacillota_I
0.00     857        0             P             10077854               Bacillota_I
0.00     853        0             P             10085662               Bacillota_I
0.00     587        0             P             10315035               Bacillota_I
0.00     273        0             P             10257521               Bacillota_I
0.00     239        0             P             10221036               Bacillota_I
0.00     239        0             P             10223213               Bacillota_I
Thank you for your help!

This is all fixed with the rebuilt GTDB database! Thank you Li for your speedy response and the quick fix!!

Thank you for the testing! I have also updated the index on the dropbox. Only the ".2.cfr" (for taxonomy tree) and ".4.cfr" (index building information) files need to be updated.


 Tag write text twice

Describe the bug
On using  with  the text provided bt shortcut always is displayed twice not only once.
ex: if shortcut is writing word "Hello", on using shortcut it will write in textarea "HelloHello"
This is the xml configuration I used to reproduce the above issue
<View>
  <Labels name="labels" toName="audio">
    <Label value="Speaker 1" />
    <Label value="Speaker 2" />
  </Labels>
  <AudioPlus name="audio" value="$audio"/>

  <View visibleWhen="region-selected">
    <Header value="Provide Transcription" />
  </View>

  <TextArea name="transcription" toName="audio"
            rows="2" editable="true"
            perRegion="true" required="true" >
    <Shortcut alias="Silence" value="SILENCE" hotkey="ctrl+q" background="#3333333" />
  </TextArea>
</View>

Steps to reproduce the behavior:

Go to playground and copy past above configuration
Click on shortcut hotkey "ctrl+q"
You will see "SilenceSilence" in textarea

Expected behavior
It should only add the text in shortcut once.
Screenshots

I went through the code of TextArea and checked the function
    onShortcut(value) {
      self.setValue(self._value + value);
    }

because of the concatenation it always displayed it twice because self_value is populated from onChange and Value which comes from shortcut is concatenated on it.
I hope that this might help if my investigation was correct.

@makseq I'm using version 0.8.0 which is an old one, but the screenshot from playground.
idk if the code I'm sharing is updated or not on latest versions of label-studio.
I managed to solve it on my side by doing this, but again I think this might be old code for newer versions,
I hope this might help again :)
    onShortcut(value) {
      self.setValue(self._value + value)
      self.addText(self._value)
    },

@lxtadhamnawito check the latest develop version of LS from the develop branch, it should be fixed there.

@makseq How to upgrade my current one ?

pip install -U label-studio
label-studio start project-name
After this LS will migrate your old data to the new DB. Old projects continue working with old version too.
I recommend to create a fresh python environment for the new LS version.


Fix media queries for browser

https://github.com/jxnblk/reflexbox/issues/33#issuecomment-238982151
Not sure whether we should wait for https://github.com/jxnblk/react-media-context or implement something else.
Right now, the sm, md, and lg should not be used, because it's not entirely tested. Maybe it works, but I am not sure yet.

Ok, I know what we need https://github.com/este/este/issues/1120

Ok, we can use the sm, md, and lg, but it will override server-side rendered HTML. It's good enough for now.
Possible solution: Update Reflexbox to allow custom media matches on the server side. Use some Node.js useragent library to detect mobile, tablet, desktop. Ideally, the server should know the device screen width, but I don't know whether it's even possible. We would have to send detected screen device in additional request, which is no-go. Of course, we can still use plain old CSS for browser responsive stuff, but it's DX ugly.
So for now, I think responsiveness should be based on max-width only.

Hmm, I think the service workers can resolve all except the first page loads.

For now, the Este suggested pattern is to use only the max-width for the responsiveness and wait for server side rendering fix.

Fixed for new versions of Reflexbox(from 2.2.0 I guess). Update dependency and it will work! :)
Also don't forget to uncomment relevant lines in este/src/common/app/components/ThemeProvider.js

Sure. Thank you.

The new reflebox version introduced a performance drawback.
Check https://github.com/jxnblk/reflexbox/issues/46 and you'll see what I mean.
I guess we'd be better using https://github.com/jxnblk/grid-styled, which is based upon the already suggested https://github.com/styled-components/styled-components . Since it's just plain old css, server rendering is fixed.
Also, grid-styled source code is very simple and it'd be easy to create custom flex and boxes components and only replace them at the components folder with the same old "api", avoiding have to rewrite all the app's render methods.
I could try a PR for this if you think this is a good solution.
By trying this approach we could get rid of pseudo hovers depending on state and some other things. We could also think about using https://github.com/Khan/aphrodite
It's syntax sucks compared to styled components but we could get to the same point, and this is battle tested.

I know about that performance drawback. Also, I am not sure how it's possible to fix the server-side rendering. I can't concentrate on this issue right now since I am going to commit the relatively big redux-observable update. Finally, Este will have the sane side-effects model without always crooked promise middleware.
I would rather see styled-components, it already supports React Native.

Client-Hints look to be relevant here https://twitter.com/Real_CSS_Tricks/status/790598747835117570
"Ideally, the server should know the device screen width, but I don't know whether it's even possible. We would have to send detected screen device in an additional request, which is the no-go."
Solves this problem?

rebass will be probably build with styled-components, so we don't need to fix it now


onLoad callback called on every render

When using arrow function as a callback to onLoad prop, it is called on every render. This happens because the identity of the function changes each time and this function is used as a dependency to this useEffect.
https://github.com/wbkd/react-flow/blob/592bb9f7e6a6ec4e1385be36cc3efe53fbc07512/src/container/GraphView/index.tsx#L149-L173
This can be solved by wrapping this function in useCallback as mentioned in react documentaion.

Or it would be great at least mention in the README that the identity of this function must not change.

you are right! It's fixed in v4.9.2

Great! Thanks for resolving these issues so fast :+1:


feat: no-allocation hex-encoding using HexWriter

HexWriter allows to directly hex-encode binary data to a std::fmt::Write object from any source that can write to a std::io::Write object. This saves between one and two allocations depending on the use case.
Let's assume a function Foo::encode(&self, writer: std::io::Write) -> Result<(), std::io::Error>:

Writing a Foo object to Formatter as hex would require 2 allocations: one to encode bytes into a Vec<u8> and a second to encode the bytes into a String before writing it to the Formatter. Here we can save 2 allocations.
Writing a Foo struct as hex into a String, here we only save 1 allocation (the intermediate byte step)
Writing a Vec<u8> as hex to a Formatter: 1 allocation saved (String)

@dpc this project might be unmaintained, should we just publish a fork?

@elsirion Rust Bitcoin has a separate hex crate now or something. Maybe we can just add it there. Maintaining creates is a lot of ungrateful work. 🤣


Add A Status Endpoint

e.g "/grabbit/status"
Would be an explicit channel for information commonly needed by clients.  Some simple, but extremely useful information :

Grabbit is installed, with version
Jobs completed/failed/in-progress in the last hour, with status
Lifetime jobs completed/failed/in-progress with status
maybe more now, or in the future

The "Grabbit is installed w/ version" is handled by Sling.
For example,
curl -u admin:admin http://localhost:4502/system/console/bundles/com.twcable.grabbit.json | jq '.data[0].version'

For the other items, they would fall out naturally as part of #22

Ah, agreed. I'll close this out


[FEATURE] Customisable Profile Themes

Description
In light of the changes made in #513, I think it would be really great if this gradient config is an "optional" enhancement that people could use in their profiles. An option in the data config files for a hex code or a "trigger" string, which defines the background for the page would be really great. Maybe we can call it "theme"
/public/data/<file>.json
{
  "name": "J. Doe",
  "bio": "Lorem Ipsum",
  "avatar": "https://github.com/<name>.png",
  "theme": "gradient", // or "0xffff00" or "0xfc0bb8" or "default"
  "links": [
    {
      "name": "Follow me on GitHub",
      "url": "https://github.com/<name>",
      "icon": "github"
    },
    {
      "name": "Follow me on Twitter",
      "url": "https://twitter.com/<name>",
      "icon": "twitter"
    }
  ]
}

Screenshots
No response
Additional information
Stems from #513 and this is a feature that linktree and other projects also include.

@Vyvy-vi @Panquesito7
I am new to open source, can I work on this?

@Vyvy-vi @Panquesito7 I am new to open source, can I work on this?

@Vyvy-vi, will you still work on this? 😅

If you want to, go ahead! :)

Should we add a button called theme and select the color or gradient from color picker? and then save the value to the .json file?

Should we add a button called theme and select the color or gradient from color picker? and then save the value to the .json file?

that will be weird to integrate 😅 I think we can allow the user to add a gradient in the JSON directly...

yes, I think for colours, we can have some default color text values(like 'red', 'blue', etc etc. or maybe 'classic', 'modern', 'xyz' and if those aren't present, it uses colour hashes)

yes, I think for colours, we can have some default color text values(like 'red', 'blue', etc etc. or maybe 'classic', 'modern', 'xyz' and if those aren't present, it uses colour hashes)

looks cool, a gradient could be a linear-gradient property... opening support for custom hex codes as well

looks cool, a gradient could be a linear-gradient property... opening support for custom hex codes as well

That can be neat!
There's so much room to customise in here, once an MVP version of this is created.

Can anyone help me understand it a bit more? any other platform to discuss more on this than GitHub?

Can anyone help me understand it a bit more? any other platform to discuss more on this than GitHub?

Discord?

looks cool, a gradient could be a linear-gradient property... opening support for custom hex codes as well

That can be neat! There's so much room to customise in here, once an MVP version of this is created.

so it would be styles={{ background: profile.background ?? '#fff' }} I believe.

Can anyone help me understand it a bit more? any other platform to discuss more on this than GitHub?

I think it makes sense to discuss this in the issue itself so that we can maintain the context.
But certainly, feel free to ask any questions on our discord server - http://discord.eddiehub.org/

I am following below to customize the background, please let me know the right method:

In public/data/.json file I am assuming there is a key called "theme" where the users will add background-color
Note: At present there is no key called "theme" in the JSON files, but in case if it is present then add the customized theme else add default value i.e. White.
Background should remain White in the Home.js page but when the user navigates to their respective ProfilePage.js then the background theme should apply

I tried 2 methods:

Apply the background to the body using document object but the issue is it applies to the Home page as well

ProfilePage.js

Create a div tag and add background to it but it doesn't cover the whole body. This just wraps Profile and Link components but I am not sure how to apply this theme to the body for individual users I need help on this.

ProfilePage.js

I think you'd want to modify the https://github.com/EddieHubCommunity/LinkFree/blob/main/src/Components/UserProfile/User.js file

@Vyvy-vi, I made changes and created a PR-820 please review it.

A new version of LinkFree got released. We have a lot more flexibility now
I will close this and a new issue can be created


fix: Distinguish field nodes from text in the expression box.

Fixes: #2146

@riccardo-forina - wdyt - the angular UI used a background color to distinguish the field nodes.  I think using bold is on keeping with the new UI

Yes - need one more pass.
On Wed, Jun 3, 2020 at 9:44 AM Riccardo Forina<EMAIL_ADDRESS>wrote:

@riccardo-forina approved this pull request.
Eventually we'll move await the UI specific stuff from here, right?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/atlasmap/atlasmap/pull/2147#pullrequestreview-423566440,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAWX4LNZRUKPF6BQJ44VZULRUZHTBANCNFSM4NQDYTIQ
.


Prototype simple request modifiers in create object api

To demonstrate how we will generally handle request modifiers we should implement simple ones in the Client::InsertObjectMedia() operation, for example, setting the Content-Type header, or ifGenerationMatch.

Note that IfGenerationMatch, UserProject, Generation are all implemented.  We have not implemented parameters to change arbitrary headers, nor have we implemented the full complement of optional parameters for each request type.
I am going to leave this open because we have not prototyped the headers part.

This was fixed in #969 (or maybe earlier), where we introduced and used IfMatchEtag a new option that creates request headers instead of query parameters.


Source plugin

Coverage increased (+0.01%) to 60.535% when pulling 86dbb35cc662d473552753d15f33432fbb2ed558 on kevgliss:source-plugin into b66d7ce1fdf6cdd1b3860ae645c79796934bc43a on Netflix:master.


Upgrade packages

Codecov Report

Merging #291 into master will not change coverage by %.
The diff coverage is n/a.

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


Reimplement the names mechanic

The names mechanism was removed in order to support the shared interface of all the Handlers methods but should be added back in a event-cognizant manner.

I've been trying to think this through in light of #42 and the fact our system is currently fully async. It makes sense to me to have a sort of rename event that can happen and change names (how does this work with old messages? onus on presenter?) and potentially splitting out the names state to be managed separately from the game state (can/should the game iterator have access to this? Would it have a separate reducer/merger?)... but I am not certain about how to handle the synchronous elements of needing a name upfront. If we go and implement a truer lobby (#8) would it be decided then? Or should it be decided before even joining a lobby?

I've been trying to think this through in light of #42 and the fact our system is currently fully async. It makes sense to me to have a sort of rename event that can happen and change names (how does this work with old messages? onus on presenter?) and potentially splitting out the names state to be managed separately from the game state (can/should the game iterator have access to this? Would it have a separate reducer/merger?)... but I am not certain about how to handle the synchronous elements of needing a name upfront. If we go and implement a truer lobby (#8) would it be decided then? Or should it be decided before even joining a lobby?

At the moment, dynamic renaming seems like a future item - games like Jackbox do not support this at all. The best mechanism is likely to determine this at the time of joining the lobby.


E-dagger cooldown

Description
If I (de)activate e-dagger via actions window it won't have cooldown. (Probably some objects also have same problem)
Reproduction
Try activate it via action button ("Z" by default). See cooldown. Try the same via action window. No cooldown
Screenshots

https://github.com/user-attachments/assets/7fc2e090-3afe-4447-9ce4-df6bbd460770

Thats like all of the items, no? Pretty sure CDs are there to prevent malicious server lag inducing macro spamming and similiar.

Thats like all of the items, no? Pretty sure CDs are there to prevent malicious server lag inducing macro spamming and similiar.

for edagger its because it's a pen so it has a cooldown due to the pen clicking sound, so game made a mistake here. see eswords, you can turn em on and off real quick with no cooldown


New / improved accessibility themes

Accessibility options should include options to select alternative themes to meet user's requirements. Some of these already exist (but could do with tweaks to improve them) and others need to be created from scratch:

[ ] dark mode (new)
[ ] light mode (new)
[ ] high contrast
[ ] black on yellow

Duplicate - no idea how I accidentally created this twice


Use ul()

Codecov Report

Merging #242 (5f62958) into develop (d9d48ac) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##           develop      #242   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           43        43
  Lines         1324      1325    +1
=========================================
+ Hits          1324      1325    +1

Impacted Files
Coverage Δ

pfhedge/instruments/derivative/american_binary.py
100.00% <ø> (ø)

pfhedge/instruments/derivative/european.py
100.00% <100.00%> (ø)

pfhedge/instruments/base.py
100.00% <0.00%> (ø)

pfhedge/instruments/__init__.py
100.00% <0.00%> (ø)

pfhedge/instruments/primary/base.py
100.00% <0.00%> (ø)

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 d9d48ac...5f62958. Read the comment docs.


Add hand joints tf publishing functionality

This PR is to extend the functionality of not only publishing hand(palm) tf and printing button info originally, but also publishing all finger joints tf.
The final result of this PR is as shown in the figure below:

Because the string representing finger joint transformations is too long (truncation happened with the ndk==21.4.7075529), the whole string has been split into several chunks to avoid truncation. (Or, upgrading ndk version to the latest one is likely to solve the problem with no need of splitting.)
Also, in this PR, the whole project has been set up as a ros package, with launch file and corresponding rviz configuration file provided for easier testing.
However, I'm not sure if it's proper to set it as the ros package, and would like to seek for your suggestions.

Hello and thank you for the contribution!
Unfortunately, I don't have access to the Oculus Quest at the moment, so I cannot check the changes. That's why it's better to keep your changes as a pull request until they can be verified. I hope this makes sense to you.

@Jendker Thanks for your response! Before verification, please feel free to keep it as the PR. Also, any advice on the changes are welcome!


Color Reference

Hello @brynbellomy
Nice job done with this library, but can you put a reference image with all the colors included in this library?
Thanks,
Kex

Sure thing, I'll add a screenshot of that page to the README momentarily.
By the way, here's the source of all Flat UI colors in the cosmos: http://flatuicolors.com/


[Bug Report] Strange named directory was created without permission

Problem Summary
I found that after running dex:
$ ls -la .
drwxr-xr-x    - hibiki  3 Apr 20:28 \u{1b}[0m\u{1b}[1mDENO_DIR location:\u{1b}[0m
drwxr-xr-x    - hibiki  3 Apr 20:28 .
drwxr-xr-x    - hibiki 30 Mar 19:03 ..
.rw-r--r-- 1.8k hibiki  3 Apr 20:23 main.ts

$ tree .
.
├── \u{1b}[0m\u{1b}[1mDENO_DIR location:\u{1b}[0m
│  └── home
│     └── hibiki
│        └── .cache
│           └── deno
│              └── dex
│                 └── script.ts

It is seems result of deno info, but I have no idea why the directory was created.
My Environmet

deno's version

$ deno --version
deno 1.20.4 (release, aarch64-unknown-linux-gnu)
v8 <IP_ADDRESS>
typescript 4.6.2

dex's version

I installed dex from this URL. If this issue has already been solved in HEAD, please release new version tag.
<EMAIL_ADDRESS>

Thank you for reporting. I'll check it.


Docs for commit message convention and changelog generation

Based on the discussion in #16 I created this ticket for creating docs.

The updated commit guidelines can be viewed now on GH here: https://github.com/SAP/cloud-commerce-spartacus-storefront/blob/develop/docs/contributing/commit-guidelines.md


Pull in swift-corelibs-foundation Decimal improvements

This patch pulls in numerous improvements and bug fixes to Decimal in swift-corelibs-foundation. Each commit in this PR corresponds to a (hand applied, modified if necessary) commit from the original swift-corelibs-foundation repo.

@swift-ci please test


Fix SCIOND godocs

The documentation strings were on private objects, which means they were not included in the godoc. Now they're moved to interface definitions, making them public.

This change is

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed.

Comments from Reviewable


Factorisation over elliptic curves

The aim of this branch is to refactor computational core of factorisation over Montogomery elliptic curve. Here is a changelog:

Move computations on elliptic curve into separate module. Use more sophisticated types to represent points on a curve, which helps us to avoid mixing points from different curves.

Write separate tests for arithmetic over elliptic curve.

#21 Use B1, B2 and CC parameters as per GMP ECM table.

#23 Fix jumping from tier to tier.

Rewrite and simplify Step 1 of elliptic factorization. The code was overengineered and prematurely optimized, making it very hard to read and understand. It appeared that all these complications have no measurable impact on performance.

Reimplement Step 2 in a right way. In fact previous implementation has nothing to do with Step 2, it was actually slightly modified Step 1. This has a great impact on performance, which is witnessed by the following table. For integers, which factors were found on Step 2, timings are drastically lower.

Benchmark
v. <IP_ADDRESS>
branch

factorise50
26 ms
8 ms

factorise60
6 ms
5 ms

factorise70
3053 ms
213 ms

factorise80
488 ms
169 ms

factorise90
44 ms
26 ms

factorise100
4373 ms
3039 ms

Nevertheless, there is plenty of room for further improvement. I have done some experiments, but their proper productionalization will take much more time than I have available at the moment. That said, I decided to delay them indefinitely and merge present state of affairs into master.

This sounds great.  I'll try to have a look see.
@ebutleriv might be a good second reader since he was messing around with using some Haskell elliptic curve apis last spring.

Oh, nice! Looking at this now

@Bodigrim  question: why do some of the knownnat variables have funny names like "a24"?
:)

Derp never mind. I need to read more closely :)

@EButlerIV thanks for looking into this.

Np. This looks really good. The new Montgomery curve module is super clean and easy to noodle around with and congrats on the significant factorization performance increase. IMO it's good to merge as-is.

Cool. Many thanks for your time.


404 at: /project/who-written-for/

On a website, while navigating from https://www.docker.com/open-source to http://docs.docker.com/project/who-written-for/ through a Start Contributing button, I got a 404 response (Sorry, we can't find that page).
Complete URL: https://docs.docker.com/sorry/#/project/who-written-for/.

Looks like https://www.docker.com/open-source links to http://docs.docker.com/project/who-written-for/ which doesn't exist.
Repro

Fixed in 1a9f1fdc349a0fc1cf835bfa08f5db0518f7bdb2


Returning pointers to static memory in bip39.c

In bip39.c, functionsmnemonic_from_data() and mnemonic_from_data_indexes() return a pointer to static memory. This is bad for two reasons:

the static memory, at maximum possible size, is allocated forever, even if I never call the function
the caller may not know there is a hidden shared buffer between calls, and that can lead to some really nasty bugs, depending on the lifetime of the returned pointer in the caller's code.

I think these two function should be changed so that the output value is an argument (as a pointer). It's an API change though.

We are aware of both limitations and keep them in mind when using these functions (the same paradigm are used in a couple of other places).
I am not strictly against the API change, but the reason for using this awkward pattern is to know the memory requirements at compile time and thus not encountering stack overflow during the runtime.

Wasted static memory is reducing your stack depth all the time, since on little platforms, the BSS and stack are the same area.


avx: implement mm256{hadd,hsub}_{ps,pd}

All these intrinsics have a corresponding llvm intrinsic.

Thanks for the PR @vbarrielle! Unfortunately though I think #90 beat you to the punch and it's just had a few blockers in the meantime! I'm going to close this for now but there's likely always more intrinsics to choose from :)

My bad, I had not checked active pull requests. Anyways this showed me it was quite easy to bind intrinsics, so I may find some other ones :)


Image resolution on high definition screen

Hello,
I use Darkroom for my gallery but I notice that the image resolution is not so good using high definition screen (I think it depends from Piwigo core).
First of all, are there any chances to force automatic image size to "large" (or what else) for everyone and every screen?
Then (assuming "large" size 1008x672 selected), I noticed that I can obtain very nice photo resolution if I set width less then 1008 (i.e. 800 or 700): <img src="..." width="800" alt="Photo" id="theMainImage" usemap="#maplarge">
So I'd like to see image with 70/80% of original width to improve resolution. How can I do that? I'm trying using CSS without success...
I'd like to set default size to 1400px approximately and to display image at 1000px.
Thank you in advance.

You can set the default derivative size to large in local config with:
$conf['derivative_default_size'] = 'large';
I don't really understand the rest of your theory, though. Soft-scaling down the image via img width to 80% of the src file doesn't sound like a sane solution :-)
I don't see such issues with a 1080p and a retina 4k iMac. Maybe check your browser isn't set to 110% scaling or something?
Anyways, the template code uses the actual derivative's width for the img width, so CSS won't help here. You'd need to override the template and do the funky calculations there.

Thank you tkuther.
I set the default size.
About image resolution I've just tried Microsoft Edge and it works fine.
Instead, Chrome and Firefox give not so good image resolution... they work fine with 80% of width. I don't know why, there's no zoom.
Anyway, thank you for info :)

I've just found the problem. Windows uses a rescaling factor (zoom of 125%) in order to display objets on relative small screen with hi resolution.
https://www.thurrott.com/windows/windows-10/4597/windows-10-feature-focus-display-scaling
So I think that the problem is for the most of windows users with laptop and high resolution :(

I've just found the problem. Windows uses a rescaling factor (zoom of 125%) in order to display objets on relative small screen with high resolution.
https://www.thurrott.com/windows/windows-10/4597/windows-10-feature-focus-display-scaling
So I think that the problem is for the most of windows users with laptop and high resolution :(
We should use window.devicePixelRatio to restore right image size.
https://www.jeffersonscher.com/res/resolution.php

Do you think that it's possible with template? Or should I ask to Piwigo forum?

I’m not using Windows in any way, so I can’t test this. I don’t think it’s a Piwigo core issue either.


GH-44421: [Python] Add configuration for building & testing free-threaded wheels on Windows

Rationale for this change

There's no blockers anymore for building Windows wheels for the free-threaded build, so this PR adds the necessary configuration to do that.
What changes are included in this PR?

Add jobs to build free-threaded wheels on Windows
Move VCPKG-related stuff to a reusable base job

Are these changes tested?
No tests required.

Are there any user-facing changes?
No.

GitHub Issue: #44421

If someone could trigger the new jobs, that'd be really helpful!

@github-actions crossbow submit -g wheel-windows-*

Unfortunately, while the free-threaded wheel is built correctly, py -3.13t -c "import pyarrow" fails. No error shown. Does anyone know how I could inspect stderr to see why this fails?

Unfortunately, while the free-threaded wheel is built correctly, py -3.13t -c "import pyarrow" fails. No error shown. Does anyone know how I could inspect stderr to see why this fails?

I haven't tested and I am unsure if this works but maybe we can try this (https://stackoverflow.com/a/21912169):
py -3.13t -c "import pyarrow"  || echo ERROR && exit /B 1 instead of py -3.13t -c "import pyarrow"  || exit /B 1

The Windows failure is probably related to pypa/setuptools#4662 and should be fixed in the next setuptools release.

Hmm, that one should be fixed in CPython AFAIU: https://github.com/python/cpython/issues/111650

Ah, scratch that, the rationale is actually here:
https://github.com/pypa/distutils/pull/310/files

Unfortunately, while the free-threaded wheel is built correctly, py -3.13t -c "import pyarrow" fails. No error shown. Does anyone know how I could inspect stderr to see why this fails?

Well, stderr should already be shown by default, so it's weird that nothing gets displayed.

@github-actions crossbow submit wheel-windows-*

Given setuptools does not seem in a hurry to merge the distutils fix, I've tried to push a manual workaround in this PR.

Well, building the free-threaded wheel failed with:
LINK : fatal error LNK1104: cannot open file 'python313t.lib' [C:\arrow\python\build\temp.win-amd64-cpython-313t\arrow_python.vcxproj]

@github-actions crossbow submit wheel-windows-cp313*

@github-actions crossbow submit  wheel-windows-cp313-cp313-amd64

Ok, we're making progress. The various PyArrow modules import successfully:
https://github.com/ursacomputing/crossbow/actions/runs/12400784841/job/34618729478#step:11:680
C:\>py -3.13t -c "import pyarrow"   || exit /B 1
C:\>py -3.13t -c "import pyarrow._gcsfs"   || exit /B 1
C:\>py -3.13t -c "import pyarrow._hdfs"   || exit /B 1
C:\>py -3.13t -c "import pyarrow._s3fs"   || exit /B 1
C:\>py -3.13t -c "import pyarrow.csv"   || exit /B 1
C:\>py -3.13t -c "import pyarrow.dataset"   || exit /B 1
C:\>py -3.13t -c "import pyarrow.flight"   || exit /B 1
C:\>py -3.13t -c "import pyarrow.fs"   || exit /B 1
C:\>py -3.13t -c "import pyarrow.json"   || exit /B 1
C:\>py -3.13t -c "import pyarrow.orc"   || exit /B 1
C:\>py -3.13t -c "import pyarrow.parquet"   || exit /B 1
C:\>py -3.13t -c "import pyarrow.substrait"   || exit /B 1

However, there is a crash when importing test_cffi. I think what happens is that cffi was compiled from source, perhaps with the wrong compiler options (because of the aforementioned setuptools bug?). We can try uninstalling cffi before running the tests.

@github-actions crossbow submit wheel-windows-cp313*

@github-actions crossbow submit wheel-windows-cp313*

@github-actions crossbow submit wheel-windows-cp313*

@github-actions crossbow submit wheel-windows-cp313*

@github-actions crossbow submit wheel-windows-cp313*

@github-actions crossbow submit wheel-windows-cp313*

@github-actions crossbow submit wheel-windows-cp313*

@github-actions crossbow submit wheel-windows-cp313*

@github-actions crossbow submit wheel-windows-cp313*

@github-actions crossbow submit wheel-windows-cp313*

Update: the distutils fix was merged in setuptools.


Star labels on grid view...orientation

The names do not rotate to remain facing the user point of view as the position of the 3-D grid is altered. This must be fixed to ensure practical useability. This problem continues from A very 1st test iterations of the program.

understood. The is not straight forward, but I will leave this here as something to do.

finally fixed


Don't specify tokio version in shuttle_service

It will prevent other packages depending on a newer version of tokio from building.

Hey @snylonue, welcome and thanks for the PR! Unfortunately we have to lock down the tokio version currently, which does mean certain dependencies won't work with shuttle. Until we can fix this issue, you may be able to use an older version of the incompatible crate.
Context: https://github.com/shuttle-hq/shuttle/pull/348

Thanks for this @snylonue!! As Oddbjorn said, our current architecture needs to have the version pinned. However, this should be something we'll be able to get rid of in the future as we're improving our isolation model.
But still, thanks a lot for contributing to shuttle!!


Fix issue 18832 — std.typecons.tuple comparison broken for floating point elements

This code compiles:
import std.typecons : tuple;
auto tup = tuple(double.nan);
assert(tup > tup);
assert(!(tup < tup));

The reason is that Tuples opCmp assumes comparison on the fields are total.
(Cannot reopen #6498 due to GitHub issue)

I don't know what's wrong with the linter. It says *** Error in `/home/circleci/phobos/generated/dscanner-032ac7e3ed5ea7df5e097badcfcd91d3cb8f18da/dsc': free(): invalid pointer: 0x00007ffff7fe4a00 *** Maybe it suffices to restart the CI.

The linter should be revised. It rejects auto functions because of no return statement even if they contain a mixin statement.

The linter should be revised. It rejects auto functions because of no return statement even if they contain a mixin statement.

Are you referring to DScanner? Please open an issue with a testcase there then? Thanks!

I'll close this PR in favor of splitting the minor changes off into separate one.
It will be reopened and force pushed after the new PR is merged.

Please squash instead of merging.

I can do squash and rebase manually, but doesn't Github have the squash and merge feature any more? Some time ago, I learned that manual rebasing wasn't necessary any more.

Yes it does, but people abused it here, which is we disabled it for dlang-bot

Technically, there are two distinct changes: Fixing table in the documentation of toString and the fix itself. I realized the table is srewed up after the merge of #6502.

Technically, there are two distinct changes

Then please separate them in two PRs (or move the doc change fix in another PR). Thanks!

There is more stuff to be done to fix the ordering.

Why do you constantly keep closing this PR? That's more noise than keeping it open.

For the last one: I thought I wouldn't be there some time.
I've added isPartiallyOrdered in std.traits in #6513. The issue boils down to D not having real support for partially ordered types (partially meaning possibly non-total, not the mathematical term).
@wilzbach Should I reopen now or when #6513 is merged (if it is not rejected)?


delay in fetching data issues

Hi @sagiegurari i need your help
i work in Api server that responsable to fetch data from db and send it.
assume my table has 1,500,000 rows
it take about 50 seconds to server receive all data from db...is that normal ?
in apps like dbForge...the execution time is about 1 second
is it dependent to network infrastructure ? or any method in simple oracle db to make it faster ?
thank you

are you streaming it (option streamResults=true)?

no i give data with resultSet method

can you show me code snippet because if you are not using stream, basically it means i'm fetching 1.5 million rows into the memory which is really bad.
that is what streaming is for.

if i say using stream another branch of issue comes...
that node js response.write ends suddenly!
but if we reject  streaming...50-60 seconds is horrible
in normal mode :
dbi.getConnection(c.dbConfig, function (err, connection) {
                    if (err) {
                        done(err);
                        //log.error(config.e[1], err);
                    } else {
                        connection.execute(input.query, {}, {
                            autoCommit: true
                        }, function (err, data) {
                            if (err) {
                                done(err);
                                //      log.error(config.e[1], err);
                            } else {
                                job.remove(function (err) {
                                    if (err) throw err;
                                    setTimeout(function () {
                                        done();
                                        console.log('removed completed job #%d', job.id);
                                    }, 50000);
                                });
                            }
                            dbi.releaseConnection(connection, function (err) {
                                if (err) {
                                    done(err);
                                    //log.error(err);
                                }
                            })
                        })
                    }
                });

in streaming mode :
dbi.getConnection(c.dbConfig, function (err, connection) {
            if (err) {
                done(err);
                log.error(config.e[1], err);
            } else {
                var checkForDataSend = true;
                if (input.amount == 'all') {
                    response.writeHead(200, {'Content-Type': 'text/plain'});
                    //response.writeContinue();
                    var stream = connection.query(input.query, [], {streamResults: true});
                    stream.on('data', function (row) {
                        checkForDataSend = response.write(JSON.stringify(row) + ",");
                    });
                    stream.on('end', function () {
                        //job.set('data', '', done);
                        console.log("now fetch data is ended");
                        response.end();
                        dbi.releaseConnection(connection, function (err) {
                            if (err) {
                                done(err);
                            }
                        })
                    });
                    stream.on('error', function (err) {
                        dbi.releaseConnection(connection, function (err) {
                            if (err) {
                                done(err);
                            }
                        })
                    });
                    response.on('close', function () {
                        console.log("response close event sent")
                    })
})

your streaming code from quick glance looks correct from db point of view, but not from the response.write point of view.
See nodejs docs for more info:
stream.write
Basically you are doing a 'write' before the response can handle more write operations.
Specifically from nodejs docs

The return value indicates whether the written chunk was buffered internally and the buffer has exceeded the highWaterMark configured when the stream was created. If false is returned, further attempts to write data to the stream should be paused until the 'drain' event is emitted.

by the way, not part of this issue, but if you are using pool, you can do pool.run, if you are not (like I see above, which is less recommended but anyway...) you can do oracledb.run(connAttrs, action, callback); so you don't need to release the connection on your own
https://github.com/sagiegurari/simple-oracledb#OracleDB+run

thank for your nav you are amazing

@sagiegurari  can you help me in this case ?
of course it's not about this issue or even oracledb!! but with res drain my response close early before whole data fetched!
have you any issue ?
var stream = connection.query(input.query, [], {streamResults: true});
                    stream.on('data', function (row) {
                        if (checkForDataSend) {
                            checkForDataSend = response.write(JSON.stringify(row) + ",",'utf-8');
                        } else {
                            tmpData += JSON.stringify(row) + ",";
                        }
                    });
                    response.on('drain', function () {
                        checkForDataSend = true;
                        //response.write(tmpData,'utf-8');
                        tmpData = '';
                    });
                    stream.on('end', function () {
                        //job.set('data', '', done);
                        console.log("now fetch data is ended");
                        selectCounter--;
                        if (selectCounter === 0)
                            stopFlagForInsert = false;
                        response.end();
                        dbi.releaseConnection(connection, function (err) {
                            if (err) {
                                done(err);
                            }
                        })
                    });

on drain you are supposed to write the temp data you have (you commented that out).
on stream.end you just need to close the connection if you can't yet write to the response in wihch case you need to end the response in the drain that comes after the close.
that is why pipe is a better solution than all those event listeners.
Here is a good example how to transform data and using pipe
https://www.sandersdenardi.com/readable-writable-transform-streams-node/

but stream type of oracle db is object mode that i think cant be piped if i not wrong!

Im not sure i've heard of that but try to google a bit


when i open the windows terminal ,its show [error 0x80070002 when launching powershell.exe']

when i open the windows terminal ,its show [error 0x80070002 when launching powershell.exe']

This bug still exists and should be reopened.

It seems that your PATH environment variable may be damaged and not contain the Windows PowerShell directory.
@pc-chin is your python executable named python3.8.exe or is it named python3.exe? If it is python3.exe, you will never be able to call it python3.8 and have it work properly.

I have the same problem. I know that my PATH variables are damaged, WT was not working before 0.8.10091.0
I think in some windows update my PATH got messed up. I have faced many problems because of it. Currently I cannot reinstall everything, Can we fix the path variables ?
When I try to launch PS from cmd, cmd cannot find PS, but the same is not true for my Windows sandbox env.
I am just hoping to fix my PATH, and use WT easily.
Thanks,
Malhar
Edit:

Windows sandbox

My current env

my WT
CMD and WSL work correctly in WT

After updating my PATH with %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\ at the top of the list, it seems to be working now

My CMD can call PS now !

WT runs PS

Have you tried this solution ?

@OnurGumus You've gotta provide us some information - this issue was closed because we asked the author for feedback and they didn't respond. What commandline are you trying to run in the Terminal, and is that application on the PATH?

I've added this to both my User and System Environment Variables (At the top line) and am still getting this same error when trying to launch Powershell from cmd
wt -d c:\scripts "Windows PowerShell"
from cmd prompt, results in
wt -d c:\scripts "Windows PowerShell"

“Windows Powershell” is the name of a profile, not an executable, so you must put -p before it.

So, I'm having the same issue with all tools WT has:
[error 0xd0000022 when launching powershell.exe'] [error 0xd0000022 when launching cmd.exe']
[error 0xd0000022 when launching wsl.exe -d Ubuntu'] [error 0xd0000022 when launching C:\Program Files\WindowsApps\Microsoft.WindowsTerminal_1.0.1401.0_x64__8wekyb3d8bbwe\TerminalAzBridge.exe']
Is it possible that my PATH is broken for everything? Powershell, Cmd and Ubuntu's Terminal work fine for me.

So, the last report we got of 0xd0000022 was https://github.com/microsoft/terminal/issues/5488. Do any of the considerations in there apply to you?

I also have this issue
[error 0x80070002 when launching `cmd.exe']

@DHowett I tried to check the shortcuts from startmenu and none of the apps have the run as administration option enabled.
If I run WT as admin it works fine though. I tried another terminal called Hyper (written in Electron) and it won't even open if I don't run as Admin. I checked their issues on github and there's an fairly active topic about a bunch of people having the same issue.
Is there an exact location where I can check if these apps are running as admin? I would love to be able to use the wt shortcut but because I can't force it to run as Admin it won't work :(

i have the same problem when trying to install link-preview,
C:\Users\User>wt install link-preview
and then it goes :
[error 0x80070002 when launching 'install link-preview']

link-preview

Sorry about that. We don’t actually have extensions or the “wt install” command right now. We are tracking that in #4000

link-preview

Sorry about that. We don’t actually have extensions or the “wt install” command right now. We are tracking that in #4000

https://youtu.be/8gw0rXPMMPE?t=27
But in the video you showed it!

The video also shows a terminal that is literally made of glass and floating in space. Some of the things in there are planned, some of them are stylistic. The link preview you're looking for is being tracked in #4000.

guys I found solution!
basicly go to C:\Program Files\WindowsApps\Microsoft.WindowsTerminal_1.0.1811.0_x64__8wekyb3d8bbwe //or wherever You app is instaled
copy the content to another folder, somewhere where You definitely have access to modify, i used new folder on my desktop
last step run WindowsTerminal.exe from that folder as admin.

I have installed Windows PowerShell 7 and in my settings.json file, I have included:
{
  "guid": "{fb0ad4d6-a0de-48b8-8feb-14df8467ad31}",
  "hidden": false,
  "name": "Windows PowerShell 7",
  "commandline": "pwsh.exe"
}

Now when I am starting this profile, it says:
[error 0x80070002 when launching pwsh.exe']`

We need to reopen this issue.
I'm going to open new issue hoping able to merge back.

@Limyx826 Please make sure to look through existing issues for a duplicate before filing a new issue. Thanks!

@Limyx826 Please make sure to look through existing issues for a duplicate before filing a new issue. Thanks!

This thread is the issue

Windows build number: Microsoft Windows [Version 10.0.18363.959]
Windows Terminal version: 1.1.2021.0
For some reason Windows PowerShell path is broken. When I tried to open PowerShell, it will shown [error 0x80070002 when launching `powershell.exe'].
This issue doesn't occur one my pc is Windows 10 Version 10.0.19041.423 which I rolled back from.

Edit your settings and delete the line that says “commandline: powershell.exe”.

You will want to check your system PATH, because it no longer has PowerShell on it. That is going to break a few things, not just terminal. At least by removing this config option from Terminal you’ll be able to use it.

Edit your settings and delete the line that says “commandline: powershell.exe”.
Well this worked, thanks.

In case this helps someone else.
Installing a preview version of Powershell 7 places the following in the PATH:
C:\Program Files\PowerShell\7-preview\preview
Which contains pwsh-preview.cmd not pwsh.exe.  So pwsh or pwsh.exe will not work.
Change this to C:\Program Files\PowerShell\7-preview\ and it works fine.

THIS IS NOT CAUSED BY ANTIVIRUS OR ANYTHING. PLEASE READ THIS. Alright so after some research I realised that the problem is with the environment variable. Open Environmental Variables and under System Variables, click on "PATH" and then click new. Now add this - %SystemRoot%system32
Click exit, now restart your System. Everything should be working perfectly fine now. Glad I could help!


Fix map() usage on Py3.

map(...).index() doesn't work on Py3, just use a list comprehension
instead.

Thanks! It looks like we don't have good test coverage on this logic. How did you spot this? A linter maybe?

I think I prefer keeping the function, since it abstracts the matching logic and keeps the list comprehension body simple:
matches = [match(key) for key in keys]

Still not as nice as using map though...

I tried grad'ind a somewhat complicated function and got an exception popping up there.
I think map is nice if your function is already there, but if you have to go through a lambda it's not really much better.

Indeed, you could have found this by using pylint too -- you just need to run with say --errors-only --disable=undefined-variable (to avoid it getting confused by numpy/scipy star-imports) and inverse-grepping numpy and scipy (to avoid no-member errors on the two modules).


Missing UI

Mac OS X 10.11.4 / Firefox 45.0.2  CacheStatus 0.9.1  -  Cache status/clear buttons no longer show up on address or status bar regardless of preference settings (Original / Icons / UI on Status bar / Force UI on Status bar).  Tried going back to version <IP_ADDRESS>-signed but no difference.

Maybe there is a conflict with another extension. Can you confirm this by installing the extension on a clean profile; http://blog.add0n.com/2016/01/30/how-to-use-firefox-profile-manager.html

Workaround

install Status-4-Evar
restart the browser.

You'll find Cache Status items in the status bar at the foot of the window.
Tested with Waterfox 56.0.1 on FreeBSD-CURRENT:

– so the workaround should also be good for Firefox 56.0.2.

Closing this issue. Thanks for the workaround, @grahamperrin! :)


feat: add root package-lock.json support

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[x] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[x] Ensure the tests and linter pass
[ ] Code coverage does not decrease (if any source code was changed)
[x] Appropriate docs were updated (if necessary)

Fixes #2161
Fixes #1842

@chingor13 I am unsure, as far as I can tell with my knowledge so far, I would say that this is not the case.
Another problem is that the workspace packages are not (necessarily) part of the root package.json file, but only part of the package-lock.json file. For example, the docs describe a scenario in which the root package is also published and references parts of the workspace packages. However, in most cases this is not the case, as the root package should also be published.

@chingor13 I just ran into this same problem. What would it take to get this across the finish line?

@chingor13 ?


Can not get params which application should receive during install

Hi,
I use version 1.5.9
Steps :

I create share link.
Install app by this link.
In SplashScreen try to get params from deep link by use method getFirstReferringParams().
But there no params.
https://github.com/BranchMetrics/Branch-Android-SDK#retrieve-install-install-only-parameters

Problem
branch.getFirstReferringParams();
did not return expected params

@SergeyMagid Were the parameters available in the deep link handler callback that you registered in the initSession call? Also, I'd recommend using getLatestReferringParams, which will return the set of parameters most recently clicked.
Get first referring parameters are set only once, the first time the deep link is triggered on an 'install' event. You can get first referring params to be set on 'open's too if you trigger isReferrable:true in the initSession call.

@SergeyMagid Just wanted to check in that you got this all sorted out

@SergeyMagid  Are you still having the issue. Can you please make sure you are calling branch.getFirstReferringParams(); a after initializing the branch session by calling  branch.initSession()

I have the same problem, tried you suggestions but that does not work either.
Tried approaches:

Autodeeplinking (manifest meta + almost the same code as in you android example + getFirstReferringParams() + getLatestReferringParams())
Normal deep linking (manifest intent-filter + initSession() + getFirstReferringParams() + getLatestReferringParams())
Without changes in manifest (initSession() + getFirstReferringParams() + getLatestReferringParams())

In every case I can see debug info:
I/BranchSDK﹕ posting to https://api.branch.io/v1/install
I/BranchSDK﹕ Post value = {
    "hardware_id": "4a79a66068c3ccf9",
    "is_hardware_id_real": true,
    "app_version": "1.00",
    "carrier": "PLAY",
    "bluetooth": false,
    "bluetooth_version": "ble",
    "has_nfc": true,
    "has_telephone": true,
    "brand": "LGE",
    "model": "Nexus 5",
    "os": "Android",
    "os_version": 22,
    "screen_dpi": 480,
    "screen_height": 1776,
    "screen_width": 1080,
    "wifi": false,
    "is_referrable": 0,
    "update": 2,
    "debug": false,
    "google_advertising_id": "fd80bad8-ae6f-432f-b1cd-b55e489b5d9f",
    "lat_val": 1,
    "sdk": "android1.8.1",
    "retryNumber": 0,
    "branch_key": "key_live_mcnLaL1KLTW5vsJt8sO9Epnetymi1nd2"
    }
I/BranchSDK﹕ returned {"session_id":"157420067066222447","identity_id":"157277543118935585","device_fingerprint_id":"157277543014112026","browser_fingerprint_id":null,"link":"http://r.bitween.co/j/5C4myvNuMl","referring_identity":"simplelogin:27","identity":"simplelogin:27","data":"{\"$og_description\":\"Join Joe in My App - it's awesome\",\"$og_image_url\":\"https://s3-us-west-1.amazonaws.com/myapp/joes_pic.jpg\",\"$og_title\":\"Joe's My App Referral\",\"avatar\":\""

An then my logs that contain data returned by getFirstReferringParams() and getLatestReferringParams(), as you can see there is only "+clicked_branch_link, true" in last data:
D/BranchHelper﹕ Branch init complete.
D/BranchHelper﹕ Reading params.
I/last﹕ +clicked_branch_link, true

One more thing worth mentioning is in my manifest I have declared io.branch.sdk.TestMode="true", but Branch only uses live key and debug in dashboard also works only in Live mode.
Your help would be greatly appreciated. I would like to add referral links with welcoming screens in my app but for couple of hours I am unable to find proper solution.

@rafalzawadzki Thanks for the detailed report. We are looking in to the issue .Could you please update the version of Branch SDK that you are using

@sojanpr The "avatar" field contained image in base64 string and in sake of post simplicity I cut it off - now I dont know if the structure was fine before.
I will try again without so much data in the json - now it striked me that this may be the problem!

Ok, now it looks much better:
I/BranchSDK﹕ posting to https://api.branch.io/v1/install
I/BranchSDK﹕ Post value = {
    "hardware_id": "4a79a66068c3ccf9",
    "is_hardware_id_real": true,
    "app_version": "1.01",
    "carrier": "PLAY",
    "bluetooth": false,
    "bluetooth_version": "ble",
    "has_nfc": true,
    "has_telephone": true,
    "brand": "LGE",
    "model": "Nexus 5",
    "os": "Android",
    "os_version": 22,
    "screen_dpi": 480,
    "screen_height": 1776,
    "screen_width": 1080,
    "wifi": false,
    "is_referrable": 0,
    "update": 2,
    "debug": false,
    "google_advertising_id": "...",
    "lat_val": 1,
    "sdk": "android1.8.1",
    "retryNumber": 0,
    "branch_key": "..."
    }
I/BranchSDK﹕ returned {"session_id":"157747274057783099","identity_id":"157277543118935585","device_fingerprint_id":"157277543014112026","browser_fingerprint_id":null,"link":"http://r.bitween.co/j/5C4myvNuMl","referring_identity":"simplelogin:27","identity":"simplelogin:27","data":"{\"$og_description\":\"Join Joe in My App - it's awesome\",\"$og_image_url\":\"https://s3-us-west-1.amazonaws.com/myapp/joes_pic.jpg\",\"$og_title\":\"Joe's My App Referral\",\"nick\":\"master\",\"source\":\"android\",\"~channel\":\"Copy link\",\"~feature\":\"share\",\"~tags\":[\"version_213\"],\"~stage\":\"post_purchase\",\"~creation_source\":\"SDK\",\"+is_first_session\":false,\"+clicked_branch_link\":true}"}
D/BranchHelper﹕ Branch init complete.
D/BranchHelper﹕ Reading params.
I/last﹕ $og_description, Join Joe in My App - it's awesome
I/last﹕ $og_image_url, https://s3-us-west-1.amazonaws.com/myapp/joes_pic.jpg
I/last﹕ $og_title, Joe's My App Referral
I/last﹕ nick, master
I/last﹕ source, android
I/last﹕ ~channel, Copy link
I/last﹕ ~feature, share
I/last﹕ ~tags, ["version_213"]
I/last﹕ ~stage, post_purchase
I/last﹕ ~creation_source, SDK
I/last﹕ +is_first_session, false
I/last﹕ +clicked_branch_link, true

It looks like too much data breaks your internal processes, or something.
Now, I hae a question: how I can know this is fresh install data? As you can see I can get only info from getLatestReferringParams() method and it only returns "+is_first_session, false".

@rafalzawadzki Glad to see that you are  getting referrer params. Instead of adding large avatar param to the JSON, is it possible to add a URL or Identifier which points to the data.
Thank you very much  for mentioning the issue with the BranchKey and install data. We figured out a  bug on our side while initializing Branch from custom application class. This issue is already fixed and released with version v1.8.2. Could you please try to update  your sdks to 1.8.2 and try out.
Branch actually save  a Hardware-ID on the first install. So even if you uninstall and and install again Branch  will return "+is_first_session, false".  This is to prevent fake installation count.
To test installtion you can set your app TestMode. In test mode Branch creates random  Hardware-ID and so you will get  "+is_first_session, true" each time you install.
You can set  app to test mode by setting following metadata in your manifest
<application>
.......
<meta-data android:name="io.branch.sdk.TestMode" android:value="false" />
....
</application>

Hope this will help you. Please let us know if you have any issues

@rafalzawadzki  Just wanted to check whether the fix helped to solve the issue.

@sojanpr I believe this should be stated as "TestMode=true" instead of "testMode=false" and indeed the problem with the keys is solved - now Branch uses test keys correctly :)
But I still have the problem with "+is_first_session", cannot create random HardwareId and fake fresh install. What is the proper way to implement deeplinking? Are AndroidManifest tags "intent-filter" and "meta" necessary and if so, which one should I use? It seems that Branch initSession works well without these, so what are they needed for? Will be glad for clearing things up.

@rafalzawadzki We found a bug with the library today where setDebug was not actually setting the debug. The only mechanism to enable debug was this:
<application>
.......
<meta-data android:name="io.branch.sdk.TestMode" android:value="false" />
....
</application>

However, then I found that this ^ would only work if you had a TestKey in the manifest as well.. I just made and merged https://github.com/BranchMetrics/Android-Deferred-Deep-Linking-SDK/pull/115 that deprecates setDebug an allows TestMode to work with the Live key as well.
We're about to deploy it to Maven shortly.
note: for testing, if the hardware_id is in this form '4a79a66068c3ccf9', that's a real one. If it looks like a UUID '284b3d7a-57f4-4930-a938-56e2bd46124c', then it's fake one.
Really sorry for this headache.. not sure how we didn't catch this earlier.

Ok silly me, I found the solution.
The problem was no with Branch itself but with Lollipop and multiple user accounts. Starting with Lollipop, sometimes apps are not unistalled for all the users and admin has to enter settings to uninstall the app completely (more on this here: http://stackoverflow.com/questions/28853250/you-cannot-install-this-app-because-another-user-has-already-installed-an-incom) Thats why Branch was thinking (correctly) that the app was installed before.
By the way, you could mention it here: https://dev.branch.io/recipes/testing_your_integration/android/ as it is very possible someone will stumble on this in the future - and the cause is not as clear as the solution :)

Ahh - I got it. Thanks for the note! We'll update the docs.
Closing this ticket for now.

I have added

    <meta-data android:name="io.branch.sdk.BranchKey.test" android:value="@string/branch_io_test_key" />
    <meta-data android:name="io.branch.sdk.TestMode" android:value="true" />

I have uninstalled the app from all users and re-installing it, still I am getting +is_first_session false.

@Pre8y we have the conversation at support, and it looks like that took care of it, as you're seeing +is_first_session as true. What was your fix? Were you uninstalling and re-installing the .apk?

@Sarkar +is_first_session is coming false always, and +is_branch_clicked is also coming false always. even after enabling testMode in Manifest and adding branch test key in Manifest.

@Pre8y hey, are you cleaning your browser cookies etc before clicking branch link?

yes tried that as well.

Can you check if the Branch key you created the link with matches the key you're testing with in the manifest? We don't allow deep linking across keys. You can check the link by appending ?debug=true to it and pasting it into the browser on your desktop.

I have a weird issue here. I can't get the referring params on post install. But I can get it on running the app for the second time. What do I miss?

Hmm - it would seem that Branch might not be initializing post install.

Can you repeat it 100% of the time? I want to check that it's not an IP mismatch issue. We've heard of offices that randomly assign IPs between each request that can make testing pretty difficult.
Can you add <meta-data android:name="io.branch.sdk.TestMode" android:value="true" /> above your Branch key in the manifest to log Branch requests? This will tell you if Branch is initializing post install.
I want to confirm you're calling getAutoInstance in the Application class: https://dev.branch.io/getting-started/sdk-integration-guide/guide/android/#enable-auto-session-management

@aaustin, I have the same issue. first launch doesn't initialize properly (don't have the session params). but second launch has it all right.
I can reproduce this 100%
I have getAutoInstance in my Application class.
I am using version 1.14.1 on android.

Hey @saeidfarivar - quick question:

when you enable debug mode, do you see a network call to /v1/install or /v1/open on first launch? Or is there no network call at all.
what make/model phone are you testing with?

We haven't been able to reproduce well. Is it possible that you create a simple testbed app that has the same behavior or we could get access to your project in a private repo so that we could play around with it?

Yes, I do see a call to  /v1/install in the logs.
Maybe my test is wrong.
How I test this:
install the app,
clear App data from settings,
click on Branch link,
result => my logs says this is not the first session? (+is_first_session is false)
How should I test my integration for the deferred installs?

@saeidfarivar Can you please make sure you have enabled TestMode for doing the above test.
(Check that you have <meta-data android:name="io.branch.sdk.TestMode" android:value="true" /> in your manifest) .
In Live more Branch can detect between first install   and  re-install even if you delete the application data

@sojanpr yes, I have  in my manifest. still the branch sdk doesn't give me the right session params...

@saeidfarivar  Sorry forgot to mention. Since you are creating instance of Branch in your application class could you please  try getTestInstance instead of getInstance
    @Override
    public void onCreate() {
        super.onCreate();
        Branch.getTestInstance(this);
    }
}```

@sojanpr I did that too. no change.
Our office is 5 minutes away from your Palo Alto, CA office. I cannot share code but if you guys can come here I can show you the code...

@saeidfarivar Sorry for this issue. We are able to reproduce this issue on our side with the install. Working on a way around for this. Update you asap

@saeidfarivar The latest version of our SDK is 2.2.0. The above case is working fine with the latest version. Could you please  try it and update?

@sojanpr with 2.2.0 it's not calling onInitFinished at all!!!
And there is no debug logs from Branch (e.g. post /v1/install)...

@sojanpr I use your jar file from https://github.com/BranchMetrics/android-branch-deep-linking
am I missing something?

@saeidfarivar could you please try the gradle dependency instead of the  Jar
Just add compile 'io.branch.sdk.android:library:2.+' to the dependencies section of your build.gradle file.

@sojanpr, I built your repository and took the .aar file. still not working. Our project don't use gradle.

@saeidfarivar really sorry about that. We are working on it. Could you please help us by sending your logs? It would greatly help us if we can see the Branch logs for v1/install  api request and response in this case

@sojanpr , I don't see that in the logs... in fact it seems that Branch doesn't print any logs anymore...
using 1.14.3 I used to see a lot of logs after enabling test mode.

@saeidfarivar could you please make sure you have
<meta-data android:name="io.branch.sdk.TestMode" android:value="true" />  in your manifest and  you are using getAutoTestInstance() . Logs will be printed only in test mode

@sojanpr, Oops I thought you said

@saeidfarivar Sorry forgot to mention. Since you are creating instance of Branch in your application class could you please try getTestInstance instead of getInstance
public class YourApp extends Application { @Override public void onCreate() { super.onCreate(); Branch.getTestInstance(this); } }

@saeidfarivar Inorder to help you better and faster could you please send an email to<EMAIL_ADDRESS>the logs.  Lets us take it from there

after setting  and using getAutoTestInstance() and updating to sdk 2.2.0. everything seems to be working for me. thanks @sojanpr

@rafalzawadzki  Really is very grateful that you solved my problem

👍


How to make links work?

thx

Hey, sorry for the delayed response.
Without more context I can't help much, can you provide a little more context?
And have you tried out playing with the example project? I have a link to a raw markdown file and it contains links, if the links are broken I'll give it a look.

Hey, sorry for the delayed response.
Without more context I can't help much, can you provide a little more context?
And have you tried out playing with the example project? I have a link to a raw markdown file and it contains links, if the links are broken I'll give it a look.

If you download your project and try to build it on the simulator, it will generate an error during the build, but I installed yours in the project, and when I clicked on the link, it does not open in safari

Hey, I've just merged #45 because there was a problem of the bundle identifier of the example is the same as the library, now the example should run.
The links will open automatically if the link is a valid URL it will open the browser. For custom links, you need to build your handling of the links.


New version: TorProject.TorBrowser version 11.0.10

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

[ ] Have you tested your manifest locally with winget install --manifest <path>?
[X] Does your manifest conform to the 1.1 schema?

Resolves #57306

Microsoft Reviewers: Open in CodeFlow

stagger your downloads and it will work 🤖
Installer https://dist.torproject.org/torbrowser/11.0.10/torbrowser-install-win64-11.0.10_zh-TW.exe
Result: Download Failed

@denelon

@zachcarp what are your thoughts on how we might stagger the downloads from CDNs detecting us as a possible DOS?

Here is a bigger example https://github.com/microsoft/winget-pkgs/pull/45998#pullrequestreview-880977636
And here is the Discussion/Issue https://github.com/microsoft/winget-pkgs/discussions/41662
Maybe pass the failed urls into a Array which then retests the urls with a staggered time delay?
Wingetbot is also experiencing this issue when validating the existing urls in the repo, which over time will get worse and worse.
The current Packages we have issues with is:

TimKosse.FileZilla.Client
TimKosse.FileZilla.Server
BlenderFoundation.Blender
Catsxp.Catsxp
Microsoft.Edge
Microsoft.EdgeWebView2Runtime

We've "fixed" a few packages in the past by removing a bunch of old versions, however that is obv only a temporary fix as we will add more versions.

@denelon I can't think of anything right off hand to stagger the downloads. I'm also not sure how we would be hitting a single CDN from our endpoint enough to make that a problem. Under normal circumstances we would download a given installer once or twice a day - and this looks like it failed right out the gate.

/azp run

@OfficialEsco - I read through the linked issues, and have a better understanding of the problem. My initial response to @denelon  was lacking that context.
@denelon - The first initial naive solution that comes to mind to get us out of trouble would be to add some sort of throttling to our validation process for installers where we rate limit our downloads as suggested by @OfficialEsco. This PR just finished - and I would propose we move the discussion over to the discussion listed above (#41662)


Numeric receiver function TdsRecvTypeNumeric won't work for system that does not support 128bit INT

Description
Numeric receiver function TdsRecvTypeNumeric won't work for system that does not support 128bit INT
Fix includes, adding "if defined(HAVE_INT128)" before we attempt to read any data into uint128 and for rest of the cases not supporting 128bit INT, reading data into uint64 [This change is added to both TDS sender and receiver for Numeric data]
Task: BABEL-3577
Test Scenarios Covered

Use case based -

Boundary conditions -

Arbitrary inputs -

Negative test cases -

Minor version upgrade tests -

Major version upgrade tests -

Performance tests -

Tooling impact -

Client tests -

Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is under the terms of the Apache 2.0 and PostgreSQL licenses, and grant any person obtaining a copy of the contribution permission to relicense all or a portion of my contribution to the PostgreSQL License solely to contribute all or a portion of my contribution to the PostgreSQL open source project.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Do we really need this change?
GCC4.1 and above(today we mostly use GCC > 7) have defined type uint128_t to handle 128-bit integer data; even if we have an underlying 64-bit or 32-bit processor, uint128_t uses 2 64-bit (or, 4 32-bit) registers to store data of length 128 bit.
This can be a good read: https://cs.stackexchange.com/questions/140881/how-do-computers-perform-operations-on-numbers-that-are-larger-than-64-bits


Add limit in featured post

Add limit in featured post
when I add many featured posts then it shows all featured posts but generally, we want the top 5 or top 10 feature post to show depending upon the latest feature post
const featuredPosts = sortedPosts.filter(({ data }) => data.featured).slice(0, 5); in index.astro page
like this way
@satnaing what's your thought on it.

@rakrisi one could probably argue that if you have more than 5 featured post then they are not really featured anymore

yes @fchrapek ,it may be the case.
today I deployed few articles and saw many feature posts on my main index page. that's why I thought it should have a limit and be configurable from ENV.
const FeaturedPostLimit = import.meta.env.FeaturedPostLimit;

let featuredPosts = sortedPosts.filter(({data}) => data.featured);
if (featuredPosts.length > 0) {
  featuredPosts = featuredPosts.slice(0, FeaturedPostLimit);
}

i done it this way. it does not impact others. who don't have env configured.

@rakrisi sure, if it works for you than great :)
What I meant is that personally I'm not setting more than 3 posts as featured, because the 'featured' label IMO should be used rather carefully, since you want to highlight only few selected posts.

@fchrapek true.


feat(faucet): frontend support for requiring github auth when claiming through privy

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#455  👈
#454
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @tremarkley and the rest of your teammates on  Graphite


Dockerfile based on debian-slim

This adds a Dockerfile which can in the future be used by a GH action to auto-build a docker image.
There appeared to be many potential optimisations for local dev, such as vendoring all dependencies to avoid rebuilding them if they haven't changed, but I didn't think this would help for a GH action.
It's also possible to base the image on alpine to shave another ~50MB off the image size, or if you want to get really thrifty base it off docker scratch (hooray, rust!), to save even more MB...
This additional commit shows a GH action to build and upload an image on pushed to main, and only build the image otherwise, along with the required changes which need to be made before it's functional on 0xB10C/fork-observer
Very open to critique on this one, as I'm a total Docker noob :)

For context the image from this build is 95MB, the alpine version is 22MB which is pretty nice indeed:
$ docker images | rg fork
fork-observer-alpine             latest          e8b380bf1991   8 seconds ago        22MB
will8clark/fork-observer         latest          f5884ffb341b   19 hours ago         95.1MB

Presumably scratch would be even tinier...
The dockerfile for the alpine build is:
FROM rust:alpine3.18 as builder
WORKDIR /app
RUN apk add musl-dev

# create a new empty dummy project
RUN cargo init

# copy vendored deps and cargo stuff
COPY ./vendor vendor
COPY Cargo.toml Cargo.lock ./
# build dependencies only, if source code changes this is cached
RUN cargo build
# remove dummy build.
RUN cargo clean -p fork-observer

# copy over source code
# updates usually only need to rebuild from this step unless dep versions change too
COPY ./src src

# target alpine linux
RUN cargo install --path . --target=x86_64-unknown-linux-musl

# second stage.
FROM alpine:3.18
WORKDIR /app

COPY --from=builder /usr/local/cargo/bin/fork-observer /usr/local/bin/
COPY config.toml.example config.toml
CMD /usr/local/bin/fork-observer

It requires you to run cargo vendor on the local host before building the docker image, and seems a bit more fragile process-wise, but at 1/5th the size, could be worth it?

I guess building the docker images would happen in a CI anyway so running docker vendor is fine.
Another approach I've looked into this morning is using Nix to build docker images. These are supposed to be tiny and I think I can integrate that into https://github.com/0xB10C/nix which already packages fork-observer. - I'll have a look at the size and report back. Otherwise happy to go with the alpine one.

The nix docker image is 51MB.
$ docker images fork-observer
REPOSITORY      TAG       IMAGE ID       CREATED        SIZE
fork-observer   latest    55f3b29f679e   53 years ago   50.8MB

Would you open a PR for the alpine docker image?

Sure!
I'll first take make sure I can make it work with GH actions on my fork. must be easy enough, if you know how... :D

This is what's needed for the cargo vendor approach: https://github.com/0xB10C/fork-observer/compare/main...willcl-ark:fork-observer:dockerize_with_alpine_opt
TBH though, I don't think it's worth the complexity. I am also testing an even simpler version here, which I think we should go for: https://github.com/0xB10C/fork-observer/compare/main...willcl-ark:fork-observer:dockerize-alpine-simple
Think both are the same size etc.:
will@ubuntu in ~/src/fork-observer on  dockerize-alpine-simple [?] is 📦 v0.1.0 via 🦀 v1.72.0
₿ docker images | rg fork
fork-observer-alpine-simple           latest          f0b45fa15f02   8 minutes ago    22MB

Wow that's wild, it's only 7.78MB on dockerhub after compression

Closign in favour of #16


Another file where flatten-annotations loses the data

When filling out and printing the IRS Form 941 PDF.  After entering data and printing the form using cups (which uses the QPDF libs), the page prints but the form annotations are lost.
Running "qpdf --flatten-annotations=all" on the file also results in blanks where the form data was.
The Input and output files and more details are on the FreeBSD PR I filed here:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270832

This is the same problem as https://github.com/OpenPrinting/libcupsfilters/issues/28

I have reproduced this and have a one-line fix. I need to study this to figure out why this has never been found before so I can figure out why I originally coded it the way I did. Fixing doesn't cause any test failures, so I may have just missed case. It's odd that this was never found before but has been found a few times just in the last month.

I see what's going on. The file actually has an error, but I can work around it.

I figured out what's going on here. The PDF file in question is using the /AS key (appearance state) incorrectly, but qpdf can easily work around it.

Jay,
is there any advice you can give to the developers of the PDF software that filled out that form? What do they need to change to make sure the form is filled correctly? I can try to file the bugs to respective upstream projects.

I have applied the patch to the FreeBSD code and can confirm that the file now both displays okay after --flatten-annotations and also prints okay.
Thanks very much for the patch, Jay.

I'm away from my computer today and tomorrow but intend to answer your question about advice to the other devs, so I'm reopening as a reminder. Basically they need to refresh themselves on what /AS is used for when I'm back I will reference the specific sections from the PDF spec and resolve the unrelated 32 bit failures in CI so I can merge my fix. I will probably cut an 11.4 release soon with this and a few other minor things.

@jroldroyd In the latest version of the PDF SPEC, ISO 32000-2:2020, which is now available at no cost, you can find Table 166 in section 12.5.2 which describes the entries in the annotation dictionary. The /AS key is described as

(Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation’s appearance state, which selects the applicable appearance stream from an appearance subdictionary (see 12.5.5, "Appearance streams").

The appearance dictionary's top-level keys are defined in Table 170 in Section 12.5.5:
| Key | Type | Value |
| --- | --- | --- | --- | --- |
| N | stream or dictionary(Required) | The annotation’s normal appearance. |
| R | stream or dictionary(Optional) | The annotation’s rollover appearance. |
| D | stream or dictionary(Optional) | The annotation’s down appearance. |
(I don't know why that is not rendering as a table, but hopefully it's clear.)
When would /N be a stream, and when would it be a stream and when would it be a dictionary? The answer is that it would be a stream for simple annotation types like text and a dictionary for annotation types that can have one of many appearance states such as radio buttons or checkboxes.
The incorrect PDF files in this issue set /AS to /N, which is not correct. The top-level keys (/N, /R, or /D) all point to appearance streams or dictionaries, and the one that is used is dependent on what the user is doing. It doesn't make sense to encode that into the file. The /AS key should be omitted for text fields or other annotations that don't have multiple appearance states. For an example of where you would use /AS, see <IP_ADDRESS>.3 Check boxes.
So, bottom line, whoever created that PDF didn't understand the purpose of /AS. It should never be set to the value of /N -- setting it to that value is meaningless.

Tested the fix for the case of https://github.com/OpenPrinting/libcupsfilters/issues/28 and this fix indeed solves the problem. Thanks a lot @jberkenbilt !

Great to hear. @tillkamppeter As you are surely aware, this fix was included in 11.4.0 which was released yesterday.


Seems not to match properly.

the test string: "Hello, world! This is an example. ttttt abc ddd" returns a total of 15 tokens with gpt 3.5 turbo on your lib, yet https://platform.openai.com/tokenizer shows 16. Why is this?

Even the token ID's don't remotely match.
TiktokenSharp: 9906, 11, 1917, 0, 1115, 374, 459, 3187, 13, 259, 5683, 5683, 40122, 294, 634
OpenAI Officially: 15496, 11, 995, 0, 770, 318, 281, 1672, 13, 256, 926, 926, 450, 66, 288, 1860

100% confirmed, both this and SharpToken do not match at all. If they did, then me limiting messages in request to 2048 and the maxtokens for the response to 2048 would of worked. It didn't.

Thank you for your feedback.
After testing, the TiktokenSharp library works correctly with the "gpt-3.5-turbo" decoder, i.e. "cl100k_base", with both encoding and decoding being correct. The encoder you viewed on the page https://platform.openai.com/tokenizer ↗ is not "cl100k_base", and the page does not indicate that it is suitable for "gpt-3.5-turbo". In fact, after my testing, the encoder on the page is "p50k_base", which is suitable for models such as "text-davinci-003".
As for the error you encountered in your actual application, I think it is not directly related to this library. The prompt has clearly indicated that the number of tokens you requested plus the number of tokens returned exceeds the model limit of 4097. I believe you can solve this problem.

The error was from the prompt being too many tokens, yet this library was used with cl100k_base to count them and have it be at the cap, and it counted the tokens wrong. I tested both each ChatMessage content individually, and all of them as one string. Both of which gave incorrect token counts.

This is clearly a problem with using the OpenAI API interface, which is not directly related to this library. This library is only responsible for correctly counting the number of tokens.
Although your problem is not within the scope of this library, I can remind you that the token calculation method in the API interface is not only based on the content sent and received, but also includes the "user" and "assistant" labels. For specific implementation, I suggest you refer to some third-party implementations, such as: https://github.com/waylaidwanderer/node-chatgpt-api/blob/main/src/ChatGPTClient.js#L479C28-L479C28, or I suggest you directly use some third-party C# libraries for chatGPT to implement the functionality.


Improve ergonomics for glob matching

One thing I noticed when using this on a real-world project, is that matchExt is a bit too wide.
What I mean is that typically I want to match under a specific folder. Eg: frontend/**/*.js. Not for the whole project. So matchExt doesn't scale really well with larger source bases.

Like in #8, the solution right now is pretty verbose:
include = with nix-filter; [
      (and
        (inDirectory "frontend")
        (or isDirectory (matchExt "js"))
    ];
];

One thing I noticed when using this on a real-world project, is that matchExt is a bit too wide.

I was expecting (matchExt "md") to find all of the Markdown files in my root directory recursively, but it seems to only grab the top-level matches. I'm guessing this is because with a setup like...
files = nix-filter {
  root = /repo;
  include = [
    (matchExt "md")
  ];
  exclude = [
    (and isDirectory (matchName ".git"))
  ];
};

...there is nothing in the include section that returns true for a directory to support the recursive search. How would I support a basic glob like: **/*.md with nix-filter?
When I try (or_ isDirectory (matchExt "md")), the output includes a bunch of empty directories (i.e. the directories that have no Markdown files).

I assume from the docs that this maybe by design, but how might I support the recursive search for all Markdown files in a repository with nix-filter without whitelisting directories to search? Or might I be better-off using a different tool?

While traversing the filesystem, starting from path, it will call filter on each file and folder recursively. If the filter returns false then the file or folder is ignored. If a folder is ignored, it won't recurse into it anymore.

Because of that, it makes it difficult to implement recursive glob matchers. Something like **/*.js would necessarily have to add every folder, to be able to traverse them. And those empty folders will end-up in the output.

If we want to control rebuild, it's important to have a fixed set of folders.

It's a limitation of the underlying nix builtin. I think the best strategy is to add isDirectory to the includes and blacklist the few folders that don't have md files in them.
In theory, it's possible to achieve what you want, but it would require nix-filter to use two passes. With two additions to the /nix/store.

Thanks for getting back to me. The README for this repo has helped me get up-to-speed on this problem, so thanks for taking the time to include that:

One possibility is to use a two-pass system, where first all the folders are being added, and then the empty ones are being filtered out. But all of this happens at Nix evaluation time. Nix evaluation is already slow enough like that.

Idea
I'm thinking that maybe I could try an approach that uses readDir to crawl a directory and build an attrset/tree that converts something like...
├── bar.md
├── baz.js
├── foo.txt
└── subdir
    ├── bar.txt
    ├── baz.md
    └── foo.md

...into...
{
  "bar.md" = true;
  subdir = {
    "baz.md" = true;
    "foo.md" = true;
  };
}

Which I could then maybe transform into builtins.path calls that move the files to /nix/store. Anything immediately stand-out as a pitfall with this approach?

Nice, I didn't think of that combo before. That would make things much more ergonomic. The only downside is more nix evaluation.

When I try (or_ isDirectory (matchExt "md")), the output includes a bunch of empty directories (i.e. the directories that have no Markdown files).

This should work and works for me (tested with this and the latest commit). Are you using a somewhat recent version of the project?
Also if you are only interested in including a pattern like **/*.md, you don't need to use or_ since elements of include attribute will be ored anyway. So this should also work:
src = nix-filter {
  root = ~/zettelkasten;

  include = with nix-filter; [
    isDirectory
    (matchExt "md")
  ];
}

The issue is that isDirectory will include all the directories, even if they don't contain .md files. Imagine you add a ./photos folder in your zettelkasten that only includes .jpeg files. That folder will also show up, empty.


WebWorkers problem in Angular related to Vite optimizeDeps

Command
serve
Is this a regression?

[ ] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
No response
Description
We have a library that utilizes web workers. It employs the new Worker interface:
const instance = new Worker(
    new URL('./decodeImageFrameWorker.js', import.meta.url),
    { type: 'module' }
);

We have successfully consumed the lib in various scenarios, whether based on Webpack or Vite. See the examples below:

https://github.com/cornerstonejs/vite-react-cornerstone3d
https://github.com/cornerstonejs/vue-cornerstone3d
https://github.com/cornerstonejs/nextjs-cornerstone3d

When integrating into a Vite-based framework, a warning appears regarding one of the dependencies. This is a known issue in Vite, specifically with esbuild. To resolve this, we should add the library to optimizeDeps in the Vite config - recommended by vite maintainers, which works well.
I attempted to integrate a poc of the same library in Angular and encountered a similar warning. I tried customizing Vite but faced a limitation, as there is no way to override optimizeDeps in Angular, as noted here.

In some threads, I see that setting
"cli": {
    "cache": {
      "enabled": false
    }
  }

removes the warning above, but then the worker is requested from an incorrect path.

I also have tried the following
"development": {
        "buildTarget": "angular-vite-6:build:development",
        "prebundle": false
}

still no success
Minimal Reproduction
This is basically minimal repo for reproduction

https://github.com/cornerstonejs/angular-cornerstone3d

commands to run
npm i

npm run start

Exception or Error
With the cache enabled, the Vite warning appears, and disabling the cache loads the worker from the wrong path.

Your Environment
Angular CLI: 19.0.2
Node: 18.19.1
Package Manager: npm 10.2.4
OS: darwin arm64

Angular: 19.0.1
... animations, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1900.2
@angular-devkit/build-angular   19.0.2
@angular-devkit/core            19.0.2
@angular-devkit/schematics      19.0.2
@angular/cli                    19.0.2
@schematics/angular             19.0.2
rxjs                            7.8.1
typescript                      5.6.3
zone.js                         0.15.0

Anything else relevant?
I want to emphasize that other Vite-based implementations for Vue, React, and Quasar work, so it's only Angular that's not working.
In addition, the npm run build also does not work and tries to load the worker from a wrong path (Again the build with vite, and webpack works)

@alan-agius4 could you please look into this bug?

@alan-agius4 could you please look into this bug?


Update UG and DG for sort

Codecov Report

Merging #140 (53387c6) into master (ef0a2cd) will decrease coverage by 1.18%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #140      +/-   ##
============================================
- Coverage     54.96%   53.78%   -1.19%
- Complexity      333      340       +7
============================================
  Files            76       79       +3
  Lines          1350     1415      +65
  Branches        137      146       +9
============================================
+ Hits            742      761      +19
- Misses          558      600      +42
- Partials         50       54       +4

Impacted Files
Coverage Δ

...eedu/trackermon/logic/parser/TrackermonParser.java
83.33% <0.00%> (-4.91%)
:arrow_down:

...edu/trackermon/logic/parser/FindCommandParser.java
41.17% <0.00%> (-2.58%)
:arrow_down:

...rc/main/java/seedu/trackermon/model/show/Show.java
89.18% <0.00%> (-1.72%)
:arrow_down:

...a/seedu/trackermon/logic/commands/EditCommand.java
95.08% <0.00%> (-1.29%)
:arrow_down:

...java/seedu/trackermon/storage/JsonAdaptedShow.java
0.00% <0.00%> (ø)

...va/seedu/trackermon/logic/commands/AddCommand.java
100.00% <0.00%> (ø)

...va/seedu/trackermon/model/util/SampleDataUtil.java
27.27% <0.00%> (ø)

...a/seedu/trackermon/logic/commands/FindCommand.java
100.00% <0.00%> (ø)

...eedu/trackermon/logic/parser/AddCommandParser.java
100.00% <0.00%> (ø)

...main/java/seedu/trackermon/model/show/Comment.java
57.14% <0.00%> (ø)

... and 5 more

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 ef0a2cd...53387c6. Read the comment docs.


prune active set from ballot blob

Motivation
Closes #4985
Changes

actually prune active set from ballot blobs in db
use a empty migration to facilitate the pruning.
we only want to prune/vacuum/checkpoint once per software upgrade
the code allow any upgrade from migration <=4 to 5 to

extract active set from ballots
prune active set from blob
vacuum and checkpoint

the final size of the state should be < 1GB

bors merge

bors cancel

bors merge


Update "what wasn't covered" to include more topics

Also, rewrote and updated some of the existing content.

Wish we could actually suggest a book every time we say to read one. But for most of these topics I don’t have recommendations, though. Do you?

I don't have any recommendations either. And prefer not to pick winners..

You figure we just shouldn’t order these?

Yeah. My reasoning is that I don't want anyone who works on those topics to think they are being disrespected. Also I have no particular reason to think that any of them are more important than others -- they are all necessary for a real browser.


Image diff tools is nice, but confusing

After running the automated test suite in vcs using the run_tests.py --html approach, I'm looking at the failures reports using the image diff tool.  In the screenshot below, which is the known-good baseline image and which is the output from the failed test?  You might think, as I did initially, that the green outline indicates the known-good baseline and the red outline indicates the output of the failed test. But in fact it seems that this is backwards.  After quite awhile of scratching my head, digging into code, and ending up at this repo, I believe that the green outline is the erroneous test output, while the red outline is the known good baseline.
Either way, could there be some indication in the web page which is which?  Like a legend indicating that "green = bad, red = good"?  Or since the image-diff tool itself came from an npm library whose api more closely reflects a git diff tool (so red is "out/before", while green is "in/after" some change), perhaps we could just switch the order of the arguments so that green means known-good and red means test failure image?
If people like the out/before vs. in/after semantics better, then a legend to alert new users might be enough.  If people prefer the known-good vs test-failure semantics, then maybe we switch the arguments to the image-diff method.

@scottwittenburg good point, if i ever get time I'll look into this. In the mean time, whatever picture shows up first is the test picure, slider reveals the bad one.


[FLINK-13895] client does not exit when application has failed

What is the purpose of the change
(For example: This pull request makes task deployment go through the blob server, rather than through RPC. That way we avoid re-transferring them on each deployment (during recovery).)
Brief change log
(for example:)

The TaskInfo is stored in the blob store on job creation time as a persistent artifact
Deployments RPC transmits only the blob storage reference
TaskManagers retrieve the TaskInfo from the blob cache

Verifying this change
(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (100MB)
Extended integration test for recovery after master (JobManager) failure
Added test that validates that TaskInfo is transferred only once across recoveries
Manually verified the change by running a 4 node cluser with 2 JobManagers and 4 TaskManagers, a stateful streaming program, and killing one JobManager and two TaskManagers during the execution, verifying that recovery happens correctly.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

Hi @gentlewangyu, could you update the description and describe the problem detailedly? It would be better if you describe the problem in JIRA, i.e., FLINK-13895 first.

@TisonKun thank you for your answer , I have updated the description

@gentlewangyu
Could you firstly describe your approach about how to solve the problem in JIRA issue?
Usually we firstly agree on the solution in JIRA issue and a committer assigns a person who will implement the fix and open the PR.
Also the PR contribution template is not filled in the beginning.
From what I see in the PR, I think, we cannot simply remove killing of the application cluster because it is part of the cleanup after the failure of the cluster startup. We should rather investigate the reason of killing hanging. This might be related to #9175.

I will close this PR for now until we agree otherwise in the JIRA issue.