[NotoSansMono-MM.glyphs] drop kerning to fix variable build

Running fontmake to build a variable Noto Sans Mono fails with
AssertionError: ((2, [3, 2, 2, 2, 3, 2, 2, 2]), 'int', '.FeatureCount', 'FeatureList', '.FeatureList', 'GPOS', '.table', 'table_G_P_O_S_')

This is because only in a couple of masters, there are a few kerning pairs, probably some unwanted leftovers since this is a monospaced font so one would expect no kerning as the advance widths are all the same.
The presence of the kerning pairs makes ufo2ft build a kern feature for those masters, and then varLib fails because it doesn't know how to handle this incompatible GPOS tables.
If I remove the kerning, I can successfully build the variable font.

Thanks for debugging it.
Marek


Everyday excel ,part 1

I need week 2 assignment 1 code for exeryday excel part 1, please !

3027

need week 2 assignment 1 code for exeryday excel part 1, please !


:art: Shortened last three methods in color class

Used the ternary operator to shorten the last three methods in color.js
Description of the Change
This was a small refactoring to shorten the last three methods in the color class.
Alternate Designs
N/A
Why Should This Be In Core?
N/A
Benefits
It doesn't sacrifice clarity, but just reduces unnecessary sizeof code.
Possible Drawbacks
Possibly readability, although that shouldn't be too big an issue.
Applicable Issues
None

:+1:


Add instructions on how to grab a single path

Occasionally for https://github.com/efforg/congress-forms-test we have to pull the latest 225x275 images.  Instead of pulling the entire repo with the much larger images, I'm able to use github's support of svn to grab just that path:
svn checkout https://github.com/unitedstates/images/trunk/congress/225x275

You may want to add instructions on how to do this in the README.md

Fixed by #24.


Cannot disable serviceinfo auth

Despite the docs saying that service_info_auth_token can be set to None in serviceinfo_api_server.yml if no authentication is needed, it seems that the server is always looking for authentication headers even with service_info_auth_token: None, as seen in the following log:
 2023-01-27T17:27:53.946Z INFO  fdo_serviceinfo_api_server > Listening on <IP_ADDRESS>:8083
 2023-01-27T17:29:32.821Z DEBUG hyper::proto::h1::io       > parsed 2 headers
 2023-01-27T17:29:32.821Z DEBUG hyper::proto::h1::conn     > incoming body is empty
 2023-01-27T17:29:32.821Z INFO  serviceinfo-api-server     > <IP_ADDRESS>:48710 "GET /device_info HTTP/1.1" 400 "-" "-" 80.245µs
 2023-01-27T17:29:32.821Z DEBUG warp::filter::service      > rejected: Rejection([MethodNotAllowed, MethodNotAllowed, MissingHeader { name: "Authorization" }])
 2023-01-27T17:29:32.821Z DEBUG hyper::proto::h1::io       > flushed 164 bytes
 2023-01-27T17:31:02.826Z DEBUG hyper::proto::h1::conn     > read eof
...

Can reproduce on main, will check if it's a bug or the docs are outdated and we always need authentication.


No authentication possible with an SSL cerificate and an SSL Password

I have the an SSL certificate in form of a .pem file and a key to open it. I can't authenticate with
SASL_USERNAME
SASL_PLAIN_PASSWORD
SSL_PASSWORD
SSL_CERTIFICATE

My configuration in red panda looks like
kafka:   brokers:     - prod01.kafka.oebb.at:9095   sasl:     enabled: true     mechanism: SCRAM-SHA-512     username: frank     password: frank's pw # This can be set via the --kafka.sasl.password flag as well   tls:     enabled: true     caFilepath: ./conf/Kafka-SC-PROD-CA.pem   schemaRegistry:     enabled: true     urls:        - https://schema-registry-sc.kafka.oebb.at     tls:       enabled: true       caFilepath: ./conf/sbb-issuer.pem


perf: Add a continuousCloseProximity option to annotations

@boucaud, If you set continuousCloseProximity to true, it will always close a dragged polygon on mouse up.  You should be able to test this with the build artifacts produced by the actions.

Thanks ! I can confirm it works.


Why constructor instead of identity

I was wondering why a constructor is used for the unflatten function in
https://github.com/JuliaGaussianProcesses/ParameterHandling.jl/blob/e5e03d1b7bdfffc5d9dbc119fa2f967599071d99/src/flatten.jl#L34
instead of simply the identity.
Context: I was chasing an Enzyme error. The following doesn't work:
using Enzyme, ParameterHandling
testfun(θ) = sum(θ[1])
θ = (rand(10),)
x, unpack = value_flatten(θ)
dx = zero(x)
autodiff(Reverse, testfun ∘ unpack, Duplicated(x, dx)) # ERROR: Duplicated Returns not yet handled

But when overloading flatten for vectors as follows, it works ok.
ParameterHandling.flatten(::Type{T}, x::Vector{R}) where {T<:Real,R<:Real} = (Vector{T}(x), identity)

There's probably a bug somewhere in Enzyme which makes it so it can't differentiate this,, but as always I find it pretty hard to reduce to a MWE.

I suspect that we implemented it this way to enforce that a vector with element type R is produced when un-flattening. e.g. if T == Float64 and R == Float32, I believe we wanted to ensure that
v, unflatten = flatten(Float32, randn(3))
x_ = unflatten(v)

produces x_ with element-type Float64, rather than Float32.

Yeah makes sense. I guess one could add a specialization for T==R though with the identity.

That definitely makes sense as a work-around to have in your code for now, but I'd rather not add it to this package. I'd be happy to help constructing a MWE in order to open an issue on Enzyme. Do you have a starting point for the example?

Sure, I wasn't suggesting adding it to the package. The MWE is basically in the second code block in the OP. I already tried with just a vector (i.e. not wrapped in a Tuple), but then the error does not occur. So I suspect it has to do with the constructor appearing in the ComposedFunction, but it's really just a speculation on my part right now.

Never mind the last comment, the following also does not work:
using Enzyme, ParameterHandling
testfun(θ) = sum(θ[1])
θ = (rand(10),)
x, unpack = flatten(θ)
dx = zero(x)
autodiff(Reverse, testfun ∘ unpack, Duplicated(x, dx))

Yes I often see that but I was told that it's not really a problem. The error I see is
ERROR: Duplicated Returns not yet handled

Oh, interesting, I didn't see that with
autodiff(Reverse, testfun ∘ Vector{Float64}, Duplicated(x ,dx))

Hmmmm

https://github.com/EnzymeAD/Enzyme.jl/issues/741

After the response and further thought it seems that this is really not an Enzyme bug. The problem is that in the first example a closure over constructor is created, which implicitly creates a struct with field type DataType. Indeed:
julia> @code_warntype foo(t)
MethodInstance for foo(::Tuple{Vector{Float64}})
  from foo(x::Tuple{T}) where T<:(AbstractVector) in Main at /home/simone_a/Documents/projects/n/ai-timeseries-julia/tsv.jl:130
Static Parameters
  T = Vector{Float64}
Arguments
  #self#::Core.Const(foo)
  x::Tuple{Vector{Float64}}
Locals
  bar::var"#bar#15"{DataType}
  constructor::Type{Vector{Float64}}
  TT::Type{Vector{Float64}}
Body::Tuple{Vector{Float64}, var"#bar#15"{DataType}} # <--- HERE
1 ─ %1  = Main.only(x)::Vector{Float64}
│   %2  = Main.typeof(%1)::Core.Const(Vector{Float64})
│   %3  = Core.apply_type(Main.Type, $(Expr(:static_parameter, 1)))::Core.Const(Type{Vector{Float64}})
│         (constructor = Core.typeassert(%2, %3))
│   %5  = constructor::Core.Const(Vector{Float64})
│         (TT = %5)
│   %7  = Main.:(var"#bar#15")::Core.Const(var"#bar#15")
│   %8  = Core.typeof(TT::Core.Const(Vector{Float64}))::Core.Const(DataType)
│   %9  = Core.apply_type(%7, %8)::Core.Const(var"#bar#15"{DataType})
│         (bar = %new(%9, TT::Core.Const(Vector{Float64})))
│         (bar = bar::Core.Const(var"#bar#15"{DataType}(Vector{Float64})))
│   %12 = Main.only(x)::Vector{Float64}
│   %13 = Core.tuple(%12, bar::Core.Const(var"#bar#15"{DataType}(Vector{Float64})))::Core.PartialStruct(Tuple{Vector{Float64}, var"#bar#15"{DataType}}, Any[Vector{Float64}, Core.Const(var"#bar#15"{DataType}(Vector{Float64}))])
└──       return %13

and therefore
julia> @code_warntype u(x)
MethodInstance for (::var"#bar#15"{DataType})(::Vector{Float64})
  from (::var"#bar#15")(v) in Main at /home/simone_a/Documents/projects/n/ai-timeseries-julia/tsv.jl:133
Arguments
  #self#::var"#bar#15"{DataType}
  v::Vector{Float64}
