Support no chromadb, sentence_transformers or pypdf

Why are these changes needed?
Address #531
Support no chromadb, sentence_transformers or pypdf when using customized vector database, embedding function or w/o pdf files, respectively.
Related issue number
Closes #531
Checks

[ ] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

Codecov Report

Merging #556 (64e401d) into main (0dd0fc5) will decrease coverage by 0.42%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #556      +/-   ##
==========================================
- Coverage   32.39%   31.98%   -0.42%
==========================================
  Files          22       22
  Lines        2772     2786      +14
  Branches      630      632       +2
==========================================
- Hits          898      891       -7
- Misses       1807     1827      +20
- Partials       67       68       +1

Flag
Coverage Δ

unittests
31.98% <0.00%> (-0.35%)
:arrow_down:

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

Files
Coverage Δ

...gen/agentchat/contrib/retrieve_user_proxy_agent.py
0.00% <0.00%> (ø)

autogen/retrieve_utils.py
0.00% <0.00%> (ø)

... and 1 file with indirect coverage changes

@kdcokenny could you check if this PR works for you? Thanks.

These things can be tricky, best to procede with caution

shall we decouple [retrievechat] and [chromadb]? Is there any common dependency between different retrieve backends? If not, we may create [retrievechat_chromadb] etc. It will be good to clarify first, about what is required for all retrieve chat, what is required for each specific backend, etc.

RetrieveChat has no must-install dependencies. The [retrievechat] extras could be treated as a default solution for running it, but chromadb, sentence_transformers and pypdf all have alternatives, ipython is not needed for pure QA. Advanced users can install different dependencies as they want.
What if we keep the current [retrievechat] extras, but improve the docs  in the Installation section to guide users for different choices like qdrant for vectordb, huggingface or openai for embedding, unstructured for pdf/word... extraction?

