Lazily iterate over tests instead of collecting

Instead of collecting here and here, it’d be nice if we could have an iterator which we can stream over
That'd allow us to then iterate in parallel here for nicer UX & speed

Is this still applicable? The codebase seemed to have changed a lot since the issue was open.

I've updated the links, thanks for flagging.

If no one is on this, I'll pick it up

I was taking a look at this as well and was wondering what the right parallelization strategy was with regard to the evm. Does it make sense to try to just use a single one or will that limit the potential speedup and would it be better to have multiple, potentially one per ContractRunner or even multiple within a ContractRunner since the state gets reset before each test runs.

@CalebEverett I need to look at it in depth before I can comment. Did you want to pick this one up? I don't mind either way.

@lattejed I'd be up for trying to figure it out, but it will probably take me longer to get all the way there than it would you. If you take a look at it and think it is something quick for you, in the interest of helping the repo, by all means take it. I'd be curious on the solution. But otherwise, happy to keep working on it.

@CalebEverett cool, I'll take a look. Worth discussing here regardless.

I think we can start by naively creating a factory function new_evm(<..args>) -> impl Evm (I think Clone'ing the EVM might not be an option) which gets passed in the runner/multi_runner.rs and gets called in each test.
We are already clone'ing and passing the init state for each test, so I think we have most of the state related components set up.
Highest performance gain will be by parallelizing the execution of the fuzz tests.

Good suggestions, thanks. Looking at it now Evm is stateful / reset inside the runner for each test. Based on your comments I'll assume there are no issues instantiating a number of Evms in parallel so it should be straightforward to make these changes.

Yes exactly, I think that because of the resetting of the state being already done it should be doable

Currently looking at implementing Clone for Evm as it may be cleaner overall.
Main challenge with adding parallelism here will be managing lifetimes. Clone may be more straightforward than working with passing around state to init new Evms, but I need to experiment more to see what works best.

@lattejed I would recommend just instantiating inside the test. You probably will run into Send+ Sync issues otherwise as I tried to hack something together yesterday using clone to no avail.

That was the approach I was working on as well as a starting place, removing the passing on an instantiated vm to ContractRunner and just creating one inside run_test with a new_evm method implemented on ContractRunner, but hadn't sorted out the trait bounds yet.
I was starting with just the sputnik once since it didn't require any additional arguments to create.
impl<'a, S: Clone, E: Evm<S>> ContractRunner<'a, S, E> {
    pub fn new_evm() -> impl Evm<S> {
        vm()
    }

but that is saying:
the trait bound `Executor<MemoryStackStateOwned<'_, CheatcodeBackend<MemoryBackend<'_>>>, CheatcodeHandler<StackExecutor<'_, '_, MemoryStackStateOwned<'_, CheatcodeBackend<MemoryBackend<'_>>>, BTreeMap<H160, for<'r, 's> fn(&'r [u8], std::option::Option<u64>, &'s evm_adapters::sputnik::evm::Context, bool) -> Result<PrecompileOutput, PrecompileFailure>>>>>: evm_adapters::Evm<S>` is not satisfied

which was weird since that is the same way the the evm that get's passed into ContractRunner gets created and the trait bound is satisfied. I'm probably missing something basic in satisfying the trait bound in the new method.

If you push the code we can maybe take a look, not sure what this could be either. Maybe a missing Sync + Send trait bound?

Here is the new method. Starting with just keeping everything as is and getting the creation of the vm and passed into run_test going.

the primary issue with the above is that we lose the command line configurations (like forking).
This is semi-ok but for forking we likely want a single evm anyway because otherwise caching becomes impossible in its current form (there is another fork caching implementation floating around some place that isnt used but may solve this)

I was thinking new_evm would accept arguments. I was messing around with putting the evm in a mutex and sharing it between threads, but If there is only one evm, how much speed up is there to be had over the current implementation? I was working on naively testing what the tradeoff was of having to create evms versus the benefit of having the tests themselves run in parallel as a first pass.
If I understand the forking requirement, could you still make that work by storing that as the same initial state? new_evm would use whatever is in state as its initial state and if it received a forking argument, it would just grab the forked state once and then use that on each creation.

I'd use the "SharedBackend" that @mattsse wrote, it's a cloneable forking backend which caches and deduplicatew requests and responses. The explicit reason it was created was for when we have multiple tests running in parallel to optimize network traffic.

The main issue I had with passing in a fn was that it looked like there were multiple factory functions per vm in the different implementations -- it looked like it might be necessary to pass around additional config for fn() -> Evm to work. Not that big of a deal but I was trying to avoid it. Maybe this won't be an issue in practice however., i.e., each vm has a single config for testing.
So I played around with passing in a closure so vm setup could be kept in the same places it currently lives. There are lifetime issues with that since closures are short lived out of the box. This is probably not worth pursuing.
@brockelmore you're likely right. I stubbed out Clone but didn't try to pass it to a new thread yet. I like the ergonomics of it a lot better (clone, reset / copy state) but it's likely to be more trouble than it's worth, assuming it's possible at all.
I'm currently wrapping up a late holiday and have a long drive today. It'll be a bit before I can do a deep dive and make any meaningful recommendations. @CalebEverett looks like you're making good progress, I'll see where you're at / what I can help with when I'm back online.

Spending some more time with it now. Some thoughts:
Instead of configuring an Evm in the test Cmd and then having it passed around belonging to [Multi]ContractRunner I think it makes sense to pass around a new EvmConfig struct (whatever it should be called) and make ContractRunner able to init new Evms as needed, including inside new threads. Maybe new_evm needs to be a free function to simplify this. This would partially defeat the purpose of passing around trait Evm but should simplify things.
@gakonst I'm not sure where you were suggesting adding new_evm(<..args>) -> impl Evm so maybe we're talking about the same thing.
The downside I guess is making the runners and Evms more tightly coupled. But the less state that needs to be passed between threads the better.
I don't think this magically fixes everything, there's a lot of complex state here that has to be passed to new threads and we know that Rust is great partially because it's very restrictive about these things.
Thoughts are more than welcome. I'm trying to look for a least intrusive way to add parallelism, though I don't currently have in mind any 'messy but works' solutions either.

Deleted a comment. Need to play around more.

Ok, a bit clearer now.
Afaik fn() -> impl Evm can only be used to return homogenous types. The common way to return heterogenous types is to use fn() -> Box<dyn some_trait> (or an Enum which won't really work here).
However, in this case we need to return a Box<evm_adapters::Evm<State>> and evm_adapters::Evm<State> is considered 'object unsafe' or unboxable due the use of generics and some other issues.
So, passing around a factory function that can return Box<evm_adapters::Evm<State>> isn't going to work without modifying the trait. Rust forbids using generics with dynamic dispatch, so this is likely a no-go.
An alternative would be to move vm creation into the test runners where necessary. That somewhat defeats the purpose of having the vm's conform to evm_adapters::Evm<State>. However, it's still not an issue passing these trait objects to functions, so there's still gain there.
If vms have to be instantiated in multiple places, a macro could clean things up. I'm still on the fence about how awful that is.
An alternative would be to try to get everything implementing Evm to be Clone. I'm think we can work around Send+Sync issues by cloning and moving. However, Clone is probably nearly as problematic as Send+Sync to conform to.
I also considered some kind of wrapper / builder,  but I believe the basic issues will remain.
I'm reluctant to tightly couple the runners and evm creation, but maybe that's the only way out of here w/o a lot of rewrite.
Any / all input welcome here. Also happy to be told I've overlooked something obvious.

I'm going to call Clone a dead end -- derive requires upstream changes and would be difficult to implement manually due to the use of generics.
Currently working on moving evm creation into the test runners. Probably going to go the route of adding a macro so evm creation logic doesn't have to be replicated.

Ideally we'd avoid the macro, can you share maybe what the roadblock with moving the evm creation function (instead of doing a macro) is?

I flushed my changes already, but you can drop sth like this into cli/src/cmd/test.rs:
pub fn new_evm<S: Clone, R>(opts: BuildArgs, evm_opts: EvmOpts) -> Box<dyn evm_adapters::Evm<S, ReturnReason = R>> {
    let mut cfg = utils::sputnik_cfg(opts.compiler.evm_version);
    let vicinity = evm_opts.vicinity().unwrap();
    Box::new(utils::sputnik_helpers::evm(&evm_opts, &mut cfg, &vicinity).unwrap())
        as Box<dyn evm_adapters::Evm<S, ReturnReason = R>>
}

Box<dyn trait> is required b/c of how Rust deals with heterogenous return types. The simpler -> impl Evm will only work with homogenous types.
You could create multiple factory functions, but will still need some config passed along with it and some logic in place.

To be clear, a macro isn't required. I was just considering it if evm creation logic has to be duplicated in multiple places.
The 'have to' afaict here is to move the creation logic into the runners.

yeah the Evm trait is not object-safe
since we only use the Evm trait, would it be possible to do something like

enum Evm {Sputnik(..), Evmodin(..)}

I guess that would require wrapper types for the state as well, so maybe too complex
Since they are both mutually exclusive, can make this work with cfg type aliases
#[cfg(feature = "sputnik")
type Evm = Sputnik<..>;

#[cfg(feature = "evmodin")
type Evm = Evmodin<..>;

same for factories

Yeah, I was wondering about that. This
match evm_opts.evm_type {
    #[cfg(feature = "sputnik-evm")]
    EvmType::Sputnik => {}
    #[cfg(feature = "evmodin-evm")]
    EvmType::EvmOdin => {}
}

made me think they weren't mutually exclusive, but if they are that gives some more leeway.
I'll see if the aliases you're suggesting can work. Thanks for the input @mattsse

@lattejed I managed to get a super crude version of this running with the tests parallelized in run_tests and sputnik vms created in run_test and run_fuzz_test. I was working on getting the initial state with the deployed contracts passed into run_tests so it can be cloned for each run_test call and was then going to circle back to getting the cli args passed in and generalizing to include evmodin.

@CalebEverett pushing this code would be very valuable. I'm very curious to hear how long solmate tests take with your code

@gakonst Here is what I've got - super crude, intended as concept demo only, to be refined, etc. I think the state with the deployed contracts and cli args need to get completed before being able to try out in the wild.

after some serious hacking on caleb's impl, i was able to run solmate is 10.8 seconds, vs 93secs on master @gakonst

@brockelmore - sorry about that - would love to see where you got to and try to get it cleaned up.

@CalebEverett awesome, I'll take a look at what you've done.

https://github.com/gakonst/foundry/tree/brock/par_evm
take a look at my branch, should just work

@brockelmore Thanks, really appreciate it. Was getting grindy, mostly due to lack of familiarity with the project.
Are you going to merge this or are you suggesting I pull your changes into a PR. I can address your note there, sure.
Looks like you pulled contract deployment out of MultiContractRunnerBuilder and I don't see it replaced anywhere. Was that optional?

@lattejed feel free to just open PRs against my PR. the deployment occurs in new_sputnik_evm, which is where we should grab the init logs. You cant do it in multicontractrunner because the address for the test contract will be wrong as it would deploy all of them sequentially with different nonces relative to a fresh evm

@brockelmore FYI over a very basic set of tests I'm seeing a ~2.5x speedup 👍
I don't see a PR related to this from you. I'm currently working off your branch and will put together sth from there.

@brockelmore this is ready to merge into your branch. Fixed a couple of minor issues and updated the tests.

no longer relevant since the tests parallelization PR


feat: add slack lint checks

Relates to #115

Not enough useful lints for this project at the moment.


Subscribe Overlay

All pages have a "subscribe overlay", some without any content and all without visible content.
It blurs the page and can't be closed without using DevTools.

Thanks, didn't notice this. This is the out-of-the-box Casper theme that comes with Ghost.
Which browser are you using?

I'm using Google Chrome Version 67.0.3396.99 (64-Bit)

Thanks, gonna get to the bottom of this. I don't see the overlay in my Chrome, whether in regular, incognito, or mobile.
I'll have to look it up.

Sounds good 👍 I'll keep this open until I figure it out

Strangely enough, I don't get the overlay popping up.
I'm using 67.0.3396.99 (Official Build) (64-bit)

Huh, for me it's all blurred by <div id="subscribe" class="subscribe-overlay"> which has backdrop-filter: blur(3px)

Are you able to reproduce this by fiddling with that node and its CSS?

In my Chrome, it seems webkit-backdrop either isn't enabling, or something else. Wondering if this is the result of a chrome://flag?

Regardless, thanks for notifying me. I'll have to change it once I get a chance.

https://github.com/TryGhost/Casper/issues/397
https://github.com/TryGhost/Casper/issues/340

For me, the -webkit-backdrop-filter is disabled or whatever.
But backdrop-filter is enabled and active.

Looks like this is the problem: https://github.com/TryGhost/Casper/issues/340#issuecomment-319575825
Should be an easy fix for you.

Weird enough, the comment says it's only affecting Windows 10 users but I'm using Ubuntu 16...

Hm, perhaps it affects Ubuntu as well?


[Feature Request]: Inbuilt css complier in style share

Is there an existing issue for this?

[X] I have searched the existing issues

Feature Description
Integrating a Tailwind CSS compiler within your application where users can write code on the left side and see the output on the right side can greatly enhance the user experience.
Use Case
User experience.
Benefits
Scaling the webapp
Add ScreenShots

Priority
High
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I have starred the repository

@VaibhavArora314 Hey, the work is done just assign me this under gssoc :)

how are you planning to implement this? also, this feature can work well like we can give an option in this compiler to publish the component which will redirect to /new-page and have code snippet already in the form.

@VaibhavArora314 can you explain me in depth the approach ?

@VaibhavArora314 i implemented the approach as you told me see the pr #189

Sorry for the late response, I will review the pr and see if any changes are needed.

Sorry for the late response, I will review the pr and see if any changes are needed.

No Prob @VaibhavArora314 , take your time .


Python is outdated, and pip doesn't work

python is disturbingly old (3.5). please either update python and support pip (missing), or ask users what version(s) of python they want. I can not get a working python/pip otherwise

You probably want something newer than xenial, then.  See the readme for instructions on how to install a different release.


Introduce RequestContexts.

RequestContext is used to track each "operation" or "task" in a way that's not tied to tokio tasks. It provides support for fine-grained cancellation of individual operations, or all tasks working on an active tenant or timeline. Most async functions now take a RequestContext argument.
RequestContexts form a hierarchy, so that you have a top-level context e.g.  for a TCP listener task, a child context for each task handling a connection, and perhaps a grandchild context for each individual client request. In addition to the hierarchy, each RequestContext can be associated with a Tenant or Timeline object. This is used to prevent a Tenant or Timeline from being deleted or detached while there are still tasks accessing it. This fixes a long-standing race conditions between GC/compaction and deletion (see issues #2914 and compiler in any way, but the functions like get_active_timeline make it easy to do the right thing.
This replaces most of the machinery in task_mgr.rs. We don't track running tasks as such anymore, only RequestContexts. In practice, every task holds onto a RequestContext.
In addition to supporting cancellation, the RequestContext specifies the desired behavior if a remote layer is needed for the operation. This replaces the with_ondemand_download_sync and no_ondemand_download macros. The on-demand download now happens deep in the call stack, in get_reconstruct_data(), and the caller is no longer involved in the download, except by passing a RequestContext that specifies whether to do on-demand download or not. The PageReconstructResult type is gone but the
PageReconstructError::NeedsDownload variant remains. It's now returned if the context specified "don't do on-demand download", and a layer is missing.
TODO:

Can the walreceiver::TaskHandle stuff be replaced with this?
Could we split this into smaller patches?

Doesn't build for me:
cs@cslap:[~/neon/src/neon-main]: cargo check
    Updating git repository `https://github.com/hlinnaka/tokio-tar.git`
error: failed to get `tokio-tar` as a dependency of package `pageserver v0.1.0 (/home/cs/neon/src/neon-main/pageserver)`

Caused by:
  failed to load source for dependency `tokio-tar`

Caused by:
  Unable to update https://github.com/hlinnaka/tokio-tar.git?branch=no-termination-on-drop#54277db2

Caused by:
  object not found - no match for id (54277db27b02f84c09e958d71a410f9699fb440c); class=Odb (9); code=NotFound (-3)

This should fix https://github.com/neondatabase/neon/issues/3273, too.

I like cxt (would have used ctx, but whatever) ...

Created a poll on the name: https://web.polly.ai/c2gha9

Apart from the comments that I made, can we factor out the mechanical part of this change (i.e., passing through the cxt into a separate PR?
In that PR, cxt would be a zero-sized type with no method except creating a child cxt. We'd probably need zero-sized types for TenantRequestContext and TimelineRequestContext as well, but anything dealing with registration should remain in this PR.

Done. I squashed all the commits here, and then split that into two parts:

Add dummy structs, and the 'ctx' parameter to all the functions that will have one. The dummy  TimelineRequestContext and TenantRequestContext don't do anything interesting, and you can simply create a TenantRequestContext by calling Tenant::get_context (and same for Timelline).
Add all the functionality to the context structs and elsewher. This replace the dummy get_context functions with functions that check that the tenant/timeline is active.

I like cxt (would have used ctx, but whatever) ...

Created a poll on the name: https://web.polly.ai/c2gha9

The result was overwhelming in support of ctx, so renamed to that.

I'll spend a few hours splitting up this PR into two PRs.
The first one will just have RequestContext to serve the immediate needs to proceed with layer eviction, i.e., propagating reason for download and download behavior to get_reconstruct_data.
I expect this to be uncontroversial and mergeable today or Monday.
The second PR will be everything else from this PR, and likely require more discussion. But also, there's less immediate need for it, so we can afford to take a little longer on it.
Please :-1: if you disagree with that approach.

The first one will just have RequestContext to serve the immediate needs to proceed with layer eviction, i.e., propagating reason for download and download behavior to get_reconstruct_data.
I expect this to be uncontroversial and mergeable today or Monday.

Sorry for the delay, other work took priority in the morning.
Here's the draft PR that extracts the stuff need for layer eviction stats, plus a tiny bit more:  https://github.com/neondatabase/neon/pull/3335

As discussed moving to draft


Documentation update

The documentation seem to be old and not taking in account the new attribute to specify container to be infinite scrollable infinite-scroll-container https://github.com/sroze/ngInfiniteScroll/pull/7

Absolutely true: today I spent 3 hours trying workaround this

@jmvalencia @TheNemus PRs for doc changes accepted


.gitignore file does not work when saved as UTF-8 + BOM

Removing the BOM makes it work.
This is very unfortunate as it prevents us from writing out the BOM for .gitignore files, effectively making applications guess the encoding i.s.o. being able to detect it.
The Unicode spec mandates conforming applications to accept the BOM.
If Git does not support Unicode this issue can be closed (but that would be another issue :)

At its core, Git uses UTF-8 to encode pathnames. .gitignore makes heavy use of path names and so is expected in UTF-8. There's no further need to add a BOM, as the Unicode guidelines describes.

Strange to close this. The Unicode spec requires all software that supports Unicode to correctly deal with the BOM. I spent time discovering this issue, then reporting it (which wasn't so easy because of the other issue) and then you just close it?

Even if I still don't bite the usefulness of a BOM when UTF-8 exhibits no byte-order problem, you have perfectly the right to raise this issue. Anyway, I have searched for the issue in the mailing-list history and it seems to have been already fixed.
http://thread.gmane.org/gmane.comp.version-control.git/267288/focus=267399
Have you tried with the latest version?

Ah I didn't even know how to search that list! Thank you for digging this up, let me look into it.

@Download is it safe to mark this issue as resolved?

@sxlijin I just tried it and it seems to be working fine now:
C:\ws\test>git --version
git version 2.7.4.windows.1

C:\ws\test>git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   .gitignore

no changes added to commit (use "git add" and/or "git commit -a")

It is (correctly) showing .gitignore as modified and not any of the files in the ignore list.
So I guess it's fixed! Yay!


docs(vpc_options): Improve description for public access

Description
It took me a while to realise that I had to leave the vpc_options variable = {} to deploy a public opensearch. I propose to provide a little more explanation
Motivation and Context
Making the creation of a public opensearch more explicit
Breaking Changes
None
How Has This Been Tested?
I ran pre-commit

thank you but I don't think that is appropriate here. this description is taken directly from the provider docs https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/opensearch_domain#vpc_options - we expose the configuration in the modules, but the variable descriptions are not intended to teach users how to configure the service to their use case

thank you but I don't think that is appropriate here. this description is taken directly from the provider docs https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/opensearch_domain#vpc_options - we expose the configuration in the modules, but the variable descriptions are not intended to teach users how to configure the service to their use case

the serverless module there is at least example with AllowFromPublic....  As you wish


Launch itch games through the itch.io client

Is there a way to launch an itch.io game through the client's launch command, similar to GOG Galaxy? The client features a sandboxing security system that saves games in a different location than the where the executable would save by default. This means I don't get the same game save files if I launched through Playnite, than if I were to launch them through the itch.io client.
When an HTML-based game launches through itch.io it opens in an uncluttered webview window, where opening it currently in playnite opens it in the default browser.

Seconding this. It would be nice to be able to launch the games through Playnite with ease, having it launch with the itch.io client, keeping my saves. I was playing "MANIC MINERS" and was disappointed that when I tried it didn't keep my saves.

Is there a way for Playnite to implement things on this side?
I'm not confident that this is something they are going to sort out.
Looking into this, the sandbox account credentials are stored at Computer\HKEY_CURRENT_USER\Software\itch\Sandbox. Could we use this to run the already known executables as the sandbox user, adding a toggle in the integration config to enable it?
Played around with it and made a PowerShell script that kinda does this:
# References:
# Start-Process: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/start-process?view=powershell-7.3
# Get-ItemPropertyValue: https://adamtheautomator.com/powershell-to-get-a-registry-value/
# Pull username and password of sandbox from registry
$user = Get-ItemPropertyValue -Path 'HKCU:\Software\itch\Sandbox' -Name username
$pass = Get-ItemPropertyValue -Path 'HKCU:\Software\itch\Sandbox' -Name password | convertto-securestring -asplaintext -force

# Create args for Start-Process
$processOptions = @{
    # Path to exe
    FilePath = "Path to process"
    # Start-Process has trouble without a working dir set.
    WorkingDirectory = "Working dir of process"
    # Form and use a credential set.
    Credential = new-object -typename System.Management.Automation.PSCredential -argumentlist $user, $pass
    # And this is a sandbox process, so make sure the env isn't inherited (by default it's inherited).
    UseNewEnvironment = $true
}
Start-Process @processOptions

Been working on this more, trying to make a global script. Stuck on the point where I need to get the file path from the library integration.
Even then, I'd also have to put a blank play action in so there's no error popups when I run the game, as the global script kinda does it...
What I have so far:
# Access the Playnite database
$database = $PlayniteApi.Database

# Retrieve the last opened game
$lastOpenedGame = $database.Games | Sort-Object -Property LastActivity -Descending | Select-Object -First 1

#Sandbox itch.io games.
if($lastOpenedGame.PluginId -eq ("00000001-ebb2-4eec-abcb-7c89937a42bb")) {
    # Get and parse sandbox credentials.
    $registryPath = "HKCU:\Software\itch\Sandbox"
    $username = (Get-ItemProperty -Path $registryPath).username
    $password = (Get-ItemProperty -Path $registryPath).password
    $securePassword = ConvertTo-SecureString -String $password -AsPlainText -Force
    $credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $securePassword
    $gameExecutable = $lastOpenedGame.GameActions[0].Path #This currently doesn't work. Have to use this as a play Action script and point to the actual file.

    $gameStartParams = @{
        FilePath = $gameExecutable
        WorkingDirectory = (Split-Path -Path $gameExecutable)
        Credential = $credential
        #NoNewWindow = $true
    }
    Start-Process @gameStartParams
}


fix scatter axes labels #146

>>> a = Table([[10, 20, 30, 40, 50, 60, 70, 80,],
               [2, 13, 8, 5, 3, 2, 0, 1,],
               [3, 10, 13, 12, 2, 0, 0, 0,]],
              ['Age', 'Male Counts', 'Female Counts'])
>>> print(a)
Age  | Male Counts | Female Counts
10   | 2           | 3
20   | 13          | 10
30   | 8           | 13
40   | 5           | 12
50   | 3           | 2
60   | 2           | 0
70   | 0           | 0
80   | 1           | 0
>>> a.bar('Age')

```python
>>>a.barh('Age')
```

```python
>>>a.plot('Age')
```

All the methods that use _visualize (plot, scatter, bar, and barh) use both x and y axes labels. Depending on how _visualize will be used in the future, it may be better to redefine _visualize's method signature to accept x_label and y_labels as params instead of simply labels.

@taylorkmw Yeah, that's a great idea. Can you do that in another PR?


Board Members: Remove John Fasana

John Fasana has retired and his term on the Regular Board and Committees has been updated to end December 31, 2020. Please remove him from the website. We don't know yet who will replace him.

Thanks for the heads up! I've removed Fasana's memberships ending in 2021 (as they're replaced by the ones ending 12/31), so he should automatically be removed from the site come Jan. 1. Will set a reminder to check when we return from our break 1/4.

Looks like Fasana has stayed retired in our database. Let me know if you see otherwise, @shrayshray, otherwise we can mark this one done!

Looks like Fasana has stayed retired in our database. Let me know if you see otherwise, @shrayshray, otherwise we can mark this one done!

@hancush looks good!

@hancush looks good!


[engsys] Fix min-max version script error due to npm breaking change

Previously npm view <packageName> versions --json returns an array even when
the result only contains one version.  In latest NPM version in NodeJS v16 the
result is now a string, which isn't expected by semver APIs.
This PR wraps the single string result with an array.

Triggered live run now green at this step https://dev.azure.com/azure-sdk/internal/_build/results?buildId=1590792&view=logs&s=cb5ce6fe-dbe8-5b4a-ce11-aad725ccaf92&j=1c9a204a-48a9-5154-5204-230e40dbc42f (MS Internal)


Keep focus inside of ComboboxInput

Issue can be seen in the docs or storybook on mobile.
When you open the combobox via the button, the focus moves briefly to the button, and then we restore the focus to the input itself.
This causes a tiny selection flicker (because the selection is removed when the focus moves to the button)
Also, We want to make sure that we don't accidentally trigger the virtual keyboard. This would happen if the input is focused, the options are open, and you click the ComboboxButton (which would blur the input and focus the button, then we refocus the input).
This PR improves on that behaviour by using onPressStart instead of onPress. If we use inputRef.current.focus() in onPressStart, then the focus will not be moved to the button and the focus remains in the input.

We might be able to move the focus onPressStart, but wait to open until onPress.

@snowystinger I think this can be solved by preventFocusOnPress.
//<EMAIL_ADDRESS>  buttonProps: {
    ...menuTriggerProps,
    ...triggerLabelProps,
    excludeFromTabOrder: true,
+    // @ts-ignore - undocumented
+    preventFocusOnPress: true,
    onPress,
    onPressStart,
    isDisabled: isDisabled || isReadOnly,
  },

Yes, I think that would be better, that's what we do with NumberField as well https://github.com/adobe/react-spectrum/blob/14f324fe890fcedc6e34889d9b04d5d6bfeb8380/packages/%40react-aria/numberfield/src/useNumberField.ts#L290
Though I'll still have Daniel check if there was a reason we weren't already doing that. Thanks for digging a little extra.

@snowystinger from what I recall it is exactly what you mentioned, aka mimicking the same behavior as menus/other trigger elements.


Allow a host with an AMD CPU to spin up vjunos-switch within a nested virtualisation setup

Allow a host with an AMD CPU to spin up vjunos-switch within a nested virtualisation setup.
Did originally try host however vjunos-switch instance wouldn't boot, it gets as far as "Creating initial configuration..."  before a qemu prompt is seen where it then loops waiting for the VM to boot.

Thanks @grahamneville
yeah, it is strange a bit about the cpu=host limitation, but whatever works, ya?
Thanks for your contribution.


locally installed packages fail to deploy

I have a locally install package, built like so:
pip install . --upgrade
I check disk, and its there in the virtualenv.
However, when I run lambda build I get:
  Could not find a version that satisfies the requirement apt-commons==1.0 (from versions: )
No matching distribution found for apt-commons==1.0

I've tried the local-package argument, and it works, but then the module is not picked up in intellij, so, I'd prefer to just have it picked up from virtualenv.

Did you find a way around this?

@rbatta sorta... we were able to get it to work by just using --local-package . It has limitations, but, I think it has more to do with pip than python-lambda. Depending on your setup, it could be easier to just setup your own pypi.


[Scenes] Make SceneTable Access Thread Safe

GetSceneTableImpl() method used in the scenes-server needs to be made thread safe and the default scene handlers need to clean stored data in mAVPairs and mValueBuffer.
Mentionned in this PR in comment:

https://github.com/project-chip/connectedhomeip/pull/26186/files#r1206143395
https://github.com/project-chip/connectedhomeip/pull/26186/files#r1206109078

I don't think it needs to be thread safe, necessarily.  But we should figure out whether we can have reentry and if not how we make sure we never do.


Add support for unidirectional streaming inference

Is your feature request related to a problem? Please describe.
Sometimes we send a unary request to the server but get streaming response, for example, we send a sequential tensor and using a sequential model to process the input and constantly send streaming response back to the client. Another example may be speech synthesis like tacotron, where we send one sentence with a single request, but hope to get streaming media like mp3 constantly. In such cases, unidirectional streaming inference is necessary.
Describe the solution you'd like
I tried to implement that with something like UniStreamInferHandler, but it's not so easy to determine the state transition loop. I mean, unlike bidirectional streaming handler, we need to split the input into different events (states) with shared context (ServerAsyncWriter). So once we get the unary request, we need to spawn new events and push the first event (state) to the completion queue. In that we haven't really process the request, I can't find a good way to submit these new events, although we can just use ServerAsyncWriter.Write with empty method or ServerAsyncWriter.SendInitialMetadata to trigger the async call so that we can get the state later with CompletionQueue.Next.
Describe alternatives you've considered
Maybe anyone can give me some advice on how to properly trigger new events with current request.
Additional context
bool UniStreamInferHandler::Process(Handler::State* state, bool rpc_ok) {
  VLOG(1) << "Process for " << Name() << ", rpc_ok=" << rpc_ok
                 << ", context " << state->context_->unique_id_ << ", "
                 << state->unique_id_ << " step " << state->step_;

  // We need an explicit finish indicator. Can't use 'state->step_'
  // because we launch an async thread that could update 'state's
  // step_ to be FINISH before this thread exits this function.
  bool finished = false;

  if (state->step_ == Steps::START) {
    // A new stream connection... If RPC failed on a new request then
    // the server is shutting down and so we should do nothing.
    if (!rpc_ok) {
      state->step_ = Steps::FINISH;
      return false;
    }

    // Start a new request to replace this one...
    StartNewRequest();

    // Add extra_data_ to state->context and restore the split results of
    // current request. The following part can be called async.
    for (int i = 0; i < 10; ++i) {
      void* extra_data = reinterpret_cast<void*>(new int(i));
      state->context_->EnqueueForExtraData(extra_data);
    }

    // Since this is the start of a connection, 'state' hasn't been
    // used yet so use it to read a request off the connection.
    state->step_ = Steps::WRITTEN;
    //state->context_->responder_->Write(state->response_, state);
    state->context_->responder_->SendInitialMetadata(state);
  } else if (state->step_ == Steps::WRITTEN) {
    // If the write failed (for example, client closed the stream)
    // mark that the stream did not complete successfully but don't
    // cancel right away... need to wait for any pending inferences
    // and writes to complete.
    if (!rpc_ok) {
      VLOG(1) << "Write for " << Name() << ", rpc_ok=" << rpc_ok
                     << ", context " << state->context_->unique_id_ << ", "
                     << state->unique_id_ << " step " << state->step_
                     << ", failed";
      state->context_->finish_ok_ = false;
    }

    void* data = nullptr;
    // Pop the next extra_data for processing until the queue is empty
    if (!state->context_->PopForExtraData(&data)) {
      state->context_->step_ = Steps::COMPLETE;
      state->step_ = Steps::COMPLETE;
      state->context_->responder_->Finish(
          state->context_->finish_ok_ ? grpc::Status::OK
                                      : grpc::Status::CANCELLED,
                                        state);
    } else {
      DCHECK(data);
      // Async call the worker.
      state->step_ = Steps::ISSUED;
      pool_->ScheduleCallback([state, data] {
        // We can get current extra data for processing
        VLOG(1) << "Data: " << *reinterpret_cast<int*>(data);
        auto& response = state->response_;

        std::string content_type = "application/json";
        response.set_content_type(content_type);
        std::string value = "{\"key1\":\"value1\"";
        response.set_data(value.c_str(), value.size());

        state->step_ = WRITTEN;
        state->context_->responder_->Write(response, state);
      });
    }
  } else if (state->step_ == Steps::COMPLETE) {
    state->step_ = Steps::FINISH;
    finished = true;
  }

  return !finished;
}

TRTIS internally is set up to generate one response for each request. Fixing the GRPC (or HTTP) endpoints to allow multiple responses for each request will not be useful until the rest of TRTIS is updated... and we have no design or plan for that kind of update. We may do something in the future but we don't have any solution for now.


Update Mocha link

Coverage remained the same at 100.0% when pulling 12233424a100169d164a9dcbb6cdb3c35ce2ab97 on mortonfox:patch-1 into 6d09a128d7059fb9ade7c4df17fb17fed7cc8526 on compute-io:master.


Add PCR strip to PD labware options

Notes

There are multiple sizes. Which do we want?

@IanLondon @Laura-Danielle how does PCR strips work in python files? Does user place a 96 well plate first, then pcr strips on top? what does the lab ware definition encompass? is it like a tube rack?

@pantslakz
Similar to a how a tube rack definition has the rack filled with tubes as one definition, the PCR strip defs include all strips you can fit with the PCR rack together. I guess technically a PCR strip holder is a tube rack.
AFAIK you usually wouldn't put PCR strips in a 96 well plate, you put them in a PCR strip holder:

It looks like the only definitions we have at the moment are:

PCR-strip-tall (96 tubes. is it actually "tall"? Volume: 0.28mL)
alum-block-pcr-strips (only has 2 strips = 16 tubes, why? Volume: 0.28mL)
opentrons-aluminum-block-PCR-strips-200ul (96 tubes. It doesn't seem tall enough to include the aluminum block...? Volume: 0.3mL)

So we don't have any 0.5mL PCR tube defs - unless they just haven't been migrated -- @Laura-Danielle do you know?

Closed by #2583 (which includes PCR-strip-tall and opentrons-aluminum-block-PCR-strips-200ul)


Directory tree indent guides in File Explorer

It's hard to navigate through project with complex directory structure.
Much better to look at something like this:
├─ app
|  └─ main.js
├─ src
|  ├─ main.ts
|  └─ tsconfig.json
└─ package.json

Instead of this:
  app
    main.js
  src
    main.ts
    tsconfig.json
  package.json

I agree with this. I especially find that the indenting is hard to interpret. And is even worse when file icons are enabled in explorer.

I also agree! +1

Another thing that would be nice in that regard is customizing the indent distance of the next level of hierarchy.
While I would also love some guidelines, I think having i.e. twice the distance and thus having clearer separation would already help a lot.

@Aides359  I agree. Everyone's eyes are different. Just look at tabs. Some people like 2 space tabs in their code. Some like 8. Other 4.
I'm a little dyslexic, so I really have a hard time with the indention in VS Code,
Though it does seem to have gotten a little better. But it's still bad on my laptop screen, for instance, whereas on my large monitors at work, it's more noticeably indented.

Yes! Please tree lines as an option. It'd be especially helpful when editor is open at a far corner on a large monitor.
Tying the toggle to mouse-over in Explorer Pane would help in keeping the clean look.

Really useful on big projects.
Any update on this? Or where I could start looking in the source?

@edmundo096 this was closed as a dup of #21295, which is also closed. So I guess this is going nowhere.

@cosmoKenney This issue isn't closed...

@cosmoKenney, no, this is the original post and it isn't resolved. #21295 was the duplicate.
I couldn't find a configuration to enable this indentation guides on the Sidebar Explorer yet.

So yup... my eyes are bleeding. I'm like what is index.js of Expression folder... I know you're there!.
I think it should have quite high priority. Modern web apps quite often have deep nested files structure. see this example

and here's the approximate look without Magnifier. not so bad... if you've got the vision of a fighter pilot

I would like this as well, it's quite easy to get lost in larger projects.

I also agree this should be considered...

I agree! I've been trying to look for a setting or extension that does this over the last two days but nothing T_T. I really struggle to navigate using the explorer (which is necessary when you're navigating a new project..).

DO we have any indication if this is in the roadmap?

+1

+1 this is an enormous pain for me on my large monitor.

++1

+1

+1

+1 Microsoft please!

+1 for this.
In the meantime, I've found a bit of a hack to solve it for now:
Find your VSCode install (mine was C:/Program Files/Microsoft VS Code) and go to resources/app/out/vs/workbench and open workbench.main.css.
Add these lines to the end of the file:
.monaco-tree-row[aria-level="1"]  { padding-left:   0px !important; }
.monaco-tree-row[aria-level="2"]  { padding-left:  20px !important; }
.monaco-tree-row[aria-level="3"]  { padding-left:  40px !important; }
.monaco-tree-row[aria-level="4"]  { padding-left:  60px !important; }
.monaco-tree-row[aria-level="5"]  { padding-left:  80px !important; }
.monaco-tree-row[aria-level="6"]  { padding-left: 100px !important; }
.monaco-tree-row[aria-level="7"]  { padding-left: 120px !important; }
.monaco-tree-row[aria-level="8"]  { padding-left: 140px !important; }
.monaco-tree-row[aria-level="9"]  { padding-left: 160px !important; }
.monaco-tree-row[aria-level="10"] { padding-left: 180px !important; }
.monaco-tree-row[aria-level="11"] { padding-left: 200px !important; }
.monaco-tree-row[aria-level="12"] { padding-left: 220px !important; }
.monaco-tree-row[aria-level="13"] { padding-left: 240px !important; }
.monaco-tree-row[aria-level="14"] { padding-left: 260px !important; }
.monaco-tree-row[aria-level="15"] { padding-left: 280px !important; }

Done!
That code sets the padding to 20px extra per indent-level, but of course you can bump that up as much as you want, just change the values. I've also only gone 15 levels deep, which you can expand too, but if your project is deeper than 15 levels, I'd suggest you re-evaluate your directory structure. ;)

@jakewtaylor this worked great for me, the only issue is that you will receive a 'corrupted installation' notification after doing the changes (..more info here).

@jakewtaylor @swordf1zh could you provide some screenshot with this 'hack'?

@swordf1zh yes, I got that too but only once. Haven't seen it since.
@pie6k that's looks good. Your addition has given me an idea to slightly improve it, I'll give it a go when I'm in the office later.

@pie6k Your hack would be a perfect temporary solution except that it hasn't worked quite as well for me for some reason T_T (see pic below)

@jakewtaylor Can't wait 😄

I've got something that works pretty well. Like you said, far from perfect but makes the file tree much nicer looking, IMO.
I've put the instructions in this Gist as the CSS is much longer now.
Looks like this:

Hope it works for you!

That's working very well.
Thank you.
You saved my eyes and my mind.

Nice improvement. I changed the alpha from 0.4 to 0.1 and it looks great, but is just a personal preference. If you can make an extension out of this, it would be one of the top25 for sure:

I think I'll do that, I'll have to look into it. 😃

@Winston-Guess forgot to tell you need position: relative on .monaco-tree .monaco-tree-rows>.monaco-tree-row itself.
@jakewtaylor @swordf1zh - looks amazing 🎉  🕺 ! Lol finally!

 I searched for this 4 days now. Took me a while to understand that the sidebar's name isn't Monaco. Please implement this with different variations.
This 'lineless-style' is really driving me nuts seeing no lines or anything other to guide my eyes.
+1 On everybody who made a solution to this.

oh my goodness, this is the best.  where do I send a donation!?

@edenprojectde What do you mean by "the sidebar's name isn't Moncao"? Do you have different class names on your install? I can easily put in some notes in the Gist to help people in the future.

@jakewtaylor No i just mean all Css i looked up in the gui had the name monaco in it, but no indication of "sidebar". I just changed to VS Code so i didnt/don't know how the config of the gui works, its not obvious as it was in atom.

I see, I only worked out by using the inspector 😛

Step by step instruction

Install https://marketplace.visualstudio.com/items?itemName=be5invis.vscode-custom-css and restart VS Code
Save contents of this gist into some file, in my example it's /Users/semenov/.vscode/css/tree.css
Open Preferences > Settings, and add this setting:

    "vscode_custom_css.imports": [
        "file:///Users/semenov/.vscode/css/tree.css"
    ]

Cmd-P, ">Enable custom CSS and JS", restart VS Code
Dismiss "Your VS Code is corrupted" message

After upgrading VS Code, repeat steps 4 and 5.

@IlyaSemenov for some reason your method isn't working for me in either the normal and insiders versions. I saw in the extension's instructions that step 4 requires admin privileges but that didn't help me either 😕

The extension and custom CSS seems to work for me, but the line colors are oriented towards the darker themes. See the screen shot...

...suggestions?

@cosmoKenney Yeah, just change the CSS in the gist.
The current colour is rgba(255, 255, 255, 0.4), which is white at 40% opacity - change all occurrences of that to the colour you want.
rgba(0, 0, 0, 0.4) might work well for light backgrounds (black at 40% opacity)

@jakewtaylor:
Thanks Jake. Works well.
Now I just have to figure out how to lighten up the vertical indent guides in the source pane. ;-)

+1 👍

This is very useful so I wonder why nobody has ever made an extension out of it? It would be my favorite.

C'mon Microsoft, you had it figured out in '95

This definitely needs to be a built-in option soon. Please :)

Expanding on the ideas from @chentel and @swordf1zh

Tying the toggle to mouse-over in Explorer Pane would help in keeping the clean look.

I changed the alpha from 0.4 to 0.1 and it looks great

I've forked @jakewtaylor's gist to provide a more "finished" look.

The last tree item gets the bottom line removed
Lines are almost transparent normally, but increase in opacity on hover
CSS variables to make it easy to change the colors, line width, opacity etc.

Before vs after

https://gist.github.com/samdenty99/b96f4df576d05cb123248f8ebfa899b6

That is what I am looking for.

any plans to implement this much needed feature ?

In my opinion, this should be by default, and with a built-in option to disable it 😬

Bumping up as a wanted request

If someone is not seeing any changes after creating a custom CSS file and referencing it in the "vscode_custom_css.imports", you can make it work much simpler and without installing https://github.com/be5invis/vscode-custom-css - just add the CSS to the end of the workbench.main.css and you're good to go!

@Funghorn Exactly like in my gist 😛

@jakewtaylor yeah, but I figured some people would use the "patched" version of @samdenty99 and custom CSS file is not working for everyone ¯_(ツ)_/¯

+1

+1

Guys, please stop commenting +1. It's annoying for people subscribed waiting on solutions, just 👍 react the initial post. 😋

Is there an option for this in the Code - Insiders build? The new settings was referenced here "Provide GUI for settings #3355" so that's why I ask

@fillipvt The issue you've linked regards a GUI for settings, this issue is about the appearance of the side bar. I don't think they're related? (unless I missed something...?)

Some tier 4 manager at Microsoft:
"Remove the lines, it looks way cooler whatever it is you do all day without those ugly lines."
+1

+1
2 subdirectories and I already feel the pain

Yes, the explorer is a mess right now with anything more than 1 layer of folders. Has anyone done a PR with any of the proposals here? I saw some really great looking modded explorers in this thread

+1

Please we need more control in this area of the editor! Thank you!

+1

@samdenty I can't access your gist. Has it been moved or deleted?

@thepixture That issue is sadly a side-effect of the hacky way it works - it simply repeats the vertical line several times. Personal opinion here, but em is safer than px (my local one has been changed ;-) ).

@designbyadrian changed my username, updated link

+1

In v1.31, a new tree widget was introduced. Would rendering indent guides be easier with that new widget? @isidorn

For anyone using the custom CSS extension, I've fixed it to work with the new Jan 2019 update
There were 3 main fixes I added,

The tree row class was updated from monaco-tree-row to monaco-list-row
In the custom css file, line 21, the monica-tree-row had a position: relative rule, which caused vertical spacing issues
The .monaco-tl-twistie div had an inline margin-left: 40px rule, which I had to override (line 15)

https://gist.github.com/Lightfire228/39dc2cf403237a190e79a000912691b2

Thanks @Lightfire228

Stopped working with the new update. Plus now there's an annoying [unsupported] warning in the title bar. Waiting for MS to update the explorer.

+1
I'm echoing the same sentiments as everyone else; the tree structure's indention is far too small to effectively delineate substructures.
Please give us some options to change this.

For vscode 1.31
https://gist.github.com/akmeghdad/b1208c2caa601f0ba29f953faabac709

So this is a part of vscode settings now, but why is it limited to max 20?

I come from Sublime and am used to a much deeper indent, is there good reason not to allow a deeper indent?

@alexcroox Read this: https://github.com/Microsoft/vscode/issues/67576

I've pretty much given up on VS Code. It's just too hard for me to see the files. And since I've got a Visual Studio Subscription, it's pretty much a no-brainer to use VS 2017. Once you get it setup it's much better than Code.

Ah, thanks, @sguilla - being able to change the indent size fixes most of the issues for me!

I just started using VS Code a few weeks ago and like everyone else I find that it's really hard to quickly tell which directories certain files are in.
I just set the Tree Indent option to the maximum of 20 but ideally I'd want to set it even higher.
It's still too hard to navigate folders without directory tree indent guides / lines as the original post recommends.
I see this issue is from 2016; it's been 3 years, please add some tree lines.
This is kind of a deal breaker and I may have to switch back to another editor in the meantime.

For everyone who hasn't done so, please "thumbs up" the starting comment.
For open issues, sorted by thumbs up (is:issue is:open sort:reactions-+1-desc), we are currently only 18th place!
Thanks.

Because of this unresolved issue:

after some tweaks found another solution:

Looks like a regular indent guides in editor section.
Material icons with "material-icon-theme.hidesExplorerArrows": true

Because of this unresolved issue:

after some tweaks found another solution:

Looks like a regular indent guides in editor section.
Material icons with "material-icon-theme.hidesExplorerArrows": true
cfg.txt

Because of this unsolved issue:

after some tweaks found another solution:

Looks like a regular indent guides in editor section.
Material icons with "material-icon-theme.hidesExplorerArrows": true
cfg.txt

I've increased the tree indent spacing to 20px, but for some reason when I "reload" VS Code and/or close and reopen it the spacing reverts to the original 8px spacing. You can visually see the spacing jump from my 20px setting back to 8px.
I too am using the Material Icon Theme.

Just wondering if someone could create a VS Code extension for this. Sadly, I dont have experience in creating VS Code extensions (...yet)

My latest insiders now has 40px max. Still missing the tree itself tough 🤷♂

Just wondering if someone could create a VS Code extension for this. Sadly, I dont have experience in creating VS Code extensions (...yet)

There is one, custom CSS extension, as described in above comments. But this is banned by MicroSoft, you will get a [unsupported] warning in the title bar and it will stop working every time VS code updates. Waiting for an official solution.

+1
this looks much more readable then default:

To fix [Unsupported] when you modified the original styles use https://github.com/lehni/vscode-fix-checksums
[Unsupported] warning is displayed when core files are modified (and their checksum differs from original).

This feature is so important that is should be supported officially, not just some hackaround that has to be re-configured on every update.

It's funny, I tried using VSCode a few years back and was really impressed, but even then the indentation in the sidebar was no good for me and I dumped it for another IDE. I'm extremely surprised this is still an issue and clearly I'm not alone on this. Please support this customization officially!

Thanks for this feature request. I thought I was the only one.
This is feature is currently at #12 ( when ordered by thumb ups)

This has been here for 2 years...

+1, please fix this, setting the Workbench > Tree: Indent to 19 has helped me, but man! talk about getting lost in a massive tree, it might work ok on default with 1 folder but... You will even notice that in VS2017 they added the tree lines to the if statements so that you can figure out where you are at on the level of {} indents. where is the headache icon!

Configuring this for every update is really getting @vscode

Configuring this for every update is really getting old...

Also a problem for me! I need lines in order to better focus on writing code; not struggle to find the right files everytime

I found another thread where they showed that this has been addressed (by adjusting tree.indent in Settings)
https://github.com/Microsoft/vscode/issues/35447#issuecomment-455461013

@divinentd The solution you're referring to isn't quite the same thing. This feature is still open and relates to having tree lines so that you can discern the nesting level within your project's folder structure. The indentation level on the other thread is useful to give your eyes some visual separation but isn't really the same as having visual indentation guides that you you can get with tree lines.
Temporary Workarounds
Although I don't think this is a perfect solution, if you do tend to have difficulty visually seeing a file's location to navigate within your project, then you can add the breadcrumbs feature to the top of your editor. You can then click on any level of that to see other files within that nested level and navigate accordingly.
Another way is if you know the name of the file that you would like to open, quickly press F1 and then delete on your keyboard which brings up the files view in your command palette and then start typing the name of the file. Handily, this is also a contains search rather than a starts with. This enables you to see the files available and the folder they sit within. You can set the window.zoomLevel in your settings.json file to make things the size which is optimum for your efficiency.
Additional Idea for the Implementation
As an extension idea for the implementation, I envisage different configurable coloured lines for different levels of the indentation. For example, you could set up the indentation levels using the colours of the rainbow within your settings.json file. Of course, it would be great if the line colour, style and thickness were all configurable options.

Red - Level 1
-- Orange - Level 2
--- Yellow - Level 3
---- Green - Level 4
----- Blue - Level 5
------ Indigo - Level 6
------- Violet - Level 7

I too would love to see this feature come soon to VS Code and love the direction that the project is moving in. Good work guys!

Ask and ye shall be ignored

We are still at 12th place, for open issues sorted by 👍 (thumbs up), but we're bridging the gap quickly..

#
Open issue
:+1:
:-1:
:heart:

1
Allow for floating windows
2909
40
416

2
Tabs for integrated terminal
1293
16
128

3
vscode.extensions Doesn't Update On Installing / Removing / Disabling Extensions without restarting
922
0
47

4
Allow to change the font size and font of the workbench
917
1
123

5
Refreshing the VS Code product icon
825
18
303

6
Git: Use VS Code as merge editor
669
0
105

7
Support to open a project folder in multiple VS Code windows
630
0
72

8
Auto Indent / Code Formatting / Beautify
589
0
45

9
Macro recording
586
0
73

10
Add option to pin tabs similar to Visual Studio
553
0
73

11
Allow customization of mouse shortcuts
521
0
57

12
👉 Directory tree indent guides in File Explorer 👈
503
0
84

13
Provide support to synchronize settings across machines
429
0
62

14
Display search results in a tab instead of the side bar
423
0
73

For anyone who hasn't done so, please 👍 (thumbs up) the starting comment.

I wish you +1 spammers could harass github to allow unsubscribing from comments only, the same way as you are doing here :smile:

+1

Did you see this post? https://simonholman.blog/visual-studio-code-finally-has-a-tree-indent-setting/
Seems like "Directory tree indent guides in File Explorer" is working now.
In settings search for "tree indent"
setting > workbench > tree indent.

@RoelandJimenez Yes, we discuss it above. It's not the same as having lines, but a step in the right direction.

This feature should have every program with a file explorer!

Any update?

@Ninroot Don't pester developers like this. We receive updates when a discussion happens or when the ticket status changes.

please add this feature!!!!!!!!!!

+1

+1

People, for god sake, please stop spam this ticket. VS Code team know about this request.
If you want to say "+1" , just vote and pick your reaction (emoji hand up). Thats how it works in this repository

+1
@kanlukasz Github recently added a new feature. We can subscribe only for important changes and not for +1 me too pls fix !!!!! 🎉🎉🎉🎉🎉🎉🎉🎉🎉
Dear +1 spammers, you won't have me again.

Step by step instruction (for macOS)

Install https://marketplace.visualstudio.com/items?itemName=be5invis.vscode-custom-css and restart VS Code
Save contents of this gist into some file, in my example it's /Users/semenov/.vscode/css/tree.css
Open Preferences > Settings, and add this setting:

    "vscode_custom_css.imports": [
        "file:///Users/semenov/.vscode/css/tree.css"
    ]

Cmd-P, ">Enable custom CSS and JS", restart VS Code
Dismiss "Your VS Code is corrupted" message

After upgrading VS Code, repeat steps 4 and 5.

Well, it doesn't seems to make effect.

This is my number one request!

This is currently on the June 2019 Iteration Plan #75103 as "Add support for indentation guides in trees".

This has been pushed to master: https://github.com/microsoft/vscode/commit/036278c3ed0ef39274fa68e11e472fbd05f3e9d0 It will be out tomorrow on Insiders! :fireworks:

It comes with a new setting workbench.tree.renderIndentGuides with the following options:

none, just don't render anything
onHover, render non-interesting guides only on hover. Always render interesting guides (selected, focused tree nodes).
always, render all guides all the time: both interesting and non interesting.

Remember to give it a spin this week and provide feedback!

Is there any way to style it like in the first post, as in the line pointing to files/folders?
Also, ability to change the the line style as well: dotted, solid, ...?
├─ app
|  └─ main.js
├─ src
|  ├─ main.ts
|  └─ tsconfig.json
└─ package.json

Is there any way to style it like in the first post, as in the line pointing to files/folders?
Also, ability to change the the line style as well: dotted, solid, ...?

Not for now, no. We're trying to meet both ends: address the challenge of hierarchy perception and keeping a consistent, lightweight visual style. We'll see how that goes.

I hope you guys will add support for folders without arrows, I think it is also looks cleaner.

@joaomoreno it looks cool, but would be great if those guides would a bit more visible

Right now I can barely see it

Right now I can barely see it

There should be an option to leave them as they are now.

@joaomoreno There should be settings under workbench.colorCustomizations as the editor indent guides have, which would allow for some of the customizations people are asking for.

@KamasamaK:
    "workbench.colorCustomizations": {
        "tree.indentGuidesStroke": "#ff0000"
    }

So.. wont there be horizontal lines to the files? It's kinda distant to the files. Moving the horizontal line a little bit to the right would also be really helpful to make it more visible/clear.

I'd love an option between "none" and "onHover" that always shows the interesting guides, but doesn't show the non-interesting ones on hover.

Would be also cool on hover to have all parent folders of hovered file highlighted

If you want to get a decent alternative for this today:
"workbench.tree.indent": 32

Adjust as needed.


[BUG] IResponse.BodyAsync() throws an exception seemingly when a response body isn't found

Context:

Playwright Version: 1.30.0
Operating System: Windows
.NET version: .NET 7
Browser: Happens on Chromium, webkit, and firefox

Code Snippet
using Microsoft.Playwright;
using Microsoft.Playwright.NUnit;

using NUnit.Framework;

using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace PlaywrightTests;

[Parallelizable(ParallelScope.Self)]
[TestFixture]
public class MyTest : PageTest
{
    [Test]
    public async Task TestNetworkScanning()
    {
        var logs = await ScanNetworkAsync(Page, () =>
        {
            Page.GotoAsync("https://www.google.com").GetAwaiter().GetResult();
            Thread.Sleep(1000);
        });
    }

    private static async Task<ReadOnlyCollection<NetworkLog>> ScanNetworkAsync(IPage page, System.Action action)
    {
        var responses = new List<IResponse>();

        page.Response += AddToResponseList;
        action.Invoke();
        page.Response -= AddToResponseList;

        var list = new List<NetworkLog>(responses.Count);
        foreach (IResponse response in responses)
        {
            ResponseServerAddrResult? serverInfo = await response.ServerAddrAsync().ConfigureAwait(false);
            ResponseSecurityDetailsResult? security = await response.SecurityDetailsAsync().ConfigureAwait(false);
            var request = new Request(response.Request.Url, response.Request.Headers, response.Request.Method, response.Request.PostData);
            var headers = await response.AllHeadersAsync().ConfigureAwait(false);
            byte[] body = await response.BodyAsync().ConfigureAwait(false); // Exception thrown here
            string? encodedBody = Encoding.UTF8.GetString(body);
            var responseLog = new Response(response.Url, headers, response.Status, encodedBody)
            {
                FromServiceWorker = response.FromServiceWorker,
                RemoteIPAddress = serverInfo?.IpAddress,
                RemotePort = serverInfo?.Port,
                StatusText = response.StatusText,
                SecurityDetails = security is null ? null : new SecurityDetails(security.Issuer, security.Protocol, security.SubjectName, security.ValidFrom, security.ValidTo),
            };
            var type = response.Request.ResourceType;
            var log = new NetworkLog(Request: request, Response: responseLog, Type: type)
            {
                FrameId = response.Frame.Name,
                Duration = response.Request.Timing.ResponseEnd - response.Request.Timing.StartTime,
            };
            list.Add(log);
        }
        return list.AsReadOnly();

        void AddToResponseList(object? _, IResponse e) => responses.Add(e);
    }
}

public sealed record NetworkLog(Request Request, Response? Response, string? Type)
{
    public string? FrameId { get; set; }

    public double? Duration { get; set; }
}

public sealed record Request(string Url, IReadOnlyDictionary<string, string> Headers, string Method, string? PostData);

public sealed record Response(string Url, IReadOnlyDictionary<string, string> Headers, long Status, string? Body)
{
    public string? StatusText { get; set; }

    public string? RemoteIPAddress { get; set; }

    public long? RemotePort { get; set; }

    public bool? FromServiceWorker { get; set; }

    public SecurityDetails? SecurityDetails { get; set; }
}

public sealed record SecurityDetails(string? Issuer, string? Protocol, string? SubjectName, double? ValidFrom, double? ValidTo);

Describe the bug
Exception on Chromium:
Microsoft.Playwright.PlaywrightException
  HResult=0x80131500
  Message=Protocol error (Network.getResponseBody): No data found for resource with given identifier
  Source=Microsoft.Playwright
  StackTrace:
   at Microsoft.Playwright.Transport.Connection.<InnerSendMessageToServerAsync>d__34`1.MoveNext()
   at Microsoft.Playwright.Transport.Connection.<WrapApiCallAsync>d__44`1.MoveNext()
   at Microsoft.Playwright.Transport.Channels.ResponseChannel.<GetBodyAsync>d__1.MoveNext()
   at PlaywrightTests.MyTest.<ScanNetworkAsync>d__1.MoveNext() in C:\Users\rende\source\repos\PlaywrightRepro\PlaywrightRepro\MyTest.cs:line 44

  This exception was originally thrown at this call stack:
    Microsoft.Playwright.Transport.Connection.InnerSendMessageToServerAsync<T>(string, string, System.Collections.Generic.Dictionary<string, object>)
    Microsoft.Playwright.Transport.Connection.WrapApiCallAsync<T>(System.Func<System.Threading.Tasks.Task<T>>, bool)
    Microsoft.Playwright.Transport.Channels.ResponseChannel.GetBodyAsync()
    PlaywrightTests.MyTest.ScanNetworkAsync(Microsoft.Playwright.IPage, System.Action) in MyTest.cs

Exception on WebKit:
Microsoft.Playwright.PlaywrightException
  HResult=0x80131500
  Message=Protocol error (Network.getResponseBody): Missing content of resource for given requestId [{"code":-32000,"message":"Missing content of resource for given requestId"}]
  Source=Microsoft.Playwright
  StackTrace:
   at Microsoft.Playwright.Transport.Connection.<InnerSendMessageToServerAsync>d__34`1.MoveNext()
   at Microsoft.Playwright.Transport.Connection.<WrapApiCallAsync>d__44`1.MoveNext()
   at Microsoft.Playwright.Transport.Channels.ResponseChannel.<GetBodyAsync>d__1.MoveNext()
  at PlaywrightTests.MyTest.<ScanNetworkAsync>d__1.MoveNext() in C:\Users\rende\source\repos\PlaywrightRepro\PlaywrightRepro\MyTest.cs:line 44

  This exception was originally thrown at this call stack:
    Microsoft.Playwright.Transport.Connection.InnerSendMessageToServerAsync<T>(string, string, System.Collections.Generic.Dictionary<string, object>)
    Microsoft.Playwright.Transport.Connection.WrapApiCallAsync<T>(System.Func<System.Threading.Tasks.Task<T>>, bool)
    Microsoft.Playwright.Transport.Channels.ResponseChannel.GetBodyAsync()
    PlaywrightTests.MyTest.ScanNetworkAsync(Microsoft.Playwright.IPage, System.Action) in MyTest.cs

Exception on firefox:
Microsoft.Playwright.PlaywrightException
  HResult=0x80131500
  Message=Response body is unavailable for redirect responses
  Source=Microsoft.Playwright
  StackTrace:
   at Microsoft.Playwright.Transport.Connection.<InnerSendMessageToServerAsync>d__34`1.MoveNext()
   at Microsoft.Playwright.Transport.Connection.<WrapApiCallAsync>d__44`1.MoveNext()
   at Microsoft.Playwright.Transport.Channels.ResponseChannel.<GetBodyAsync>d__1.MoveNext()
   at PlaywrightTests.MyTest.<ScanNetworkAsync>d__2.MoveNext() in C:\Users\rende\source\repos\PlaywrightRepro\PlaywrightRepro\MyTest.cs:line 44

  This exception was originally thrown at this call stack:
    Microsoft.Playwright.Transport.Connection.InnerSendMessageToServerAsync<T>(string, string, System.Collections.Generic.Dictionary<string, object>)
    Microsoft.Playwright.Transport.Connection.WrapApiCallAsync<T>(System.Func<System.Threading.Tasks.Task<T>>, bool)
    Microsoft.Playwright.Transport.Channels.ResponseChannel.GetBodyAsync()
    PlaywrightTests.MyTest.ScanNetworkAsync(Microsoft.Playwright.IPage, System.Action) in MyTest.cs

edit: same thing happened on firefox

Not sure if this should be a separate bug but with the above repro, on webkit only both await response.ServerAddrAsync() and response.SecurityDetailsAsync() also throw
System.Collections.Generic.KeyNotFoundException
  HResult=0x80131577
  Message=The given key was not present in the dictionary.
  Source=System.Text.Json
  StackTrace:
   at System.Text.Json.JsonElement.GetProperty(String propertyName)
   at Microsoft.Playwright.Transport.Channels.ResponseChannel.<SecurityDetailsAsync>d__3.MoveNext()


Hard Coded HOST and PORT (nux-bridge

Describe the feature
I would like to be able (like in nuxt 2) define in nuxt.config.js, the default port for the app, without using .env file or environnement variables
I have already see/search in issues, none of them explain how to set it without .environnements variables
in my team, we have 2 nuxt project, one running on default port, another at port 3333 we cannot run both without set a .env or use environnements variables
Additional information

[X] Would you be willing to help implement this feature?
[ ] Could this feature be implemented as a module?

Final checks

[X] Read the contribution guide.
[X] Check existing discussions and issues.

You can do this with --host and --port arguments passed to nuxi: see https://v3.nuxtjs.org/api/commands/dev#nuxi-dev.

You can do this with --host and --port arguments passed to nuxi: see https://v3.nuxtjs.org/api/commands/dev#nuxi-dev.

Thanks @danielroe . Yes, i also see this solution il the documentation. but i would like an alternative using, only config's file.

There are reasons with nitro that we need them before the nuxt config is read - for now, you'll need to specify them either in your .env file or on the command line.

it looks like it is merged in v3.0.0, i will test it


Add client.Isr to determine in-sync replicas

This restores the commit from @funkygao in PR #566, with an additional commit to expose the function on the Client interface and add some basic tests around its functionality.
The PR was previously closed with the suggestion that Zookeeper should be used directly, because, at the time, it was possible to receive stale information from Kafka. If I'm reading the linked issue correctly, that issue has been resolved since Kafka 0.9, so I'd like this patch to be reconsidered now.
I personally want this so that I can then add ISR support to the excellent kt, which is the workhorse of a fair amount of the Kafka automation tooling I use.

@eapache I've renamed it to InSyncReplicas, and added some semblance of an explanation of what that means to the godoc. I wasn't able to find any particularly useful, official documentation of what ISR actually means, aside from some things on cwiki that haven't been edited since 2013.
Improved documentation suggestions welcome. =)

This is great, thanks!


feat(provider/aws) : swapping template url to cloudfront

Were those yamls moved to some other repos?

Hi @anshrma and @edwinavalos :
Where's that yaml now and how's in charge?
It has a type that avoids deployment if you select certain options and I don't know where to patch it.
<3


Scraping comments?

Would it be possible to scrape comments from a page? What I'm hoping for ideally is something that will allow me to scrape comments from most recent posts, compare the text of those comments to a list of keywords, and if one of those keywords is found, delete the comment. This is to be used to fight trolls and people making racist comments on a public group that has been dealing with this a lot lately.

Hi @wjkowalski ,
If it's your page (I assume it as you'd like to remove some comments), I'd recommend using an API.
That would be easier for you (anyway, deleting comments would only possible programmatically via API).


