Error in esp8266-rtos-sdk.py when compile

I've just install this platform and package as described here, but first "blink" example cannot compile with error:
`Processing nodemcuv2 (platform: custom8266; framework: esp8266-rtos-sdk; board: nodemcuv2)
Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/custom8266/nodemcuv2.html
PLATFORM: custom Espressif 8266 1.0.0 > NodeMCU 1.0 (ESP-12E Module)
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES: toolchain-xtensa-lx106-elf 5.2.0+100, framework-esp8266-rtos-sdk 6cfeb14
File "C:\Users\s.dmitriev.platformio\platforms\custom8266\builder\frameworks\esp8266-rtos-sdk.py", line 237
line = line.replace('"','')

                          ^

TabError: inconsistent use of tabs and spaces in indentation
================================================================================= [FAILED] Took 0.95 seconds =================================================================================
The terminal process terminated with exit code: 1`
platformio.ini:
[env:nodemcuv2] platform = custom8266 framework = esp8266-rtos-sdk board = nodemcuv2
The same "blink" is compile and working fine with built-in PlatformIO esp8266-RTOS-sdk package.

please see README.md to compile latest rtos release

Just got the same issue, installed in platformio by putting this repo into the advance installation, in pio platforms  gui.
Done the cmake files correctly and renames src to main.
I think the issue is because I haven't done the install requirements part as I expected this to be done within pio.  Am I right in assuming this framework doesn't download the esp8266-rtos-sdk within pio, but requires it to be cloned and installed as if you were then going to compile from the command line?
Annoyingly I already have the esp32 build environment installed that way, and can't figure out how to have that play nicely with the esp8266 environment, which uses the same path variable names and .espressif folder. Grr.
Thank you for posting this repo publicly though.  Will report back if I find a way of getting both esp32 and esp8266 environments to play nice together!
Note; I know I can just used the normal esp8266 framework but this is soooo far behind and I need features in v3.x

howroyd, hello
Reinstall "custom Espressif 8266" from https://github.com/WallaceWilliam/framework-esp8266-rtos-sdk-idf-platformio
In .platformio\packages\ should appear framework-esp8266-rtos-sdk and toolchain-xtensa-lx106-elf
you must complete [CMAKE for Windows], [NINJA], [MCONF] yourself and add to PATH
Please note that idf.py works with python3
in the platformio terminal, I run such a command
py -3.6% IDF_PATH% / tools / idf.py build
esp32 and esp8266 environments both use the same variable IDF_PATH
therefore, you must change IDF_PATH each time when using esp32 or esp8266
show the error that you get when compiling

need add to PATH
{path to platformio}.platformio\packages\toolchain-xtensa-lx106-elf\bin;

That seems to have done the trick, ty very much.
Seems to be going through the build process as I would expect.  Build is now throwing an error with lwip, but that looks like an issue on the IDF or sdkconfig side and not an issue with your repo:
In file included from C:/Simon/Esp8266/ESP8266_RTOS_SDK/components/lwip/lwip/src/api/if_api.c:49:0:
C:/Simon/Esp8266/ESP8266_RTOS_SDK/components/lwip/lwip/src/include/lwip/priv/sockets_priv.h:105:0: warning: "LWIP_SETGETSOCKOPT_MAXOPTLEN" redefined
 #define LWIP_SETGETSOCKOPT_MAXOPTLEN LWIP_MAX(16, sizeof(struct ifreq))
 ^
In file included from C:/Simon/Esp8266/ESP8266_RTOS_SDK/components/lwip/lwip/src/include/lwip/priv/sockets_priv.h:45:0,
                 from C:/Simon/Esp8266/ESP8266_RTOS_SDK/components/lwip/lwip/src/api/if_api.c:49:
C:/Simon/Esp8266/ESP8266_RTOS_SDK/components/lwip/lwip/src/include/lwip/sockets.h:115:0: note: this is the location of the previous definition
 #define LWIP_SETGETSOCKOPT_MAXOPTLEN 16
 ^
In file included from C:/Simon/Esp8266/ESP8266_RTOS_SDK/components/lwip/lwip/src/api/if_api.c:49:0:
C:/Simon/Esp8266/ESP8266_RTOS_SDK/components/lwip/lwip/src/include/lwip/priv/sockets_priv.h:109:8: error: redefinition of 'struct lwip_setgetsockopt_data'
 struct lwip_setgetsockopt_data {
        ^
In file included from C:/Simon/Esp8266/ESP8266_RTOS_SDK/components/lwip/lwip/src/include/lwip/priv/sockets_priv.h:45:0,
                 from C:/Simon/Esp8266/ESP8266_RTOS_SDK/components/lwip/lwip/src/api/if_api.c:49:
C:/Simon/Esp8266/ESP8266_RTOS_SDK/components/lwip/lwip/src/include/lwip/sockets.h:119:8: note: originally defined here
 struct lwip_setgetsockopt_data {
        ^
cc1.exe: warning: unrecognized command line option '-Wno-frame-address'
[359/501] Building C object esp-idf/lwip/CMakeFiles/__idf_lwip.dir/lwip/src/api/api_msg.c.obj
ninja: build stopped: subcommand failed.
ninja failed with exit code 1

Many thanks for your help :)

Always happy to help :)
I decided to go the other way
the original script from https://github.com/espressif/esp-idf has been adapted for esp 8266
must reinstall custom8266

Cool will give it a go.  Also, just seen the new README.md and the note about flash less than 4M.  I am on a 2M board and seems to be working just fine

I am glad to help


Typo ?

https://github.com/zackchase/mxnet-the-straight-dope/blob/b964214a3b4223932d6076d0dcec3e0e66b17b9f/P02-C03-softmax-regression-scratch.ipynb#L76
train-label might be train_label ?
Thank you so much for nice tutorials for the beginner like me.

Thanks for the keen eyes :). It makes it a lot easier to undertake a project like this when we have nice people like you helping us out. Grateful for this and any other feedback as you go.

Fixed


SM like SK should be AI service agnostic

Semantic Kernel  1.0 is AI service agnostic.   Semantic kernel now only support  azure openai/openai , We  should  make the Semantic memory  AI provider agnostic.

hi @geffzhang I think memory is already provider agnostic, isn't it? SearchClient depends on ITextEmbeddingGeneration and ITextGeneration so you should be able to leverage any custom class implementing those interfaces, talking to any LLM

thanks, I see repo only support openai/azure openai，I tried to support llamasharp these two days and it is indeed service agnostic

hi @geffzhang I think the solution is already provider agnostic, isn't it? SearchClient depends on ITextEmbeddingGeneration and ITextGeneration so you should be able to leverage any custom class implementing those interfaces, talking to any LLM

Can we extract the ITextEmbeddingGeneration and ITextGeneration interfaces into a separate Nuget package so that AI providers can implement them on their own?

@geffzhang the integration with llamasharp should look something like this:
using Microsoft.SemanticMemory;
using Microsoft.SemanticMemory.AI;
using Microsoft.SemanticMemory.MemoryStorage.Qdrant;

public class Program
{
    public static void Main()
    {
        var llamaConfig = new LlamaConfig
        {
            // ...
        };

        var openAIConfig = new OpenAIConfig
        {
            EmbeddingModel = "text-embedding-ada-002",
            APIKey = Env.Var("OPENAI_API_KEY")
        };

        var memory = new MemoryClientBuilder()
            .WithCustomTextGeneration(new LlamaTextGeneration(llamaConfig))
            .WithOpenAITextEmbedding(openAIConfig)
            .WithQdrant(new QdrantConfig { /* ... */ });

        // ...
    }
}

public class LlamaConfig
{
    // ...
}

public class LlamaTextGeneration : ITextGeneration
{
    private readonly LlamaConfig _config;

    public LlamaTextGeneration(LlamaConfig config)
    {
        this._config = config;
    }

    public IAsyncEnumerable<string> GenerateTextAsync(
        string prompt,
        TextGenerationOptions options,
        CancellationToken cancellationToken = new())
    {
        // ...
    }
}

The vector size is handled automatically, as long as it is consistent across executions.
The code above is using:
    <PackageReference Include="LLamaSharp" Version="0.5.1"/>
    <PackageReference Include="Microsoft.SemanticMemory.Core" Version="0.3.231009.6-preview"/>

@xbotter it should be possible to use custom logic with the existing nuget.

Thanks to the great work from @xbotter, LLamaSharp is about to have an integration for kernel-memory. I'll appreciate it if someone of KM developers could help to review this PR.

@xbotter

Can we extract the ITextEmbeddingGeneration and ITextGeneration interfaces into a separate Nuget package so that AI providers can implement them on their own?

done 👍 see v0.18 / PR #189


How to use GMS for more than two images of the same object?

I want to use GMS for Veri dataset where each vehicle has multiple images in different angles, cameras and lighting conditions. How can I use it for this scenario?

您的邮件我已收到！谢谢！！


Ignore another typo as it's in the changelog

We should perhaps add an ignore lines file

@peternewman Thanks!

We should perhaps add an ignore lines file

As in ignoring specific lines of specific files? Seems like that would be hard to maintain, especially for the changelog.

@peternewman Thanks!

We should perhaps add an ignore lines file

As in ignoring specific lines of specific files? Seems like that would be hard to maintain, especially for the changelog.

Yeah, although it currently means if someone adds the word sculpter in another file it won't flag it as it's ignored globally. This was we'd explicitly just skip it in the changelog and in terms.
Presumably it doesn't change in the changelog, someone adds it and so we'd add the line once.

@peternewman I'm not sure I understand. If it's easy to demo or illustrate this then that might help 😄

Presumably it doesn't change in the changelog, someone adds it and so we'd add the line once.

I mean if we say "ignore 'sculpter' on line 302 in CHANGELOG.md" and then add release notes for the next version so suddenly line 302 becomes line 427, then that's not very helpful.

@peternewman I'm not sure I understand. If it's easy to demo or illustrate this then that might help

Presumably it doesn't change in the changelog, someone adds it and so we'd add the line once.

I mean if we say "ignore 'sculpter' on line 302 in CHANGELOG.md" and then add release notes for the next version so suddenly line 302 becomes line 427, then that's not very helpful.