Body::Tuple{Any}
1 ─ %1 = Core.getfield(#self#, :TT)::DataType
│   %2 = (%1)(v)::Any
│   %3 = Core.tuple(%2)::Tuple{Any}
└──      return %3

In the full example the problem is the same.

Ahh I see. So perhaps we should replace the Vector{R} with something else, like x -> convert(Vector{R}, x)?

I found a fix. It is sufficient to make the unflatten_to_Vector more explicit using broadcast:
function flatten(::Type{T}, x::Vector{R}) where {T<:Real,R<:Real}
    function unflatten_to_Vector(v::Vector{T})
        return R.(v)
    end
    return Vector{T}(x), unflatten_to_Vector
end

Would you mind this change?

Ahh I see. So perhaps we should replace the Vector{R} with something else, like x -> convert(Vector{R}, x)?

That might work as well. Let me try.


[native_assets_cli] Protocol environment variables

Leaning towards passing in all environment variables, and reinvoking the hooks on any environment variable change.

This needs to be documented somewhere.

Problem
With what environment variables should we invoke build.dart?
build.dart is invoked with a BuildConfig (which is read from args/env/file), but the CLI itself most likely invokes other processes (for example a C compiler). These processes are influenced by which environment variables are set.
Minimum env variables
Let's say we get rust_compiler package that tries to find rustc on PATH, then we must at least pass through PATH on our build.dart invocation.
On Windows, various tools rely on a host of other environment variables as well:

SYSTEMROOT is required for cl.exe from MSVC
TMP and TEMP are required for cl.exe in some cases in order to be able to write temporary files.

So the minimum list of environment variables we should pass through are the ones mentioned above.
Maximum environment variables
Conversely, there are also environment variables which are conflicting with the Dart ecosystem and native tooling.

SDKROOT is set by tools/test.py which breaks xcodebuild invocations as it interprets the SDKROOT as a path for the iOS or MacOS SDK rather than the Dart SDK.

Caching correctness and cache misses
If any of the environment variables influences the build, it could throw off caching of builds:

If we ignore all environment variables when determining whether a cache can be reused, we might accidentally not rebuild leading to stale builds. (Currently the only way for a user to fix that is to find the folder in which the build has happened and delete it.)
If we take all environment variables into account when determining if a cache can be reused, we might throw away build caches too often.

Possible solutions
We could consider listing the environment variables we pass through, making an allow list.
Or we could consider listing the environment variables we use for caching, but passing through all except for a deny list.
1. SDK: Pass through everything except deny list + use these for caching
Pros:

Correct caching
Users using new environment variables not blocked

Cons:

We might throw out valid cached for spurious environment changes.

(We should probably change SDKROOT to DARTSDKROOT in test.py and it's users.)
Even when implementing the env-filtering in the Dart and Flutter SDK, we should probably make the deny list (or allow list) part of this package, so that this package contains the whole protocol spec.
2. SDK: Pass through only an allow list + use these for caching
Pros:

Correct caching
Efficient caching

Cons:

If users want rely on a new environment variable, they need make an SDK PR and wait for the next Dart SDK release.

3. SDK: Pass through everything except for deny list + use allowlist for caching
Pros:

Users using new environment variables not blocked
Efficient caching

Cons:

Potentially incorrect caching. Users would need to make a PR to the Dart SDK to make it work.

4. package:native_assets_cli solution
Always just invoke build.dart with all environment variables, but add the allowList or denyList to package:native_assets_cli.
There would be an .environment getter on BuildConfig likely.
Pro:

Updating allowList/denyList does not require Dart SDK / Flutter updates.
We could potentially Isolate.spawnUri to run build rather than Process.run (but that would mean no exit(int) calling in any build.dart script, and tougher handling of unhandled exceptions etc.) https://github.com/dart-lang/native/issues/33

Con:

Every process invocation in build.dart requires explicitly passing environment and includeParentEnvironment: false.
Incorrect caching until that version of native_assets_cli rolls into the Dart SDK.

Maybe there are solutions I haven't thought about yet. I'm open to suggestions. (Otherwise I might lean towards solution 1 or 2.)
internal design doc with some initial discussion about the env vars
cc @mkustermann @liamappelbe @HosseinYousefi

We should strongly consider having

includeParentEnvironment: false
have a minimal environment for the subprocess
allow embedder to add extra environment variables

This avoids hooks to accidentally depend on things they shouldn't and would be a step towards a more hermetic/sandboxed build.
(Environment variables may expose also secrets - e.g. various access tokens / api keys / ... that we may not want to blindly pass to all the hook invocations)

Originally posted by @mkustermann in https://github.com/dart-lang/native/pull/1759#discussion_r1861804313
Let's take this discussion to where we already have context.

includeParentEnvironment: false
have a minimal environment for the subprocess

I've been playing around a bit with restricting the environment variables:

https://github.com/dart-lang/native/pull/1764

  static const _environmentVariablesFilter = {
    'ANDROID_HOME',
    'PATH',
    'PROGRAMDATA',
    'SYSTEMROOT',
    'TEMP',
    'TMP',
  };

That's the list of env vars needed to pass the tests on the CI which invoke clang, msvc, and the NDK.

Invalidating caching based on the full set of env vars seems overly cautious, as those might change often @mosuem

For example, these can cause a rebuild when not needed:
CHOCOLATEYLASTPATHUPDATE<PHONE_NUMBER>70192620
VSCODE_GIT_IPC_HANDLE \\.\pipe\vscode-git-db44fa1249-sock

This would probably cause a rebuild when restarting vscode, and a rebuild when updating (unrelated) packages.

allow embedder to add extra environment variables

@mkustermann The embedder? Or the user? Probably the user should be able to that, otherwise it would still require PRs on the embedder. But I'm slightly worried that that will make the CLI for dart run // flutter run etc quite nasty.


Enable tech docs multipage functionality - DO NOT MERGE

This PR contains the pattern for the new tech docs multipage config pulled from the tech doc source repo. Currently published RE documentation has been previewed and amended to fit this new pattern.
See the PaaS documentation as an example.

@idavidmcdonald this is the PR we talked about, it includes the multipage site we looked at yesterday with the new content pattern for the team doc. As discussed I have replaced our current site with the new one, I'll take your lead regarding testing its readiness for deployment.
Thanks,
Peter

Checking for broken links and snags.

@idavidmcdonald I have now changed the rendering order for Metrics and Alerting to match Emily's suggestions. Over to you for a final check, there's a conflict in this branch to resolve. I'm happy to look into this if you're busy.


Set document OGP

Support Twitter, Facebook share.

Refer:
https://github.com/docsifyjs/docsify/issues/761

Does this meet the requirements?
https://docusaurus.io/

Use Docusaurus as a docs directory ?:
https://github.com/facebook/docusaurus/issues/323

Shuld i use a plugin?
docusaurus-plugin-content-docs
https://docusaurus.io/changelog/V2 Changelog#siteconfigjs-changes


BVAL-565 Adding japicmp plug-in

We should publish (a link to) the report, to. For HEAD, a link to the report on Jenkins should be fine.
https://hibernate.atlassian.net/browse/BVAL-565

Rebased and merged. Opened https://github.com/beanvalidation/beanvalidation.org/pull/54 for the website part.


Build fail on Android, deprecated Gradle features

please kindly upgrade or if there is a way to fix this issue i would really appreciate it

i have also tried to down grade it to, gradle-6.5 , still getting the same issue

It's not about gradle, please post the log after > Configure project :android:gcanvas_library which describe the detail of Task :android:gcanvas_library:mergeDebugNativeLibs FAILED

Can you try add below into you /android/app/build.gradle and tell me the compile result?
android {
...
    ndkVersion "22.1.7171670"
...

What's your ndk version? Have you tried above ndkVersion "22.1.7171670"

yes i have  tried it

android/build.gradle

I mean, not in your /android/build.gradle ,but in your /android/app/build.gradle, and like below:
android {
...
    ndkVersion "22.1.7171670"
...

Okay i will do that now

same error message

More than one file was found with OS independent path 'lib/armeabi-v7a/libfreetype.so'. If you are using jniLibs and CMake IMPORTED targets, see https://developer.android.com/studio/preview/features#automatic_packaging_of_prebuilt_dependencies_used_by_cmake

I have not try built .apk on macOS, can you try build .ipa on macOS, or build .apk on Linux/Windows ?

ninja: Entering directory<EMAIL_ADDRESS>

ninja: no work to do.

I reproduced the issue with RN0.64.2 not with RN0.63.2, and now<EMAIL_ADDRESS>fix it 😋

hello
thank you so much for the fix but my application crash now anytime i tried to view the page.
Do you have any idea what might be the issue ?

Please post some logcat and your canvas related source code. And in another issue.

v6.0.13 support x86 (Android emulator) now


[ClickHouse] Add support for WITH FILL to OrderByExpr

ClickHouse supports the ORDER BY ... WITH FILL modifier:
https://clickhouse.com/docs/en/sql-reference/statements/select/order-by#order-by-expr-with-fill-modifier
WITH FILL itself supports a simple "from", "to", and "step" parameters, and a more sophisticated INTERPOLATE option.

One question I had around the naming - do we like InterpolationArg and Interpolation or would we prefer this to be InterpolateArg and Interpolate to match the keyword and field name?
The values describe and "interpolation" which is why I named it that way to begin with, but I don't feel strongly either way.

I added some tests for validation that invalid syntax is rejected. This required me to add a validation function specifically for GenericDialect and ClickHouseDialect to check that we have WITH FILL when we have an INTERPOLATE and ensuring that INTERPOLATE is in the last OrderByExpr
The only other way I could think to tackle this type of validation would be to change the Query.order_by to not be a Vec<OrderByExpr> but something like:
struct OrderByClause {
  order_bys: Vec<OrderByExpr>,
  interpolate: Option<InterpolateArg>,
}

but that seems much more disruptive to everyone who uses Query.order_by vs keeping this localized to just the the ClickHouse parsing.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

197 of 202 (97.52%)  changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.06%) to 89.158%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/parser/mod.rs
54
56
96.43%

tests/sqlparser_clickhouse.rs
84
87
96.55%

Totals

Change from base Build<PHONE_NUMBER>:
0.06%

Covered Lines:
26643

Relevant Lines:
29883

💛  - Coveralls

@alamb Thanks for that information. I believe I've addressed the latest feedback from @iffyio (rename + refactor structure).
Let me know if there's anything else I need to do (e.g. changelog updates).

Hey @alamb - is this something that can be merged into main? I understand this change won't make it into a version until 0.49.0 is released (I hope 🤞), but I could at least target a commit on main instead of this branch.
Thank you!

Sure thing -- sorry @nickpresta. I am sorry for the delay. I pushed a commit to try and resolve a test failure and hope to merge this in once the CI completes

No problem at all! I appreciate everyone's effort to get this merged in.
Thank you @alamb, @iffyio, and @git-hulk for your time and all the feedback.


Parsing Power BI queries that contain comments (aka --)  causes it to ignore anything after

Describe the bug
When we ingest a power bi report that has datasets that contain --   (2 hyphens),
the SQL parser ignores everything after it in the upstream lineage.  I am using version 14.0.3 of the CLI
To Reproduce
Example query
select#(lf)upper(cs.customercode) as customercode#(lf), cs.ear2id as ear2id#(lf), db.branch_rollup_name#(lf) , db.subregion1#(lf) , db.subregion2#(lf)from nast_truckload_domain.broker.dim_customer cs#(lf)--join nast_customer_domain.broker.dim_customer_ear2_single_ownership_history as so on cs.ear2id = so.ear2_id and is_current = true#(lf)join nast_customer_domain.broker.dim_customer_ear2_single_ownership_history as so on cs.ear2id = so.ear2_id and is_current = true#(lf)join nast_customer_domain.broker.ref_branch db on db.Branch_code = so.branch_code#(lf)-- join nast_customer_domain.broker.customer_long_term_value as clv on cs.ear2id = clv.ear2_id#(lf)-- join nast_customer_domain.broker.customer_order_load cl on cl.customer_code = cs.customercode and cl.revenue>0 and cl.activity_date>= '2023-01-01'#(lf)where cs.customerstatusid = 1 --active#(lf)-- and cs.customercode = 'C8817970'#(lf)and db.primary_business_line_id in  ('62','73')#(lf)-- and cs.ear2id = 199
It's a little easier to read if you replace the #(lf) with a new line.
select upper(cs.customercode) as customercode , cs.ear2id as ear2id , db.branch_rollup_name  , db.subregion1  , db.subregion2 from nast_truckload_domain.broker.dim_customer cs --join nast_customer_domain.broker.dim_customer_ear2_single_ownership_history as so on cs.ear2id = so.ear2_id and is_current = true join nast_customer_domain.broker.dim_customer_ear2_single_ownership_history as so on cs.ear2id = so.ear2_id and is_current = true join nast_customer_domain.broker.ref_branch db on db.Branch_code = so.branch_code -- join nast_customer_domain.broker.customer_long_term_value as clv on cs.ear2id = clv.ear2_id -- join nast_customer_domain.broker.customer_order_load cl on cl.customer_code = cs.customercode and cl.revenue>0 and cl.activity_date>= '2023-01-01' where cs.customerstatusid = 1 --active -- and cs.customercode = 'C8817970' and db.primary_business_line_id in  ('62','73') -- and cs.ear2id = 199
Only the first table shows up because the line after it is commented out.  The 3rd and 4th lines of the FROM clause are ignored.

I have tested removing the comments and they show up in the lineage.  If there is a comment in the SELECT clause, none of the tables show upstream in the lineage.
Expected behavior
I would expect that the parser removes any lines of code from a -- to a new line or #(lf)  character as #(lf) is how power bi represents new lines.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]  Windows 11
Browser [e.g. chrome, safari]  Chrome
Version [e.g. 22]

Additional context
Add any other context about the problem here.

@Bongton    Thanks for the quick response.  What does that file/application do?  (Figured I should ask before I go download a random file)


[Feature Request] Allow node ID as search option in search bar

Community Note

Please use a 👍 reaction to provide a +1/vote. This helps the community and maintainers prioritize this request.
If you are interested in working on this issue or have submitted a pull request, please leave a comment.

Graph Explorer Version (and Graph Database and Version used if applicable)
All
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm frustrated when [...]
This is a blocking issue. The node IDs are meaningful business IDs for many customers. Allow them to perform an EXACT search on just the ID.
Describe the solution you'd like
A clear and concise description of what you want to happen.
If user wants to find node with ID x, from the search bar in the upper middle, allow them to search the exact ID value for that node type. Currently ID is not offered in the drop down.
Additional context
Add any other context or screenshots about the feature request here. Describe any alternatives you've considered.

@mhavey Searching by ID specifically is now supported in version 1.6 of Graph Explorer.
Thank you for your great suggestion!


rename convergence tests to "integration"

and put in standard model tests to integration

change add_model documentation to point to new place for model tests (integration)


Preocts 20220717 .env CLI work

Codecov Report

Merging #8 (cf2c239) into main (dbdf69d) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main        #8   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           11        14    +3
  Lines          299       391   +92
  Branches        21        27    +6
=========================================
+ Hits           299       391   +92

Flag
Coverage Δ

unittests
100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

tests/yolk_test.py
100.00% <ø> (ø)

src/runtime_yolk/env_cli.py
100.00% <100.00%> (ø)

src/runtime_yolk/env_loader.py
100.00% <100.00%> (ø)

tests/conftest.py
100.00% <100.00%> (ø)

tests/env_cli_test.py
100.00% <100.00%> (ø)

tests/env_loader_test.py
100.00% <100.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 dbdf69d...cf2c239. Read the comment docs.


Add tests via TestDriverAI (#1957)

initial Commit

update prerun

tweak the prompt

update the test

finetune prompt

change the prompt

minor change to retry test

add debug

Description
Please provide a summary of the changes, including relevant motivation and context.
Closes #(issue_number)
Checklist

[ ] I have read the Contribution Guidelines
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] My changes generate no new warnings
[ ] I have read the section Add New Translation Tags (for new translation tags only)

Hey @Frooodle hope you are doing well mate.
long time 😅 , sorry.....
So I tried to a few stuff and was very close to becoming the guy in the meme who burns all the money on aws.
One of the things that looked promising was running docker on another linux instance and accessing it in the windows VM via the private IP , but the issue is 1) we do not want to act as a build server , 2) its not scalable for us, given the dynamics of the customers we work with.
So I am here to ask for you help and advice, what do you think would be a nice way for you to build and host the docker image (max we would need it live for like 15 - 20 min) who's public url we can just reference in our windows VM
I tried a few stuff like ngrok, but the issue is its not persistent, the url goes down once the job terminates, we need that url for our testing job :(

Hey I have been testing this on my side
I recently grabbed a VPS and used it for our pr testing via using /deploy-pr as a comment in any PR
Was using this also as a test to then integrate with your scripts so we can throw it on a cheap VPS and deploy it before hand

https://github.com/Stirling-Tools/Stirling-PDF/pull/2433#issuecomment-2548073262
https://github.com/Stirling-Tools/Stirling-PDF/blob/main/.github/workflows/PR-Demo-Comment.yml
for example

You are awesome dude.
You saved my Christmas haha

Nice.
Now what do you want from me ?
How can I help you ?

I think its all good, its on me to pair the deployment script I have done to run before the testdriverAI side and then should be good

Between you and me, my boss said he will buy me airpods for this Christmas if I get this PR merged,
so you are actually my secret santa in a way.  🫠🤞🎅🏼

🫡


Fusion using combos

Hi,
I was trying to get fused runs. I managed to do it perfectly fine with reciprocal_rank_fusion with the example you showed, but when trying combos function the first issue I noticed is that it does not return a TrecRun object as reciprocal_rank_fusion do so I had to convert to a TrecRun object myself.
fused_run=TrecRun(fused_run)
but I am getting the below error
   f"The truth value of a {type(self).__name__} is ambiguous. "
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

Kindly advise.

Hi @Fatima-Haouari, thanks for your message. Good to see people from Qatar around. I am currently your neighborhood in QCRI. Could you please share more details about your problem. The best would be if you could provide a short code that shows the error. Thanks

Thanks for your response. Nice to hear you are our neighbor.
Please find below the code I am using
from trectools import TrecRun,TrecQrel, TrecEval, fusion

r1 = TrecRun("my_run1")
r2 = TrecRun("my_run2")
qrels= TrecQrel("my_qrels")
fused_run = fusion.combos([r1,r2],strategy="mnz")
fused_run=TrecRun(fused_run)
r1_p10 = TrecEval(r1, qrels).get_precision(depth=10)
r2_p10 = TrecEval(r2, qrels).get_precision(depth=10)
fused_run_p10 = TrecEval(fused_run, qrels).get_precision(depth=10)
print("P@10-- Run 1: %.3f, Run 2: %.3f, Fusion Run: %.3f" % (r1_p10, r2_p10, fused_run_p10))
fused_run.print_subset("my_fused_run.txt", topics=fused_run.topics())

Please find below the error I am getting
   fused_run=TrecRun(fused_run)
  File "/ds/usr/fatima/.conda/envs/myenv/lib/python3.6/site-packages/trectools/trec_run.py", line 21, in __init__
    if filename:
  File "/ds/usr/fatima/.conda/envs/myenv/lib/python3.6/site-packages/pandas/core/generic.py", line 1330, in __nonzero__
    f"The truth value of a {type(self).__name__} is ambiguous. "
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

Hi Fatima, thanks for reporting this issue. I have just modified the interface of this module to follow the same pattern.
You can use it with the following code:
from trectools import TrecRun,TrecQrel, TrecEval, fusion

r1 = TrecRun("my_run1")
r2 = TrecRun("my_run2")
qrels= TrecQrel("my_qrels")

fused_run = fusion.combos([r1, r2], strategy="mnz")
# or fused_run = fusion.rank_biased_precision_fusion([r1, r2])
# or fused_run = fusion.vector_space_fusion([r1, r2])
# or fused_run = fusion.reciprocal_rank_fusion([r1, r2])

r1_p10 = TrecEval(r1, qrels).get_precision(depth=10)
r2_p10 = TrecEval(r2, qrels).get_precision(depth=10)

fused_run_p10 = TrecEval(fused_run, qrels).get_precision(depth=10)
print("P@10-- Run 1: %.3f, Run 2: %.3f, Fusion Run: %.3f" % (r1_p10, r2_p10, fused_run_p10))

fused_run.print_subset("my_fused_run.txt", topics=fused_run.topics())

Please dont forget to update trectools first.
I also added a few todos on ideas of how to clean the code and make it more pandas-like. If you are up to it, please feel free to contribute.
Best,
Joao

Thanks a lot for your help. I managed to get the fused runs now. However, I have an issue with the saved runs, It seems the print_subset function have an issue with the documents IDs format when the document ID is a long sequence please see an example below. I think they need to be saved as strings not floats.
938526354907201539 Q0<PHONE_NUMBER>.0 1 68.17239761352539 comb_mnz
938526354907201539 Q0<PHONE_NUMBER>.0 2 59.64200019836426 comb_mnz
938526354907201539 Q0 8.419854421992653e+17 3 47.85719871520996 comb_mnz
938526354907201539 Q0 1.2399882500827095e+18 4 47.61159896850586 comb_mnz
938526354907201539 Q0 66183082.0 5 46.91860008239746 comb_mnz
938526354907201539 Q0 1.1214384475945533e+18 6 45.5049991607666 comb_mnz

Interesting, Fatima. I wrote a patch for this issue. Could you please check if this is fixed with the latest code?
Thanks for reporting it!

Thanks for your quick response. Unfortunately I am getting the below error now.
    r1_p10 = TrecEval(r1, qrels).get_precision(depth=10)
  File "/ds/usr/fatima/.conda/envs/myenv/lib/python3.6/site-packages/trectools/trec_eval.py", line 670, in get_precision
    merged = pd.merge(run[["query", "docid", "score"]], qrels[["query","docid","rel"]], how="left")
  File "/ds/usr/fatima/.conda/envs/myenv/lib/python3.6/site-packages/pandas/core/reshape/merge.py", line 87, in merge
    validate=validate,
  File "/ds/usr/fatima/.conda/envs/myenv/lib/python3.6/site-packages/pandas/core/reshape/merge.py", line 656, in __init__
    self._maybe_coerce_merge_keys()
  File "/ds/usr/fatima/.conda/envs/myenv/lib/python3.6/site-packages/pandas/core/reshape/merge.py", line 1165, in _maybe_coerce_merge_keys
    raise ValueError(msg)
ValueError: You are trying to merge on object and int64 columns. If you wish to proceed you should use pd.concat

Thanks again, Fatima. Forcing the docid to be a string will have a few consequences as the one that you described.
I pushed another patch now. If you face another error, could you please send me the files by email so I can test them quickly here?
Thanks!

Thanks a lot I really appreciate it. It worked perfectly fine now.

Great, glad to hear that!
Thanks for using TrecTools and feel free to contribute if you would like to!

Thanks for your efforts. TrecTools is really useful for my research, and I would be happy to contribute to this great work.


Subject line of reminder emails should contain refnum

Per secretary request

Already implemented and live

See: https://github.com/UiL-OTS-labs/ethics/pull/316


Skeleton Image Loading Animation

Images have a skeleton animation which runs until all images on the page are fully loaded.
Change the animation colors if you want, relevant code is here
Better (non-static) implementation of #8
Closes #5

Important note: This pull request converts the MainGrid component in grid.jsx from a function component to a class component to allow access to the componentDidUpdate hook. Might also allow for easier implementation of future code as well.

amazing work @TheRealDust 😺, this is exactly what I wanted to achieve, I'm not that familiar with class components yet but guess I'll start using them too, tysm 💜


Adding details field to Task class

The Java class Task which retrieves the response from Meilisearch for a task contains these fields:
    protected String status = "";
    protected int uid = 0;
    protected String indexUid = "";
    protected String type = null;
    protected String duration = "";
    protected Date enqueuedAt = null;
    protected Date startedAt = null;
    protected Date finishedAt = null;
    protected TaskError error = null;

But the actual response send by Meilisearch is like:
{
	"uid": 225,
	"indexUid": "WaitForTaskTimoutInMs",
	"status": "succeeded",
	"type": "documentAddition",
	"details": {
		"receivedDocuments": 30,
		"indexedDocuments": 30
	},
	"duration": "PT0.031713875S",
	"enqueuedAt": "2022-01-26T16:54:46.993341418Z",
	"startedAt": "2022-01-26T16:54:46.995596001Z",
	"finishedAt": "2022-01-26T16:54:47.027309876Z"
},

It should be more accurate to add a details field to the Task class to be able to have the entire answer from the Meilisearch API.

@alallema  I would love to work on this, please assign this to me

Hi @kuruvasatya,
We have chosen not to assign people to our issues anymore because sometimes people ask to be assigned and never come back, which discourages real volunteer contributors from opening a PR to fix this problem.
But I see you already propose an issue, I will review it 😊
Thanks for contributing to Meilisearch ❤

Hello! The type details is not completed. See example in swift


firefox-devedition-bin-unwrapped: 113.0b4 -> 113.0b7

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for firefox-devedition-bin-unwrapped is: Mozilla Firefox, free web browser (binary package)
meta.homepage for firefox-devedition-bin-unwrapped is: https://www.mozilla.org/firefox/
meta.changelog for firefox-devedition-bin-unwrapped is: https://www.mozilla.org/en-US/firefox/113.0b6/releasenotes/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 113.0b6 with grep in /nix/store/dwld5czfsn9rx34pfcvv1fhp9psvavh7-firefox-devedition-bin-unwrapped-113.0b6
found 113.0b6 in filename of file in /nix/store/dwld5czfsn9rx34pfcvv1fhp9psvavh7-firefox-devedition-bin-unwrapped-113.0b6

Rebuild report (if merged into master) (click to expand)

Outpath calculations were skipped for this package; total number of rebuilds unknown.

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/dwld5czfsn9rx34pfcvv1fhp9psvavh7-firefox-devedition-bin-unwrapped-113.0b6 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A firefox-devedition-bin-unwrapped https://github.com/r-ryantm/nixpkgs/archive/c48c62d928aec6d416df706ca856f1d17895a35b.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/dwld5czfsn9rx34pfcvv1fhp9psvavh7-firefox-devedition-bin-unwrapped-113.0b6
ls -la /nix/store/dwld5czfsn9rx34pfcvv1fhp9psvavh7-firefox-devedition-bin-unwrapped-113.0b6/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

firefox-devedition-bin
firefox-devedition-bin-unwrapped

Maintainer pings
cc @taku0 @lovesegfault for testing.

Backport after https://github.com/NixOS/nixpkgs/pull/227537

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for firefox-devedition-bin-unwrapped is: Mozilla Firefox, free web browser (binary package)
meta.homepage for firefox-devedition-bin-unwrapped is: https://www.mozilla.org/firefox/
meta.changelog for firefox-devedition-bin-unwrapped is: https://www.mozilla.org/en-US/firefox/113.0b7/releasenotes/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 113.0b7 with grep in /nix/store/kzq6fra82hr9xsvkrjxvg1ldcjrzq49h-firefox-devedition-bin-unwrapped-113.0b7
found 113.0b7 in filename of file in /nix/store/kzq6fra82hr9xsvkrjxvg1ldcjrzq49h-firefox-devedition-bin-unwrapped-113.0b7

Rebuild report (if merged into master) (click to expand)

Outpath calculations were skipped for this package; total number of rebuilds unknown.

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/kzq6fra82hr9xsvkrjxvg1ldcjrzq49h-firefox-devedition-bin-unwrapped-113.0b7 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A firefox-devedition-bin-unwrapped https://github.com/r-ryantm/nixpkgs/archive/12942b52df1bca7339aa4fae9e6cd99bfdeb8c2f.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/kzq6fra82hr9xsvkrjxvg1ldcjrzq49h-firefox-devedition-bin-unwrapped-113.0b7
ls -la /nix/store/kzq6fra82hr9xsvkrjxvg1ldcjrzq49h-firefox-devedition-bin-unwrapped-113.0b7/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

firefox-devedition-bin
firefox-devedition-bin-unwrapped

Maintainer pings
cc @taku0 @lovesegfault for testing.


0.96.0 Beta

OPENING REALM FILES WITH THIS VERSION WILL PERFORM A ONE-WAY MIGRATION TO SUPPORT NULLS
Realm files read or written by this version cannot be opened with previous versions of Realm. Please be careful about shipping updates to your existing apps using this version.
Null Support
This version add full support for null for all property types.
Objective-C
NSString *, NSDate *, NSData * now allow nil by default. You can disallow setting a property to nil by overriding the requiredProperties class method and including the names of the properties which you want to disallow nil for.
Optional numbers can be stored using an NSNumber * property which is tagged with the type of the number. You can use NSNumber<RLMInt> *, NSNumber<RLMBool> *, NSNumber<RLMFloat> *, and NSNumber<RLMDouble> *.
Swift
String, NSDate and NSData properties work as you'd expect them to and can either be optional or non-optional. Unfortunately, we're unable to directly support optional numeric types, so you have to wrap the types in RealmOptional<>.
For example:
class OptionalTypes: Object {
    dynamic var string: String? = "B"
    dynamic var data: NSData? = "C".dataUsingEncoding(NSUTF8StringEncoding)
    dynamic var date: NSDate? = NSDate(timeIntervalSince1970: 10)
    let int = RealmOptional<Int>(1)
    let float = RealmOptional<Float>(2.2)
    let double = RealmOptional<Double>(3.3)
    let bool = RealmOptional<Bool>(true)
    let boolWithNilDefault = RealmOptional<Bool>(nil)
}

As with List<> properties, RealmOptional<> properties should always be declared with let and not be declared dynamic. The actual value of the RealmOptional<> is read from and written to the value property.

Includes #2449, #2458, #2475, #2476.

Test failures are the usual spurious ones plus the ios-devices test not running due to that machine being offline, so I think this is ready to go.

Agreed, this looks ready to be released manually. :+1:

Closing as this is now released: https://github.com/realm/realm-cocoa/releases/tag/v0.96.0-beta


 key does not work on Amazon Fire tablet

After logging in to a remote host via ssh, the  key on the tablet's soft keyboard does not function properly. This renders ConnectBot useless.
The response to the  key is that ConnectBot emits a random string of characters. This string can be the nickname of the current connection. This string can also be some recently typed characters from the soft keyboard.
My tablet's FireOS is up to date. I downloaded ConnectBot from the Google Play Store today so it also is up to date.

I met same issue like you with my Fire Tablet. Anyone can help?

Vp-2klic,
All of the ssh client apps I tried have the same problem. It's not just ConnectBot.
The solution is to install an alternate keyboard from the Google Play Store, and use it. Be aware that most of the alternate keyboards are spyware. I believe that "Hackers Keyboard" is safe, but do your own research.

@arnstein99
I found that Gboard can be used with ConnectBot. It's a Google's app, so I think it's more trustable. You can get it from Play Store or apkmirror.

Hi, Anybody has solved this issue?
I've got the same problem on my Fire tablet

@nikorose87 see my previous comment. If you install and activate an alternate keyboard, this problem vanishes.

@nikorose87 my solution is installing Google Keyboard from CH Play.

Another work around for Fire tablets: enter CTRL M instead of tapping the enter key
Not ideal, but it works in ConnectBot and Termius at least.

Or use CTRL + j
it work perfectly, good luck


missing file for example

The example:
CUDA_VISIBLE_DEVICES=0 python eval_zero_shot_task.py --config-name=240425_eval_multiple_ckpt configs.hf=["vanilla_31"] batch_size=64
seems to refer to a file that no longer exists. in the conf/eval/ folder there is an "eval_multiple_ckpt.yaml" file. running with this file results in an out-of-bounds error:
ubuntu@mldev:~/shkre2/block-transformer$ CUDA_VISIBLE_DEVICES=0 python eval_zero_shot_task.py --config-name=eval_multiple_ckpt.yaml configs.block=["block_main_b4_5"] batch_size=64
2024-08-22:17:42:03,040 INFO     [config.py:59] PyTorch version 2.4.0 available.
/home/ubuntu/shkre2/block-transformer/myenv/lib/python3.10/site-packages/transformers/tokenization_utils_base.py:1601: FutureWarning: clean_up_tokenization_spaces was not set. It will be set to True by default. This behavior will be depracted in transformers v4.45, and will be then set to False by default. For more details check this issue: https://github.com/huggingface/transformers/issues/31884
warnings.warn(
/home/ubuntu/shkre2/block-transformer/eval_zero_shot_task.py:37: UserWarning:
The version_base parameter is not specified.
Please specify a compatability version level, or None.
Will assume defaults for version 1.1
@hydra.main(config_path="conf/eval", config_name="240425_eval_multiple_ckpt")
/home/ubuntu/shkre2/block-transformer/myenv/lib/python3.10/site-packages/hydra/_internal/hydra.py:119: UserWarning: Future Hydra versions will no longer change working directory at job runtime by default.
See https://hydra.cc/docs/1.2/upgrades/1.1_to_1.2/changes_to_job_working_dir/ for more information.
ret = run_job(
[2024-08-22 17:42:06,349][lm-eval][INFO] - Verbosity set to INFO
Evaluating config: block_main_b4_5
Error executing job with overrides: ['configs.block=[block_main_b4_5]', 'batch_size=64']
Traceback (most recent call last):
File "/home/ubuntu/shkre2/block-transformer/eval_zero_shot_task.py", line 56, in main
eval_multiple_ckpt(cfg, eval_logger)
File "/home/ubuntu/shkre2/block-transformer/eval_zero_shot_task.py", line 327, in eval_multiple_ckpt
last_ckpt = step_ckpt_dirs[-1]
IndexError: list index out of range
Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.

We plan to release checkpoints in ~1 week. Please stay tuned!

Sorry for wrong config names in example. We removed 240425_ from those commands.
And it looks like an error come from ckpt_dirs = glob.glob(os.path.join(ckpt_fpath, "checkpoint-*")), which fails to load checkpoint paths.
I assume that you pretrain block_main_b4_5 shortly and save some intermediate checkpoints. If so, the reason might be null values for ckpt_path in config files.
Could you test with the following command?
CUDA_VISIBLE_DEVICES=0 python eval_zero_shot_task.py --config-name=eval_multiple_ckpt.yaml configs.block=["block_main_b4_5"] batch_size=64 ckpt_path=[abs path for your own checkpoints]

Feel free to reopen this issue if you have any further questions :)

@martinshkreli Hey Martin, we uploaded the pretrained checkpoints and added new inference demo code.
Check out the updated README!


[Mobius-102] Add missing license text in batch and powershell scripts

How did you do it for these 29 files ? manual or script/tool ?

Current coverage is 82.14% (diff: 100%)

Merging #557 into master will increase coverage by 0.24%

@@             master       #557   diff @@
==========================================
  Files            67         67
  Lines          7447       7447
  Methods        1171       1171
  Messages          0          0
  Branches        953        953
==========================================
+ Hits           6099       6117    +18
+ Misses          996        978    -18
  Partials        352        352

Powered by Codecov. Last update 09d8a2f...4bafab1

@qualiu just manually since it does not take much time and the headers of different files are not the same.
But I have to say it's a bit lumbering to manually modify these files.

@Myasuka :+1:  That's quite a careful boring checking/adding.
I'd considered to use one tool to do it once for all , and for future if there's license lost.
So that everyone can check/add it very fast (in several seconds) and keep consistency. (Because of the same command lines, maybe 3~9 lines for all kinds of files and license text)

@Myasuka : Have you checked the something extra such as line endings ? especially for the Linux shell files?

@Myasuka :Have you checked something extra such as line endings ? especially for the Linux shell files?

@qualiu the .gitattributes file has configured that text files are LF normalization, so my commits would not change the original logic.

LGTM

LGTM


Running Blockchain and BlockchainPaymentShop

i'm trying to running Blockchain and BlockChainPaymentShop , but they all take out this error. Please support to me , thank you very much!

Hello please take a look at this: https://stackoverflow.com/questions/57746667/the-project-web-must-provide-a-value-for-configuration-error-after-migrating

Use .NET Core 2.2 Version to run this project or delete

Microsoft.AspNetCore.Razor.Design

reference which isn't needed at all as Razor.Design for .NET Core 3.0 because it's now part of AspNetCoe library.
Check this source if you need more information: Migrate from ASP.NET Core 2.2 to 3.0.


problem since  v1.5.0

Since updating to v1.5.0 I get this notification of which I don’t understand the first sentence: “…you need to manually add a new frontend extra module into you configuration.yaml”.
Now I know how to edit my configuration.yaml but I don’t understand what I have to add specifically.
Any help on this would be appreciated as I really love bubbling!!

This is explained in the release notes at https://github.com/Clooos/Bubble-Card/releases/tag/v1.5.0

Thanks for the swift response…Seems liked I missed those.

I reverted to 1.4.4, updated all my bubble cards with - type: custom:bubble-pop-up and then upgraded to 1.5.0 and it worked


Take into account the contentinset.top when layouting the contentView

If this is not done, the pull to refresh contentView is visible at the top of the actual scrollView content even when content offset. y = 0

+1, I am experiencing this as well.
If the tableView is higher than the iPhone screen (this is loading asynchronously in my app) and you segue to a next view by selecting one of the tableView rows and then pop back to the tableView, the sspulltorefresh will be visible...

Is this fixed now?

Not sure, I simply closed the PR since it was more then a year and a half old and not getting merged. Sorry


Fix recursive conncheck timer

Fixes #1414

Pull Request Test Coverage Report for Build c955b3da7fdadea0e60bfd670b5bf31a34008e57-PR-1416

1 of 2 (50.0%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.08%) to 69.108%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

apps/fz_http/lib/fz_http/connectivity_check_service.ex
1
2
50.0%

Files with Coverage Reduction
New Missed Lines
%

apps/fz_http/lib/fz_http/connectivity_check_service.ex
1
84.0%

Totals

Change from base Build 8e73b1b8bbfbc7e390dca5bd71b2616986c6b3f3:
-0.08%

Covered Lines:
1425

Relevant Lines:
2062

💛  - Coveralls


Request: It would be nice to allow a paginated form of access...not just the last 10.

I understand this is relying on the RSS 'feed' which has limits of how many last posts to show - but am wondering if you could provide a parameter like last postDate or last postID, to allow a paginated response from this feed, which could go beyond the 10 RSS feeds...?

This is handled in the spec with the next_url field. Servers generating a JSON Feed can point to the "next 10" items using this field. Thanks!


v0.7.7

Bug Fixes

dotnet: abstract classes should have proxy implementations (#241) (828a26f), closes #223
jsii: better usage reporting of private types (#247) (96ac5d6)
jsii-runtime: Use buffer factory methods instead of constructor. (#246) (6ad6b9d)
kernel: Return object literals as references (#249) (61cb3a4), closes #248 awslabs/aws-cdk#774

Also updated bump.sh to automatically determine the version based on conventional commits, as the next step towards auto-bump.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

How urgent is this? I'd like to get https://github.com/awslabs/jsii/pull/256 in as well to unblock the Step Functions PR

Happy to wait for it
From: Rico Huijbers<EMAIL_ADDRESS>Reply-To: awslabs/jsii<EMAIL_ADDRESS>Date: Tuesday, October 9, 2018 at 5:54 PM
To: awslabs/jsii<EMAIL_ADDRESS>Cc: "Ben-israel, Elad"<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [awslabs/jsii] v0.7.7 (#257)
How urgent is this? I'd like to get #256https://github.com/awslabs/jsii/pull/256 in as well to unblock the Step Functions PR
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/awslabs/jsii/pull/257#issuecomment-428224306, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAkjDFYAQEDHkp2UBQGwzhWZhlGn6tKuks5ujLiDgaJpZM4XTd_V.


Limit suggestions to go template actions

Currently completions will be suggested outside of go template actions. They should be limited to the inside of the curly brackets.

Fixed with v0.1.2

This is still kind of broken as it simply looks for opening curly braces before and closing ones after the current cursor position. Something like the following still leads to completions:
{{  }} .Values.… {{  }}

This is still kind of broken as it simply looks for opening curly braces before and closing ones after the current cursor position. Something like the following still leads to completions:
{{  }} .Values.… {{  }}

Fixed suggested in #7


refactor: Move unstructured IR test files to a dedicated sub-directory.

Description

As discussed in #81's comment, we decided to move unstructured IR files to its dedicated directory. We also removed the arbitrary text files since the existing files are sufficient for our test coverage.
Validation performed

Ensure workflow passed

Summary by CodeRabbit

Chores

Removed the classical Chinese poem file "The Goddess of the Luo."
Updated test data directory references in the test suite for improved organization.
Adjusted paths in test cases to reflect the new directory structure for test data files.

These changes enhance the clarity and maintainability of the testing environment without impacting the core functionality.

Do we not need to update test_decoder_buffer.py?

Right, sorry for missing that. Pushed.


Unable to generate token

Have used this previously but now get an error message indicating "Unable to generate token. Invalid username or password. (error code: 400)".  Using the same credentials I use for AGO.  Not sure what the issue is.  Only major difference is I have recently upgraded to pro 2.7.2.

@matthewreesstephenson The username parameter is case-sensitive for the authentication endpoint used by these tools. Check that it matches exactly how it appears in AGOL. The normal OAuth view is case-insensitive so it's more flexible.

Hello! I've used ProjectZ tool to convert HAE data to Orthometric with a previous version of ArcGIS Pro.
I am currently using 2.9.3 and getting an error "ERROR 000576: Script associated with this tool does not exist."
Any information/help would be greatly appreciated!


Make barchart govspeak enhancement resilient to re-initialisation

Trello: https://trello.com/c/VDgVNurM/544-extract-govspeak-javascript-functionality-to-govukpublishingcomponents
This barchart initialisation is vulnerable to breaking a component if
the initialisation is called twice. As the code for this is moving to
govuk_publishing_components there is going to be a period of time where
this can quite easily occur while apps are being updated and deployed.
This updates this initialisation code to mark when a chart has been
initialised and be able to ignore being run on charts that have already
been initialised.

Thanks @alex-ju


tiledlayout not working

results in: https://chart-studio.plotly.com/~danton267/1404/#/
supposed to be: https://uk.mathworks.com/help/examples/graphics/win64/ColormapSpecifyAxesTiledLayoutExample_01.png
code
tiledlayout(2,1)
ax1 = nexttile;
surf(peaks)
colormap(ax1,spring)

ax2 = nexttile;
surf(peaks)
colormap(ax2,winter);

Once it is fixed, please reply with chart studio plot so I can embed it inside online documentation.

This issue was fixed with the updated code of PR # 404.
Attached result bellow


[remaint] =, causes bail: fail

I've been seeing weird behavior when using =,. This appears to be a compile-time one, it occurs even when the compilation should nest-fail.
See this file for my workaround. Just uncommenting the =, on lines 13 or 39 causes the issue to appear, printing the following whenever you attempt to use the mark:
> &talk-action [%create %name 'desc' %black]
bail: fail
bailing out

This is with the latest arvo (remaint-merge/d9dafea) and its pill, on the latest urbit (retrofit/fa981e7).
Other peculiarities involving =, include a dig: over pointing its trace at a =,, but I'll have to do a bit more work to verify that isn't caused by something else.

Interesting, I'll take a look.
On Fri, Oct 20, 2017 at 9:02 AM, Fang<EMAIL_ADDRESS>wrote:

I've been seeing weird behavior when using =,. This appears to be a
compile-time one, it occurs even when the compilation should nest-fail.
See this
https://github.com/Fang-/arvo/blob/remaint-merge-talk/mar/talk/action.hoon#L13
file for my workaround. Just uncommenting the =, on lines 13 or 39 causes
the issue to appear, printing the following whenever you attempt to use the
mark:

&talk-action [%create %name 'desc' %black]
bail: fail
bailing out

This is with the latest arvo (remaint-merge/d9dafea) and its pill, on the
latest urbit (retrofit/fa981e7).
Other peculiarities involving =, include a dig: over pointing its trace
at a =,, but I'll have to do a bit more work to verify that isn't caused
by something else.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/urbit/arvo/issues/440, or mute the thread
https://github.com/notifications/unsubscribe-auth/AALyAaW6Xay5K1LPtQ_GKsjcs8Qq00drks5suMQkgaJpZM4QA4VC
.

Yes, sorry, it’s fixed on a branch...
Sent from my iPhone

On Jan 31, 2018, at 3:54 PM, Fang<EMAIL_ADDRESS>wrote:
Just confirmed this is still an issue on current master.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.


Parsing floating-point numbers seems to be slow on Windows

The strtod function of libc seems to be very slow on Windows.

Now, it uses jl_strtod_c instead.


some question about quwick-UI

Hello everyone

The current UI is relatively rudimentary, and I would like to know about future plans for this area

Is the query result highlighted?
Login authentication?
Permission management, etc

Can we use Kibana as the UI

Are there any other good UI recommendations (mainly used for browsing data)

Hello, hopefully, I can answer some of these questions for you 😄

Is the query result highlighted?

Not currently, although definitely something we could add in the future.

Login authentication?

Currently, there is no authentication with Quickwit, both for the UI and the API in general, there is an open issue on this currently https://github.com/quickwit-oss/quickwit/issues/3075

Permission management, etc

As we don't currently support authentication this is also not currently supported, it is likely however that this would be added when authentication is added.

Can we use Kibana as the UI

We do not have a compatible Elasticsearch API other than the bulk ingest endpoint.
That being said we have a PR  actively working on this issue which may bring some support for ES-based dashboards, however, this depends on how much of the API Kibana or similar dashboards use.

Are there any other good UI recommendations

That depends on what kind of data you're looking at, if you are just browsing fairly arbitrary data rather than logs and traces then Quickwit UI is probably the best available option currently outside of implementing something yourself.
If you are working with logs and traces specifically, then you can use something like Jeager to view this data since we can act as a storage backend for Jeager.
If you have any particular use case for the UI or Quickwit in general please don't hesitate to mention them as it helps us prioritise what we work on and improve. 😃

At present, the main hope is to search for matching strings that can be highlighted
Also, I would like to know if it is possible to limit the number of returned items during queries?
For example, if there are too many matching rows, I would like to only return 1000
If the maximum number of returned rows is limited (such as 1000), will scanning stop when matching 1000 rows

Also, I would like to know if it is possible to limit the number of returned items during queries?

In terms of the UI, no this cannot be customised, if I remember off the top of my head it limits the query to 100 rows.
In terms of the API, yes you can limit the results returned with the max_hits query parameter, you can also offset results with the start_offset in order to paginate through data.

If the maximum number of returned rows is limited (such as 1000), will scanning stop when matching 1000 rows

It will stop fetching documents once 1000 have been matched, there will be some work still done after that while it counts the total number of documents matched, but this overhead is low especially when pruning with timestamps or tags for example.

We are working on a Grafana plugin, so this will be your best shot at short term.

Mainly search logs

At present, we really hope that the search results on the quickwit UI can highlight the matching strings

Also, I would like to know if it is possible to limit the number of returned items during queries?

In terms of the UI, no this cannot be customised, if I remember off the top of my head it limits the query to 100 rows.
In terms of the API, yes you can limit the results returned with the max_hits query parameter, you can also offset results with the start_offset in order to paginate through data.

If the maximum number of returned rows is limited (such as 1000), will scanning stop when matching 1000 rows

It will stop fetching documents once 1000 have been matched, there will be some work still done after that while it counts the total number of documents matched, but this overhead is low especially when pruning with timestamps or tags for example.

At present, we really hope that the search results on the quickwit UI can highlight the matching strings

That's something we could probably add. By the way our Grafana plugins has been published I believe!

That's something we could probably add. By the way our Grafana plugins has been published I believe!

I have already tried the Granafa plugin. My granafa is 8.0.3, it seems there is a problem with the data display. Is it because my version is too old

@yangshike can you open an issue on the datasource repository?
I only tested the plugin from the 9.5 version, I can have a look at your issue and check if this is related to 8 or not.

@yangshike can you open an issue on the datasource repository?
I only tested the plugin from the 9.5 version, I can have a look at your issue and check if this is related to 8 or not.

Thank you. I am planning to upgrade Granafa to the version you mentioned recently。


http://<IP_ADDRESS>/test/3.mp4  is not work?

support  ip server?

ftp://user:pwd@<IP_ADDRESS>:21/video/1.mp4 not working too。


Crashes and Uninstaller Doesn't Work

Like the title says, the program crashes when I try to set a wallet password and when I try to uninstall MultiBit, that also doesn't work.
O.S. is OpenSUSE
Thanks.

Closing since #325 provides a solution.


Please allow me to watch a single run

I use gh run watch a lot. The first thing it does is show me the list of running jobs (not just mine, unfortunately). I always focus on the "test" job and ignore all the others. It would be nice if I could do the same thing w/ watchgha, either by specifying the job ID or the job name or via some picker like gh run watch. Right now my output that I'm interested in is being drowned out by other jobs.

Added --only in 821bc6ca9a145ab00151d9c62a9d0523676136ba.

This is now released as part of watchgha 2.2.0.


Reference the book Haskell Programming from First Principals

So I'm actually aware of that book, but I didn't mention it mainly because it was not complete yet.  My policy for this summary was to prefer things that were already completed and ready for people to use.
I'll leave this pull request open, though, and once the book comes out I will study it more closely and see if it fills in the remaining gaps.

For what its worth there is an early release available that has hundreds of pages of content already. Its amazing so far. But yep seems fine, this can be revisited later once there are no such caveats. Thanks!

@jasonkuhrt why amazing?

Hi @GetContented, I've had a chance since posting this to make a lot of progress on the book. I'm over half way through it now. Things that stand out:

Carefully ordered content that consistently nails knowledge dependencies.

Exercises between sections and at the end of chapters that are already pretty good and consistently effectively reinforce the content being reviewed. However this is a part of the book that has been receiving more love as new releases come out. For instance I've communicated that venturing into more domains with the exercises is important to really testing knowledge, and generally appending harder questions. Also not all questions have answers yet.

Very thorough. The book starts with a brief introduction to Lamba Calculus so that underlying reason for currying can be understood. I've suggested a similar abstract chapter on Category Theory before going into Types which they are considering.

Carrying on from the above point, following every chapter leaves the reader feeling quite confident about the content. This is because theory is covered in addition to the mechanics. I read Learn You a Haskell for Great Good! years ago but it never came close to helping my grok Haskell the way this book has so far.

If Twitter is any indication reader approval has been very positive.

Exercises. Repeating this again. They are so important, and I wouldn't be succeeding the way I am now without them.

Yeah, I'm actually now incredibly familiar with the book (being one of its reviewers... and having talked to Chris a lot about it, and also been one of the people who gave a review of it on the feedback page of the website).
I think it's definitely already at a point where it should be recommended on the SOTU, because it's already well better than the other Haskell beginner offerings (not complete programming language beginners though, probably).
Interesting that you highlight the exercises. I was recommending that there be many more of them, and that their content be more engaging... :) easier to critique something than to make something oneself though, so... yes, it's excellent.

I was recommending that there be many more of them, and that their content be more engaging

I would second this! While I think that they already are a huge asset to the book an crucial to making the content "stick", they can still be meaningfully better both in small and big ways.

Yeah, I will add Haskell Book to the section.  I'm a little bit busy at the moment with Twitter's Hack week but I will try to merge this in soon

@Gabriel439 :+1: No rush.

Could you merge master into this pull request so that I can merge it in?

@Gabriel439 Done.

Thanks! :)


feat: add refetch on reconnect functionality

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


feat: support tracking nested depth for hooks

This API is not yet exposed to C interface yet but is already used in poop rewriter.

... also fixed a potential memory leak as executor finish is not necessarily called when there is an error


ADD hawk preference changed listener

Added a listener to get informed when a preference changed
Also added a method to get all shared preferences with Hawk

Hi, I haven't forgot this, just need a little more time :)

Hi,
no worries ;-)
Thanks for the information.
Best,
Flo
2016-03-15 9:42 GMT+01:00 Orhan Obut<EMAIL_ADDRESS>
Hi, I haven't forgot this, just need a little more time :)
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/orhanobut/hawk/pull/132#issuecomment-196721704

--
Runtastische Grüße · Runtastic regards
Florian Schweitzer
Software Development Android
[image: runtastic - makes sports funtastic] https://www.runtastic.com/
Runtastic GmbH
Pluskaufstraße 7 - Business Center
4061 Pasching / Linz (Austria)
Tel. +43/664/9135072
<EMAIL_ADDRESS>Runtastic.com https://www.runtastic.com/

Hi, the idea is very good, just a few notes

In general we align one single annotation in the same line as method. That would be great if you adjust them, due to auto-format it changed some codes
Tests are necessary
We can make it more generic, thus we can use it with any other storage implementation such as sqlite etc.
Addition to above comment, we can also apply more generic name

Thanks for the pull request, looking forward to these changes.
Cheers

I didn't notice the changes, github doesn't actually notify for the new commits. There is a conflict, can you resolve it please? Then we can merge it.

Hi,
yes I'll do that as soon as possible.
Thx ;-)

How about Rx?

@schweitzerflorian Any progress? :)

Hey,
we have currently running many other projects.
Nevertheless, maybe I have time on Monday.
Have a nice weekend ;-)
2016-04-29 14:49 GMT+02:00 Rainer-Lang<EMAIL_ADDRESS>
@schweitzerflorian https://github.com/schweitzerflorian Any progress? :)
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/orhanobut/hawk/pull/132#issuecomment-215702131

--
Runtastische Grüße · Runtastic regards
Florian Schweitzer
Software Development Android
[image: runtastic - makes sports funtastic] https://www.runtastic.com/
Runtastic GmbH
Pluskaufstraße 7 - Business Center
4061 Pasching / Linz (Austria)
Tel. +43/664/9135072
<EMAIL_ADDRESS>Runtastic.com https://www.runtastic.com/

@schweitzerflorian Thanks for feedback. I'm looking forward to using this new feature. :+1:

Hey,
I just resolved the conflict...
So we are ready to merge?

Could this be merged?

@orhanobut Would be great to have this merged.

Usually can't merge because of CI errors, I'll merge this one and fix the errors.
@schweitzerflorian Thanks
Note: I'm working on the new version and I'll put the specs as an issue.

@orhanobut Thanks.


Fix Privacy card token update

Resolves https://open-collective.sentry.io/issues/3964501287/?project=5199682
It seems Privacy is returning a different object structure from the one they present on their outdated documentation. I updated the code to try parsing the card token from their actual transaction object and fallback to the previous type.
I also worked a bit on performance so we don't fetch the card twice from the DB.

@Betree @znarf This reconciliation job will just fetch the latest 200 transactions of each card and check them against our records. No new transactions have been created in a while but we still have 11 Privacy cards "active" on our DB.
I'm OK with deprecating Privacy if we no longer want to support this, we would just need to deactivate these cards first.

The latest transaction was in 2021-12-06 right?
SELECT *
FROM "VirtualCards" vc
LEFT JOIN "Expenses" e ON e."VirtualCardId" = vc."id"
LEFT JOIN "Transactions" t ON t."ExpenseId" = e."id"
WHERE vc."provider" = 'PRIVACY'
ORDER BY t."createdAt" DESC

I think we can move forward with deprecation and delete any card we still have registered.

@znarf do we care about the existing status of these cards on Privacy? In the sense that these cards could still be used by someone and we wouldn't be able to track them.

Most of the non-deleted one are attached to OSC or OCF, 3 are attached to Collectives.
Given that they're not used, we should move forward and suspend them all.


Fixes issue with runtests-parallel

Fixes an issue with runtests-parallel when global mocha is not installed.

CC: @vladima, @sandersn

:+1:


Dangling reference to "unofficial" plugin repositories left after removal of setting

Version and Platform (required):

Binary Ninja Version: 3.1 dev

Bug Description:
When the user removes the settings for their "unofficial" plugin repository the plugin_status.json is not updated to reflect this new status ultimately resulting in http requests to that server. If that server isn't up then check_for_updates will fail.
Expected Behavior:
The plugin_status.json is kept in sync with the 'unofficial' plugins repository status
** Workaround **
Delete the block of json in plugin_status.json containing the unofficial plugin repository information.

The whole unofficial plugin repositories system needs to be re-thought. Users should be able to add multiple third party repos. They should be able to have a list of available repos they can select/de-select. Perhaps a dedicated dialog instead of it being part of the settings system would be preferable.


[Improvement][API] Deduplicate logs in controllers

Describe the question
there are so many logs in controllers, those logs just want log who request which method with what params and headers,

What are the current deficiencies and the benefits of improvement
so many repetitive visit logs! we can handle those logs by aop， so do not have to write them in each controller。
and don't worry about forgetting.
Which version of DolphinScheduler:
-[1.3.6]
Describe alternatives you've considered
use aop handle controller layer logs unified

@haydenzhourepo Would you like to submit the pr to improve this issue? Welcome to participate in the DolphinScheduler opensource community.

I think we can add a general audit function in the aspect. It is better to record the request params and response body, it can help us to troubleshoot.

@chengshiwen I will submit a pr for this. there are three solutions:

use a filter to log the request and response
use interceptor to log the request and response
use aspect to log the request and response

filter is based on servlet container, and others are based on reflection.
so I think filter is the best choice for our case, What do you think of this.

a little warn about filter.
I had developed same request log functions within dubbo and springmvc, which dubbo for aspect and springmvc for filter.
Filter worked well for springmvc after I solved response stream can't be readed many times by ContentCachingRequestWrapper and ContentCachingResponseWrapper.
But when I tried to add async http api, new question encountered. Callable、WebAsyncTask、DeferredResult async methods all failed, which can't be responsed until timeout. Only servlet3  AsyncContext succeed just I operated response stream directly.
when I replaced filter with AsyncHandlerInterceptor provided by springmvc framework,  above two questions disappeared.
hope my experience can help you.

@kalencaya Thanks for your reply!
@haydenzhourepo Hi, is there any progress?

hello, it's too busy recently, I'll fix this as soon as possible.


Acquiring new Azure AD access token for every request instead reusing the access token till it's validity time

Package Name: @azure/storage-blob, @azure/identity
Package Version: 12.3.0, 1.2.0
Operating system: Windows 10
[X] nodejs

version: v10.16.3

[ ] browser

name/version:

[ ] typescript

version: v1.5.3

Is the bug related to documentation in

[ ] README.md
[ ] source code documentation
[X] SDK API docs on https://docs.microsoft.com

Describe the bug
A clear and concise description of what the bug is.
We are using ClientSecretCredential for Azure AD authentication for Azure Blob service. As per our observation based on the logging the Azure Blob Javascript SDK is not reusing the Azure AD access token generated for immediate requests instead it is generating fresh token for every request.
To Reproduce
Steps to reproduce the behavior:

Use the below provided sample code and run the program using NodeJS command. Access the program from browser using URL http://localhost:3022/, you can see acquiring the Azure AD access token which is valid for one hour.

const express = require('express')
const app = express()
const { BlobServiceClient } = require('@azure/storage-blob')
const { ClientSecretCredential } = require('@azure/identity')
const logger = require('@azure/logger')
app.get('/', (req, res) => {
  try {
    logger.setLogLevel('verbose')
    const account = '<<teststorageaccount>>'
    const clientSecretCredential = new ClientSecretCredential('<<TenantId>>', '<<ClientId>>', '<<ClientSecret>>')
    const containerName = '<<testcontainer>>'
    const blobName = 'test_blob.txt'
    const blobServiceClient = new BlobServiceClient(
      `https://${account}.blob.core.windows.net`,
      clientSecretCredential
    )
    const containerClient = blobServiceClient.getContainerClient(containerName)
    const blockBlobClient = containerClient.getBlockBlobClient(blobName)
    const downloadBlobResponse = blockBlobClient.download(0)
    downloadBlobResponse.then(function convertStream2Buffer(downloadBlobResponse) {
        const fileContent = streamToBuffer(downloadBlobResponse.readableStreamBody)
        fileContent.then((data) => {
          console.log(`Downloaded Blob Response for '${blobName}' data.length bytes is :::  `, data.length)
          console.log('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$')
          res.send('SSSUUUUCCCCCEEEEEEEESSSSSSSS!!!!!!!!!!  data.length bytes #####  ' + data.length)
        })
      }
    )
  } catch (err) {
    console.log('EEEEEEEEEEERRRRRRRRRRRRRRROOOOOOOOOOOOORRRRRRRRRRRRR  : ', err)
  }
})

function streamToBuffer (readableStream) {
  return new Promise((resolve, reject) => {
    const chunks = []
    readableStream.on('data', (data) => {
      chunks.push(data instanceof Buffer ? data : Buffer.from(data))
    })
    readableStream.on('end', () => {
      resolve(Buffer.concat(chunks))
    })
    readableStream.on('error', reject)
  })
}

app.listen(3022, function () {
  console.log('app listening on port 3022!')
})

Logs from the first execution where it shows acquiring access token which is valid for one hour.
D:\AzureBlob> node BlobClient_verify_token_generation.js
app listening on port 3022!
azure:core-http:info ServiceClient: using custom request policies
azure:core-http:info ServiceClient: using custom request policies
azure:core-http:info ServiceClient: using custom request policies
azure:core-http:info ServiceClient: using custom request policies
azure:storage-blob:info RetryPolicy: =====> Try=1 Primary
azure:storage-blob:info Request: {
  "streamResponseBody": true,
  "url": "https://<<teststorageaccount>>.blob.core.windows.net/<<testcontainer>>/test_blob.txt",
  "method": "GET",
  "headers": {
    "_headersMap": {
      "x-ms-version": "2020-04-08",
      "user-agent": "azsdk-js-storageblob/12.4.0 (NODE-VERSION v10.16.3; Windows_NT 10.0.19041)",
      "x-ms-client-request-id": "002dd0b-36cd-4700-b0d6-c01e0f99dcd"
    }
  },
  "withCredentials": false,
  "timeout": 0,
  "keepAlive": true,
  "requestId": "002dd0b-36cd-4700-b0d6-c01e0f99dcd"
}
azure:identity:info IdentityClient: sending token request to [https://login.microsoftonline.com/<<TenantId>>/oauth2/v2.0/token]
azure:core-http:info Request: {
  "url": "https://login.microsoftonline.com/<<TenantId>>/oauth2/v2.0/token",
  "method": "POST",
  "headers": {
    "_headersMap": {
      "accept": "application/json",
      "content-type": "application/x-www-form-urlencoded",
      "accept-language": "REDACTED",
      "x-ms-client-request-id": "7d873f-f571-4c7c-be1e-17b29b2d81",
      "user-agent": "core-http/1.2.1 Node/v10.16.3 OS/(x64-Windows_NT-10.0.19041)"
    }
  },
  "withCredentials": false,
  "timeout": 0,
  "keepAlive": true,
  "requestId": "7d873f-f571-4c7c-be1e-17b29b2d81"
}
azure:core-http:info Response status code: 200
azure:core-http:info Headers: {
  "_headersMap": {
    "cache-control": "no-store, no-cache",
    "content-length": "1316",
    "content-type": "application/json; charset=utf-8",
    "date": "Mon, 25 Jan 2021 07:56:48 GMT",
    "expires": "-1",
    "p3p": "REDACTED",
    "pragma": "no-cache",
    "set-cookie": "REDACTED",
    "strict-transport-security": "REDACTED",
    "x-content-type-options": "REDACTED",
    "x-ms-ests-server": "REDACTED",
    "x-ms-request-id": "58486a-756e-4af3-bca-9dd52435100"
  }
}
azure:identity:info IdentityClient: [https://login.microsoftonline.com/<<TenantId>>/oauth2/v2.0/token] token acquired, expires on<PHONE_NUMBER>171
azure:identity:info ClientSecretCredential => getToken() => SUCCESS. Scopes: https://storage.azure.com/.default.
azure:storage-blob:info Response status code: 200
azure:storage-blob:info Headers: {
  "_headersMap": {
    "accept-ranges": "bytes",
    "access-control-allow-origin": "*",
    "access-control-expose-headers": "x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,Content-MD5,x-ms-lease-status,x-ms-lease-state,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding",
    "content-length": "11",
    "content-md5": "sQqNsWTgdUEFddft6mb5y4/5Q==",
    "content-type": "application/octet-stream",
    "date": "Mon, 25 Jan 2021 07:56:49 GMT",
    "etag": "\"0x8DG8BD42dwB018D3E5C1\"",
    "last-modified": "Wed, 20 Jan 2021 12:55:39 GMT",
    "server": "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0",
    "x-ms-blob-type": "BlockBlob",
    "x-ms-client-request-id": "002sddd0b-36cd-4700-b0d6-c01we0f99dcd",
    "x-ms-creation-time": "Wed, 20 Jan 2021 12:55:39 GMT",
    "x-ms-is-current-version": "REDACTED",
    "x-ms-lease-state": "available",
    "x-ms-lease-status": "unlocked",
    "x-ms-request-id": "38f8csd972-001e-006e-6ewef-f2f912s000000",
    "x-ms-server-encrypted": "true",
    "x-ms-version": "2020-04-08",
    "x-ms-version-id": "REDACTED"
  }
}
Downloaded Blob Response for 'test_blob.txt' data.length bytes is :::   11
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

Refresh the browser and you can again see the logs for acquiring the new Azure AD access token with one hour validity. Below is the logs for the 2nd execution.

azure:core-http:info ServiceClient: using custom request policies
azure:core-http:info ServiceClient: using custom request policies
azure:core-http:info ServiceClient: using custom request policies
azure:core-http:info ServiceClient: using custom request policies
azure:storage-blob:info RetryPolicy: =====> Try=1 Primary
azure:storage-blob:info Request: {
  "streamResponseBody": true,
  "url": "https://<<teststorageaccount>>.blob.core.windows.net/<<testcontainer>>/test_blob.txt",
  "method": "GET",
  "headers": {
    "_headersMap": {
      "x-ms-version": "2020-04-08",
      "user-agent": "azsdk-js-storageblob/12.4.0 (NODE-VERSION v10.16.3; Windows_NT 10.0.19041)",
      "x-ms-client-request-id": "547dwe3314c-ae12-41eeb-9a4a-a036dewc7c0a"
    }
  },
  "withCredentials": false,
  "timeout": 0,
  "keepAlive": true,
  "requestId": "547dwe3314c-ae12-41eeb-9a4a-a036dewc7c0a"
}
azure:identity:info IdentityClient: sending token request to [https://login.microsoftonline.com/<<TenantId>>/oauth2/v2.0/token]
azure:core-http:info Request: {
  "url": "https://login.microsoftonline.com/<<TenantId>>/oauth2/v2.0/token",
  "method": "POST",
  "headers": {
    "_headersMap": {
      "accept": "application/json",
      "content-type": "application/x-www-form-urlencoded",
      "accept-language": "REDACTED",
      "x-ms-client-request-id": "38eefa81-26c7-4fa4-8we7-b486ds929b47",
      "user-agent": "core-http/1.2.1 Node/v10.16.3 OS/(x64-Windows_NT-10.0.19041)"
    }
  },
  "withCredentials": false,
  "timeout": 0,
  "keepAlive": true,
  "requestId": "38eefa81-26c7-4fa4-8we7-b486ds929b47"
}
azure:core-http:info Response status code: 200
azure:core-http:info Headers: {
  "_headersMap": {
    "cache-control": "no-store, no-cache",
    "content-length": "1316",
    "content-type": "application/json; charset=utf-8",
    "date": "Mon, 25 Jan 2021 07:56:54 GMT",
    "expires": "-1",
    "p3p": "REDACTED",
    "pragma": "no-cache",
    "set-cookie": "REDACTED",
    "strict-transport-security": "REDACTED",
    "x-content-type-options": "REDACTED",
    "x-ms-ests-server": "REDACTED",
    "x-ms-request-id": "80bsdwd4-a473-4994-94wew-6sdc28dwew5800"
  }
}
azure:identity:info IdentityClient: [https://login.microsoftonline.com/<<TenantId>>/oauth2/v2.0/token] token acquired, expires on<PHONE_NUMBER>531
azure:identity:info ClientSecretCredential => getToken() => SUCCESS. Scopes: https://storage.azure.com/.default.
azure:storage-blob:info Response status code: 200
azure:storage-blob:info Headers: {
  "_headersMap": {
    "accept-ranges": "bytes",
    "access-control-allow-origin": "*",
    "access-control-expose-headers": "x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,Content-MD5,x-ms-lease-status,x-ms-lease-state,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding",
    "content-length": "11",
    "content-md5": "sQqNsWTgdUEFddft6mb5y4/5Q==",
    "content-type": "application/octet-stream",
    "date": "Mon, 25 Jan 2021 07:56:54 GMT",
    "etag": "\"0x8DG8BD42dwB018D3E5C1\"",
    "last-modified": "Wed, 20 Jan 2021 12:55:39 GMT",
    "server": "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0",
    "x-ms-blob-type": "BlockBlob",
    "x-ms-client-request-id": "547dwe3314c-ae12-41eeb-9a4a-a036dewc7c0a",
    "x-ms-creation-time": "Wed, 20 Jan 2021 12:55:39 GMT",
    "x-ms-is-current-version": "REDACTED",
    "x-ms-lease-state": "available",
    "x-ms-lease-status": "unlocked",
    "x-ms-request-id": "38sdwed-001e-00sdw6e-6def-f2sdwe2000000",
    "x-ms-server-encrypted": "true",
    "x-ms-version": "2020-04-08",
    "x-ms-version-id": "REDACTED"
  }
}
Downloaded Blob Response for 'test_blob.txt' data.length bytes is :::   11
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

Expected behavior
A clear and concise description of what you expected to happen.
The subsequent API calls through Azure AD authentication should use the Azure AD access token till it's validity ends and the SDK should re-generate the access token on it's expire. In this case the access token generation should be for every one hour considering we are running it as web application.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
We have app registration created and Storage Blob Data Contributor role assigned. The access to Azure Blob is working without any issue. Only concern is on new token generation for every request.
If the SDK is designed to work in that way is there any limit on the maximum number of tokens generated per account?

@prashanthmadduri thank you! I'll be investigating this with more detail this week.

@prashanthmadduri thank you! I'll be investigating this with more detail this week.

@sadasant any inputs here will help us. Thank you.

@prashanthmadduri
Hello! The reason why this is happening is because a new instance of the credential and the client are created per request. We re-use the tokens as long as the same instances are re-used (because inside of the instances is where we store the valid tokens).
To avoid seeing this many extra requests, consider moving the declaration of both the ClientSecretCredential and the BlobServiceClient outside of the route app.get('/' /*...*/.
An example, in case my wording wasn't helpful:
/* Into here: */
const account = '<<teststorageaccount>>'
const clientSecretCredential = new ClientSecretCredential('<<TenantId>>', '<<ClientId>>', '<<ClientSecret>>')
const containerName = '<<testcontainer>>'
const blobName = 'test_blob.txt'
const blobServiceClient = new BlobServiceClient(
  `https://${account}.blob.core.windows.net`,
  clientSecretCredential
);

app.get('/', (req, res) => {
  try {
    logger.setLogLevel('verbose')
    /* out of here:
    const account = '<<teststorageaccount>>'
    const clientSecretCredential = new ClientSecretCredential('<<TenantId>>', '<<ClientId>>', '<<ClientSecret>>')
    const containerName = '<<testcontainer>>'
    const blobName = 'test_blob.txt'
    const blobServiceClient = new BlobServiceClient(
      `https://${account}.blob.core.windows.net`,
      clientSecretCredential
    )
    */

Would that work for you?

@sadasant thank you for your inputs. I have tried by moving the instance creation outside app.get as suggested. In some subsequent executions still I can see token regeneration before the present token expiry.
First request generated token:
The request details:
"x-ms-client-request-id": "eb5574d9-7945-4148-b98a-828d9cf36cdb"
"x-ms-request-id": "3df5f824-e01e-003b-0422-f9e999000000"

The token is valid till 2021-02-02T06:17:16.271Z time.
In subsequent request with in the above token expiry:
   "x-ms-client-request-id": "aed4c805-d599-4389-bc8c-01990f7650b9"
    "x-ms-request-id": "3df6460b-e01e-003b-2a22-f9e999000000"

New token generated which is valid till 2021-02-02T06:17:52.940Z time.
Based on this, SDK is regenerating new token within the token expiry. Also, all subsequent requests are not generating new tokens all the time. It is random some subsequent requests not generating new token.
Below is the one subsequent request which seems used the existing token:
   "x-ms-client-request-id": "ec4b1a46-221d-4740-b940-e2feec68b7eb"
    "x-ms-request-id": "3df61eb0-e01e-003b-4222-f9e999000000"

Note: The above observation is with all requests executed within one hour.

@prashanthmadduri Thank you for your detailed answer!
Can you repeat this experiment but also provide the time when the requests were made? I believe we refresh the tokens before they expire, but not by much. The idea is to prevent the clients from losing access by updating the tokens while they're still valid - however, it should be close to the expiration date, this is what I want to confirm.

@sadasant we have run the experiment again and can see the new token regeneration within the expiry time of the active token. Please find the response logs captured from the execution for your investigation.

Starting the express sever.
After server is up sent 1st Request. => New token acquired
After couple of minutes again sent 2nd Request.
After couple of minutes again sent 3rd Request.
Waited for approximately 10minutes and sent request. => New token acquired
After couple of minutes again sent 2nd Request.
After couple of minutes again sent 3rd Request.
Waited for approximately 20minutes and sent request. => New token acquired
After couple of minutes again sent 2nd Request.

BlobClient_download_verify_token_generation_04Feb2021.txt

@prashanthmadduri so far I haven't been able to reproduce this. I will continue testing, but would you be able to provide a minimum working scenario? what's the most minimal code you have that can reproduce this?

I have yet to run long term tests. I have been trying with tokens with smaller expiration dates and I haven't seen the issue, but I could be doing something wrong. Tomorrow I will have a more concrete response.

Sharing code using for this from our side just avoid any mismatch in verification:
const express = require('express')
const app = express()
const { BlobServiceClient } = require('@azure/storage-blob')
const { ClientSecretCredential } = require('@azure/identity')
const logger = require('@azure/logger')

const account = '<<Stroage Account>>'
const clientSecretCredential = new ClientSecretCredential('<<Tenant Id>>', '<<Client Id>>', '<<Client Secret>>')
const containerName = '<<Conatiner>>'
const blobName = 'testBlob.txt'
const blobServiceClient = new BlobServiceClient(
   `https://${account}.blob.core.windows.net`,
   clientSecretCredential
)

app.get('/', (req, res) => {
  try {
    logger.setLogLevel('verbose')
    const containerClient = blobServiceClient.getContainerClient(containerName)
    const blockBlobClient = containerClient.getBlockBlobClient(blobName)
    const downloadBlobResponse = blockBlobClient.download(0)
    downloadBlobResponse.then(function convertStream2Buffer (downloadBlobResponse) {
      const fileContent = streamToBuffer(downloadBlobResponse.readableStreamBody)
      fileContent.then((data) => {
        console.log(`Downloaded Blob Response for '${blobName}' data.length bytes is :::  `, data.length)
        console.log('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$')
        res.send('SSSUUUUCCCCCEEEEEEEESSSSSSSS!!!!!!!!!!  data.length bytes #####  ' + data.length)
      })
    }
    )
  } catch (err) {
    console.log('EEEEEEEEEEERRRRRRRRRRRRRRROOOOOOOOOOOOORRRRRRRRRRRRR  : ', err)
  }
})

function streamToBuffer (readableStream) {
  return new Promise((resolve, reject) => {
    const chunks = []
    readableStream.on('data', (data) => {
      chunks.push(data instanceof Buffer ? data : Buffer.from(data))
    })
    readableStream.on('end', () => {
      resolve(Buffer.concat(chunks))
    })
    readableStream.on('error', reject)
  })
}

app.listen(3022, function () {
  console.log('app listening on port 3022!')
})

Running this as node application and accessing this from http://localhost:3022/ URL again and again with above https://github.com/Azure/azure-sdk-for-js/issues/13369#issuecomment-773393540 shared scenario.

@prashanthmadduri Thank you so much for your feedback! Good news! I just happen to have found both the bug and the solution. I just need to add some tests (and have breakfast and such), then we can point you to an alpha release from which you will be able to try the fix! How does that sound?

@prashanthmadduri thank you again for your effort helping me figure this out! I have a draft PR that will undergo review. As soon as we release something (alpha release will land first, so I will use that), I will let you know 🌞

Hi @sadasant Thank you for working on fix for this. We have below questions for the same:

Is there any limit on the maximum number of tokens generated?

Answer to this question will help to work with Azure AD mean time the fix is available.

When can we expect this fix available for public release?

Answer to this question will help us to plan for @azure/storage-blob node module upgrade.

@prashanthmadduri

Is there any limit on the maximum number of tokens generated?

Not that I'm aware of.

When can we expect this fix available for public release?

We will release this fix on March.
Please let me know if I can help with anything else!

@prashanthmadduri hello again! I just wanted to let you know that we're still working on merging the fix. Would you be interested in trying an alpha release we'll publish on NPM with the feature that should resolve your issue? Please let me know and I will link you to it as soon as it is available.

@sadasant thank you for update. We will try with final public release with this fix.

@prashanthmadduri We merged the PR that fixes the issue you saw. We will release this change this week. I will come back with more information by the end of the week.

@prashanthmadduri We went back and forward and we're working on a different fix: https://github.com/Azure/azure-sdk-for-js/pull/14223
We will release this as soon as possible. Ideally this week.

@prashanthmadduri it has been a while, but we've finally released core-http version with the fix<EMAIL_ADDRESS>If you have time to try it, please let us know if you find issues with it, or any other issue you might encounter with any of our SDKs. Thank you for using these libraries!


Possibility to define barrel file

index.ts is the name of the file representing a module.
It should be possible to go with another one. For example, the Angular CLI calls it public-api.ts.
@mikezks: You want to give it a try?

Would love to see this fixed to allow Sherriff to handle cross-entry-point dependencies without having to rename all my public-api files

@KvikullSigurdur just to avoid a misunderstanding. You can have both barrel modules (with an index.tx) and barrel-less in a project.
If you now say that those barrel modules are breaking encapsulation the whole time, then I'd first try to fix that.

That said, I think i don't quite catch the idea of the barrelIndex.ts. What is that one supposed to do? What that be placed next to the index.tsand be used for the "real encapsulation"?
If yes, sheriff.config.ts has a property barrelFileName. Set that one to barrelIndex.ts and Sheriff would ignore index.ts.
Let me know if that works for you

@bradley-carestia-jbh, same goes for you. Just set barrelFileName in sheriff.config.ts to public-api.ts and you're done.

If you now say that those barrel modules are breaking encapsulation the whole time, then I'd first try to fix that.

Yep that is the goal :) Jump wanted to know if I could somehow enable the warning incrimentally. barrelFileName works perfectly. Thank you very much!

Awesome, I'll give that a try next time I'm looking at this.