How do I add the AppSDK framework packages to an msixbundle?

Describe the bug
I am using MSIX deployment for my app. I have used some custom code to build an msixbundle file, since AppSDK does not do that by itself. The MSIX packages inside contain a <PackageDependency> on the AppSDK framework. I can find the MSIX files for the framework under my bin directory. I need to be able to add all required packages to my msixbundle so that it can install and launch on a clean system from that one file, without any other dependencies. Please be aware that I am targeting both x64 and ARM64, so the two architectures would need to coexist.
Steps to reproduce the bug
Explained above.
Expected behavior
I should be able to do this.
Screenshots
No response
NuGet package version
Windows App SDK 1.3.0: 1.3.230331000
Packaging type
Packaged (MSIX)
Windows version
Windows 11 version 22H2 (22621, 2022 Update)
IDE
Visual Studio 2022
Additional context
No response

To put it another way, the Microsoft project type which does everything correctly doesn't add the dependencies to the bundle either.

Then how should I distribute the relevant MSIXs so that the system does not have to download files from the Windows Store? I remember reading on docs that if you do not distribute MSIXs through the Windows Store, I am responsible for installing the relevant framework packages myself. Is there a good way to do this?

To be honest, I think the easiest way is by using a .appinstaller file.
If you put the files onto a network share or internal web server then you can distribute things that way. As an example for a simple packaged C++ application, I have:
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller Uri="file://server/msix/BasicWindowTest.appinstaller" Version="<IP_ADDRESS>" xmlns="http://schemas.microsoft.com/appx/appinstaller/2021">

  <MainBundle Name="Untrusted.BasicWindowTest" Version="<IP_ADDRESS>" Publisher="CN=Darran" Uri="file://server/msix/BasicWindowTestPackage_<IP_ADDRESS>_Test/BasicWindowTestPackage_<IP_ADDRESS>_x86_x64_arm64.msixbundle"/>
  <Dependencies>
    <Package Name="Microsoft.VCLibs.140.00.UWPDesktop" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" ProcessorArchitecture="arm64" Uri="file://server/msix/Dependencies/arm64/Microsoft.VCLibs.ARM64.14.00.Desktop.appx" Version="14.0.30704.0"/>
    <Package Name="Microsoft.VCLibs.140.00.UWPDesktop" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" ProcessorArchitecture="x64" Uri="file://server/msix/Dependencies/x64/Microsoft.VCLibs.x64.14.00.Desktop.appx" Version="14.0.30704.0"/>
    <Package Name="Microsoft.VCLibs.140.00.UWPDesktop" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" ProcessorArchitecture="x86" Uri="file://server/msix/Dependencies/x86/Microsoft.VCLibs.x86.14.00.Desktop.appx" Version="14.0.30704.0"/>

    <Package Name="Microsoft.WindowsAppRuntime.1.3" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" ProcessorArchitecture="arm64" Uri="file://server/msix/Dependencies/arm64/Microsoft.WindowsAppRuntime.1.3.msix" Version="3000.820.152.0" />
    <Package Name="Microsoft.WindowsAppRuntime.1.3" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" ProcessorArchitecture="x64" Uri="file://server/msix/Dependencies/x64/Microsoft.WindowsAppRuntime.1.3.msix" Version="3000.820.152.0" />
    <Package Name="Microsoft.WindowsAppRuntime.1.3" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" ProcessorArchitecture="x86" Uri="file://server/msix/Dependencies/x86/Microsoft.WindowsAppRuntime.1.3.msix" Version="3000.820.152.0" />

    <Package Name="Microsoft.VCLibs.140.00" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" ProcessorArchitecture="arm64" Uri="file://server/msix/Dependencies/arm64/Microsoft.VCLibs.ARM64.14.00.appx" Version="14.0.30704.0" />
    <Package Name="Microsoft.VCLibs.140.00" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" ProcessorArchitecture="x64" Uri="file://server/msix/Dependencies/x64/Microsoft.VCLibs.x64.14.00.appx" Version="14.0.30704.0" />
    <Package Name="Microsoft.VCLibs.140.00" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" ProcessorArchitecture="x86" Uri="file://server/msix/Dependencies/x86/Microsoft.VCLibs.x86.14.00.appx" Version="14.0.30704.0" />
  </Dependencies>

</AppInstaller>

Anyway, double clicking on this type of file will open up the app installer. You use this to tell the installer where to find all of the dependencies and the app installer will then use these if the dependency doesn't exist. If you add a template .appinstaller file to the packaging project and enable automatic updates, Visual Studio will even generate this for you.
The only with this file is that it doesn't lend itself to being used to install files off of a USB drive. The paths given in the URI attributes are fixed meaning that you either have to guarantee that the drive will always use the same drive letter, or you use some means to dynamically generate the .appinstaller based on the current system's drive letters. From what I can tell though, as long as it is an absolute path, the file scheme should work even for a local path.

A .appinstaller file is the right way. BTW you can embed a .appinstaller file in your package (aka Auto-Update) for the same net result as a separate file but provided by the developer (not the distributor or administrator). There's also APIs for admin overrides for even more flexibility. Sorry, no net access at the moment but if you search for "msix auto-update appinstaller embed" you should find the docs how to do this.
The reason This Is The Way is a .msixbundle contains pckages for a package family. A bundle can contain multiple main and resource packages for a family (x86,arm64,en,fr,scale-100,...) but all the same package family name. WinAppSDK framework packages will have a different family name.
What brought this to mind?
I ask as Flat bundles were created based on feedback requesting a way to not have to "make a super zip-of-zips" if you will. A Flat bundle as basically a list of packages collocated with defined dependencies, if you add the notion of "and here's where you can find the dependencies" you get the same net result of .appinstaller files and AutoUpdate.
A bundle as 1 container of multiple packages and their dependencies is akin to going in the opposite direction, which poses issues which led us to pave ground towards rich but more physically decoupled options. So I'm interested in your thoughts that led to this conversation 🙂

What brought this to mind?

Mostly because I didn’t know what you’ve just explained to me.
I was considering using MSIX packages to distribute apps that I might write in the future. If there were one file to download, it would be easier to explain to users how to install the program. (I would have to wrap the packages in an EXE because I still cannot afford a commercial code-signing certificate. I find it odd that you can have a package with no signature whatsoever, but self-signed certificates are still prohibited. Self-signed certs are just as secure as commercial ones. If the user trusts my app and company, it shouldn’t matter what kind of certificate I use.)
However, since I first filed this issue I reconsidered the Windows Store. Despite what I see as design flaws with Windows.Services.Store, it is still a better place for me to distribute my apps than just another website. (There’s more discoverability, I wouldn’t need a CDN, and billing and licensing would be handled for me.) With the Windows Store, all this is a nonissue. Thanks nonetheless!

Glad you found a path that works for you :-)


Vulkan: Light2D doesn't work

Godot version:
1eb424ec9
OS/device including version:
Windows 10 x64 GTX 1060
Issue description:
Light2D doesn't seem to work correctly. It just shows opaque texture over other CanvasItems and doesn't show anything over clear background. Also CanvasItemMaterial with Light-only mode always shows.
3.2

4.0

(the left sprite is light-only and the dragged node is Light2D)

Fixed.


general cleanup and maintenance

changed StatusCode from i31 to u16.
refactored logic
expanded documentation
added TODOs
made some functions more generic (to improve API w/o causing breaking changes)

this is just a start, there's a lot of TODOs I still need to tackle as well

Whao! Thanks for taking the time to do this. Just to make it easier to review and stuff, could I ask you to split changes into smaller bites and make separate merge requests for all of them?
It's easier to revert and bisect for bugs that way too :)

sure, I can have this as base then do subsequent PR's to address the TOOD's and whatnot

I forgot why I hadn't merged this yet, it's been a while...
I plan on looking over it again soon though

Okay I think it's good now, gonna do one final review before I merge though


Prompt file not found

Starting from scratch and following the installation instructions, i got the following error when running video-analyzer path/to/video.mp4.
ERROR - Error during video analysis: Prompt file not found in user directory (prompts) or package resources

After renaming the folder test_prompts to prompts  it works fine. I see that the project structure is stated in the Readme, but maybe one should add this little detail.

where did you run the command from? the directory test_prompts got in there on accident and shouldn't even be there.
The default prompt files are in video-analyzer/prompts I will delete the test one.
I've wiped out my local checkout and started over and couldn't repro the issue.
If you wouldn't mind deleting that directory and running your command with --log-level DEBUG and include both the full logs and the command you run (without any key), I can debug your issue.


[DOCFIX] Update Chinese Deploy Docs Requirements, Local

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-PR-Builder/10535/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-PR-Builder/10571/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-PR-Builder/10572/
Test PASSed.

alluxio-bot, merge this please

alluxio-bot, cherry-pick this to branch-2.3 please


Error when compiling noah

Was unable to reproduce the demo commands
Reproduction Steps:
cargo run --bin noah -- --datadir ./test/noah1 create
Compiler Error log:
$ cargo run --bin noah -- --datadir ./test/noah1 create
warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
warning: /home/cuarentaydos/Code/ARK/clArk/ark-lib/Cargo.toml: version requirement `0.101.1+0.21-final` for dependency `bitcoinconsensus` includes semver metadata which will be ignored, removing the metadata is recommended to avoid confusion
   Compiling ark-noah v0.0.0 (/home/cuarentaydos/Code/ARK/clArk/noah)
error[E0599]: no method named `transaction` found for tuple `(sled::Tree, sled::Tree)` in the current scope
  --> noah/src/database.rs:52:28
   |