It's more like ignore:
* Rename sculpter to sculptor ([#4504], thanks [@simonpoole])
So whenever ^line$ matches that pattern, it doesn't test it. Which technically means if thanks was misspelled as thaks and we didn't notice it would never complain.

Something like https://github.com/openstreetmap/iD/pull/8244 :smile:


Abort request if the timeout is reached. (Fixes #312)

Setting the request timeout does not actually set some timeout for the socket (connect or read timeout), it actually just sets a callback to be made after the request is made if it has not finished by the time has passed. Since there was no actual event handler nothing was ever called, so now when the timeout is reach the connection is abort()ed which also according to the docs destroys the connection as well.
Note that I use setTimeout(...) because it seemed that .on('timeout', ...) was not working or doing anything at all.

Not sure why the msecs is not an Integer error is appearing. The other error it seems that the collector token is not valid?

What happens if the timeout's null/undefined/0?

What happens if the timeout's null/undefined/0?

Not sure, the default config specifies that the timeout is 5000ms so I am not sure why this is messing up? Do the tests use the default config or is something else done?

Do the tests use the default config or is something else done?

Not sure! Let me take a look...

There is the other error where it cannot find metrics-api-staging.iopipe.com, regular metrics-api.iopipe.com works. Guessing the DNS entry for that no longer exists?

metrics-api-staging.iopipe.com

metrics-api.iopipe.com works. Guessing the DNS entry for that no longer exists?

There are DNS entries for both, but they map to different elastic beanstalk instances:
metrics-api maps to metrics-api-go.us-east-1.elasticbeanstalk.com, while metrics-api-staging maps to the apparently not working iopipe-org-collector-staging.us-west-2.elasticbeanstalk.com

metrics-api-staging.iopipe.com

metrics-api.iopipe.com works. Guessing the DNS entry for that no longer exists?

There are DNS entries for both, but they map to different elastic beanstalk instances:
metrics-api maps to metrics-api-go.us-east-1.elasticbeanstalk.com, while metrics-api-staging maps to the apparently not working iopipe-org-collector-staging.us-west-2.elasticbeanstalk.com

Indeed. I think this is a separate issue from what is in the PR, something specific to the service itself.

The test now has one failed which is the one with the msecs error.

@XerTheSquirrel This appears to be a misunderstanding of how a network timeout works. If the network timeout was one second, it wouldn't timeout after one second elapses, like in a setTimeout. Instead, it would timeout if the connection hangs or becomes unresponsive for one second.

@XerTheSquirrel This appears to be a misunderstanding of how a network timeout works. If the network timeout was one second, it wouldn't timeout after one second elapses, like in a setTimeout. Instead, it would timeout if the connection hangs or becomes unresponsive for one second.

Are you referring to the sockets in NodeJS or for IOpipe itself?

@XerTheSquirrel NEvermind, I misread the diff last night. Read the https docs and you're indeed right that setting timeout only registers a timeout event but doesn't actually abort.

Okay that last commit fixed the issue.

Regarding the line you linked to, that config object could be passed through the config parser. This is what happens with normal agent execution, so better the tests reflect that . But if the config parser is getting a network timeout that can't be parsed/cast as an integer, it should be ignore and the default value used.


Why do you disable App Transport Security on iOS?

https://github.com/MohGovIL/hamagen-react-native/blob/056350668fdd3b1411ae481f733a3720aa127ad7/ios/codeAgainstCorona/Info.plist#L31-L43
This basically says, lets disable ATS for everything except localhost 🤔

NSAllowsArbitraryLoads already disables ATS, and adding localhost is redundant.
The correct way to disable ATS for localhost is described here. NSAllowsLocalNetworking is supported on iOS 10.0+.
Now, if the app requires all http connections to be insecure, that's another story.


I want to add a simple react project which is a clone of Trello/Kanban board

Project title
A simple Trello clone using react dnd
Project Description
A Kanban board using React.js and react-dnd lib.
Stack:
And in order to tick the check box just but x inside them for example - [x] like this. Please delete options that are not relevant.

[x ] Html
[x ] CSS
[x ] JavaScript
[x ] ReactJS

/assign

I have created a ew pull request but idk why it is not showing the files changed again, I followed the same instructions on the main repo. I'll try once again.

@TANYA-CHAN are you making a new PR?

I did make a new PR as it directed me to do so.


Limit engine correctness check

Resolves issue #54. I assume the problem appears when there are floating point errors during serialization, so I added a function to check the subset relation with floating error tolerance.

@ttt-77 Do you mean to add a check like this?

Yes. But can you refactor the code? Don't use three functions.

@ttt-77 Is this better?

I expanded the outer two layers into loops to make it more readable, but I think retaining the innermost all() function won't affect readability much and simplifies the code.

@ttt-77 Could you please review this? I added the test mentioned by issue #55 to this PR as well. Since no real index is provided for the jackson dataset, I compared the inference count when using the random proxy score and the accurate proxy score generated from the ground truth result.

Can you split the new commit into another PR?


add p0lyn0mial to OWNERS

/assign @bertinatto @deads2k

Dropping a comment here so we link back to it.
remember that

you're the reviewer of last resort, so you may have to learn something pretty quickly
it's important to say "no" to things that don't have generic purpose that will force people to use the "one" copy.  Many helpers seem useful, but in practice never gain adoption
keep the dep tree small because diamond dependencies from this repo are awful.  it's especially important to avoid vendoring APIs because they depend on alternative levels of k8s.io/apimachinery that can conflict in ways that prevent kube updates from landing.


cloudn`t join the federation v2 by the kubeadm

when i use the kubeadm build two cluster and  helm install the kubefed v2, i think the operation was no trouble,then i use the right version kubefedctl to join my cluster to federation and get a wrong, i`m sure that i have config the context and i can access multi-cluster by remote kubectl,cloud the user guide add the step 4 build federation v2 by use the kubeadm? >.<

/triage support

@lidongdong536 Can you please clarify the versions of the software involved in the problem you are experiencing?

helm
kubefed helm chart
kubefedctl
kubernetes (and the deployment platform i.e. kind/minikube/gke/etc)

It would also be helpful to see the error text reported by kubefedctl when you attempt to join a cluster.


lineOverflow:'truncate' cannot be implemented properly

Version
5.1.2
Steps to reproduce
xAxis: [
{
type: "category",
axisTick: {
alignWithLabel: true,
},
axisLabel: {
show: true,
width: 100,
height:30,
overflow: "break",
lineOverflow:'truncate',
interval: 0,
showMinLabel: false,
align: "center",
},
},
],
What is expected?
Displaying ellipsis by truncation of the height set
What is actually happening?
Set height text overflow, ellipsis not displayed

Duplicate of #14506


sbt-native-package and .deb files

Cool plugin. I'm having some trouble with the sbt-native-packager though. I'm trying to publish my .deb file (sbt debian:package-bin), located in /target/[name]-[ver].deb.
I've used a couple of variations of the configuration below, but it seems to always want to publish as me (not the organization I have specified, "bigsense") and it always published the .jar files.
Is there a way to publish the .deb files to bigsense/trusty (a debian repo) on bintray?
import _root_.sbt.Keys._
import com.typesafe.sbt.SbtNativePackager.packageArchetype
import com.typesafe.sbt.SbtNativePackager.Universal
import NativePackagerKeys._

name := "bigsense"

version := "0.2alpha"

scalaVersion := "2.10.3"

resolvers += "couchbase" at "http://files.couchbase.com/maven2/"

libraryDependencies ++= Seq(
    "org.springframework" % "spring-beans" % "3.0.5.RELEASE",
    "org.springframework" % "spring-context" % "3.0.5.RELEASE",
    "org.springframework" % "spring-core" % "3.0.5.RELEASE",
    "org.springframework" % "spring-expression" % "3.0.5.RELEASE",
    "org.springframework" % "spring-asm" % "3.0.5.RELEASE",
    "org.springframework" % "spring-aop" % "3.0.5.RELEASE",
    "cglib" % "cglib" % "2.2.2",
    "aopalliance" % "aopalliance" % "1.0",
    "commons-logging" % "commons-logging" % "1.1.1",
    "commons-codec" % "commons-codec" % "1.6",
    "commons-io" % "commons-io" % "2.4",
    "net.sourceforge.jtds" % "jtds" % "1.2.4",
    "com.jolbox" % "bonecp" % "0.7.1.RELEASE",
    "org.slf4j" % "slf4j-log4j12" % "1.6.1",
    "org.scalaj" %% "scalaj-collection" % "1.5",
    "bouncycastle" % "bcprov-jdk15" % "140",
    "postgresql" % "postgresql" % "9.1-901.jdbc4",
    "mysql" % "mysql-connector-java" % "5.1.30",
    "org.eclipse.jetty" % "jetty-server" % "9.1.4.v20140401",
    "org.eclipse.jetty" % "jetty-servlet" % "9.1.4.v20140401",
    "org.eclipse.jetty" % "jetty-webapp" % "9.1.4.v20140401",
    "org.rogach" %% "scallop" % "0.9.5",
    "org.apache.tomcat.embed" % "tomcat-embed-core"         % "7.0.53" ,
    "org.apache.tomcat.embed" % "tomcat-embed-logging-juli" % "7.0.53" ,
    "org.apache.tomcat.embed" % "tomcat-embed-jasper"       % "7.0.53" ,  //JSP (remove?)
    "org.apache.commons" % "commons-compress" % "1.6"
)

licenses := Seq("GPL-3.0" -> url("http://www.gnu.org/licenses/gpl-3.0.html"))

//publishing

bintray.Keys.bintrayOrganization in bintray.Keys.bintray := Some("bigsense")

bintray.Keys.repository in bintray.Keys.bintray := "trusty"

seq(bintrayPublishSettings:_*)

//packaging

packageArchetype.java_server

packageDescription := "web service designed for consuming and reporting data from sensor networks"

packageSummary := "BigSense is a web service designed to process and report data from sensor networks. (http://bigsense.io)"

maintainer := "Sumit<EMAIL_ADDRESS>
fork in run := true

Twirl.settings

I have got a little further down this route using the following
bintrayPublishSettings

repository in bintray := "my-repo"

bintrayOrganization in bintray := Some("hindsightsoftware")

SettingsHelper.makeDeploymentSettings(Debian, packageBin in Debian, "deb")

publish <<= publish.dependsOn(publish in config("debian"))

Unfortunately publishing fails after uploading the file because Bintray requires the Debian distribution, component and architecture: https://bintray.com/docs/api/#_debian_upload

going to look more into this in upcoming releases

sbt-bintray is now an auto-plugin and the setting application order is therefore fixed. As for the deb publishing, sbt-native-packager has evolved ever since and this needs to be tried again to see if the problem is still there. Closing this for now.


Include user space emulation dependency directly in docker-compose file

This fully eliminates the need for systemd services.

Thanks :)


Adds implantation for Path::split()

Summary

This PR is a bugfix
It does the following (modify list as needed):

Modifies/refactors Axom Path by adding implementation for Path::split().
Fixes #752

Sorry @kennyweiss we stepped on each other when adding reviewers.

gitlab failed for an unrelated and known reason. i restarted it.


C++ code is not properly highlighted

Currently C++ code doesn't highlight well. Only a few keywords are get highlighted compare to other language highlighters, including C. I tested it on Mac, Windows and Linux with and without LSP installed and they all give the same outcome.

fixed via #957 & https://github.com/lapce/lapce/pull/1145


Edition based element visibility support

@wladimiiir Can you mock up a switch button as well? I know we don't have a designer right now, so whatever you can come up with.

@wladimiiir Can you mock up a toggle button as well? I know we don't have a designer right now, so whatever you can come up with.

I have added such toggle button to Getting Started page.

Closing as this is covered in https://github.com/Kong/docs.konghq.com/pull/2084.


[RFC] Limit number of SCSS vars to certain properties

Imho many SCSS vars should be removed for the sake of easier maintenance.
I suggest keeping:

color
font-size
padding
margin
background-color (if present)
drop-shadow (if present)

And add new one - order for child elements.

In general, I like the idea. Some vars allow too fine-grained changes.
But I wouldn't limit to only those you mentioned. For example, $bullet-border-radius allows switching from rounded to rectangular bullets which seems like a useful modification for users.
Maybe we need to decide from case to case ("from SCSS var to SCSS var")?

@EduardDopler good point ;) Yeah I think there might be some cases when we would like to provide more vairiables depending on a component but above should be treated as a rule of thumb. We definitely have too much variables. The reasoning behind introducing them was to have variable-based visual configuration that is not tied to implementation details like markup so (in theory ^^) it's more bulletproof in case of updates

As @EduardDopler said, Imo it's very relative, maybe we should discuss it individually for some components before trying a full refactor and new composition rules..

Ok, I will start proposing a PR's. Maybe we can somehow divide those components between ourselves?
Also we should start with introducing CSS vars instead of SCSS ones for components. It's important to allow scoped overrides.
Also we will probably need easier naming convention that is not tied to BEM anymore. I'll ry to figure out something in the upcoming days and present you as PR with RFC :)

@filrak we can divide the components, just wait your PR to discuss and to have more defined conventions.
About CSS vars for components, I like the idea, just not sure about performance with many CSS vars.

@leomp12 i think at the end user can translate them to "normal" css on production. I didn't know css vars are a performance concern though. Do you have any date on their impact?

Nope, I'm not an expert, it's more empirical, but we can find some articles searching a little...
Assuming on average 5 vars per component, we may have more than 350 CSS vars :open_mouth:
Never seen anything close to it to use as a parameter.
Maybe we can keep with SCSS and use CSS vars just for colors (or maybe some more properties, but not all suggested)?
I don't know if we can translate it, do you know any tools that do this?

Maybe we can keep with SCSS and use CSS vars just for colors (or maybe some more properties, but not all suggested)?

I would not mix two approaches, it's a recipe for headache and confusion the more we grow.

And add new one - order for child elements.

I think this deserve a separate discussion RFC ? what do you guys think ?

I would not mix two approaches, it's a recipe for headache and confusion the more we grow.

@DonNicoJs You're right, bad idea :stuck_out_tongue_winking_eye:

I think this deserve a separate discussion RFC ? what do you guys think ?

I think you're right again haha

@leomp12 we can translate it, there are webpack loaders for this.
Imho all configuration shoudl be inscss vars to enable scoped configurations

add to #733


Aarnq/charts script

What this PR does / why we need it:
Fixes #1639
This is a work in progress to improve the experience of working with upstream charts.
It adds an index (a helmfile state file) of the upstream charts with their repositories so one can list (check for updates), pull (update), diff (on different aspects of any chart version in the repo), and verify the checksum of the chart to ensure it hasn't been tampered with.
The same index is used as reference for the rest of the state files so they are in sync. And the script will only pull the version stated in the index. One would need to update it to change the requested version.
I also moved upstream charts to highlight which repository they come from.
Special notes for reviewer:
I also have the idea of using packed charts, extracting only the values file to have as a reference and for reviewer to have as a baseline for changes.
But I don't know if that would degrade the review process too much. Though the way I see it it help to simplify the review process by allowing us to focus only on our integration of components, but it would make it more involved for a reviewer to actually inspect the templates/manifests as that would only be able to be done locally.
Checklist:

[x] Added relevant notes to WIP-CHANGELOG.md
[x] Proper commit message prefix on all commits
[ ] Updated the public facing documentation
Is this changeset backwards compatible for existing clusters? Applying:

[x] is completely transparent, will not impact the workload in any way.
[ ] requires running a migration script.
[ ] will create noticeable cluster degradation.
E.g. logs or metrics are not being collected or Kubernetes API server
will not be responding while upgrading.
[ ] requires draining and/or replacing nodes.
[ ] will change any APIs.
E.g. removes or changes any CK8S config options or Kubernetes APIs.
[ ] will break the cluster.
I.e. full cluster migration is required.

Chart checklist (pick exactly one):

[x] I upgraded no Chart.
[ ] I upgraded a Chart and determined that no migration steps are needed.
[ ] I upgraded a Chart and added migration steps.

Pipeline config (if applicable)
If you change some config options (e.g. add/rename variable or change the default value) you may need to update the config used by the pipeline in pipeline/config.

Will merge after all current chart upgrades are in.

I realised that I didn't need to tie the format of the index to helmfile, and the templating to generate release templates is much simpler than the recursive load.

Charts failing verification:

aquasecurity/trivy-operator
goharbor/harbor
kubernetes-ingress-nginx/ingress-nginx
prometheus-community/kube-prometheus-stack

I will let them be and it will be resolved next time we upgrade them with this new method.


Update Files For new release

Note: v0.1.0 because we added sync/async which is a substantial change in the interface? Not sure about this
Whoops: one sec fix versions

Yeah, v0.1.0 is good for me because the changes of GoTrue Client are breaking changes.

I will update to gotrue v0.3.0 and fix the wrap


Sudden step failure without any change

Starting yesterday, this step for my project began failing on installing nokogiri:
An error occurred while installing nokogiri (1.10.10), and Bundler cannot
continue.

In Gemfile:
  rails was resolved to <IP_ADDRESS>, which depends on
    actioncable was resolved to <IP_ADDRESS>, which depends on
      actionpack was resolved to <IP_ADDRESS>, which depends on
        actionview was resolved to <IP_ADDRESS>, which depends on
          rails-dom-testing was resolved to 2.0.3, which depends on
            nokogiri

This happened without any change to my repo, so I'm assuming there was an upstream change that caused the failure? Did I miss a deprecation or mandatory upgrade?

It looks like this might have been caused by a Ruby version change. @jeffreytse is there any way to specify the Ruby version on this step?

Hi @mattppal
Thanks for the issue, currently, we can't specify the Ruby version, but I will try to bring this feature in. : )
Thanks & Regards

It looks like this might have been caused by a Ruby version change. @jeffreytse is there any way to specify the Ruby version on this step?

For now, with the latest version v0.6.0, you can specify the Ruby version via the option ruby_ver, hope this helpful.


[DO NOT MERGE] Remove planned tests banner and content

https://www.pivotaltracker.com/story/show/178622042
We should keep the page in case it's been indexed or bookmarked,
as well as to confirm what the future plans are.

We should merge this during the demo, so the content is up-to-date by the time the alert is over.


Fix 745 - Upload build artifacts

How do we retrieve the artifacts once they're uploaded?

Why would you do that ?

You click da button

documentation generator goes brrrrrrrrr
Is this ready for merge?

Yep


Language preferences are not preserved

Describe the bug
https://github.com/antfu/vitesse/assets/38343778/ec6c2832-eb59-4f59-b915-399c19b48788
As you can see in the video, I switched the colour theme to bright colours, as well as switching the language
And then refreshed the page
After that, the colour theme is still bright, but the language is back to English
So, I think we should make the language preference persistent in the browser as well
Reproduction
https://vitesse.netlify.app/
System Info
System:
    OS: macOS 14.0
    CPU: (8) x64 Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz
    Memory: 681.03 MB / 32.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 16.16.0 - ~/.nvm/versions/node/v16.16.0/bin/node
    Yarn: 1.22.18 - /usr/local/bin/yarn
    npm: 9.8.1 - ~/.nvm/versions/node/v16.16.0/bin/npm
    pnpm: 8.6.12 - ~/.nvm/versions/node/v16.16.0/bin/pnpm
  Browsers:
    Chrome: 118.0.5993.117
    Safari: 17.0

Used Package Manager
pnpm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

Hi its your preference to add if you want to
`import type { Locale } from 'vue-i18n'
import { createI18n } from 'vue-i18n'
import { useStorage } from '@vueuse/core'
import type { UserModule } from '~/types'
const state = useStorage('general-settings', { lang: 'en' })
// Import i18n resources
// https://vitejs.dev/guide/features.html#glob-import
//
// Don't need this? Try vitesse-lite: https://github.com/antfu/vitesse-lite
const i18n = createI18n({
legacy: false,
locale: '',
messages: {},
})
const localesMap = Object.fromEntries(
Object.entries(import.meta.glob('../../locales/.yml'))
.map(([path, loadLocale]) => [path.match(/([\w-]).yml$/)?.[1], loadLocale]),
) as Record<Locale, () => Promise<{ default: Record<string, string> }>>
export const availableLocales = Object.keys(localesMap)
const loadedLanguages: string[] = []
function setI18nLanguage(lang: Locale) {
state.value.lang = lang
i18n.global.locale.value = lang as any
if (typeof document !== 'undefined')
document.querySelector('html')?.setAttribute('lang', lang)
return lang
}
export async function loadLanguageAsync(lang: string): Promise {
// If the same language
if (i18n.global.locale.value === lang)
return setI18nLanguage(lang)
// If the language was already loaded
if (loadedLanguages.includes(lang))
return setI18nLanguage(lang)
// If the language hasn't been loaded yet
const messages = await localesMaplang
i18n.global.setLocaleMessage(lang, messages.default)
loadedLanguages.push(lang)
return setI18nLanguage(lang)
}
export const install: UserModule = ({ app }) => {
app.use(i18n)
loadLanguageAsync(state.value.lang)
}
`


please help me to slove this error

sc <- spark_connect(master = "spark://local:8880",  config = spark_config(), version = "2.0.0")
Error in force(code) :
Failed while connecting to sparklyr to port (8880) for sessionid (4646): Gateway in port (8880) did not respond.
Path: C:\home\spark\bin\spark-submit2.cmd
Parameters: --class, sparklyr.Backend, "C:\Users\bobinks\Documents\R\R-3.3.2\library\sparklyr\java\sparklyr-2.0-2.11.jar", 8880, 4646

---- Output Log ----
---- Error Log ----
In addition: Warning messages:
1: In normalizePath(path.expand(path), winslash, mustWork) :
path[1]="C:\home\spark/bin/spark-submit2.cmd": The system cannot find the path specified
2: running command '"C:\home\spark\bin\spark-submit2.cmd" --class sparklyr.Backend "C:\Users\bobinks\Documents\R\R-3.3.2\library\sparklyr\java\sparklyr-2.0-2.11.jar" 8880 4646' had status 127

@neerajkr666 try the following; it may resolve the issue.
set JAVA_HOME, SPARK_HOME and HADOOP_HOME.
then sc <- spark_connect(master = "local")

@neerajkr666 try with the latest version of sparklyr, should be much better, you could also validate C:\home\spark/bin/spark-submit2.cmd exists.


compiling on arm

trying to test opensteam on aarch64/arm64 and it errors out at the -m32 parts because you have to use another toolchain (arm-linux-gnueabihf) since the aarch64 gcc comp doesnt support m32

You can edit the CMakeLists and yank out anything related to steamserviced, as it's the only 32-bit component.

It'd be easiest just to yank it out, as it's outdated anyway.

Did you clone this repo with submodules?
AKA git clone https://github.com/Rosentti/opensteamclient.git --recursive
You can also clone them now with:
git submodule init
git submodule update

Seems googleable. I think I've read about that before, maybe missing some headers or something

"Saw the issue when your source files are contained in directory whose name contains colon (:)."
Strange, considering I don't have this issue.

I suppose you can try with bundled protobuf, it's a cmake arg

-DSTATICPROTOBUF=1

@Rosentti

Do you have the very newest Qt? I believe that is a new Qt feature

well im on debian sid/unstable and running latest qt there soooo yeah i think i am

You can just wrap the std::strings with QString()

Also, Arm and other non x84-64 platforms may become way easier to support with the C# version, though they still expect some natives.

kay ill just wait then

The C# branch can now login with a QR code. If you want, you can test builds from GitHub Actions. Run the whole thing with Box64 or whatever and it should work.
Also, was re-reading this thread and you mentioned binfmt. I don't think binfmt affects dlopen:ed libraries though so it would be pretty useless in this case. I could be wrong, so if you want you can try running the C# build with dotnet ClientUI.dll or recompiling.


Implement

Hi, I noticed that nnet3 is implement in pykaldi. Is there any chance to also include nnet3bin (kaldi)? Furthermore, can xvector pipeline be implemented in pykaldi?  Thank you very much.

We don't have any plans of implementing executables replicating the functionality of Kaldi command-line programs. Do you have a specific need that is not met by the Kaldi executables?
The xvector testing pipeline (not training) can (probably) be implemented in PyKaldi, but I don't know what it would bring to the table beyond the native implementation in Kaldi. Again, do you have a specific need that is not met by the Kaldi xvector pipeline?

We plan to fine tune the network, or make some attempts on implementing a different loss function (e.g. center loss) to substitute softmax. We thought Python is more friendly for experiments like these.

What you are saying makes sense but I don’t quite follow how reimplementing kaldi executables in pykaldi would help you achieve that.

Hey I am closing this issue but feel free to reopen it if you think there is something we can do to help.


fixing improper importing in geo.py

while using conda environment, we must import both osr and gdal from osgeo.
from osgeo import osr
from osgeo import gdal

fixing geo.py
from osgeo import osr
from osgeo import gdal


Edit Mapping

The code should provide a method to output the edit script or edit mapping. It would be a vector of the operations (insert, remove, modify) needed to transform T1 to T2.
An alternative would be to leave some comments in the code for how others could do this.

That would be a cool feature to have.
You'd have to make some alterations to the treedist function. Basically, on each recursion, you'd note the current operation just performed and on what nodes and then store this mapping in an ever growing array.
At the end, you'd just return the array of the minimum distance mappings.
Do you want to work on this feature and I'll merge in your branch?

I tried the way you described, but soon realized it wouldn't work that way since treedist is called for many node pairs, and not just the ones that end up being the min edit script.
I did end up finding a solution that worked, though. It's a bit more involved, but I created a new method, let's call it getEditScript. getEditScript will call a slightly modified treedist() to get the distance across sub-trees while it backtracks the forestdist 2D array produced by treedist(). The solution is similar to https://github.com/DatabaseGroup/apted/blob/master/src/main/java/distance/APTED.java : computeEditMapping(). Not sure when I'll have time to clean it up for merging.

Alright, whenever you do want to push your code, I will be sure to review it and proofread it!


Extension causes high cpu load

Issue Type: Performance
Extension Name: vscode-eslint
Extension Version: 1.8.0
OS Version: Windows_NT x64 10.0.17763
VSCode version: 1.31.0

:warning: Make sure to attach this file from your home-directory: C:\Users\Islam_Ahmed\dbaeumer.vscode-eslint-unresponsive.cpuprofile.txt :warning:
Find more details here: https://github.com/Microsoft/vscode/wiki/Explain:-extension-causes-high-cpu-load

@islamideveloper do you sill have the profile. Without it there is little I can do.

Dups #620


ModuleNotFoundError: No module named 'st_graph'

I received the following error while trying to run "python train.py' in the Group-Obstacle-LSTM/social-lstm-pytorch-group/social_lstm directory.
ModuleNotFoundError: No module named 'st_graph'
Any idea why I might be receiving this error? Are there any additional requirements needed to run the code that is not included in the README?

I received the following error while trying to run "python train.py' in the Group-Obstacle-LSTM/social-lstm-pytorch-group/social_lstm directory.
ModuleNotFoundError: No module named 'st_graph'
Any idea why I might be receiving this error? Are there any additional requirements needed to run the code that is not included in the README?

Have you solve this problem? I also received this error. But I can't found this module too.


Paper-only event skeleton horse trap and EntityTrapped properties for SkeletonHorses

Event
skeleton horse trap
Triggers when a player gets too close to a trapped skeleton horse and triggers the trap.
Paper only
Contexts

<context.entity> - the skeleton horse
<context.players> - the players involved in the trap

Property (for Spigot and Paper)
EntityTrapped
For SkeletonHorses. When they are trapped, they can trigger the skeleton horse trap with the lightening and all that jazz.
They also have a trap time. If the skeleton horse is trapped, the trap time will increment until it reaches 18,000 ticks and will despawn automatically.
Tags

<EntityTag.trapped> - if the skeleton horse is trapped or not
<EntityTag.trap_time> - returns the trap time

Mechanisms

trapped - sets if the skeleton horse is trapped or not
trap_time - sets the trap time. setting to 18000t will despawn it on the next tick

Requested by LeafyMitsuwa on Discord
🦴🦴🦴
(P.S. I've never made a property before. Hope I did it right! :D)

Done 👍

Done 👍


Jewel and ClipBead

Hi guys,
Some context
I am trying to implement the CSS clip-path property in my application images ...
https://developer.mozilla.org/es/docs/Web/CSS/clip-path
My intention is to use the Circle () function without arguments to give the images an Avatar look.
.avatar{
    -webkit-clip-path: circle();
    clip-path: circle();
}

The problem
When trying to compile the project, the SDK cannot solve it if we introduce it to the CSS of the application.
My approach
I am currently using Jewel controls and have seen the ClipBead bead
https://royale.apache.org/asdoc/index.html#!org.apache.royale.svg/ClipBead
I haven't found much information about the bead in the API, nor have I found any usage examples in the TourDeJewel project or in any other SDK sample projects.
Is this bead compatible with Jewel controls? How should I use it?
I've been looking at the definition of the bead, and I've seen that it allows passing a path as an argument that will be applied to the Sprite.
Is there any chance of being able to directly pass the Circle () function the same way we do in CSS?

Sorry for the late answer. We're using it with org.apache.royale.svg.Image. If you can use it with that, you can do something like:
<svg:Image src="...">
svg:beads
<svg:ClipBead id="myClipBead"/>
</svg:beads>
</svg:Image>
And then:
var myPath:PathBuilder= new PathBuilder();
myPath.draw...
myClipBead.path  = myPath.
I'm not sure this is what you are looking for - specifically I'm not sure if we have a simple way to create a circle with PathBuilder. It might be better to try to create your own bead.


using OPTION with a UDF in the FromSql Method

When running a SQL Function via the FromSql Method I've been having issues with Recursion.  Basically a have a function that runs recursively and works out Future Due Dates.
Sometimes this function has to run a recursion more than 100 times (the default) and I would like to apply the OPTION (MAXRECURSION 2000) statement to the end of the SQL allowing the Function to run up to a 1000 times.  Unfortunately this gives me an exception saying OPTION is invalid
So running the following code works
query = query.FromSql("SELECT * FROM udfSomeFunction ({0})", DateTime.Now());
but when I add the option statement to it
query = query.FromSql("SELECT * FROM udfSomeFunction ({0}) OPTION (MAXRECURSION 2000)", DateTime.Now());
I get an exception
I'm running the 1.0.1 Version of Entity Framework Core.

I played around with this, and it looks like it works fine when you are just executing a SQL query, but fails when you compose on it with LINQ.
using Microsoft.EntityFrameworkCore;
using System;
using System.Linq;

namespace FromSql
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var db = new BloggingContext())
            {
                db.Database.EnsureDeleted();
                db.Database.EnsureCreated();
                db.Database.ExecuteSqlCommand("CREATE FUNCTION [dbo].[SearchBlogs] (@term nvarchar(200)) RETURNS TABLE AS RETURN (SELECT * FROM dbo.Blogs WHERE Url LIKE '%' + @term + '%')");
                db.Blogs.Add(new Blog { Url = "http://sample.com/blogs/fish" });
                db.Blogs.Add(new Blog { Url = "http://sample.com/blogs/catfish" });
                db.Blogs.Add(new Blog { Url = "http://sample.com/blogs/cats" });
                db.SaveChanges();

                var term = "cat";

                var blogs = db.Blogs
                    .FromSql("SELECT * FROM dbo.SearchBlogs({0}) OPTION (MAXRECURSION 2000)", term)
                    .OrderBy(b => b.BlogId)
                    .ToList();

                foreach (var blog in blogs)
                {
                    Console.WriteLine(blog.Url);
                }
            }
        }
    }

    public class BloggingContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=Repro;Trusted_Connection=True;");
        }
    }

    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }
    }
}