What I would suggest it adding import error try catch blocks which prompt the users to pip install chromadb or qdrant-client if importing one of them results in an import error. I can show an example if you’d like
On Sun, Nov 5, 2023 at 21:54, Li Jiang @.***(mailto:On Sun, Nov 5, 2023 at 21:54, Li Jiang < wrote:

shall we decouple [retrievechat] and [chromadb]? Is there any common dependency between different retrieve backends? If not, we may create [retrievechat_chromadb] etc. It will be good to clarify first, about what is required for all retrieve chat, what is required for each specific backend, etc.

RetrieveChat has no must-install dependencies. The [retrievechat] extras could be treated as a default solution for running it, but chromadb, sentence_transformers and pypdf all have alternatives, ipython is not needed for pure QA. Advanced users can install different dependencies as they want.
What if we keep the current [retrievechat] extras, but improve the docs in the Installation section to guide users for different choices like qdrant for vectordb, huggingface or openai for embedding, unstructured for pdf/word... extraction?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

@kdcokenny could you check if this PR works for you? Thanks.

When I was testing it I was getting weird errors like: TypeError: Completions.create() got an unexpected keyword argument 'request_timeout'
This may be due to the new openai v1 upgrade that I havent taken account for. Here's my exported py notebook:
# %%
# %pip install -q pyautogen qdrant-client fastembed
# %pip install -q chromadb pypdf # required by autogen for some reason

# %%
%pip install -q git+https://github.com/microsoft/autogen.git@support_no_chromadb
%pip install -q qdrant-client fastembed

# %%
from qdrant_client import QdrantClient

host = "qdran...ws.com"

client = QdrantClient(host=host, api_key="...")

# %%
config_list = [
    {
        'model': 'gpt-3.5-turbo',
        'api_key': '...',
    },
]

# %%
# import autogen

# autogen.ChatCompletion.start_logging()

# %%
client.set_model("BAAI/bge-base-en-v1.5")

# %%
from autogen.agentchat.contrib.qdrant_retrieve_user_proxy_agent import QdrantRetrieveUserProxyAgent

ragproxyagent = QdrantRetrieveUserProxyAgent(
    name="ragproxyagent",
    human_input_mode="NEVER",
    max_consecutive_auto_reply=10,
    retrieve_config={
        "task": "qa",
        "chunk_token_size": 2000,
        "model": config_list[0]["model"],
        "client": client,
        "embedding_model": "BAAI/bge-base-en-v1.5",
        "collection_name": "wized_test",
    },
)

# %%
from autogen.agentchat.contrib.retrieve_assistant_agent import RetrieveAssistantAgent

assistant = RetrieveAssistantAgent(
    name="assistant",
    system_message="You are a helpful assistant.",
    llm_config={
        "request_timeout": 600,
        "seed": 42,
        "config_list": config_list,
    },
)

# %%
assistant.reset()

qa_problem = "What is Wized?"
ragproxyagent.initiate_chat(assistant, problem=qa_problem)


Optimize route matching

So I have given the route matching optimization I suggested in #60 a go. It is not quite done yet but I would appreciate some feedback.
The Changes
Taking big inspiration from https://www.npopov.com/2014/02/18/Fast-request-routing-using-regular-expressions.html and https://nicolas-grekas.medium.com/making-symfonys-router-77-7x-faster-1-2-958e3754f0e1, I have refactored the route matching to utilize one big Regex and use that to match all available routes instead of matching all routes on their own.
The first step here is to do a hash-map lookup for static routes, therefore I changed the routes in the RouteConfig to an assoc array.
The next step is to match dynamic routes via a big Regex. For this, each Route now already has a cached matching regex ready. These routes are then "joined" using an "or" ( | ). To identified which route matched, I am using Marks, so I basically mark each route their respective numeric-index in the array. That looks like "(*Mark:1)".
The Regex will look something like this:
#^(?|/route-1 (*MARK:0) |/route-2 (*MARK:1) |/99 (*MARK:2))$#.
Short explanaition:
(?| => branch reset group
/route-1 => the regex of the route
(*Mark:0) => we can later identify a match by this mark
One problem this implementation still has is that we also match static routes in the dynamic part, but changing that would mean splitting routes in RouteConfig into "staticRoutes" and "dynamicRoutes", which I don't like too much.
Performance
To test the performance, I created 5 Controllers. Those contain 531 GET Routes and 204 POST routes.
The GET routes consist of 112 static and 419 dynamic routes (1-2 params per dynamic route).
I then checked 4 different routes: The first static route, the last static route, the first dynamic route and the last dynamic route.
First static route
before:

after:

1.802μs -> 2.089μs => 15,92% slower
Last static route
before:

after:

247,153μs -> 1,822μs => 99,26% faster
First dynamic route
before:

after:

3,803μs -> 44,208μs => 1.062,45% slower
Last dynamic route
before:

after:

271,565μs -> 44,511μs => 83,60% faster
I used PhpBench and the following Bench class:
<?php

declare(strict_types=1);

namespace Tests\Tempest\Benchmark;

use PhpBench\Attributes\Revs;
use Tempest\AppConfig;
use Tempest\Container\GenericContainer;
use Tempest\Discovery\RouteDiscovery;
use Tempest\Http\GenericRequest;
use Tempest\Http\GenericRouter;
use Tempest\Http\Method;
use Tempest\Http\RouteConfig;

class GenericRouterBench
{
    private GenericRouter $genericRouter;
    private GenericRequest $genericRequest;

    public function __construct()
    {
        $genericContainer = new GenericContainer();
        $appConfig = new AppConfig();

        $routeConfig = new RouteConfig([]);
        $routeDiscovery = new RouteDiscovery($routeConfig);
        $routeDiscovery->restoreCache($genericContainer);

        $this->genericRouter = new GenericRouter(
            $genericContainer,
            $appConfig,
            $routeConfig
        );

        // first static route
        $this->genericRequest = new GenericRequest(Method::GET, '/', []);
        // last static route
        //$this->genericRequest = new GenericRequest(Method::GET, '/99', []);
        // first dynamic route
        //$this->genericRequest = new GenericRequest(Method::GET, '/books/xyz', []);
        // last dynamic route
        //$this->genericRequest = new GenericRequest(Method::GET, '/test/a/b', []);
    }

    #[Revs(10_000)]
    public function benchDispatch(): void
    {
        $this->genericRouter->dispatch($this->genericRequest);
    }
}

So I skip loading the routes from the cache etc. and then dispatch the prepared request 10.000 times.
This is on an M2 pro.
I am not a bit benchmark guy, but the results seem reasonable.
In conclusion, this solution should provide a pretty big performance improvement (speaking about relative numbers) on average.
Should this be merged
Honestly I am not sure. It does bring some Performance improvements, -99,26% on last static route sounds amazing.
But I don't think it matters too much, we're talking about 200μs to 2μs.
On the other hand, it does add to the complexity of the code and hides a lot of logic behind a Regex.
Maybe it'd be a good compromise do match the static routes via a hash key lookup and leave the dynamic matching as is?
Let me know what you think.
Closes #60

First off, nice write up and well done! While @brendt will have the final call, I love my RegEx and this stuff is pretty cool. I think it's certainly a nice value add.
A couple of initial thoughts just from the technical side...

We could potentially optimize this more by grouping routes by prefixes, right? See here for the part 2 on the Symfony article. It's an understandable improvement from a RegEx perspective.
There are some (very) minor improvements that we could make to the RegEx patterns.

You are replacing the route param string with ([\w\d\s]+). \w will account for \d so that is not necessary and adds another thing for RegEx to evaluate.
We could implement some support for more specific matching (e.g., {id:int}) that equates to a more specific pattern (e.g., \d) which gives RegEx less to evaluate and will improve speed (again, we're dealing in the minors here).
We could also add direct support for RegEx matching and put that power back in the developers hands for those who are comfortable with it. Something to think about.

There is no reason that we couldn't refactor this to cache the built up RegEx pattern and only build it up once. This could be beneficial in production where these should not change and we could skip foreach loops, etc. Do you see any downsides to this?

But I don't think it matters too much, we're talking about 200μs to 2μs.

Yeah, it is "minor" but it's also nice to be able to say the router is fast and that we likely won't have that limitation anytime soon. 😅

On the other hand, it does add to the complexity of the code and hides a lot of logic behind a Regex.

I'd be less concerned about this, personally. Not many people are as quick to jump into the router components like you are here. I think the key is well documenting whatever we opt for.

Do you have your benchmarks uploaded anywhere? I'd love to mess around with them.

Thanks for the very quick and elaborate feedback!

We could potentially optimize this more by grouping routes by prefixes, right? See here for the part 2 on the Symfony article. It's an understandable improvement from a RegEx perspective.

Yes this could be another optimization, I did not want to go into that for the first step as I think it makes it more complex. Then again we are now here to optimize it, so might as well optimize it to the fullest 😁

You are replacing the route param string with ([\w\d\s]+). \w will account for \d so that is not necessary and adds another thing for RegEx to evaluate.

True! FastRoute and Symfony are using [^/], which is probably as simple as it gets.

We could implement some support for more specific matching (e.g., {id:int}) that equates to a more specific pattern (e.g., \d) which gives RegEx less to evaluate and will improve speed (again, we're dealing in the minors here).
We could also add direct support for RegEx matching and put that power back in the developers hands for those who are comfortable with it. Something to think about.

I think this is actually more of a cool "validation" feature than a performance improvement, right? FastRoute does that using the {id:\d+} Syntax, Symfony uses {id<\d+>}. Giving users some "pre-built" patterns (such as the "int" you mentioned) sounds like a DX win.
When thinking about all these improvement and also having in the back of my head that we will probably need some form of setting priorities on routes at some point, it might be wise to jump back to @brendt's initial thought and use FastRoute or Symfony Router internally?

There is no reason that we couldn't refactor this to cache the built up RegEx pattern and only build it up once. This could be beneficial in production where these should not change and we could skip foreach loops, etc. Do you see any downsides to this?

I did think about that but I am not sure if a cache read is faster than the loop here. I think with the current, serialized cache it would be slower. Maybe if we'd cache to PHP files to leverage opcache it would be faster.

Do you have your benchmarks uploaded anywhere? I'd love to mess around with them.

I do not currently, I'll try to make a repo probably this evening.

I did not want to go into that for the first step as I think it makes it more complex.

That makes total sense! Let's get some feedback from @brendt on whether he's willing to merge and pursue if so. I'm excited about the possibilities here. 🙂

[^/]

Oh, that makes total sense.

I think this is actually more of a cool "validation" feature than a performance improvement, right?

Pretty much. The speed performance should have a negligible difference though, as it is matching a fewer amount of characters. 🙂
It may be worth only support RegEx for the validation and thinking about adding our own DX later on.

it might be wise to jump back to @brendt's initial thought and use FastRoute or Symfony Router internally?

Where's the fun in that?! 😉 🙃

I did think about that but I am not sure if a cache read is faster than the loop here. I think with the current, serialized cache it would be slower.

You may be right, not sure.

I do not currently, I'll try to make a repo probably this evening.

Cool, thanks!

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

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

Details

27 of 29 (93.1%)  changed or added relevant lines in 3 files are covered.
30 unchanged lines in 5 files lost coverage.
Overall coverage decreased (-1.5%) to 80.235%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/Http/GenericRouter.php
19
21
90.48%

Files with Coverage Reduction
New Missed Lines
%

src/Database/Migrations/CreateMigrationsTable.php
1
75.0%

src/Discovery/DiscoveryDiscovery.php
2
72.73%

src/Http/GenericRouter.php
3
84.62%

src/Container/GenericContainer.php
9
90.53%

src/Tempest.php
15
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-1.5%

Covered Lines:
1571

Relevant Lines:
1958

💛  - Coveralls

It may be worth only support RegEx for the validation and thinking about adding our own DX later on.

I also think it would be nice to support RegEx in params. But we'd have to think about what kind of RegEx should be allowed. I think Symfony disallows capturing group syntax for example (although this probably already a concern right now as we just use the route as our regex (minus params)).

[^/]

I'll change this.

Where's the fun in that?! 😉 🙃

That's the spirit 😄

You may be right, not sure.

As always in performance: it's not going to be how we guess. I am going to benchmark this.

Do you have your benchmarks uploaded anywhere? I'd love to mess around with them.

Just published a little benchmark repo https://github.com/N-Silbernagel/tempest-benchmark. You do need to mange the composer.json to make use of your local tempest repo. And I had to mess with the discoveryLocations which might be a concern for another issue... The discovery did not "see" the framework source because it's not a namespace of the project.

I see that some tests are failing. Is this because of the changes here or because of the testsuite on that version?

My bad, removed the extended flag on the RegEx. Green now.
I did notice something else... for a route "/users/{userId}" we could match the route when a request goes to "/users/{userId}", because it'll be matched through the hashmap lookup. I'll also look into that.

[^/]

Added.

I did notice something else... for a route "/users/{userId}" we could match the route when a request goes to "/users/{userId}", because it'll be matched through the hashmap lookup. I'll also look into that.

Fixed.

One problem this implementation still has is that we also match static routes in the dynamic part

Also fixed.
I cache if the route is dynamic now.

Ok, first of all, @N-Silbernagel I'm seriously impressed by the effort your put into this, thank you!
Second, there's a repo called tempest-benchmark which contains a setup script for a couple thousand of controllers. Just run php setup/setup.php and it generates those controllers. You'll have to change the composer.json though to point to your fork of tempest/framework, or symlink it manually.
Third, I actually think the implementation is pretty readable. I like how each route holds its own part of the regex. I might refactor the router part a bit when I'm not on my laptop, maybe add a separate function to encapsulate building the regex or something, and adding some comments explaining what is happening.
I actually think we'll merge this.
And again, impressed!

I'm glad you like it an are willing to merge!

Second, there's a repo called tempest-benchmark

That is really cool, should have looked for that 😄

I might refactor the router part a bit

Cool, excited to see what you make of it.
Should we keep the other possible changes like adding RegEx patterns to the params and grouping by prefixes for followup PRs?

Should we keep the other possible changes like adding RegEx patterns to the params and grouping by prefixes for followup PRs?

I think so, yes. Let me do a quick review here, and then I'll merge it 👍

Left some comments, but I'll also create a new issue to keep track of further possible improvements.

There is no reason that we couldn't refactor this to cache the built up RegEx pattern and only build it up once. This could be beneficial in production where these should not change and we could skip foreach loops, etc. Do you see any downsides to this?

@aidan-casey
I've put some time into testing this and the results are quite surprising to me.
For the baseline, I took my GenericRouterBench and pulled restoring the cache into the benchmark, so that caching is included in the timings.
I've got 4 different setups:
Current main, with opcache
This version is using the loop to create the RegEx "on demand".

The difference between static and dynamic matching is quite high, as seen before.
Caching with file_get_contents, with opcache
Simply writes the RegEx to a file and gets it via "file_get_contents".

Static matching is 9μs slower than on main, Dynamic matching 27μs faster. So my initial assumption was wrong.
Caching with require, without opcache
Write the cache as a php file file_put_contents(self::CACHE_PATH_REGEX, "<?php return " . var_export($this->routeConfig->regex, true) . ";").
And gets it via require self::CACHE_PATH_REGEX;.

Caching with require, with opcache
Same as the previous but opcache is enabled.

Basically as fast as main for static route but 45μs faster for dynamic routing! Not a lot of difference between static and dynamic routing.
The code is here https://github.com/N-Silbernagel/tempest-framework/tree/cache. Keep in mind it is not what I would want to merge, just a quick implementation for testing.

I still think these are promising results. Could you add one more benchmark? Try to store it as a class, eg. RouteCache with a method "getRegex" or something, then use this class, relying on composer's autoloader. The reason I'm asking is because I think opcache will be able to cache a class, but not a hardcoded plain PHP file — I think.
Also, even with the simple require call, 45μs is a 10% performance gain, which I'd say isn't bad at all.

I've now tested with the class and am getting similar results.
From main:

With plain php file:

With class:

I'd say there is not too much of a difference here. What I think is a downside with using autoloading is that using optimized autoloader would probably not work.

Also just for fun I've tried to cache the routes via php files as well. Which results in these timings:

I suppose you mean instead of serializing them? That's actually an impressive result. Would you be able to PR that part as a standalone PR?
For the other changes: I'm totally up for merging another PR with the improvements you've been tinkering with. Probably the plain PHP file is the way to go.


Include Auth Key from Properties when Creating and Deleting Triggers

If the auth key was not specified via the command line, it would not be sent when triggers were being created, or deleted

Fixes https://github.com/openwhisk/openwhisk/issues/921

Can you try this out, @bjustin-ibm?

IPG 348.

Can you try this out, @bjustin-ibm?

It works! Thanks.

Isn't this test supposed to test if the feed action called on trigger creation gets the authKey parameter passed to it? This test doesn't assert that at all.


Setting partition field using property in topic's value part

How can we use partition timestamp field other than message ingest time, I want to use mongo object Id , which I am able to convert using a custom udf and create a stream on it.
suppose this is my stream backed by topic "k1"
select   FORMAT_TIMESTAMP(FROM_UNIXTIME(objectidtoepoch(EXTRACTJSONFIELD(payload, '$.nestes.fullDocument._id["$oid"]'))), 'yyyy-MM-dd HH:mm:ss.SSS') as ts, EXTRACTJSONFIELD(payload, '$.nestes.fullDocument.first_name') as first_name from data_compliance_stream;

I would like to use the ts field for partitioning

This connector consumes Debezium events, they have a transaction timestamp that is used by this connector for partitioning key, with current implementation there is no possiblity to configure which field is used for partitioning but you could write Kafka Connect transformation to put value of that field in the ts field.
https://github.com/getindata/kafka-connect-iceberg-sink#iceberg-partitioning-support

@johanhenriksson I dont recently have time to do some implementation here but I would be happy to do the review.

@johanhenriksson It should be in the first format you presented, the reason why in source it looks like that it is that before Sink there is an unwrap transformation:
transforms: unwrap
transforms.unwrap.type: io.debezium.transforms.ExtractNewRecordState
transforms.unwrap.add.fields: op,table,source.ts_ms,db

To be more specific it should be
{
  "source" : {
    "ts_ms": 123
  }
}


Resolve Circular Dependency Errors

When a circular dependency exists, the Navigator will throw "subroutine redefined" errors despite this not be an issue for Perl itself. This is due to the use of perl -c Foo.pm. I like the solution from Padre shown below:
https://github.com/PadreIDE/Padre/blob/master/lib/Padre/Document/Perl/Syntax.pm#L56
The idea is to first parse the Perl module manually to find the package name, and add this to the %INC. This could either be done in the Inquisitor.pm, or in getAdjustedPerlCode() in diagnostics.ts.
In addition to solving redefined errors, it will also fix the problem where a locally modified and unsaved module is being analyzed, and a circular dependency results in the saved version being loaded. This causes confusing issues on symbol exports and syntax checks.

Fixed by #31


Updates to tileset locations on ion do not appear in Unity unless Unity is reopened

Steps to reproduce:

Select or create a tileset on ion. (A small model will work best.)
Load it into a Unity scene.
On ion, change the name and tileset location.
Delete the tileset in Unity.
Back in Unity, refresh the asset list via the blue button in the "Cesium ion Assets" panel.
You should see the asset with the updated name. Select "Add to Level"
The asset will be in the original location prior to the ion change.
"Refresh Tileset" on the gameobjects "Cesium 3D Tileset" component doesn't update the location.
Close Unity and reopen the project. The asset's position will be updated. (Note that reloading the scene without restarting Unity has no effect.)

This is caused by the endpointCache in CesiumIonTilesetLoader.cpp:
https://github.com/CesiumGS/cesium-native/blob/v0.38.0/Cesium3DTilesSelection/src/CesiumIonTilesetLoader.cpp#L473
The purpose of this cache is to avoid creating extra ion sessions unnecessarily when, for example, switching between Edit and Play mode. See the original issue here: https://github.com/CesiumGS/cesium-native/issues/382
I'm not sure how we could know to bust this cache in this case, without simply hitting the endpoint service every time.


The error "Cannot support closure with function kind 0"   has occurred when I run mlc-chat CLI on the M1 Mac

Thnaks for your great job!  I have successfully run mlc-chat(CLI) on Ubuntu20 (x86_64).
However,  it has occurred the following error, when I run the mlc-chat-nightly-0.1.dev72 on the device of  Mac Pro(2021) M1Pro.
➜ mlc_chat_cli --local-id vicuna-v1-7b-q3f16_0
Use MLC config: "/Users/bennett/projects/mlc-chat/dist/prebuilt/mlc-chat-vicuna-v1-7b-q3f16_0/mlc-chat-config.json"
Use model weights: "/Users/bennett/projects/mlc-chat/dist/prebuilt/mlc-chat-vicuna-v1-7b-q3f16_0/ndarray-cache.json"
Use model library: "/Users/bennett/projects/mlc-chat/dist/prebuilt/lib/vicuna-v1-7b-q3f16_0-metal.so"
Loading model...
You can use the following special commands:
  /help               print the special commands
  /exit               quit the cli
  /stats              print out the latest stats (token/sec)
  /reset              restart a fresh chat
  /reload [model_id]  reload model "model_id" from disk, or reload the current model if model_id is not specified

[17:56:39] /Users/catalyst/Workspace/mlc-chat-conda-build/tvm/src/runtime/metal/metal_device_api.mm:165: Intializing Metal device 0, name=Apple M1 Pro
[17:56:39] /Users/catalyst/Workspace/mlc-chat-conda-build/tvm/src/runtime/relax_vm/vm.cc:699:
---------------------------------------------------------------
An error occurred during the execution of TVM.
For more information, please see: https://tvm.apache.org/docs/errors.html
---------------------------------------------------------------
  Check failed: (finfo.kind == VMFuncInfo::FuncKind::kVMTIRFunc) is false: Cannot support closure with function kind 0
Stack trace:
  [bt] (0) 1   libtvm_runtime.dylib                0x00000001049bb714 tvm::runtime::detail::LogFatal::Entry::Finalize() + 84
  [bt] (1) 2   libtvm_runtime.dylib                0x00000001049bb6c0 tvm::runtime::detail::LogFatal::Entry::Finalize() + 0
  [bt] (2) 3   libtvm_runtime.dylib                0x00000001049b5f48 __clang_call_terminate + 0
  [bt] (3) 4   libtvm_runtime.dylib                0x0000000104a6bc50 tvm::runtime::relax_vm::VirtualMachineImpl::GetClosureInternal(tvm::runtime::String const&, bool) + 1768
  [bt] (4) 5   libtvm_runtime.dylib                0x0000000104a6a328 tvm::runtime::relax_vm::VirtualMachineImpl::GetFunction(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, tvm::runtime::ObjectPtr<tvm::runtime::Object> const&) + 784
  [bt] (5) 6   libtvm_runtime.dylib                0x00000001049f3db8 tvm::runtime::ModuleNode::GetFunction(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) + 100
  [bt] (6) 7   libmlc_llm.dylib                    0x00000001050a9114 mlc::llm::LLMChat::Reload(tvm::runtime::Module, tvm::runtime::String) + 988
  [bt] (7) 8   libmlc_llm.dylib                    0x00000001050a8954 mlc::llm::LLMChatModule::GetFunction(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, tvm::runtime::ObjectPtr<tvm::runtime::Object> const&)::'lambda'(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const + 252
  [bt] (8) 9   libmlc_llm.dylib                    0x00000001050a884c tvm::runtime::PackedFuncObj::Extractor<tvm::runtime::PackedFuncSubObj<mlc::llm::LLMChatModule::GetFunction(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, tvm::runtime::ObjectPtr<tvm::runtime::Object> const&)::'lambda'(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)> >::Call(tvm::runtime::PackedFuncObj const*, tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) + 40

I want to know whether mlc-chat-CLI  supports running on m1.  I'm looking forward to your reply.

I get this error as well on an MacBook Pro M2. I've run the same commands on a PC with an Nvidia GPU and AMD CPU and it works fine there.
Any help would be appreciated!

Thanks for reporting, this should be fixed now. try do
conda install -c mlc-ai -c conda-forge mlc-chat-nightly --force-reinstall
cd dist/prebuilt/lib && git pull && cd -
mlc_chat_cli --local-id vicuna-v1-7b-q3f16_0

Thanks for reporting, this should be fixed now. try do
conda install -c mlc-ai -c conda-forge mlc-chat-nightly --force-reinstall
cd dist/prebuilt/lib && git pull && cd -
mlc_chat_cli --local-id vicuna-v1-7b-q3f16_0

I am truly astounded by the speed at which my reported issue was resolved!
Finally, it works fine on the Mac pro(2021) M1 Pro,  I'm blown away once again by the work on TVM.
By the way, I would like to confirm, is there currently a clear solution in TVM for optimizing operators with variable input shapes.
Any help would be appreciated!

Yes, this repo should contain examples on dynamic shape optimization(see dispatch_tir_operators.py) some of them needs to be done by manual schedule adapted from autoschedule atm but it is a good starting pt, we can work with more automation

Thanks @kissint8 , glad it is resolved, close the issue for now


Feature request: Bulk set term status

Just like bulk set parent, but status :)

The list of actions could get long ... perhaps could have an "actions" section that collapses similar to the filters.  Not slick, but not terrible either.

Added in develop, will be in next release.

Launched in 3.5.9.


Added classifiers for Controller Area Network (CAN)

Request to add a new Trove classifier.
The name of the classifier(s) you would like to add:

Topic :: Software Development :: Embedded Systems :: Controller Area Network (CAN)
Topic :: Software Development :: Embedded Systems :: Controller Area Network (CAN) :: J1939
Topic :: Software Development :: Embedded Systems :: Controller Area Network (CAN) :: CANopen

Why do you want to add this classifier?
The CAN bus is a communications protocol (OSI layers 1 and 2) for embedded devices used in the automotive, machinery, automation, aviation and other industries and there.
At least a couple of hundred projects can benefit from there classifiers.

https://pypi.org/search/?q="can+bus"&o=-created
https://pypi.org/search/?q=J1939&o=-created

The most influential project using CAN is https://pypi.org/project/python-can/.
J1939 and CANopen are higher layer protocols on top of CAN.

Hi, can you please correct the linting failure here? Thanks!


fix sum attribute in XML records

Pull Request Test Coverage Report for Build 31

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

Totals

Change from base Build 29:
0.0%

Covered Lines:
139

Relevant Lines:
147

💛  - Coveralls


618 add view id sparqlview

Codecov Report

Merging #124 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #124      +/-   ##
==========================================
+ Coverage   80.07%   80.09%   +0.01%
==========================================
  Files          37       37
  Lines        1079     1080       +1
  Branches       89       90       +1
==========================================
+ Hits          864      865       +1
  Misses        206      206
  Partials        9        9

Impacted Files
Coverage Δ

src/View/utils.ts
84.21% <100%> (+0.42%)
:arrow_up:

Continue to review full report at Codecov.

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


ImageryProvider / TerrainProvider errorEvent does not fire for some network errors

Sandcastle example: I put up this demo on Glitch so that I could check if it's a regression.  I'm going to try older versions soon.
Browser: Chrome release, latest (but shouldn't matter)
Operating System: Win 10 latest (but shouldn't matter)
Load up the demo and it starts with locally served imagery on an Ellipsoid terrain provider.  Now, you can switch to an Ion imagery or terrain provider, either pointing to a "bad" URL (required assets should 404), or to the default URL but with an invalid API key (which should give a 401).  Watch the console output -- all errors should log a message, via the errorEvent.
In both cases (401 and 404), the IonImageryProvider does not fire the errorEvent.
The CesiumTerrainProvider does not fire for the bad API key (401), but it does fire for the bad URL (404).

Update: I went back as far as 1.62 because that's where TileMapServiceImageryProvider was introduced (as a replacement for the create* functions).  It would be pretty simple to go back further, but that's more than a year and behavior is the same, so it's probably not a regression.
I noticed that the one case that does "work" -- terrain provider, bad URL -- actually makes a request doesn't trigger the handler, to {base path}/layer.json, but then goes ahead and starts requesting tiles anyway ({base path}/0/0/0.terrain, and 0/1/0.terrain).  When these tile requests fail, the errorEvent does fire.  So, I would guess that these providers aren't raising their errorEvent for some resource loads that are needed early in the lifecycle, but maybe the terrain provider is able to try to run without this preliminary metadata.

I dug through the code a bit and it looks like at least for some providers, the initial network request (for provider metadata / capabilities) is created in the constructor, and chained to create the readyPromise.  So, I think what I'm seeing is unhandled rejection of the readyPromise, in the 3/4 of cases I didn't understand above.
I'm going to test this out.  If I'm wrong, I'll update here and keep looking for an answer.  If I'm right, I'd like to suggest an update to the docs, explaining that readyPromise will reject if there's an error with initial setup of the provider, and I'd also ask if it makes sense to fire errorEvent when the readyPromise rejects, just for consistency.

This should be OBE after https://github.com/CesiumGS/cesium/issues/10909 is closed. I'll close this issue in the meantime. Thanks!


Update Privatesend link

what do we want this changed to?  I fixed all terracoinpay -> terracoin, but we need to set a bunch of links up we don't have through out the code.


Use configured PAT in WitClientWrapper

Use the configured PAT in WitClientWrapper.cs
Uses the same code as EstablishRestConnection and EstablishSoapConnection
fixes #515 , I have verified that this works in my environment.

Merged fork into bugfix branch. Continued in separate PR: https://github.com/solidify/jira-azuredevops-migrator/pull/525


:bug: fix(hint): used with a long field label breaks to new line

Current Behavior
During implementation of the Baloise Design System, we discovered that in case the label is too long and it makes use of the hint component, then the icon (i) is broken into a single row. This issue only happens when the label is too long and cannot make it into a single row. Therefore, the hint-icon (i) is currently standing alone in a third row, even though the second row still have enough space for the icon to be displayed.
Expected Behavior
Should stay at the end of the label.
Steps to Reproduce

Version
12
Browsers
No response
Device
No response
Code Reproduction URL
No response
Additional Information

created by @jacnguymesoneer
Code of Conduct

[X] I agree to follow this project's Code of Conduct

/cib


Generate a debian/.gitignore file

This helps ignoring artifacts that git should not track, and which it can safely clean.

Nice!  Thank you @guillemj!


CI: remove macos-11; update Lima etc.

macos-11 is no longer available
https://github.blog/changelog/2024-05-20-actions-upcoming-changes-to-github-hosted-macos-runners/

macos-13 CI can't be green

macos-13 CI can't be green

Is this related to moving from macos-13-xl to macos-13? Any reason not to stay on macos-13-xl?

Reverted to macos-13-xl. Seems still relatively stable.

Yeah, but now macos-12 seems to be hanging. 😞

I also wonder whether macos-13-xl is still safe to use.
Apparently no longer documented in https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners ?

Apparently no longer documented in https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners ?

I think it is to avoid confusion with the macos-13-xlarge runner using M1 and macos-13-large using Intel.
I suspect that macos-13-xl is just a now undocumented alias for macos-13-large.
You can see the names on https://docs.github.com/en/actions/using-github-hosted-runners/using-larger-runners/about-larger-runners

I suspect that macos-13-xl is just a now undocumented alias for macos-13-large.

I came to the same conclusion. Really confusing.. 😅

I suspect that macos-13-xl is just a now undocumented alias for macos-13-large.

It is not explicitly called out, but kind of implied by

The 12-core macOS larger runner is moving from xlarge to large, and is still available by updating the runs-on: key to macos-latest-large, macos-12-large, or macos-13-large.

(from https://github.blog/news-insights/product-news/introducing-the-new-apple-silicon-powered-m1-macos-larger-runner-for-github-actions/)

I came to the same conclusion. Really confusing.. 😅

We should probably switch to the documented macos-13-large name to reduce confusion…


Run manual update

What did you do for this? So that I can do that when more stdlibs become upgradeable.

I ran this: https://github.com/JuliaPackaging/HistoricalStdlibVersions.jl/blob/main/ext/HistoricalStdlibGenerator/generate_historical_stdlibs.jl


Calling this.$route in layout head method causes huge flickering

Version
v2.4.1
Reproduction link
https://codesandbox.io/s/14qm9krom7
Steps to reproduce

Navigate back and forth between the home and about pages. Everything works properly, and there is no flickering at all.
Open  the layouts/default.vue file, uncomment console.log(this.$route).
Navigate again between the home and about pages. When leaving the home page (using the default layout under the hood), a big flickering happens.

Note that the exact opposite happens when adding console.log(this.$route) in layouts/random.vue instead.
What is expected ?
No flickering at all.
What is actually happening?
Some huge flickering.
Additional comments?
For some reason, I need to disable a JS script based on a query parameter. Accessing / should load the script, but accessing /?script=false should prevent the script to load. So, I needed to access this.$route, and ran into this bug.

This bug report is available on Nuxt community (#c8604)

This is not a Nuxt issue but a Vue-Meta one, could you please create an issue in the vue-meta repo and refer to this one? https://github.com/nuxt/vue-meta/
The problem is that head() is transformed into a computed property, and by adding this.$route that computed property updates when the route changes. Also meta updates are protected from running at the same time, but they can still run instantly after each other without any time in between.
So what happens is:

you click button
route changes
head() is called to update metaInfo
metaInfo is updated
new page component is mounted which triggers an update
metaInfo is updated
the old page component is destroyed
metaInfo is updated

Eg if I force to have 100ms between metaInfo updates then the page does not flicker because metaInfo is only updated once.

cc https://github.com/nuxt/vue-meta/issues/320

Closing here in favor of the linked ☺


Advanced Filtering: Ability to customize headers in filter modal

Description
Header labels in filter modal should be customizable per discussion with design team.
Currently, they're not customizable and are set to "Attribute, condition, value".
Was not able to find a specific statement in the design spec, but it came up during a discussion I had with the designers as a given requirement.
Version
Data-grid: V1.1.6
Screenshot

Nice to have


[DNM]mvcc/reader: reduce seek's count from default cf

TODO list:

[x] develop

[x] unit test

[x] preformace test

@BusyJay @hicqu PTAL

Benchmark with different SEEK_BOUND
Environment

1 tikv/1 tidb/1 pd /on one machine
1 table with 1000000 records
select from range with 256 thread

Results with single version

Branch
SEEK_BOUND
QPS

master
30
27553

master
8
27623

this pr
30
27650

this pr
8
27417

Seems this pr has almost no influence to that
Results with multiple version

Branch
SEEK_BOUND
QPS

master
30
5305

master
8
5663

this pr
30
6466

this pr
8
6530

Even when set SEEK_BOUND to 8, this pr still improves the performance by 15%. However, changing SEEK_BOUND from 30 to 8 seems improves only a little.

Ah.. How if write_cf is filled with delete and rollback record? The keys in default_cf will be much less than those in write_cf...?

..Or, if most of the data is stored as short values, which means, the value will be stored with write records in write_cf but not default_cf. In these situations, keys in default_cf will be much sparser than those in write_cf. I think this PR may cause performance reduction in these cases.

I do not think so, with short values, we needn't read from default cf. And In this PR, we only change the way to read default cf. So the performance shouldn't change for short values @MyonKeminta

I'm OK with closing it. But there are several points that are not accurate.

This pr benefit when there are many versions for all rows...

Not necessary. As long as there are some keys that have many versions, it will benefit.

...and the query is range scan...

Range scan is very common.

...the benefit of this pr reduce.

According to the benchmark result from @MyonKeminta above, 15% is still a significant enhancement.


Bug: Still XSS filter breaks PlantUML arrows

Environment
Host

item
version

OS
arch-linux

GROWI
3.4.6

node.js
10.15.3

npm
6.4.1

Using Docker
yes

Using growi-docker-compose
yes

Client

item
version

OS
Windows7

browser
Chrome 74.0.3729.169

How to reproduce? (再現手順)
same as #709
What happens? (症状)

One diagram was rendered

What is the expected result? (期待される動作)

Two diagrams are rendered

Note
Solution proposal
XSS filter library strips the attributes not in white list like below;
# cat index.js
xss = require("xss")
var opts = {whiteList: {"-": []}}
var html = xss('<- foo; bar ->', opts);
console.log(html);
# node index.js
<->

In the mentioned code, foo;, bar, - are erased since they'er interpreted as attributes.
So, the arrows should be passed by onTag handler.
Tags should be passed through the filter
PlantUML

<-- (doted arrow)
<[#red]- (colored arrow)
<|- (outlined triangle arrow)
<.. (doted arrow in use case diagram)
<< (stereo type)

Note: the number of . and - may be greater than two.
Blockdiag

<-- (seqdiag)
<<- (seqdiag)
>-< -< (blockdiag: any token comes behind this. it's impossible to support this)

The regexp which matches these would be /^[[<.|-].*$/.
Solution to the root of the problem
I think that XSS filter should be applied the content excluded "plantuml" and "blockdiag" block.
It seems that only "markdown-it" do HTML parsing,
so I think XSS filter should be implemented as markdown-it plugin instead of preprocessor.

@yuki-takei Aren't you going to fix this issue for the time being?
If you're not, I'll disable XSS filter until fixed since I'm using internally.

@rsp9u Thank you for your report, and I'm sorry for my late response.
As you said, this problem might not be fixed completely unless we replace the current XSS filter implementation with something other solution.
At the moment, I think that the solution you described at "Tags should be passed through the filter" section is too specialized about PlantUML and blockdiag, so I would like to let this to be pending.
But we GROWI team recognized this problem is the thing that should be fixed in the near future.

@yuki-takei Thank you for your reply!
I almost understood your plan.
Temporarily, I'll disable the filter as a workaround.
Thank you again for your time.

Relate to: #1597


preact create behind a corporate proxy

Do you want to request a feature or report a bug?
Bug
What is the current behavior?
I'm trying to use preact create default new-project behind a corporate proxy and it give me this:
ℹ INFO Assuming you meant preactjs-templates/default...
✖ ERROR connect ECONNREFUSED <IP_ADDRESS>:443

What is the expected behavior?
It should create the app.
Please mention other relevant information.

node version : 8.4.0
npm version: 5.3.0
Operating system: Debian Stretch

It think that the problem comes from gittar, there is no way to configure the proxy to fetch the git template.
The only way to make it work is to use another connection without proxy.

@Dylanderv well, the v2 of preact-cli is using templates to generate the project structure so it is more flexible https://github.com/preactjs-templates therefore having no access to it will cause that issue.
Do you have no access to github from your corporate proxy ?
What you could do:

Go to the https://github.com/preactjs-templates/default page with your Browser, click on "Clone or download (green) button" -> Download Zip
Extract it on your project , or somewhere
Try to use a Reverse Proxy which returns the zip folder whenever github.com/preactjs-templates/default is requested


Keras ImageDataGenerator Validation_Split

How does the Keras "ImageDataGenerator" choose Validation data when using the parameter "validation_split"?
I notice that a model I am training gets better validation performance when I randomly select the validation data manually using random.sample(), rather than with ImageDataGenerator.
And when I look into the images that "ImageDataGenerator" selects for validation, it seems to grab the data in random chunks, rather than over a uniform spread. This causes overfitting in my model.
Here is some example code for what I am talking about:
image_gen = tf.keras.preprocessing.image.ImageDataGenerator(validation_split = 0.2)
train_image_gen = image_gen.flow_from_directory(directory,
target_size=new_shape,
batch_size=batch_size,
class_mode='categorical',
subset = 'training')
val_image_gen = image_gen.flow_from_directory(directory,
target_size=new_shape,
batch_size=batch_size,
class_mode='categorical',
subset = 'validation')
I understand this may not be an issue in a traditional sense, but is there a way to change the way ImageDataGenerator selects the images for the validation set?

"I notice that a model I am training gets better validation performance when I randomly select the validation data manually using random.sample(), rather than with ImageDataGenerator."
^^This turned out to be a data issue on my part, but I do still wonder if there is a way to change how ImageDataGenerator selects validation data.


feat: allow attaching multicomponents

BREAKING CHANGE: allow attaching multicomponents

__strudel__ is now array of instances
on on method component name is added to the method
off method is divided into seperate functions

re #109

Wrong Branch naming - sorry


Request to add US Gov endpoints

Requesting we add US Gov endpoints as well (for Azure Gov/M365 GCC High/M365 DoD).

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

ID: f2957a41-0ebd-4f1e-6f9c-d4f9173d4630
Version Independent ID: e92921f7-9899-6a70-412f-f6094e772271
Content: How to securely transfer files to Microsoft Support - Azure
Content Source: support/azure/general/secure-file-exchange-transfer-files.md
Service: azure
GitHub Login: @genlin
Microsoft Alias: genli

@carlova, We only lists the end point of the public clouds/services. Let's chat offline for your request.

@carlova, As we disscused offline, I will add the endpoint to the article.


Hardbootme Test

Create a Partition, Activate a Partition with HTX running, Run soft bootme inside the partition and do periodic boot the entire system. This need to be supported on all OpenBMC systems

As you are working on it, George, I am assigning it to you.

I see there is already https://github.com/open-power/HTX
for HTX

With this we can do the following as suggested by @geissonator
— Power on, verify OS boots, issue BMC reboot, ensure OS stays up, power off, power on again, verify OS

Code in place.. closing this


Expose terminal inline chat in terminal's context menu

Editor:

Terminal:

what about Copilot: Explain this in the SI command decoration's context menu, as it applies to that command?

and in the terminal's context menu: Copilot: Start in Terminal?

Done


"redirects: off" still sets AutoGenerateBindingRedirects to true

Description
The paket install command keeps trying to change the AutoGenerateBindingRedirects flag to true in .NET Framework project files, even when explicitly told to not use redirects. This happens on both the initial install command and any subsequent ones.
Repro steps

Clone the repo found at https://github.com/jmeland/PaketBindingRedirects - note how line 13 of the project file is <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
Go to the folder at the level of the solution/dependencies/lock files in a command prompt.
Run .paket\paket.exe install. (Substitute your own copy of the bootstrapper in magic mode for paket.exe if desired, but make sure to put it in the same location as mine is, and remove mine if you're using your own.)
Observe line 13 of the project file again.

Expected behavior
I expect the AutoGenerateBindingRedirects flag to remain false when specifying redirects: off, meaning line 13 of the project file should not change at all, and if it's not the initial install command, the project shouldn't need to get checked out since nothing changed.
Actual behavior
Paket has changed the flag to true, making the line become <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>. This also constitutes a change to the file, leading to Git checking the project out.
In a private and much larger repo using TFS where this issue was discovered, attempting such a modification without having already checked the project out will cause Paket to error on the project file (read-only when not checked out from TFS), stopping it from making this modification or any modifications that would have been done after it!
Known workarounds
Specifying redirects: off at the group level is definitely not a workaround, even though it seemed like the ideal way to solve this entirely. No functioning workaround is currently known.

I would think binding redirects should be off in .NET (Core) by default, but I can confirm this behavior. Also, it will add <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> if that property is missing.
I noticed it adds REDIRECTS: OFF to paket.lock but I'm not sure if that does anything.

I would think binding redirects should be off in .NET (Core) by default, but I can confirm this behavior. Also, it will add <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> if that property is missing.
I noticed it adds REDIRECTS: OFF to paket.lock but I'm not sure if that does anything.

This is not .NET Core, this is .NET Framework. It has binding redirects true by default, but you can turn them off by going into Properties for the project file, or by manually editing it using an external editor.

Whoops, I didn't read that closely. But Paket seems to be working the same for both here?

Yeah, the behavior you described for .NET Core matches what happens for .NET Framework, aside from the part about binding redirects being off by default. For my use case, the main issue is .NET Framework, since a decision was made to leave any .NET Core projects in the private larger repo alone.

Can this be assigned to be fixed? A rough estimate of the timeframe for a fix would be nice as well.

Hey @jmeland . I can't speak for the rest of the Paket team - but currently this isn't a blocker for my folks and I'm not sure when we're have time to look into this.
I'd probably be able to allocate some time to review a PR that fixed the issue and had some automated tests alongside it though - just let me know if that's of interest to you.
Thanks!

I expect it's not a blocker for anyone really, but I'm willing to bet there are a plenty of teams who have this experience:
A dev checks out a branch and starts their work by running paket install instead of paket restore, because hey, it's at least as thorough as a restore, right?  Sometimes they remember to revert them, sometimes a code reviewer catches them, but often they get checked in, then removed as cleanup work in a future PR, re-added, removed, re-added, removed...

This still happens, a workaround is to use Paket <= 7.0.2
Credit goes to: https://github.com/fsprojects/Paket/issues/4139#issuecomment-1289145487


Hexify

Hi I've published aleppo as a hex package, this are the changes necessary to make it hex-able with riak3. Since it is your project it would be great if you'd take over the package, for that you can ask hex.pm to change ownership, until then I'll try to keep it up to date with the latest tagged release.
For the meantime I added myself as a secondary maintainer so that people having questions regarding the package don't bother you, please remove that if you take over the package since I don't want to claim your work as mine.
Note that this also moves the build tool to rebar3.
This mostly closes #16 .

I will check if your changes (including move to rebar3) will not break CB and if it's ok, will merge it.

awesome :)

A time has come. Released new version 0.9.1, but unable to add it because you are the owner.
please add<EMAIL_ADDRESS>as an owner for this package

fixed in v0.9.1


Embed dashboards Not Working For Only Show Dashboard and Select Specific Page

Embed dashboards Not Working For Only Show Dashboard and Select Specific Page [Enter feedback here]
https://docs.microsoft.com/en-us/azure/data-explorer/kusto/api/monaco/host-web-ux-in-iframe#embed-dashboards-preview

My Code
<iframe title="Test" width="1140" height="541.25" src="https://dataexplorer.azure.com/dashboards/65412248-b1dc-411f-a070-a211872bd5c3?p-_startTime=2days&p-_endTime=now&p-Stack=v-PRD#3f376eb9-bf5d-40d6-a2ab-68b217802a46?f-PersistAfterEachRun=true&f-IFrameAuth=true&f-Homepage=false&f-ShowPageHeader=false&f-ShowNavigation=false" frameborder="0" allowFullScreen="true"></iframe>

It still shows menus(left and top), I want to show only dashboard:

I specified it to be third page, but it's showing the first page

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

ID: 19a65aa5-0a6b-9916-e201-45fb67154e30
Version Independent ID: e68aa06e-8811-a52b-8629-ffe7ada9accf
Content: Embed the Azure Data Explorer web UI in an iframe.
Content Source: data-explorer/kusto/api/monaco/host-web-ux-in-iframe.md
Service: data-explorer
GitHub Login: @fazhong-ms
Microsoft Alias: fazhong

@fazhong-ms
Thanks for your feedback! We have assigned the issue to author and will provide further updates.

Hi @YashikaTyagi-MSFT , could you please assign to the right person? Thanks！

Thanks for contacting us with feedback about our product documentation. Depending on the complexity, it could take from a few business days to a few weeks to look further into your question, issue, or suggestion. We'll contact you if we need further information, and you'll receive an email message each time we "@mention" you in a comment.
Thanks again for submitting your feedback. Your suggestions help improve our documentation.

Hi,
Since there has been no response to the above question, I'm closing this Issue. Please feel free to reopen or mention us with this information by using @mention.
#please-close


Limit trafic user

can control the total traffic of the connecting user. ? In my case I do not want to exceed the traffic of my vps

No, we can't. wireguard-ui is just a UI to manage the Wireguard config.


Cannot modify cells in resultset

I'm using version 6.3.4 and I'm no longer able to edit cells directly in the resultset. I was able to do it a few versions ago. I can't remember which version exactly this stopped working for me. My connection is not read-only. I'm working with SQL Server 2016 and JDBC driver version 6.2.

seems to be duplicate of #7597
Ticket closed


feat: Add automatic reset

#31

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

Coverage data is based on head (4e1de29) compared to base (1cc3f79).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #46   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           15        15
  Lines          419       426    +7
  Branches        89        92    +3
=========================================
+ Hits           419       426    +7

Impacted Files
Coverage Δ

src/motionSensorAccessory.ts
100.00% <100.00%> (ø)

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

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


Make CameraFragment extendable

It is not easy to extend CameraFragement at the moment to use a custom layout.
If you would make the class variables of CameraFragment protected, one could easily overwrite the onCreateView method to use a different layout.

As is noted on the project's home page, this library has been discontinued.


Stuck on Downloading VS Code server on Remote SSH Connection (OPEN)

Regarding this closed issue,
_

Sorry for the trouble and the slow response everyone, we had a few of these going. The exec server mode should now be disabled by default. If you're still having issues, make sure it's disabled.

_
Originally posted by @roblourens in https://github.com/microsoft/vscode/issues/192564#issuecomment-1714901543
On newer versions of vscode it's still enabled by default, in detail,

and it still gets stuck on downloading vscode server regardless of the value of this setting.
Upon further investigation, a simple ls -la ~/.vscode-server/bin/863d2581ecda6849923a2118d93a088b0745d9d6  on the remote host yields,
-rw-rw-r-- 1 usr usr    0 Μαρ  19 20:15 vscode-remote-lock.lemon.863d2581ecda6849923a2118d93a088b0745d9d6
-rw-rw-r-- 1 usr usr    0 Μαρ  19 20:15 vscode-server.tar.gz

Note I have also explicitly changed the permissions of the parent directory just in case it was a permission issue with no hope of this being solved.

The only solution to this is,

on your host machine go to help -> about and copy the commit id
download the vscode server package in your remote machine via wget through this mirror https://update.code.visualstudio.com/commit:COMMIT_ID/server-linux-x64/stable
unpack it here ~/.vscode-server/bin/COMMIT_ID/. You should now have something like this,

.
└── 863d2581ecda6849923a2118d93a088b0745d9d6
    ├── bin
    ├── extensions
    ├── LICENSE
    ├── node
    ├── node_modules
    ├── out
    ├── package.json
    └── product.json

Now the permissions will be all over the place so you should make sure the host machine can execute this folder, try with 777 just to see if it's working.

That's the only solution that has worked for me now.

We fixed the previous known issue. Please share the Remote-SSH output channel. You can also disable that setting to see whether that makes a difference.

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!

disabling "exec server" worked for me!

I keep on getting the same error where regardless of the exec server setting it attempts to download the server on the remote SSH and fails to do so for a reason I don't quite understand,
A simple ls can verify what I'm describing here,
lemon@oak:~/.vscode-server/bin$ ls -lah
total 12K
drwxrwxr-x 3 lemon lemon 4,0K Μαΐ   9 02:31 .
drwxrwxr-x 6 lemon lemon 4,0K Μαΐ   9 02:08 ..
drwxrwxr-x 2 lemon lemon 4,0K Μαΐ   9 02:31 b58957e67ee1e712cebf466b995adf4c5307b2bd
the output log can be found below,
[02:31:02.029] Log Level: 2
[02:31:02.042] SSH Resolver called for "ssh-remote+cedar", attempt 1
[02:31:02.043] "remote.SSH.useLocalServer": true
[02:31:02.043] "remote.SSH.useExecServer": false
[02:31:02.044] "remote.SSH.path": undefined
[02:31:02.044] "remote.SSH.configFile": undefined
[02:31:02.044] "remote.SSH.useFlock": true
[02:31:02.044] "remote.SSH.lockfilesInTmp": false
[02:31:02.044] "remote.SSH.localServerDownload": auto
[02:31:02.044] "remote.SSH.remoteServerListenOnSocket": false
[02:31:02.044] "remote.SSH.showLoginTerminal": false
[02:31:02.045] "remote.SSH.defaultExtensions": []
[02:31:02.045] "remote.SSH.loglevel": 2
[02:31:02.045] "remote.SSH.enableDynamicForwarding": true
[02:31:02.045] "remote.SSH.enableRemoteCommand": false
[02:31:02.045] "remote.SSH.serverPickPortsFromRange": {}
[02:31:02.045] "remote.SSH.serverInstallPath": {}
[02:31:02.053] VS Code version: 1.89.0
[02:31:02.053] Remote-SSH version<EMAIL_ADDRESS>[02:31:02.054] linux x64
[02:31:02.056] SSH Resolver called for host: cedar
[02:31:02.056] Setting up SSH remote "cedar"
[02:31:02.060] Acquiring local install lock: /tmp/vscode-remote-ssh-711cce3c-install.lock
[02:31:02.061] Looking for existing server data file at /home/lemon/.config/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-711cce3c-b58957e67ee1e712cebf466b995adf4c5307b2bd-0.110.1-tr/data.json
[02:31:02.062] Using commit id "b58957e67ee1e712cebf466b995adf4c5307b2bd" and quality "stable" for server
[02:31:02.064] Install and start server if needed
[02:31:02.066] PATH: /home/lemon/.local/bin:/tools/Xilinx/Vivado/2023.1/bin/:/home/lemon/miniconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
[02:31:02.066] Checking ssh with "ssh -V"
[02:31:02.076] > OpenSSH_9.2p1 Debian-2+deb12u2, OpenSSL 3.0.13 30 Jan 2024
[02:31:02.082] askpass server listening on /run/user/1000/vscode-ssh-askpass-e6f1a2603293a680ffa06f0a022ede94221adc13.sock
[02:31:02.082] Spawning local server with {"serverId":1,"ipcHandlePath":"/run/user/1000/vscode-ssh-askpass-7e62839a0faf67c27147cfa5f09295dddd2c0c0e.sock","sshCommand":"ssh","sshArgs":["-v","-T","-D","46275","-o","ConnectTimeout=15","cedar"],"serverDataFolderName":".vscode-server","dataFilePath":"/home/lemon/.config/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-711cce3c-b58957e67ee1e712cebf466b995adf4c5307b2bd-0.110.1-tr/data.json"}
[02:31:02.082] Local server env: {"SSH_AUTH_SOCK":"/run/user/1000/keyring/ssh","SHELL":"/bin/bash","DISPLAY":":1","ELECTRON_RUN_AS_NODE":"1","SSH_ASKPASS":"/home/lemon/.vscode/extensions/ms-vscode-remote.remote-ssh-0.110.1/out/local-server/askpass.sh","VSCODE_SSH_ASKPASS_NODE":"/usr/share/code/code","VSCODE_SSH_ASKPASS_EXTRA_ARGS":"","VSCODE_SSH_ASKPASS_MAIN":"/home/lemon/.vscode/extensions/ms-vscode-remote.remote-ssh-0.110.1/out/askpass-main.js","VSCODE_SSH_ASKPASS_HANDLE":"/run/user/1000/vscode-ssh-askpass-e6f1a2603293a680ffa06f0a022ede94221adc13.sock"}
[02:31:02.087] Spawned 247979
[02:31:02.232] > local-server-1> Running ssh connection command: ssh -v -T -D 46275 -o ConnectTimeout=15 cedar
[02:31:02.236] > local-server-1> Spawned ssh, pid=247988
[02:31:02.240] stderr> OpenSSH_9.2p1 Debian-2+deb12u2, OpenSSL 3.0.13 30 Jan 2024
[02:31:02.445] stderr> debug1: Server host key: ssh-ed25519 SHA256:nuNDj4ptjgpH52uRIs+o+a7mWzwfSVu8kUHyVyCIN/g
[02:31:02.750] Got askpass request: {"request":"<EMAIL_ADDRESS>password:"}
[02:31:02.750] Showing password prompt
[02:31:02.751] Listening for interwindow password on /run/user/1000/vscode-ssh-askpass-04c011d66dbe46798f611e75ee0a9ac3797d03d6.sock
[02:31:02.751] Writing password prompt to globalState
[02:31:05.486] Got password response
[02:31:05.487] Interactor gave response: *********
[02:31:05.488] Cleaning up other-window auth server
[02:31:05.581] stderr> Authenticated to <IP_ADDRESS> ([<IP_ADDRESS>]:22) using "password".
[02:31:05.713] > Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 6.5.0-28-generic x86_64)

Documentation:  https://help.ubuntu.com
Management:     https://landscape.canonical.com
Support:        https://ubuntu.com/pro

Expanded Security Maintenance for Applications is not enabled.
8 updates can be applied immediately.
To see these additional updates run: apt list --upgradable
56 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm
20 updates could not be installed automatically. For more details,
see /var/log/unattended-upgrades/unattended-upgrades.log
[02:31:05.743] > ready: b93213fa2e70
[02:31:05.751] > Linux 6.5.0-28-generic #29~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Apr  4 14:39:20 UTC 2
[02:31:05.752] Platform: linux
[02:31:05.769] > /bin/bash
[02:31:05.770] Shell: bash
[02:31:05.770] Creating bash subshell inside "bash"
[02:31:05.778] > bash version:  5.1.16(1)-release
[02:31:05.796] > b93213fa2e70: running
[02:31:05.815] > Acquiring lock on /home/lemon/.vscode-server/bin/b58957e67ee1e712cebf466b995adf4c5307b2bd/vscode-remote-lock.lemon.b58957e67ee1e712cebf466b995adf4c5307b2bd
[02:31:05.816] > Installing to /home/lemon/.vscode-server/bin/b58957e67ee1e712cebf466b995adf4c5307b2bd...
[02:31:05.817] > b93213fa2e70%%1%%
[02:31:05.819] > Downloading with wget

@1280px Thanks for providing your input, that was my original attempt too. I got a fiber connection so I don't think that'd be the case :)

The only solution to this is,
1. on your host machine go to help -> about and copy the commit id

2. download the vscode server package in your remote machine via wget through this mirror https://update.code.visualstudio.com/commit:COMMIT_ID/server-linux-x64/stable

3. unpack it here `~/.vscode-server/bin/COMMIT_ID/`. You should now have something like this,

.
└── 863d2581ecda6849923a2118d93a088b0745d9d6
    ├── bin
    ├── extensions
    ├── LICENSE
    ├── node
    ├── node_modules
    ├── out
    ├── package.json
    └── product.json

4. Now the permissions will be all over the place so you should make sure the host machine can execute this folder, try with 777 just to see if it's working.

This still persists:
Error :
[09:53:33.369] Log Level: 2
[09:53:33.381] SSH Resolver called for "ssh-remote+ccv-vscode-node", attempt 1
[09:53:33.381] "remote.SSH.useLocalServer": false
[09:53:33.382] "remote.SSH.useExecServer": true
[09:53:33.382] "remote.SSH.showLoginTerminal": false
[09:53:33.382] "remote.SSH.remotePlatform": {"ccv-vscode-node":"linux","derecho.hpc.ucar.edu":"linux"}
[09:53:33.382] "remote.SSH.path": undefined
[09:53:33.383] "remote.SSH.configFile": ~/.ssh/config
[09:53:33.383] "remote.SSH.useFlock": true
[09:53:33.383] "remote.SSH.lockfilesInTmp": false
[09:53:33.383] "remote.SSH.localServerDownload": auto
[09:53:33.383] "remote.SSH.remoteServerListenOnSocket": false
[09:53:33.383] "remote.SSH.showLoginTerminal": false
[09:53:33.383] "remote.SSH.defaultExtensions": []
[09:53:33.383] "remote.SSH.loglevel": 2
[09:53:33.383] "remote.SSH.enableDynamicForwarding": true
[09:53:33.383] "remote.SSH.enableRemoteCommand": false
[09:53:33.383] "remote.SSH.serverPickPortsFromRange": {}
[09:53:33.383] "remote.SSH.serverInstallPath": {}
[09:53:33.386] VS Code version: 1.89.1
[09:53:33.386] Remote-SSH version<EMAIL_ADDRESS>[09:53:33.386] win32 x64
[09:53:33.398] SSH Resolver called for host: ccv-vscode-node
[09:53:33.398] Setting up SSH remote "ccv-vscode-node"
[09:53:33.407] Using commit id "dc96b837cf6bb4af9cd736aa3af08cf8279f7685" and quality "stable" for server
[09:53:33.409] Install and start server if needed
[09:53:33.418] Checking ssh with "C:\Program Files\Common Files\Oracle\Java\javapath\ssh.exe -V"
[09:53:33.422] Got error from ssh: spawn C:\Program Files\Common Files\Oracle\Java\javapath\ssh.exe ENOENT
[09:53:33.423] Checking ssh with "C:\Windows\system32\ssh.exe -V"
[09:53:33.425] Got error from ssh: spawn C:\Windows\system32\ssh.exe ENOENT
[09:53:33.425] Checking ssh with "C:\Windows\ssh.exe -V"
[09:53:33.428] Got error from ssh: spawn C:\Windows\ssh.exe ENOENT
[09:53:33.428] Checking ssh with "C:\Windows\System32\Wbem\ssh.exe -V"
[09:53:33.430] Got error from ssh: spawn C:\Windows\System32\Wbem\ssh.exe ENOENT
[09:53:33.431] Checking ssh with "C:\Windows\System32\WindowsPowerShell\v1.0\ssh.exe -V"
[09:53:33.433] Got error from ssh: spawn C:\Windows\System32\WindowsPowerShell\v1.0\ssh.exe ENOENT
[09:53:33.434] Checking ssh with "C:\Windows\System32\OpenSSH\ssh.exe -V"
[09:53:33.515] > OpenSSH_for_Windows_8.6
[09:53:33.516] > p1, LibreSSL 3.4.3
[09:53:33.522] Using SSH config file "~/.ssh/config"
[09:53:33.523] Running script with connection command: "C:\Windows\System32\OpenSSH\ssh.exe" -T -D 50745 -F "C:\Users\user/.ssh/config" "ccv-vscode-node" bash
[09:53:33.526] Terminal shell path: C:\Windows\System32\cmd.exe
[09:53:40.795] > f535775fd63b: running

]0;C:\Windows\System32\cmd.exe
[09:53:40.795] Got some output, clearing connection timeout
[09:53:40.855] > Installing to /users/user/.vscode-server...
f535775fd63b%%1%%
Downloading with wget

~/.vscode_server when ll -a
-rw-r--r-- 1 jkodero ccv-jl322 8683234 May  7 00:18 vscode-cli-dc96b837cf6bb4af9cd736aa3af08cf8279f7685.tar.gz
I have tried rm -rf  ~/.vscode_server  and ~/.vscode and all the things relating to vscode in both server and host.
host OS  Windows 10.
server OS : NAME="Red Hat Enterprise Linux": VERSION="9.2 (Plow)"
Please help. It started last week.

@Jared-Kodero Have you tried manually downloading the server as I mentioned above? This always works but it obviously is a hassle for everyone esp when apt just decides to update VS.

@roblourens still experiencing this error with the latest dc96b837cf6bb4af9cd736aa3af08cf8279f7685 update. I even performed the manual steps described in the issue and
Please re-open this issue as it hasn't been solved long term yet.
Workaround:
I've written this workaround bash script (attached) with the help of ChatGPT, which works for now.
#!/bin/bash

# Ask the user for the PATCH_STRING
read -p "Enter PATCH_STRING: " PATCH_STRING

# Define the URL with the PATCH_STRING
URL="https://vscode.download.prss.microsoft.com/dbazure/download/stable/$PATCH_STRING/vscode-server-linux-x64.tar.gz"

# Download the file using wget
wget $URL -O vscode-server-linux-x64.tar.gz

# Check if the download was successful
if [ $? -ne 0 ]; then
  echo "Download failed. Please check the PATCH_STRING and try again."
  exit 1
fi

# Extract the tar.gz file
tar -xvf vscode-server-linux-x64.tar.gz

# Get the name of the extracted folder
EXTRACTED_FOLDER=$(tar -tf vscode-server-linux-x64.tar.gz | head -1 | cut -f1 -d"/")

# Rename the extracted folder to PATCH_STRING
mv $EXTRACTED_FOLDER $PATCH_STRING

# Add all permissions to the folder
chmod -R 777 $PATCH_STRING

echo "The folder has been renamed to $PATCH_STRING and all permissions have been added."

Place the script in ~/.vscode-server/bin/fix.sh and enter the PATCH_STRING that matches the commit version from your VSCode About tab.


Can't create a MIDI file, error with associated NoteOn and NoteOff

Hello, I attempt to create a new .mid file, but the file generated is invalid. I don't see the problem when I load the file with NAudio library without strict mode : notes events are here and are ordened.
I try to add a note in MIDIEventCollection with two object NoteEvent like this but it don't work :
NoteEvent noteOnEvent = new NoteEvent(absoluteTime, channel, MidiCommandCode.NoteOn, number, velocity);
NoteEvent noteOffEvent = new NoteEvent(absoluteTimeOffEvent, channel, MidiCommandCode.NoteOff, number, velocity);
I try to create a note with an object NoteOnEvent and an associated NoteOff :
NoteOnEvent noteOnEvent = new NoteOnEvent(absoluteTime, channel, number, velocity, duration);
NoteEvent noteOffEvent = new NoteEvent(absoluteTimeOffEvent, channel, MidiCommandCode.NoteOff, number, velocity);
noteOnEvent.OffEvent = noteOffEvent;
Error message when I load the MIDI file : "Got an off without an on 0 NoteOn Ch: 1 C5 Vel:0 (Note Off)"
C-Major-Ionian.zip

Another test :
I noticed the OffEvent was created automatically when we add duration in a NoteOnEvent.
But if I use this NoteOff event in the MidiEventCollection, it does not work either.

OK I found the problem with my code : I created NoteOnEvent without velocity !


How to get private IP address?

Hello everyone,
I'd like to use Terraform with my local ProxMox to spin up a VM and provision it. Spinning up the VM has not been any issues but I'm having a hard time being able to get the private IP address that gets assigned via DHCP to use for provisioning. I'm trying to use remote-exec which says there is no defined host but I'm not sure how to tell it to use the assigned private IP.
The qemu-guest-agent is installed and working.
Any help would be great, thank you.

You may need to configure the connection block with the host. You can reference the host that the guest agent finds with self.ssh_host.
You may also be running into the issue that I did, which is that the provider doesn't wait long enough for the guest agent to have an IP ready (it was only waiting ~60 seconds, which wasn't enough for me). I've made a pull request (#293) to make the timeout configurable, as well as bump up the default to 600 seconds.

You may need to configure the connection block with the host. You can reference the host that the guest agent finds with self.ssh_host.
You may also be running into the issue that I did, which is that the provider doesn't wait long enough for the guest agent to have an IP ready (it was only waiting ~60 seconds, which wasn't enough for me). I've made a pull request (#293) to make the timeout configurable, as well as bump up the default to 600 seconds.

I've got the same issue. qemu-guest-agent is installed, the service is running, and I can successfully ping (qm agent 333 ping) from the Proxmox host.
resource "proxmox_vm_qemu" "proxmox_resource" {
  name        = "test"
  target_node = "vm1"
  vmid        = 333
  agent       = 1
  clone       = "ubuntu-20.04-template"
  cores       = 1
  memory      = 2048
  balloon     = 2048
  onboot      = true
  full_clone  = false
  boot        = "c"
  os_type     = "ubuntu"
  hotplug     = "network,disk,usb"
  define_connection_info = true

  network {
    model  = "virtio"
    bridge = "vmbr1"
  }

  ssh_user        = "toor"
  ssh_private_key = "myprivatekey"

  connection {
    type        = "ssh"
    host        = self.ssh_host
    user        = self.ssh_user
    private_key = self.ssh_private_key
    port        = self.ssh_port
  }

  provisioner "remote-exec" {
    inline = ["sudo hostnamectl set-hostname  ${var.hostname}"]
  }
}

This errors out with Error: host for provisioner cannot be empty. If I remove the remote-exec provisioner, the vm stands up and I can inspect the state.
...
  "ssh_host" = ""
  "ssh_port" = "22333"
  "ssh_private_key" = "myprivatekey"
  "ssh_user" = "toor"
...

So, not only is the ssh_host empty, but ssh_port is completely wrong. I'd love some input on what to investigate next.

I've got the same issue. qemu-guest-agent is installed, the service is running, and I can successfully ping (qm agent 333 ping) from the Proxmox host.
resource "proxmox_vm_qemu" "proxmox_resource" {
  name        = "test"
  target_node = "vm1"
  vmid        = 333
  agent       = 1
  clone       = "ubuntu-20.04-template"
  cores       = 1
  memory      = 2048
  balloon     = 2048
  onboot      = true
  full_clone  = false
  boot        = "c"
  os_type     = "ubuntu"
  hotplug     = "network,disk,usb"
  define_connection_info = true

  network {
    model  = "virtio"
    bridge = "vmbr1"
  }

  ssh_user        = "toor"
  ssh_private_key = "myprivatekey"

  connection {
    type        = "ssh"
    host        = self.ssh_host
    user        = self.ssh_user
    private_key = self.ssh_private_key
    port        = self.ssh_port
  }

  provisioner "remote-exec" {
    inline = ["sudo hostnamectl set-hostname  ${var.hostname}"]
  }
}

This errors out with Error: host for provisioner cannot be empty. If I remove the remote-exec provisioner, the vm stands up and I can inspect the state.
...
  "ssh_host" = ""
  "ssh_port" = "22333"
  "ssh_private_key" = "myprivatekey"
  "ssh_user" = "toor"
...

So, not only is the ssh_host empty, but ssh_port is completely wrong. I'd love some input on what to investigate next.

no method to get private IP address, this terraform-provider-proxmox bug ,only can get static ip ,if vm get ip by dhcp , Error: host for provisioner cannot be empty,please fix bug
this way is ok
provisioner "remote-exec" {
inline = [
"sudo hostnamectl set-hostname servera"
]
connection {
host          = "<IP_ADDRESS>"
type          = "ssh"
user          = "test"
#password      = "123456"
private_key   = "${file("~/.ssh/id_rsa")}"
}
}

no method to get private IP address, this terraform-provider-proxmox bug ,only can get static ip ,if vm get ip by dhcp , Error: host for provisioner cannot be empty,please fix bug
this way is ok
provisioner "remote-exec" {
inline = [
"sudo hostnamectl set-hostname servera"
]
connection {
host          = "<IP_ADDRESS>"
type          = "ssh"
user          = "test"
#password      = "123456"
private_key   = "${file("~/.ssh/id_rsa")}"
}
}

no method to get private IP address, this terraform-provider-proxmox bug ,only can get static ip ,if vm get ip by dhcp , Error: host for provisioner cannot be empty,please fix bug
this way is ok
provisioner "remote-exec" {
inline = [
"sudo hostnamectl set-hostname servera"
]
connection {
host = "<IP_ADDRESS>"
type = "ssh"
user = "test"
#password = "123456"
private_key = "${file("~/.ssh/id_rsa")}"
}
}

no method to get private IP address, this terraform-provider-proxmox bug ,only can get static ip ,if vm get ip by dhcp , Error: host for provisioner cannot be empty,please fix bug
this way is ok
provisioner "remote-exec" {
inline = [
"sudo hostnamectl set-hostname servera"
]
connection {
host = "<IP_ADDRESS>"
type = "ssh"
user = "test"
#password = "123456"
private_key = "${file("~/.ssh/id_rsa")}"
}
}

I've figured it out. In order for self.ssh_host to have a value, you must either have os_type = 'cloud-init' and set ipconfig0 = "ip=dhcp" or set ssh_forward_ip to some static value. It will not get the VM's ip address unless one of these conditions are met. Also make sure that your template is set up to run cloud-init.
This is now my main.tf file:
resource "proxmox_vm_qemu" "proxmox_resource" {
  name        = "test"
  target_node = "vm1"
  vmid        = 333
  agent       = 1
  clone       = "ubuntu-20.04-template"
  cores       = 1
  memory      = 2048
  balloon     = 1
  onboot      = true
  full_clone  = false
  boot        = "c"
  os_type     = "cloud-init"
  hotplug     = "network,disk,cpu"
  ipconfig0   = "ip=dhcp"

  network {
    model  = "virtio"
    bridge = "vmbr1"
  }

  ssh_user        = "toor"
  ssh_private_key = file("~/.ssh/id_rsa")

  connection {
    type        = "ssh"
    host        = self.ssh_host
    user        = self.ssh_user
    private_key = self.ssh_private_key
    port        = self.ssh_port
  }

  provisioner "remote-exec" {
    inline = ["echo ${var.password} | sudo -S -k hostnamectl set-hostname mediaserver"]
  }
}

Now, if I run this with the remote-exec provisioner disabled (comment it out), then I can get ssh_host from terraform output, but if I try to run the provisioner, it gives me the same ol' error about host being empty. This seems like it's a race condition where the proxmox resource doesn't set ssh_host before running the connect block, but I just don't know. I tried using a null resource block, but the result doesn't change.

I've figured it out. In order for self.ssh_host to have a value, you must either have os_type = 'cloud-init' and set ipconfig0 = "ip=dhcp" or set ssh_forward_ip to some static value. It will not get the VM's ip address unless one of these conditions are met. Also make sure that your template is set up to run cloud-init.
This is now my main.tf file:
resource "proxmox_vm_qemu" "proxmox_resource" {
  name        = "test"
  target_node = "vm1"
  vmid        = 333
  agent       = 1
  clone       = "ubuntu-20.04-template"
  cores       = 1
  memory      = 2048
  balloon     = 1
  onboot      = true
  full_clone  = false
  boot        = "c"
  os_type     = "cloud-init"
  hotplug     = "network,disk,cpu"
  ipconfig0   = "ip=dhcp"

  network {
    model  = "virtio"
    bridge = "vmbr1"
  }

  ssh_user        = "toor"
  ssh_private_key = file("~/.ssh/id_rsa")

  connection {
    type        = "ssh"
    host        = self.ssh_host
    user        = self.ssh_user
    private_key = self.ssh_private_key
    port        = self.ssh_port
  }

  provisioner "remote-exec" {
    inline = ["echo ${var.password} | sudo -S -k hostnamectl set-hostname mediaserver"]
  }
}

Now, if I run this with the remote-exec provisioner disabled (comment it out), then I can get ssh_host from terraform output, but if I try to run the provisioner, it gives me the same ol' error about host being empty. This seems like it's a race condition where the proxmox resource doesn't set ssh_host before running the connect block, but I just don't know. I tried using a null resource block, but the result doesn't change.

you way is ok i`m resolve my problem .thanks @ProfessorSalty

you way is ok i`m resolve my problem .thanks @ProfessorSalty

nice! maybe this is not clear form the docs
can we close it @ggongaware ?

nice! maybe this is not clear form the docs
can we close it @ggongaware ?

That's similar to how I figured it out as well. I wonder why this provider doesn't have any outputs like others do?

That's similar to how I figured it out as well. I wonder why this provider doesn't have any outputs like others do?

@mleone87 Reading the documentation, my assumption was that ssh_host would be populated by the vm's ip unless overridden by other inputs:

Read-only attribute. Only applies when define_connection_info is true. The hostname or IP to use to connect to the VM for preprovisioning. This can be overridden by defining ssh_forward_ip, but if you're using cloud-init and ipconfig0=dhcp, the IP reported by qemu-guest-agent is used, otherwise the IP defined in ipconfig0 is used.

@mleone87 Reading the documentation, my assumption was that ssh_host would be populated by the vm's ip unless overridden by other inputs:

Read-only attribute. Only applies when define_connection_info is true. The hostname or IP to use to connect to the VM for preprovisioning. This can be overridden by defining ssh_forward_ip, but if you're using cloud-init and ipconfig0=dhcp, the IP reported by qemu-guest-agent is used, otherwise the IP defined in ipconfig0 is used.

So, the above configuration works, but not every time. Sometimes ssh_host has a value, other times it doesn't, but I can't get it to work predictably.

So, the above configuration works, but not every time. Sometimes ssh_host has a value, other times it doesn't, but I can't get it to work predictably.

I now have a complete, reliable, and working solution. Create a helper script:
wait_port
#!/bin/bash

while ! nc -z $1 $2; do
  sleep 5
done

main.tf
esource "proxmox_vm_qemu" "proxmox_resource" {
  name        = "test"
  target_node = "vm1"
  vmid        = 333
  agent       = 1
  clone       = "ubuntu-20.04-template"
  cores       = 1
  memory      = 2048
  balloon     = 2048
  onboot      = true
  full_clone  = false
  boot        = "c"
  os_type     = "cloud-init"
  hotplug     = "network,disk,cpu"
  ipconfig0   = "ip=dhcp"

  ssh_user = "toor"

  network {
    model  = "virtio"
    bridge = "vmbr1"
  }
}

resource "null_resource" "wait_for_reboot" { // Use this to pause until the VM is built and accessible
  depends_on = [proxmox_vm_qemu.proxmox_resource]

  provisioner "local-exec" {
    command     = "${path.module}/wait_port ${proxmox_vm_qemu.proxmox_resource.ssh_host} ${proxmox_vm_qemu.proxmox_resource.ssh_port}"
    working_dir = path.module
  }
}

resource "null_resource" "set_hostname" {
  depends_on = [null_resource.wait_for_reboot]

  connection {
    type     = "ssh"
    host     = proxmox_vm_qemu.proxmox_resource.ssh_host
    user     = proxmox_vm_qemu.proxmox_resource.ssh_user
    port     = proxmox_vm_qemu.proxmox_resource.ssh_port
  }

  provisioner "remote-exec" {
    inline = [
      "echo ${var.sudo_password} | sudo -S -k hostnamectl set-hostname testserver",
      "echo ${var.sudo_password} | sudo -S -k reboot"
      ]
  }
}

I now have a complete, reliable, and working solution. Create a helper script:
wait_port
#!/bin/bash

while ! nc -z $1 $2; do
  sleep 5
done

main.tf
esource "proxmox_vm_qemu" "proxmox_resource" {
  name        = "test"
  target_node = "vm1"
  vmid        = 333
  agent       = 1
  clone       = "ubuntu-20.04-template"
  cores       = 1
  memory      = 2048
  balloon     = 2048
  onboot      = true
  full_clone  = false
  boot        = "c"
  os_type     = "cloud-init"
  hotplug     = "network,disk,cpu"
  ipconfig0   = "ip=dhcp"

  ssh_user = "toor"

  network {
    model  = "virtio"
    bridge = "vmbr1"
  }
}

resource "null_resource" "wait_for_reboot" { // Use this to pause until the VM is built and accessible
  depends_on = [proxmox_vm_qemu.proxmox_resource]

  provisioner "local-exec" {
    command     = "${path.module}/wait_port ${proxmox_vm_qemu.proxmox_resource.ssh_host} ${proxmox_vm_qemu.proxmox_resource.ssh_port}"
    working_dir = path.module
  }
}

resource "null_resource" "set_hostname" {
  depends_on = [null_resource.wait_for_reboot]

  connection {
    type     = "ssh"
    host     = proxmox_vm_qemu.proxmox_resource.ssh_host
    user     = proxmox_vm_qemu.proxmox_resource.ssh_user
    port     = proxmox_vm_qemu.proxmox_resource.ssh_port
  }

  provisioner "remote-exec" {
    inline = [
      "echo ${var.sudo_password} | sudo -S -k hostnamectl set-hostname testserver",
      "echo ${var.sudo_password} | sudo -S -k reboot"
      ]
  }
}

@ProfessorSalty I dont understand if it could be an issue caused by the performance of your proxmox server? Could it be?

@ProfessorSalty I dont understand if it could be an issue caused by the performance of your proxmox server? Could it be?

@mleone87 For all I know, it could be. I've got a really beefy system on a local gigabit network though, so I imagine this solution will apply for most people running homelabs on consumer hardware. Since I'm not running a super-optimized data center, there could be some latency in my setup somewhere that I just can't fix. I'm happy to pinpoint the issue with the help of someone more knowledgeable about the project if it's worth their time but I've reached the end of my capacity with Go, Proxmox, and Terraform.

@mleone87 For all I know, it could be. I've got a really beefy system on a local gigabit network though, so I imagine this solution will apply for most people running homelabs on consumer hardware. Since I'm not running a super-optimized data center, there could be some latency in my setup somewhere that I just can't fix. I'm happy to pinpoint the issue with the help of someone more knowledgeable about the project if it's worth their time but I've reached the end of my capacity with Go, Proxmox, and Terraform.

@ProfessorSalty does this scales nice with 3 or 4 vms created at one time?

@ProfessorSalty does this scales nice with 3 or 4 vms created at one time?

That's a very good question. I've never built more than one because this issue has blocked me from setting up my vms. I'll try it out tonight.

That's a very good question. I've never built more than one because this issue has blocked me from setting up my vms. I'll try it out tonight.

The issue for me was the short timeout when waiting for an IP address, which I addressed in #293 - there's no need for a helper script. The build isn't released yet, but you can test with the artifact built here: https://github.com/Telmate/terraform-provider-proxmox/actions/runs/494029832 and let me know if that fixes the issue for you as well.

The issue for me was the short timeout when waiting for an IP address, which I addressed in #293 - there's no need for a helper script. The build isn't released yet, but you can test with the artifact built here: https://github.com/Telmate/terraform-provider-proxmox/actions/runs/494029832 and let me know if that fixes the issue for you as well.

Thank you @ProfessorSalty for the work around.
Doesn't work for me because I have muliple VM created with the count var.
Thank you @alexkrebiehl for the fix, can you explain how to use the artifact ?
I only know how to use the "version" in provider which is the release number.

After some days trying nothing works I give up.
For the solution from @ProfessorSalty I don't see how it works because your script relies on /wait_port ${proxmox_vm_qemu.proxmox_resource.ssh_host} so if ssh_host is empty (which is the main problem here, ppl don't getting the host) you don't get it either as argument of wait.

I created a PR (#316) (which is already merged). With a new release you should be able to use the var default_ipv4_address in your provisioners.
Obviously works only if the agent is running and vm tools are installed. Hope this helps, if I misunderstood something in this thread just ignore this post 😄

Thank you @BaldFabi for the moment I can get the ip from ssh host with the fix from @alexkrebiehl but default_ipv4_address makes more sense since it's the ip and the host could be different.
Hope we get a release soon, I see a lot of people waiting for a new one but I don't know how we can help the maintainer to test the future release.

What's the current status on this? Has @BaldFabi's fix been released?

@ProfessorSalty if you look the commit, it's released:
https://github.com/Telmate/terraform-provider-proxmox/commit/0db239b9370eadb309f6d5e5f3006cba56417558
2.6.8
I have stop using this provider ( and terraform ) because I've always problems with multiple vm creation with dynamic ip...
Now I just use Ansible and does the job... wished I could continue to use Terraform :(


Integrated OpenTitan's DPI based Virtual UART into the verilator test bench

Draft because it's currently sitting atop https://github.com/lowRISC/ibex-demo-system/pull/91
Recommend making the following change when testing:
diff --git a/sw/c/demo/hello_world/main.c b/sw/c/demo/hello_world/main.c
index 3d4b333..0ef4b4a 100644
--- a/sw/c/demo/hello_world/main.c
+++ b/sw/c/demo/hello_world/main.c
@@ -29,7 +29,7 @@ int main(void) {

   // This indicates how often the timer gets updated.
   timer_init();
-  timer_enable(5000000);
+  timer_enable(500);

   uint64_t last_elapsed_time = get_elapsed_time();

With my initial test the uart0.log file is empty after simulation. I'll have a deeper look tomorrow.

↑ Rebased
↓ Made suggested changes


Add more methods to CollisionLayers

We currently have CollisionLayers::all and CollisionLayers::none. But this methods will initialize both masks and groups.
For a common case, where I would like to define a layer with single group I have to write the following:
CollisionLayers::from_bits(
    CollisionLayer::Character.to_bits(),
    CollisionLayer::all_bits(),
)

I would suggest to add 2 additional helpers: all_groups, all_masks. In this case the example above will look in the following way:
CollisionLayers::all_masks().with_group(CollisionLayer::Character);

Ah, interesting. Never needed that personally, but I have nothing against it. It is up-for grab ;-)


chore: bdd-spring-1574377871 to 0.0.1

chore: Promote bdd-spring-1574377871 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Getting Less Accuracy on High resolution images

@xuebinqin @DengPingFan @PINTO0309 @16673161214
Hello Authors ,
As i have finetune and trained the model on 1024 Resolution but when i am trying to do the inference on higher resolution its accuracy directly goes down to -20% where as at the same time when i resized the image to 1024 and did the inference then the accuracy is bit good as compared to high resolution images results

the input resolution is highly influencing the receptive field so that lead
to different "data distribution" when you change the resolution. The
accuracy degradation kind of make sense under current configuration.
On Sun, Mar 17, 2024 at 10:28 PM Kaustubh-cpu @.***>
wrote:

@xuebinqin https://github.com/xuebinqin @DengPingFan
https://github.com/DengPingFan @PINTO0309 https://github.com/PINTO0309
@16673161214 https://github.com/16673161214
Hello Authors ,
As i have finetune and trained the model on 1024 Resolution but when i am
trying to do the inference on higher resolution its accuracy directly goes
down to -20% where as at the same time when i resized the image to 1024 and
did the inference then the accuracy is bit good as compared to high
resolution images results
—
Reply to this email directly, view it on GitHub
https://github.com/xuebinqin/DIS/issues/113, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADSGORPK3TFMM3GMFKUY2QDYYZ3Q3AVCNFSM6AAAAABE243LFKVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE4TCMRWGU3TAMY
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Xuebin Qin
PhD
Department of Computing Science
University of Alberta, Edmonton, AB, Canada
Homepage: https://xuebinqin.github.io/

hello Xuebinqin/Dis ,
can you please help me or suggest me to make the model perform on the high
resolution images also
On Mon, 18 Mar 2024 at 12:16, Xuebin Qin @.***> wrote:

the input resolution is highly influencing the receptive field so that
lead
to different "data distribution" when you change the resolution. The
accuracy degradation kind of make sense under current configuration.
On Sun, Mar 17, 2024 at 10:28 PM Kaustubh-cpu @.***>
wrote:

@xuebinqin https://github.com/xuebinqin @DengPingFan
https://github.com/DengPingFan @PINTO0309 <
https://github.com/PINTO0309>
@16673161214 https://github.com/16673161214
Hello Authors ,
As i have finetune and trained the model on 1024 Resolution but when i
am
trying to do the inference on higher resolution its accuracy directly
goes
down to -20% where as at the same time when i resized the image to 1024
and
did the inference then the accuracy is bit good as compared to high
resolution images results
—
Reply to this email directly, view it on GitHub
https://github.com/xuebinqin/DIS/issues/113, or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/ADSGORPK3TFMM3GMFKUY2QDYYZ3Q3AVCNFSM6AAAAABE243LFKVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE4TCMRWGU3TAMY>

.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Xuebin Qin
PhD
Department of Computing Science
University of Alberta, Edmonton, AB, Canada
Homepage: https://xuebinqin.github.io/
—
Reply to this email directly, view it on GitHub
https://github.com/xuebinqin/DIS/issues/113#issuecomment-2003041132, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/BBKDIG26I5SD3GH5XA4VYVDYY2ETXAVCNFSM6AAAAABE243LFKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBTGA2DCMJTGI
.
You are receiving this because you authored the thread.Message ID:
@.***>

@xuebinqin  Same Problem i am also facing can you guide us for the better results on high resolution images

@x

uebinqin , @DengPingFan @HUuxiaobin
hello sir ,
Can you please reply what approach to be used to get the same result on low resolution

No help from the auther's