Test Runner Viewlet with an Extension API to plug into [Enhancement Request]

In response to Erich Gamma's tweet @Krzysztof-Cieslak
A test runner viewlet/sidebar with a pluggable API would be a great addition to vscode.
The viewlet should include visual indications of

the progress of completed tests out of the set of tests being run
visual indicators or icons showing basic tests states at the least
not run |  success | failure | ignored/skipped

The test runner should be able to provide a set of sorting categories and repopulate the viewlet based on the users selection

A query box with the ability to filter the tests based on the names shown in the runner's list at a minimum, with the ability for the underlying runner to populate a set of query filters.

Instead of the VS style of collapsing categories

I think the vscode style used in the debugger viewlet is much nicer :smile:

A button could be used to select which test runner you want to use out of the test runner extensions that have been installed

But a dropdown menu would work too

A side button to open a menu could enable the active test runner to populate it with any additional commands specific to its functionality

Some other functionality points -

When an individual test is selected the result could be rendered in the output panel
An icon/button to run all tests
The ability to highlight/select a set of tests and only run those tests
A basic set of run options, which individual runners might be able to extend

Tests outputs can contain links to specific points in source code
Debugging specific tests (would be awesome, but understandable if this is too difficult for an initial implementation)
Associate test runner extensions with specific languages?
Test playlists (would be nice, but not especially important)
Ability to specify a task/trigger that will repopulate the viewlet's list of tests
Dropdown menu that the test runner can population with platform/environment/runtime configurations to use during test execution.

Few ideas, all just IMHO, may be totally wrong ;)

I believe that test adapters should have their separate extension point just like debuggers.
Also creating nice, lightweight UI (as described above) would be really great, there is enough place on left panel for one more button ;)

From the API point of view I think we would need:

Function which returns list of tests for current workspace
Define when the test list is repopulated (for some frameworks it can be really dynamic, other requires file saving or even recompilation... all depending on tool and language)
Function which takes list of tests and returns their results
I guess result should have some kind of standard category - Passed, Failed, Not Run, Ignored

Buttons to run all tests / selected tests / single test / previously not passed  tests etc. would all execute function 3. just with appropriate list of tests based on chosen command, selection in UI, and previous result category.

A basic set of run options, which individual runners might be able to extend

Basic run options could be easily handled by VSCode (as I've described earlier). Getting API for providing custom options / list could be nice but it's definitely not necessary for initial implementation

Debugging specific tests (would be awesome, but understandable if this is too difficult for an initial implementation)

It's possible to execute start debugging using vscode.startDebug it's just matter of defining which debugger should be started and with what configuration
Open question, should it be defined by test adapter creator or by end user?

Associate test runner extensions with specific languages?

I'd say so - probably just for sake of lazy extension activation. If language supported by test adapter appears in current workspace active test runner.

Ability to specify a task/trigger that will repopulate the viewlet's list of tests

That's actually really interesting case, for most APIs right now VSCode decide when to recalculate things and call implemented API again.

Dropdown menu that the test runner can population with platform/environment/runtime configurations to use during test execution.

I'd like to see something similar to debug case where we have dropdown to select different debugging configurations - different configs specified in launch.json (in case of debuggers, we could have similar file for test adapters)

As an alternative, I find TestDriven's unit-testing experience much better than that of built-in VS or as offered by R#. Personally, I don't need a separate test browser, nor a new output window. I'm already looking at the code and if the plugin can receive which line the cursor is on then it can tell wether I want to run the whole suite or the specific test. For everything else there's always a task and since it can also write to the output window the transition is seamless.

Thanks for the input and it is great to see the different perspectives.
First, test running is an inner development loop activity and is important and fits into Code. However, I was hoping for something more lightweight than a full test explorer. Many test runners like mocha work fine on the command line in the console. Also many of them support continuous test running by watching the files. Something we would not want to replicate.
Rather than starting with the maximum number of features that could be added say to a test explorer, what would be the minimum features to still provide a good developer experience. e.g., navigate from failure traces to the code, seeing an indication of the number of the test failures.
Consider the test runners you are using today, would a command line version for them be sufficient?

@egamma  I wanted to make a strong opening bid :wink:
At a minimum level - navigation to code, the ability to select a subset of tests to run, simple text match based filtering, and showing which tests succeeded and failed.

I guess I would like to see following set of feature:

Having some kind of list of tests in workspace and navigating to them
Ability to run selected test / set of tests / failed-previously etc.
Navigation from error trace to code
Having some indicator how many tests are detected, how many passed in previous run, how many failed etc.

Also, having test viewlet, wouldn't break current command line based workflows, so that's just added value :wink:

Just adding how some extensions are now supporting unit testing.
@alexandrudima fyi
Python

Go

Test at cursor

If the cursor is inside a test function, then the test function is run
Output window opens and test results are shown in a channel “GoTests”

Test File

All the test functions in the file open in active editor are run
Output window opens and test results are shown in a channel “GoTests”

Test Package

All the tests in the package to which the file open in active editor belongs are run
Output window opens and test results are shown in a channel “GoTests”

Test Previous

Among the previous 3 commands, whichever was last run is run again
Output window opens and test results are shown in a channel “GoTests”

Generate test skeleton at cursor/file/package

Creates test file (hello_test.go for hello.go) if not exists
Updates the said test file with test skeletons using gotests for the function at cursor/ all function is the file/ all functions in the package

Test coverage in current package

@egamma if several extensions are starting to implement a common set of features to provide functionality that users clearly want, all of which falls within a set of reoccurring abstract constructs, it seems like the perfect opportunity for vscode to provide a standard API to facilitate this so every language extension doesn't need to roll a bespoke implementation 😸

@cloudRoutine yes, this is exactly the plan.

Any update on this..?

It would be useful if the .runsettings file functionality could be included.

A extension that can access the Activity Bar could solve the issue.
Is it possible to script activity bar items i wasn't able to find it?

This is the feature that would be the biggest improvement for me in my VS Code experience. Right now I'm running tests with a command-line runner and manually finding the failing test by a Ctrl+F search on the test names. Having a way to jump to the failing test, and (as a bonus) to see the console output of that specific test in the test output window, would improve my VS Code experience quite a bit.
So I'll echo the "Any update on this?" request from last December. This is my most-wished-for feature in VS Code right now, and I think testing is worthy of its own dedicated icon on the Activity Bar, with shortcut Ctrl/Cmd + Shift + T. (Or fallback shortcut Ctrl/Cmd + Shift + U, for "Unit testing", if Ctrl/Cmd + Shift + T is already taken).

Please please please

The VS test runner is the most awful thing I've ever seen. Please don't even look at it for ideas. Look at Rider's (or R#) test explorer and session runner instead, it's a piece of art, really.

It's almost a year now. Is there any news on this? Maybe just some comment like "It's on the roadmap for 201x" or "No, we don't want to implement this now, because..."?

@vasily-kirichenko What about posting some screenshots here so it's easier to follow your suggestion.

@realvictorprm are u gonna implement it? if so, install rider and play with the test runner.

Based on lack of any updates from the maintainers, it feels like the community has to drive it, if we want to have it any time soon.
Obviously enough, we want a common infrastructure in VSCode, and adapters to different platforms/tools/frameworks.
This is quite a big task though. I'd prefer moving step by step, and not trying to provide a complete solution right off.
I personally need integrated unit testing experience for .NET Core C# projects, so I'm thinking of these tactical steps:

Implement a monolith C# test runner extension for VSCode, integrated with OmniSharp. Learn the lessons.
Once C# test runner works, it can be a good starting point for design and extraction of common test runner API. Here JavaScript in browser/Node and other platforms/frameworks need to be taken into account.
Transition the monolith C# test runner into the defined architecture. Learn/adjust as necessary.
Propose a PR to VSCode for the common test adapter infrastructure and API.

This feature is still on our roadmap and we want to better support test running to complete the inner loop of development.
Today, there are already many extensions that support test running. Our plan is to start by analyzing these extensions and then to come up with APIs and UIs that unifies the experience for the user and the test runner implementors.
It is too early to tell whether this will be a general test adapter API or just a smaller building block like a TestFailure. A TestFailure represents the result from a test runner and this would be similar to a Diagnostic which represents errors/warnings from a compiler.  Having a TestFailures abstraction allows us to render test results in a common way in VS Code, e.g. in a Test Results view or the status bar can show the current number of failed tests.

Please don't rely too much on the existing testing extensions - they're a poor mans set of test runners. Check out ReSharpers support for unit testing. The lack of a test explorer leaves a painful hole when coding with vscode https://www.jetbrains.com/resharper/features/unit_testing.html

.NET Core Test Explorer for Visual Studio Code

A work in progress test extension is published here: https://marketplace.visualstudio.com/items?itemName=gfrancischini.vscode-vstest-framework
The idea is to reuse the vstest framework to be able to run any test framework that run inside Visual Studio Test Explorer.

In https://github.com/Microsoft/vscode/issues/9505#issuecomment-311880580, @egamma wrote:

This feature is still on our roadmap and we want to better support test running to complete the inner loop of development.

However, it no longer appears on the 2018 roadmap. Has it been dropped from consideration? Should extensions start implementing their own ad-hoc test views, rather than wait for VS Code to provide this? Or is it still on the roadmap, but the wiki just hasn't been brought up-to-date yet?

@rmunn we did an investigation of the existing Test Running extensions during the last planning period (we should have updated the issue with the findings sorry). We have discovered a lot of creativity with regard to Test Running extensions. After this investigation we came to the conclusion that trying to come up with some basic Test Running infrastructure in the VS Code core would not add a lot of value and could be more constraining. Finally our users seem to be happy with the current test extensions. For this reason we did not add it to the 2018 roadmap. This doesn´t mean that it will never come back and we will continue watching and listening in this space.

This is kinda disappointing for two reasons:

There will be no consistency for test running across languages (something that VS Code seems to have worked hard to maintain for other functionality)
There's no nice existing place to render tests in which means doing it ourselves we have to pick the best compromise (eg. between putting tests into the explorer pane, the output pane, rendering a custom html view in a "file" tab)

I know Code doesn't want to be an IDE, but tests seems like one of the most important things that most projects don't do well (software complexity is only increasing and quality seems to be decreasing). Having good built-in test functionality could make a real difference.

Hi, we need this!
The existing extensions are a desperation attempt to fix something you should have fixed a long time ago. There needs to be a unified place where I can see all the tests from different plugins for test frameworks. Then a test framework maintainer can just provide a plugin and the test Tab could show an aggregation. Now there is no place where I can see both .net and js tests at the same place. We are definitely not happy with them. This feature seems like a no-brainer and not too difficult to engineer.

If as @egamma points out, there's a lot of variation between the different test runners, then it might make some sense to hold off on implementing this API for a while.
However, I'd like to request one feature be implemented now, at least: adding a new sidebar view (and icon) for unit testing extensions to use. Currently the API only allows extensions to add tree views to the explorer or debug sidebars, which means that unit test extensions like https://github.com/gfrancischini/vscode-unit-test have to either use the debug sidebar (which doesn't feel appropriate) or the explorer sidebar (which is already overloaded, with three panels — open editors, folder view, and bookmarks — opened by default, and that's not counting any other panels that other extensions might add). I'd much rather see a sidebar view, with its own icon, made available for unit test extensions to use. Here's a mockup of what it could look like:

The icon could, of course, be anything: I just picked something that seemed appropriate (in this case, an icon from https://icons8.com/icon/6258/checked with a free license).
As someone else has already mentioned in the thread, unit testing is one of the things that feels fundamental to the concept of "a text editor for programmers". I know you want to avoid sidebar-icon proliferation, but unit testing is one of the things that's so core to the coding experience that I believe it truly deserves its own sidebar icon.
General question: would you prefer me to open a new issue to track this "new sidebar icon for unit testing" idea, or should it be tracked here as a subset of this issue?

https://github.com/Microsoft/vscode/issues/43645 appears to be related to my request for a new sidebar icon for test runner extensions to use.

Sounds like a good start

If as @egamma points out, there's a lot of variation between the different test runners, then it might make some sense to hold off on implementing this API for a while.

Let's not confuse variation with inconsistency. Currently people are left to implement it themselves with no guidelines, so of course they'll all be different.
Visual Studio has a Test window which, while not perfect, has served many languages and frameworks reasonably well. VS Code has a good process for suggesting (and later implementing) proposed APIs to get feedback. I don't see why this wouldn't work well here. Propose something, and let all the people that want this (of which there are many) provide feedback if it won't fit their needs.

FYI: I have just published a Test Explorer extension that is trying to fill this gap. This extension can be used by other extensions (called Test Adapters) to show and run the tests for a particular testing framework. I have also published a Test Adapter extension for Mocha and I'm working on another one for Jasmine.
The feature set of these extensions is currently fairly basic but I intend to add more features in the coming months and hope that the community will add more adapters.

I guess I would like to see following set of feature:

Having some kind of list of tests in workspace and navigating to them
Ability to run selected test / set of tests / failed-previously etc.
Navigation from error trace to code
Having some indicator how many tests are detected, how many passed in previous run, how many failed etc.

Agreed, and I also find useful to have a "show output" option.

Will there be more news on this please?

We are starting to investigate this here 👉 https://github.com/microsoft/vscode/issues/107467

/duplicate of the linked issue

/duplicate of the linked issue


Disable _all for type

I'm trying to disable _all as outlined here in the ES docs . The following looks right to me but isn't being implemented when I create the index:
mappings dynamic: 'false', _all: {'enabled' => false} do
    ...
end

Mappings as json:
pry(main)> Item.mappings.to_json
=> "{\"item\":{\"dynamic\":\"false\",\"_all\":{\"enabled\":false},\"properties\":{ ... }}}"

Looks like I was mistaken. This seems to be working now.

Hi, what was the correct syntax? Can you leave it here for the Google visitors? :) Thanks!

Sure thing, the syntax in my original post worked:
mappings dynamic: 'false', _all: {'enabled' => false} do
   ...
end


added tests for various sharing-related template tags

A test for template tags related to sharing.
Testing
See above.
Review
@chosak @richaagarwal @higs4281 @willbarton
Checklist

[ ] Changes are limited to a single goal (no scope creep)
[ ] Code can be automatically merged (no conflicts)
[ ] Code follows the standards laid out in the front end playbook
[ ] Passes all existing automated tests
[ ] New functions include new tests
[ ] New functions are documented (with a description, list of inputs, and expected output)
[ ] Placeholder code is flagged
[ ] Visually tested in supported browsers and devices
[ ] Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)