Compile to WASM/WASI?

A couple years ago @binji modified clang/LLVM and was able to compile it to WASM/WASI: https://github.com/binji/wasm-clang. However, it is now multiple years old and the changes weren't upstreamed.
Maybe I'm mistaken, but could the llvmbox effort help with getting clang compiled to WASM/WASI?

I don't know much about llvmbox, but maybe it would help? I ended up making things a bit harder for myself in general, since I ended up writing my own WASI Filesystem layer that would work well on the web. It's likely that there are better ways to do that now (and probably even then).
The biggest hack is the same as always with the web platform -- handling blocking calls, and dealing with threading. I think if you're focused on WASI then this maybe isn't much of an issue, and you could get pretty far with a simple LLVM cross-compile using the WASI SDK?

Thank you for the details @binji!

Hi! I'd love to add both plain WASM and WASI support. Simply haven't gotten around to it.

@binji I've started with making changes in wasi-sdk itself (the hope is to port the patch here at some point). Looking at the changes to llvm at the time (https://github.com/llvm/llvm-project/compare/19a71f6bdf2dddb10764939e7f0ec2b98dba76c9..5dc09c94393510bc8d042a9f07382b53e845c0f2), I noticed only support for signals is disabled, but mutex operations weren't changed. How did this build, given there's no support for mutex operations in wasi-sdk? Did you have stubs for the mutex operations?

