Fix TagFinder.findTagAroundPosition to support emojis

Fixes https://github.com/superlistapp/super_editor/issues/1863 and https://github.com/superlistapp/super_editor/issues/1882

fix findTagAroundPosition to support of emojis
add widgetTest "support emojis" and "composing tag with consecutive trigger characters"

There was edge case in findTagAroundPosition looping through the parameter text code point one by one.
Fixed it with characters iterators.

@matthew-carroll let me know if your more detail. I'm happy to discuss it

I didn't see this PR, but I just put up my own PR for this: https://github.com/superlistapp/super_editor/pull/1887
If you think I missed any conditions in that PR then please post the reproduction steps over in that PR for any cases that still fail.
If you're satisfied with my PR, please close this one.

I just uploaded a video and submitted it in your PR, requesting a review, without realizing you were already checking it out. I believe my addition includes more tests. I also had reservations regarding the use of the String extensions moveOffsetUpstreamByCharacter and 'moveOffsetDownstreamByCharacter.
For example, 'moveOffsetUpstreamByCharacter' iterates through the string from the beginning to the specified offset, and TagFinder invokes moveOffsetUpstreamByCharacter within a loop. With lengthy text, I can think of potential performance issues in the future. In my opinion, it would be more efficient to use two CharacterRange iterators directly, achieving the same result as TagFinder but with fewer iterations. I may be wrong, I would need to run some perf benchmark to prove it.

@angelosilvestre feel free to review this PR as well, if you find anything that I missed.

Also @BazinC this PR is targeting the wrong branch - it should be targeting main, and it looks like tests are failing.
If you'd like to get this merged, please update all relevant details as soon as possible. We need this particular fix merged quickly.

@matthew-carroll thanks for your feedback! I'm working on it

@matthew-carroll I think I handled all your comments. Let me know if I missed anything.

Let me do another PR for main..

PR for the fix targeting main: https://github.com/superlistapp/super_editor/pull/1891

Closing this PR in favor of main - there should only be one PR for this fix.


Make RedisDAO configurable to call async function on indexDAO

I see that there are async functions in IndexDAO for indexing and removing workflows and tasks, would it make sense to have it configurable in RedisDAO ?
Please let me know if I am missing something here.

@mudit3774 The RedisDAO does not call IndexDAO internally anymore. This has been extracted to a higher level service. It would be a nice-to-have enhancement to be able to call the async methods within the IndexDAO from within this layer. Please feel free to contribute to this enhancement.


Support static assets when packaging with pkg

Prerequisites

[X] I have written a descriptive issue title
[X] I have searched existing issues to ensure the feature has not already been requested

🚀 Feature Proposal
When packaging an application using pkg that exposes a swagger ui using this package, the static assets don't appear to be included in the Snapshot filesystem. As a result, the ui cannot be served, as it's static resources aren't available.
To support this scenario, it'd be great to add the following to package.json
"pkg": {
    "assets": ["static/**/*"]
},

Which pkg automatically inspects when building applications that include this package.
Motivation
Despite my best efforts, it doesn't seem like it's possible to support this without changes to the @fastify/swagger-ui package.json.
I've tried:

specifying node_modules/@fastify/swagger-ui/static/**/* in my pkg.assets config
specifying **/@fastify/swagger-ui/static/**/* in my pkg.assets config
manually calling path.join(__dirname, "../relative/path/to/node_modules/packaged/file") for each static file, as-per this doc

However, adding the following directly to<EMAIL_ADDRESS>immediately fixes things:
"pkg": {
    "assets": ["static/**/*"]
},

Example
No response

Similar issue: https://github.com/vercel/pkg/issues/454


Handlers are resolved from root scope when using Autofac

I believe this is the same question that was brought up in issue #22, but I didn't want to reopen an old issue.  In that issue, @cwoolum posted some code they used to work around the issue by resolving things from the AutofacWebRequest lifetime scope, but I had some trouble getting that working in my application.  I put some debugging around Autofac resolving components, and I noticed that my WebHookHandler is resolved from the root scope rather than AutofacWebRequest and, according to http://docs.autofac.org/en/latest/lifetime/ ...

It is important to always resolve services from a lifetime scope and not the root container.

As a result, the rest of my dependencies are also resolved from root which isn't desired.  This seems like something that should be handled via WebHooks, perhaps in one of the registration extensions?  Hacking around to get it working with Autofac seems like more work than just implementing web hooks the traditional way so it's difficult to justify using the project without this fixed.

@robpex what would need to change in ASP.NET WebHooks itself? The only mention of Autofac I can see is in a sample.
FYI that sample is now found under https://github.com/aspnet/WebHooks/tree/dev/samples/GenericReceivers.DependencyInjection and Autofac is used in its WebApiConfig class.

@dougbu it's been a while, but I tried refreshing my memory from #22 (I think that issue has more detail if you haven't checked it out yet).  From @HenrikFrystykNielsen comment on that issue,

DI is very much supported. In fact, all of WebHooks extensions (handlers, receivers, and a bunch more) are wired up so that it first look in DI and only if nothing is there does it fall back on it's default behavior.

So, I suspect that somewhere in those WebHooks extensions, where it "first looks in DI", is where it's resolving from the root scope.  But I don't remember whether or not I actually stepped through that code myself.  I realize that's not the most helpful, so I'll have another look to see if I can reproduce this again... but I might not have the time to do it until the new year.

@robpex if we're understanding this issue correctly, one option may be to use ASP.NET's GetDependencyScope(...) extension method when resolving handlers. But, changing the handler resolution pattern i.e. which IDependencyScope we use would be a breaking change -- unfortunately a subtle break. We don't think that's the right approach but an opt-in switch makes it an interesting feature.
We do not plan to make any changes here. But, I'm leaving it open and marking it as up-for-grabs.

This issue was moved to aspnet/AspNetWebHooks#25


error

I downloaded built in code from https://github.com/ElectronVector/try-tdd-with-ceedling
but when i run ceedling test:all OR rake test:all  command I got an error.
error.docx
Please let me know about problem. Thanks in advance
ruby 2.6.6p146 (2020-03-31 revision 67876) [x64-mingw32]
C:\Users\Junaid Computers>cd try-tdd-with-ceedling-master
C:\Users\Junaid Computers\try-tdd-with-ceedling-master>ceedling test:all
Test 'test_lights.c'
gcc.exe: error: Computers/try-tdd-with-ceedling-master/vendor/ceedling/vendor/unity/src: No such file or directory
gcc.exe: error: Computers/try-tdd-with-ceedling-master/vendor/ceedling/vendor/cmock/src: No such file or directory
ERROR: Shell command failed.

Shell executed command:
'gcc.exe -E -MM -MG -Itest -Itest/support -Isrc -IC:/Users/Junaid Computers/try-tdd-with-ceedling-master/vendor/ceedling/vendor/unity/src -IC:/Users/Junaid Computers/try-tdd-with-ceedling-master/vendor/ceedling/vendor/cmock/src -Ibuild/test/mocks -DTEST -DTEST -DGNU_COMPILER -w "build/temp/_test_lights.c"'
And exited with status: [1].