Here is the generated SQL
exec sp_executesql N'SELECT [b].[BlogId], [b].[Url]
FROM (
    SELECT * FROM dbo.SearchBlogs(@p0) OPTION (MAXRECURSION 2000)
) AS [b]
ORDER BY [b].[BlogId]',N'@p0 nvarchar(4000)',@p0=N'cat'

Full exception details
System.Data.SqlClient.SqlException was unhandled
  Class=15
  ErrorCode=-2146232060
  HResult=-2146232060
  LineNumber=3
  Message=Incorrect syntax near the keyword 'OPTION'.
  Number=156
  Procedure=""
  Server=(localdb)\mssqllocaldb
  Source=.Net SqlClient Data Provider
  State=1
  StackTrace:
       at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
       at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
       at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
       at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
       at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
       at System.Data.SqlClient.SqlDataReader.get_MetaData()
       at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
       at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
       at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
       at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
       at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
       at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
       at System.Data.Common.DbCommand.ExecuteReader()
       at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute(IRelationalConnection connection, String executeMethod, IReadOnlyDictionary`2 parameterValues, Boolean openConnection, Boolean closeConnection)
       at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteReader(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues, Boolean manageConnection)
       at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable.Enumerator.MoveNext()
       at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.<_ShapedQuery>d__3`1.MoveNext()
       at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.<_TrackEntities>d__15`2.MoveNext()
       at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.MoveNext()
       at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
       at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
       at FromSql.Program.Main(String[] args) in C:\Code\Demo-EFCore\StartingSourceCode\FromSql\Program.cs:line 23
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException:

My understanding is that (unlike table hints) query hints such as OPTION (MAXRECURSION n)
apply to the whole query and can only be placed at the end of the statement. So they are not really part of the SELECT statement, or at least they are not composable in the same way.
It sounds like there is a good opportunity for building a general query hint feature that can be used to flow provider specific hints into the SQL or an even much simpler ability to append arbitrary text as a query terminator.
In the meanwhile the work around is to write the whole query in SQL, e.g. for @rowanmiller's example above:
var blogs = db.Blogs
    .FromSql(
        @"SELECT [b].[BlogId], [b].[Url]
        FROM dbo.SearchBlogs({0}) AS [b]
        ORDER BY [b].[BlogId] OPTION (MAXRECURSION 2000)",
        term)
    .ToList();

Opened https://github.com/aspnet/EntityFramework/issues/6717 to track the idea of being able to append SQL to the end of a query.


Added opening of recommended apps

The title pretty much explains I've added the ability to open apps from the recommended apps on the start menu

That was kept disabled for a reason. I wanted to add different types of things like files, songs, photos in the list too, which needed a better way of handling.

That was kept disabled for a reason. I wanted to add different types of things like files, songs, photos in the list too, which needed a better way of handling.

Ah ok fair enough


Work flow change - link samples to chart types

Hi Guys
I've been circulating rawcharts to colleagues who haven't any experience with d3 or data vis before and while they like the capabilities they found it difficult to get started, and have feedback the following:
When new people start using rawcharts, It is difficult to know which example data sets work well with which charts,  you seem to need to know the data structures for the charts before you start, which make it difficult for people who are new to get started.
The workflow at the moment is Select Example Data / add your own -> Select chart type -> Configure
Maybe swap around to Select Chart Type -> Add Data / Select Example Data -> Configure
This would mean that you can then show the sample data sets that work best for a selected Viz - and even maybe have a default config for the data so that it shows an output sooner..

In v2 we added the suggested visual models to each datasets sample


Feature Request: Remove startsAt and endsAt filter restrictions

What does that mean?
Should I query 4 * ~30 days if I want all data?
Or do you keep 4 full month shards?
Or do you keep only 3 and a half if the current month isn't over yet?
Will you change the behavior one day?
How do I implement the logic in my client? How do I keep my code current?
In combination with #249, #248, #271 and #236, my code is turning into a mess. It should be KISS.
For reference, here are the relevant parts of my code:
  0     // API requires maximum time interval of 4w
  1     // return jobs [payload, payload, …] with fixed createdAts
  2     getSplitGrabs(payload, start, end) {
  3         let last_start = new Date(start.getTime()),  // last match in database or static default from environment variable
  4             payloads = [];
  5         // loop forwards, adding 1 month until we passed NOW
  6         while (last_start < end) {
  7             /* API does not always support full-month intervals
  8             let this_end = new Date(last_start.getTime() - 1000);
  9             this_end.setMonth(this_end.getMonth() + 1);
 10             */
 11             let this_end = new Date(last_start.getTime() + (4 * 60*60*24*7*1000));
 12             let this_start = new Date(last_start.getTime());
 13             // query from `start` to `start + 1 month - 1s`, hitting the full month
 14
 15             if(this_end > end) this_end = end;  // API errors if createdAt-end is later than now()
 16             let pl = JSON.parse(JSON.stringify(payload));
 17             pl["params"]["filter[createdAt-start]"] = this_start.toISOString();
 18             pl["params"]["filter[createdAt-end]"] = this_end.toISOString();
 19             payloads.push(pl);
 20             // add +1s so we do not overlap start&end and are in the next month
 21             last_start = new Date(this_end.getTime() + 1000);
 22         }
 23         return payloads;
 24     }

payloads is forwarded to a microservice that uses the payload to call /matches:
  0 // loop over all pages, yield jsonapi parsed data results
  1 // TODO make it an async generator? coroutine?
  2 module.exports.requests = async (endpoint, region, options, logger) => {
  3     let url = api.url(endpoint, region),
  4         result = [];
  5     do {
  6         const [data, links] = await api.request(url, options, logger);
  7         if (data == undefined) break;  // 404
  8         if (links == undefined) break;  // 404
  9         url = links.next;
 10         result.push(...data);
 11         if (links.next == undefined) break;  // last page
 12     } while (true);
 13     return result;
 14 }

api.request:
  0 // send a request to url with options, log data about it
  1 // return [jsonapi parsed data, jsonapi links]
  2 module.exports.request = async (url, options, logger) => {
  3     let response;
  4     while (true) {
  5         try {
  6             const opts = {
  7                 uri: url,
  8                 headers: {
  9                     "X-Title-Id": "semc-vainglory",
 10                     "Authorization": MADGLORY_TOKEN
 11                 },
 12                 qs: options,
 13                 json: true,
 14                 gzip: true,
 15                 time: true,
 16                 forever: true,
 17                 timeout: API_TIMEOUT*1000,
 18                 strictSSL: true,
 19                 resolveWithFullResponse: true
 20             };
 21             logger.info("API request", {
 22                 uri: opts.uri,
 23                 qs: opts.qs
 24             });
 25             response = await request(opts);
 26             return [jsonapi.parse(response.body), response.body.links];
 27         } catch (err) {
 28             response = err.response;
 29             if (err.statusCode == 429) {
 30                 logger.warn("rate limited, sleeping");
 31                 await sleep(100);  // no return, no break => retry
 32                 continue;
 33             } else if (err.statusCode != 404) {
 34                 logger.error("API error", {
 35                     uri: url,
 36                     qs: options,
 37                     status: err.statusCode,
 38                     error: response? response.body : err
 39                 });
 40                 fs.appendFileSync(ERROR_LOG, JSON.stringify(err) + "\n");
 41                 throw err;  // rethrow for services to catch and handle
 42             }
 43             logger.warn("not found", {
 44                 uri: url,
 45                 qs: options,
 46                 status: err.statusCode
 47             });
 48             return [undefined, undefined];
 49         } finally {
 50             if (response != undefined) {  // else non-requests error
 51                 logger.info("API response", {
 52                     uri: url,
 53                     qs: options,
 54                     status: response.statusCode,
 55                     connection_start: response.timings.connect,
 56                     connection_first: response.timings.response,
 57                     connection_end: response.timings.end,
 58                     ratelimit_remaining: parseInt(response.headers["x-ratelimit-remainin
    g"])
 59                 });
 60             }
 61         }
 62     }
 63 }

That is 100 lines just to get a few matches from the API. (Granted, a lot of it is logging, comments and abstraction.)
Can you consider paginating the responses server side using the links attribute? That gives you control over the number of shards a single request hits and you can prevent clients provoking 500s and wasting requests with broken pagination logic. Instead of erroring if a request exceeds the 28 day limit, you can paginate it, which removes another quirk of the API.

  It's two different things.
We already support and currently provide pagination links in all API responses.  All good!
With that said, we consider any request with longer a 28 day window invalid because the range is to large. This isn't weird, or unusual, its fairly common to provide both defaults an limitations on query parameters.
I think where things are going wrong for you, is that you're trying to pull all data for a player ever.  If that's the case, as you noted, you'll need a loop within a loop.
I don't think this is really that much code, only a few lines of it has anything to do with pagination.  The rest of it is formatting the request, and dealing with errors.

PS: If it was me... I'd do this differently.  I'd keep an array or queue or something of requests, and just push entries onto it.  First I'd push one query for each month you want to search.  Based on the response, if a pagination link was provided, I'd push that onto the queue too.  Really small amount of code.  I think part of the problem is the way you're broken up the various services.  Feels a little over engineered?

What else is the use case of the API if it's not getting all the data for a given set of filters in a specific time period?
Dates shouldn't be a filter on your end, the entire pagination logic should be based on time series - that is how you handle the data retention, that is how you shard your data, that is what clients are interested in, etc. pp.
In my opinion, the "pagination pagination", i. e. page[limit] and page[offset] should be replaced by a dynamic time series cursor. So that your query does not look like this (pseudo-SQL):
SELECT * FROM matches_eu WHERE createdAt BETWEEN filterCreatedAt-start AND filterCreatedAt-end LIMIT pageLimit OFFSET pageOffset

but is instead
SELECT * FROM matches_eu WHERE createdAt BETWEEN createdAt-start AND createdAt-end LIMIT 50

with createdAt-start and createdAt-end being a moving time window between filter[createdAt-start] and filter[createdAt-end], passed as state to the client in the links object.
You don't risk needing large offsets, which is better for performance and removes client side restrictions. (I'm making assumptions about your database based on your past statements here and in the Discord chats.)


Support custom installation directory

Sometimes, path.join(__dirname, 'jre') isn't a good place to install JRE. For example, electron based applications usually archive source code including node_modules, and thereby path.join(__dirname, 'jre') isn't writable.
This PR allows users to choose another directory to install JRE so that the users don't try to download files into forbidden places.

As pointed out in #18, I'll discontinue this project.


"Max Quality%" attribute does not have an effect when creating collectibles

Due to insufficient equipment grade or attributes, it may only be possible to reach the first or second stage when creating collectibles. I would like to modify or add a field to limit the quality progression bar.

I've noticed this too. It works if you set it to 0, but anything else seems to just defer to 100% quality.

The quality slider has no effect on collectibles by intentional design. It's not possible for the automatic solver to be that precise.


Adjust preset list based on connected or nearby features

Currently the preset list is ordered by most recently used followed by the default common presets.   We can improve the ranking of some presets based on connected or nearby features.
Examples:
Connected features

When adding a highway-highway vertex, show Traffic Signals at the top
When adding a motorway-motorway_link vertex, show Motorway Junction at the top
When adding a highway-footway vertex, show Pedestrian Crossing at the top
When adding a preset to the endpoint of a residential highway, show Turning Circle at the top

Nearby features (also see everything in #4138)

When looking at a bank, show ATMs at the top
When looking at a park, show Picnic Tables at the top
When looking at a gas station, show Convenience Store, Compressed Air, Vacuum at the top
When looking at a post office, show Post Box at the top

etc..
cc @1ec5

There’s a neverending list of presets we could helpfully suggest, so it’ll be a an area for continuous improvement – and a boon for micromapping. 😄
More connected features:

When a vertex of Residential Street is selected, show Pedestrian Crosswalk, Traffic Calming
When a vertex of Building is selected, show Entrance
When adding a line connected to Motorway or Trunk Road, show Motorway Link or Trunk Link, respectively

More nearby features:

When adding an area inside School Grounds, show School Building, Playground, Sport Pitch
When adding a line or area inside Golf Course, show the Golf group
When adding a line near Residential Road, show Sidewalk
When adding a line inside Building, show Corridor
When adding a line inside Park, show Footpath
When adding a point inside Park, show Fountain
When adding a point near Secondary Road etc., show Bus Stop
When adding an area near Church, show Graveyard, School Building
When adding an area inside Residential Area, show House, Apartments, Garage

Good suggestions, @1ec5.
Also I want to add, we have traditionally avoided building this kind of OSM tagging logic into iD itself, (as you said, it's a "neverending list of presets").  So the rules for this issue and #4138 should exist in the preset definitions, not in JavaScript code.  Something like:
{
    "icon": "park",
    "geometry": [
        "point",
        "area"
    ],
    "related": {
        "contains": [
            "leisure/picnic_table",
            "amenity/bench",
            "amenity/bbq",
            "amenity/fountain",
            ...
        ],
        "nearby": [
            "highway/footpath",
            ...
        ]
    },
    "terms": [ ... ],
    "tags": {
        "leisure": "park"
    },
    "name": "Park"
}

{
    "icon": "poi-traffic-signals",
    "geometry": [
        "vertex"
    ],
    "fields": [
        "traffic_signals"
    ],
    "related": {
        "connects": [
            "highway/trunk",
            "highway/primary",
            "highway/secondary",
            ...
        ]
    },
    "tags": {
        "highway": "traffic_signals"
    },
    "terms": [ ... ],
    "name": "Traffic Signals"
}

More nearby features

Note that whether something is “nearby” can depend on the latitude, as seen in #5101 and #1520.


New release of Bridge available: 20243.24.1112.0850

There's a new release available for Tableau Bridge: https://www.tableau.com/support/releases/bridge/20243.24.1112.0850
This version looks like it needs to be added to the LATEST_RPM_VERSIONS list in bridgectl/src/bridge_rpm_tableau_com.py to build the Docker image using the latest version using the BridgeCTL UI.
Side question: are there release notes published anywhere for new versions of Tableau Bridge? I wasn't able to find any.

Ok, I just pushed bridgectl version 2.3.58 which includes the new version of bridge. I haven't heard of what the fixes are in this release. I'll let you know if I hear.


feat(7481): Operator to ensure an expression is contextually typed by, and satisfies, some type

Fixes #7481

@typescript-bot pack this

Let's try again
@typescript-bot pack this

@typescript-bot pack this

@DanielRosenwasser @RyanCavanaugh Thanks for the feedback. I've added the requested changes.

@typescript-bot pack this

I'd rather we avoid further polluting JS expression space with new expression-level operators. Could we achieve this with a magic type similar to ThisType<T>?
// NOTE: Follows new mechanism for defining magic types like `Uppercase<T>`
// as opposed to `ThisType<T>`
type Satisfies<T> = intrinsic;

const options = { } as Satisfies<Options>;

I find the postfix operation nice for the “ensure this literal I wrote in the middle of some expression is assignable to T,” but very awkward for flowing contextual types into the expression, which is a case I find more compelling on the whole. Consider
const actions = {
  foo: payload => {
    // ...
  },
  bar: payload => {
    // ...
  },
  baz: payload => {
    // ...
  },
  one: payload => {
    // ...
  },
  fish: payload => {
    // ...
  },
} satisfies Record<string, (payload: Whatever) => Promise<boolean>>;

You had to do a lot of reading before finding out what each payload parameter was supposed to be, and I omitted the body of each function. Even when you get there, the flowing lexically backwards of the contextual type feels unexpected to me. Of the syntax proposals I’ve seen, I kind of like as extends T because it feels like it could naturally be extended to variable declarations:
const actions: extends Record<string, (payload: Whatever) => Promise<boolean>> = {
  // ...
}

That does have the issue that an extends T annotation is meaningless in absence of an initializer and would probably have to be a grammar error, so it’s far from perfect, but having some way of writing the contextual type before its expression would feel much more ergonomic to me.

I gave a lot of examples involving const x: T = ...-like constructs but I think a lot of the use cases here are in expression positions where there's no place to put a type annotation (e.g. function argument). Anything we do here should be useable in any expression position IMO

What about jsdoc compatibility?

I kind of like as extends T because it feels like it could naturally be extended to variable declarations: [...] having some way of writing the contextual type before its expression would feel much more ergonomic to me.

I gave a lot of examples involving const x: T = ...-like constructs but I think a lot of the use cases here are in expression positions where there's no place to put a type annotation (e.g. function argument). Anything we do here should be useable in any expression position IMO

Considering that this syntax is filling a similar role as a type assertion, it makes sense to me that whatever keyword is used can be positioned both as a postfix and part of declaring the type of a variable, to mirror type assertions. And, like... couldn't both positions be supported with either of these keywords? Like, all the the below examples seem equally sensible to me in reading them. Am I misunderstanding why not all of these examples could work?
const foo: satisfies Bar = { ... };
applyBar({ ... } satisfies Bar);

const foo: extends Bar = { ... };
applyBar({ ... } as extends Bar);

Note that I personally cast no vote about which syntax to use, as I like the sound of "satisfies", and "extends" is kinda all over the place in TypeScript already, filling a ton of different roles, which can make code a little bit slower to comprehend imo. But at the same time, being able to use as in the postfix for this mirrors type assertions better, so... No preference here. The only camp I'm in is the camp of having both a type declaration and a postfix version of this operator. 😜

Whatever the syntax winds up being, it would be great if it could also be used to give a contextual type to JSON imports (#37831):
import data from './data.json' satisfies MyType;

Got a question on this.
Given
interface Foo {
  bar: 1 | 2;
}

const value = { bar: 1 as const } satisfies Foo;

What is the type of value?

@treybrisbane

What is the type of value?

{ bar: 1 }

It's not a postfix to change the type, it's a postfix to validate the type. It's making sure whatever value is there has a type which, in this case, is assignable to Foo

I'm pretty sure there's some other stuff going on with like, turning parts of the value's type into the type in satisfies via contextual typing, most likely exclusively in cases that don't widen it. I might be wrong on that front though? That's stuff I don't really understand besides how to use it haha

That's pretty much exactly the stuff I'm asking about. 😄
Although in hindsight, my example was maybe a bit too simple to dig into it properly. 🤔

This will be incredibly useful for using online types with the data object literal in Vue. Looking forward to this!

Can we have
foo.bar satisfies string;

be completely erased?
Right now it leaves behind the property access in the compiled javascript code.

@webstrand TS can't safely erase that because foo.bar might trigger a getter call and the type system doesn't generally distinguish between accessors and fields.

Discussion

This example is interesting:
let obj: { f(s: string): void } & Record<string, unknown> = {
    f(s) { },
    g(s) { }
} satisfies { g(s: string): void } & Record<string, unknown>;

When an e satisfies T expression is contextually typed by a type U, it looks like we need to contextually type e by T & U

Ref. #47920

@typescript-bot pack this

Merged up to main, added outer&inner intersectional contextual type behavior, and added another test based on the issue discussion ✔

Tried this, have some feedback:

a satisfies T looks like : T = a, so the error should happen on the value, not the type constraint.

satisfies should also be available on FunctionDeclaration.

Tried this, have some feedback:

a satisfies T looks like : T = a, so the error should happen on the value, not the type constraint.

satisfies should also be available on FunctionDeclaration.

It would be really useful for React developers.
import React, { FC } from "react";

type GreetingProps = {
  name: string;
}

function Greeting ({ name }) => {
  // name is string!
  return
Hello {name}

} satisfies FC<GreetingProps>

What is the status of this PR? @a-tarasyuk

@kasperpeulen It's up to date 😄. Looks like #47920 is still in discussion. I don't know about the current status because I'm not part of the TypeScript team. So I think it would be better to ask @RyanCavanaugh, maybe he can provide some updates.

We're ready to merge this for 4.9

satisfies should also be available on FunctionDeclaration.

Will you implement it? @RyanCavanaugh

satisfies should also be available on FunctionDeclaration.

It would be really useful for React developers.
import React, { FC } from "react";

function Greeting<T>(props: { name: string, data: T }) => {
  return ...
} satisfies React.ComponentType<any>

cc @RyanCavanaugh what about this?

Just confirming that type error codes on errors are expected to swap?

Extremely excited about this for Next.js: https://twitter.com/leeerob/status/1563540593003106306
import { GetStaticProps, InferGetStaticPropsType } from "next";

export const getStaticProps = () => {
  return {
    props: {
      id: "123",
    },
  };
} satisfies GetStaticProps;

export default function Page(
  props: InferGetStaticPropsType<typeof getStaticProps>,
) {
  props;
  // ^?(parameter) props: { id: string;}
}

Was there any discussion about repurposing implements instead of introducing satisfies to reduce conceptual load? Does satisfies have precedent in a language I'm not familiar with? I think #47920 raises worthwhile points at least to explain or link how it came to be. Love what you all do 👏🏼

@texastoland yes, lots of syntax alternatives, including implements, were discussed. Some notes about implements were captured: https://github.com/microsoft/TypeScript/issues?q=is%3Aissue+label%3A"Design+Notes"+satisfies+implements+is%3Aclosed+

Is there a possibility of behaviour like https://tsplay.dev/mLyvAW being reversed now that there is a way to determine whether you want a reference to have the original type (just use satisfies) or the broadened type (assign to a typed variable)?
Or would that break too much?
To see the behaviour that I found surprising hover over basicValue vs castValue. I expected the explicit nature of the variable type declaration to be respected, but it actually needs a cast to force the issue which is pretty hard to explain to people. I can see how this was perhaps unavoidable before satisfies but maybe now...?

What about jsdoc compatibility?

Quoting this since it seems it was never addressed. Any chance of a JSdoc equivalent?
The equivalent for as is /** @type {SomeType} */(someExpression), for reference.

@noinkling mind opening a new issue for tracking?

@noinkling I think a new issue would be helpful, at least to move the discussion there. @andrewbranch I'm not sure what tag we can use for this https://jsdoc.app/index.html

It was discussed in a design meeting (#50522), but I don’t think we had a conclusion:

JSDoc?

We try not to add new tags that aren't doc'd in the usejsdoc site.
Ship has sailed with TS-specific syntax in JSDoc, right?

Opened #51086 for satisfied in jsdoc discussion

I wonder if it was a deliberate decision to preserve the "original" type of expression for expressions that are not satisfied by the operator (in case of an error). This is different behavior from the as operator:
TS playground

We didn't discuss what to do in error cases, oddly enough. I think keeping the expression type regardless of outcome is the most consistent/predictable behavior, even if the net behavior is maybe a little less desirable (since, presumably, you now have two errors in your program instead of one).
I think there's something weird going on with the language service displaying the asserted type in the Playground. The actual type of the variable, shown in .d.ts emit, is the expression type.

maybe { bar: 1 } ?


[feat] set default starting tab

Fixes #40
I used 4 StorageKeys, one for each platform.  I cannot re-use the same key for all as the count of bottom bar items is not the same. Using the same key would've made this a whole lot easier.
Let me know if there are any changes to be made.

Thanks!
I'll take a look ASAP

Sorry deleted the branch by mistake

@pd4d10 I figured out issues #57 and  #54. They're tied to the same fix. I'll open a pr once you merge this as I have messed up my local repo and fork and both the issue fixes make changes in home.dart. I'll update them(local and fork) after this is merged. Thanks.

After doing some research, I found that some apps would save the last active tab and use it at the next launch, for example, Apple App Store
Personally I think it seems better because users would not be bothered to do an extra setting step.
What do you think?

I see. That makes sense. So I'll modify this. But I still feel the setting to so do should be left as it is too. Or do you want to remove it?

the setting to so do should be left as it is too

It makes sense.
But it might be more complicated to implement this. We need to have two store keys for each platform, one is for the initiative settings (high priority), the other is for the tab item click (low priority). If the former is present the latter would have no effect.
So I would recommend not including the settings code in this PR.

Alright. That makes sense. I'll change it.

Apologies for taking so much time. There were a few problems that escaped my notice. Within the theme.dart I found many mistakes that somehow didn't affect setting a default start tab but affected this. I fixed those but there's still one problem for which I can't seem to find a fix. The GhNotificationScreen(when not the default tab), if tapped after the app start immediately switches to the previous saved defaultTabState. However, after this if it is clicked, there is no problem. The problem is with the screen as I used GhNewsScreen as a replacement and it seems to work fine.
Hopefully, the gif explains the problem. The problem is only with the Notification screen of github and does not affect other screens of other platforms.
https://gph.is/g/Z7WdrQP


When proposing relations, it is not possible to define domain/range manually

When proposing relations, it tries to fill in domain/range. But if the domain/range cannot be filled, e.g. because the classification is not available because the target column is numerical, it must be possible to fill the domain/range manually.

Solution: It is good to suggest, but if there is no suggestion, then there must be a possibility for the user to define it manually (e.g. by specifying a datatype, such as xsd:dateTime as a range) for columns containing dates.

Relates with https://github.com/odalic/odalic-ui/issues/254

@tomas-knap Hi, to be honest, not sure I get the datatype thing. Actually now if I remeber correctly, you proposed to give the user choice between the so called Object Types and Data Type for the relations. We were in hurry to finish the previous iterations, so this was dropped. Could you elaborate on that?

@KataBoku To sum up. Derive the initial value of the domain and range from the classifications of both columns (you already do), but allow manual editing of the URI for both the domain and range, and even possible replacing of the range with a general string (to allow xsd:date and other ranges, that describe relations between a subject column and a literal value, which column was not classified). Is it clear?

Finished by #291 .


Windows git bash make

Reason for PR

Using git-bash to build on Windows complains when hitting some file-copy and clean commands  that are Windows-specific.
I also spotted a warning from MSVC in recent code changes for directory creation (a return statement was unreachable on Windows but not Linux).

Changes in PR

Removed windows-specific post-build dll copies from Makefile on Windows so that git-bash was happy. This sounds odd but I also just switched to git-bash as a terminal in vscode and it is a bit clearer for managing git branches etc than powershell or cmd. It's also perhaps a more common gcc environment now on windows than mingw packages via cmd.
To avoid multi-system file copies on build I just made a duplicate of the .dll files required. Wasteful but simpler.

Testing Summary

Tested with MSVC (also found a v minor omission from the .bat helper with a missing "cd.." here i fixed).
Tested makefile on cmd, powershell, and git-bash.

Risk introduced by PR

Repo & download space wasted by .dll files to make it easier for Windows builds. It feels messy to save an instruction step. Open to suggestions.

@capnramses Quick question - this branch does not have --output-dir change. Does this matter?

i think it's fine since i already merged that PR and the diff isn't showing that it's removing it

an alternative here would be:

create a bin/ subdir for .exe output and have the .dll files in there already
remove the .dll files from the ffmpeg third party folder


cannot import name 'product' from 'numpy'

📖 Documentation
Found this error when using transformer = MoleculeTransformer(featurizer='mordred', dtype=float)
Apparently product was removed in numpy 2.0: https://github.com/astropy/astropy/pull/16062
Downgrading numpy 2.1.0 to 1.22.0 solved it. I am now at my local machine and can confirm that in numpy 1.24.4 it also works.

I'm also facing a similar issue when using the following import: from molfeat.trans.pretrained.hf_transformers import PretrainedHFTransformer.
Tracing back to the root of the problem, it seems that molfeat is using the mordred repository, which, according to the comments on their issues, is no longer being maintained. However, there is a fork of this repository, mordred-community, which seems to address necessary updates.
The mordred library has an import statement from numpy import product, which should be from numpy import prod. I found the files on my local machine where this error occurs within the mordred library, such as their MolecularDistanceEdge class, and changed the statement in line 2.
Will molfeat continue using the original mordred library, or will there be an update to use the community version?
Thank you!


Conditional Refresh of widgets

Is there a way to only refresh widgets (utilizing the yabai signals) if Ubersicht is actually running? Whenever I quit Ubersicht, it will immediately restart once yabai emits a signal telling the widgets to refresh

with no luck, I have tried to adjust the .yabairc to this:
# Refresh process widget when current window title changes
yabai -m signal --add event=window_title_changed action="ps cax | grep Übersicht > /dev/null; if [ $? -eq 0 ]; then osascript -e 'tell application \"Übersicht\" to refresh widget id \"simple-bar-process-jsx\"'; fi"

Hi!
This could indeed be convenient. I'll look into it this weekend and hopefully quickly find a proper solution.
I'll get back to you here!

Hi!
This could indeed be convenient. I'll look into it this weekend and hopefully quickly find a proper solution.
I'll get back to you here!

I wrote a little script that might get the job done. Not sure if this is the most elegant solution. Let me know what you think:
set appName to "Übersicht"

if application appName is running then
	tell application "Übersicht" to refresh widget id "simple-bar-process-jsx"
end if

and then in .yabairc:
# Refresh process widget on when focused application changes
yabai -m signal --add event=window_focused action="osascript ~/Scripts/refresh-simple-bar-process.scpt"

I've looked into it a bit and it seems that doing simply this:
# in your .yabairc, replace
yabai -m signal --add event=space_changed action="osascript -e 'tell application id \"tracesOf.Uebersicht\" to refresh widget id \"simple-bar-spaces-jsx\"'"

# by
yabai -m signal --add event=space_changed action="pgrep sicht && osascript -e 'tell application id \"tracesOf.Uebersicht\" to refresh widget id \"simple-bar-spaces-jsx\"'"

Is working.
pgrep sicht error code prevent widget refreshing.
Let me know if this solves your problem.

working as expected. I have updated my yabai config 👍 cheers


Apply coding style rules and enable travis cs check

PSR-2 rules will be enforced by travis with this PR

@beryllium i intend to do code cleanup, sprintf usage amongst it, in v3 branch.
If you think i should do it in here, i will go over all of the files and make that change.

I'm happy with doing it in the v3 branch.

Ok, I am going to merge this


Crash with FATAL Level

Describe the bug
I am not sure what causes this behavior.
To Reproduce
Unable to provide.
Environment information:

OS: ArchLinux
RAM: 4GB
Cores: 4 Cores
Type: X86_64
HORNET version 0.4.0-rc10

Additional context
https://ybin.me/p/448c41cdc3ff5937#S1k1vdQOv137FCPQWezUm9wvIft7XoEpKkj8Dg037zc=

Looks like an unsafe pointer problem in bbolt.
Maybe this issue is fixed since we changed bbolt settings in #451.
Should this problem occur again, please open a new issue report.

There seems to be an unmerged fix for the problem.
https://github.com/etcd-io/bbolt/pull/220

yeah, looks like it. thanks for an insight.


array model last broken

page._issues!
page._issues.last
IndexError: index -1 too small for array; minimum: 0
I can fix that when i have some time

Thanks for the heads up.  I fixed this on master.  Also, thanks for the PR, but there was a few extra details that needed to be handled.  Should be working now on master.


Can't install without errors

Using node v12.9.1, npm 6.10.3 on MacOS 10.14.5 I tried to install by following the instructions.
at npm install I get
  8 warnings and 7 errors generated.
  make: *** [Release/obj.target/scrypt/src/node-boilerplate/scrypt_params_async.o] Error 1
  gyp ERR! build error
  gyp ERR! stack Error: `make` failed with exit code: 2
  gyp ERR! stack     at ChildProcess.onExit
  (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:196:23)
  gyp ERR! stack     at ChildProcess.emit (events.js:209:13)
  gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
  gyp ERR! System Darwin 18.6.0
  gyp ERR! command "/usr/local/Cellar/node/12.9.1/bin/node"
  "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
  gyp ERR! cwd /Users/john/ruby_projects/research/satellites/templates/node_modules/scrypt
  gyp ERR! node -v v12.9.1
  gyp ERR! node-gyp -v v5.0.3
  gyp ERR! not ok
  npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is
  installed.  Exit status 1
  npm ERR!
  npm ERR! Failed at the<EMAIL_ADDRESS>install script.
  npm ERR! This is probably not a problem with npm. There is likely additional logging output
 above.

Any idea how to proceed?

We found that there was a problem when using node 12.x.
We have confirmed that it works well using node v11.x.
Please use node v11.x until solved this problem.

i've faced this issue since a while, i don't relay know what's the problem but i think nuxtjs is using a npm package which requires node-gyp.
i solved this by installing node-gyp following the steps at https://github.com/nodejs/node-gyp#installation.


[stable/openebs]: make openebs charts manage dependent storage engine charts

added dynamic localpv, zfs localpv and cstor charts as dependencies

Signed-off-by: Akhil Mohan<EMAIL_ADDRESS>Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[ ] Chart Version bumped
[ ] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/openebs])

Closing in favour of https://github.com/orgs/openebs/projects/32#card-60375687


Copy/Paste of Blob fails

Preflight Checklist

[X] I have installed the latest version of Storage Explorer.
[X] I have checked existing resources, including the troubleshooting guide and the release notes.
[X] I have searched for similar issues.

Storage Explorer Version
1.28.0
Regression From
1.27.1
Architecture
i86
Storage Explorer Build Number
Build Number: 20230214.5
Platform
Windows
OS Version
No response
Bug Description
When making Copy/Paste of blobs in Blob container attached with SAS Token, the error occurs.
All was fine in version 1.27.1. It fails in 1.28.0 and 1.28.1
Steps to Reproduce

Create a SAS token with Stored Access Policy. The policy permits all permissions.
Attach a blob container.
Open the container (which contains several folders inside). It is fine. Select a folder there and press “Copy”.
Open any another folder in the container and press “Paste”
Operation fails with error:
Transfer of 'deployments/PPE1-MAX/MBO-19896/' to 'deployments/' failed: 0 items transferred, error: failed to perform copy command due to error: cannot start job due to error: cannot list files due to reason -> github.com/Azure/azure-storage-blob-go/azblob.newStorageError, /home/vsts/go/pkg/mod/github.com/!azure/azure-storage-blob-go@v0.15.0/azblob/zc_storage_error.go:42
===== RESPONSE ERROR (ServiceCode=AuthorizationPermissionMismatch) =====
Description=This request is not authorized to perform this operation using this permission.
RequestId:3c338dce-901e-0062-141d-538c3d000000
Time:2023-03-10T06:54:34.5351942Z, Details:
Code: AuthorizationPermissionMismatch
GET https://mboppev2.blob.core.windows.net/deployments?comp=list&delimiter=%2F&include=metadata%2Ctags&prefix=ppe1-max%2Fmbo-19896%2F&restype=container&si=skamnev&sig=-REDACTED-&spr=https&sr=c&sv=2021-06-08&timeout=901
User-Agent: [Microsoft Azure Storage Explorer, 1.28.0, win32, azcopy-node/2.11.0-rc.1 (win32) AzCopy/10.17.0 Azure-Storage/0.15 (go1.19.2; Windows_NT)]
X-Ms-Client-Request-Id: [a25227e9-ea11-4330-439a-0ac54c3fed99]
X-Ms-Version: [2020-10-02]

RESPONSE Status: 403 This request is not authorized to perform this operation using this permission.
Content-Length: [279]
Content-Type: [application/xml]
Date: [Fri, 10 Mar 2023 06:54:34 GMT]
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
X-Ms-Client-Request-Id: [a25227e9-ea11-4330-439a-0ac54c3fed99]
X-Ms-Error-Code: [AuthorizationPermissionMismatch]
X-Ms-Request-Id: [3c338dce-901e-0062-141d-538c3d000000]
X-Ms-Version: [2020-10-02]
.
(used SAS, discovery not completed)
Started at: 3/10/2023 9:54 AM, Duration: 4 seconds
Actual Experience
Copy/Paste doesn't work
Expected Experience
It worked before 1.28.0 just as simple copy/paste experience.
Additional Context
No response

@SergeiKamnev it looks like your SAS is using a signed identifier with ID skamnev. Could you share a screenshot of what permissions that access policy has? You can view access policy permissions either via Storage Explorer or Portal. Let us know if you need additional help with this.

AzCopy log file:
2023/03/14 13:39:59 AzcopyVersion  10.17.0
2023/03/14 13:39:59 OS-Environment  windows
2023/03/14 13:39:59 OS-Architecture  amd64
2023/03/14 13:39:59 Log times are in UTC. Local time is 14 Mar 2023 16:39:59
2023/03/14 13:40:00 ISO 8601 START TIME: to copy files that changed before or after this job started, use the parameter --include-before=2023-03-14T13:39:54Z or --include-after=2023-03-14T13:39:54Z
2023/03/14 13:40:01 WARN: Failed to create destination container deployments. The transfer will continue if the container exists
2023/03/14 13:40:01 Error -> github.com/Azure/azure-storage-blob-go/azblob.newStorageError, /home/vsts/go/pkg/mod/github.com/!azure/azure-storage-blob-go@v0.15.0/azblob/zc_storage_error.go:42
===== RESPONSE ERROR (ServiceCode=AuthorizationFailure) =====
Description=This request is not authorized to perform this operation.
RequestId:ae3bf4ec-d01e-006e-467a-5662cc000000
Time:2023-03-14T13:40:01.5374241Z, Details:
Code: AuthorizationFailure
PUT https://mboppev2.blob.core.windows.net/deployments?restype=container&si=skamnev1&sig=-REDACTED-&spr=https&sr=c&sv=2021-12-02&timeout=180
User-Agent: [Microsoft Azure Storage Explorer, 1.28.0, win32, azcopy-node/2.11.0-rc.1 (win32)  AzCopy/10.17.0 Azure-Storage/0.15 (go1.19.2; Windows_NT)]
X-Ms-Client-Request-Id: [1ba5f9aa-7344-4347-549f-0cbaafaa53a8]
X-Ms-Version: [2020-10-02]
RESPONSE Status: 403 This request is not authorized to perform this operation.
Content-Length: [246]
Content-Type: [application/xml]
Date: [Tue, 14 Mar 2023 13:40:01 GMT]
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
X-Ms-Client-Request-Id: [1ba5f9aa-7344-4347-549f-0cbaafaa53a8]
X-Ms-Error-Code: [AuthorizationFailure]
X-Ms-Request-Id: [ae3bf4ec-d01e-006e-467a-5662cc000000]
X-Ms-Version: [2020-10-02]
2023/03/14 13:40:01 Any empty folders will not be processed, because source and/or destination doesn't have full folder support

@SergeiKamnev are you working in a ADLS Gen2 blob container?
Assuming yes, then we discovered a bug last week that has a similar behavior as this. So this is likely that bug. For now the workarounds for this issue are:

Use 1.27
Use a SAS which does not use an access policy

We'll be including a fix for this in 1.29.0. Let us know if you have any further questions.

Hi @SergeiKamnev if you have time, could you please try reproducing the issue using this private build of our upcoming 1.29.0 release? https://storageexplorerpublish.blob.core.windows.net/privatebuilds/1.29.0-copy-blob-access-policy-bug/StorageExplorer-windows-ia32.exe?sv=2021-10-04&st=2023-03-31T17%3A15%3A18Z&se=2023-04-16T17%3A15%3A00Z&sr=b&sp=r&sig=9MsV0WUrpsAcHwl7c%2F6Rxv18kUWVBXdtj3PFBSQHmSI%3D
Once done testing, please avoid the temptation to keep using the build and instead reinstall 1.28.1. At this time 1.29.0 has not gone through thorough enough testing for us to recommend using it on a day to day basis. Thanks.

Hello,
It looks this build works okay for the failed use case.
Sergei.

Awesome. We'll mark this as fixed in 1.29.0.

The issue is back in 1.30.0 release