@turbolent yeah, some folks were asking me about this on the Wasm discord too. I forgot that I ended up modifying wasi-sdk and llvm to get this to compile. See https://github.com/binji/wasi-sdk-bin and my notes from the time here: https://gist.github.com/binji/b7541f9740c21d7c6dac95cbc9ea6fca
My apologies about this, I really should have left the project in a better state at the time!

@binji No worries at all! This is great info, thank you

I've added WASI as a target (wasm32-wasi) in Compis, which is based on llvmbox (but bundles all tools into one executable, like zig.) Here's a simple example: https://github.com/rsms/compis/tree/main/examples/hello-wasi
I realize you're discussing compiling llvmbox itself for WASI, but maybe with some more work on Compis (ie adding libc++) it can be used to compile LLVM for WASI.

@rsms Awesome work on Compis, it's looking great!  Love seeing linear types being more widely adopted (shameless plug, I'm working on github.com/onflow/cadence, which also has linear types; maybe some day we can replace Go and rewrite Cadence in Compis, it looks like a great fit, haha).
I'm making good progress on re-applying @binji's changes on top of LLVM 15. For now I'm using wasi-sdk to build LLVM, which already builds LLVM targeting just WebAssembly like llvmbox, as its build system is a bit simpler (single stage LLVM build, just a single Makefile). Unlike llvmbox, I think it doesn't build a static / single-binary LLVM/Clang, but I'm confident the LLVM changes will be useful for llvmbox too.
I'll try to push the changes up soon. The approach I'm taking for now is to not have a modified wasi-sdk/libc/libc++, and using what is shipped in wasi-sdk as-is. That means there is no C++ mutex/future/etc., so much more most be changed in LLVM.
With the release of https://github.com/WebAssembly/wasi-sdk/releases/tag/wasi-sdk-20%2Bthreads and future development of bringing threads to WASI, I hope that those threading related changes to LLVM will only be temporary and eventually wasi-sdk will ship with a C++ stdlib that has mutex/future/etc.