52 |         (vtxo_tree, expiry_tree).transaction(|(vtxo_tree, expiry_tree)| {
   |         -------------------------^^^^^^^^^^^ method not found in `(Tree, Tree)`

error[E0277]: the `?` operator can only be used in a closure that returns `Result` or `Option` (or another type that implements `FromResidual`)
  --> noah/src/database.rs:55:65
   |
52 |         (vtxo_tree, expiry_tree).transaction(|(vtxo_tree, expiry_tree)| {
   |                                              -------------------------- this function should return `Result` or `Option` to accept `?`
...
55 |                 .insert(vtxo.spec().expiry_height.to_le_bytes(), &vtxo.id())?;
   |                                                                             ^ cannot use the `?` operator in a closure that returns `()`
   |
   = help: the trait `FromResidual<Result<Infallible, sled::Error>>` is not implemented for `()`

error[E0599]: no method named `transaction` found for tuple `(sled::Tree, sled::Tree)` in the current scope
  --> noah/src/database.rs:96:31
   |
96 |         Ok((vtxo_tree, expiry_tree).transaction(|(vtxo_tree, expiry_tree)| {
   |            -------------------------^^^^^^^^^^^ method not found in `(Tree, Tree)`

error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
  --> noah/src/database.rs:97:16
   |
97 |             if let Some(v) = vtxo_tree.remove(&id)? {
   |                         ^ doesn't have a size known at compile-time
   |
   = help: the trait `Sized` is not implemented for `[u8]`
   = note: all local variables must have a statically known size
   = help: unsized locals are gated as an unstable feature

error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
   --> noah/src/database.rs:97:11
    |
97  |             if let Some(v) = vtxo_tree.remove(&id)? {
    |                    ^^^^^^^ doesn't have a size known at compile-time
    |
    = help: the trait `Sized` is not implemented for `[u8]`
note: required by a bound in `std::prelude::v1::Some`
   --> /home/cuarentaydos/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:572:17
    |
572 | pub enum Option<T> {
    |                 ^ required by this bound in `std::prelude::v1::Some`
...
580 |     Some(#[stable(feature = "rust1", since = "1.0.0")] T),
    |     ---- required by a bound in this tuple variant

Some errors have detailed explanations: E0277, E0599.
For more information about an error, try `rustc --explain E0277`.
error: could not compile `ark-noah` (lib) due to 5 previous errors

i tinkered with database.rs and got it to ompile correctly.
created some wallets correctly using:
cargo run --bin noah --  --datadir ./test/noah44 create  --regtest --asp http://<IP_ADDRESS>:35035  --bitcoind /usr/local/bin --bitcoind-user 42pupusas --bitcoind-pass= password

generated some onchain btc to each and balance shows it correctly
cargo run --bin noah --  --datadir ./test/noah43 balance

Result:
[2024-06-05T18:31:21Z INFO  noah] Opening noah Wallet at /home/cuarentaydos/Code/ARK/clArk/test/noah43
[2024-06-05T18:31:23Z INFO  noah] Onchain balance: 68.99997966 BTC
[2024-06-05T18:31:23Z INFO  noah] Offchain balance: 0 BTC

Tried to onboard to ASP using:
cargo run --bin noah --  --datadir ./test/noah43 onboard "1 btc"

Result:
[2024-06-05T18:33:07Z INFO  noah] Opening noah Wallet at /home/cuarentaydos/Code/ARK/clArk/test/noah43
[2024-06-05T18:33:09Z INFO  noah] Onboard successfull

On arkd server logs I can see:
[2024-06-05T18:33:09Z INFO  arkd] Cosigning onboard request for utxo e01c26ba60be9e29420290b83081165edaf8ec37a68967a461d152b0016d89e1:0

But after generating new blocks, balance shows the reduction of the onchain balance but 0 offchain balance
     Running `target/debug/noah --datadir ./test/noah43 balance`
[2024-06-05T18:35:47Z INFO  noah] Opening noah Wallet at /home/cuarentaydos/Code/ARK/clArk/test/noah43
[2024-06-05T18:35:49Z INFO  noah] Onchain balance: 67.99995932 BTC
[2024-06-05T18:35:49Z INFO  noah] Offchain balance: 0 BTC


Add a release workflow

Adds an automated release workflow. So far this only works for publishing a Ruby gem, and will need to be extended to publish other language/platform packages.
See https://github.com/cucumber/common/issues/1688
Checklist:

[x] Generate a new RubyGems API token and add it as RUBYGEMS_API_KEY secret in the Release environment.
[x] Generate a new NPM API token and add it as NPM_TOKEN secret in the Release environment.
[x] Add Go publishing
[x] Add Java publishing
[x] Add JavaScript publishing

Great work @mattwynne. I have many questions.

Where in the process is a git tag created?
Who will the creator of the git tag?
Will that git tag be signed?
Will the git tag be on a commit on main or on releases/*?
Do we want to be able to use the Merge Button to merge unsigned PRs?
Are we ok with unsigned commits on main?
Do we want to make sure all commits on releases/* are signed? If so, do we need to squash-merge from main?
The workflow uses various cucumber-actions/* - let's add some links to https://github.com/cucumber-actions in the scripts. (Can you invite me again to that org @mattwynne)
Where is the release version number picked up from? The branch name? If so, what happens when a 2nd commit is pushed to the same releases/* branch?

I feel that the tag should be created locally by the person triggering the release, and that the release action should only be triggered when a new tag is pushed to the releases/* branch (rather than for every commit pushed to the branch).

Another thing to consider is retries. The package managers are occasionally down or unresponsive (especially sonatype, where maven artifacts are published). If a tag is pushed, and the release action fails, we should be able to re-trigger the action manually via GitHub's web interface.

Would it make sense to have separate release-java.yml, release-ruby.yml etc workflows? That way we can manually rerun just the ones that have failed, and not the others.

@mattwynne we have made some tests here: https://github.com/cucumber/release-tests

@mattwynne we have made some tests here: https://github.com/cucumber/release-tests

@aurelien-reeves I like the approach of splitting the release / publish workflows and using the release published event to trigger the package publishing!
Let's pair / ensemble on this on Wednesday?

I've added an NPM publish action and the secret for it, so Ruby and NPM are good to go.

Thanks for the explanations @mattwynne - makes a lot more sense to me now.
For Maven publishing we can try https://github.com/marketplace/actions/action-maven-publish (there are more here)
For Go releases we just need to create and push a go/v$version git tag.
If one of the publish actions fail, I don't think we have an automated way to retry. That worries me.

The version numbers in the various package decriptors (and go code) will have to be bumped before we start the release process. We should figure out how to automate this. Maybe we can reuse some of the scripts from common.

We need to add several secrets to the Release environment. We should document how to do this, and where to find the secrets. I assume we can get most of them from the secrets repo, but the NPM_TOKEN is not in that repo.
@mattwynne I assume you added a new one in https://www.npmjs.com/settings/cukebot/tokens - but once added they cannot be read. If we want a token per repo, that's fine, but then the tokens must be named. Right now there are way too many tokens in there - we should delete as many as possible and start fresh.

We need to merge https://github.com/cucumber-actions/create-release/pull/6 and make a new release of that action before we can merge this PR. Then I think we can test the release process.

We need to add several secrets to the Release environment. We should document how to do this, and where to find the secrets. I assume we can get most of them from the secrets repo, but the NPM_TOKEN is not in that repo.

Yes, we need to document how to do it. Where would be a good place do you think?
No, they've all been generated fresh. I think this is good practice.

@mattwynne I assume you added a new one in https://www.npmjs.com/settings/cukebot/tokens - but once added they cannot be read. If we want a token per repo, that's fine, but then the tokens must be named. Right now there are way too many tokens in there - we should delete as many as possible and start fresh.

As far as I can tell there's no facility for naming tokens in npmjs.com 🤷 FWIW the one I generated for this repo is the one starting 1604. The other recent one (starting 95d2) is used by the tests for the https://github.com/cucumber-actions/publish-npm/ action.
I have no idea what the others are for, or why there are so many. I would assume that once we've finished automating all the releases of our javascript packages we can just delete all the older ones.

If one of the publish actions fail, I don't think we have an automated way to retry. That worries me.

Do you mean you want to automatically retry if the publish fails? Or you want to be able to manually re-run the automated release workflow? I expect you mean the latter.
I think we have a couple of approaches we could take:

Make sure that the publish jobs are idempotent, so we can just re-run the whole workflow if one of them fails.
Split the different platform publish jobs into different workflows, so we can easily re-run individual ones.

I have a slight preference for (1) since making them idempotent feels sensible anyway in case something gets triggered unintentionally, but (2) is probably a quicker win. I suggest we do that for now.
I liked what you did in https://github.com/cucumber/release-tests to chain the actual publish jobs off of the release published event. Maybe we could do that?

If one of the publish actions fail, I don't think we have an automated way to retry. That worries me.

Do you mean you want to automatically retry if the publish fails? Or you want to be able to manually re-run the automated release workflow? I expect you mean the latter.

I meant manually retrying a publish for just a single language.

I think we have a couple of approaches we could take:
1. Make sure that the publish jobs are idempotent, so we can just re-run the whole workflow if one of them fails.

The whole workflow also includes create-release, so that would have to be idempotent too. If we want to make them idempotent and still error when something is wrong is to check if the release has already been made and then do nothing. That means querying github releases, rubygems, npm, nexus/sonatype (maven) etc.
They are hopefully all easy to query, but I'm worried about nexus/sonatype - not sure if it's possible there.

2. Split the different platform publish jobs into different workflows, so we can easily re-run individual ones.

This would be my preference. @aurelien-reeves and I experimented with this yesterday in https://github.com/cucumber/release-tests/tree/main/.github/workflows (a throwaway repo).
We tried to make the publish-* workflows trigger on the on.release event, but couldn't make it work. I'm not even sure we can make it work - we still want to make sure the job only runs in the Release environment, and I don't see how that could be activated unless the event is a on.push to a release/* branch.

I have a slight preference for (1) since making them idempotent feels sensible anyway in case something gets triggered unintentionally, but (2) is probably a quicker win. I suggest we do that for now.
I liked what you did in https://github.com/cucumber/release-tests to chain the actual publish jobs off of the release published event. Maybe we could do that?

Not sure - see comment above.

I'm not even sure we can make it work - we still want to make sure the job only runs in the Release environment, and I don't see how that could be activated unless the event is a on.push to a release/* branch.

Ah yes. We don't have enough security around Releases - they could be created manually by anyone with the commit bit.
So we need to stick to triggering these when there's a push to the protected branch.

The whole workflow also includes create-release, so that would have to be idempotent too. If we want to make them idempotent and still error when something is wrong is to check if the release has already been made and then do nothing. That means querying github releases, rubygems, npm, nexus/sonatype (maven) etc.

I've actually done this already in the tests for the rubygems and npm publish actions.

They are hopefully all easy to query, but I'm worried about nexus/sonatype - not sure if it's possible there.

Yeah that's a risk until we've done it.
curl https://search.maven.org/solrsearch/select\?q\=cucumber\&wt\=json looks pretty good (from here)?

I liked what you did in https://github.com/cucumber/release-tests to chain the actual publish jobs off of the release published event. Maybe we could do that?

Not sure - see comment above.

I reckon we can have several separate workflows all going off the push event on the release/* branches, which should give us the best of both worlds.

I think this is good to go, eh? We can easily / safely factor out a publish-go action later.

I guess you have heavily tested the releases workflows as part of https://github.com/cucumber/release-tests?
If so, it looks good to me :)


Feeding the Conditional resolver true/false results without using parameters

From the examples I have looked over and the testing I have run, it does not appear that trueResult/FalseResult parameters can be set to a hardcoded line of text, but have to be fed their values from an entry in the parameter object.
If you have a flow spec with multiple conditionals which each have different true/false results, it would be easier to be able to write those directly in the params instead of having to feed in multiple different key/value pairs in hte parameters object.
Ex.
          resolver: {
            name: 'flowed::Conditional',
            params: { condition: 'intervalsCreated', trueResult: 'This is the text for true' , falseResult: 'This is the text for false' },
            results: {onTrue: 'ontrue', onFalse: 'onfalse'},
          },

And/or also being able to reference values in the context object
Ex.
        resolver: {
          name: 'flowed::Conditional',
          params: { condition: 'intervalsCreated', trueResult: 'context.context_true' , falseResult: 'context.context_false' },
          results: {onTrue: 'ontrue', onFalse: 'onfalse'},
        },

Hi @dieeisenefaust,
You can set hardcoded values by using an object with the property val , just like in this example:
      resolver: {
        name: 'flowed::Conditional',
        params: {
          condition: 'intervalsCreated',
          trueResult: { val: 'This is the text for true' },
          falseResult: { val: 'This is the text for false' }
        },
        results: {onTrue: 'ontrue', onFalse: 'onfalse'},
      },

That way Flowed knows it has to be taken as a literal value.
Using a string, it is taken as a "token" to be taken from the requires clause.

Should have tested this before responding but just a note that the property name needs to be value, not val, in the example above.


Add my first file

I have created a branch created a file, and made a comment!

👋 !  For this course you can follow the steps in your own repository created from this template repository (https://github.com/skills/introduction-to-github#how-to-start-this-course)


Instructors' Question List View and Selector

Instructors should be able to view an overview of questions in a polling session. If they have a pre-determined list of questions they should be able to select a question to poll for. They should also be able to add questions from this page.
Here's a rough outline of a wireframe for guidance:

For more context, the instructor would spend most of their time during class on this page. Whenever they'd like to ask a question, they would click on the given question from the list of questions.

It might also be worthwhile for an instructor to create a question on the fly. They would click a "new question" button that would start a question without any text, and the default A-E options.

Hi, I would like to take this issue! Could you assign it to me? Thank you!
Questions:

Is the hash number generated by backend which linking to a series of questions?


Create demo project

This project really should have some demo projects.
For now, I'm thinking something simple, like a player and an enemy that has some simple patrol, follow, attack behavior.

pleease make tutorial or demo project, better docs .. something
this looks like best current Behavior Tree addon that I can find


confused about the val results

hi, Thanks for your aswesome job! And I am confused about the  my eval results on kitti val datasets.
I trained YOLO3D_example with 8 2080TI， and the val results shows as fellows
epoch 10:
Car AP(Average<EMAIL_ADDRESS>0.70, 0.70:
bbox AP:96.80, 83.32, 63.83
bev  AP:15.41, 11.21, 8.66
3d   AP:9.61, 7.17, 5.31
aos  AP:93.90, 78.78, 60.36
Car AP(Average<EMAIL_ADDRESS>0.50, 0.50:
bbox AP:96.80, 83.32, 63.83
bev  AP:47.02, 33.31, 26.05
3d   AP:39.81, 28.13, 21.42
aos  AP:93.90, 78.78, 60.36
/**** finish testing after training epoch 9 ******/
epoch 20:
Car AP(Average<EMAIL_ADDRESS>0.70, 0.70:
bbox AP:96.81, 85.85, 66.29
bev  AP:21.13, 15.52, 12.39
3d   AP:14.05, 10.35, 7.51
aos  AP:94.29, 81.57, 62.97
Car AP(Average<EMAIL_ADDRESS>0.50, 0.50:
bbox AP:96.81, 85.85, 66.29
bev  AP:58.15, 41.16, 31.43
3d   AP:51.35, 37.29, 28.19
aos  AP:94.29, 81.57, 62.97
/**** finish testing after training epoch 19 ******/
epoch 30:
Car AP(Average<EMAIL_ADDRESS>0.70, 0.70:
bbox AP:98.05, 84.85, 67.62
bev  AP:12.92, 10.52, 7.81
3d   AP:7.76, 6.14, 4.58
aos  AP:95.21, 80.50, 63.99
Car AP(Average<EMAIL_ADDRESS>0.50, 0.50:
bbox AP:98.05, 84.85, 67.62
bev  AP:52.92, 38.00, 29.05
3d   AP:45.49, 32.40, 25.20
aos  AP:95.21, 80.50, 63.99
/**** finish testing after training epoch 29 ******/
It seems that epoth_20 is much better than epoch_30 in 3D detection. Could you tell me the reason. many thaks

From my perspective, the accuracy at epoch 10/20 has already been smaller than what I have expected.
There are some problems now for training with multi-GPU though. So the result may not be the best. You should try to retrain with only one GPU first ~


Insufficient Granularity of Access Control in JSDom - https://github.com/advisories/GHSA-f4c9-cqv8-9v98

fabric-history depends on an old version of "fabric": "^3.3.2", which depends on an old version of "jsdom": "^15.1.0", which has a vulnurability advisory: Insufficient Granularity of Access Control in JSDom
Need to fix so that jsdom version is  >= 16.5.

Thank you for the heads up. I will update it!

I have updated the package (1.7.0), there is no security issue anymore.


Include common German and Czech code pages for the character set option

From @brodecva on January 3, 2017 19:37
Add following at least:

for German: iso-8859-1, windows-1552
-for Czech: iso-8859-2

Copied from original issue: odalic/sti#274

Additionally, let @josef-janousek decide when some encoding is common enough in the test files to warant an addition to the defaults.

Just a correction - "windows-1252"


Mac OS add support for Debug and System Output

Hi,
I have been using Godot Mono + VScode on Windows 10 and there everything worked ok.
I switched to Mac (intel cpu) and continued with Godot Mono + VScode combination.
But now I am missing some features:

I don't output to console/terminal by default. This means I cannot see  Debug.Writeline("mkjklj")  anywhere. I can see GD.Print("dfjhdkjh")  in the Godot editor Output.
There is a lot of "system" output (which I assume is in same category with Debug.Writeline() . It would be of great help if one could see this text.

So I am asking would it be possible to add default ouput to terminal on MacOS.

Which launch configuration are you using? Play In Editor, Launch or Attach.
Have you tried System.Console.WriteLine and does that work?
I could not reproduce in Pop OS 21.04 with the Launch configuration, note that Play In Editor currently does not print any output (reported in #11).

I am tried all 3 configurations.
#11 is a minor nuisance for me as GD.Print at least can be seen somewhere (the Godot Editor).
In my case, output window is usually showing some omnisharp logs and terminal nothing.

Like I said the problem is not so much in not seeing the Debug.Writeline (or System.Console.WriteLine), its all the other system outputs that get outputed and are not seen anywhere.

I dont see anything in my DebugConsole. But I can step with F10 and breakpoints in VSCode work.
This is my configuration:
        {
            "name": "Play in Editor",
            "type": "godot-mono",
            "mode": "playInEditor",
            "request": "launch",
            "port": 23685
        },

I'm using the Launch configuration, since Play in Editor won't show output.
{
	"name": "Launch",
	"type": "godot-mono",
	"request": "launch",
	"mode": "executable",
	"executable": "/usr/bin/godot", // This is the path to my godot editor binary
	"executableArguments": [
		"--path",
		"${workspaceRoot}"
	]
}

I am a mac newb, I used launch but I havent edited the paths, (so it only started the editor but not the app).
I changed my launch to this:
        {
            "name": "LaunchTest3",
            "type": "godot-mono",
            "request": "launch",
            "mode": "executable",
            "executable": "/Applications/Godot_mono.app/Contents/MacOS/Godot",
            "executableArguments": [
                "--path",
                "${workspaceRoot}"
            ]
        }

and now it works.
Thanks for your help !


flutter create: record Dart SDK location in non-IDEA-specific config file?

We currently record the Dart SDK's location in .idea/libraries/Dart_SDK.xml. This file isn't easily readable by other editors or IDE's.
For example, this just happened to me with VS Code. (However, it is a corner case. VS Code looks in the user's PATH for the flutter command, which should work for users who follow the official instructions, but fails for weird people like me who use a bash alias instead.)
We might want to consider putting either the Flutter SDK or the Dart SDK's location somewhere else? Perhaps in a ide_settings.json file? If flutter create creates it and the Flutter plugin updates it, the user can switch between VS Code and IDEA and everything will work, even if the user switches Flutter SDK's in the IDE.
One possible design might be to stop generating the .idea folder in flutter create and instead have the Flutter plugin get its settings from an .ide_settings.json file. This would make the flutter SDK less tied to a specific IDE, and avoid clutter for other situations, such as creating a new module in an existings IDE project.

Sorry, meant to mention instead: @devoncarew @pq

It would be best for me (Dart Code) if this file contained the Flutter SDK path than the Dart one, since I'll need to be able to execute flutter too. I presume Dart is always in the same subfolder (bin/cache/dart?).
ide_settings.json sound sightly strange to me since although this is for the IDE it's not logically and IDE setting.
Any reason flutter uses sdk: flutter in pubspec and not a path there like when you reference projects from other locations?

One difference is that the location of the Flutter SDK is often machine-specific, unlike everything in pubspec.yaml. (But I'll admit we aren't handling that cleanly.)

Perhaps name it something like local.json which contains local settings? (Similar to Gradle's local.properties.)

With no experience with Flutter, I don't really have a well-founded opinion on this. Something generic like that sounds better to me, though I don't want to encourage cluttering a project root with more settings files if there may already be lots of others (pubspec, analysisoptions, etc.!).
I have no idea about how flutter: sdk: flutter came to be so this might be stupid, but if pubspec.yaml is already somewhat flutter-aware, is that not a good place (though it's not really pub-related)? Using env variables could fix the multi-OS problem (sdk: %FLUTTER_HOME% or something).
I thought it weird that sdk: flutter sometimes appears multiple times in a pubspec.yaml, when it seems like something that is effectively a global switch, moving everything to the flutter-dart-sdk and changing all the commands you'd use?

@Hixie: care to chime in on the flutter: sdk history (or tap someone else?)

Path variables [1] make it harder, though. IDEA automatically adds them to its config files using rules that are unclear to me. I worry that it won't work reliably (corner cases and bad error reporting, resulting in confused users).
[1] https://www.jetbrains.com/help/idea/2017.1/path-variables.html

The Dart SDK location is effectively stored in the .packages file once you've run pub get once, which the flutter tool does for you when you run flutter create. The location is in a fixed position relative to the flutter package's location stored in that file. It's possible for that file to get deleted, but all you have to do is run flutter packages get and you'll have it again.
Actually, if you can run the flutter tool then you already know the Dart SDK's location, since it's location is fixed relative to the location of the flutter tool.

Looking in the .packages file sounds like a good way to do it. The use case is where a different process ran flutter create and the IDE wants to pick up the same one they used.

(This comes up when the user has a terminal and editor open, and is partially working from the command line, partially in the editor.)

It looks like either the flutter: or sky_engine: entries would work, after removing a suffix.

Having the sdk location in .idea/libraries/Dart_SDK.xml helps the IntelliJ use-case. I'd prefer not to write too many meta-data files into the project if we can avoid.

I agree you shouldn't write any more, but I'd also argue you shouldn't write this one!) As a user, I would be confused when a .idea folder gets created when I create a new flutter app if I don't use (or even have) IntelliJ! (it's not a big deal though; I'd likely just immediately delete it!).

It looks like either the flutter: or sky_engine: entries would work, after removing a suffix.

Sounds like a reasonable plan. I'll look at adding these to an upcoming version of Dart Code; I'm going to check them in this order (please shout if you think I can do better!):

Current folder (eg. check for ./bin/flutter(.bat) and ./bin/cache/dart-sdk/bin/dart(.bat))
.packages file; flutter: or sky_engine:
.idea/libraries/Dart_SDK.xml (if parseable)
FLUTTER_ROOT env variable
All folders in PATH, in order

In all cases I'll only consider it a match if I find a binary for flutter and dart in the expected locations. The reason for "current folder" is to support the flutter repo (it doesn't have either .packages or Dart_SDK.xml in the repo) and the others are just trying anything we can. I've given preference to the ones inside the project itself because that seems more flexible if you want to override more global settings (like PATH) for the odd projects (or testing).
Sound reasonable?

Also, regarding looking at the current Folder, the only case I think that covers is editing FLUTTER_ROOT itself?

I believe so (@abarth raised https://github.com/Dart-Code/Dart-Code/issues/275 so I figured at least one person had tried!). I don't think it causes any false positives if I'm checking their are both Flutter and Dart binaries.

Since you're assuming the user is familiar with the command line, you could probably skip looking at .idea/libraries/Dart_SDK.xml and ask the user to run flutter packages get to create the .packages file.

But if I know where flutter is, rather than tell them to run it, I can give a button that just does it for them, so anything I can do to make sure I know where flutter is seems worthwhile :-)

You might want to consider looking at ancestor folders to see if the directory is part of the Flutter SDK, for example if the user opens $FLUTTER_ROOT/examples/flutter_gallery

Sounds like a good idea :-)

It looks like either the flutter: or sky_engine: entries would work, after removing a suffix.

Is anyone able to confirm what this line looks like for Mac/Linux? On Windows it's:

flutter:file:///M:/Coding/Applications/flutter/packages/flutter/lib/

I need to manipulate that a little for Windows (we want M:\Coding\Applications\flutter) so I need to make sure I still end up with the correct thing on Linux/Mac.

FWIW, the path in the .idea file is a bit mangled on Windows so I'm gonna skip it for now (since flutter create already resulted in a .packages file.
<root url="file://M:\Coding\Applications\flutter/bin/cache/dart-sdk/lib/async" />

Just jumping in here, @DanTup : do you just want a sample .packages file on the mac?

@pq Yep, that's perfect. I think it'll work as expected in the version I just shipped :)
Well, except for the relative path.. I didn't consider that. I might extend it to support that in future.

VS Code is currently looking in the .packages file and also on PATH for the SDK. I think have any strong wish for this so unless we think there may be other tools that don't want to look in those places, probably we can close this?


Readme.md description of Poly is order-reversed.

I've just started using Polynomials. Readme.md says that Poly(::Vector) constructs a polynomial lowest order first. Experimenting, I see highest order first. Am I missing something? Happy to edit the Readme for you in a PR if needed.

I'm closing, please reopen if you see this isn't right now


cargo add <crate> --git=<repo> -F <feature> results in "error: unrecognized feature for crate " for crates in a workspace

Problem
For crates in a workspace, cargo add with a git flag and feature flag results in an "unrecognized feature" error.
The error occurs if the dependency is being newly added or updated.
Discovered in the fluvio repository CI, but other workspace organized  repositories seem to show the same problem.
Steps

cargo init .
cargo add fluvio --git=https://github.com/infinyon/fluvio.git -F admin
error: unrecognized feature for crate fluvio: admin
no features available for crate fluvio
Manually adding the dependency line to Cargo.toml works fine:
fluvio = { features = ["admin"], git = "https://github.com/infinyon/fluvio.git" }

Possible Solution(s)
Manually adding the dependency works fine.
Notes
Other repos with using a workspace fail in the same way:
$ cargo add tokio --git=https://github.com/tokio-rs/tokio.git -F io-util
    Updating git repository `https://github.com/tokio-rs/tokio.git`
      Adding tokio (git) to dependencies.
error: unrecognized feature for crate tokio: io-util

Repos that are not workspace organized seem to work fine:
cargo add anyhow --git https://github.com/dtolnay/anyhow -F backtrace
    Updating git repository `https://github.com/dtolnay/anyhow`
      Adding anyhow (git) to dependencies.
             Features:
             + backtrace
             + std

Version
cargo 1.76.0 (c84b36747 2024-01-18)
release: 1.76.0
commit-hash: c84b367471a2db61d2c2c6aab605b14130b8a31b
commit-date: 2024-01-18
host: aarch64-apple-darwin
libgit2: 1.7.1 (sys:0.18.1 vendored)
libcurl: 8.4.0 (sys:0.4.70+curl-8.5.0 system ssl:(SecureTransport) LibreSSL/3.3.6)
ssl: OpenSSL 1.1.1w  11 Sep 2023
os: Mac OS 14.2.1 [64-bit]

I believe this is resolved by https://github.com/rust-lang/cargo/pull/13213. The current beta cargo 1.77.0-beta.7 (3fe68eabf 2024-02-29) and nightly cargo 1.78.0-nightly (a4c63fe53 2024-03-06) work for me.

BTW, cargo add fluvio --git=https://github.com/infinyon/fluvio.git is reporting some invalid Cargo.toml format error and is out of scope of this issue.
Click to see the error messages

cargo +beta add fluvio --git=https://github.com/infinyon/fluvio.git -F admin
    Updating git repository `https://github.com/infinyon/fluvio.git`
error: invalid inline table
expected `}`
  --> ../../../.cargo/git/checkouts/fluvio-190650900278d481/3dff103/smartmodule/cargo_template/Cargo.toml:11:23
   |
11 | fluvio-smartmodule = {{fluvio-smartmodule-cargo-dependency}}
   |                       ^
   |
error: invalid character `{` in package name: `{{project-name}}`, the first character must be a Unicode XID start character (most letters or `_`)
 --> ../../../.cargo/git/checkouts/fluvio-190650900278d481/3dff103/connector/cargo_template/Cargo.toml:2:8
  |
2 | name = "{{project-name}}"
  |        ^^^^^^^^^^^^^^^^^^
  |
      Adding fluvio (git) to dependencies.
             Features:
             + admin
             + openssl
             - fluvio-smartengine
             - rustls
             - smartengine
             - unstable
error: invalid inline table
expected `}`
  --> ../../../.cargo/git/checkouts/fluvio-190650900278d481/3dff103/smartmodule/cargo_template/Cargo.toml:11:23
   |
11 | fluvio-smartmodule = {{fluvio-smartmodule-cargo-dependency}}
   |                       ^
   |
error: invalid character `{` in package name: `{{project-name}}`, the first character must be a Unicode XID start character (most letters or `_`)
 --> ../../../.cargo/git/checkouts/fluvio-190650900278d481/3dff103/connector/cargo_template/Cargo.toml:2:8
  |
2 | name = "{{project-name}}"
  |        ^^^^^^^^^^^^^^^^^^
  |

Thanks, @weihanglo.  It does look like the issue will be fixed by #13213.
The error is generated from a couple of cargo-generate template directories in the project that aren't actually listed in the top level Cargo.toml as workspace members.  If you happen to know a way to keep cargo from parsing those directories I'd be happy to apply that.


Execute make generate with new versions

Fixes current swagger checks: https://ci.woodpecker-ci.org/repos/3780/pipeline/7605/26

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@482aae6). Click here to learn what that means.
Patch has no changes to coverable lines.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the GitHub App Integration for your organization. Read more.
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2365   +/-   ##
=======================================
  Coverage        ?   40.70%
=======================================
  Files           ?      183
  Lines           ?    11004
  Branches        ?        0
=======================================
  Hits            ?     4479
  Misses          ?     6174
  Partials        ?      351

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


when trainning, numpy.AxisError, now

File "train.py", line 143, in
(dummy_faces, audio), real_faces = next(train_datagen)
File "train.py", line 80, in datagen
mel_batch = np.expand_dims(np.asarray(mel_batch), 3)
File "<array_function internals>", line 6, in expand_dims
File "/home/user/anaconda3/envs/lipgan/lib/python3.7/site-packages/numpy/lib/shape_base.py", line 597, in expand_dims
axis = normalize_axis_tuple(axis, out_ndim)
File "/home/user/anaconda3/envs/lipgan/lib/python3.7/site-packages/numpy/core/numeric.py", line 1358, in normalize_axis_tuple
axis = tuple([normalize_axis_index(ax, ndim, argname) for ax in axis])
File "/home/user/anaconda3/envs/lipgan/lib/python3.7/site-packages/numpy/core/numeric.py", line 1358, in
axis = tuple([normalize_axis_index(ax, ndim, argname) for ax in axis])
numpy.AxisError: axis 3 is out of bounds for array of dimension 2

my fault


Custom POST Handler Unable to Read req.formData()

Hello, I came across an error and was asked to report it by the Deno CLI.
Overview: I am attempting to create auth system (login) using Deno Fresh framework. I fill in my form and when I hit submit I expect the logic to pass my form data to the POST Handler and perform auth duties.
routes/login.tsx

GET - shows login form
POST - will read form data and check with the database to confirm user credentials are correct to serve token and redirect.

I create an example from my project to minimally reproduce error
/** @jsx h */
import { h } from "preact";
import { Handlers } from "$fresh/server.ts";
import { tw } from "@twind";

export const handler: Handlers = {
  async POST(req, ctx) {

    // Attempting to read data from form submission results in Deno panic & shutdown
    const formData = await req.formData();

    return new Response(
      JSON.stringify({ message: "Showcasing formData() error" })
    );
  },
};

export default function Page() {
  return (
    <div class={tw`p-4 mx-auto max-w-screen-md`}>
      <form method="post">
        <input type="email" name="email" class={tw`bg-gray-300 mr-4`} />
        <input type="password" name="password" class={tw`bg-gray-300 mr-4`} />
        <button type="submit">Login</button>
      </form>
    </div>
  );
}

The CLI Error:
Deno has panicked. This is a bug in Deno. Please report this
at https://github.com/denoland/deno/issues/new.
If you can reliably reproduce this panic, include the
reproduction steps and re-run with the RUST_BACKTRACE=1 env
var set and include the backtrace in your report.

Platform: macos aarch64
Version: 1.23.3
Args: ["/opt/homebrew/bin/deno", "run", "-A", "--watch=static/,routes/", "dev.ts"]

thread 'main' panicked at 'internal error: entered unreachable code', ext/http/lib.rs:561:10
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Let me know what you think.

see here: issue 15254

@riefer02 Update your deno version to 1.25.0. If you installed it with Homebrew you might have to wait a little bit since they seem to be stalled at 1.24.3 (https://github.com/Homebrew/homebrew-core/pull/108838).

Please update to 1.23.4 or later.


Question: How to get value from application/x-www-form-urlencoded body?

This is more a question on how to fetch one value from an application/x-www-form-urlencoded encoded request body. I thought that due to the fact that body-parser might be used, it would be possible to catch the value via
{{#is (capture from='body' using='jsonpath' selector='$.client_id) 'some-client-id'}}

but without luck. Then I tried to use the regex matcher via:
{{#is (capture from='body' using='regex' selector='client_id\=(.*)\&') 'some-client-id' }}

Unfortunately this was also not successful. Any pointer into the right direction is highly appreciated 🙂

Have you tried {{#is request.body.client_id 'some-client-id'}}?

@shubhendumadhukar, thanks for your suggestion. Unfortunately, the same result 🙁

That's strange. It worked for me!
Would you be open to sharing the complete contents of your .mock file?

Sure, here it is 🙂
{{#is request.body.client_id 'valid-client-id'}}

HTTP/1.1 200 OK
Vary: Origin
cache-control: no-store
Content-Type: application/json; charset=utf-8
Content-Length: 1202
Date: Fri, 23 Sep 2022 17:09:08 GMT
Connection: keep-alive
Keep-Alive: timeout=5

{"access_token":"the-jwt","expires_in":3600,"token_type":"Bearer"}

{{else}}

HTTP/1.1 401 Unauthorized
Content-Type: application/json

{
    "response": "response if no valid client id is present."
}
{{/is}}

Unfortunately, I don't seem to be able to replicate it.

Created a test/POST.mock file with following content

{{#is request.body.client_id 'valid-client-id'}}

HTTP/1.1 200 OK
Vary: Origin
cache-control: no-store
Content-Type: application/json; charset=utf-8
Content-Length: 1202
Date: Fri, 23 Sep 2022 17:09:08 GMT
Connection: keep-alive
Keep-Alive: timeout=5

{"access_token":"the-jwt","expires_in":3600,"token_type":"Bearer"}

{{else}}

HTTP/1.1 401 Unauthorized
Content-Type: application/json

{
    "response": "response if no valid client id is present."


Allow files to be ignored when deploying a theme

Pass the flag ignore_files: https://shopify.dev/themes/tools/theme-kit/configuration-reference#ignore-patterns

resolved in v1.2.2


Coverage for cumulusci.salesforce_api

Coverage decreased (-5.2%) to 71.599% when pulling a7cdaee85c1f01a239d819e8cc107ea9ed672472 on feature/coverage-salesforce into 714dd141c1eeb6eacdcdb90d19168f6dd334aa72 on master.


aider-region-refactor: Symbol’s function definition is void: aider-read-string?

env: doom
configuration:
(package! aider :recipe (:host github :repo "tninja/aider.el" :files ("*.el")))
(use-package aider
:config
(setq aider-args '("--model" "gpt-4o-mini")))
result:
aider-region-refactor: Symbol’s function definition is void: aider-read-string

hmm it should be already defined here: https://github.com/tninja/aider.el/blob/main/aider.el#L53
Would you mind run this command in your scratch buffer and see if it work? (aider-read-string "Enter a string: ")

I tried scratch and got the same error.
I wonder if helm is required for this to work?

helm should be an optional. It could be a bug in the README, on doom emacs installation.
Submitted PR at https://github.com/tninja/aider.el/pull/32, would you mind help check if the new command will work? it specify that only load aider.el and aider-doom.el, bypass the aider-helm.el file
"(package! aider :recipe (:host github :repo "tninja/aider.el" :files ("aider.el" "aider-doom.el")))"

It is now available by #32.


Added tooltip help for parameters

I'd be happy to hear a better way to do this, because I don't like messing with HTML and CSS in our own code, but even more than that I want tooltips to work so that my notebooks aren't all cluttered withhelp(obj).  The version in this PR seems to work:

but maybe someone knows a way to do it using ipywidgets' existing tooltips?  I didn't see a way for those to apply to an HTML element, and the only way we got our parameters lined up was in an HTML element.
I'm not too happy about the formatting, though that's presumably easy enough to change as CSS.
Also, I'd like to put the class docstring as a tooltip for the Parameterized object's name, which I can easily do by adding self.helptip(self.parameterized) in the appropriate spot:
        widgets = [ipywidgets.HTML(self.tooltip_def +
            ('
{0}'+self.helptip(self.parameterized)+'').format(self.parameterized.name)+"
")]

However, then I get a dump of a huge docstring, when all I wanted was the actual text defined in this Parmeterized class (i.e., "An example parameterized class" in this case):

Does anyone know how to get the bare docstring, not the jazzed-up version that has all the parameters tacked onto it?

Looks fine to me although the formatting can be improved a bit. I'll try to have a look at that soon. For now this looks good to merge.

One thing, should we have an option to disable the tooltips?

I guess it wouldn't hurt; not much opinion either way.

Without trying them I can't say, if they have any chance of being annoying to a user who is familiar with the parameters, e.g. by obscuring the widgets themselves due to a stray mouse movement, I'd vote for adding it.

Ok.
As for the class docstring, as best I can tell the \_\_class\_docstring\_signature method in param/parameterized.py is overriding \_\_doc\_\_ with the expanded version, and thus I don't see any way to recover the original string.  Expanding the string is configurable globally, by setting parameterized.docstring_signature=False and parameterized.docstring_describe_params = False, but it doesn't seem possible to do it on a per-call basis.
Some of paramnb needs to move into param anyway, and when we do that (and release param) I guess we can make the class store its original docstring somewhere...

Some of paramnb needs to move into param anyway, and when we do that (and release param) I guess we can make the class store its original docstring somewhere...

Sounds good, alternatively it'd be nice if we could render the formatted version correctly.

Well, the formatted version includes all the parameters, which in this case is redundant since they are all already on the web page, so I don't think I'd want that information duplicated.

Well, the formatted version includes all the parameters, which in this case is redundant since they are all already on the web page, so I don't think I'd want that information duplicated.

True, the original docstring is probably sufficient.


Uncaught Error: Cannot get property 'id' on missing remote object 35

[Enter steps to reproduce:]

...
...

Atom: 1.41.0 x64
Electron: 4.2.7
OS: Ubuntu 18.04.4
Thrown From: Atom Core
Stack Trace
Uncaught Error: Cannot get property 'id' on missing remote object 35
At /usr/share/atom/resources/electron.asar/renderer/api/remote.js:222

Error: Cannot get property 'id' on missing remote object 35
    at throwRPCError (/usr/share/atom/resources/electron.asar/browser/rpc-server.js:148:17)
    at /usr/share/atom/resources/electron.asar/browser/rpc-server.js:428:5
    at EventEmitter.ipcMain.on.args (/usr/share/atom/resources/electron.asar/browser/rpc-server.js:273:21)
    at EventEmitter.emit (events.js:182:13)
    at WebContents.<anonymous> (/usr/share/atom/resources/electron.asar/browser/api/web-contents.js:368:21)
    at WebContents.emit (events.js:182:13)

Commands
     -5:00.9.0 ftp-remote-edit:open-file (atom-workspace.workspace.scrollbars-visible-always.seti-ui-no-icons.theme-one-dark-syntax.theme-one-dark-ui)
     -4:53.3.0 find-and-replace:show (input.hidden-input)
     -4:52.4.0 core:confirm (input.hidden-input)
  2x -4:48.3.0 core:copy (input.hidden-input)
     -4:47.7.0 find-and-replace:show (input.hidden-input)
     -4:40.3.0 core:paste (input.hidden-input)
     -4:40 core:save (input.hidden-input)
     -4:40 find-and-replace:select-next (input.hidden-input)
     -0:14 ftp-remote-edit:open-file (atom-workspace.workspace.scrollbars-visible-always.seti-ui-no-icons.theme-one-dark-syntax.theme-one-dark-ui.find-visible)

Non-Core Packages
atom-beautify 0.33.4
atom-ide-ui 0.13.0
atom-typescript 13.6.1
atom-vue 0.6.0
dvnk-icons 1.8.2
ftp-remote-edit 0.18.0
hyperclick 0.0.0
hyperclick-php 0.3.0
ide-typescript 0.9.1
js-hyperclick 1.19.0
language-ejs 0.4.0
mark 1.3.3
react 0.18.0
vue-atom-snippets 1.2.0
vue-hyperclick 0.2.0

Thanks for reaching out!
We require the template to be filled out on all new issues and pull requests. We do this so that we can be certain we have all the information we need to address your submission efficiently. This allows the maintainers to spend more time fixing bugs, implementing enhancements, and reviewing and merging pull requests.
Thanks for understanding and meeting us half way 😀


Convert MDL model to Caffe2 or ONNX pb format

Is there a utility to convert it?

Now, MDL does not support to convert MDL model to Caffe2 or ONNX pb format, and welcome to participate in the support.


New Received Too Much Data Error

Running the latest build from yesterday I am receiving an error when doing upscale.  This workflow has been working fine for the last couple of months:
08:50:32.911 [Error] Internal error processing T2I request: System.IO.IOException: Received too much data! (over 33554432 bytes)
at StableSwarmUI.Utils.Utilities.ReceiveData(WebSocket socket, Int32 maxBytes, CancellationToken limit) in C:\Code\StableSwarmUIAndrew\src\Utils\Utilities.cs:line 142
at StableSwarmUI.Builtin_ComfyUIBackend.ComfyUIAPIAbstractBackend.AwaitJobLive(String workflow, String batchId, Action1 takeOutput, CancellationToken interrupt) in C:\Code\StableSwarmUIAndrew\src\BuiltinExtensions\ComfyUIBackend\ComfyUIAPIAbstractBackend.cs:line 277    at StableSwarmUI.Builtin_ComfyUIBackend.ComfyUIAPIAbstractBackend.GenerateLive(T2IParamInput user_input, String batchId, Action1 takeOutput) in C:\Code\StableSwarmUIAndrew\src\BuiltinExtensions\ComfyUIBackend\ComfyUIAPIAbstractBackend.cs:line 529
at StableSwarmUI.Text2Image.T2IEngine.CreateImageTask(T2IParamInput user_input, String batchId, GenClaim claim, Action1 output, Action1 setError, Boolean isWS, Single backendTimeoutMin, Action`2 saveImages, Boolean canCallTools) in C:\Code\StableSwarmUIAndrew\src\Text2Image\T2IEngine.cs:line 275

Huh, you're upscaling... pretty big if you're getting 33MiB on a single image. I bumped the limit up to 100MiB. Hopefully should suffice now? Heh.


Expose native SSL context to allow more SSL configuration

Currently, the example in the readme says "There are tons of SSL options", but there are only 6 options implemented (key_file_name, cert_file_name, passphrase, dh_params_file_name, ca_file_name, ssl_prefer_low_memory_usage) :-)
I really like cool and simple interfaces like this, but for special cases you need full control over the underlying SSL implementation (e.g. OpenSSL).
SSL/TLS best practices change over time and should not be hardcoded into a library, I think (especially without a chance to override). Currently I don't see a possibility to change e.g. the set_cipher_list, SSL_OP_CIPHER_SERVER_PREFERENCE or setting a ECDH curve (without patching).
Maybe the easiest way is, to expose the SSL_CTX* pointer in any way, to allow setting custom options after init (I dont't think, it makes sense, to add all possible SSL options to the options struct).

Haha, you don't think 6 is plenty? :)
Sure we can add that, but probably as void *. It could also make sense to add ways to get the SSL of a session so that you can read things like selected cipher and so on.

It could make sense if us_socket_context_get_native_handle returns the FD for TCP and the SSL * for SSL sockets

I'm a little behind with the SSL thing, I have to fix a few things before I can look at that since I have other issues to fix and tests to write and so on.
But yes overall SSL needs a big overhaul and many added functions.

sounds good :-) thanks :-)

I would love to have something similar to SNICallback (https://stackoverflow.com/questions/29604697/i-cannot-use-snicallback)
The goal is to be able to do ssl termination for several websites and also to be able to generate certs and load them automatically at runtime :)

The App holds one HttpContext which holds one SSL_CTX. So adding App::getSSLContext() is a starter.
This will require us_socket_context_get_native_handle, returning void ptr (or nullptr in case of TCP).

@not-implemented This commit aac11b07fbdd3ca59aa4823cf45db5c41a218b57 adds App::getNativeHandle and AsyncSocket::getNativeHandle and sets up the foundation in uSockets.
However it does not implement it in openssl.c, so us_internal_ssl_socket_context_get_native_handle and us_internal_ssl_socket_get_native_handle is not implemented yet. You could do that and PR it, it should be simple but I don't want to right now because it has to be done for OpenSSL, BoringSSL and WolfSSL.
Then we probably want WebSocket and HttpResponse to expose the protected getNativeHandle from AsyncSocket, I forgot that.

Never mind I made the changes, it should work now. Have a spin

@alexhultman: Very cool, thanks, I'll try next week and give you feedback!

@alexhultman Seems to work fine for OpenSSL (I had to refactor to the new "upgrade" handler in v18 first, so it takes a little bit longer).
I currently use App::getNativeHandle() only - but `AsyncSocket::getNativeHandle()´ will also be very interesting when implementing more metrics.


Enable lowering all float types to tosa

Allow lowering of all floating point types available in onnx-mlir to tosa, since tosa now allows arbitrary floating point types when no specific mode is used (see https://github.com/Xilinx/llvm-project/pull/175).

Thanks, looks good!


std::string Needs to be Rewritten Using Characters, NOT Bytes

Unfortunately std::string was written such that its indices refer to bytes of the underlying string, rather than characters of the underlying string. Unlike ascii, these two are not the same thing because std::string uses utf8 encodings, and utf8 encodings can span multiple bytes (1 - 4 bytes). This makes the API confusing and needlessly complex:
    /// Returns a sub-string using the given byte indices, where `i` is the first byte position and `j` is the start
    /// of the first byte not included (or the length of the string). The indices must be at valid utf8 char boundaries,
    /// guaranteeing that the result is valid utf8.
    public fun sub_string(s: &String, i: u64, j: u64): String {

how is an application-developer supposed to know which bytes in a string correspond to utf8 char boundaries? For this to be useable the application-developer would have to write their own custom implementation of utf8 in Move right into their package, which is way too much work for such a rudimentary operation.
Similarly, std::string::length refers to the number of bytes, NOT the number of characters, which is again, confusing. Similarly std::string::insert again refers to indices of the underlying byte-array, NOT the character array.

The way how string is using byte and not character indices is exactly the same as Rust does it. Its a way to implement utf8 efficiently. There is no need to actually index characters. All indices are obtained by other string functions. You are not supposed to index characters directly. There is no need for this in most practical scenarios. Closing as working as intended.

The way how string is using byte and not character indices is exactly the same as Rust does it. Its a way to implement utf8 efficiently. There is no need to actually index characters. All indices are obtained by other string functions. You are not supposed to index characters directly. There is no need for this in most practical scenarios. Closing as working as intended.

Rust strings have char and char_indices methods, which allow you to enumerate over individual characters within a string, which is very useful. Right now it's not possible to enumerate through a string, unless you build a custom utf8 implementation, because std::string::internal_is_char_boundary isn't a public function.

@wrwg
For, utf8 the bytes length is not always useful as the characters count because each individual character can be of variable length.
This is unlike ASCII where the bytes length is the same as character length.
Most of the time we only just want to know the number of characters that makes up string, the length function will always work for ASCII but not always work for utf8.
How about having a count or chars_count function that returns the characters count? it doesn't affect the existing length function.

I wonder whether in this case, we should just add fun next_char_boundary(&string, u64): u64. This allows to iterate over characters, and use substring to split those graphemes out into their own strings.

I wonder whether in this case, we should just add fun next_char_boundary(&string, u64): u64. This allows to iterate over characters, and use substring to split those graphemes out into their own strings.

Yeah something like this would be helpful; ideally developers should be able to iterate over characters and manipulate strings without having to worry about the complexity of utf8 character encodings.

Can you (a) please make a more reasonable title for this issue. The title is pretty bad. And (b) give some more reasons why we need this. What is your use case? I haven't seen many smart contracts which manipulate strings (way too expensive).
Normally, extensions to the stdlib go through really high scrutiny and are discussed in the community meeting first. Also,
once we introduce a new native function, there is some extra work to pipe this through the layers correctly with gas, incremental rollout, etc. That is why we rarely take community contributions. There is a bunch of further string functions we want to add (specifically formatting) so instead of #849 this one should go probably in a batch with the other ones.

Can you (a) please make a more reasonable title for this issue. The title is pretty bad. And (b) give some more reasons why we need this. What is your use case? I haven't seen many smart contracts which manipulate strings (way too expensive).
Normally, extensions to the stdlib go through really high scrutiny and are discussed in the community meeting first. Also, once we introduce a new native function, there is some extra work to pipe this through the layers correctly with gas, incremental rollout, etc. That is why we rarely take community contributions. There is a bunch of further string functions we want to add (specifically formatting) so instead of #849 this one should go probably in a batch with the other ones.

I renamed the issue; sorry for the original name! Too aggressive haha.
I've been building out Sui's NFT standard, and what I'm doing is grabbing the type-names (addr::module_name::struct_name) and using that for security in a lot of places, which involves a lot of string manipulation; for example parsing 0x1::coin::Coin<0x2::sui::SUI> into just 0x2::sui::SUI, or parsing user-input like "Option<vector>" into { optional: true, type: "vector" }. This kind of takes away a lot of the static-checking Move was built around, and makes the behavior more dynamic, which is a good thing and a bad thing...
Some examples I wrote here:
https://github.com/capsule-creator/capsules/blob/master/packages/sui_utils/sources/encode.move
I've been using ascii because ascii is easier to work with (1 byte = 1 char), but ascii is less gas-efficient (at least on Sui) than utf8; it might be a gas-mispricing or it might be due to utf8 being a native function while ascii is all written in Move. Either way I'd like to be able to deprecate ascii entirely from my code base and use utf8 exclusively (especially if it means cheaper gas) because it's easier to present one unified string type to users rather than try to have two string-modules and have users pick between ascii or utf8 (devs don't care about string implementation details; they just expect stuff to work).
This is an example of a simple task to implement using utf8:
let i = 0;
let reverse = string::utf8(b"hello");
let len = string::char_count(&str);
while (i < len) {
   let char = string::sub_string_char(&str, i, i + 1);
   string::insert_char(&mut reverse, 1, char);
};

This iterates through the characters, and inserts them after the 'h' and before the 'ello' in 'hello', putting them in reverse order. In order to do this I propose 3 functions:
public fun char_count(str: &String): u64
public fun sub_string_char(str: &String, start: u64, end: u64): String
public fun insert_char(str: &mut String, at: u64, to_add: String)
how do you feel about these? They're new functions so they don't break the existing API. Is there an issue / PR for the other string functions that you're working on? Yeah I'd love to bundle them all together; that makes sense.
What is the process for getting a PR included into the Move core? I imagine it's a pretty high bar because of the security risks implied. Thanks for your help!

Thanks Paul, the use case sounds convincing. I approved the PR but also someone from Sui should look. In order to get the usable from Sui, more work has to be done as outlined in the PR.

I forgot: yes, feel free to add the char functions, perhaps to the same PR which is already out. You need to negotiate with the Sui team (I added @tnowacki to the PR) on getting this into the Sui system. In Aptos it will likely land a few weeks later together with other new string functions for formatting (which still have to be written).


AutoComplete endpoint in Search only accepts a single TargetFramework

For performance reasons server round trips could be reduced by allowing the client (the project.json editor) to send multiple TargetFrameworks and receive multiple query responses in a single shot.
Note this is a performance optimization strictly for the network round trip. The server still would have to do two queries internally.

Could we validate that this is a performance bottleneck with a real world data set and network setup?


Bugs with template-string-converter.autoRemoveTemplateString

First of all, thanks @meganrogge for your continued work on this extension, and @xNocken for creating the feature to convert back to a regular string when the interpolation markers (${}) are removed (in #19, original issue: #16).
The new feature is unfortunately somewhat buggy, making the editor actually frustratingly unusable in some cases.
Here are some buggy cases:

Adding a variable with an empty template string (for editing afterwards) causes it to be transformed to double quotes right away.

This particular issue above is avoided by only pressing the backtick key on the keyboard once, but this workaround doesn't work with tagged template literals:

Removing the interpolation from a template string causes the cursor to jump to the end:

Typing inside an existing template string causes it to be converted to a string. This is exacerbated by 2 above.

This also is triggered by typing a $ into an empty template string:

I seem to have the feeling there were more problems with it, but I can't think of them right now. I'll follow up later with them if they come up.
It seems like some of these things may be solved by running this on file save. Hmmm... maybe also for the whole extension? @meganrogge what are your thoughts about running the transformations from this extension generally always on save? (eg. allowing configuration under editor.codeActionsOnSave?). This would also address cases like https://github.com/meganrogge/template-string-converter/issues/38
Or, if not, then maybe making it so that these autoRemoveTemplateString transformations get applied on save.

I don't think that its a problem if it automatically removes the template strings on type. That's what the extension is for. If you have a normal string you can type normal strings with hardcoded content. If you then want to change it to a template string then just type ${ and its one. I already got used to using ' when writing template strings.
Making it that its on save would make it more annoying to use. When you write ${} inside a normal string its basically a normal string. That means that you don't have autocomplete. And When removing it and waiting for safe could make it annoying because of linters.
The bug I agree with that should be fixed is that it jumps after the string after changing it.

When you write ${} inside a normal string its basically a normal string. That means that you don't have autocomplete.

Good point, this is a downside of changing the whole extension to "transform on save". But it would still be valid for the autoRemoveTemplateString feature, which would not be affected by this.

And When removing it and waiting for safe could make it annoying because of linters.

I think the downside of this is not as bad as the UX problems with all issues reported above.

I don't think that there is a good reason to change it. The extensions purpose is that you can easily write strings without thinking about what type of string you need. The way you use it is just wrong. Just use double or single quotes whenever you want to make a string. The extension switches it to template strings if you need it.

I have removed the setting bc of complaints that it causes problems

But why remove it? The setting is off by default and if someone has problems with it they can turn it off. And imo this feature is equaly as important as the main feature. And all problems I've seen someone have with this is just that they want to write `` without the ${}. But that's where you need to disable it. That's why it's an option.

https://github.com/meganrogge/template-string-converter/issues/47 seems pretty bad.

The problem there is that all changes done by the add on is tracked in the history. What happens if you revert that is that the add on changes it directly back to the normal string. That means that this should also occur in the other direction. A workaround for that would probably be to ignore changes done via the code history feature.

If you submit a PR that fixes this, I'll merge it @xNocken

Yeah, I think there are a number of pretty critical issues with this feature @xNocken. If you feel so strongly about it, why not invest some time in refactoring it to address these problems?

I fixed the biggest issue that the history gets overwritten and another issue you mentioned that the cursor jumps. I think that are all issues the option has. the other "issue" with writing `` without ${} is not a bug. If you want to write code like that disable that option.

Ok there is one thing i didnt realise where you are right. If you want to use them to make multli line strings. But thats fixed in my newest pr. It only converts them back if you delete something while it is singleline. And i dont know how i would fix that. From what i can see its not possible to see what exaclty was changed if you delete something. You only know where something got deleted.

So just copying here from https://github.com/meganrogge/template-string-converter/pull/48#issuecomment-985570350 for visibility:
Ok, so it seems this feature is still somewhat buggy:
It erroneously makes the following tagged template string into a double-quoted string, when hitting backspace anywhere inside the template string.
Notice there are no interpolations. It's important that it stay as a tagged template string.
export async function down(sql: Sql<{}>) {
  await sql`DROP TABLE reset_password_requests`;
}

I'm guessing the logic for this code for this feature is:

If the user is inside a template string AND hits backspace:

switch to double quotes

This is maybe almost ok, but should probably do some better checks:

If the user is inside a template string AND there is an interpolation (${ and } present in the string) AND there is NO interpolation AFTER hitting backspace:

switch to double quotes

That seems like it would be a much more robust start of an implementation (probably also has weird edge cases, but at least it's much better than what's there now).

I have found that the extension feels very buggy when that setting is enabled. @xNocken want to fix it as @karlhorky suggests?

His suggestions would require the extension to keep track of the amount of ${} in every string and every time something is changed it needs to check the strings if the amount changed and if it was something above 0 and now is 0 then remove it. I don't quite remember what info vscode gives you if you delete something. I guess you get the position where something was deleted right? This allows the extension to only check the amount changed of the current string.
But the harder part would be to find the amount of ${} in every string, We would need to every time a file is opened search the whole file for template strings, count the amount of ${} and store it. But I don't think its as easy as it sounds. because if I remember correctly the current way of finding the template string is checking the current position and check for a ` before and after the cursor. If found that's the template string.
I think to make this really reliable we would need to rewrite the extension and make the detection much better. We need to make the extension understand the code and the context the template string is used in. This would fix issues with template strings inside template strings or ` inside template strings.  It would maybe be easier if vscode would give you the chars that were deleted. But the last time I checked it only gave you an empty string to signal that something was deleted and not what.
I don't have the time or knowledge to do this. And I don't think we can do anything to fix this as long the code is just a big if else if.

I might see if I have time over the holidays to look into this. I agree it might not be worth it to process the whole file (could be tons of lines), but that might be needed for it to be totally context aware.

@karlhorky why do you keep this setting enabled if it bothers you so much?

And i dont see how you can have so many problems with it. I havnt had a single problem with it since i made the first version. Except maybe ` inside template strings and template strings inside template strings. And your current problem
export async function down(sql: Sql<{}>) {
  await sql`DROP TABLE reset_password_requests`;
}

isnt this just the same as this?
export async function down(sql: Sql<{}>) {
  await sql('DROP TABLE reset_password_requests');
}

The other problem you had that i fixed was you want to write a template string and type `` and it corrects it to "". Why dont just type "" and make the extension do its job when you type ${}. Or is this problem related to the thing above?

why do you keep this setting enabled if it bothers you so much?

Ah, because when it works, it's great! 👍 I think that it is the opposite feature of what this extension provides, and totally makes sense to have it!

isnt this just the same as this?

No, tagged template literals are different than calling a function.

Why dont just type "" and make the extension do its job when you type ${}

Because tagged template literals (eg. with CSS) do not always have interpolation:
const headerStyles = css`
  background-color: red;
`

The reason that I have so many different cases is because I'm teaching web development beginners at our bootcamp, and aside from the live coding that I do in lectures (where I find a lot of these problems, with basic things that beginners are learning), I often reproduce all the different things that they do with their code on my machine, and see errors.

I appreciate that you point out these issues and wish I had more time to spend working on solutions to them. I imagine it would be a confusing experience for students who are just learning to see these unexpected cases. 😢

@xNocken No, tagged template literals are different than calling a function.

@karlhorky
This may not be the right place to ask this but what is the advantage over using this method? The arguments it gives you look pretty weird. The first argument is an array with all normal text and all other arguments are the values typed in ${}.
I know this is very opinion based but couldn't you just call the function with func(['the text']) instead of functhe text? For me it looks much cleaner and is easier to identify as a function call. And you maybe don't even want to put other text in another array.
For example you call a function that takes an array and does cool stuff with all the lines in the array. And then you call the function like this and if you want to add a variable to a line it removes the variable and splits the line into two or am I missing something?
The only real usecase i can find for this is if you need the variables and text seperated to modify them or something. Like escape them for sql or make them a different color for a logger.

This may a bit off topic but what is the advantage over using this method?

Yeah, philosophical discussions about why to use tagged template literals are pretty off topic, I agree.
If you're interested in why the industry is using this technology, maybe take a look into common use cases such as Emotion, Postgres.js, etc. It's a very nice DX ("Developer Experience"), and integrates with many tools, such as vscode-styled-components.

I appreciate that you point out these issues and wish I had more time to spend working on solutions to them. I imagine it would be a confusing experience for students who are just learning to see these unexpected cases. 😢

@meganrogge No worries, you're doing a great job! ❤
For now I usually avoid recommending this particular template-string-converter.autoRemoveTemplateString option for students because it's still pretty buggy. But I would hope that in the future, it could be the default! 🙌

I'll try to work on this over the holidays.

having trouble with vsce again, but will publish the extension with the above changes ASAP

done

here's what I did - only works for single line template strings at the moment, but won't have bugs for multi-line
if within backticks and not within a template string, AND if previous version at the current cursor position used to be a template string, then convert backticks to quotes

This template-string-converter.autoRemoveTemplateString feature looks pretty good now, great work @meganrogge ! 🙌

Since i updated to the newer version (0.6.0) the extension is extremly buggy. It doesnt convert them back and sometimes doesnt even convert them to template strings. I havnt found a way to trigger the not converting to template string consistently but the not converting from bug is consistent.
And  @meganrogge did you forget to push the 0.6.0 changes? because the package json only says 0.5.9

@xNocken can you come up with a reproducible example where the buggy behavior is triggered?

The changes I made were unrelated to the code that converts to template string, so I find that surprising @xNocken. As @karlhorky said, pls give some examples of what causes the unexpected behavior.

@xNocken I do see that sometimes the back-ticks aren't replaced with quotes. I will look into that. This solution is still a vast improvement because the problematic bugs @karlhorky reported related to the original version are now fixed.

i wrote a simple prototype that we could maybe use to detect the current line. Its a function that takes in a line and returns all lines where they start, end and what type they are. The code can probably be improved but this would allow us to accuratly say what string we are really in. i dont handle multiline template strings and there might be some other edge cases i dont handle so this would need a bit of testing.
https://gist.github.com/xNocken/4879d622f9f3044e7dad5557bf4c75a6

I updated it a bit since i posted it here to handle a few more edge cases. Should be easy to change it to take a cursor position and return the current string

Please make a PR @xNocken and I'll test it. It should make use of the changes I made IE evaluating the previous document at the current position to see if it used to be a template string.

I dont have much time to create a pr and i think you would be able to do it much faster anyways because you know the code already.

I have an update for the not converting to template strings bug. Randomly when i type stuff and just write '' and inside it a ${ it does not convert them. Removing the ${ an rewriting it doesnt fix is and rewriting the whole string doesnt work either. But after some time the bug just disappears and it converty them when i type something in it.

@xNocken can you pls clarify the repro steps?

Expected behavior
it converts strings to template strings
Actual behavior
it doesnt convert string to template strings
How to reproduce
use the extension and be (un)lucky
Attempts to fix it

everything except restarting vscode

@xNocken to create a good, reproducible example, it can help to start with code.
If you want to put effort into creating a new issue that will capture the problem so that the bug gets fixed, try this:

The next time that the buggy behavior happens for you, backtrack a bit (undo a few times until before the bug), and then perform the exact actions needed to make it happen again
Copy the code you think was causing it into a new file and try it again elsewhere, to verify that the bug is really associated with the code you suspect it is
If the buggy behavior didn't show up, you can instead copy more of your code again into a new file, and repeat until you find the correct code that causes the buggy behavior. Once you find the code and the set of actions that triggers the buggy behavior, then you can copy the code into a new issue in this repository, along with a detailed description of the actions that someone else would follow to trigger the buggy behavior. At this point, you could also consider taking a video to post along with the new issue (I recommend Kap on macOS and ScreenToGif on Windows)

This is also what I went through to report the other issues in this repo.


set-output command warning

I tried using 'amondnet/vercel-action@2b2891b2a25aacf731bced4cff6feb84007b1458' . 2b2891b2a25aacf731bced4cff6feb84007b1458 is the latest commit for the moment and  @action/core version is 1.10.0 in this commit. However, I always get the github warning about the set-output command

Bumping to 25.1.1 should resolve. Fixed on #208

Bumping to v25.1.1 should resolve. Fixed on #208

Still seeing the issue in v25.1.1.

Looks as if the dist/index.js file is not up to date for the v25.1.1 tag and needs to be fixed. Seems to be correct for the v25 tag though so pointing to that tag should work for now until the v25.1.1 tag is fixed.

Hi, version v25.1.1 fixes this in workflow examples, not in code.

It looks like it's related to @actions/core, no the action itself.
Albeit the version of this dependency is pretty recent, "@actions/core": "^1.10.0" in package.json, the error still occurs. May be a bug in @actions/core. More info here.
Also, @actions/core should be upgrade to node 20, since it's still based on node 16 which is about to be sunset.


Use Forbidden API and explicit Locale and Charset

As explained in [https://code.google.com/p/crawler-commons/issues/detail?id=63]
we currently rely on the default locale and charset in many places in the code
which is error prone.

Using [https://code.google.com/p/forbidden-apis/] will help discover such cases
and fix them.

Patch attached includes the Forbidden API in our pom. Run 'mvn clean test' to
see the results.

Original issue reported on code.google.com by digitalpebble on 23 Jan 2015 at 9:19
Attachments:

66-forbidden.patch

There's been a new version of the forbidden-apis since. We could maybe run it from the command line [https://github.com/policeman-tools/forbidden-apis/wiki/CliUsage] instead of adding it to the pom.xml

Hi @jnioche this issue has been addressed via #94 ?

yep, thanks


[Feat]:  Adding a chat BOT in website

What feature?
I have an idea of adding a chat bot in website like most of the website
That AI chat bot will do following things

Tell the user what this website is all about and chat with the user
Tell the user where to find what he/she asking for
Tell the weather if needed
and many more things that can an AI do

Assign me this issue for this add-on
Add screenshots

Code of Conduct

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

@JasonDsouza212

@marshadkhn sounds amazing

@JasonDsouza212
Thankyou for this
Soon I'll send PR

Please assign this issue to me

Please assign this issue to @akanksha984


[Todo] Deno automation (action & tag creation)

When Deno source changed: test (eg. using actions) & automatically create a tag so deno.land/x/xumm will be updated. Possibly use version from package.json (yes, that's node, maybe it can be kept in sync?)

#8


[WIP] init: throw on dvc/dvclive config mismatch

Fixes #60
TODO

[x] - allow overriding if proper env variable is present
[x] - If same dir is provided via env, make sure to update config

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@e923b1a). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #74   +/-   ##
=========================================
  Coverage          ?   81.30%
=========================================
  Files             ?        9
  Lines             ?      230
  Branches          ?        0
=========================================
  Hits              ?      187
  Misses            ?       43
  Partials          ?        0

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 e923b1a...ce783fc. Read the comment docs.

@pared Is this still [WIP] ?

@daavoo sorry for the late response, yes, I need to finish this change according to the discussion under #60 I will get to it after later this week.


Browser forwarding

implemented useBrowserSender hook to support forwarding on the browser, dynamically imported useNodeSender/useBrowserSender in useForwarder, tested functionality and webhooks are successfully forwarded using the browser

@esinarta Thank you! 👏


M3-1723 fix typo in stackscript tips

Coverage remained the same at 27.734% when pulling c13b911697fa5ff8dd6ec2ba9ba720c8bbe558cf on rmcintosh:ss-tips-typo into d7c8715797de8989bc751a58072d3a75781e50af on linode:develop.


Improvements to parsing bogus NPM package.json files

Please have a look at the individual commit messages for the details.

This change is

Reviewed 1 of 1 files at r1, 1 of 1 files at r2.
Review status: 0 of 1 files reviewed at latest revision, 2 unresolved discussions.

analyzer/src/main/kotlin/managers/NPM.kt, line 398 at r1 (raw file):

        val (namespace, name) = splitNamespaceAndName(rawName)

        if (name.isEmpty()) {

Maybe use `isBlank() here? Same below.
Alternatively the expression in asTextOrEmpty() could be changed to:
if (this != null) this.asText().let { if (it.isBlank()) "" else it } else ""

analyzer/src/main/kotlin/managers/NPM.kt, line 392 at r3 (raw file):

    private fun vcsInfoFallback(name: String, infoFromPackage: String, infoFromDirectory: String) =
        when {
            infoFromPackage.isEmpty() -> {

isBlank()?

Comments from Reviewable

Review status: 0 of 1 files reviewed at latest revision, 2 unresolved discussions, some commit checks failed.

analyzer/src/main/kotlin/managers/NPM.kt, line 398 at r1 (raw file):
Previously, mnonnenmacher (Martin Nonnenmacher) wrote…
Maybe use `isBlank() here? Same below.
Alternatively the expression in asTextOrEmpty() could be changed to:
if (this != null) this.asText().let { if (it.isBlank()) "" else it } else ""

Done.

analyzer/src/main/kotlin/managers/NPM.kt, line 392 at r3 (raw file):
Previously, mnonnenmacher (Martin Nonnenmacher) wrote…
isBlank()?

Done.

Comments from Reviewable

Reviewed 1 of 1 files at r4, 1 of 1 files at r5, 1 of 1 files at r6, 1 of 1 files at r7.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


Fixes group notifications.

cc @vitorpamplona

@vitorpamplona Please, when receiving a DM, see whether the sender's image appears correctly. :sweat_smile:

It will only appear if the profile is loaded in the app.

Are you planning to split the groups per user? So we can provide a summary that includes the messages themselves?

@vitorpamplona yeah, I am planning to do that. But I think it will be better to do it in another PR. :sweat_smile:

@vitorpamplona I think we can merge this for now(except if you have some concerns). :sweat_smile:

I am not sure if you saw that when I reverted the original change, I removed the setting of a group because Android tries already to do that automatically. This is how it groups for Zaps:

It seems to work for messages ass well. And if that is the case, then grouping like this might not actually need a custom Summary implementation.

@vitorpamplona that's true. I guess this PR can be closed then.


did-simple: implement varint decode and keytype detect

Previously in #94 I implemented the multibase decode of the url. This PR adds the ability to read that decoded byte slice and parse out the keytype from it.
This required implementing the varint encoding scheme described in the multicodec spec.

Rename key_algo  file to key_algorithms there's no need to keep it short when it's a module name, and fully descriptive module names are better.

LGTM otherwise

key_algo is unambiguous enough already. This is not java, longer with more words does not mean better.


[Eventhub]:New feature update

Related command

Description

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Eventhub

@schaudhari6254888 Can you pls resolve conflicts?

@microsoft-github-policy-service rerun


Tensors must be 3-dimensional

As stated in the Edge TPU Model Requirements documentation:

Tensors are either 1-, 2-, or 3-dimensional. If a tensor has more than 3 dimensions, then only the 3 innermost dimensions may have a size greater than 1.

To me this seems quite limiting, as it prevents me from doing image processing using CNNs in batches, where 4 dimensions are needed (batch size, height, width, number of channels). The reason I want to perform inference in batches is as follows: I am trying to benchmark different edge AI platforms by testing accuracy and latency when performing inference on the MNIST test-set (10,000 images); on the Coral Dev Board, when performing inference on the TPU, the fastest inference time I can get (using a single dense output layer and no hidden layers) is about 3s, whereas on my PC CPU I can get comfortably <1s. I assume the reason the TPU cannot get a lower inference time is because the batch size is 1, and therefore after every image, the Dev Board has to transfer the inference results back to the CPU, and load a new image into the TPU. I assume (/hope) the Dev Board inference time would be a lot faster if it could process the images in batches, which would require it to allow rank-4 tensors when using CNNs.

@jakelevi1996
Hi again! So the limits in the tensor dimensions is due to some HW limitation in the edgetpu. I don't think there's a way to beat this with SW but we are looking to expand the product lines to fit the need for batch processing. The best work around for this at this point is to have multiple tpus that each deal with different inputs. Unfortunately, I understand that it's not the best solution :/

Hi @Namburger , thanks again for the speedy response (as per usual by now!) I suspected this issue might not be easy to fix, but thought I'd raise it anyway because I couldn't see this exact issue anywhere else, and I think that solving it would make the Dev Board a more flexible product

@jakelevi1996 Thanks for the awareness, we definitely have this in mind. Timing may not be on our side during these time but definitely follow our news for updates!