I have to say that I don't understand why the test is failing above. It succeeds on my local install. I traced the path of the code down into the wagtail internals and it does what I expect; if this is different on the current server, then it must be because of a difference in the internals.

@grapesmoker Yes, it works for me locally too. I left a few comments, if those can be addressed I think this is ready to be merged in (pending whatever fixing needs to happen in travis, unrelated to your PR)

This test always failed for me locally when running tox, although not tox -e fast. The reason the test fails is because pages will only have a null URL if they aren't aligned to a site root, meaning that their url_path, e.g. path/to/page/ doesn't match any of the site root URLs, e.g. cfgov.
@richaagarwal @grapesmoker do these tests pass for you when running the full suite with tox?

@chosak Sorry, didn't try tox alone before. Doesn't work for me either.

@richaagarwal thanks for checking.
I think the way to get that test to work is to first delete all of the existing Site objects. That change will need to be contained to a single test, so that it doesn't break everything else. The best way to do this might be to change this test case from a unittest.TestCase to a django.test.TestCase, which isolates each test's changes to the DB (this would also remove the need for the specific tearDown method here which deletes the user).
@grapesmoker I'm happy to pair or try to make that change if you want.

Ok, so it looks like this works now. Sorry for being bad at Django tests :(

👍


Parallel backups from different hosts crash attic

Attic: debian package 0.13-1
The target is one shared archive for all hosts.
Backup is via local lan and ssh, except one host which uses local direct backup.
I want to run backups from several hosts via ssh to one backup host. Running those backups at the same time will crash attic:
Traceback (most recent call last):
File "/usr/bin/attic", line 3, in
main()
File "/usr/lib/python3/dist-packages/attic/archiver.py", line 715, in main
exit_code = archiver.run(sys.argv[1:])
File "/usr/lib/python3/dist-packages/attic/archiver.py", line 705, in run
return args.func(args)
File "/usr/lib/python3/dist-packages/attic/archiver.py", line 129, in do_create
archive.save()
File "/usr/lib/python3/dist-packages/attic/archive.py", line 196, in save
self.manifest.write()
File "/usr/lib/python3/dist-packages/attic/helpers.py", line 121, in write
self.repository.put(self.MANIFEST_ID, self.key.encrypt(data))
File "/usr/lib/python3/dist-packages/attic/remote.py", line 234, in put
return self.call('put', id_, data, wait=wait)
File "/usr/lib/python3/dist-packages/attic/remote.py", line 127, in call
for resp in self.call_many(cmd, [args], **kw):
File "/usr/lib/python3/dist-packages/attic/remote.py", line 158, in call_many
raise self.RPCError(error)
attic.remote.RPCError: b'AttributeError'
OR
Traceback (most recent call last):
File "/usr/bin/attic", line 3, in
main()
File "/usr/lib/python3/dist-packages/attic/archiver.py", line 715, in main
exit_code = archiver.run(sys.argv[1:])
File "/usr/lib/python3/dist-packages/attic/archiver.py", line 705, in run
return args.func(args)
File "/usr/lib/python3/dist-packages/attic/archiver.py", line 128, in do_create
self._process(archive, cache, args.excludes, args.exclude_caches, skip_inodes, path, restrict_dev)
File "/usr/lib/python3/dist-packages/attic/archiver.py", line 177, in _process
os.path.join(path, filename), restrict_dev)
File "/usr/lib/python3/dist-packages/attic/archiver.py", line 177, in _process
os.path.join(path, filename), restrict_dev)
File "/usr/lib/python3/dist-packages/attic/archiver.py", line 177, in _process
os.path.join(path, filename), restrict_dev)
File "/usr/lib/python3/dist-packages/attic/archiver.py", line 163, in process
archive.process_file(path, st, cache)
File "/usr/lib/python3/dist-packages/attic/archive.py", line 407, in process_file
self.add_item(item)
File "/usr/lib/python3/dist-packages/attic/archive.py", line 170, in add_item
self.write_checkpoint()
File "/usr/lib/python3/dist-packages/attic/archive.py", line 174, in write_checkpoint
self.save(self.checkpoint_name)
File "/usr/lib/python3/dist-packages/attic/archive.py", line 196, in save
self.manifest.write()
File "/usr/lib/python3/dist-packages/attic/helpers.py", line 121, in write
self.repository.put(self.MANIFEST_ID, self.key.encrypt(data))
File "/usr/lib/python3/dist-packages/attic/remote.py", line 234, in put
return self.call('put', id, data, wait=wait)
File "/usr/lib/python3/dist-packages/attic/remote.py", line 127, in call
for resp in self.call_many(cmd, [args], **kw):
File "/usr/lib/python3/dist-packages/attic/remote.py", line 158, in call_many
raise self.RPCError(error)
attic.remote.RPCError: b'AttributeError'
I need to run them one after each other. This should be fixed.

Maybe related to issue #227.

@gullevek can you still reproduce this with a current attic version?
A problem is that the traceback does not contain enough information about the AttributeError that happened on the remote side.

A problem is that the traceback does not contain enough information about the AttributeError that happened on the remote side.

slightly offtopic, but can you tell me how to get a traceback from the remote side (in general)? Does the attic serve call log its messages to some particular place by default?

@mgrachten AFAIK this is not the case.

I just installed attic for the backup of all my systems (around 10 computers). all run debian jessie and thus attic in debian version 0.13-1. the backups are simply done by remote ssh to the same host with the same attic archive. All backups start at the same time with a command like this on every host via cronjob:
attic create --do-not-cross-mountpoints root@storer.blabla.lan:/backups/attic::goofy.blabla.lan_root /
but i get a lot of errors like shown in the above conversations.
are there some issues with running attic in parallel? do i have to add some locking? any ideas?

@erikhydro have a look at borgbackup (which is a fork of attic), a lot of issues are fixed there.
but "parallel" backups to same repository will be serialized (as it should be with attic also) and will also require re-synchronization of the chunks index, so it depends whether one or separate repos are the better idea.