I'm working on github.com/onflow/cadence, which also has linear types

Very nice! I see we share many ideas about syntax and semantics :–)

For now I'm using wasi-sdk to build LLVM, which already builds LLVM targeting just WebAssembly like llvmbox, as its build system is a bit simpler

Nice. Simpler is almost always better. The downside is your Linux builds will be specific to your distro, but that's of course fine unless you intend to distribute the binaries widely.

I finally managed to compile LLVM 15 to WebAssembly/WASI and opened a draft PR in the WASI SDK project: https://github.com/WebAssembly/wasi-sdk/pull/304
I think it should be possible to integrate the changes to LLVM into llvmbox.


Docs Directory vs Docs in Packages

etcd organizes its documentation into one documentation directory, while clair has so far tried to keep docs as closed to the relevant source code as possible. We should evaluate the pros and cons of these two solutions.
For example, not everyone who wants to read docs is going to be familiar enough with Go to track down the correct places to find our current README files.

The docs have been moved to the Documentation directory.


Fix occupancy does not calculate correctly

Please describe the issue/root cause/ solution in the PR's description

Close due to this is not the root cause of the issue


⚠ Bofrost.at has degraded performance

In d574341, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 936 ms

Resolved: Bofrost.at performance has improved in 5bef307 after 6 minutes.