rake aborted!
ShellExecutionException: ShellExecutionException
C:/Users/Junaid Computers/try-tdd-with-ceedling-master/vendor/ceedling/lib/ceedling/tool_executor.rb:74:in exec' C:/Users/Junaid Computers/try-tdd-with-ceedling-master/vendor/ceedling/lib/ceedling/preprocessinator_includes_handler.rb:39:in form_shallow_dependencies_rule'
C:/Users/Junaid Computers/try-tdd-with-ceedling-master/vendor/ceedling/lib/ceedling/preprocessinator.rb:31:in preprocess_shallow_includes' C:/Users/Junaid Computers/try-tdd-with-ceedling-master/vendor/ceedling/lib/ceedling/preprocessinator.rb:11:in block in setup'
C:/Users/Junaid Computers/try-tdd-with-ceedling-master/vendor/ceedling/lib/ceedling/preprocessinator_helper.rb:11:in preprocess_includes' C:/Users/Junaid Computers/try-tdd-with-ceedling-master/vendor/ceedling/lib/ceedling/preprocessinator.rb:17:in preprocess_test_and_invoke_test_mocks'
C:/Users/Junaid Computers/try-tdd-with-ceedling-master/vendor/ceedling/lib/ceedling/test_invoker.rb:42:in block in setup_and_invoke' C:/Users/Junaid Computers/try-tdd-with-ceedling-master/vendor/ceedling/lib/ceedling/test_invoker.rb:32:in setup_and_invoke'
C:/Users/Junaid Computers/try-tdd-with-ceedling-master/vendor/ceedling/lib/ceedling/tasks_tests.rake:8:in block (2 levels) in <top (required)>' C:/Ruby26-x64/bin/ceedling:23:in load'
C:/Ruby26-x64/bin/ceedling:23:in `'
Tasks: TOP => test:all
(See full trace by running task with --trace)

OVERALL TEST SUMMARY
No tests executed.
C:\Users\Junaid Computers\try-tdd-with-ceedling-master>

I suspect that when you created the project, you went with the defaults, which are to use the gem's version of cmock and unity. The project.yml file you're using seems to be expecting that they be in the vendor directory. You can accomplish this by passing --local when you create the project.
If you'd like to adjust the current project file to be correct, adjust these two fields( the first is something to add to the :project section at the top. The latter is a field to modify in the :plugins section at the bottom):
:project:
  :which_ceedling: gem
you can go with the default and remove the following line from your project.yml:

:plugins:
  :load_paths:
    - "#{Ceedling.load_path}"

thank you for you reply.but I am facing the same error .
details of my project.yml file are as follows---# Notes:
Sample project C code is not presently written to produce a release artifact.
As such, release build options are disabled.
This sample, therefore, only demonstrates running a collection of unit tests.:project:
:which_ceedling: gem
  :use_exceptions: FALSE
  :use_test_preprocessor: TRUE
  :use_auxiliary_dependencies: TRUE
  :build_root: build
#  :release_build: TRUE
  :test_file_prefix: test_#:release_build:
#  :output: MyApp.out
#  :use_assembly: FALSE:environment::extension:
  :executable: .out:paths:
  :test:
    - +:test/**
    - -:test/support
  :source:
    - src/**
  :support:
    - test/support:defines:
  # in order to add common defines:
  #  1) remove the trailing [] from the :common: section
  #  2) add entries to the :common: section (e.g. :test: has TEST defined)
  :commmon: &common_defines []
  :test:
    - *common_defines
    - TEST
  :test_preprocess:
    - *common_defines
    - TEST:cmock:
  :mock_prefix: mock_
  :when_no_prototypes: :warn
  :enforce_strict_ordering: TRUE
  :plugins:
    - :ignore
    - :callback
  :treat_as:
    uint8:    HEX8
    uint16:   HEX16
    uint32:   UINT32
    int8:     INT8
    bool:     UINT8#:tools:
Ceedling defaults to using gcc for compiling, linking, etc.
As [:tools] is blank, gcc will be used (so long as it's in your system path)
See documentation to configure a given toolchain for use:plugins:
:load_paths:
    - vendor/ceedling/plugins
  :enabled:
    - stdout_pretty_tests_report
    - module_generator
...
On Tuesday, June 9, 2020, 08:29:07 PM GMT+5, Mark VanderVoord<EMAIL_ADDRESS>wrote:

I suspect that when you created the project, you went with the defaults, which are to use the gem's version of cmock and unity. The project.yml file you're using seems to be expecting that they be in the vendor directory. You can accomplish this by passing --local when you create the project.
If you'd like to adjust the current project file to be correct, adjust these two fields( the first is something to add to the :project section at the top. The latter is a field to modify in the :plugins section at the bottom):
:project:
:which_ceedling: gem
you can go with the default and remove the following line from your project.yml:
:plugins:
:load_paths:
- "#{Ceedling.load_path}"
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

The rake test:all version no longer exists, so you can ignore that... in fact, remove rakefile.rb for good measure.
You've not update the :plugins: section. You still have this:
:plugins:
  :load_paths:
    - vendor/ceedling/plugins

but you want this:
:plugins:
  :load_paths:
    - "#{Ceedling.load_path}"

If that doesn't fix things for you, there are two helpful things to do in your response. (1) You can tell me the version you're working with (ask by using ceedling version). (2) If you copy and paste code or command line responses, it's helpful to add a line BEFORE the snippet with three backticks and a line AFTER the snippet with three backticks. This will keep github's markdown engine from mangling your text.

thank you for guidance but still there is error.
details of project file is...
---# Notes:
Sample project C code is not presently written to produce a release artifact.
As such, release build options are disabled.
This sample, therefore, only demonstrates running a collection of unit tests.:project:
:which_ceedling: gem
  :use_exceptions: FALSE
  :use_test_preprocessor: TRUE
  :use_auxiliary_dependencies: TRUE
  :build_root: build
#  :release_build: TRUE
  :test_file_prefix: test_#:release_build:
#  :output: MyApp.out
#  :use_assembly: FALSE:environment::extension:
  :executable: .out:paths:
  :test:
    - +:test/**
    - -:test/support
  :source:
    - src/**
  :support:
    - test/support:defines:
  # in order to add common defines:
  #  1) remove the trailing [] from the :common: section
  #  2) add entries to the :common: section (e.g. :test: has TEST defined)
  :commmon: &common_defines []
  :test:
    - *common_defines
    - TEST
  :test_preprocess:
    - *common_defines
    - TEST:cmock:
  :mock_prefix: mock_
  :when_no_prototypes: :warn
  :enforce_strict_ordering: TRUE
  :plugins:
    - :ignore
    - :callback
  :treat_as:
    uint8:    HEX8
    uint16:   HEX16
    uint32:   UINT32
    int8:     INT8
    bool:     UINT8#:tools:
Ceedling defaults to using gcc for compiling, linking, etc.
As [:tools] is blank, gcc will be used (so long as it's in your system path)
See documentation to configure a given toolchain for use:plugins:
:load_paths:
  - Ceedling.load_path
  :enabled:
    - stdout_pretty_tests_report
    - module_generator
...
On Tuesday, June 9, 2020, 09:42:01 PM GMT+5, Mark VanderVoord<EMAIL_ADDRESS>wrote:

The rake test:all version no longer exists, so you can ignore that... in fact, remove rakefile.rb for good measure.
You've not update the :plugins: section. You still have this:
:plugins:
:load_paths:
- vendor/ceedling/plugins
but you want this:
:plugins:
:load_paths:
- "#{Ceedling.load_path}"
If that doesn't fix things for you, there are two helpful things to do in your response. (1) You can tell me the version you're working with (ask by using ceedling version). (2) If you copy and paste code or command line responses, it's helpful to add a line BEFORE the snippet with three backticks and a line AFTER the snippet with three backticks. This will keep github's markdown engine from mangling your text.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

:)
Yes, Ceedling.load_path is not the same as "#{Ceedling.load_path}"
I suspect that's the issue.

same error
---# Notes:
Sample project C code is not presently written to produce a release artifact.
As such, release build options are disabled.
This sample, therefore, only demonstrates running a collection of unit tests.:project:
:which_ceedling: gem
  :use_exceptions: FALSE
  :use_test_preprocessor: TRUE
  :use_auxiliary_dependencies: TRUE
  :build_root: build
#  :release_build: TRUE
  :test_file_prefix: test_#:release_build:
#  :output: MyApp.out
#  :use_assembly: FALSE:environment::extension:
  :executable: .out:paths:
  :test:
    - +:test/**
    - -:test/support
  :source:
    - src/**
  :support:
    - test/support:defines:
  # in order to add common defines:
  #  1) remove the trailing [] from the :common: section
  #  2) add entries to the :common: section (e.g. :test: has TEST defined)
  :commmon: &common_defines []
  :test:
    - *common_defines
    - TEST
  :test_preprocess:
    - *common_defines
    - TEST:cmock:
  :mock_prefix: mock_
  :when_no_prototypes: :warn
  :enforce_strict_ordering: TRUE
  :plugins:
    - :ignore
    - :callback
  :treat_as:
    uint8:    HEX8
    uint16:   HEX16
    uint32:   UINT32
    int8:     INT8
    bool:     UINT8#:tools:
Ceedling defaults to using gcc for compiling, linking, etc.
As [:tools] is blank, gcc will be used (so long as it's in your system path)
See documentation to configure a given toolchain for use:plugins:
:load_paths:
  -  "#{Ceedling.load_path}"
  :enabled:
    - stdout_pretty_tests_report
    - module_generator
...
On Tuesday, June 9, 2020, 10:37:27 PM GMT+5, Mark VanderVoord<EMAIL_ADDRESS>wrote:

:)
Yes, Ceedling.load_path is not the same as "#{Ceedling.load_path}"
I suspect that's the issue.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

What do you get when you issue ceedling version?
Have you removed rakefile.rb yet?
What is the error you receive when you issue ceedling clobber test:all at this point?

it works thanks.but I did not understand what was the problem and how it is solved now.. would you please explain?
On Tuesday, June 9, 2020, 10:48:38 PM GMT+5, Mark VanderVoord<EMAIL_ADDRESS>wrote:

What do you get when you issue ceedling version?
Have you removed rakefile.rb yet?
What is the error you receive when you issue ceedling clobber test:all at this point?

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

thanks a lot for your help.I have understood and the problem has been solved by doing following steps.
Try tdd ceedlig error
If we  like to adjust the current project file to becorrect, we have to adjust these two fields( the first is something to add tothe :project section at the top. The latter is a field to modify in the :plugins section at thebottom):
:project:
:which_ceedling: gem
you can go with the default and remove the following line fromyour project.yml:

:plugins:
:load_paths:
-"#{Ceedling.load_path}"

Romove rakefile.rb file.
thanks
On Tuesday, June 9, 2020, 10:57:58 PM GMT+5, Muhammad Faisal Khan<EMAIL_ADDRESS>wrote:

it works thanks.but I did not understand what was the problem and how it is solved now.. would you please explain?
On Tuesday, June 9, 2020, 10:48:38 PM GMT+5, Mark VanderVoord<EMAIL_ADDRESS>wrote:

What do you get when you issue ceedling version?
Have you removed rakefile.rb yet?
What is the error you receive when you issue ceedling clobber test:all at this point?

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Glad to hear you have it working.
Those three changes update the project.yml file in that 5-year-old example to match the latest defaults and paradigms of ceedling. While we try not to break backward compatibility often, we're also on a mission to make ceedling easier to use for newcomers. That has meant some breaking changes occasionally.

hi, Mark Again I am facing some problems related to ceedling. I have posted my problem in my  get hub account.mine issue number is 515. I would be very thankful to you if I have your kind considerations on that issue.kind regardsfaisal
On Wednesday, June 10, 2020 02:35:28 AM CST, Mark VanderVoord<EMAIL_ADDRESS>wrote:

Closed #496.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


Makes tags lowercase for query

Fixe #5108

Calling @pramsey to help out with this one since I hear you know a lot about PostgreSQL :)
So, I've gotten to this code:
if @tags
      @tags.each do |t|
        t.downcase!
      end
      query = query.where("ARRAY[?]::text[] && visualizations.tags", @tags)
    end

In cartodb/app/queries/carto/visualization_query_builder.rb:240
So, @tags are lowercase. Now I need a way for the query to be case insensitive. I've looked around and found things like this, but I'm worried about performance.
Could you please suggest some efficient way of doing this?
Thanks!

The efficiency comes from having the column be indexed so the && operator can do magic against the index. So, the question is, can you get some way to do case-insensitive indexed calls. The answer is yes, but it will get a little bit ugly. You need a function that will upper (or lower) case a text[]. Something like
FUNCTION array_to_upper(text[]) RETURNS text[]

Then you can create a functional index on array_to_upper,
CREATE INDEX idx_test on mytable USING GIN (array_to_upper(mytags));

And do your query in such a way as to force use of that functional index,
SELECT * FROM mytable
WHERE array_to_upper(mytags) && array_to_upper(ARRAY['sometag'])

@pramsey
Although not to orthodox, I found this hack. What do you think?
if @tags
      @tags.each do |t|
        t.downcase!
      end
      query = query.where("array_to_string(visualizations.tags, ',') similar to array_to_string(ARRAY[?]::text[], ',')", @tags)
    end

Retest this, please

This assumes that @tags only has one element. If it has more than one element then you're just crossing your fingers and hoping that the order of both arrays is the same. Also, it can't make use of any index, so your search better not be counting on good speed from the tag filter (maybe it isn't?). Finally, you're assuming the cases in the database column have already been coerced to lower, and I kind of assumed that was one thing you couldn't do (because then the casing the user entered would disappear, which would suck for them if they considered it significant (using HungarianNotation for example).

Hi @pramsey!
About the indexing: totally, still might not be worth it for this feature.
About single tag cases: you're absolutely right. To solve it, I'm working on something like this:
if @tags
  @tags.each do |t|
    t.downcase!
  end
  query = query.where("array_to_string(visualizations.tags, ', ') ILIKE '%' || array_to_string(ARRAY[?]::text[], ', ') || '%'", @tags)
end

About the part were this code is forcing users to lowercase tags: how? This query is using ILIKE to compare against stored tags so it doesn't matter if they're upper or lower case.

ILIKE will be fine, I was commenting on SIMILAR TO which doesn't to coercion by default. I'm still not sure how you can match ARRAY['a','b','c'] to ARRAY['c','a'] though.

Checkout the latest commit. Code finally is:
if @tags
  @tags.each do |t|
    t.downcase!
  end
  query = query.where("array_to_string(visualizations.tags, ', ') ILIKE '%' || array_to_string(ARRAY[?]::text[], ', ') || '%'", @tags)
end

It works for matching with multiple tags from my testing.

It still seems dependent on ordering, unless there's a sort somewhere higher up in the code base forcing everything to be pushed into the same order. Even then, I would expect ARRAY['a','b','c'] versus ARRAY['c','a'] to fail due to the gap between c and a.

If what you mean is that a user will search for multiple tags, this is not supported at the moment.
With this fix, a user searching :fOo will get datasets such as:
Dataset 1 with tags :foobar
Dataset 2 with tags :FoZ, :FOOBAR
Dataset 3 with tags :FoobaR, :FeZ
Dataset 3 with tags :FoR, :barfOO
This was the original goal. Previously the same query would have not returned anything. After all it is an ILIKE %term% over a string. My testing has gone OK for any case I've thought of.

OK then, looks all right. There will be no index assist, but presumably the data set is small enough it's not a big deal.

Yes, were losing index assistance but we should revamp tags in the future anyway :smile:


fix(snapshot): fix toMatchFileSnapshot with empty file

Description

closes https://github.com/vitest-dev/vitest/issues/5891

It looks like empty string snapshot is considered non-existent snapshot due to ... || undefined.

Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[x] It's really useful if your PR references an issue where it is discussed ahead of time. If the feature is substantial or introduces breaking changes without a discussion, PR might be closed.
[x] Ideally, include a test that fails without this PR but passes with it.
[ ] Please, don't make changes to pnpm-lock.yaml unless you introduce a new test example.

Tests

[ ] Run the tests with pnpm test:ci.

Documentation

[ ] If you introduce new functionality, document it. You can run documentation with pnpm run docs command.

Changesets

[x] Changes in changelog are generated from PR name. Please, make sure that it explains your changes in an understandable manner. Please, prefix changeset messages with feat:, fix:, perf:, docs:, or chore:.

Thanks! Do you plan a release containing this fix before 2.0?

This will be included in 2.0 and the next 2.0-beta releases. We are not planning to do 1.x releases at the moment.


Add get_metadata method back to nodes

This method will supply metadata information about the model as defined in the openAPI spec.

I close it by #5.


How to choose hyperparameters for Platue function?

Can you provide any tips for selection hyperparameters (e.g., w and s) of Platue function?

Yes, any value bigger than 15 and less than mean segment length is ok for w. For s, it does not affect the performance much.


(Console): Assessment Results View Updates

Is your feature request related to a problem? Please describe.
Current assessment results view is not fully function/possibly missing some context. Suggest updates to views to provide more useful detail about given results of an assessment
Additional Context
Initial views attached for discussion

Expected Deliverable
Agreement on useful views/data
Implementation + documentation

Bumping to high priority to work before soss fusion demo

Changes merged in #744


Update Governance with TSC Composition

The new website shows a copy paste from the current website, where the TSC is only represented by the Chair (photo missing). We would like a TSC rep list on the website (but just as a list with names + what they represent, no photo), generated from the YML data for workgroups and projects (as it's a derivative, i.e. there is 1 rep per project and workgroup).
This way we could actually generate the list on the website and get rid of the manually maintained list in the README of the TSC repo.
This will of course need some work on the TSC repo side.

Since this will require a cleanup of projects, which I will also set up an issue for and mark as post-launch in a second, marking this as post-launch as well.


fix: removed invalid headers setup (#83)

This pull request finally removes the incorrect markdownlint config line about headers.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>0
Details

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

Totals

Change from base Build<PHONE_NUMBER>3:
0.0%

Covered Lines:
310

Relevant Lines:
310

💛  - Coveralls


feat(testrunner): v2 testrunner

Trying to give the testrunner a cleaner look, today its very "distracting". I want to use more subtle higlight groups and make it intuitive without explicitly spamming "❌" emojis etc..
Features

[x] Show solution as root group
[x] Show csprojects
[x] Strip namespaces for cleaner look
[x] Add highlights to sln and project for cleaner look
[x] Testrunner shows solution and csprojects as default when opening
[x] Peek stacktrace now opens the file in a floating buffer, indicating the offending line
[x] Uses F# script to parse xml to json for test result parsing
[x] Testrun results now gets parsed from xmlfile in TestResults folder rather than from stdout

Issues

[x] ~Dotnet test -t runs synchronously causing major freeze~
[x] ~Tests using inline data is not matched correctly when updating status~
[x] ~Identical namespaces across projects causes issues in status reporting when running solution~
[x] ~Status aggregation on namespaces/csproject before all tests have finished ruins highlight, given wrong indication~
[x] ~Tests using inline data is not matched correctly when updating status~
[ ] An error will occur if the json output from the xml file is too large. Apparantly vim.fn.json_decode has a rather low max character limit (this can be solved in the f# script by splitting the output into multiple files)

When running dotnet test on the solution it seems hard to differentiate which tests belongs to which project, solved for now by just running a for loop on the projects in the solution and running in parallel. Uncertain which consequences this will have
Memory issues with Xml
Initially when testing on a rather small group of tests in a project I ran into memory issues when using vim.fn.json_decode on the converted json. I modified the F# script to remove a lot of unused fields from the outputted json, but I can still imagine that a csproject could potentially have 1000+ tests. Which is guaranteed to crash the vim.fn.json_decode execution. Essentially we are only interested in 3 properties for each unit_test result. testName, outcome and stacktrace(if failed).
Option 1
Remove the stacktrace and only output a list of testname and outcome, this would almost guarantee no memory issues for the user. When the peek_stack_trace is called it will either have to re-parse the entire xml or modify the f# script to write all stacktraces to separate files in the initial parsing.
Option 2
Paginate the json, set an arbitrary size and write a "nextPage" property after x amount of items.
This would result in modifying the F# script to parse the xml, chunk the json and output it into one or more files.
Option 3
Slice the stacktrace to only get the root "error" and the file name and line number. (temporary fix)

Peek stacktrace now opens the offending file with virt text to highlight colors

This is really cool! I was thinking of proposing you something like this. There is one thing you might want to customize for the v2.
The arguments passed to the dotnet test command are static. I think it would be a good idea to be able to pass the arguments in an array. Then, the user can customize (or the plugin can leverage it for new functionalities).
For example, in the future you might want to add running test with coverage.
In following scenario, I want to check if I have coverage for a given entity (an entity is for example "User", so I want to check if I cover my users actions like add, remove, update, etc...)
      {
        "<leader>tce",
        function()
          local function get_entity_name()
            local entity_name = vim.fn.input("Please enter the entity name: ")
            return entity_name
          end
          local task = require("overseer").new_task({
            cmd = "dotnet test "
              .. "--no-build "
              .. "--filter FullyQualifiedName~"
              .. get_entity_name()
              .. "/p:CollectCoverage=true "
              .. "/p:CoverletOutputFormat=lcov "
              .. "/p:CoverletOutput="
              .. LazyVim.root.git()
              .. "/coverage/lcov.info",
            cwd = LazyVim.root.git(),
            components = {
              {
                "on_output_quickfix",
                errorformat = vim.o.grepformat,
                open_height = 8,
                items_only = true,
              },
              -- We don't care to keep this around as long as most tasks
              { "on_complete_dispose", timeout = 30 },
              "default",
            },
          })
          task:start()
        end,
        desc = "Run entity related code with coverage",
        ft = "cs",
      },

Yeah it was always my plan to add this, I just wanted to find a way of allowing extra args without colliding with existing args. Maybe its a non issue and up to the user but sending --filter  twice will cause an error in the command

Yes, I guess sending --filter twice would be a problem.. Another idea would be to create a separate command only for running all tests with coverage. In the end, it will be the same, only takes longer to run.
Other thing I was thinking of was to add a keymap for debugging a test. No idea how difficult it could be to be honest

Two possible issues with debugging a test

[ ] Resolving the file location of a test and line number
[ ] Will make nvim-dap sort of a dependency to easy-dotnet.nvim (Which isnt preferred)

I guess there are ways to make it more of an "opt-in" nvim-dap

A little bit of topic but I havent configured dap for debugging tests. Do you have this functionality in your vim config today? Do you use easy-dotnet for path resolutions/helpers?

It is an adapter of neotest

Amazing! I didnt know about neotest-dotnet. I have been looking into debugging tests but the issue is with the waiting and attaching part. Cool ill check it out

the neotest-dotnet project is really amazing. It has three problems, one of them blocks me:

This issue: https://github.com/Issafalcon/neotest-dotnet/issues/112, this let crash my laptop
Filtering in neotest is not working
Many times you have the output with tests marked as failed although they passed

I have also faced some issues with marking tests as failed/skipped/passed. The stdout of dotnet cli is hard to parse reliably.
A solid option is to write log files as xml and parse them, the main issue is that the entire test execution will have to finish before results are reflected in the TUI

The author of neotest-dotnet also mentions that it is very hard to parse the output.
In my opinion, if there is a trade-off, I would rather prefer to have the correct output even if this takes a bit longer.

So my argument would be the following:

When I run all tests is to know if I have broken something with my last changes. At that point, I will wait for all test to finish and the go for the failed ones. In that case the time to finish is not that important, but to have the correct output
When I only run a small group (let say, going by namespace), it doesn't take that long for all tests to finish.

I admit that there is also the chance to run a bigger group of tests where you want to have the output as quick as possible but still in the trade-off I would prefer the correctness over the rapidity

Yeah I have given it a lot of thought the last week but I am at a crossroads where I will either

Go all in on parsing stdout and creating a loooot of tests to cover it
Admit defeat and go for xml parsing

Difficult decision.. The big argument for going all in would be to create a function that other plugins can use and eventually team up.
Another argument against it is that I would first create a solid testrunner (using the commands on a daily basis) first instead of having too many open parts.

what about creating a plugin's test for this case? Just testing the parse function, then we could iterative improve the parser. It would be easier to contribute I think

Yeah, its definitely on the roadmap when the plugin gets a bit more "consolidated". I spend way too much time manually testing stuff. I guess another big pro for using xml is that its more unlikely to have breaking changes. There is no guarantee the stdout will uphold its structure when the dotnet cli evolves. But yeah lua tests will have to be made for all regex parsing of stuff

@franroa Speaking of reliable tools. I may have found a way to guarantee the test results pretty much 100%. Lua or vim itself cant parse xml without using external libs. I wrote a simple f# script that uses newtonsoft to convert the logfile trx from xml to json and then using lua/vim i parse it. This should ensure i dont miss any tests and I should be able to write rock solid code for test results.
Im still testing it but expect something soon

That sounds awesome! And good idea. I will test it as soon you deploy it. Testing dotnet with neovim has been my greatest trouble with the ide

@franroa Still a lot of error handling and code refactoring before I can merge but I have tested it in real projects and it seems to work really well. (a bit slow maybe). The smaller the test scope the more noticable it gets. But this is to be expected when calling dotnet fsi i guess🤷♂
If you want to test use this commitId: 0dd8af8e016f85412c19bb9feb54a06cce35e759
Otherwise it will probably be merged before the weekend is over

Brilliant! I will be working with it today. Thank you so much!

@franroa Do you use MSTest normally?
There seems to be a difference in dotnet test -t when using MSTest. The test names are listed without namespaces

Not really, I think only in one project I usually don't need to touch, so for me that is not an issue. Discovering test works perfectly for me.
If you want to add support to MSTest or you think in the future for a v3 of the test runner, you could take a look to this: https://github.com/microsoft/vstest

I have tested the commit, and works really well. Found out two issues:

Integration tests (without namespaces) throw an error
Some tests stuck on "Running". I don't not yet what they have in common. The majority of them run very well, though.
I general, it works really fast and correctly. Good job! Also the the design looks really nice

Another small issue:
When I run a whole folder, and one of the tests stucks on "Running" and the other tests pass, then the folder is marked as passed.
This is probably not an error, since the test stuck on "Running" might have passed as well, and this is only a problem of refreshing the state in the output more than getting the real output

Yeah I have pretty loose validation still but im assuming the xml file is missing entries for all the tests stuck on . The idea is to throw an error and show that the command failed but I wanted to iron out all the bugs first.
Tests without namespaces seems challenging to handle but I have gotten them to work in my project and the example project you provided. Ill try to add more tests to the test suite and see if I can uncover more bugs.
One known issue is name collision with test without namespaces. But I suspect this is only when using [TestMethod] and MsTest

I think there is an issue with the discoverability, which then translates into an issue in the test execution.
Take this example:

The test runner is discovering here three tests, because I have three methods. In this case, this is not correct because of the annotation ClassData in my test cases:
   [Theory]
   [ClassData(typeof(InsertCalendarDataTest))]
   public async Task InsertCalendarTest(CalendarInsertRequest insertRequest, Type exceptionType)
   {
   ...
   }

   [Theory]
   [ClassData(typeof(UpdateCalendarDataTest))]
   public async Task UpdateCalendarTest(long calendarId, CalendarUpdateRequest updateRequest, Type exceptionType)
   {
   ...
   }

   [Theory]
   [ClassData(typeof(DeleteCalendarDataTest))]
   public async Task DeleteCalendarTest(long calendarId, Type exceptionType)
   {
    ...
   }

The ClassData will then contain many subcases for that Theory.
Interesting thing is (and might help with solving the issue), that when I use InlineData instead of ClassData, it works perfectly:
        [Theory]
        [InlineData(false)]
        [InlineData(true)]
        public async void GetCalendar(bool commandHandlerError)
        {
           ...
        }

Can you run dotnet test -t on this and check the lines for what output you get. I suspect this is a limitation in dotnet test -t and hard to fix

using System.Collections.Generic;
using Xunit;

namespace test.Class;

// The class that provides the data for the test
public class TestDataGenerator : IEnumerable<object[]>
{
    private readonly List<object[]> _data = new List<object[]>
    {
        new object[] { 1, 2, 3 },
        new object[] { -4, -6, -10 },
        new object[] { 0, 0, 0 }
    };

    public IEnumerator<object[]> GetEnumerator() => _data.GetEnumerator();

    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => GetEnumerator();
}

public class MathTests
{
    // This test method will be run with the data provided by the TestDataGenerator class
    [Theory]
    [ClassData(typeof(TestDataGenerator))]
    public void CanAddNumbers(int value1, int value2, int expectedSum)
    {
        var result = value1 + value2;
        Assert.Equal(expectedSum, result);
    }
}

Seems like a bug in parsing test names, The tests are not showing up in my list of tests. I will look at it. Should be a simple fix

Well, I guess I could summarize into:

Parsing names
Types (namespaces) in the arguments are moved to other groups
When some tests stuck in a group, the whole group are shown as finished (difficult to say if this is actually an issue, or the stuck tests are just not understood as part of the groups)

I think I have good enough repros to fix this. Thanks for supplying so much feedback, repros! :D

You are welcome! thanks for doing such a great plugin!

@franroa The case with ClassData is now fixed. They are grouped under a sort of subgroup

Now its better. It still doesnt work though

InsertCalendar and UpdateCalendar is still stuck on Running
I think you are almost there!

I dont get what you are doing differently than me here to get outliers. Any ideas on how to repro?

Maybe adding other classes with classdata tests? If you put more classes that belongs alphabetically under your current one it could appear. I don't know

Found it, its a sorting issue. Will fix

@franroa Works for me now, hopefully that fixed it for you aswell

Sorting is fixed. Now everything is in the right place. New tests stuck on Running though, still related to the ClassData, not sure what they have in common. Maybe they stuck when a parent stuck? not sure.
Otherwise, its working pretty well

Im at a loss. Matches is an array of the "scope" you are testing. If a value is in the match array the status is set to . According to the code It will error if it does not find a result for every single match in matches array. The only thing I can think off is if the function throws an exception but surely you would notice that? Can you try to run :messages after one of the tests get stuck?
local function parse_status(result, test_line)
  --TODO: handle more cases like cancelled etc...
  if result.outcome == "Passed" then
    test_line.icon = resultIcons.passed
  elseif result.outcome == "Failed" then
    test_line.icon = resultIcons.failed
    test_line.expand = vim.split(result.stackTrace, "\n")
  elseif result.outcome == "NotExecuted" then
    test_line.icon = resultIcons.skipped
  else
    test_line.icon = "??"
  end
end

local function parse_log_file(relative_log_file_path, win, matches)
  require("easy-dotnet.test-runner.test-parser").xml_to_json(relative_log_file_path,
    ---@param unit_test_results TestCase[]
    function(unit_test_results)
      for _, match in ipairs(matches) do
        local test_line = match.ref
        if test_line.type == "test" or test_line.type == "subcase" then
          local result = unit_test_results[match.line]
          if result == nil then
            error(string.format("Status of %s was not present in xml file", match.line))
          end
          parse_status(result, test_line)
        end
      end
      aggregateStatus(matches)
      win.refreshLines()
    end)
end

At this point I feel like merging this pr and opening a new one where I specifically look into your issue

Hi, I think it throwed a notification the first run, then it didn't throw any exception with the runs after that. I could not check too much since I had to leave. Tomorrow I will test again.
In any case, it is really awesome the improvements you have done here. Congratulations!


Limit number of timeout_retries for run_tests.py

timeout_retries  keeps retrying even if jobset's max_time (capped at 1hr for PR tests) have already elapsed.
Arguably, that's a reasonable behavior, but together with high C/C++ tests timeouts and some of them timing out often, it's increasing the total PR job runtimes too much.

for run_tests.py, only make 2 attempts in total (instead of 4) if there was a timeout.
total of 5 attemts instead of 6 for flakes (flake_retries=4 actually means 5 attempts in total).
add an explanatory comment to jobset.py retry logic.

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

Known issues: #12918 #12886 #12931 #12978 #12510 #12964


feat: deny delete creation

Hi Luciano,
since deny is one of the last thing to be used before returning a response, with this PR I would like to delay its creation as long as we can in order to avoid always creating it for valid token.

Really good idea! Thanks for this awesome contribution @ilteoood <3


Quadratic behavior in kernel loading

The VM finalizes classes lazily when it needs them. When it decides to finalize a class it will call into the kernel loader to load all fields/functions/... of the (possibly top-level) class.
See runtime/vm/kernel_loader.cc:KernelLoader::FinishClassLoading:
void KernelLoader::FinishLoading(const Class& klass) {
  ...
  KernelLoader kernel_loader(...);
  ...

This constructor will execute the code in runtime/vm/kernel_loader.cc:KernelLoader::KernelLoader:
KernelLoader::KernelLoader(...) {
  ...
  const Array& scripts = Array::Handle(Z, kernel_program_info_.scripts());
  patch_classes_ = Array::New(scripts.Length(), Heap::kOld);
  ...
}

Now very often the entire application is represented as one KernelProgramInfo object.
The number of classes is always larger than the number of scripts / library since each script has it's own top-level class.
=> The complexity is O(#number-classes x #number-of-scripts)
=> For large number of libraries this can be very slow (finalization of each class can cause ~ 1MB  allocation, causing very frequent GCs)

/cc @jensjoha Would you be interested in looking at this?
(We have internal customers with large apps which can make dev cycle really slow because of this)


Filtering on allele frequency and outputting allele frequency in result

Hello! Thank you again for this great tool. I would like to use the same bim/bed/fam filset as input for FastLMM across many phenotypes that have different subsets of individuals with missing data, which means they can't be run with the multi-phenotype mode without unnecessarily dropping individuals. So, I am looping through each phenotype, and using the same bim/bed/fam inputs. Ideally, I'd like to know the minor or alt allele frequency / count for each test variant in the subset of individuals with non-missing phenotypes that FastLMM keeps in single_snp(), and also filter variants based on this criteria if possible.
Does FastLMM calculate allele frequencies or allele counts for test SNPs in the subset of individuals without missing phenotype data? If so, is there a way to provide this frequency / count info for each test SNP in the single_snp() output? Additionally, is it possible to set a MAF cutoff for single_snp() in the subset of individuals with non-missing data prior to doing the association test?

This worked, thank you so much!

Excellent!


Fatal error: openssl signature could not be verified

I am using the PHP 8.0 64bit on Windows 10
When I type:
php jupyter-php-installer.signed.phar install
with jupyter-php-installer.signed.phar.pubkey in the same directory
I get the error:
Fatal error: Uncaught PharException: phar "C:\Program Files\PHP\jupyter-php-installer.signed.phar" openssl signature could not be verified: openssl not loaded in C:\Program Files\PHP\jupyter-php-installer.signed.phar:9
Stack trace:
#0 C:\Program Files\PHP\jupyter-php-installer.signed.phar(9): Phar::mapPhar('jupyter-php-ins...')
#1 {main}
  thrown in C:\Program Files\PHP\jupyter-php-installer.signed.phar on line 9

I didn't see any instructions or wiki that would explain the correct way to install it.
Most importantly, is Jupyter-PHP still being supported/developed?  This repository appears to be abandoned years ago.

Please see I have created a way to install from the source code using composer. As long as PHP exe is in your path it should work.  Looking at your error though your probably find you don't have openssl installed on windows. That is something that we take for granted on other operating systems.


Severe framedrops and stutter with "Load Loose Files" option clicked on in Reframework Ver. 802

Describe the bug
Game running smooth with several mods enabled. Using the latest DLSS and Framegen mod. But when I click on "Load Loose files", game starts stuttering and have framedrops of up to 20 fps while running around in the game.
Upload logs and any crash dumps
No crashing
REFramework version
REFramework Nightly Build 802
Steps to reproduce the behavior

Go to 'REFramework Menu'
Click on to enable: Loose Files Loader.

Expected behavior
Framedrops, stutter every 5-10 seconds. Decrease in general game performance. Getting smooth performance at 60fps everywhere with this option disabled
Desktop and VR (please complete the following information):
Windows 11
RTX 4090
64 GB Ram
i9-14900 KF
4TB SSD
DLSS and DLSSG 3.70 latest
Reshade
Framegen mod
Steam Deck/Linux (please complete the following information)
Steam desktop
Virtual Reality (please complete the following information)
None
Additional context
Game is stable, with the usual milisecond framedrops of 1-2 fps while loading into a new city area, its an issue with the game engine. Getting smooth 60fps with Framegen mod enabled. Problems only start when I enable the Loose File Loader option.

re2_framework_log.txt

I have to ask, do you need the loose file loader for any reason? Are any mods asking you to enable it?
I'm not really seeing an immediate fix for this because of the way this works. Every file the game requests (tens of thousands likely), the loose file loader needs to do a check on disk to see if it can load it from there. Now there could be some precaching of the existing files on disk, but I'd have to consider if there would be a hit to performance doing this as well.

I will try to implement some simple caching here which should alleviate the problem a bit. It might still lag slightly whenever the files are first encountered, but the rest should be okay.

I have to ask, do you need the loose file loader for any reason? Are any mods asking you to enable it?
I'm not really seeing an immediate fix for this because of the way this works. Every file the game requests (tens of thousands likely), the loose file loader needs to do a check on disk to see if it can load it from there. Now there could be some precaching of the existing files on disk, but I'd have to consider if there would be a hit to performance doing this as well.

I was enabling to be able to use the Mesh Mod Enabler, that requires it to be enabled to use. Thanks.

I have to ask, do you need the loose file loader for any reason? Are any mods asking you to enable it?
I'm not really seeing an immediate fix for this because of the way this works. Every file the game requests (tens of thousands likely), the loose file loader needs to do a check on disk to see if it can load it from there. Now there could be some precaching of the existing files on disk, but I'd have to consider if there would be a hit to performance doing this as well.

I was enabling to be able to use the Mesh Mod Enabler, that requires it to be enabled to use. Thanks.

Can you try the new nightly build here and check if the performance is better? https://github.com/praydog/REFramework-nightly/releases/
There may be slight hitches when files are first encountered, as mentioned, but should ease up after it knows about them.

OK thank. Will do.


Problem with add_messages, message didn't get merged

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangGraph/LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangGraph/LangChain rather than my code.
[X] I am sure this is better as an issue rather than a GitHub discussion, since this is a LangGraph bug and not a design question.

Example Code
from typing import Annotated

from typing_extensions import TypedDict

from langgraph.graph import StateGraph, START, END
from langgraph.graph.message import add_messages
from langchain_openai import ChatOpenAI

class State(TypedDict):
    # Messages have the type "list". The `add_messages` function
    # in the annotation defines how this state key should be updated
    # (in this case, it appends messages to the list, rather than overwriting them)
    messages: Annotated[list, add_messages]

def chatbot(state: State):
    model = ChatOpenAI(temperature=0.1, model_name="gpt-3.5-turbo")
    print(state)
    return {"messages": [model.invoke(state["messages"])]}

graph_builder = StateGraph(State)
graph_builder.add_node("chatbot", chatbot)
graph_builder.add_edge(START, "chatbot")
graph_builder.add_edge("chatbot", END)
graph = graph_builder.compile()

while True:
    user_input = input("User: ")
    if user_input.lower() in ["quit", "exit", "q"]:
        print("Goodbye!")
        break
    for event in graph.stream({"messages": ("user", user_input)}):
        for value in event.values():
            print("Assistant:", value["messages"][-1].content)

Error Message and Stack Trace (if applicable)
python my_agent/agent.py
User: Do you know Calculus?
{'messages': [HumanMessage(content='Do you know Calculus?', id='05425ee6-2c31-4c0b-8843-2ca88596e420')]}
Assistant: Yes, I am familiar with Calculus. Calculus is a branch of mathematics that deals with rates of change and accumulation of quantities. It includes topics such as differentiation, integration, limits, and infinite series.
 Here is an example:

Sentence: "The cat chased the mouse around the house."

Example: The cat, a sleek and agile tabby with bright green eyes, darted after the small grey mouse as it scurried through the various rooms of the house, knocking over vases and skidding around corners in a frantic attempt to escape.

Description
I follow the first example in quickstart here: https://langchain-ai.github.io/langgraph/tutorials/introduction/#setup
and I try to print the state, and I realized that the message is being replaced rather than appended.
But on the website, it states: "The messages key is annotated with the add_messages reducer function, which tells LangGraph to append new messages to the existing list, rather than overwriting it."
System Info
Name: langgraph
Version: 0.2.15
Summary: Building stateful, multi-actor applications with LLMs
Home-page: https://www.github.com/langchain-ai/langgraph
Author:
Author-email:
License: MIT
Location: /Users/yuxuanwu/opt/anaconda3/envs/langchain/lib/python3.11/site-packages
Requires: langchain-core, langgraph-checkpoint
Required-by:

Insert a checkpoint; otherwise, your graph will be considered as starting anew with each execution.
from langgraph.checkpoint.memory import MemorySaver

# ...

graph = graph_builder.compile(checkpointer=MemorySaver())
thread_config = {"configurable": {"thread_id": "1"}}

# ...

for event in graph.stream({"messages": ("user", user_input)}, thread_config):

# ...

Insert a checkpoint, Otherwise, your graph will restart after each run.
from langgraph.checkpoint.memory import MemorySaver

# ...

graph = graph_builder.compile(checkpointer=MemorySaver())
thread_config = {"configurable": {"thread_id": "1"}}

# ...

for event in graph.stream({"messages": ("user", user_input)}, thread_config):

# ...

Thank you so much!


Update for latest 4.4 Build

Updates based on new 4.4 ES Lint build

Pull Request Test Coverage Report for Build #2092

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

Totals

Change from base Build #2091:
0.0%

Covered Lines:
3005

Relevant Lines:
3307

💛  - Coveralls


VnV Report: Traceability Matrices

Need to do this for:

VnV Plan Traceability for Unit Tests
VnV Report Traceability for System Tests
VnV Report Traceability for Unit Tests


fix: use separate venvs

Closes https://github.com/jina-ai/examples/issues/557

Unnecessary PR, unless you want to run ci.sh local


Fix entropy atom with scalars

Looks like the entropy atom returns infinity with scalars independently from them being or not in the domain. I made a small fix.
Problem was raised here.

Coverage decreased (-0.1%) to 80.276% when pulling abcd5079ea876079cfd37f37bb76020390dea290 on bstellato:master into ac7df0cd2c01b38f83c7fba1b543a15f83180ff4 on cvxgrp:master.

Coverage decreased (-0.1%) to 80.276% when pulling abcd5079ea876079cfd37f37bb76020390dea290 on bstellato:master into ac7df0cd2c01b38f83c7fba1b543a15f83180ff4 on cvxgrp:master.

Thanks!


Error: Unhandled Exception: Unsupported operation: Isolate.packageConfig

From the source code below, it print "before theShelf.shelfRun" and "after theShelf.shelfRun" but didn't print anything inside theShelf.Handler init().
Note: compiled on windows using this command: flutter run -d windows
Source code:
  import 'package:shelf_plus/shelf_plus.dart' as theShelf;

  print("before theShelf.shelfRun");
  theShelf.shelfRun(init, defaultBindPort: 8080, defaultShared: false);
  print("after theShelf.shelfRun");

  theShelf.Handler init() {
    print("[1]");
    var app = theShelf.Router().plus;
    print("[2]");
    app.get('/', (theShelf.Request request) {
      print("[3]");
      File('thesis.pdf'); //-> not even here, so doesn't matter if the file exist at this moment
    });
    print("[4]");
    return app.call;
  }

Detailed error:
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Unsupported operation: Isolate.packageConfig
#0      Isolate.packageConfigSync (dart:isolate-patch/isolate_patch.dart:326:7)
#1      Isolate.packageConfig (dart:isolate-patch/isolate_patch.dart:319:25)
#2      _getPackagesFile (package:hotreloader/src/util/pub.dart:13:39)
#3      packagesFile (package:hotreloader/src/util/pub.dart:17:38)
#4      packagesFile (package:hotreloader/src/util/pub.dart)
#5      HotReloader._registerWatchers (package:hotreloader/hotreloader.dart:146:32)
#6      HotReloader.create (package:hotreloader/hotreloader.dart:110:22)

#7      withHotreload (package:shelf_hotreload/src/with_hotreload.dart:87:5)

flutter doctor:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.22.2, on Microsoft Windows [Version 10.0.22631.3880], locale en-US)
[✓] Windows Version (Installed version of Windows is version 10 or higher)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Chrome - develop for the web
[✓] Visual Studio - develop Windows apps (Visual Studio Build Tools 2022 17.8.3)
[✓] Android Studio (version 2021.3)
[✓] Android Studio (version 2023.2)
[✓] VS Code, 64-bit edition (version 1.87.1)
[✓] Connected device (3 available)
[✓] Network resources
• No issues found!
EDIT:
if I run it on android device connected to the windows laptop (command: flutter run --release), the error message is:
E/flutter (25473): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Bad state: Error: [pubspec.yaml] file not found in current directory.
E/flutter (25473): For hot code reloading to function properly, Dart needs to be run from the root of your project.
E/flutter (25473): #0      HotReloader.create (package:hotreloader/hotreloader.dart:96)
E/flutter (25473): #1      withHotreload (package:shelf_hotreload/src/with_hotreload.dart:87)
E/flutter (25473): #2      shelfRun (package:shelf_plus/src/shelf_run.dart:54)
E/flutter (25473): #3      _MyHomePageState.startServer (package:my_app_name/main.dart:293)
E/flutter (25473):
E/flutter (25473): #4      _MyHomePageState.androidWebview. (package:my_app_name/main.dart:457)
E/flutter (25473):

Hi @NiuBee-Newbie
It appears that the problem is caused by using the shelf_plus library in conjunction with flutter run. This library is intended to be run with dart run and not flutter run.
The error occurs because Isolate.packageConfig is an unsupported operation when executed within the Flutter environment caused by the hotreloader.
Please try running your code with dart run instead of flutter run. This should resolve the issue, as dart run is more compatible with libraries like shelf that are designed for pure Dart applications.

Hi @felixblaschke
Thanks for the very quick reply. I think I need to use flutter run command, because in the end I will build the installer / bundle using flutter command. So, I decide to build a simple web server using dart.io's HttpServer.
Thanks a lot for your help!


No siriussearch.sh in the docker -- quay.io/biocontainers/sirius-csifingerid:5.8.6--h3bb291f_0

Description of the bug
When I was testing the pipeline, siriussearch.sh can not be found in the docker image quay.io/biocontainers/sirius-csifingerid:5.8.6--h3bb291f_0. Instead, it can be found at metaboigniter/bin/siriussearch.sh.
Command used and terminal output
No response
Relevant files
No response
System information
No response

When use nextflow, the program is automatically mounted to the container

as @YoujiaMa said, these are customized scripts to prepare, run and parse SIRIUS. SIRIUS biocontainers are managed by SIRIUS developers, not us.


UVI Request

--- UVI JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from v4.9 to before v5.10.46",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=5d77dca82839ef016a93ad7acd7058b14d967752",
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=8729ec8a2238152a4afc212a331a6cd2c61aeeac"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "5d77dca82839ef016a93ad7acd7058b14d967752",
      "note": "introduced"
    },
    {
      "type": "commit",
      "value": "8729ec8a2238152a4afc212a331a6cd2c61aeeac",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "udp: fix race between close() and udp_abort()\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v5.10.46 by commit 8729ec8a2238152a4afc212a331a6cd2c61aeeac, it was introduced in version v4.9 by commit 5d77dca82839ef016a93ad7acd7058b14d967752. For more details please see the references link."
}
--- UVI JSON ---

This issue has been assigned UVI-2021-1000979


Switch default markdown renderer to kramdown for 5.x

See discussion in https://github.com/gollum/gollum/issues/907#issuecomment-289878076. When switching from github-markdown to kramdown as a default renderer, we set kramdown to github-markdown mode in order to respect as much old behavior as possible, and in order to make the tests pass. For 5.x and onward we will switch to kramdown's default behavior, which includes support for tables (and possibly other goodies).

Done in https://github.com/gollum/gollum-lib/pull/246


csv parser reports the same error infinitly

Probelm
embulk preview outputs the same error message infinitely
2023-11-09 19:58:05.915 +0900 [WARN] (0001:preview): Skipped line -:3 (Unexpected end of file in a quoted field.): 3,27559,2015-01-28 02:20:02,20150128,"Embulk ""csv""
2023-11-09 19:58:05.915 +0900 [WARN] (0001:preview): Skipped line -:3 (Unexpected end of file in a quoted field.): 3,27559,2015-01-28 02:20:02,20150128,"Embulk ""csv""
2023-11-09 19:58:05.915 +0900 [WARN] (0001:preview): Skipped line -:3 (Unexpected end of file in a quoted field.): 3,27559,2015-01-28 02:20:02,20150128,"Embulk ""csv""
2023-11-09 19:58:05.915 +0900 [WARN] (0001:preview): Skipped line -:3 (Unexpected end of file in a quoted field.): 3,27559,2015-01-28 02:20:02,20150128,"Embulk ""csv""
2023-11-09 19:58:05.915 +0900 [WARN] (0001:preview): Skipped line -:3 (Unexpected end of file in a quoted field.): 3,27559,2015-01-28 02:20:02,20150128,"Embulk ""csv""

Reproduce steps

run embulk example hoge
run gzip -d hoge/csv/sample_01.csv.gz
run embulk guess hoge/seed.yml -o config.yml
add preview_sample_buffer_bytes: 180 to the configuration file in exec part.
run embulk preview config.yml

cat config.yml
exec:
  preview_sample_buffer_bytes: 180 # <-- Add here here here
in:
  type: file
  path_prefix: csv/sample_
  parser:
    charset: UTF-8
    newline: LF
    type: csv
    delimiter: ','
    quote: '"'
    escape: '"'
    null_string: 'NULL'
    trim_if_not_quoted: false
    skip_header_lines: 1
    allow_extra_columns: false
    allow_optional_columns: false
    columns:
    - {name: id, type: long}
    - {name: account, type: long}
    - {name: time, type: timestamp, format: '%Y-%m-%d %H:%M:%S'}
    - {name: purchase, type: timestamp, format: '%Y%m%d'}
    - {name: comment, type: string}
out: {type: stdout}

This configuration reads a sample data 180 bytes.
The data doesn't end the quote character ".
As a result, It outputs the error 2023-11-09 20:10:53.693 +0900 [WARN] (0001:preview): Skipped line -:3 (Unexpected end of file in a quoted field.): 3,27559,2015-01-28 02:20:02,20150128,"Embulk ""csv"" infinitely.
environment

OS version: macOS 13.6.1
Java version: 1.8.0_362
Embulk version: 0.11.1

0.9.25
2023-11-09 21:04:25.931 +0900: Embulk v0.9.25
2023-11-09 21:04:26.518 +0900 [WARN] (main): DEPRECATION: JRuby org.jruby.embed.ScriptingContainer is directly injected.
2023-11-09 21:04:27.769 +0900 [INFO] (main): Gem's home and path are set by default: "/home/arch/.embulk/lib/gems"
2023-11-09 21:04:28.189 +0900 [INFO] (main): Started Embulk v0.9.25
2023-11-09 21:04:28.250 +0900 [INFO] (0001:preview): Listing local files at directory '/tmp/hoge/csv' filtering filename by prefix 'sample_'
2023-11-09 21:04:28.250 +0900 [INFO] (0001:preview): "follow_symlinks" is set false. Note that symbolic links to directories are skipped.
2023-11-09 21:04:28.251 +0900 [INFO] (0001:preview): Loading files [/tmp/hoge/csv/sample_01.csv]
2023-11-09 21:04:28.256 +0900 [INFO] (0001:preview): Try to read 180 bytes from input source
2023-11-09 21:04:28.320 +0900 [WARN] (0001:preview): Skipped line -:4 (Unexpected end of line during parsing a quoted value): 3,27559,2015-01-28 02:20:02,20150128,"Embulk ""csv""
+---------+--------------+-------------------------+-------------------------+----------------+
| id:long | account:long |          time:timestamp |      purchase:timestamp | comment:string |
+---------+--------------+-------------------------+-------------------------+----------------+
|       1 |       32,864 | 2015-01-27 19:23:49 UTC | 2015-01-27 00:00:00 UTC |         embulk |
|       2 |       14,824 | 2015-01-27 19:01:23 UTC | 2015-01-27 00:00:00 UTC |   embulk jruby |
+---------+--------------+-------------------------+-------------------------+----------------+


ObjC version would be handy!

ObjC version would be handy!

Would be nice.

Not working with Obj-C anymore, so I will not make an update


HtoD takes 2.5x longer than D2H

I'm noticing that HtoD copies are taking significantly longer than DtoH.
IE, doing sess.run(gpu_var) vs sess.run(assign_gpu_var, feed_dict={gpu_var.initial_value: arr})
100MB tensor takes 8ms on V100 to fetch (12.5GB/sec), but 21.67ms to feed (4.5 GB/sec)
Benchmark
https://github.com/diux-dev/cluster/blob/db10c890530e7ded9e4a933596803e3ae0de1db0/yuxin_numpy/square_minimize_cpu_pipeline.py
Is there a way to make it faster? (something to do with memory pinning?)

TensorFlow:
version: 1.5.0
git_version: v1.5.0-0-g37aa430d84
https://github.com/tensorflow/tensorflow/commit/37aa430d84

cc @zheng-xq

https://wolfr.am/sEh9TuuR

H2D seems to take expected time when it's done from TensorFlow CPU variable (8ms instead of 20ms), so I suspected memory pinning.
I tried creating page-locked numpy array using PyCUDA (code) but it made no difference. I wonder if TensorFlow is smart enough to check if incoming numpy arrays are page-locked already, or if memory->page-locked memory is happening regardless
  import pycuda.driver as drv
  drv.init()
  print("%d device(s) found." % drv.Device.count())
  current_dev = drv.Device(0) #device we are working on
  ctx = current_dev.make_context() #make a working context
  ctx.push()
  np_array = drv.pagelocked_zeros((args.dim,), dtype=np.float32)
  ...
  sess.run(params.initializer, feed_dict={params.initial_value:np_array})

TensorFlow has its heuristics to determine whether a host memory should be page locked or not. Variables or any op that will be sent to device automatically gets page locked memory.
However, I don't think the heuristics treats memory feeds as page locked. For high-performance models, it is recommended to go through a reader-op, instead of feeding a large amount of data.

@zheng-xq the application here is setting network parameters rather than reading data. Parameters come from external application (Ray)  and the goal is to get those values into corresponding TensorFlow parameter variables as fast as possible (cc @mrry)

OK, I suspect it actually recognizes numpy arrays to be page-locked. I tried fetching GPU tensor as numpy, writing my own data into that numpy array, and feeding it back, and it's about 1.8x faster than a regular 64-byte aligned numpy array
tf_numpy_benchmark.py
python tf_numpy_benchmark.py --allocator=numpy --benchmark=feed_gpu_variable
feed_gpu_variable             :   1.5 GB/sec, min: 65.37, median: 70.27, mean: 69.33

python tf_numpy_benchmark.py --allocator=tf --benchmark=feed_gpu_variable
feed_gpu_variable             :   5.4 GB/sec, min: 18.52, median: 20.10, mean: 20.23

python tf_numpy_benchmark.py --allocator=tfgpu --benchmark=feed_gpu_variable
feed_gpu_variable             :  10.1 GB/sec, min:  9.89, median:  9.94, mean:  9.97

BTW, PyTorch doesn't seem to have this limitation, I can take a regular numpy array, and load it onto GPU as fast as numpy array in page-locked memory. Meanwhile TensorFlow gets
benchmark v2
python tf_numpy_benchmark.py --allocator=tfgpu --benchmark=pytorchgpu_from_numpy
pytorch_from_numpy            :  11.1 GB/sec, min:  9.05, median:  9.09, mean:  9.09

python tf_numpy_benchmark.py --allocator=numpy --benchmark=pytorchgpu_from_numpy
pytorch_from_numpy            :   7.8 GB/sec, min: 12.78, median: 12.85, mean: 12.87

To summarize, getting numpy array onto GPU memory is about 4x faster in PyTorch than in TensorFlow
python tf_numpy_benchmark.py --benchmark=pytorchgpu_from_numpy --allocator=numpy --num-iters=101
pytorch_from_numpy            :   8.1 GB/sec, min: 12.34, median: 12.52, mean: 12.53

python tf_numpy_benchmark.py --benchmark=feed_gpu_tensor --allocator=numpy --num-iters=101
feed_gpu_tensor               :   1.8 GB/sec, min: 56.98, median: 68.01, mean: 67.06

TensorFlow H2D becomes much faster if I enable tcmalloc.
sudo apt-get install -y google-perftools
export LD_PRELOAD="/usr/lib/libtcmalloc.so.4"
python tf_numpy_benchmark.py --benchmark=feed_gpu_tensor --allocator=numpy --num-iters=51
feed_gpu_tensor               :   7.9 GB/sec, min: 12.73, median: 13.07, mean: 13.00

Theory -- something in TensorFlow is sensitive to memory properties (posix_memalign flags?), and triggers an additional CPU memory copy before calling cudaMemCopyAsync. Hard to check because enabling cpu profiler also makes the slowness disappear, classical heisenbug


Feature Request: Download a reel thumbnail

Just like the title says: do you think it's possible to add an option to download thumbnails from reels? Some people use unique pictures for them.

Hello, is that what you mean? The latest version already supports this.

Oh, okay, then I'm closing the issue, I didn't notice :)


Enabling secrets manager rotation with a lambda fails

moto-version: 4.2.9
Problem: Lambda is created, but when assinging the Lambda ARN to the secret for secret rotation , the lambda arn is not found.
There are other unit tests that find the secret, so the mock_secretmanager works fine, however it is the mock_lambda that cannot be found after setup.
Error: botocore.errorfactory.ResourceNotFoundException: An error occurred (ResourceNotFoundException) when calling the RotateSecret operation: Resource not found for ARN 'arn:aws:lambda:us-east-1:123456789012:function:rotationlambda'.
Code:
Actual Code
import boto3
from botocore.exceptions import ClientError
import os

client = boto3.client(
    service_name="secretsmanager", region_name=os.getenv("AWS_REGION", "eu-west-1")
)

def _enable_secret_rotation(
    secret_arn: str,
    secret_rotation_arn: str,
    rotation_in_days: str,
):
    client.rotate_secret(
        SecretId=secret_arn,
        RotationLambdaARN=secret_rotation_arn,
        RotationRules={"AutomaticallyAfterDays": rotation_in_days},
        RotateImmediately=False,
    )

Unit Test file
import json
import unittest

import boto3
from moto import mock_iam, mock_lambda, mock_secretsmanager

from secretsmanagerutil import (
    _enable_secret_rotation
)

@mock_secretsmanager
@mock_iam
@mock_lambda
class TestUtilitiesAWSSecretsManager(unittest.TestCase):
    def setUp(self):
        self.mock_secretsmanager = mock_secretsmanager()
        self.mock_secretsmanager.start()

        self.mock_lambda = mock_lambda()
        self.mock_lambda.start()

        self.mock_iam = mock_iam()
        self.mock_iam.start()

        self.existing_secret_value_string = json.dumps({"foo": "bar"})
        response = client.create_secret(
            Name="testsecret",
            Description="This is a test secret",
            SecretString=json.dumps({"foo": "bar"}),
        )

        self.existing_secret = response["ARN"]

        role_client = boto3.client("iam")
        response = role_client.create_role(
            RoleName="test-role",
            AssumeRolePolicyDocument=json.dumps(
                {
                    "Version": "2012-10-17",
                    "Statement": [
                        {
                            "Effect": "Allow",
                            "Principal": {"Service": "lambda.amazonaws.com"},
                            "Action": "sts:AssumeRole",
                        }
                    ],
                }
            ),
        )

        self.lambda_role_arn = role_client.get_role(RoleName="test-role")["Role"]["Arn"]

        lambda_client = boto3.client("lambda", region_name="us-east-1")
        response = lambda_client.create_function(
            FunctionName="rotationlambda",
            Role=self.lambda_role_arn,
            Code={"ImageUri": "randomuri"},
        )
        self.lambda_arn = response["FunctionArn"]

    def tearDown(self) -> None:
        self.mock_iam.stop()
        self.mock_lambda.start()
        self.mock_secretsmanager.stop()
        return super().tearDown()

    def test__enable_secret_rotation(self):
        lambda_arn = self.lambda_arn

        _enable_secret_rotation(
            rotation_in_days=30,
            secret_rotation_arn=lambda_arn,
            secret_arn=self.existing_secret,
        )

        secret_info = client.describe_secret(SecretId=self.existing_secret)

        self.assertEqual(lambda_arn, secret_info["RotationLambdaARN"])

Hi @dwardu89, the SecretsManager is created in eu-west-1, and the Lambda is created in us-east-1. Shouldn't that be the same region?
Of does AWS allow you to rotate a secret using a Lambda in another region?

@bblommers i was under the assumoption that even though i have the client set like that, moto would override because it gets mocked?

@dwardu89 Moto intercepts the actual HTTP request that gets send, so we also have access to the region.
Internally we have separate data stores for every region, so our behaviour can mimick AWS as closely as possible. We allow resources with the same name if in different regions, but also throw errors when trying to read resources that only exist in a different region - just like AWS.

makes sense, i've solved it by removing the aws region check, and ill set the AWS_REGION further up not in the codebase.


Add the SignedOutCallbackRedirect event for OIDC

#942 Back-filling an event we couldn't add before due to interface breaking change issues. The event interface was removed in 2.0 so we can add the events we were missing.
@PinpointTownes

@Tratcher,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot


Remove the warning when the compactType is set to null

I'm closing this PR because it was opened long time ago and it may be obsolete now.


Concept docs for "Headers" (closes #611)

I've skimmed through it and it looks good. Will comment a bit more later.
How is it presented on the Exercism website? What's the difference between about.md and introduction.md?
I wonder if we should go into more details on how C++ files are handled by the build system, compiler and linker. It's perhaps too advanced but would help explain why the use of header files is necessary, even if it's a bit legacy...

How is it presented on the Exercism website? What's the difference between about.md and introduction.md?

about.md is shown after you completed the concept. It's like a summary after you have solved everything.
introduction.md is shown on first look and also for every exercise. That uses the concept.

I wonder if we should go into more details on how C++ files are handled by the build system, compiler and linker. It's perhaps too advanced but would help explain why the use of header files is necessary, even if it's a bit legacy...
I wondered about that as well and think we should put it in the docs of the track. It would be useful to talk about the phases of building, but we have no exercises on this and I don't know how we would achieve good results to do any.


[Proposal] KeyPath Dynamic Member Lookup

This proposal attempts to enable stronger-typed version of
the dynamic member lookup by extending functionality of an
existing @dynamicMemberLookup attribute with key path based variants.

@DougGregor Should I merge? (just double-checking)

The Core Team will assign a review manager, who will handle the merge. Thanks!


Converted to Swift 3 beta 6

Done the bare minimum to be able to use Static from Swift 3 with Xcode 8 beta 6.

We've addressed our Swift 3 plans in #84.
tl;dr: We've chosen not to change our master branch to be Swift 3 until Xcode 8 and Swift 3 are GM.
Thanks for the PR though!

@eliperkins ahh, haven't seen that one. Thanks! I think it would be beneficial to have a swift3 branch for people that want to get unblocked while waiting for the GM though.

GM is here :)


Opentelemetry vulnerability CVE-2024-36129

The library go.opentelemetry.io/collector/config/confighttp version 0.100.0 has a vulnerability related to CVE-2024-36129.
Any plans to patch this soon?

Hey @mervin-tan-vistra and @masudchowdhury,
This should have been fixed upstream in https://github.com/DataDog/datadog-agent/pull/26943
We will release a new version including this changes soon.

hiya, can this image be pushed https://gallery.ecr.aws/datadog/lambda-extension?

hiya, can this image be pushed to gallery.ecr.aws/datadog/lambda-extension?

Hey @bruvio, it usually takes a day for the images to be pushed to ecr since we have a job do it for us which runs nightly. If you don't see it available at this time tomorrow, reach out to us again here and we'll take a closer look.

Hey @bruvio,
This should be available now here.


no-std support broken in 0.5.0

This issue has the same title as https://github.com/paritytech/libsecp256k1/issues/68, but the problem isn't the same.
As of version 0.5.0/core-0.2.0, recently published on crates.io, compiling with default-feature = false leads to compilation errors in the core:
error[E0412]: cannot find type `Vec` in this scope
  --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:19:19
   |
19 |     let mut prej: Vec<Jacobian> = Vec::with_capacity(pre.len());
   |                   ^^^ not found in this scope
   |
help: consider importing one of these items
   |
1  | use alloc::vec::Vec;
   |
1  | use crate::ecmult::vec::Vec;
   |

error[E0433]: failed to resolve: use of undeclared type `Vec`
  --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:19:35
   |
19 |     let mut prej: Vec<Jacobian> = Vec::with_capacity(pre.len());
   |                                   ^^^ not found in this scope
   |
help: consider importing one of these items
   |
1  | use alloc::vec::Vec;
   |
1  | use crate::ecmult::vec::Vec;
   |

error[E0412]: cannot find type `Vec` in this scope
  --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:23:19
   |
23 |     let mut prea: Vec<Affine> = Vec::with_capacity(pre.len());
   |                   ^^^ not found in this scope
   |
help: consider importing one of these items
   |
1  | use alloc::vec::Vec;
   |
1  | use crate::ecmult::vec::Vec;
   |

error[E0433]: failed to resolve: use of undeclared type `Vec`
  --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:23:33
   |
23 |     let mut prea: Vec<Affine> = Vec::with_capacity(pre.len());
   |                                 ^^^ not found in this scope
   |
help: consider importing one of these items
   |
1  | use alloc::vec::Vec;
   |
1  | use crate::ecmult::vec::Vec;
   |

error[E0412]: cannot find type `Vec` in this scope
  --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:27:17
   |
27 |     let mut zr: Vec<Field> = Vec::with_capacity(pre.len());
   |                 ^^^ not found in this scope
   |
help: consider importing one of these items
   |
1  | use alloc::vec::Vec;
   |
1  | use crate::ecmult::vec::Vec;
   |

error[E0433]: failed to resolve: use of undeclared type `Vec`
  --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:27:30
   |
27 |     let mut zr: Vec<Field> = Vec::with_capacity(pre.len());
   |                              ^^^ not found in this scope
   |
help: consider importing one of these items
   |
1  | use alloc::vec::Vec;
   |
1  | use crate::ecmult::vec::Vec;
   |

error[E0412]: cannot find type `Box` in this scope
  --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:62:27
   |
62 |     pub fn new_boxed() -> Box<Self> {
   |                           ^^^ not found in this scope
   |
help: consider importing one of these items
   |
1  | use alloc::prelude::v1::Box;
   |
1  | use crate::ecmult::vec::Box;
   |

error[E0433]: failed to resolve: use of undeclared type `Box`
  --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:69:28
   |
69 |             let mut this = Box::from_raw(ptr);
   |                            ^^^ not found in this scope
   |
help: consider importing one of these items
   |
1  | use alloc::prelude::v1::Box;
   |
1  | use crate::ecmult::vec::Box;
   |

error[E0412]: cannot find type `Vec` in this scope
  --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:88:43
   |
88 | pub fn set_all_gej_var(a: &[Jacobian]) -> Vec<Affine> {
   |                                           ^^^ not found in this scope
   |
help: consider importing one of these items
   |
1  | use alloc::vec::Vec;
   |
1  | use crate::ecmult::vec::Vec;
   |

error[E0412]: cannot find type `Vec` in this scope
  --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:89:17
   |
89 |     let mut az: Vec<Field> = Vec::with_capacity(a.len());
   |                 ^^^ not found in this scope
   |
help: consider importing one of these items
   |
1  | use alloc::vec::Vec;
   |
1  | use crate::ecmult::vec::Vec;
   |

error[E0433]: failed to resolve: use of undeclared type `Vec`
  --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:89:30
   |
89 |     let mut az: Vec<Field> = Vec::with_capacity(a.len());
   |                              ^^^ not found in this scope
   |
help: consider importing one of these items
   |
1  | use alloc::vec::Vec;
   |
1  | use crate::ecmult::vec::Vec;
   |

error[E0412]: cannot find type `Vec` in this scope
  --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:95:14
   |
95 |     let azi: Vec<Field> = inv_all_var(&az);
   |              ^^^ not found in this scope
   |
help: consider importing one of these items
   |
1  | use alloc::vec::Vec;
   |
1  | use crate::ecmult::vec::Vec;
   |

error[E0412]: cannot find type `Vec` in this scope
   --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:114:41
    |
114 | pub fn inv_all_var(fields: &[Field]) -> Vec<Field> {
    |                                         ^^^ not found in this scope
    |
help: consider importing one of these items
    |
1   | use alloc::vec::Vec;
    |
1   | use crate::ecmult::vec::Vec;
    |

error[E0433]: failed to resolve: use of undeclared type `Vec`
   --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:116:16
    |
116 |         return Vec::new();
    |                ^^^ not found in this scope
    |
help: consider importing one of these items
    |
1   | use alloc::vec::Vec;
    |
1   | use crate::ecmult::vec::Vec;
    |

error[E0433]: failed to resolve: use of undeclared type `Vec`
   --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:119:19
    |
119 |     let mut ret = Vec::with_capacity(fields.len());
    |                   ^^^ not found in this scope
    |
help: consider importing one of these items
    |
1   | use alloc::vec::Vec;
    |
1   | use crate::ecmult::vec::Vec;
    |

error[E0412]: cannot find type `Box` in this scope
   --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:187:27
    |
187 |     pub fn new_boxed() -> Box<Self> {
    |                           ^^^ not found in this scope
    |
help: consider importing one of these items
    |
1   | use alloc::prelude::v1::Box;
    |
1   | use crate::ecmult::vec::Box;
    |

error[E0433]: failed to resolve: use of undeclared type `Box`
   --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:194:28
    |
194 |             let mut this = Box::from_raw(ptr);
    |                            ^^^ not found in this scope
    |
help: consider importing one of these items
    |
1   | use alloc::prelude::v1::Box;
    |
1   | use crate::ecmult::vec::Box;
    |

error[E0412]: cannot find type `Vec` in this scope
   --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:226:24
    |
226 |         let mut precj: Vec<Jacobian> = Vec::with_capacity(1024);
    |                        ^^^ not found in this scope
    |
help: consider importing one of these items
    |
1   | use alloc::vec::Vec;
    |
1   | use crate::ecmult::vec::Vec;
    |

error[E0433]: failed to resolve: use of undeclared type `Vec`
   --> /home/pierre/.cargo/registry/src/github.com-1ecc6299db9ec823/libsecp256k1-core-0.2.0/src/ecmult.rs:226:40
    |
226 |         let mut precj: Vec<Jacobian> = Vec::with_capacity(1024);
    |                                        ^^^ not found in this scope
    |
help: consider importing one of these items
    |
1   | use alloc::vec::Vec;
    |
1   | use crate::ecmult::vec::Vec;
    |

error: aborting due to 19 previous errors

Some errors have detailed explanations: E0412, E0433.
For more information about an error, try `rustc --explain E0412`.
error: could not compile `libsecp256k1-core`

To reproduce, just add libsecp256k1 = { version = "0.5.0", default-features = false } as a dependency to a project.

Same issue here. Here's what cargo nono says:
libsecp256k1: FAILURE
  - Did not find a #![no_std] attribute or a simple conditional attribute like #[cfg_attr(not(feature = "std"), no_std)] in the crate source. Crate most likely doesn't support no_std without changes.
log: FAILURE

bump

Doing some investigation because I would like to move this forward as well.
I believe the issue came from the changes in https://github.com/paritytech/libsecp256k1/pull/41/files which make use of allocation (Vec and Box)
Would like to know what everyone else thinks. At first glance, it does not seem possible to feature-gate behind feature = "std" because the functions are used in the generators used in build.rs

#75 should resolve this issue.

I am experiencing this issue in 0.6.0 with:
libsecp256k1 = { version="0.6.0", default-features=false, features=["static-context"] }

std duplicate method exceptions are thrown noting:
the lang item is first defined in crate `std` (which `libsecp256k1_core` depends on)

@samkirton that's strange...I just tried again with static-context and could not reproduce this. Do you have another crate in your dependencies that is possibly enabling std for libsecp256k1_core?

The only other dependencies I have are:
rand = { version="0.7.3", optional = true }
sha2 = { version="0.9.5", default-features=false }

[features]
signing = ["rand", "libsecp256k1/hmac"]

where rand is turned on only for the signing feature

@samkirton I still can't reproduce your exact error message above, but I can reproduce a similar one when I use rand as you have in your dependencies. You might need to turn off default-features for rand if you're using no_std when the signing feature is enabled.

Signing requires hmac, which requires std, so rand is only ever used for std builds

Signing requires hmac, which requires std, so rand is only ever used for std builds.

Oh right, sorry.

@trevor-crypto I just tried to upgrade to 0.6.0 from 0.3.5 and getting std dependencies again. I guess it's expected based on your note above:

Signing requires hmac, which requires std, so rand is only ever used for std builds.

Does this mean that this crate no longer support signing with no_std? There must be a no_std version of hmac because 0.3.5 is depending on one.

This should be fixed now. Let me know if the error still exists.


changed docker_service.bridge validation to be String

fixing #593: changed validation of docker_service's bridge attribute to String (as this is not an ip, but a existing network bridge name)

Hi. I am an automated pull request bot named Curry. There are commits in this pull request whose authors are not yet authorized to contribute to Chef Software, Inc. projects or are using a non-GitHub verified email address. To become authorized to contribute, you will need to sign the Contributor License Agreement (CLA) as an individual or on behalf of your company. You can read more on Chef's blog.
GitHub Users Who Are Not Authorized To Contribute
The following GitHub users do not appear to have signed a CLA:

@hojerst

Please sign the CLA here.

Hi. Your friendly Curry bot here. Just letting you know that all commit authors have become authorized to contribute. I have added the "Signed CLA" label to this issue so it can easily be found in the future.


LARKKEY Outdoor Smart Outlet Plug with 2 Sockets

Product link:
https://www.amazon.com/gp/product/B07LGS6BS3/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&psc=1
I initially set this up as a MultiOutlet with the following in config.json:
{
"platform": "TuyaLan",
"devices": [
{
"name": "Patio",
"type": "MultiOutlet",
"manufacturer": "LARKKEY",
"model": "Outdoor Smart Outlet",
"id": "mydeviceid",
"key": "mydevicekey,
"outletCount": 2,
"ip": "mydeviceip"
}
Upon starting homebridge, I got:
[TuyaLan] Failed to discover Patio (mydeviceid) in time but will connect via mydeviceip.
[TuyaAccessory] Socket had a problem and will reconnect to Patio (Error: ERR_PING_TIMED_OUT)
[TuyaAccessory] Closed connection with Patio
[TuyaAccessory] Socket had a problem and will reconnect to Patio (Error: ERR_PING_TIMED_OUT)
I changed config.json to SimpleLight and got this:
[TuyaLan] Failed to discover Patio (mydeviceid) in time but will connect via mydeviceip.
[TuyaLan] Patio has a different type (7 vs 5)
[TuyaLan] Unregistering Patio
[TuyaLan] Connected to Patio
[TuyaAccessory] Socket had a problem and will reconnect to Patio (Error: ERR_PING_TIMED_OUT)
[TuyaAccessory] Closed connection with Patio
[TuyaAccessory] Socket had a problem and will reconnect to Patio (Error: ERR_PING_TIMED_OUT)
[TuyaAccessory] Closed connection with Patio
Hope this helps?  Any ideas?  Thanks!

I guess this repository is no longer supported?  Is there a new tuya homebridge repository that's active?

Please give the latest rc release a shot by doing npm i -g homebridge-tuya-lan@rc. It includes logic to understand this newer API.
A known issue is that the current state is not reported by some devices; they however work fine as soon as you interact with them. I have reached out to Tuya for a solution.
The Setup Instructions have changed in case you need to obtain a fresh id and key.

Thanks for the response.  I installed the rc release and am now getting this:
[9/7/2019, 12:52:03 PM] [TuyaLan] Patio - identify
[9/7/2019, 12:52:05 PM] [TuyaLan] Patio - identify
[TuyaAccessory] Socket had a problem and will reconnect to Patio (Error: ERR_PING_TIMED_OUT)
[TuyaAccessory] Sending first query to Patio (3.3)
[TuyaAccessory] Socket had a problem and will reconnect to Patio (Error: ERR_PING_TIMED_OUT)
[TuyaAccessory] Sending first query to Patio (3.3)
[TuyaAccessory] Socket had a problem and will reconnect to Patio (Error: ERR_PING_TIMED_OUT)
My config.json has this device entry:
                "name": "Patio",
                "type": "MultiOutlet",
                "manufacturer": "LARKKEY",
                "model": "Outdoor Smart Outlet",
                "id": "0008XXXXdc4f22f3XXXX",
                "key": "7d9XXXX5206bXXXX",
                "outletCount": 2,
                "ip": "<IP_ADDRESS>"

If you have the latest rc, please add "pingTimeout": 3600 to your config to see if we can get rid of the ping timeouts. The rc has been changing frequently. Please get rid of the ip from your config while you are at it.
After you restart homebridge:

Look for anything just after Sending first query to Patio (3.3)
Does the Home app show them with an exclamation mark, indicating they are unresponsive?
Using the button on the device, turn it on or off. Do you see any messages in the log?

Looks like manually switching it registered it.  Appears to be working now.  Thanks so much for your help!
I'm still getting this intermittently, but it registers on HomeKit and responds when switching on/off:
[TuyaAccessory] Socket had a problem and will reconnect to Patio (ECONNRESET)
[TuyaAccessory] Sending first query to Patio (3.3)

This is what I see after:
[TuyaAccessory] Socket had a problem and will reconnect to Patio (ECONNRESET)

Yes, but somehow I got them to actually register, but turning on/off does nothing.  I'm not sure how I got the exclamation points to go away.

No messages when turning on/off at device.

I did, however run the tuya app while homebridge was running and the sockets register the correct status when turning on/off with the tuya app.  Using Home app does nothing other than change the status while not affecting the outlet at all.

Can you post 15-20 lines of sequential logs? If you are on macOS or linux, use tail and | grep Tuya. The sequence of messages (preferably with timestamps) will let me draw an accurate picture of this; what I need to see would start with Discovered and at least 45 seconds after it.
Also, from our conversation, I haven't seen anything to give me confidence that we have the correct key. Are you using the key from May or did you get a chance to get the key with the new instructions?

Here's what I get with tail:
[9/7/2019, 3:50:23 PM] [TuyaLan] Discovered Patio (00087488dc4f22f3403d) identified as MultiOutlet (3.3)
[9/7/2019, 3:50:23 PM] [TuyaLan] Connected to Patio
[TuyaAccessory] Sending first query to Patio (3.3)
[TuyaAccessory] Socket had a problem and will reconnect to Patio (ECONNRESET)
[TuyaAccessory] Sending first query to Patio (3.3)
I used the new instructions and got the same key I was using before.

I couldn't find the 2-outlet one on Amazon to buy and check. Did you buy it from Amazon yourself?

Yes, and the link I provided in the original post is the same that's shown in my order history.  Apparently links to a different product now.

If you don't have a Mac, or don't think you can help with some debugging, I will go ahead an order one. Lemme know please.

I have a Mac and am willing to help debug, but I only have rudimentary terminal knowledge. You’ll have to be patient and give super simple instructions that I’ll be able to follow.

Hehehehe. Of course.

@socalcal, before you do the sniffing, please update to the latest rc using npm i -g homebridge-tuya-lan@rc. Someone sent me their packet logs which resulted in changes that fixed their similar problem; it might solve yours too.

I totally missed the message with the instructions in it, but I just installed the rc and it works!  Thanks so much!

That's great news. Best of luck.

@socalcal I have 2 LED Larkkey lights that I want to get into Homebridge. Would you be interested in getting this working also?

I don't have a need, but if you're looking for assistance, you should probably send a message to AMoo-Miki or open a new issue.