https://attic-backup.org/quickstart.html#remote-repositories
here i can read, that i can use a remote repository by mounting and then using local attic, but then i must make sure that no two instances are running in parallel. That i have read and understood. But i concluded, that when using ssh and not a local mounted repository, then i could run in parallel.
can you confirm, that attic does NOT serialize and thus will corrupt the archive? so it is not somehow my error?
if yes i will commit another bug onto the debian bugtracker. there is already a grave one: https://bugs.debian.org/cgi-bin/pkgreport.cgi?dist=jessie;package=attic
because i have the strong feeling that administrators should really know that they can NOT use attic by ssh to backup their server farm! (if not taking extra care to not run parallel, but that's so dangerous to forget. there really should be a report.)

If you don't have working posix locks (due to using a filesystem that does not correctly support them), you are out of luck with attic. I assumed you have client/server attic after seeing the commandline you posted.
That is the main reason why borg uses mkdir-based locking. That basically works everywhere, even on rather crappy filesystems. It has one disadvantage though: the lock does not automatically go away when the process gets killed rather violently (kill -9, power failure, ...).


How to make horizontal dotted line to solid line same as vertical line.

I have enabled line showing using below options. but it is showing dotted line. I want to make it solid line.
 public var drawAxisLineEnabled = true
public var drawGridLinesEnabled = true

check out yAxis.gridLineDashPhase, yAxis.gridLineDashLengths, yAxis.gridLineDashLengths.count


Webhook for deployments

Why do we need this ?
Currently PR merges are assumed to be deployments for a repo, which is fair for any repo that runs on some kind of a CI.
But for many such repos that don't, we should at least support a webhook based mechanism that allows me to feed my deployment/workflow runs data into Middleware.
That will let me have a better picture of my Dora metrics with more accurate Lead Time, and Deployment Frequency.

@jayantbh working on this.

Sure. Do share your approach before you begin implementation.

[!IMPORTANT]
This issue is tagged advanced. By taking this up you acknowledge that you're accepting that this will be a non-trivial change and may require thorough testing and review.
Of course, this also means that we offer swag for someone who goes out of their way to tackle issues tagged advanced. 🚀
This also means we'll follow up on this regularly, and in case of inactivity the issue would be unassigned.

@jayantbh Currently we take PR Merge or Workflow ( like Github_Actions ) for deployments. correct?
I am thinking to create a route that collects workflow/deployment webhook data.
This captured data will be mapped and pushed into RepoWorkflowRuns.
Separate adapter for each like bitbucket, circleci, gitlab etc.
This is basic idea, although more brainstorming needed.

This should ideally happen on the python backend (apiserver dir). But yes, you have the right idea. I'll let @adnanhashmi09 explain further.

Keep the following in mind while implementing the workflow:

Use authorization headers or custom headers for authenticating the workflow user. We should create a mechanism for users to create and update API keys. This would also include UI development efforts.

The webhook should never cause the workflow to fail or take an excessively long time. It should return a status of 200 in all cases. In case of an error, the response body should contain the error message and possible ways to fix it.

We need a mechanism to map these workflows to repositories linked with Middleware. Therefore, the webhook should also receive repository data for each workflow run.

The processing of data should be asynchronous and not block the API response. The API request should resolve almost immediately after the request has been sent.

The data should be processed in chunks, and the end user should send data in chunks, i.e., no more than 500 workflow runs data in a single call. This webhook should have the ability to sync large amounts of data and/or a single workflow run. Users can make a call to this webhook at the start and end of their workflow. We can infer the duration of the workflow run using that. Another case could be a user sending a number of their older workflow runs for us to process.

A simple validation of received data should be performed when someone tries to upload data. If the required fields are not present, we should return a process error body with a status code of 200. We don't keep erroneous data.

We would also need an API to prune the data synced if someone uploaded incorrect data and wanted to delete it.

An API to revoke/generate API tokens is necessary.

A frontend page to manage API tokens should be developed.

Implement alerting/notification in case of erroneous data.

A data dump for the request type, request body, response and error should be saved in case of an error. The data received from the end-user can be saved here and then later picked up for processing. So this could serve multiple purposes.

We need some event based system to process workflow runs asynchronously without blocking the main thread. So whenever someone sends are request to our webhook we register an "event" which is picked up by a listener. When that event is invoked, the listener queries the database for the latest data to process and starts processing.

The request body can be like as follows:

{
    "workflow_runs":[
        {
            "workflow_name":"custom_workflow",
            "repo_names":["middleware"],
            "event_actor":"adnanhashmi09",
            "head_branch":"master",
            "workflow_run_unique_id":"unique_item",
            "status":"SUCCESS",
            "duration":"200", // can be provided, or we can infer this
            "workflow_run_conducted_at":"2024-09-28T20:35:45.123456+00:00"
        }
    ]
}

Read through the workflow sync once to check all the fields required for creating a RepoWorkflowRun

A RepoWorkflow shall be created based on workflow_name and repo_names if not already present. This shall also be a part of validation, ie, if RepoWorkflow cannot be created due to the repo_names being wrong or not being linked to middleware shall result in an error.

So there are a lot of moving parts in this implementation and would require a thorough understanding of our system. Please read through the sync and document your approach here before starting to implement. This is a rather comprehensive task and would longer to implement.

@adnanhashmi09 Providers like Github actions, Gitlab, Circleci... are the sources of user deployment data. What other platforms can send data to our system? The structure of data will be different for each source, so we will need adapter to process data or user will be sending the structured response?
We can store all the incoming data into redis which will be later picked up for processing. We can only verify errors like API_Key before sending the response as data is not yet processed but we need to return 200 asap. So how we agree on point 6 as we are not processing data synchronously?
We also fetch data from Github Actions REST Api. So both rest api and webhook data will be stored in same table, right? Can a user also prune data fetched from Github Actions REST Api (point 7) ?
Can you please elaborate point 11 ?


fixall should consider range

'fix all' of code action should consider the range,
the statement in def pylsp_code_actions( :
    range : Dict
        Range argument given by pylsp. Not used here.

should be not true, this range i guess should be used later in checks_with_fixes to filter fixes only in this range.
otherwise 'fix all' probably in the action list all the time, but that actually maybe would get action nothing from it.

I'm not sure what kind of range the 'Fix all' action should take, wouldn't you expect it to explicitly go through the whole document instead of only a range?

I'm not sure what kind of range the 'Fix all' action should take, wouldn't you expect it to explicitly go through the whole document instead of only a range?

as i know generally most lsp server no 'fix all' such thing, but 'all' is about 'range', if 'selected' is different, then 'all' is different.
// at least for now,
// 1. that 'fix all' perhaps actually would do nothing, but stayed in action list still.
// 2. for now, this lsp server did not support code action in range which unlike others.
--
shane.xb.qian

You mentioned that other language servers also include ranges in fix all actions, but I couldn't find any that check in the range only (i.e. ruff-lsp).
Otherwise I would be opposed to this, since the "Fix all" action is supposed to just go through the document and apply any easy applicable fixes without any user input required.

You mentioned that other language servers also include ranges in fix all actions, but I couldn't find any that check in the range only (i.e. ruff-lsp).

i did not mean 'ruff' or 'python' lsp, this one is the only one i can find had 'fix all' action in the list.

Otherwise I would be opposed to this, since the "Fix all" action is supposed to just go through the document and apply any easy applicable fixes without any user input required.

ok, understand, besides as i said in #72, i have no idea why that 2 issues happened, not sure if was me made it or was existed, but current 'fix all' would cover it.
--
shane.xb.qian


type 'AnimationPage' is not a subtype of type 'StatelessWidget'

Steps to Reproduce

Run flutter create bug.
Update the files as follows: ...
...

Expected results:
Actual results:

Logs

@kangandroid can you please share code snippet for clear understanding.

Hi @kangandroid, opening an issue please try to provide
all or some of the information indicated in the template

Issue Template
If you are looking for support, please check out our documentation
or consider asking a question on Stack Overflow:
- https://flutter.dev/
- https://api.flutter.dev/
- https://stackoverflow.com/questions/tagged/flutter?sort=frequent
If you have found a bug or if our documentation doesn't have an answer
to what you're looking for, then fill our the template below. Please read
our guide to filing a bug first: https://flutter.dev/docs/resources/bug-reports
Steps to Reproduce
Please tell us exactly how to reproduce the problem you are running into.
Please attach a small application (ideally just one main.dart file) that
reproduces the problem. You could use https://gist.github.com/ for this.
If the problem is with your application's rendering, then please attach
a screenshot and explain what the problem is.

1. ...
2. ...
3. ...

Please tell us which target platform(s) the problem occurs (Android / iOS / Web / macOS / Linux / Windows) Which target OS version, for Web, browser, is the test system running? Does the problem occur on emulator/simulator as well as on physical devices?
Target Platform: Target OS version/browser: Devices:
Run your application with `flutter run --verbose` and attach all the
log output below between the lines with the backticks. If there is an
exception, please see if the error message includes enough information
to explain how to solve the issue.
Run `flutter analyze` and attach any output of that command below.
If there are any analysis errors, try resolving them before filing this issue.
Finally, paste the output of running `flutter doctor -v` here.

Closing this issue, since no information has been provided.
Thank you.


Feature Request: Improved environment overview

Is your feature request related to a problem? Please describe.
There is no way to get a overview of the complete container environment and the individual apps within.
Describe the solution you'd like.
When in production and we have an incident speed is of an essence and today we have to dig out information from all individual apps.
This is very time consuming and since the Container Apps Environment is there it feels like a logical first step to go to as a user.
To be able to view current health, number of restarts, status and age. Like screenshot below.
Describe alternatives you've considered.
A lot of people today uses Lens as a tool when working in AKS. This tool could really be a good inspiration of how to develop the UI further in the platform.
Additional context.
Example of information that would be good in an overview to fast get a picture of how the environment fairs.

Thanks. We're working on improving this experience and will consider your suggestions.


Add OpenChain comformant badge for Temurin and AQAvit project page

Both Eclipse Temurin and Eclipse AQAvit, are listed as projects that are in Good Standing according to EF processes (details below). https://www.eclipse.org/projects/tools/goodstanding-releases.php.

As part of a progress or release review, Eclipse Foundation EMO team validates that the project is following EF's intellectual property due diligence process (which we self certify is OpenChain compliant https://www.eclipse.org/openchain/). Upon successful completion of the review, the project can claim OpenChain conformance for a year (after which they need to engage with EF on another review. Both Eclipse Temurin and Eclipse AQAvit can claim OpenChain conformance)

2024 Review has been successfully achieved, and OpenChain badge can be added to both project pages:

Temurin https://adoptium.net/temurin/
AQAvit https://adoptium.net/aqavit/

It can be added at the bottom of the pages using this badge: https://openchainproject.org/news/2023/05/17/updated-openchain-conformance-badges
Suggested description:
[Project name] is OpenChain 2.1 ISO/IEC 5230:2020 conformant.
Badge link: https://www.eclipse.org/openchain/
Thank you!

Hello, Team,
About adding the badges as SLSA Level badge, currently is not available for projects pages.
A solution could be to add it as part of the project description, as far as I understand PMC members have access to edit that content.
OpenChain ISO/IEC 5230:2000 conformant
badges https://openchainproject.org/news/2023/05/17/updated-openchain-conformance-badges
Now I recall, that is why my suggestion was to include it as part of Adoptium.net project pages https://adoptium.net/temurin/ and https://adoptium.net/aqavit/


Make search filters pane a sliding drawer

Purpose
While it works as expected on larger screens, the search filters pane occupies a lot of space on mobile, where users have to scroll through it to get to the course search results. This is not ideal.
Proposal
We decided to make it a sliding drawer on smaller screens. It's hidden by default and slides in when the user clicks on a "filter" button. It can then be closed again to interact with the search results.
Closes #676.

Should be great for this kind of PR to have a preview, with a gif for example, of what we should expect before reviewing.


Linux AArch64 RuntimeDyld relocation overflows (#8567 specific to Linux only)

I'm breaking out this issue from #8567 to avoid spamming everyone who participated in that issue with notifications as I add notes and debugging info. In summary, on Linux AArch64,

test_standalone.py
import numpy as np
from nvidia.dali import pipeline_def
import nvidia.dali as dali
import nvidia.dali.fn as fn
import nvidia.dali.types as dali_types
from nvidia.dali.plugin.numba.fn.experimental import numba_function

def set_all_values_to_255_batch(out0, in0):
    out0[0][:] = 255

def set_all_values_to_255_sample(out0, in0):
    out0[:] = 255

def set_all_values_to_float_batch(out0, in0):
    out0[0][:] = 0.5

def set_all_values_to_float_sample(out0, in0):
    out0[:] = 0.5

def setup_change_out_shape(out_shape, in_shape):
    out0_shape = out_shape[0]
    in0_shape = in_shape[0]
    perm = [1, 2, 0]
    for sample_idx in range(len(out0_shape)):
        for d in range(len(perm)):
            out0_shape[sample_idx][d] = in0_shape[sample_idx][perm[d]]

def change_out_shape_batch(out0, in0):
    for sample_id in range(len(out0)):
        out0[sample_id][:] = 42

def change_out_shape_sample(out0, in0):
    out0[:] = 42

def get_data(shapes, dtype):
    return [np.empty(shape, dtype=dtype) for shape in shapes]

def get_data_zeros(shapes, dtype):
    return [np.zeros(shape, dtype=dtype) for shape in shapes]

@pipeline_def
def numba_func_pipe(shapes, dtype, run_fn=None, out_types=None, in_types=None,
                    outs_ndim=None, ins_ndim=None, setup_fn=None, batch_processing=None):
    data = fn.external_source(lambda: get_data(shapes, dtype), batch=True, device="cpu")
    return numba_function(
        data, run_fn=run_fn, out_types=out_types, in_types=in_types,
        outs_ndim=outs_ndim, ins_ndim=ins_ndim, setup_fn=setup_fn,
        batch_processing=batch_processing)

def _testimpl_numba_func(shapes, dtype, run_fn, out_types, in_types,
                         outs_ndim, ins_ndim, setup_fn, batch_processing, expected_out):
    batch_size = len(shapes)
    pipe = numba_func_pipe(
        batch_size=batch_size, num_threads=1, device_id=0,
        shapes=shapes, dtype=dtype,
        run_fn=run_fn, setup_fn=setup_fn, out_types=out_types,
        in_types=in_types, outs_ndim=outs_ndim, ins_ndim=ins_ndim,
        batch_processing=batch_processing)
    pipe.build()
    for _ in range(3):
        outs = pipe.run()
        for i in range(batch_size):
            out_arr = np.array(outs[0][i])
            assert np.array_equal(out_arr, expected_out[i])

def test_numba_func():
    # shape, dtype, run_fn, out_types,
    # in_types, out_ndim, in_ndim, setup_fn, batch_processing,
    # expected_out
    args = [
        ([(10, 10, 10)], np.uint8, set_all_values_to_255_batch, [dali_types.UINT8],
         [dali_types.UINT8], [3], [3], None, True,
         [np.full((10, 10, 10), 255, dtype=np.uint8)]),
        ([(10, 10, 10)], np.uint8, set_all_values_to_255_sample, [dali_types.UINT8],
         [dali_types.UINT8], [3], [3], None, None,
         [np.full((10, 10, 10), 255, dtype=np.uint8)]),
        ([(10, 10, 10)], np.float32, set_all_values_to_float_batch, [dali_types.FLOAT],
         [dali_types.FLOAT], [3], [3], None, True,
         [np.full((10, 10, 10), 0.5, dtype=np.float32)]),
        ([(10, 10, 10)], np.float32, set_all_values_to_float_sample, [dali_types.FLOAT],
         [dali_types.FLOAT], [3], [3], None, None,
         [np.full((10, 10, 10), 0.5, dtype=np.float32)]),
        ([(10, 20, 30), (20, 10, 30)], np.int64, change_out_shape_batch, [dali_types.INT64],
         [dali_types.INT64], [3], [3], setup_change_out_shape, True,
         [np.full((20, 30, 10), 42, dtype=np.int32),
          np.full((10, 30, 20), 42, dtype=np.int32)]),
        ([(10, 20, 30), (20, 10, 30)], np.int64, change_out_shape_sample, [dali_types.INT64],
         [dali_types.INT64], [3], [3], setup_change_out_shape, None,
         [np.full((20, 30, 10), 42, dtype=np.int32),
          np.full((10, 30, 20), 42, dtype=np.int32)]),
    ]

    for shape, dtype, run_fn, out_types, in_types, outs_ndim, ins_ndim, \
            setup_fn, batch_processing, expected_out in args:
        _testimpl_numba_func(
            shape, dtype, run_fn, out_types, in_types, outs_ndim, ins_ndim, \
            setup_fn, batch_processing, expected_out
        )

test_numba_func()

results in:
$ python test_standalone.py
python: /root/miniconda3/envs/buildenv/conda-bld/llvmdev_1680642098205/work/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp:507: void llvm::RuntimeDyldELF::resolveAArch64Relocation(const llvm::SectionEntry&, uint64_t, uint64_t, uint32_t, int64_t): Assertion `isInt<33>(Result) && "overflow check failed for relocation"' failed.
Aborted (core dumped)

It turns out I can even hit the assertion with a smaller test than the original reproducer from #8567 on Linux, in a docker container:
$ NUMBA_OPT=0 python -m unittest -vb numba.tests.test_stencils.TestManyStencils.test_basic40

test_basic40 (numba.tests.test_stencils.TestManyStencils)
2 args! ... python: /root/miniconda3/envs/buildenv/conda-bld/llvmdev_1680642098205/work/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp:507: void llvm::RuntimeDyldELF::resolveAArch64Relocation(const llvm::SectionEntry&, uint64_t, uint64_t, uint32_t, int64_t): Assertion `isInt<33>(Result) && "overflow check failed for relocation"' failed.
Fatal Python error: Aborted

Current thread 0x0000ffffb74d4010 (most recent call first):
  File "/usr/local/lib/python3.8/dist-packages/llvmlite/binding/ffi.py", line 152 in __call__
  File "/usr/local/lib/python3.8/dist-packages/llvmlite/binding/executionengine.py", line 92 in finalize_object
  File "/usr/local/lib/python3.8/dist-packages/numba/core/codegen.py", line 1060 in wrapper
  File "/usr/local/lib/python3.8/dist-packages/numba/core/codegen.py", line 999 in _finalize_specific
  File "/usr/local/lib/python3.8/dist-packages/numba/core/codegen.py", line 797 in _finalize_final_module
  File "/usr/local/lib/python3.8/dist-packages/numba/core/codegen.py", line 765 in finalize
  File "/usr/local/lib/python3.8/dist-packages/numba/core/codegen.py", line 567 in _ensure_finalized
  File "/usr/local/lib/python3.8/dist-packages/numba/core/codegen.py", line 989 in get_pointer_to_function
  File "/usr/local/lib/python3.8/dist-packages/numba/core/cpu.py", line 236 in get_executable
  File "/usr/local/lib/python3.8/dist-packages/numba/core/typed_passes.py", line 495 in run_pass
  File "/usr/local/lib/python3.8/dist-packages/numba/core/compiler_machinery.py", line 273 in check
  File "/usr/local/lib/python3.8/dist-packages/numba/core/compiler_machinery.py", line 311 in _runPass
  File "/usr/local/lib/python3.8/dist-packages/numba/core/compiler_lock.py", line 35 in _acquire_compile_lock
  File "/usr/local/lib/python3.8/dist-packages/numba/core/compiler_machinery.py", line 356 in run
  File "/usr/local/lib/python3.8/dist-packages/numba/core/compiler.py", line 494 in _compile_core
  File "/usr/local/lib/python3.8/dist-packages/numba/core/compiler.py", line 528 in _compile_bytecode
  File "/usr/local/lib/python3.8/dist-packages/numba/core/compiler.py", line 460 in compile_extra
  File "/usr/local/lib/python3.8/dist-packages/numba/core/compiler.py", line 742 in compile_extra
  File "/usr/local/lib/python3.8/dist-packages/numba/tests/test_stencils.py", line 96 in _compile_this
  File "/usr/local/lib/python3.8/dist-packages/numba/tests/test_stencils.py", line 105 in compile_parallel
  File "/usr/local/lib/python3.8/dist-packages/numba/tests/test_stencils.py", line 749 in check_against_expected
  File "/usr/local/lib/python3.8/dist-packages/numba/tests/test_stencils.py", line 1844 in test_basic40
  File "/usr/lib/python3.8/unittest/case.py", line 633 in _callTestMethod
  File "/usr/lib/python3.8/unittest/case.py", line 676 in run
  File "/usr/lib/python3.8/unittest/case.py", line 736 in __call__
  File "/usr/lib/python3.8/unittest/suite.py", line 122 in run
  File "/usr/lib/python3.8/unittest/suite.py", line 84 in __call__
  File "/usr/lib/python3.8/unittest/suite.py", line 122 in run
  File "/usr/lib/python3.8/unittest/suite.py", line 84 in __call__
  File "/usr/lib/python3.8/unittest/runner.py", line 176 in run
  File "/usr/lib/python3.8/unittest/main.py", line 271 in runTests
  File "/usr/lib/python3.8/unittest/main.py", line 101 in __init__
  File "/usr/lib/python3.8/unittest/__main__.py", line 18 in <module>
  File "/usr/lib/python3.8/runpy.py", line 87 in _run_code
  File "/usr/lib/python3.8/runpy.py", line 194 in _run_module_as_main

I now have a simpler reproducer, which works with Numba and llvmlite main built on my Jetson AGX Xavier against the Numba llvmdev package, running on a "plain" Ubuntu 20.04 (i.e. no docker, no additional tools / libraries needed):
from numba import njit

@njit
def f(x, y):
    return x + y

i = 0

while True:
    print(i)
    t = tuple(range(i))
    f(t, (1j,))
    i += 1

executed with:
$ ulimit -s 1048576
$ python repro.py

gives:
0
1
2
3
4
5
6
7
8
9
python: /opt/conda/conda-bld/llvmdev_1684517249134/work/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp:507: void llvm::RuntimeDyldELF::resolveAArch64Relocation(const llvm::SectionEntry&, uint64_t, uint64_t, uint32_t, int64_t): Assertion `isInt<33>(Result) && "overflow check failed for relocation"' failed.
Aborted (core dumped)

Repository for reproducer work: https://github.com/gmarkall/numba-issue-9001
I now have a repro that only uses NumPy and llvmlite, not Numba, which is the present state recorded in that repo.

Hi, I don't know if this is helpful, but I thought I'd share my experience of this issue. I have come across the issue with my code both on the Ampere 80 core machine running Ubuntu and on AWS Graviton arm64 instances running Amazon Linux 2. On smaller AWS instances (like 8 cores) the problem is less frequent than on larger instances (like 32/64 cores or the Ampere 80). Perhaps this is because smaller instances have less RAM (8 GB vs 128 GB)?
I can reproduce the numba-issue-9001 code on AWS m7gd.2xlarge after only 5 iterations.

Thanks for the input - when there's a lot of RAM it does seem that it's easier for the issue to manifest in our experience too.
There's also a start of a discussion on the LLVM Discourse regarding a potential fix: https://discourse.llvm.org/t/llvm-rtdyld-aarch64-abi-relocation-restrictions/74616

@zansibal It's early work at the moment, but if you're able to build llvmlite from source with the PR numba/llvmlite#1009, and let me know whether you still observe the issue with it (or observe any other issues) that would be good feedback - hopefully this resolves the issue, but there's a lot of testing / review to be done to have confidence in the strategy.

This was fixed by numba/llvmlite#1009.


Test using both python2 and python3

Dotbot, at least with 1.x, will maintain compatibility with both Python 2 and Python 3.
This can sometimes be painful to do, and sometimes, it can be error-prone. In the past, there have been bugs with cross-version compatibility.
It would be good to modify the testing code so that tests are run with both Python 2 and Python 3. Currently, it only tests with Python 2.

While the bash testing is elegant and simple, would it be more beneficial to move to a testing suite that could be run in something like Travis CI? Thinking python unittest test cases running within temporary directories. Tests would run a lot faster as well.

Yeah, it would be awesome if we could move to a testing suite that could be run in Travis CI.
I'm not sure how unit test cases running within temporary directories would work - I wouldn't want a broken test case or broken code to screw up a machine. That's why I went with the whole VM thing (that's super duper slow...).
I've spent a tiny amount of time looking into file system mocking in Python, but I haven't read enough about it to figure out if it's a good choice for what we're doing.
Figuring out how to make tests run faster (in the VM or outside the VM) would be awesome.

It looks like this might be a reasonable way of testing with multiple Python versions: http://redsymbol.net/articles/env-and-python-scripts-version/

When testing with Travis-CI, this is a non-issue, check out my travis configuration for one of my projects: https://github.com/PacketPerception/pychievements/blob/master/.travis.yml
That results like so: https://travis-ci.org/PacketPerception/pychievements and even generates coverage reports via coveralls, https://coveralls.io/builds/2864248
Here I'm using nose which is just a super simple way of running unittest.TestCase tests. I'd be more than happy to try write one up as an example to see if it would work out.
For testing locally on your own machine, I highly recommend pyenv for managing your python versions, then using tox to automatically run tests against multiple versions. See http://tbb.co/using-tox-and-pyenv-for-testing-and-development/ for an example

Yeah, good point about FS modification and bugs not being an issue with Travis-CI. Coveralls is nice too.
If it wouldn't be too much work, it would be nice to see what a test case would look like.
And thanks for the link about pyenv/tox. I didn't know too much about good ways to do that.

Had a slow evening... I implemented the clean and config tests really quick just as a simple example. Check out the README in the test directory. The tests I did write are passing on Python 2.6, 2.7, 3.2, 3.3, and 3.4.

Oh, and btw, running the tests (on all versions of python) takes 3 seconds ;p

Added a travis-ci configuration, so it auto-runs the tests - https://travis-ci.org/PacketPerception/dotbot

Got coveralls working and reimplemented all of the old tests. https://coveralls.io/r/PacketPerception/dotbot
At this point, I say feel free to grab/pull these in if you want. The dotbot README.md would have to be updated with links to Travis-CI/Coveralls, assuming you setup an account to run them. Other than that, this is now a full conversion of the tests using tox/pyenv. Takes 3.3 seconds to run the entire suite against 5 versions of python.

Finally done in 5babc8f562f9ba1ad3e78b5ec6906aa33d17c0a9!


Example in https://github.com/xspec/xspec/wiki/Writing-Scenarios#function-scenarios uses true() as parameter value but accompanying text explains false() is being passed in

The section https://github.com/xspec/xspec/wiki/Writing-Scenarios#function-scenarios in the wiki says in the second and third paragraph:

For example:
<x:scenario label="when capitalising a string">
   <x:call function="eg:capital-case">
      <x:param select="'an example string'"/>
      <x:param select="true()"/>
   </x:call>
   ...
</x:scenario>

will result in the call eg:capital-case('an example string', false())

So the code example has <x:param select="true()"/> with true() but somehow the accompanying text claims the resulting function call uses false(). That doesn't make sense, either the code sample or the text need to be changed.

Thanks for spotting this.
I fixed the accompanying text (diff). Does it look fine now?

@AirQuick , yes, sure, looks fine.

Thanks @martin-honnen
If you find another error in Wiki, please open an issue like this at any time and it will be much appreciated.
(If we migrate Wiki to the standalone site (just an idea, not decided yet — xspec/xspec.github.io#2), we will be able to use pull requests for handling documentation errors.)


[Event Request] Codeunit 2 Company-Initialize

Could we please have a new event OnBeforeCompanyInitalize in the OnRun()-Trigger
`OnRun()
Window.OPEN(Text000);
//>>>>
OnBeforeCompanyInitialize;
//<<<<
InitSetupTables;
AddOnIntegrMgt.InitMfgSetup;
InitSourceCodeSetup;
[...]
`

Already implemented as OnBeforeRun

Already implemented as OnBeforeRun

Okay, nice - but where will i find it? Not in BC13 CU7 or BC14RTM


[Question/bug] Consuming Tombstones and send it to dlq throws $payload must be of type string, null given

Hi I was using version 1.13, and recently I updated to 2.0 and this error happen:
Right now If I try to consume a tombstone, aka null payload it throws me this error instead of not throwing any error, I'm not sure if I should include some option with ->withOptions() or how to proceed with these 🙇🏽
Here how I build and consume:

Error throwed:

Thanks for your help

hey @mhv666 👋 I pushed a fix for this, let me know if it works


feat(taget): refactoring

What kind of change does this PR introduce?
refactoring
PR 2 for this card https://github.com/webpack/webpack/projects/5#card-29122473
Did you add tests for your changes?
yes
Does this PR introduce a breaking change?
no
What needs to be documented once your changes are merged?
nothing

Thanks for your contribution. I am closing PR because it is too stale..


Import data from freeotp

If I remember correctly, I backed up the freeotp data via adb. How do I migrate to freeotp+?
Thanks in advance.

I have found a solution: https://github.com/viljoviitanen/freeotp-export

Yes, very nice to know a solution there. It takes some effort but it does not require root.


Error in latest release

English: It was not possible to load the file or assembly 'xxxxxx' or one of it's dependencies.
The system couldn't find the specified file.
This happens in all versions of the plugin i use.

This is usually the case if you forgot to copy the 2 other DLLs into your MusicBee plugin directory.

I'll test. Thanks.

I have three DLLs here:

mb_DiscordRichPresence.dll
Newtonsoft.Json.dll
win32-discord-rpc
Do i need another?


continous integration

As discussed in today's coding dojo: installation is currently quite agonizing

installing / configuring npm, bower, gulp
building assets
installing/updating composer dependencies
cache:clear, db-migrations, ...

This should all be done by travis, packaged (debian, tgz, ...). Possibly some builds should create releases on github (only tags?).

ref #116 & https://github.com/simpspector/simpspector/blob/master/bin/update

so #116 is merged. Whats the next step here? Isn't travis for testing? And are we going to use it for packaging?

Has anybody experience using travis for packaging?
Is these even currently possible?
How can we publish a generated package as release, including the tarball ...

So I guess, research on this might be a good next step?

covered by #196 .


Missing configmap "sriov-network-metrics-exporter" manifest

Hi,
When the DaemonSet is applied, it has been looking for a Configmap named "sriov-network-metrics-exporter", but there is no such configmap definition in the sriov-network-metrics-exporter/deployment/daemonset.yaml
Could someone provide what is expected in this Configmap ? Thanks !

Hi @balaramvedulla , that configmap has been remove by

https://github.com/k8snetworkplumbingwg/sriov-network-metrics-exporter/pull/37

There must be a leftover reference to that. Taking a look


[format] Set up line length & rules for Dart code when using VSCode

Use case
Developers wanting to contribute to the framework (or engine), by writing Dart code, while having their VSCode User settings set to something that differs from the framework's settings.
Context:
In https://github.com/flutter/flutter/commit/5491c8c146441d3126aff91beaa3fb5df6d710d0 the settings for formatOnSave and formatOnPaste were removed, as those were explicitly set to false. This presumably restored VSCode's default settings to format by default.
I started work on fixing a bug in the framework, post the engine binaries outage from yesterday, having not worked on the framework since the auto format change landed. Since I was aware of the autoformatting change, I pulled from master at 11AM UTC+1 on 22/12/2024, to start without issues. However, when using the Format Document action in carousel_test.dart I had a formatting diff in a piece of code that I did not write.
However, I have the following in my User settings, which overrides the Workspace settings from VSCode, if it finds things that are not defined.
    "dart.lineLength": 120,
    "[dart]": {
        "editor.formatOnSave": true,
        "editor.formatOnType": true,
        "editor.rulers": [
            120
        ],
    },

Neither the dart.lineLength nor editor.rulers is defined by the framework's settings.json, so I think it will use my own (incorrect) settings?
Proposal
Add
    "dart.lineLength": frameworkLineLength,
    "[dart]": {
        "editor.formatOnSave": true,
        "editor.formatOnType": true,
        "editor.rulers": [
            frameworkLineLength
        ],
    },

to the framework's .vscode/settings.json, where frameworkLineLength is the desired value for formatting code in the framework. By making the line length & formatOnSave/Type explicit, we avoid this being overridden by user level settings.

IMO, yes - the framework settings should be committed here because it shouldn't be assumed that users defaults are the same as Flutter uses.
However, all users might not open the same folders here, so putting them only in the root might not be enough if some users might just open the flutter_tools folder, for example.
(I use my own .code-workspace file so I can have only the projects I want, and with my own settings that don't have to be committed, but I don't know how common that is).

If we have a requirement for the line length that differs, we should set them in the shared vscode config.  I've suggested having multiple "framework.code-workspace", "all.code-workspace", "engine.code-workspace" as well.

Yes, it makes sense to explicitly configure the options that we use. Please feel free to send a PR for this.


Make new report code backwards compatible with Ruby 2.0

required keyword arguments are not yet supported.

@zdennis Lagotto currently requires Ruby 2.0 or higher. The above is a workaround, there are better ways to implement this Ruby 2.1 feature.


pm: pm_device_request incorrectly returns errors

Describe the bug
When the same device is taken multiple times, the releases of that device incorrectly report failure (-EIO).
This error is not valid, as nothing has gone wrong beyond the device still being used by another piece of code.
To Reproduce
Apply the following diff:
diff --git a/samples/subsys/pm/device_pm/src/dummy_driver.c b/samples/subsys/pm/device_pm/src/dummy_driver.c
index b70b75a923..0350b9dacd 100644
--- a/samples/subsys/pm/device_pm/src/dummy_driver.c
+++ b/samples/subsys/pm/device_pm/src/dummy_driver.c
@@ -23,6 +23,10 @@ static int dummy_open(const struct device *dev)
 	if (ret < 0) {
 		return ret;
 	}
+	ret = pm_device_get(parent);
+	if (ret < 0) {
+		return ret;
+	}

 	ret = pm_device_get_async(dev);
 	if (ret < 0) {
@@ -80,7 +84,16 @@ static int dummy_close(const struct device *dev)

 	/* Parent can be suspended */
 	if (parent) {
-		pm_device_put(parent);
+		ret = pm_device_put(parent);
+		if (ret) {
+			printk("FAILED 1\n");
+			return ret;
+		}
+		ret = pm_device_put(parent);
+		if (ret) {
+			printk("FAILED 2\n");
+			return ret;
+		}
 	}

 	return ret;

Build and run:
*** Booting Zephyr OS build zephyr-v2.6.0-2297-gfbd5e1f31687  ***
Device PM sample app start
open()
parent resuming..
child resuming..
Async wakeup request queued
Dummy device resumed
write()
transfer()
read()
transfer()
close()
child suspending..
FAILED 1
Device PM sample app complete

Expected behavior
Errors should only be returned on actual error conditions.
Environment (please complete the following information):

v2.6 main

Additional context
The problem is in these lines. When releasing a device that has been claimed multiple times, it is not expected that the current state is equal to the requested state:
https://github.com/zephyrproject-rtos/zephyr/blob/fbd5e1f31687711beef069412d5b5e9a52c1d8e9/subsys/pm/device_runtime.c#L141-L146

@gmarull @ceolin

@JordanYates -EIO in this case is returned because the device reference count is not 0. I don't think return 0 is right here, because the device ultimately didn't change its state to the one requested. -EIO is also not accurate IMHO. I think what best describe this situation is EBUSY, take a look in the linked pr.

I disagree with returning -EBUSY, the call is not failing because it is already in operation, it has succeeded.
The 4 functions that call pm_device_request (pm_device_{get/sync}{_async}), are all documented in terms of the usage count.
The first requesting call will turn the device on, the last release will turn it off.
Any additional requests+releases after the first request should not result in error codes as the device and API are operating per the documentation.


[Bug]: adding tom select to a focused form field makes it lose focus

Bug description
Description:
When Tom Select is initialized on a form field that is set to be autofocused, the field loses its focus immediately upon page load. This issue occurs regardless of whether the autofocus attribute is set directly in the HTML or programmatically via JavaScript. This behavior disrupts user experience, especially in forms where immediate input is expected upon loading the page.
initially reported in https://github.com/lovasoa/SQLpage/issues/297
Steps to Reproduce:

Create a basic HTML file with a form input.
Set the autofocus attribute on this input.
Initialize Tom Select on this input using the standard initialization code.
Load the page in a browser and observe that the input does not retain focus.

Expected Behavior:
The input field should retain its focus when the page loads, allowing users to start typing immediately without having to click on the field.
Actual Behavior:
The input field loses focus as soon as Tom Select is initialized, requiring users to manually click on the field to start typing.
Additional Information:

This issue does not appear to be browser-specific as it replicates across multiple major browsers.
A potential workaround could involve programmatically setting focus back to the input after initializing Tom Select, but this is not ideal for all use cases.

Suggested Fix:
The initialization of Tom Select might benefit from a check to retain focus if the target element has the autofocus attribute or if it is already focused before initialization. Adjusting the library to check and restore focus could resolve this issue.

still relevant


Fix editable-combodate for single date fields

Fix editable-combodate for single date fields
Fixes #705, #706

@josemonsalve2 please review

It looks good to me

Also, thanks for being so responsive

@ckosloski you are using moment.js, but it only a devDependency of the angular-xeditble.
I think me should mention in the documentation that for editable-combodate you need a moment.js installed as a global variable

@eugef the documentation already states you need moment.js for combodate

@ckosloski is right. I felt free to use moment.js due to the mention in the documentation.


Fix NPE when myRepo hasn't been explicitly set, such as when starting…

… from a keyboard search
Fixes https://github.com/OpherV/gitflow4idea/issues/235

Great! Thanks!

Had to revert because it was a PR against master instead of develop.
Can please you reopen against the develop branch?

Wasn't sure how I could reopen it, but I created a new one: https://github.com/OpherV/gitflow4idea/pull/240


Machine mac-39 lost connection from the external device.

Machine mac-39 lost connection from the external device.

The external connection device has been restored by rebooting machine mac-39.


More specific error message on creation of windows login for NT Service domain

Description
Currently in babelfish, when a new windows login is created for NT Service domain - it raises an error on space character. With this change babelfish will check for the NT Service domain and print an error specifically indicating this is not supported in Babelfish and added relevant test cases.
NT Service may be spelled in mixed case.
Changes Made
In the pl_handler.c, I added a check which would check for the 'NT Service' domain and report a not supported error if that domain is found.
Issues Resolved
BABEL-4212
Test Scenarios Covered

Use case based - yes

Boundary conditions - yes

Arbitrary inputs - yes

Negative test cases - yes

Minor version upgrade tests -

Major version upgrade tests -

Performance tests -

Tooling impact -

Client tests -

Check List

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

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

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

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 73.593%

Totals

Change from base Build<PHONE_NUMBER>7:
0.0%

Covered Lines:
43950

Relevant Lines:
59720

💛  - Coveralls


Folder for Themes?

Where can I find a folder that represents themes I downloaded and the default one? For example, I want to edit default color of default theme from #f8f8f8 to #ffffff.

Hi @AndGK,
the themes are located in the extensions folder, which you can open from Help -> Show Extensions Folder.
Feel free to comment if you cannot find the said theme.


[WIP] Skip building sphinxcontrib packages on win

Apparently, we can't build noarch packages on win:
[noarch_python] Error: Python noarch packages can currently not be created on Windows systems.

This PR skips builds of the new sphinxcontrib-* packages on win.

Though I wonder if the noarch thing is the reason these packages are not being uploaded.  They seem to be the only ones with noarch_python: True.


String parameter not escaped

Describe the bug
When querying a table with a bind parameter the caller must both quote a string argument & escape any single quotes.
Steps to reproduce
With 0.4.6 running a query against any table with a single String parameter
var name =  "Robert'); DROP TABLE Students;--";
client.read(server)
                    .format(ClickHouseFormat.RowBinaryWithNamesAndTypes)
                    .query("select * from my_table where name = :name(String)")
                    .params(Map.of("name", name))
                    .execute().get();

Fails as the string is dropped into the location of the :name parameter, a bit like String.format("%s");
Replacing the query with
 .query("select * from my_table where name = ':name(String)'")

Sends the query to the DB with ':name(String)' as the value.
Supplying the parameter as
 name = "'" + name.replace("'", "''") + "'";

Sort of works but feels quite clunky.
Expected behaviour
The provided parameter should be sent to the CH backend as a parameter (if possible) or escaped if that is not possible.
If there are unused query parameters an error should be thrown (perhaps configurable?).
ClickHouse server

ClickHouse Server version: <IP_ADDRESS>
CREATE TABLE statements for tables involved:

                    create table if not exists my_table
                    (
                        name String,
                        dttm timestamp not null
                    )  engine=MergeTree() order by name;

Encountered the same issue using ClickHouseParameterizedQuery.apply where I do
WHERE query_id = :id(String)

And the query failed with:

DB::Exception: Missing columns: '8d46' 'b6a0e832' '4ea8' '8a41' '54719a110fb4'

Because the string value is not in quotes.
I also add to dig within the code of the java client itself because I saw no mention of this notation :var(Type) on this page:
https://clickhouse.com/docs/en/integrations/java#query
Not sure if there is a dedicated documentation somewhere that I could not find 🤔

@mzitnik when you work on the issue, you can take a look at Python client implementation https://github.com/ClickHouse/clickhouse-connect/blob/6928aed5845c944007b6bf93e806313a96a93fbc/clickhouse_connect/driver/query.py#L431-L435

Hi @panthony, @JamieD9
The params function offers multiple signatures. All signatures involving String as parameter values (e.g., Map<String, String>) expect valid ClickHouse SQL expressions.
The remaining signatures handle conversion (escaping and validation) within the params function. Therefore, it is recommended to use the ClickHouseValues.convertToSqlExpression helper, which manages all the necessary conversion and validation.
try (ClickHouseClient client = ClickHouseClient.newInstance(server.getProtocol());
                 ClickHouseResponse response = client.read(server)
                         .format(ClickHouseFormat.RowBinaryWithNamesAndTypes)
                         .query("select * from my_table where string_column=:name")
                         .params(Map.of("name", ClickHouseValues.convertToSqlExpression("sdf'sdf"))).execute().get()) {}

We are actively working on providing a more robust parameter mechanism, which will be part of a major release in the future.
In addition, I've updated the documentation about this matter at ClickHouse/clickhouse-docs#1794
@JamieD9, regarding your example (apart from this parameter issue), as far as I know, the native client doesn't allow running multiple statements in one query, so you will likely encounter an error.

Hi,
Thanks for the update, we name our parameters and it's a bit of a shame to assume the order is correct (given they are named). Is it possible to add a method that correctly applies the named parameters? I also assume the ClickHouse server can apply query plan caching before resolving parameters & so resolving them on the client would not be ideal, is this not the case?
Finally
ClickHouseValues.convertToSqlExpression seems a little suspect to me:
        } else if (value instanceof Enum) {
            s = String.valueOf(((Enum<?>) value).ordinal()); // faster than escaped name

My understanding would be that if I have an enum with Dog, Cat then later add Unknown, Dog, Cat all my values will be incorrect, also queries outside of Java will not be aware of the enum labels, would you agree? We tend to declare enum columns as LowCardinality(String) and hope that during serialisation repeated column values get compressed.

Hi @JamieD9

we name our parameters and it's a bit of a shame to assume the order is correct (given they are named). Is it possible to add a method that correctly applies the named parameters?

What do you mean? this method is not an order based.
params accepts a Map of parameters, therefore there is no reason to worry about parameters order
For instance, these two examples will work the same way (with different parameters order):

I also assume the ClickHouse server can apply query plan caching before resolving parameters & so resolving them on the client would not be ideal, is this not the case?

That is correct. This is the parameter mechanism refactor I mentioned previously (I created a dedicated issue #1517 . Feel free to add ideas there).

We tend to declare enum columns as LowCardinality(String)

The conversion code you quoted maps between Java Enum to Clickhouse Enum. A LowCardinality(String) field is expecting to get a regular String, therefore, I would recommend you convert your Java Enum to a string before inserting it into a String column as the regular Enum conversion is meant for ClickHosue Enum.


Make GetLogEntryDetails return 404 if the log entry doesn't exist ins…

…tead of throwing a 500, fixes #1618

Looks good to me, thanks for adding tests :shipit:

:shipit:


Screenshots in article

[Enter feedback here]
To whom it may concern, are the screenshots in this article referring to the right admin portal? As far as I understand there should be screenshots indicating how to set up Teams DLP in the Microsoft Purview compliance portal.
Regards,
Rodney

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: ebaab3f7-d1d4-c649-efe8-f24913da4f3e
Version Independent ID: c5710ebf-0ca5-ab46-c490-64ebc308defe
Content: Data loss prevention and Microsoft Teams - Microsoft Purview (compliance)
Content Source: microsoft-365/compliance/dlp-microsoft-teams.md
Service: o365-seccomp
GitHub Login: @chrfox
Microsoft Alias: chrfox

@chrfox Please help us in resolving this issue. Thanks


Factor docs in README into Wiki

All of these have been moved into the Wiki where they can be more
easily discovered and collaborated on.

:tada:


[Bug]: Icons of the navbar do not align with text and navbar is also not responsive.

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
Icons of the navbar do not align with text and navbar is also not responsive. Assign this task to me under Hacktoberfest and I can fix this issue.
Add Screenshots

What browsers are you seeing the problem on?
Firefox, Chrome
Record

[X] I agree to follow this project's Code of Conduct
[ ] I'm a GSSOC contributor
[X] I want to work on this issue
[X] I'm willing to provide further clarification or assistance if needed.

on mobile version or laptop chrome??

on mobile version or laptop chrome??

Icons are not aligned in desktop chrome and is also not responsive for mobile view


Single agent execution flow

Background research
Readings
https://lilianweng.github.io/posts/2023-06-23-agent/

Finite context length: The restricted context capacity limits the inclusion of historical information, detailed instructions, API call context, and responses. The design of the system has to work with this limited communication bandwidth, while mechanisms like self-reflection to learn from past mistakes would benefit a lot from long or infinite context windows. Although vector stores and retrieval can provide access to a larger knowledge pool, their representation power is not as powerful as full attention.
Challenges in long-term planning and task decomposition: Planning over a lengthy history and effectively exploring the solution space remain challenging. LLMs struggle to adjust plans when faced with unexpected errors, making them less robust compared to humans who learn from trial and error.
Reliability of natural language interface: Current agent system relies on natural language as an interface between LLMs and external components such as memory and tools. However, the reliability of model outputs is questionable, as LLMs may make formatting errors and occasionally exhibit rebellious behavior (e.g. refuse to follow an instruction). Consequently, much of the agent demo code focuses on parsing model output.

Present opensource solutions
langchain
https://python.langchain.com/docs/modules/agents/quick_start
AgentExecutor
from langchain_openai import ChatOpenAI
from langchain.agents import create_openai_functions_agent
from langchain.agents import AgentExecutor

llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)

from langchain import hub

# Get the prompt to use - you can modify this!
prompt = hub.pull("hwchase17/openai-functions-agent")
agent = create_openai_functions_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

auto-gpt
https://github.com/Significant-Gravitas/AutoGPT

Anatomy of an Agent:

Profile: Sets an agent's personality and specialization.
Memory: Encompasses the agent's long-term and short-term memory, storing both historical data and recent interactions.
Planning: The strategy the agent employs to tackle problems.
Action: The stage where the agent's decisions translate to tangible results.

Agent categories
General agents: like auto-gpt
Vertical agents: data-interpreter, code-interpreter, meta-gpt, agents built by coze.
Implmentation details
Antonamy of agent in lilianweng's blog.

Components

planing: ReACT, Reflection, or that used in XAgent
tools: function tool protocol, toolkits
memory: state handling

API
High-level API:  Assistant API in OpenAI.
Low-level API: Agent Protocol by autogpt
Digging deep

[x] Learn more about Assistant API
[x] Code reading for AgentExecutor  in langchain.  Bonus: zhihu article.
[x] XAgent
[ ] autogen
considerations with multi-agent.  agent model has deep connections with multi-agent or distributed agent senarios.

[ ] Actor frameworks:  Sobjectizer , CAF
[ ] Actor with GRPC: https://amencke.medium.com/implementing-the-actor-model-from-scratch-in-c-87442c3fec1
[ ] actor vs flowgraph ?

Agent architecture

self-relect related papers: https://github.com/rxlqn/awesome-llm-self-reflection

[x] reflection
[x] reflexion
[x] ReAct

[x] outerloop and innter loop in XAgent
[x] plan and execute
[x] LLMCompiler
[ ] ReWOO

langgraph examples: https://github.com/langchain-ai/langgraph/tree/main/examples

reflections with langgraph imlmentation

dynamics of agent state: proto may not be a good choice as it's meant to be compiled.
state checkpointer: duckdb is still a winner
consideration:

human in the loop
conditional branching
branching
entry point, finish point

https://github.com/RobinQu/instinct.cpp/issues/16#issuecomment-2039005942

Planing methods
Reflection
https://arxiv.org/abs/2303.11366
https://www.promptingguide.ai/techniques/reflexion
https://github.com/langchain-ai/langgraph/blob/main/examples/reflection/reflection.ipynb?ref=blog.langchain.dev

Planing method - reflexion
https://arxiv.org/abs/2303.11366
https://github.com/langchain-ai/langgraph/blob/main/examples/reflexion/reflexion.ipynb

The agent explicitly critiques its responses for tasks to generate a higher quality final response, at the expense of longer execution time.

The main component of Reflexion is the "actor", which is an agent that reflects on its response and re-executes to improve based on self-critique.

Agent Architecture - XAgent

XAgent is composed of three parts:
🤖 Dispatcher is responsible for dynamically instantiating and dispatching tasks to different agents. It allows us to add new agents and improve the agents' abilities.
🧐 Planner is responsible for generating and rectifying plans for tasks. It divides tasks into subtasks and generates milestones for them, allowing agents to solve tasks step by step.
🦾 Actor is responsible for conducting actions to achieve goals and finish subtasks. The actor utilizes various tools to solve subtasks, and it can also collaborate with humans to solve tasks.

This is slimilar to LLMCimpiler and Plan&Execute.
Hightlights:

built-in toolserver, which has capabilties of file handling, web brwoser, shell , api collections with rapid api
ToolBench proven tool-agent performance, with finetued llama2-7b.
It's has GUI app to monitor execution flow.

Agent Archtecture - ReWOO
https://arxiv.org/abs/2305.18323
https://github.com/langchain-ai/langgraph/blob/main/examples/rewoo/rewoo.ipynb?ref=blog.langchain.dev

to improve on the ReACT-style agent architecture in the following ways

Reduce token consumption and execution time by generating the full chain of tools used in a single pass.
Simplify the fine-tuning process. Since the planning data doesn't depend on the outputs of the tool, models can be fine-tuned without actually invoking the tools (in theory).

Components

Planner: prompts an LLM to generate a plan in the form of a task list. The arguments to each task are strings that may contain special variables (#E{0-9}+) that are used for variable subtitution from other task results.
Worker
Solver: generates the answer for the initial task based on the tool observations

Planner prompt:
prompt = """For the following task, make plans that can solve the problem step by step. For each plan, indicate \
which external tool together with tool input to retrieve evidence. You can store the evidence into a \
variable #E that can be called by later tools. (Plan, #E1, Plan, #E2, Plan, ...)

Tools can be one of the following:
(1) Google[input]: Worker that searches results from Google. Useful when you need to find short
and succinct answers about a specific topic. The input should be a search query.
(2) LLM[input]: A pretrained LLM like yourself. Useful when you need to act with general
world knowledge and common sense. Prioritize it when you are confident in solving the problem
yourself. Input can be any instruction.

For example,
Task: Thomas, Toby, and Rebecca worked a total of 157 hours in one week. Thomas worked x
hours. Toby worked 10 hours less than twice what Thomas worked, and Rebecca worked 8 hours
less than Toby. How many hours did Rebecca work?
Plan: Given Thomas worked x hours, translate the problem into algebraic expressions and solve
with Wolfram Alpha. #E1 = WolframAlpha[Solve x + (2x − 10) + ((2x − 10) − 8) = 157]
Plan: Find out the number of hours Thomas worked. #E2 = LLM[What is x, given #E1]
Plan: Calculate the number of hours Rebecca worked. #E3 = Calculator[(2 ∗ #E2 − 10) − 8]

Begin!
Describe your plans with rich details. Each Plan should be followed by only one #E.

Task: {task}"""

Special step parsing:
# Regex to match expressions of the form E#... = ...[...]
regex_pattern = r"Plan:\s*(.+)\s*(#E\d+)\s*=\s*(\w+)\s*\[([^\]]+)\]"
prompt_template = ChatPromptTemplate.from_messages([("user", prompt)])
planner = prompt_template | model

def get_plan(state: ReWOO):
    task = state["task"]
    result = planner.invoke({"task": task})
    # Find all matches in the sample text
    matches = re.findall(regex_pattern, result.content)
    return {"steps": matches, "plan_string": result.content}

Solver prompt
solve_prompt = """Solve the following task or problem. To solve the problem, we have made step-by-step Plan and \
retrieved corresponding Evidence to each Plan. Use them with caution since long evidence might \
contain irrelevant information.

{plan}

Now solve the question or task according to provided Evidence above. Respond with the answer
directly with no extra words.

Task: {task}
Response:"""

Limitations

If little context of the environment is available, the planner will be ineffective in its tool use. This can typically be ameliorated through few-shot prompting and/or fine-tuning.
The tasks are still executed in sequence, meaning the total execution time is impacted by every tool call, not just he longest-running in a given step.

Agent archtecture reviews
Categories:
Self-relection: Reflection, Relfexion
Planner enhanced: LLMCompiler, Plan&Execute
Tool agent: ReACT, ReWOO
Conlucsions

speed/cost vs quality
multiple LLM, multiple chains are used

Progress update:

look into autogen if multi-agent is a must.
actor pattern is no priority now. POC tasks in #18  is more urgent.

Appendix
Update 1:  llama index has a very interesting Agent interface.
https://docs.llamaindex.ai/en/stable/module_guides/deploying/agents/agent_runner/

from llama_index.core.agent import AgentRunner
from llama_index.agent.openai import OpenAIAgentWorker

# construct OpenAIAgent from tools
openai_step_engine = OpenAIAgentWorker.from_tools(tools, llm=llm, verbose=True)
agent = AgentRunner(openai_step_engine)

# create task
task = agent.create_task("What is (121 * 3) + 42?")

# execute step
step_output = agent.run_step(task)

# if step_output is done, finalize response
if step_output.is_last:
    response = agent.finalize_response(task.task_id)

# list tasks
task.list_tasks()

# get completed steps
task.get_completed_steps(task.task_id)

print(str(response))


Add support for wildcard topics

Coverage decreased (-6.5%) to 90.741% when pulling bc138797e88349ed5ce954c229fa8ed1ca08d7d1 on whildcard into 9f1e95d0a27bc984d41b125e1d6c8605a9254d75 on master.

Coverage decreased (-6.5%) to 90.741% when pulling e49179de74c35dae5f83121612a62701b6257efc on whildcard into 9f1e95d0a27bc984d41b125e1d6c8605a9254d75 on master.

Coverage decreased (-6.2%) to 91.111% when pulling 81fb229d3d04d76d3eea7068702730386ef25393 on whildcard into 9f1e95d0a27bc984d41b125e1d6c8605a9254d75 on master.


Add RenderableShapeBuilder

RenderableShapeBuilder allows to visualize several renderable's properties.
Currently, it can build normal, tangent and binormal.

It's a Java side 'float' and in several places in libgdx, a constant is used.

This change copies over the vertices and indices from native to managed memory one at a time, it would be more performant to copy them over all at once or to move the code to jni.

Yes you are write, I could download all indices and vertices before looping through renderables. ?


A supply-chain security vulnerability found

Hi,
I'm a Cybersecurity researcher developing Packj [1]. Our tool has detected a supply-chain vulnerability in this repository. In order for me to disclose it, kindly enable GitHub Private vulnerability reporting, which allows security research to responsibly disclose a security vulnerability.
Thanks!
Packj detects malicious/"risky" NPM/PyPI/Ruby dependencies: https://github.com/ossillate-inc/packj

Hi,
I have enabled this, thank you.

Thanks! Just reported my finding.

Did you get a chance to take a look?


Could not set team ID to 'xxxxxxxxxx', only found the following available teams: 118361725, 118103445, 118225401, 118456689

While uploading the build to iTunes Connect with "Deploy to iTunes Connect / TestFlight (with Deliver)" There seems to be problem with it detecting my team_id
Even tough I have provided the team_id it couldn't find it.
Where did the issue happen? -> Deploy to iTunes Connect / TestFlight (with Deliver)

can you run fastlane env and also post your deliverfile?
is your team in the "available list" ?

@hjanuschka I am using bitrise.io to do this, following is the log which was generated and what I supply as my team is an alpha-numeric team id, whereas the the list which is printed is numeric team_ids. So no the available list doesn't contain my team id and as a matter of fact among all the teams I have no team has any ID similar to ones being printed
**+------------------------------------------------------------------------------+
| (7<EMAIL_ADDRESS>                                  |
+------------------------------------------------------------------------------+
| id: deploy-to-itunesconnect-deliver                                          |
| version: 2.6.2                                                               |
| collection: https://github.com/bitrise-io/bitrise-steplib.git                |
| toolkit: bash                                                                |
| time: 2016-11-22T10:14:43-08:00                                              |
+------------------------------------------------------------------------------+
|                                                                              |
Config:

ipa_path: /Users/vagrant/deploy/XXX_Prod.ipa
pkg_path:
itunescon_user<EMAIL_ADDRESS>password: ***
app_id: XXXXXXXXXX
submit_for_beta: no
skip_metadata: yes
skip_screenshots: yes
team_id: my_alpha_numeric_team_id
team_name: XXXXXXXXXX
update_deliver: yes

Setup
(i) deliver already installed
(i) updating  deliver...
(i) Which ruby: /usr/local/bin/ruby
(i) Ruby version: ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin15]
-> using brew (/usr/local/bin/ruby) ruby
$ gem install deliver --no-document
Successfully installed credentials_manager-0.16.2
Successfully installed spaceship-0.37.0
Successfully installed fastlane_core-0.57.0
Successfully installed deliver-1.15.1
4 gems installed
(i) Setup took 2 seconds to complete
Deploy
Note: if your password
contains special characters
and you experience problems, please
consider changing your password
to something with only
alphanumeric characters.
Be advised that this
step uses a well maintained, open source tool which
uses undocumented and unsupported APIs (because the current
iTunes Connect platform does not have a documented and supported API)
to perform the deployment.
This means that when the API changes
this step might fail until the tool is updated.
[10:14:49]: Login to iTunes Connect<EMAIL_ADDRESS>Looking for related GitHub issues on fastlane/fastlane...
Found no similar issues. To create a new issue, please visit:
https://github.com/fastlane/fastlane/issues/new
Run fastlane env to append the fastlane environment to your issue
[!] The request could not be completed because:
Could not set team ID to 'my_alpha_numeric_team_id', only found the following available teams: 118361725, 118103445, 118225401, 118456689
[!] Error description: Deploy failed!
(i) Exit code was: 1
(i) Calling cleanup function before exit
-> finalcleanup
Error
Error Description:
Deploy failed!
See the logs for more information
If this is the very first build
of the app you try to deploy to iTunes Connect then you might want to upload the first
build manually to make sure it fulfills the initial iTunes Connect submission
verification process.
|                                                                              |
+---+---------------------------------------------------------------+----------+
| x |<EMAIL_ADDRESS>(exit code: 1)          | 9.07 sec |
+---+---------------------------------------------------------------+----------+
| Issue tracker: ...om/bitrise-io/steps-deploy-to-itunesconnect-deliver/issues |
| Source: https://github.com/bitrise-io/steps-deploy-to-itunesconnect-deliver  |
+---+---------------------------------------------------------------+----------+**

ok thx - i am not familiar with bitrise, can you share your fastfile?

@hjanuschka the Bitrise Deliver step runs deliver directly, without using fastlane - see: https://github.com/bitrise-io/steps-deploy-to-itunesconnect-deliver/blob/master/step.sh#L134
Basically: deliver --team_id "${team_id}" ...

Based on the non redacted log, it seems that Deliver might expect a different kind of team id. The user specified the team ID from the Apple Developer Portal, the one which is e.g. in the Provisioning Profiles.
Related infos: https://github.com/bitrise-io/build.issues/issues/10#issuecomment-262468196

My guess, based on the log, is that deliver might require some kind of internal team ID - if you check the error, the Developer Team ID you specified is alpha numerical (e.g. 12345A12B1), while the IDs deliver lists as "available" team IDs include only numbers, and are 1 character shorter too (e.g. 123456789).
Relevant part of the log (with changed value):
Could not set team ID to '12345A12B1', only found the following available teams: 123456789, 223456789, 323456789, 423456789

Can this be the issue? Is this expected, or a deliver bug?

you can run spaceship from commandline
and get the right team id by:
spaceship
Spaceship.client.teams

it should output the teams object - where you can find the id under teamId
for the first team you can do it like this.
Spaceship.client.teams.first["teamId"]

Was this changed? I believe the team id param of deliver used to accept the Developer Team ID, but I might be wrong (we don't have a test where we'd use the Team ID, we always use the Team Name param)

not sure if this was changed, i don't think so - can you test with the sample above, and let me know if it works.?

I believe @singhamit089 resolved this issue by using the team name parameter instead of the team ID param - https://github.com/bitrise-io/build.issues/issues/10#issuecomment-262468196 & https://github.com/bitrise-io/build.issues/issues/10#issuecomment-262694209


remove layout.html from assets

apps/app/src/assets/layout.html
find location which is not exported and accessible

moved to /test


Parameters for openssl.cnf

Hello,
Would you please make openssl config parameters accessible via class parameters?  This would allow us to use hiera to manage parameters more gracefully than with individual template files.

Which parameters would you see fit to override?