Code workflow

This pipeline configuration builds the application and produces a build for the Release configuration.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: NeetaMT sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


doc: Document adding ABP devices and gateways using the API

Summary
Closes #747 and #746
Checklist

[x] Scope: The referenced issue is addressed, there are no unrelated changes.
[x] Run Locally: Verified that the docs build using make server, posted screenshots, verified external links. Test with HUGO_PARAMS_SEARCH_ENABLED=true if style changes will affect the search bar.
[ ] New Features Marked: Documentation for new features is marked using the new-in-version shortcode, according to the guidelines in CONTRIBUTING.
[x] Style Guidelines: Documentation obeys style guidelines in CONTRIBUTING.
[x] Commits: Commit messages follow guidelines in CONTRIBUTING, there are no fixup commits left.

@adriansmares can you double check the API ABP examples


In Maven TechnologyDetector, filtering should be done before aggregating

Since #394 , we aggregate each groupId to its most popular dependency and then we filter by tags.
Unfortunatly, most of the time, the testing tag corresponds with the most used artifacts.
As an example, compare ranking/usages of io.quarkus:quarkus-junit5 (ranking: 283, users: 1660), to io.quarkus:quarkus-resteasy (ranking: 436, users: 1064).
Since we compare by ranking (users not being always available), junit5 will be priorized, then filtered.
So filter out first then rank to avoid that.

Fixed in b3f709146c556f0c392d702ac99c15f1850813dc


adapter-node custom onwarn option

Describe the problem
Would be great to pass a custom onwarn handler to adapter-node from svelte.config.js like:
import node from '@sveltejs/adapter-node';

/** @type {import('@sveltejs/kit').Config} */
const config = {
  kit: {
    adapter: node({
      onwarn: (warning, handler) => {
        if (/regexp/.test(warning))
          return;
        handler(warning);
      }
    }),
  },
};

export default config;

Describe the proposed solution
While using d3 package, there are annoying warnings coming from rollup like:
> Using @sveltejs/adapter-node
Circular dependency<EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>Circular dependency<EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>
adapter-node calls rollup without ability to pass custom onwarn handler at https://github.com/sveltejs/kit/blob/master/packages/adapter-node/index.js#L51
Alternatives considered
No response
Importance
would make my life easier
Additional Information
No response

As an alternative, you could move d3 to dependencies (rather than devDependencies) so that it doesn't get bundled by Rollup

As an alternative, you could move d3 to dependencies (rather than devDependencies) so that it doesn't get bundled by Rollup

Yes, this works for my particular case!
PS. There still could be other cases...

The advice will always be the same though — move it out of devDependencies. We cover this in the adapter-node docs:

Given that, I'm not sure there's much reason to pass options to Rollup rather than bypass it altogether.

Going to close this as I don't think there's anything we should change here


Chinese translation

Based on app analytics, more than half of Sketch Plugin Manager's users primary language is Chinese (specifically zh-Hans-CN). I'd like help from someone fluent in Chinese to help translate to simplified and possibly also traditional Chinese.
I've posted instructions how to contribute:
https://github.com/mludowise/Sketch-Plugin-Manager/tree/localize

@cute @pluwen – You've both made contributions to the SketchI18N plugin, would you be interested in helping translate Sketch Plugin Manager?

@mludowise I'm in!

@mludowise Done. https://github.com/mludowise/Sketch-Plugin-Manager/pull/26

Thank you! I'll integrate this into the plugin.

I integrated the localization into the plugin. You should see the change if you update in Sketch Plugin Manager and your system has Chinese (Simplified) as one of the preferred languages.
Please let me know if you see any problems.

Why not use UTF-8 ？Sent from Nylas Mail, the best free email app for work
        On 6月 15 2017, at 11:09 上午, Mel Ludowise<EMAIL_ADDRESS>wrote:

          I integrated the localization into the plugin. You should see the change if you update in Sketch Plugin Manager and your system has Chinese (Simplified) as one of the preferred languages.

Please let me know if you see any problems.
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.

Change some strings
https://github.com/mludowise/Sketch-Plugin-Manager/pull/28

Thank you. I'll include the fixes in the next update.
Regarding your comment on UTF-8, I believe the Localizable.strings file is already in UTF-8, is it not?

no, it's UTF-16LE

@pluwen Ah, yes. It looks like Apple wants the Localizable.strings files to be in UTF-16. When I import them into XCode, it automatically converts them from UTF-8 to UTF-16.

ok


How can I use Grapevine in c# winform?

I can run Grapevine in c# console. But can's run in winform
How can I use Grapevine in c# winform ? Please give me a example.
I need a web server so that can use for webbrowser control winform.
Desktop or phone can use webbrowser control winform.

This would be better asked in out Gitter channel. https://gitter.im/sukona/Grapevine


Transferring ownership ($200 USD)

I'm not able to work on cloudRIG any longer. I've spent a couple of years developing it (and several hundred dollars for outside help) making it what it is, which I think is a handy tool for people who want a cheap option for powerful computing.
I'm happy to pay $200 to cover someone who wants to sign up to the Mac Developer Program ($100) and $100 for thanks. I'd be happy to chat through how the deployment process works.
If you're keen, please let me know.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Hi!
I just found this project yesterday, and I am since contemplating becoming a maintainer, as this does seem like a fun project.
Additionally I would possibly be interested in taking ownership of this project, but before I agree to anything, I would like to spend some time working in the project and attending to some of the existing issues.
So in short, this is me saying Hello, and please look forward to changes coming from me.

Hi.
I’m also interested in taking the ownership of the project. I’m using it for 6 months now and I’m really motivated to improve it.
Some ideas of improvements for the future:

add an option to use io1 disks (gp2 are too random)
allow to run more than one instances (useful to organize multiplayer sessions without creating multiple accounts or using different regions)
detect better prices over a set of regions / az
save the credentials in macOS keychain

Whatever the owner I will be very happy to contribute to the project to add those features.

Great to hear. I've addressed some of your points below:

add an option to use io1 disks (gp2 volumes have too random io and game installation may be very very long)

This could be a good idea, depending on the price. At the moment the volume switches to io1 when transferring to speed it up, but if it isn't too much of a price difference generally, then it could be an option.

allow to run more than one instances (useful to organize multiplayer sessions without creating multiple accounts or using different regions)

This is a great idea, and one that I have been thinking about for a long time. It would be great to decouple Parsec and have different instance types that includes vanilla EC2 (including Linux).
I have a wireframe from when I was thinking about it:

detect best prices over a set of regions / az

I had some code for that a while back. It's a good idea, but just needs to be weighed up against the time it takes to transfer volumes across.

make it available on Windows and Linux

I think it compiles on Linux, and another developer has been working on compiling for windows. It would be good to merge them all in.
With regards to transferring I am thinking we would do a final release on this repo and point the auto updater to the new repo (which would be a fork of this one) so that the experience is seamless for users. Some things I'd like in the final release:

Merge in current pull requests
Update to latest versions of frameworks
Update GUI so that on the Play screen it lists the contributors to cloudRIG

If someone is happy to do those things, we can look at transferring to their fork for future versions.

Hi,
Only someone with the write permissions on that repo can do that. I can help with the current opened PR if you grant me this access.

The current PR's are small (other than yours) - so could be manually merged in? (@mikesplain might not mind)

I'd hate to see this die, and am willing to help out a bit, though I haven't written Javascript in a couple years.
FWIW, I've been happily using it on Linux (via the appImage) for a few weeks.

I'm interested to take over the project and / or help maintain it. Please count me in!

Great to hear!
I had a chat with @NitriKx about next steps, and it's looking like:

Set up a new "cloudRIG" organisation
Create a final release on this repository with:

Update to latest versions of frameworks
Update GUI so that on the Play screen it lists the contributors to and maintainers of cloudRIG
Setting the auto-update path to point to the new organisation

Code sign and release a final package in this repository
Transfer the repository over to the organisation

If you can help @NitriKx out on step 2, that would be awesome.

I've created the new organisation : https://github.com/cloudrig

Awesome! Unless you've already done it @NitriKx, I'll get on step 2... let me know?

I've almost finished the step 2 :-)
You can follow the progress of the "final steps" here: https://github.com/williamparry/cloudRIG/projects

@vieko you can contribute on this one if you want : https://github.com/williamparry/cloudRIG/issues/137


RESTEASY-2335 RestEasy Microprofile Client has a immutable template p…

…roblem/bug

The fix triggered some microprofile tck test failures, I'll go on working on this.

tck tests passed locally:


Singlestat and triggers not working after update Zabbix server

Describe the bug
After update my Zabbix server from 4.0.6 to 4.0.10 all singlestat and different elments on dashboard do not return any value
Screenshots

| Grafana | Zabbix | Grafana-Zabbix Plugin |
| 6.2.5   | 4.0.10  | 3.10.2               |

Please, check this topic: https://github.com/alexanderzobnin/grafana-zabbix/issues/733 and this other one:https://github.com/alexanderzobnin/grafana-zabbix/issues/726
Another user has a similar issue with previous plugin version. In version  3.10.3 it seems to be fixed

version 3.10.3 fix it)


[3.5.x] Override url initial value not set

Fixed by https://github.com/divio/django-cms/pull/6132


Add App to showcase

Article at<EMAIL_ADDRESS>

By analyzing the blame information on this pull request, we identified @lacker and @alexleventer to be potential reviewers.

Thanks for sending this pull request. According to the guidelines in that file, "infoLink" must be one of:
1/ An English-language news article discussing the app, built either by a funded startup or for a public company
2/ An English-language technical post on a funded startup or public company blog discussing React Native
Do you have any references we can use that show that Pocket Jam is either a funded startup or a public company?


Add pyproject.toml for Custom Node Registry

We are working with dr.lt.data and comfyanon to build a global registry for custom nodes (similar to PyPI). Eventually, the registry will be used as a backend for the UI-manager. All nodes go through a verification process before being published to users.
The main benefits are that authors can

publish nodes by version and users can safely update nodes knowing ahead of time if their workflows will break or not
automate testing against new commits in the comfy repo and existing workflows through our CI/CD dashboard

Action Required:

[ ] Go to the registry. Login and create a publisher id (everything after the @ sign on your registry profile).
[ ] Add the publisher id into the pyproject.toml file.
[ ] Merge the separate Github Actions PR, then merge this PR.

If you want to publish the node manually, install the cli by running pip install comfy-cli, then run comfy node publish
Check out our docs if you want to know more about the registry. Otherwise, feel free to message me on discord at haohao_81202 or join our server if you have any questions!

hey @florestefano1975, wanted to send a small nudge and ask if you had any questions!

@florestefano1975, wondering if there's any way we can support you on this PR!


Missing Java Example

It would be nice to see Java Speech SDK and example for Speaker Recognition

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

ID: 90378d9c-eeb4-f8c5-2f38-a5132a7f303f
Version Independent ID: a2e20d39-eb18-e7d2-749c-6955bf739d2c
Content: Speaker Recognition quickstart - Speech service - Azure Cognitive Services
Content Source: articles/cognitive-services/Speech-Service/get-started-speaker-recognition.md
Service: cognitive-services
Sub-service: speech-service
GitHub Login: @nitinme
Microsoft Alias: nitinme

@suyashjoshi Thanks for the feedback! We will review and update accordingly.

@erhopf Can you please help with the Java Speech SDK example for Speaker Recognition.

Hi @ram-msft I no longer work on Cognitive Service. I'm attaching @nitinme and @laujan who can help support.

@suyashjoshi Thanks, Here is the sample for Java Speech SDK example for Speaker Recognition.
https://github.com/Azure-Samples/cognitive-services-speech-sdk/tree/master/samples/java/android/sdkdemo
@erhopf Can you please help with the document for Java Speech SDK example for Speaker Recognition.

Thanks but this is an Android app example, a standalone Java app example would be helpful just like you have for other languages here : https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/get-started-speaker-recognition?tabs=script&pivots=programming-language-csharp

@suyashjoshi Thanks, Here is the sample for the same.
https://github.com/Azure-Samples/cognitive-services-speech-sdk/blob/master/samples/java/jre/console/src/com/microsoft/cognitiveservices/speech/samples/console/SpeechRecognitionSamples.java

Thanks @laujan for the details. @suyashjoshi We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Several fixes and merge conflicts resolved

Fixes #8 - introduced by #5
Fixes conflicts to merge #6
Proper RegEx for valid ACH ASCII range
Modified multiline strings in tests so the tests will run properly on Windows (files get line endings converted to CRLF, so forced \n line endings for the test strings)
The original project incorrectly assumes that credit entries = CCD entries and vice versa, where in reality CCD can be credit or debit, and other types (like PPD) can be credit entries (See #10 ). This e4ecd26 commit fixes that issue, as well.

@jdforsythe Sorry I let this sit so long - would you like to fix the conflicts and I'll merge it?


Hive and Velero: how to?

May you please create or share docs how to use velero with hive installed cluster?
I'm unable to find it into repo, but I found 'velero' in go/yaml  so I think you have a solution for using velero with hive.

@twiest could we get this documented?
I think most of the work is complete we just wanted to round out with some testing and docs, but haven't had time yet.

@dgoodwin sorry for the delay on this, I keep forgetting to update this issue.
There is a card for this in Jira, it just needs to get added to a sprint.


Automatically publish to RubyGems

Setup a workflow to automatically publish to RubyGems when the version file changes on master.
This way we don't have to wait on me to manually push the gem whenever there's a new version 👍
Edit: Should probably only let this run after the CI workflow.. 🤔

There is a way to run one workflow after another, but it is limited and not very flexible. Also we probably want to run the release job only for tags and not for any commit in master.
Let me prepare a separate pull request with a configuration proposal, so you can take a look.

Here is it: #51

Closing in favour of #51 👍


The whole screen might not be rendered with 'more space' mode on macOS

There are some applications in which only the left-lower corner is rendered. I'll try to create a minimum case.

This was reproduced with v2.1.0-alpha but not with v2.0.7 and the latest commit.


Adding ruff check to the GH Actions

What is the change?
Here I add an extra GitHub CI check: ruff.
Why is the change being made?
ARMI has unofficially been under ruff linting for over three months.  It's time to make ruff formatting in ARMI mandatory.

Checklist

[X] This PR has only one purpose or idea.
[X] Tests have been added/updated to verify that the new/changed code works.

[X] The code style follows good practices.
[X] The commit message(s) follow good practices.

[X] The release notes (location doc/release/0.X.rst) are up-to-date with any important changes.
[X] The documentation is still up-to-date in the doc folder.
[X] The dependencies are still up-to-date in pyproject.toml.

@drewj-usnctech @sombrereau @keckler @mgjarrett Just FYI. Tell yer friends.