How its work?

I have installed jscs

And jscs for vscode.
My .jscsrc in project root
{
  "preset": "google",
  "esnext": true,
  "fileExtensions": [
    ".js",
    ".jsx"
  ],
  "requireSemicolons": true,
  "requireParenthesesAroundIIFE": true,
  "maximumLineLength": 120,
  "validateLineBreaks": "LF",
  "validateIndentation": 2,
  "disallowTrailingComma": true,
  "disallowUnusedParams": true,
  "disallowSpacesInsideObjectBrackets": null,
  "disallowImplicitTypeConversion": [
    "string"
  ],
  "safeContextKeyword": "_this",
  "jsDoc": {
    "checkAnnotations": "closurecompiler",
    "checkParamNames": true,
    "requireParamTypes": true,
    "checkRedundantParams": true,
    "checkReturnTypes": true,
    "checkRedundantReturns": true,
    "requireReturnTypes": true,
    "checkTypes": "capitalizedNativeCase",
    "checkRedundantAccess": true,
    "requireNewlineAfterDescription": true
  },
  "excludeFiles": [
    ".meteor/*"
  ]
}

But vscode did not lint jsx and js files

Same here, installed globally, installed in vs code. It works in Atom (with the jscs extension) but not in vs code, leading me to believe it has something to do with the config or the extension.
Made sure that the setting is enabled (somehow after installing it defaults to false, which seems a bit odd) and both in my userspace + my workspace the following config is present:
{
	"jscs.enable":true
}

:+1: Same here!

This package really not working with .jscsrc in my project root folder
{
  "preset": "google",
  "esnext": true,
  "maximumLineLength": 120,
  "validateLineBreaks": "LF",
  "fileExtensions": [
    ".js", ".jsx"
  ]
}

Why it is not enabled by default after install? Why is "jscs.enable": false in default config?
I thought it didn't work until I checked the configuration.

@chrisdias To be consistent with eslint, jshint, tsling the enablement configuration jscs.enable should be true by default (something which was changed before the beta).


Lessen restriction for dockly-util

@nahiluhmot
Needed to be able to install alongside aerosol v1.2.0 which uses dockly-util v0.1.0.

:+1:


make release in folder

make release in folder (so after tar -xvzf hotelito.tgz you will get a folder with all the files)

not needed really


Add PathParser

This PR adds one of the options I came up to support dynamic segments in paths.
How does this work (user land)?
The user defines a PathParser. It receives the same arguments as DataSource.live_data/3 but it returns {path, %{"segment_name" => value}}. The second element of the tuple, is merged into params under "path_params". Example:
defmodule MyApp.PathParser do
  def parse(_site, "blog", _params), do: {"blog", %{}}
  def parse(_site, "blog/authors", _params), do: {"blog/authors", %{}}
  def parse(_site, "blog/posts", _params), do: {"blog/posts", %{}}
  def parse(_site, "blog/authors/" <> author, _params), do: {"blog/authors", %{author: author}}
  def parse(_site, "blog/posts/" <> post, _params), do: {"blog/authors", %{post: post}}
end

defmodule MyApp.DataSource do
  def live_data(_site, "blog/authors", %{"path_params" => %{author: author}}=params) do
	%{author: Authors.get_by_slug(author)}
  end
  def live_data(_site, "blog/authors", _params) do
    %{authors: Authors.list_all()}
  end
end

Other options
The other design (which I do like more but is not backwards compatible) is for parse to return {String.t(), [String.t()]}. In that case, the DataSource would look like:
defmodule MyApp.DataSource do
  def live_data(_site, {"blog/authors", [author]}, _params) do
	%{author: Authors.get_by_slug(author)}
  end

  def live_data(_site, {"blog/authors", _}, _params) do
    %{authors: Authors.list_all()}
  end
end

Which I think it looks better because it keeps the variable segments together with the page (which is actually a path).

I like the direction as it is similar to what @TheFirstAvenger and I discussed briefly yesterday. I'd like to expand upon it. I think that Beacon itself should essentially be acting as its own routing system to a degree. In the Phoenix app's own router it greedily matches on the path that Beacon is mounted to and essentially hands off control to Beacon at that point (which is where I think you are heading too).
The dynamically compiled live actions are currently matching on the slug for the page. If instead we could define a DSL on the page author's side to allow for binary matching. For example, if we wanted to match on blog post IDs
def live_action("/blog/" <> id, socket)

This is just pseduo code so it may not exactly align with the implementation. On the page creation UI the slug path would be: /blog/:id
We'd just need a way to parse this and at runtime produce the bytecode to do the proper binary matching.

Just a quick note on your comment, /blog/:id would not translate to "/blog/" <> id, that would be /blog/*path.
The problem I see with keeping these on the db is that all routing DSL depend on order, I'm not sure it's even possible not to depend on it. When having that in a file, it's easy to see what the actual order look like, but when this is in a db, it'd be hard to debug and in some cases almost impossible to debug. I.E. if we have /blog/authors/:author/*resource and /blog/authors/:author/posts it's easy to check that we are capturing the latter in the former, but having to take that into account when creating a page can be challenging at the very least.
Also, having a new dynamic path will most likely be for loading different data based on it (I think we can assume the /hello/:name examples will be the least), so modifying code does not look like an issue unless I'm missing something.

@Serabe you're referring to the path matching DSL in the router. I'm referring to the actual pattern match on the function definition.


unable to use npm package whose name ends with .ts for es2015 module system

TypeScript Version<EMAIL_ADDRESS>Code
index.ts
import * as preludets from "prelude.ts";

package.json
{
  "name": "dt",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "prelude.ts": "^0.4.4"
  }
}

tsconfig.json
{
  "compilerOptions": {
    "target": "esnext",
    "module": "es2015",
    "strict": true
  }
}

Expected behavior:
There is a package prelude.ts on npm (of which I'm the author), so this should work.
Actual behavior:
running npm install && tsc builds successfully if the module system is commonjs. However if the module system is es2015 it fails with the error:
index.ts(1,28): error TS2691: An import path cannot end with a '.ts' extension. Consider importing 'prelude' instead.

I would think that the .ts extension mean nothing to the underlying system (which should care only for .js and .mjs i guess?) and since npm accepts the package with a .ts postfix I guess typescript should allow it too, no matter the module system?
From my understanding typescript should first check whether there is a npm package by that name, and only check the form of the import if there is no such package?

Actually, the problem will happen for other packages (such as abs) with those settings.
You need to set "moduleResolution": "node".

Hmm ok. I take it that npm package names ending with ".ts" are supported by typescript and not only for commonjs. Good to hear! Since you say the behaviour i saw is normal, i'm closing this bug. Thank you!


Win32 builds seemingly fail

Steps:

Pull most recent commit d3cb734 (Though this also seems to be an issue present before any of my PRs)
Delete the current Build folder (if present)
mkdir Build && cd Build
cmake ../Projects -A Win32 -DAUX_DATA="path/to/overgrowth/install"

Compilation succeeds, but produces a runtime exception seemingly when loading some image data:

From what I can see the only place that calls this function is ImGui_ImplSdlGL3_CreateFontsTexture:
void ImGui_ImplSdlGL3_CreateFontsTexture() {
    // Build texture atlas
    ImGuiIO& io = ImGui::GetIO();
    unsigned char* pixels;
    int width, height;
    io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height);  // Load as RGBA 32-bits for OpenGL3 demo because it is more likely to be compatible with user's existing shader.

    // ...
}

So, ImGui::GetIO() seems to return an invalid reference, but only on Win32 builds. I'll try building a 32-bit target on Ubuntu and see if the same issue exists, and I'll add a comment in a bit when I get to switching OS's. I'll attach the log file as well, though it doesn't seem very descriptive:
shortlog.txt
Of course, let me know if I'm simply just doing this wrong.

Okay, building a 32-bit binary on a 64 bit processor on Linux is far more in-depth than I originally envisioned; If anyone knows how to do it properly, please share as I'd love to test if I've accidentally caused any regression errors with my recent PRs.
For now I'll probably focus on this Windows bug as I believe I have a slightly better chance at solving this one.

After some discussion with @autious, it's been revealed that (while Overgrowth did support 32-bit builds in the past) 32-bit builds have been phased out since memory requirements on certain levels exceed 3.5 GB, as well as that it's much easier to maintain only one 64-bit configuration. Since this isn't really part of Overgrowths current design, calling it an issue is incorrect, so I'll mark it as closed.
However, if there is anyone willing to get a 32-bit version built, it should still technically be possible, so I'll post my findings.
On Windows, you can specify a -A Win32 argument to CMake, which sets the architecture to 'Win32'. If you open Visual Studio, it should say Win32 instead of x64 in the configuration manager. This build compiles, but fails because of the issue described above. I've also tried specifying -DFORCE32=ON in addition to -A Win32 at the same time, but I was unable to recognize a difference.
On Linux, you can set Overgrowth to compile with the -m32 flag if you specify the cmake argument -DFORCE32=ON (make sure to delete your CMakeCache.txt or start a clean build folder in order for it to take effect!) You'll also probably need to install gcc-multilib and g++-multilib to allow compiling against a different architecture than x86_64.
You also (presumably) need 32-bit versions of each library dependency; so, if you need gtk2.0-dev, you'd have to also install gtk2.0-dev:i386. This would have to be done for all dependencies of Overgrowth.
On 64-bit machines, you might have to add the i386 architecture to your package manager so that it can find the 32-bit versions:
# Ubuntu, because that's what I was using
sudo dpkg --add-architecture i386
sudo apt-get update

Once you do that, you should be able to perform the same step as in COMPILING.md, but with :i386 appended to every requirement.
sudo apt install mesa-common-dev:i386 libsdl2-dev:i386 ...

Some libraries seem not to have a 32-bit converse, and packages like build-essential and cmake don't need to be re-installed as 32-bit, since they're tools, not dependencies. After all this, simply type make and Overgrowth should compile. (I was having issues compiling on Ubuntu, but I think they were related to packages being installed in the incorrect location, not because of an issue with methodology. Correct me if I'm wrong, though.)


syntax error: unexpected redirection

Details
What steps did you take and what happened:
After deploying the image using the yaml below I get the following error:
~ $ kubectl
/usr/local/bin/kubectl: line 1: syntax error: unexpected redirection

kind: CronJob
metadata:
  name: ninjam-server-cronjob
  namespace: nextcloud
  labels:
    app: ninjam-server-cronjob
spec:
  # schedule: "0 8 * * *"
  schedule: "* * * * *"
  successfulJobsHistoryLimit: 3
  failedJobsHistoryLimit: 3
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      ttlSecondsAfterFinished: 1800
      backoffLimit: 3
      template:
        spec:
          containers:
            - name: ninjam-server-cronjob
              image: raspbernetes/kubectl:v1.18.2
              imagePullPolicy: IfNotPresent
              volumeMounts:
                - name: session-volume
                  mountPath: sessions
                - name: jamz-volume
                  mountPath: jamz
              command: ["/bin/sh", "-c"]
              args:
                ["sleep 1h"]
              env:
                - name: TARGETOS
                  value: "linux"
                - name: TARGETARCH
                  value: "arm"
              resources:
                requests:
                  cpu: 500m
                  memory: 100Mi
                limits:
                  cpu: 600m
                  memory: 200Mi
          restartPolicy: OnFailure
          volumes:
            - name: session-volume
              persistentVolumeClaim:
                claimName: ninjam-server-cronjob-sessions-ssd
            - name: jamz-volume
              persistentVolumeClaim:
                claimName: ninjam-server-cronjob-jamz-ssd

What did you expect to happen:
For kubectl to run
Anything else you would like to add:

Note: Miscellaneous information that will assist in solving the issue.

Additional Information:

Note: Anything to give further context to the bug report.

Looking into this some more and it looks as if the args/vars that are part of the URL for kubectl aren't getting passed correct:
~ $ cd /usr/local/bin/
/usr/local/bin $ ls
kubectl
/usr/local/bin $ cat kubectl
<?xml version='1.0' encoding='UTF-8'?><Error>NoSuchKey<Message>The specified key does not exist.</Message>No such object: kubernetes-release/release/vv1.18.2/bin/linux/arm/kubectl</Error>/usr/local/bin $

Looking at the Dockerfile, I see an extra v next to the VERSION var, "https://storage.googleapis.com/kubernetes-release/release/v${VERSION}/bin/${TARGETOS}/${TARGETARCH}/kubectl", in the URL for kubectl. Since the VERSION var already has a v, ARG VERSION=v1.18.2, I'm assuming that can be removed there.

Weird, I tried with the new image and getting the same:
~ $ kubectl /usr/local/bin/kubectl: line 1: syntax error: unexpected redirection
~ $ cat /usr/local/bin/kubectl
<?xml version='1.0' encoding='UTF-8'?><Error>NoSuchKey<Message>The specified key does not exist.</Message>No such object: kubernetes-release/release/vv1.18.2/bin/linux/arm/kubectl</Error>~

I must have some old cache.

Looking at the Dockerfile layers here, https://hub.docker.com/layers/raspbernetes/kubectl/v1.18.2/images/sha256-7352e068673c76117b632b7a5237103233ab7eba7348414e0bb5b62c700fc5d7, you can see that when the build happens for each respective ARCH that VERSION is specified with v again:
RUN |3 TARGETOS=linux TARGETARCH=amd64 VERSION=v1.18.2
not sure where to resolve that.

Submitted another PR; https://github.com/raspbernetes/multi-arch-images/pull/201.

This issue helped solve my problems. Thanks for this 👍

Hello everyone I have different Error
user@master:~$ kubectl get nodes
/usr/local/bin/kubectl: line 1: syntax error near unexpected token <' /usr/local/bin/kubectl: line 1: AccessDeniedAccess denied.We're sorry, but this service is not available in your location'
and when I write this command
user@master:~$ cd /usr/local/bin/
user@master:/usr/local/bin$ cat kubectl
AccessDeniedAccess denied.We're sorry, but this service is not available in your locationI am using vpn for solve this problem but this could not solve.


fix(chekbox): added disabled + checked props

As per issue #99, i have added disabled and checked props to the Checkbox component.
Whats changed

Checkbox now exports "disabled" and "checked" props
Added styling for disabled state
Added docs showing "disabled" and "checked" states.

Im still unsure how to handle compound variations in this project, currently i just used the "class:" syntax thats come by default in Svelte, but i would like some feedback on that.
Im happy to hear your toughts. 👍

I totally agree with this PR. The only issue is that I am in the middle of making a major breaking change which this PR will conflict. I will just bake this PR into the current work I am doing with theming. Thank you for the work and I hope you will continue to contribute in the future!


Fix Choice down spacing

Addresses https://github.com/tabatkins/railroad-diagrams/issues/106

Fixed in https://github.com/tabatkins/railroad-diagrams/commit/0928618bea6906a7e2ebabb61eeac288c2ed3591


extend deadline for academic track to May 5

FYI @marcominghini @yair-grinb @redfrexx @petermooney

PS: sorry, there was a typo in the first version of this change commit: I accidentally changed the date for the non-academic submissions. It's now fixed in 0450e437fec00fd69b427e891a273658948b1fca and will also be updated on the website soon.


Automated Package Upgrade

:tada: This PR is included in version 7.7.117 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Integrating data model into persona page

Context
Adds information pane to Persona Page and integrates pydantic model into how personas are generated - also borrows Liam's PR to optimise docker images

Changes proposed in this pull request

Guidance to review

Relevant links
Things to check

[ ] I have added any new ENV vars in all deployed environments
[ ] I have tested any code added or changed

Final two commits are resolving merge conflicts from main (have accepted incoming changes from main)
Do not merge until PR 121 has been merged into main (have rebased some initial code from PR121 to sort out initial docker loading issues)

Waiting for PR130  to be completed


Standard object translation - Option caption

Describe the bug
I don't know if this is AL Compiler issue, bug is in combined enviroment's.
Translating standard app objects through extension using txt file, option caption is not working as intended when options values are used in messages, errors, form C/AL code.
Problem appeared in standard code that is generating mail to send to customer, where C/AL tries to get document type that it is sending.
Further testing showed that AL can retrieve translated caption but C/AL returns original language (en-US).
To Reproduce
Steps and to reproduce the behavior:

Translate some standard object using extension, eg. Sales Header to some language.
Change to said language.
Open table, or page, and Option caption can be seen on pages (so it works).
Try print value of option in a message through C/AL, value is in an original language (en-us).

AL Code to reproduce the issue
C/AL Code
SalesHeader.Init;
MESSAGE('%1 - %2', SalesHeader.FIELDCAPTION("Document Type"), FORMAT(SalesHeader."Document Type"));
Expected behavior
Value of option to be in same language as system is.
Screenshots
If applicable, add screenshots to help explain your problem.

Versions:
Any

AL Language:
Any

Business Central:
Any

Thanks for reporting the issue,
We are working on getting it fixed.

I've encountered the same behaviour when running reports. The option fields in the dataset always get the original optioncaption.
If the translation txt file is put in the instance folder on the application server as with the previous NAV versions it shows the correct translation of the option field. So it's at least a workaround for the problem, but I hope you'll find the solution soon!

I did not realize the report issue also. I don't get the solution with instance folder...
You mean to translate it internally? I'd hope to skip that, we did not modify any objects...
@thpeder Is there any progress on this?

@fmoric See this guide (Point 2): https://docs.microsoft.com/en-us/dynamics-nav/how-to--add-translated-strings-by-importing-and-exporting-multilanguage-files#importing-multilanguage-files
With this method you can use only the txt file without modifying any object in the designer for a long time now.

Thanks a lot, did not see that part, but as you said it it is temporary fix.

It appears this is fixed in BC Spring 2019 CU3, I tried installing our translation app into a cu3 container and it worked. Can anyone else confirm?

Hello,
We are encoutering the same problem in BC CU8.
e.g.: in Report 7318 Whse.-Shipment - Create Pick the WhseActivHeader.Type is not translated.
It should be "Culegere", but the ENU version is shown "Pick".
MESSAGE(STRSUBSTNO(SingleActivCreatedMsg,FORMAT(WhseActivHeader.Type),FirstActivityNo,CannotBeHandledReason)

@atoader could you please confirm that it will be shipped in the October release?
Thanks a lot.

@r4luk this has been fixed in the latest release. For backports to version 13, please go through the standard support channels.


How to Achieve a Smooth Rotation on a Stream

Hi there,
We are using this code to rotate an image on a web browser. The image rotates for 10 seconds and then stops.
var image="https://rushtix.com/wp-content/uploads/2023/04/realistic_the_golden_cozy_living_room_featuring_p-scaled.jpeg";
var stop_sec=10;

pannellum.viewer( 'panorama-rotate' , {
    "type": "equirectangular",
    "panorama": image,
    "autoLoad": true,
	"autoRotate": -10,
	"autoRotateStopDelay":stop_sec*1000,
    "yaw": 0,
});

It looks good on our computers but on our FFmpeg stream it is not smooth. The FFmpeg settings are as follows:
Bitrate : 6000k
FPS: 30
PIX_FMT: Yuv420
Encoding : h264_nvenc
Any thoughts on how to solve this?

Hi Jill,
You can try it with a higher frame rate. Try it at 60 FPS. This makes the movements smoother

Okay, thanks!

Update: We tested with 60 FPS and it didn't solve. We are streaming from a headless chrome page using Chrome version 113.0.5672.126. It looks like WebGL is not supported very well in headless Chrome. We tried changing to Google Chrome 95.0.4638.69 and it also did not work.
Does anyone have any insights on this or where to go for help?

I can confirm that headless WebGL support can be problematic, and it's caused issues with CI in the past (and it why I haven't moved CI away from Travis CI yet). For the older version of Chrome, you can check the developer console to see if it says anything helpful, although I doubt you'll see anything particularly informative.
I don't know how you're using FFmpeg with Chrome, but, regardless, I've never tried to record a screen capture and don't have much advice to offer on the matter, unfortunately. Due to the poor performance, I suspect your headless Chrome is running without hardware acceleration; if you can get that working, you'll probably see significantly improved performance.
Otherwise, I can only suggest workarounds. If you can step through frame by frame—essentially manually animating it—and record still images, that obviously avoids dropped frames. Using an HDMI capture dongle would also avoid the issue, as you said it works when you're not trying to record it. I know neither of those suggestions are ideal. There's also apparently some sort of experimental Chrome feature for making timing deterministic for this sort of thing, but I have no experience using it.


Not able to read the updated Master when connected Master/Slave through sentinel

Bug Report
Im using Master/Slave connection through sentinel and using the below configuration to connect to redis sentinel.
Current Behavior
we hosted our app in kubernetes and when the master node fails for the first few times, Lettuce is responding by updating the sentinel configuration, after that its returning as error saying the "Cannot find the master node"
public RedisConnectionFactory redisConnectionFactory() {
LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
                    .readFrom(MASTER)
                    .build();
            RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration()
                    .master("mysentinelmaster")
		    .build();
                sentinelConfig.sentinel(xxx,6783);
            return new LettuceConnectionFactory(sentinelConfig,clientConfig);
}
@Bean
    public RedisTemplate<?, ?> redisTemplate() {
        RedisTemplate<?, ?> template = new RedisTemplate<>();
        template.setConnectionFactory(redisConnectionFactory());
        return template;
    }

here are the logs
org.springframework.data.redis.RedisSystemException: Redis exception; nested exception is io.lettuce.core.RedisException: Master is currently unknown: [RedisMasterSlaveNode [redisURI=RedisURI [host='xxx', port=6379], role=SLAVE], RedisMasterSlaveNode [redisURI=RedisURI [host='xxx', port=6379], role=SLAVE]]
	at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:74)
	at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:41)
	at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)
	at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:42)
	at org.springframework.data.redis.connection.lettuce.LettuceConnection.convertLettuceAccessException(LettuceConnection.java:268)
	at org.springframework.data.redis.connection.lettuce.LettuceSetCommands.convertLettuceAccessException(LettuceSetCommands.java:520)
	at org.springframework.data.redis.connection.lettuce.LettuceSetCommands.sRem(LettuceSetCommands.java:394)
	at org.springframework.data.redis.connection.DefaultedRedisConnection.sRem(DefaultedRedisConnection.java:649)
	at sun.reflect.GeneratedMethodAccessor75.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.data.redis.core.CloseSuppressingInvocationHandler.invoke(CloseSuppressingInvocationHandler.java:61)
	at com.sun.proxy.$Proxy135.sRem(Unknown Source)
	at org.springframework.data.redis.core.RedisKeyValueAdapter$MappingExpirationListener.lambda$onMessage$1(RedisKeyValueAdapter.java:787)
	at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)
	at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:184)
	at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:171)
	at org.springframework.data.redis.core.RedisKeyValueAdapter$MappingExpirationListener.onMessage(RedisKeyValueAdapter.java:785)
	at org.springframework.data.redis.listener.RedisMessageListenerContainer.executeListener(RedisMessageListenerContainer.java:250)
	at org.springframework.data.redis.listener.RedisMessageListenerContainer.processMessage(RedisMessageListenerContainer.java:240)
	at org.springframework.data.redis.listener.RedisMessageListenerContainer.lambda$dispatchMessage$0(RedisMessageListenerContainer.java:986)
	at java.lang.Thread.run(Thread.java:748)
Caused by: io.lettuce.core.RedisException: Master is currently unknown: [RedisMasterSlaveNode [redisURI=RedisURI [host='xxx', port=6379], role=SLAVE], RedisMasterSlaveNode [redisURI=RedisURI [host='xxx', port=6379], role=SLAVE]]
	at io.lettuce.core.masterslave.MasterSlaveConnectionProvider.getMaster(MasterSlaveConnectionProvider.java:304)
	at io.lettuce.core.masterslave.MasterSlaveConnectionProvider.getConnectionAsync(MasterSlaveConnectionProvider.java:153)
	at io.lettuce.core.masterslave.MasterSlaveChannelWriter.write(MasterSlaveChannelWriter.java:66)
	at io.lettuce.core.RedisChannelHandler.dispatch(RedisChannelHandler.java:187)
	at io.lettuce.core.StatefulRedisConnectionImpl.dispatch(StatefulRedisConnectionImpl.java:152)
	at io.lettuce.core.AbstractRedisAsyncCommands.dispatch(AbstractRedisAsyncCommands.java:467)
	at io.lettuce.core.AbstractRedisAsyncCommands.srem(AbstractRedisAsyncCommands.java:1367)
	at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at io.lettuce.core.FutureSyncInvocationHandler.handleInvocation(FutureSyncInvocationHandler.java:57)
	at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80)
	at com.sun.proxy.$Proxy131.srem(Unknown Source)
	at org.springframework.data.redis.connection.lettuce.LettuceSetCommands.sRem(LettuceSetCommands.java:392)
	... 15 common frames omitted

Expected behavior/code
Sentinel should refresh the topology continuously even after receiving updated master details from sentinel if there is some issue with the current details
Environment

Lettuce version(s): [5.1.0.RELEASE]
Redis version: [e.g. 4.0.9]

Lettuce listens continously to Sentinel Pub/Sub channels for topology updates. This approach is the most elaborate one as Sentinels actively publish changes in master and replica configuration. Can you provide a simple, reproducible test case or the logs from the time of the failover until the command failure?

@mp911de  I face that issue intermittently , I tried it few times and here are the logs that i see.
Steps:

I failed the redis Master and it recovered fine.
Brought the master up and brought down master again.
Intermittently i face the below errors.:
Im actually unsure if there is something im missing in the configuration or it is a bug.

`
org.quartz.SchedulerException: Job threw an unhandled exception.
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
Caused by: org.springframework.dao.QueryTimeoutException: Redis command timed out; nested exception is io.lettuce.core.RedisCommandTimeoutException: Command timed out after 10 second(s)
at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:70)
at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:41)
at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)
at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:42)
at org.springframework.data.redis.connection.lettuce.LettuceConnection.convertLettuceAccessException(LettuceConnection.java:268)
at org.springframework.data.redis.connection.lettuce.LettuceKeyCommands.convertLettuceAccessException(LettuceKeyCommands.java:817)
at org.springframework.data.redis.connection.lettuce.LettuceKeyCommands.del(LettuceKeyCommands.java:131)
at org.springframework.data.redis.connection.DefaultedRedisConnection.del(DefaultedRedisConnection.java:69)
at sun.reflect.GeneratedMethodAccessor90.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.data.redis.core.CloseSuppressingInvocationHandler.invoke(CloseSuppressingInvocationHandler.java:61)
at com.sun.proxy.$Proxy197.del(Unknown Source)
at org.springframework.data.redis.core.RedisKeyValueAdapter.lambda$put$0(RedisKeyValueAdapter.java:228)
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:184)
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:171)
at org.springframework.data.redis.core.RedisKeyValueAdapter.put(RedisKeyValueAdapter.java:223)
at org.springframework.data.keyvalue.core.KeyValueTemplate.lambda$insert$0(KeyValueTemplate.java:164)
at org.springframework.data.keyvalue.core.KeyValueTemplate.execute(KeyValueTemplate.java:346)
at org.springframework.data.keyvalue.core.KeyValueTemplate.insert(KeyValueTemplate.java:157)
at org.springframework.data.redis.core.RedisKeyValueTemplate.insert(RedisKeyValueTemplate.java:158)
at org.springframework.data.keyvalue.core.KeyValueTemplate.insert(KeyValueTemplate.java:140)
at org.springframework.data.keyvalue.repository.support.SimpleKeyValueRepository.save(SimpleKeyValueRepository.java:101)
at sun.reflect.GeneratedMethodAccessor104.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:359)
at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:200)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:644)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:608)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.lambda$invoke$3(RepositoryFactorySupport.java:595)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:595)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:59)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:61)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
at com.sun.proxy.$Proxy135.save(Unknown Source)
at xxxxxxx
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
... 1 common frames omitted
Caused by: io.lettuce.core.RedisCommandTimeoutException: Command timed out after 10 second(s)
at io.lettuce.core.ExceptionFactory.createTimeoutException(ExceptionFactory.java:51)
at io.lettuce.core.LettuceFutures.awaitOrCancel(LettuceFutures.java:114)
at io.lettuce.core.FutureSyncInvocationHandler.handleInvocation(FutureSyncInvocationHandler.java:69)
at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80)
at com.sun.proxy.$Proxy131.del(Unknown Source)
at org.springframework.data.redis.connection.lettuce.LettuceKeyCommands.del(LettuceKeyCommands.java:129)
... 48 common frames omitted
`

@mp911de I face that issue intermittently , I tried it few times and here are the logs that i see.
Steps:
1.I failed the Redis Master and it recovered fine.
2.Brought the master up and brought down master again.
i face the below errors after repeating the above steps few times(attached the logs
Redis Issue.pdf
)
Im actually unsure if there is something im missing in the configuration or it is a bug.
Or should i manually trigger the Topology Refresh or Pub/Sub channels from my configuration?

Hello guys!
We're facing the same issue described by @UdCa-Codes in our setup, which actually consists in a master-slave setup with Sentinel.
This is the driver configuration we're using:
application.store.master-name=<master-name>
application.store.hosts=<sentinel-address>
application.store.port=<sentine-port>
application.store.username=<username>
application.store.password=<password>
application.store.commandTimeout=15s

We're using the version 6.0.1, but we're facing this issue for a long time in other versions.
Seems to happens quite randomly. From the Redis perspective, the Master election occurs with no erros and we're able to login in the Sentinel and discover the master normally through redis-cli for example. From the application perspective, sometimes we need to reboot it to effectively discover the Master through Sentinel.
In the application's log we see this kind of message:
Master is currently unknown: [RedisUpstreamReplicaNode [redisURI=redis://****@<previous-master-IP> role=REPLICA], RedisUpstreamReplicaNode [redisURI=redis://****@<previous-replica-IP>, role=REPLICA]]

Is there some kind of debugging we can do to get more information from the driver itself?

I don't know if it's completely related, but we faced a bit of a similar issue some time ago where newly started applications would sometimes complain about not finding a master and staying in a broken state. The only way to 'fix' them was by sending a SENTINEL RESET to one of the Sentinel servers, so all clients would get info sent by the Sentinels. We couldn't quite figure out what was going wrong through the debug logging. After more digging, we did stumble upon a change some time ago where we reduced the Redis timeout from 10s to 1s. After reverting this change, the problem stopped occurring.

I am seeing the same (or a similiar) issue as this. I think my scenario was roughly the following (this was on my local dev setup, luckily):

Redis Sentinel processes were killed (by me manually)

One of the Redis nodes was firewalled (sudo iptables -A INPUT -p tcp --dport 6379 -j DROP)

Our application was then connecting to the Redis Sentinel cluster, using Lettuce 5.3.0 and some connect code that looks similar to this (manually recreated, the actual code is spread out over multiple places in our case and conditionalized to support both single-node and Sentinel setups):
        Builder redisUriBuilder = RedisURI.builder()
             .withSentinelMasterId( sentinelMasterId) )
             .withPassword( password );

        redisUriBuilder.withSentinel( host1, port, password) );
        redisUriBuilder.withSentinel( host2, port, password) );
        redisUriBuilder.withSentinel( host3, port, password) );

        RedisURI redisUri = redisUriBuilder.build();

        Builder clientResourcesBuilder = DefaultClientResources.builder();

        if ( computationThreadPoolSize > 0 ) {
            clientResourcesBuilder.computationThreadPoolSize( computationThreadPoolSize );
        }

        if ( ioThreadPoolSize > 0 ) {
            clientResourcesBuilder.ioThreadPoolSize( ioThreadPoolSize );
        }

        RedisClient redisClient = RedisClient.create( clientResourcesBuilder.build() );
        redisClient.setDefaultTimeout( Duration.ofMillis( connectionTimeout ) );

         StatefulRedisMasterReplicaConnection<String, byte[]> redisConnection = MasterReplica.connect(
                 redisClient,
                 StringByteArrayCodec.INSTANCE,
                 redisUri
         );

         redisConnection.setTimeout( Duration.ofMillis( redisServer.getCommandTimeout() ) );
         redisConnection.setReadFrom( redisSentinelServer.readFrom() );

With this in place, Lettuce continuously fails to reconnect to the master node if it was down on the initial connection. Here is the stack trace (up until the first application-level line):
io.lettuce.core.RedisException: Master is currently unknown: [RedisMasterSlaveNode [redisURI=RedisURI [host='<IP_ADDRESS>', port=6379], role=SLAVE], RedisMasterSlaveNode [redisURI=RedisURI [host='<IP_ADDRESS>', port=6379], role=SLAVE]]
	at io.lettuce.core.masterslave.MasterSlaveConnectionProvider.getMaster(MasterSlaveConnectionProvider.java:309)
	at io.lettuce.core.masterslave.MasterSlaveConnectionProvider.getConnectionAsync(MasterSlaveConnectionProvider.java:158)
	at io.lettuce.core.masterslave.MasterSlaveChannelWriter.write(MasterSlaveChannelWriter.java:66)
	at io.lettuce.core.RedisChannelHandler.dispatch(RedisChannelHandler.java:187)
	at io.lettuce.core.StatefulRedisConnectionImpl.dispatch(StatefulRedisConnectionImpl.java:169)
	at io.lettuce.core.AbstractRedisAsyncCommands.dispatch(AbstractRedisAsyncCommands.java:472)
	at io.lettuce.core.AbstractRedisAsyncCommands.set(AbstractRedisAsyncCommands.java:1223)
	at jdk.internal.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at io.lettuce.core.FutureSyncInvocationHandler.handleInvocation(FutureSyncInvocationHandler.java:57)
	at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80)
	at com.sun.proxy.$Proxy47.set(Unknown Source)
	at fi.hibox.centre.module.job.rediscachepopulator.managers.RedisCrudManager.lambda$upsertEntity$0(RedisCrudManager.java:55)

The proper Redis master node is on <IP_ADDRESS> in this case, but Lettuce fails to ever realize it. Issuing a SENTINEL RESET * command manually seemed to help it, but... I'd much rather see it self-heal of course.

@mp911de Is my assumption that the fact that the <IP_ADDRESS> node was unavailable on startup, and Lettuce hence removed it from its list of "potential master nodes" anyway near correct, or is this a false assumption on my behalf? The Sentinel nodes was also down when the connection was made, so... could it be that it never connected to the Sentinel nodes in this case? (only to the Redis nodes). This would be one plausible theory about why it never would receive the pub/sub toplogy update in this case. Note, only guessing, I haven't looked at the Lettuce internals in this case. OTOH, issuing the Sentinel reset manually did indeed make it work, so I guess it must have been connected to Sentinel at that point at least...
Could it be like this: Sentinel was down when it first tried to connect => Lettuce never got the initial pub/sub topology update/updates. Once Lettuce had managed to connect it, all was fine in terms of subsequent topology updates, but the actual update/updates when the <IP_ADDRESS> was made the master was gone => it never managed to recover.
Distributed systems are indeed hard... :smile:

Could it be like this: Sentinel was down when it first tried to connect => Lettuce never got the initial pub/sub topology update/updates. Once Lettuce had managed to connect it, all was fine in terms of subsequent topology updates, but the actual update/updates when the <IP_ADDRESS> was made the master was gone => it never managed to recover.

Another theory: it could actually have been that <IP_ADDRESS> was actually already the master. When it was firewalled => no other master could be elected. Once it came back again, the Redis slaves would reconnect to it nicely. But no topology update was posted, since the topology didn't actually change. (it was more a matter of "master came back", it was just the fact that Lettuce had never managed to connect to this node.)

We are also facing the same issue with the master-slave sentinel setup. Using lettuce 5.2.2.RELEASE.
Is there any update on this?

We are also facing the same issue using lettuce 5.1.8.RELEASE.

I am also facing same issue. Currently using 6.1.9 version. We recently introduced Master Slave concept, before we were just connecting to master node.
We are using Spring class org.springframework.data.redis.connection.RedisStaticMasterReplicaConfiguration for configuration.
Everything seems to be fine , but we noticed that in AWS ECS 2 out of 16 instances started throwing error
exception is io.lettuce.core.RedisException: Master is currently unknown: [RedisMasterReplicaNode [redisURI=rediss://replica.prod-redis-cluster.XXXXXX.euw1.cache.amazonaws.com:6379?timeout=200000000ns, role=REPLICA]]
Also some logs here:
Caused by: io.lettuce.core.RedisException: Cannot determine topology from [rediss://master.prod-redis-cluster.XXXXXX.euw1.cache.amazonaws.com:6379?timeout=200000000ns, rediss://replica.prod-redis-cluster.XXXXXX.euw1.cache.amazonaws.com:6379?timeout=200000000ns] 	at io.lettuce.core.masterreplica.StaticMasterReplicaConnector.lambda$connectAsync$0(StaticMasterReplicaConnector.java:72)
Not able to identify the cause , but for temporary fix have to restart the service and then it went well after that.
But after few days again same issue arrive. I can't restart every time for this issue.

Folks, to do any progress on this issue we would need a minimal reproducible example that could help pinpoint the problem.
Until then we can only speculate what the issue is.


jx: 3.11.3 -> 3.11.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for jx is: Command line tool for installing and using Jenkins X
meta.homepage for jx is: https://jenkins-x.io
meta.changelog for jx is: https://github.com/jenkins-x/jx/releases/tag/v3.11.4
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.11.4 with grep in /nix/store/an9d8vi54aszvpfkwd7bxl73g3gbiqfr-jx-3.11.4
found 3.11.4 in filename of file in /nix/store/an9d8vi54aszvpfkwd7bxl73g3gbiqfr-jx-3.11.4

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

jx

Instructions to test this update (click to expand)

Either download from the cache:
nix-store -r /nix/store/an9d8vi54aszvpfkwd7bxl73g3gbiqfr-jx-3.11.4 \
  --option binary-caches 'https://cache.nixos.org/ https://nixpkgs-update-cache.nix-community.org/' \
  --option trusted-public-keys '
  nixpkgs-update-cache.nix-community.org-1:U8d6wiQecHUPJFSqHN9GSSmNkmdiFW7GW7WNAnHW0SM=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The nixpkgs-update cache is only trusted for this store-path realization.)
For the cached download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A jx https://github.com/r-ryantm/nixpkgs/archive/895c5f50b76918736d02b53379cb929a52809191.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/895c5f50b76918736d02b53379cb929a52809191#jx

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/an9d8vi54aszvpfkwd7bxl73g3gbiqfr-jx-3.11.4
ls -la /nix/store/an9d8vi54aszvpfkwd7bxl73g3gbiqfr-jx-3.11.4/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review

x86_64-linux

:white_check_mark: 1 package built:

jx

Maintainer pings
cc @kalbasit for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

@NixOS/nixpkgs-merge-bot merge


Allow all external download URLs to be aliased

Some users need to build their own containerbase-derived images in their product environments which do not have direct internet access. Instead, they need to set up generic proxies on Artifactory for each distinct external host which is approved, such as github.com, nodejs.org, etc.
Here's some examples used by containerbase:

Host
Tool(s)

https://nodejs.org
node

https://api.adoptium.net
java

https://downloads.lightbend.com
scala

https://github.com
sbt, python, php,

https://dot.net
dotnet

https://cache.ruby-lang.org/
ruby

We can assume for now that such users can already redirect common registries like apt, npm, pip, etc - the primary concern is on arbitrary URLs like the above.
The best way to test this would be to have a build environment with external URLs blocked by default and then try to build a "full" image with all tools and find the missing URLs one by one.
The next thing we'd want is a simple way of defining alternative URLs using env.
One possibility would be to have a syntax where the full from/to is specified in separate, related variables. e.g.
URL_REPLACE_0_FROM=https://node.org
URL_REPLACE_0_TO=https://artifactory.company.com/something/nested
Such a syntax is verbose but then at least should cover every case.
A higher level approach would be like JAVA_BASE_URL=https://artifactory.company.com/something/java but has the downsides:

One tool might try multiple hosts, and
Multiple tools might use the same host (e.g. github.com)

Missing Tools

[ ] bundler (gem)
[ ] cocoapods (gem)
[ ] dotnet
[ ] hashin (pip)
[ ] pdm (pip)
[ ] pip-tool (pip)
[ ] pipenv (pip)
[ ] poetry (pip)

will do this after conversation to higher level, as it's much easier to implement in typescript.

I need this within maximum 4 weeks :-/
I think longer term we should take all these URLs and proxy them ourselves through our own CDN/host so that the user only needs to alias one or a few URLs and not 10+

blocked by

https://github.com/containerbase/base/issues/771

working

npm can be configured via npm_config_registry env or ~/.npmrc
pip? can be configured via PIP_INDEX_URLenv or ~/.config/pip/pip.conf`
gem can be configured via RUBYGEMS_HOST env or  ~/.gemrc ^1 ^2

related:

#7

Is it sufficient to replace just base urls or will the entire url path need to be set, perhaps minus the artifact file name/ext?
An alternate/simple way to test this is to add /etc/hosts entries for each default hostname to point back to localhost, vs actually blocking the outbound traffic.

Is it sufficient to replace just base urls or will the entire url path need to be set, perhaps minus the artifact file name/ext?

By base URL I'm not meaning only the host, I mean it could be like https://host.com/some/path too. Is that what you're worried about?

Yes.  Good deal.

Randy Geyer | Principal Solutions Architect, Mend | +1<PHONE_NUMBER> |
@.***
On Wed, Jun 21, 2023 at 12:44 AM Rhys Arkins @.***>
wrote:

Is it sufficient to replace just base urls or will the entire url path
need to be set, perhaps minus the artifact file name/ext?
By base URL I'm not meaning only the host, I mean it could be like
https://host.com/some/path too. Is that what you're worried about?
—
Reply to this email directly, view it on GitHub
https://github.com/containerbase/base/issues/1067#issuecomment-1600154131,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASV56G6L2IEPAAUNZAOVNBTXMKC4FANCNFSM6AAAAAAZI77INE
.
You are receiving this because you commented.Message ID:
@.***>

The linked PR above will fix this issue for all tools beside the tools installed via gem, npm or pip. Those would need more effort to override the registry urls.
Would it be enough to document how to use the specific package manager environment variables?
Otherwise i would convert those tools and update the default registry urls on the fly, but that needs some more time to implement.

I think those tools hopefully have their own way of using own registries. I was after examples of redirecting URLs like GitHub and downloads.apache.org

will add the docs and also missing gem, npm and pip support

@viceice does this require any more code, or just docs?

needs more code too

please support redirect/replace https://dl.google.com/go
in some company intranet，unable to access dl.google.com directly

please support redirect/replace https://dl.google.com/go
in some company intranet，unable to access dl.google.com directly

already supported

when this build is done, we should have all tools compatible with url replace
https://github.com/containerbase/base/actions/runs/5964382723

We should mention the abilllity to change the default corepack registry (can only be done at runtime)

https://github.com/nodejs/corepack/tree/main#environment-variables

Hello,
as far as I can see this should already work for "node". After encountering issues and some debugging I noticed that there is still a hardcoded node.jsorg value here:
https://github.com/containerbase/base/blob/b9ffa658baca6b27ac1d687919b10c08a55c0989/src/cli/tools/node/resolver.ts#L14
Access to the "https://nodejs.org/dist/index.json" can't be overwritten as far as I can see even at runtime when it is needed to figure out the correct node version if "no version" or "latest" is passed.
Is it planned to be fixed within this issue or would you like me to create a new issue?

@pmaieref Please open a new discussion. that should already support replacement, see
https://github.com/containerbase/base/blob/c2a72c60e04d08b2527f264c4ff8fd30dd4cea7a/src/cli/services/http.service.ts#L167


Extra logs info

This PR aims to make additional info about philips Hue bridge available to the application. So this information can be used for logging purpose.
In this PR I have added phue_bridge_info on HubMetaData class to get the info about the bridge when required.
https://github.com/getsenic/senic-hub/blob/4e71b536b287bc9670266278835f8bb3ccd4d31f/senic_hub/backend/hub_metadata.py#L58-L68
This information is saved in the devices.json file while setting up the Philips Hue:
https://github.com/getsenic/senic-hub/blob/4e71b536b287bc9670266278835f8bb3ccd4d31f/senic_hub/backend/views/setup_devices.py#L174-L178
Here is an example where having philips hue API and software version helps in error logging.
https://github.com/getsenic/senic-hub/blob/4e71b536b287bc9670266278835f8bb3ccd4d31f/senic_hub/backend/views/philips_hue.py#L69-L81
Connects #403
In this PR I aim to add an API (phue_bridge_info) to get the required info. Future PRs related to this issue will add more logs (where required) and improving existing logs by adding more info about the devices using this API. And also, add a similar API for sonos.

There are loads of constants that should be extracted to dedicated class and imported. I won't require it for this PR because it's a general refactoring, but it should be done.


Ununderstandable documents (wiki)

There is a link to simple file in Home page in wiki, and there is no example in simple sample page, it has a link to home page again. There are four technical section which need to read by developers new to detours, but those sections give no information on how to get started with Detours.
Please improve the wiki, provide a useful example showing How to get started with Detours

Agree!!!
Every step in working with Detours seems to be a challenge.  For example, it seems like only in the FAQs is the need to "nmake" the Detours library discussed ... and, even then, it doesn't specify which version of "nmake" should be used (e.g., my computer somehow has five versions of it in various directories), what pathing needs applied before running "nmake", how/where to find various required additional libraries (e.g., windows.h).  All this stuff may seem obvious to the experienced ... but we newbies are left scratching our heads, guessing, and googling ... when this wiki should simply provide fully viable step-by-step instructions for downloading, building, and using Detours for the first time!

Hey guys, you might find this helpful, let me know: https://github.com/0xeb/detours-cmake

Hopefully PR #128 will make things slightly easier, I'll expand the documentation to talk about how to open a VS developer command prompt required to build.

Also #48 as well should improve things and make the project just like any other C++ build.

I fleshed out the FAQ a bit more with more details on setting up a build environment, the main thing being linking to the MSVC C++ command line tooling page, where they explain how to set up your developer command prompt. https://github.com/microsoft/Detours/wiki/FAQ#where-can-i-find-detourslib-and-detoursh

I think that such poor documentation is due to the fact that Microsoft deliberately wanted it this way. This technology provides quite a lot of opportunities for developers, which also can not always be used for good purposes. Therefore, most likely, such a quest in order to increase the "entry threshold" for this technology. So that a person already understands at least roughly how it works, and also has skills and curiosity to work on this.


Please add SERVER_GS_WEATHER_FREQUENCY

Is there an existing issue for this?

[X] I have searched the existing issues

Feature description
I notice there is no option to change weather frequency, since SERVER_GS_WEATHER_FREQUENCY does not work or seem to exist in the example.

Hey @joeyb276, thanks for the feature request. There are some new values with the new update. I'll include them and update the docs accordingly. I ping if there is a version ready for that. In the meantime, you can update the enshrouded_server.json manually (Official Enshrouded Docs)

Added the missing environment vars for the new update 4 configurations.
@joeyb276 You can try it with the latest dev-proton or dev-wine image. I'll test it a little bit further and release a new version most likely tomorrow.

fixed with version 1.4.0.


chore: remove ietf/group/colors.py, which is unused

that's reasonable - but the problem I'm pointing to (which isn't really the responsibility of this PR, but of changes leading up to it) then exists with how views use the css. I think we're diverging (Nick's agenda pages use the base colors, but darken them in a wash for instance). Have we reconciled group colors between the agenda and agenda editor yet?


Updates for v0.4.0. Added more tests

Coverage remained the same at 100.0% when pulling 53a6ac0b4074af99ae480df59107a964e9bf2634 on yuce:release-v0.4.0 into 2b7397934e74f207b21af529410257d822747f13 on pilosa:master.

Coverage remained the same at 100.0% when pulling c6ec40acfb9d6efdfff1fed0611444d25f2b4685 on yuce:release-v0.4.0 into 2b7397934e74f207b21af529410257d822747f13 on pilosa:master.

Coverage remained the same at 100.0% when pulling c6ec40acfb9d6efdfff1fed0611444d25f2b4685 on yuce:release-v0.4.0 into 2b7397934e74f207b21af529410257d822747f13 on pilosa:master.

Coverage remained the same at 100.0% when pulling c6ec40acfb9d6efdfff1fed0611444d25f2b4685 on yuce:release-v0.4.0 into 2b7397934e74f207b21af529410257d822747f13 on pilosa:master.

@travisturner Updated with the fixes.

Coverage remained the same at 100.0% when pulling c0b5ebb0e9d85d81444ece57c70dd4d6a9714a59 on yuce:release-v0.4.0 into 2b7397934e74f207b21af529410257d822747f13 on pilosa:master.


Fix test connection to chopsticks

Error handling request: 'Error: WebSocket is not connected

the connection is failing after some time (quite long), shouldn't be an issue if you not just keeping chopstics hanging for a long time.


[Backport][Remote Store] Permit backed futures to prevent timeouts during uploa…

Permit backed futures to prevent timeouts during upload bursts (#12159)
Signed-off-by: vikasvb90<EMAIL_ADDRESS>(cherry picked from commit c328c18f69c08b21aa8a76af270b04a70c5a8069)

Description
[Describe what this change achieves]
Related Issues
Resolves #[Issue number to be closed when this PR is merged]

Check List

[x] New functionality includes testing.

[x] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] API changes companion pull request created.
[x] Failing checks are inspected and point to the corresponding known issue(s) (See: Troubleshooting Failing Builds)
[x] Commits are signed per the DCO using --signoff
[ ] Commit changes are listed out in CHANGELOG.md file (See: Changelog)
[ ] Public documentation issue/PR created

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Breaking change workflow is failing because of addition of new property in method public void copyFrom(Directory from, String src, IOContext context, ActionListener<Void> listener, boolean lowPriorityUpload) of RemoteSegmentStoreDirectory. This class isn't used by any plugin and hence, the change doesn't really qualify as a breaking change.


⚠ Bofrost.at has degraded performance

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

HTTP code: 200
Response time: 1959 ms

Resolved: Bofrost.at performance has improved in 2ef69d2.


Update dependencies to fix youtube issues

This pull request...

[x] Fixes a bug

Description
Updates the lavaplayer and youtube-source dependencies to their latest versions.
Purpose
This fixes recent play issues with youtube videos.
Relevant Issue(s)

closes #1608
closes #1595
closes #1610
might (fix) #1588

Those of who are building from source:
Add the following to the bottom of the config.txt:
lyrics.user-agent=JMusicBot
lyrics.timeout=600 *(Or whatever number you wish)

i just downloaded the .jar file for this how would i implement this change i'm sorry i'm new to this

Is it working with this fix?

how to implement this on .jar  i dont know, im new to this

It does work. Tested on my fork

This didn't fix the issue for me, I've also heard about NewPipe and yt-dlp having playback issues, see https://github.com/TeamNewPipe/NewPipe/issues/11255

From what I've gathered, the recent 403 issues may be caused by:

IP ban ("Sign in to confirm you're not a bot.") There's currently no ideal workaround for that.
Failing the cipher check that YouTube recently updated. The lavalink devs have fixed this in lavaplayer 1.4.0 & this PR updates lavaplayer.
Having an outdated visitor info/data cookie (which lavaplayer already updates frequently)

The first issue is tracked in #1588, the second issue is fixed in JMusicBot 0.4.2, and the third one is not applicable. If you still encounter 403 issues with 0.4.2, consider opening an issue.

From what I've gathered, the recent 403 issues may be caused by:

IP ban ("Sign in to confirm you're not a bot.") There's currently no ideal workaround for that.
Failing the cipher check that YouTube recently updated. The lavalink devs have fixed this in the youtube source 1.4.0 & this PR updates the source.
Having an outdated visitor info/data cookie (which lavaplayer/the youtube source already update frequently)

The first issue is tracked in #1588, the second issue is fixed in JMusicBot 0.4.2, and the third one shouldn't be applicable for JMusicBot/lavaplayer. If you still encounter 403 issues with 0.4.2, consider opening an issue.

not getting this one.  I was able to reproduce with a vpn, but on my default IP, I do not get this error
I am using 0.4.2 and still unable to play videos, experiencing error 403 where bot joins, then leaves instantly.
well, if this is not applicable either, I guess I'll open a new issue.

@brlan10 keep in mind you're commenting under a 3 week old PR. As of 2 days ago, YouTube updated their cipher check again, thus requiring another update for the youtube source & thus a JMusicBot 0.4.3 release.


Release 2.14.1

Use-Case
We are shipping v2.14.1 -> https://github.com/kedacore/keda/issues/6002
just in case, we plan to ship v2.15.0 tomorrow (if you don't want to ship v2.14.1 and prefer to wait for v2.15.0)
We plan to ship v2.15.0  -> https://github.com/kedacore/keda/issues/6001

Resolved via #239


chart-svg surgery

Upstream from this library, I send chart svg's to the browser, via a web socket.
Rather than resend an entire chart, I would like to send a diff of the tree. The delta change is often a change to axes or scaling of a single element in the chart.
In going from a ChartTree to an SVG, I use lucid SVG, but on conversion the tree information is lost.
I have a hunch that what is needed is to excise this intermediate representation and produce XML instead. This library uses a pretty cut-down subset of SVG already.
As XML, the SVG representation can then be processed using https://hackage.haskell.org/package/tree-diff to produce a DiffChart :: Chart -> Chart. Upstream, a DiffChart could be represented as a javascript replace/insert/delete triple sent over the socket.

#31 closes


Updates to PoWEx vocabulary and common vocabularies

Updates

Refactored CredentialBase to reference VC and Common vocabularies
Updated Common vocabularies to reference schema.org
Updated PoWEx vocabulary to reference CredentialBase and Common vocabularies

Btw, I moved vc-specs repo into a top level org called INCOMS on Github where all kinds of VC models can be worked out. @kochhar your object namespaces will need update. Can you please do?

Definitely. I will update the references and send a PR
On Sun, 6 Mar, 2022, 3:18 AM Pramod Varma, @.***> wrote:

Btw, I moved vc-specs repo into a top level org called INCOMS on Github
where all kinds of VC models can be worked out. @kochhar
https://github.com/kochhar your object namespaces will need update. Can
you please do?
—
Reply to this email directly, view it on GitHub
https://github.com/INCOMS/vc-specs/pull/5#issuecomment-1059836204, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAZLKURGJNAOLJY5RLK7ADU6PJEXANCNFSM5KTE3SPQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

Thanks a lot @kochhar


Player spawning in unloaded world creates new world

What went wrong
If a player played on a world which gets removed while he is disconnected, a new world called Overworld will be created and the player spawns there.
related thread on the forums: https://forums.spongepowered.org/t/unloaded-worlds-offline-players/10661
What i expected to happen
The player should spawn in either:

a special respawn world specified in some plugins config
on the respawnworld specified for the unloaded world
on a default world which gets specified by Sponge

How to reproduce:

load an additional world (here: MineCon)
/tp yourself to MineCon
disconnect
someone else unloads MineCon via some plugin while you're disconnected
reconnect
Overworld gets created, you spawn there instead of MineCon, same coords as when you left

I think the problem is, that every world including the in server.properties defined world, can be disabled with sponges per-world configs..
Maybe you need one defined world/dimension that cannot be unloaded and will be used if an expected world is not available (disabled or deleted).
Without such a defined main world, there is always the case: every world is disabled, where does this player spawn now? ^^
Also: If the target world of a portal (or maybe Teleporter, i don't know what you've planned with that api) is not available, it simply should not work. Does it?
What is the current plan here? :)

@TBlueF
You can't disable the overworld (DIM0 or the name you specify in server.properties) and I've already fixed this locally :p.

@Zidane Thaaat's what i like to hear! :p ;)


Test

Motivation
test
Proposal
test
Test Plan
test
Release Plan

[ ] All good!
[ ] Need to bump the major/minor version number in the next release of the crates.
[ ] Need to update the developer manual.
[ ] This PR is adding or removing Cargo features.
[ ] Release is blocked and/or tracked by other issues (see links above)

Reviewer Checklist

[ ] The title and the summary of the PR are short and descriptive.
[ ] The proposed solution achieves the goals stated in the PR.
[ ] The test plan is reproducible and provides sufficient coverage.
[ ] The release plan is adequate.
[ ] The commits correspond to distinct logical changes.
[ ] The code follows the coding guidelines.
[ ] The proposed changes look correct.
[ ] The CI is passing.
[ ] All of the above!

Current dependencies on/for this PR:

main

PR #1056   👈

This comment was auto-generated by Graphite.


⚠ BeyondHD has degraded performance

In 5233baf, BeyondHD ($BHD) experienced degraded performance:

HTTP code: 200
Response time: 1217 ms

Resolved: BeyondHD performance has improved in 396a3aa after 40 minutes.


Is Firestore working?

I was wondering if Firestore is available on the Arduino instead of the Realtime Database?

Follow up on this, thanks

Same as #326
firestore does not support legacy tokens/secrets, therefore requests can't be authenticated from esp8266. If you do need to talk to firestore from esp8266, you may do this through custom cloud functions https requests.

@kotl I wonder if we could leverage the work between for jwt support on Arduino https://github.com/GoogleCloudPlatform/google-cloud-iot-arduino/blob/master/src/jwt.h
For enabling the firebase REST API to be used with the FirebaseArduino bindings?

Filed a feature request to track this #342


Failing tests

Hi!
I was packaging this up for Fedora, but I get lots of failed tests. The complete buildlog is attached. Are these expected?
build.txt

Hey @sanjayankur31!
Looks like this is an instance of https://github.com/regebro/tzlocal/issues/18 (reported by @tbabej who is also a maintainer of this repo).
I wonder if the system you're using has an issue whereby tzlocal is returning 'local' for the timezone rather than the proper TZ string?


custom sorting method for a single directory

First of all, thanks for the great package. It is really helpful and has given to me and my family many happy moments.
Feature description
I'm trying to figure out a way to apply custom sorting method on root directory. For me, the most obvious way to browse a picture gallery is having the latest folders on top in the root directory and the files/folder inside each folder sorted by  ascending date.
Proposed solution
A specific directory should have a way to override the general settings for sorting methods. I think the best (simplest) way would be by having a hidden file (ex. .order_descending_name).
More info on my solution
I have all my pictures in folders with prepending date, (ex. 2010.09.02 John's wedding). Sorting the root directory by descending name is the absolutely best approach for the gallery root; recent events are on top.
But, if I set that method to settings,  photos inside each folder are in reverse order, having the latest on top, which is not helpful.
Thanks

Hi,
I'm not sure if I fully understand your request.
Would you like to have:

Sort subfolders descending and photos ascending in the same folder?
Sort one folder descending and photos ascending in a separate folder?

For 1) I'm not sire if I would like to add this complexity to  my app. You can convince me if an other photo does it in a elegant way.
For 2) That should be mostly possible now too. You can have a default sorting setting and override that in the individual folders.

Case 2 was what I was talking about. Sorting by "ascending date" as default (in each folder under root) and "descending name" in a single folder as override (root only).
I was not aware it can be done.
So, how can I permanently override a specific folder's sorting?
If I change a folder's  sorting method using the upper right dropdown button (button#button-alignment) and visit the same folder in another browser, the sorting order is back to the default.
thank you!

yes, the sorting is stored in the browser's cache, so in a different browser is gets back to the default value.
Unfortunately there is no permanent way of doing this currently.

So, would there be any chance of implementing it?

Alright. I had some time and added this functionality. :) Here you can see how it works: https://github.com/bpatrik/pigallery2/blob/73a8c4202a9d4fd7746e080a339c0fa644d4b32f/src/common/PG2ConfMap.ts#L10-L14
Basically, you add an empty file like .order_descending_name.pg2conf to a folder and that overrides the default sorting for that folder.

that was fantastic!
thanks!

Is this recursive to subfolders if they don't have their own .order_*.pg2conf file?

No, it only works in a given folder.


Roll Flutter Engine from 69075e7e87d4 to 98cab3e11d44 (2 revisions)

https://github.com/flutter/engine/compare/69075e7e87d4...98cab3e11d44
2024-07-08<EMAIL_ADDRESS>Roll Skia from 1f85fb9238aa to b2c51b2fe15f (3 revisions) (flutter/engine#53756)
2024-07-08<EMAIL_ADDRESS>Roll Skia from f1d06de0ae87 to 1f85fb9238aa (2 revisions) (flutter/engine#53753)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC aaclarke@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Add new board_connect_url()

Related to rstudio/pins-r#706
In that PR, we are adding a new board for using Connect vanity URLs. This is a read-only board without versioning, so basically like board_url() with the Connect-specific authentication. Most of the work/thought was getting the testing to run well FWIW.

Is there an update on when this functionality will be available in the Python package?

Ah, great question @hathawayj -- there isn't a current date for when this will be implemented, but I am happy to prioritize this work if people are waiting on it!


Bug: pnpm build -- [Error] Loading PostCSS Plugin failed: Cannot find module 'cssnano'

Version
Vben Admin V5
Describe the bug?
pnpm build -- [Error] Loading PostCSS Plugin failed: Cannot find module 'cssnano'
Reproduction
package.json dependencies add line content is "cssnano": "catalog:"
System Info
System:
    OS: Windows 10 10.0.19045
    CPU: (12) x64 11th Gen Intel(R) Core(TM) i5-11400 @ 2.60GHz
    Memory: 14.21 GB / 31.73 GB
  Binaries:
    Node: 20.18.0 - C:\node\node.EXE
    Yarn: 1.22.22 - C:\node\yarn.CMD
    npm: 10.8.2 - C:\node\npm.CMD
    pnpm: 9.15.0 - C:\node\pnpm.CMD
  Browsers:
    Edge: Chromium (127.0.2651.74)
    Internet Explorer: 11.0.19041.4355

Relevant log output
No response
Validations

[x] Read the docs
[X] Ensure the code is up to date. (Some issues have been fixed in the latest version)
[X] I have searched the existing issues and checked that my issue does not duplicate any existing issues.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

是原版clone之后出现的问题还是你子级修改过的？

是原版clone之后出现的问题还是你修改过的？

源代码，执行build:antd

无此问题。请用不带中文的路径完整clone此项目后再测试

无此问题。请用不带中文的路径完整clone此项目后再测试

已测试,解决问题


Commenting within a bash script - period at end of comment followed by carriage return yields comment.'case' and doesn't advance cursor to the next line.

Commenting within a bash script - period at end of comment followed by carriage return yields comment'.case' and doesn't advance cursor to the next line.
What steps will reproduce the problem?

open a bash script (xxx.sh) for editing.
type a bash comment with a period at the end of the line (e.g. "# hello my friend."), and hit carriage return.
note the result - comment now reads "# hello my friend.case" and the cursor does not advance to the next line.

What is the expected result?

was not expecting command completion to be in effect (and offer 'case' as a possible completion to the comment.
the comment as typed should not be altered (i.e. 'case' should not appended to the comment) and entering carriage return should advance the cursor to the next line.

This should be fixed with #223


10479 answer option id refactor

Sorry, this is huge.

Note: I just rebased with numerous conflicts. In particular, @smoyth can you please verify the changes from https://github.com/thecartercenter/nemo/commit/5fcd84c09f3237ead51a7a37358048e3d882780d are adequately kept?

prep_form_vars was previously added to a method that was removed here
unless huge? no longer exists so some of your comment tweaks here were dropped

@cooperka We will perhaps need to work together on resolving those missing option errors in the migration. Deploy will be slower this time around.

@cooperka and yes, it's DONE :D


Handle migrating endpoint keeping same UUID

felix assumes that an endpoint's ID belongs to a particular host.   However, during a migration, endpoints keep their ID while moving between hosts.
As long as the plugin deletes the old etcd endpoint before creating the new, this should work fine.  However, if the ordering gets inverted, felix may update its indexes incorrectly.  In particular, if felix sees:

add host-A/endpoint-1
add host-B/endpoint-1
delete host-A/endpoint-1

then it will delete host-B/endpoint-1 from its index by mistake.
Suggest we fix up this case in felix, even if the plugin is behaving correctly.

@neiljerram will the plugin do the right thing in the mainline case of a migration (delete the old endpoint before adding the new)?
If so, there are still a couple of corner cases to cover but we can definitely defer this to 0.18.

Yes, it deletes on the old host before creating on the new one.  So deferring to 0.18 as you've suggested.

Deferring further, for same reason as previous deferral.


Agent Lettuce

I specially printed the log to check this problem.It runs in the same thread.

ok  thank you!


model

Reviewed AI feature integration for Q&A on candidate details developed by prasanth

The model functions well, except for the time limit provided for users to ask a question. Please extend the time limit to allow users more time to ask their question. If a question is not asked within this period, a timeout message should be displayed.


How to calculate PSNR and SSIM? Python or MATLAB?

Dear author,
Thanks for your work.  How to evaluate PSNR and SSIM?
I find that the author of RESIDE provides the matlab version for the performance calculation on the dataset website.
But you use the python version.  So, which one is correct?
Thanks for your reply in advance.

The precision supported by MATLAB is higher than that of python, but this does not lead to differences in the results.
PSNR is very simple, while SSIM includes the setting of parameters such as the window size and variance of the Gaussian kernel, but the settings used in this repository are the same as the original MATLAB code.
If you are looking for a more rigorous comparison, you can use MATLAB code, although this can make the evaluation process tedious.


Run-time target evaluation

The idea is to assign the target inside the task in the runtime. The issue I'm trying to address is this: the first task makes a "thing", let's say, a new instance. To address this instance as a target for the next task, this info should be passed in. Currently, we can propagate this IP like export INSTANCE_IP=$(whatever command), but it won't make any target and will force us to use the script with the local option and make all the operations a part of the script. In addition, it won't be populated with other tasks.
The idea is to allow task's target to be a variable, i.e.
- name: copy files to the instance
   targets: [$new_instance]
   ...

To me, it sounds logical and even expected behavior. Allowing task-level targets to be vars should be easy to implement; we could do it similarly as all the vars are populated via env.

This was implemented by #92


Add methods to make descriptor writing more flexible

Adds a method for writing descriptors with an unknown length in a way that's similar to how accepting control transfers works, and a method for writing endpoint descriptors with extra data in the same manner.
Unfortunately the naming is the reverse of control transfers (write_with takes a callback while accept_with takes a buffer), but this way it's compatible.
This would implement both #63 and #46. @Windfisch, if you have an audio driver going, could you test this to see if it's good for your purposes?

Hey @mvirkkunen, thank you for your effort!
This PR works fine for me (though I still need to manually merge in #62 to support larger descriptors ;)).
I also think that the interface is nice to use, so I'm fine :).

@mvirkkunen care to click "merge" on this?


Aggregation Framework - $out - not master

Hi Guys,
Don't think it is a bug, but rather misconfiguration or something that I can't find.
I'm trying to make aggregation pipeline where my last stage is $out.
I'm running it and I'm almost sure that I have a connection to the master, but for some reason it failed with the following error:
Error while executing mongo aggregation: failed to create temporary $out collection 'statslive.tmp.agg_out.8': { ok: 0.0, errmsg: "not master", code: 10107 }Code: 16994
This is my options while creating new client.
new \MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::LOCAL)
new \MongoDB\Driver\ReadPreference(\MongoDB\Driver\ReadPreference::RP_PRIMARY)
Also, does the read concern and preference is something that related?
I have Cluster with 5 Shards and each shard has 3 replica sets.
Thanks for the help.

What versions of the extension and library are you using? Additionally, what version(s) of MongoDB are at play with the shard cluster?
Can you share a stand-alone script that reproduces this error?
Lastly, can you investigate what ReadPreference (if any) is being passed when Aggregate::execute() invokes Server::executeCommand()?
The Collection::aggregate() method has some logic to check if the last pipeline operator is $out. If so, it will hard-code a primary read preference, which we expect libmongoc to set as a $readPreference field on the command document. If you profile queries on the mongos node(s), you should be able to check for that in the aggregate command document.

@Roycohen: Is there follow up for the questions above, or should I close this out?

Hi @jmikola,
Have a lot of things lately, and I've tried to it in another way.
I think I'm using secondary_prefered.
I will be able to investigate it in the upcoming days.


Deleting Duplicate forEach of Goerli data

@oraclown addressing the comment you made on original pr, ended up showing duplicate datapoints on datafeed🙃


request to add probabilities for LIBSVM.svmpredict

Hello! It would be good to keep the values returned by libsvm as is. And a little bit modify existing methods like that:
function MMI.predict(model::Union{SVC, NuSVC}, fitresult, Xnew) :: Union{Vector{CategoricalArrays.CategoricalValue{...}, UnivariateFiniteVector{..., ..., ..., ...}}
    result, decode = fitresult
    top_labels, probs = LIBSVM.svmpredict(result, MMI.matrix(Xnew)')
    if model.probability
      return decode(top_labels)
    else
      return MLJModelInterface.UnivariateFinite(model.labels, probs')
    end
end

Unless the LIBSVM models are explicitly instantiated with probability=true, then what is returned as probs in above code is just value of the decision function, which cannot be directly interpreted as probabilities. If probablity=true, LIBSVM uses Platt scaling to instead get probabilities. It is my understanding that this incurrs an non-trivial performance cost, and this is why the existing implementation is MLJ Deterministic. So I propose adding separate models ProbabilisticSVC and ProbabilisticNuSVC for the Platt-probability case.
It seems Platt scaling is not available in the LIBLINEAR library for LinearSVC.


jaeger-exporter fail - default.readFileSync is not a function

Using jaeger-exporter in my react app fail with below error. Is anyone experiencing this issue?
I've tested version 0.7.0 and 0.6.0.
TypeError: _fs2.default.readFileSync is not a function
(anonymous function)
/src/thrift.js:22
19 |
20 | export default class ThriftUtils {
21 |   static _thrift = new Thrift({

22 |     source: fs.readFileSync(path.join(__dirname, './jaeger-idl/thrift/jaeger.thrift'), 'ascii'),
23 |     allowOptionalArguments: true,
24 |   });
25 |   static emptyBuffer: Buffer = Utils.newBuffer(8);
View compiled
./node_modules/jaeger-client/dist/src/thrift.js
http://localhost:3001/static/js/4.chunk.js:281172:30

Currently the jaeger and zipkin exporter only work in nodejs. The solution is to use the collector exporter in your web application, and export from the collector to jaeger.

Currently the jaeger and zipkin exporter only work in nodejs. The solution is to use the collector exporter in your web application, and export from the collector to jaeger.
Thanks @dyladan for your reply. I switch to collector exporter now I'm getting a 400 bad request from jaeger. See my exporter config below.
const exporter = new CollectorExporter({
serviceName: 'awesome-service',
url: 'http://localhost:14268/api/traces',
})
Any idea about what is wrong? Sorry for the newbie questions.

This particular issue is caused by the fact that the jaeger exporter uses the node fs standard library module, which is not available to web.

Closing this issue. If you have some reason to need to export directly from web using jaeger, please open a new feature request issue.


Two test cases created

ResultTupleTest
ArrowRowViewTest

Hi, thanks.
(1) For: Add '\n' in the last line of files. Question: Do you have some format config for java within Intellji ? for instance: ( https://scalameta.org/scalafmt/docs/installation.html#intellij ) . Can pls point me to the java format config for Intellij if this project is using so that I can set up on my local? thanks .
(2) I will check. thanks

Hi, thanks. (1) For: Add '\n' in the last line of files. Question: Do you have some format config for java within Intellji ? for instance: ( https://scalameta.org/scalafmt/docs/installation.html#intellij ) . Can pls point me to the java format config for Intellij if this project is using so that I can set up on my local? thanks . (2) I will check. thanks

We use the eclipse default format config. It's a default option in intellij.
As for new line in the end of file, it's not format issue. The format tool will not help you add new line at the end of the file automatically.
this url explains why we should do it.

Thanks, will read and update these days.

We will first merge all updates into the dev branch for developments and tests. Once the system is updated into a new version, we will merge it into the main branch. Thanks

No problem.

have tested and can merge into the dev branch.


Fixed dependencies

I updated the versions of node-pixel and johnny five.
The old versions of node-pixel didnt go well together with johnny five.

What was the specific issue that was happening between the two libraries and do we need to update the firmware at all as well?

Wat happend was if you clone the current mbot_nodeblot and do npm install you get a conflict between the current version of johnny five and the outdated version of nodepixel. The way the package.json is set up is that it will download up to version 0.3.9 and the latest version is 0.6.0.

Ahh I see. All good. I'll pull that in once I'm not on my phone. Thanks for
that Xavier.
On Tue, Apr 19, 2016 at 11:49 PM Xavier<EMAIL_ADDRESS>wrote:

Wat happend was if you clone the current mbot_nodeblot and do npm install
you get a conflict between the current version of johnny five and the
outdated version of nodepixel. The way the package.json is set up is that
it will download up to version 0.3.9 and the latest version is 0.6.0.
—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/Makeblock-official/mbot_nodebots/pull/13#issuecomment-211930016


Add coloraide

Checklist

[x] Title of this PR is meaningful: e.g. "Adding my_nifty_package", not "updated meta.yaml".
[x] License file is packaged (see here for an example).
[x] Source is from official source.
[x] Package does not vendor other packages. (If a package uses the source of another package, they should be separate packages or the licenses of all packages need to be packaged).
[x] If static libraries are linked in, the license of the static library is packaged.
[x] Package does not ship static libraries. If static libraries are needed, follow CFEP-18.
[ ] Build number is 0.
[x] A tarball (url) rather than a repo (e.g. git_url) is used in your recipe (see here for more details).
[x] GitHub users listed in the maintainer section have posted a comment confirming they are willing to be listed there.
[x] When in trouble, please check our knowledge base documentation before pinging a team.

@asford @jyap-abc @bmcconeghy Trying to get a third-party package into conda-forge. Just roping in all with potential insight/interest.
I'm hitting the following error when runningconda build -c conda-forge recipes/coloraide:
ModuleNotFoundError: No module named 'hatchling'

The hatchling package does seem to be in conda already: https://anaconda.org/conda-forge/hatchling
Any insight or directions to explore would be appreciated!

Move hatchling to host, not run.

Move hatchling to host, not run.

That was it. Thanks!

@asford @jyap-abc Just requesting n internal review before I open a PR against conda-forge/staged-recipes

Lgtm
Build number just tags different build configurations for the package. It would be incremented if you were changing the build recipe, but not changing the source version.


swim lane feature request

First I'd like to say I really like this project and I wish I knew more about emacs/lisp development so I could contribute.
I think it would be really helpful add the ability to create swimlanes in the table based upon item tags. An example might look something like this:
#+TITLE: kanban
#+TODO: HOLD WAITING IN-WORK NEXT | DONE
* example
** IN-WORK [#A] GUI app :@james:dev:p1:project:
** NEXT [#B] CM admin :@james:p2:project:
** WAITING [#A] Correlator app :@daniel:p1:project:
** WAITING [#B] D01 build :@daniel:dev:project:p3:
** IN-WORK [#B] doc update :@boomer:@jerry:project:p1:docs:
** HOLD [#C] serial app :@jj:project:p4:
** DONE [#C] b300 :@jj:project:p2:study:

#+BEGIN: kanban :compressed t :mirrored t :match "project"
| DONE | NEXT     | IN-WORK    | WAITING        | HOLD       |
|------+----------+------------+----------------+------------|
| b300 | CM admin | GUI app    | Correlator app | serial app |
|      |          | doc update | D01 build      |            |
#+END:

#+BEGIN: kanban :compressed t :mirrored t :match "project" :lanes ("@james" "@daniel" "@boomer" "@jerry" "@jj")
| LN      | DONE | NEXT     | IN-WORK    | WAITING        | HOLD       |
|---------+------+----------+------------+----------------+------------|
| @james  |      | CM admin | GUI app    |                |            |
|---------+------+----------+------------+----------------+------------|
| @daniel |      |          |            | Correlator app |            |
|         |      |          |            | D01 build      |            |
|---------+------+----------+------------+----------------+------------|
| @boomer |      |          | doc update |                |            |
|---------+------+----------+------------+----------------+------------|
| @jerry  |      |          | doc update |                |            |
|---------+------+----------+------------+----------------+------------|
| @jj     | b300 |          |            |                | serial app |
#+END:

#+BEGIN: kanban :compressed t :mirrored t :match "project" :lanes ("p1" "p2" "p3" "p4")
| LN | DONE | NEXT     | IN-WORK    | WAITING        | HOLD       |
|----+------+----------+------------+----------------+------------|
| p1 |      |          | GUI app    | Correlator app |            |
|    |      |          | doc update |                |            |
|----+------+----------+------------+----------------+------------|
| p2 | b300 | CM admin |            |                |            |
|----+------+----------+------------+----------------+------------|
| p3 |      |          |            | D01 build      |            |
|----+------+----------+------------+----------------+------------|
| p4 |      |          | doc update |                | serial app |
#+END:

It might also be worth considering having an option to filter solely on the lanes. in which case, in my example above I could have replaced :match "project" with :match_lanes t; and if :match_lanes nil was set there would be some catchall lane for those items that exist but don't fall into a lane.

#+BEGIN: kanban :compressed t :mirrored t :match "project" :lanes ("dev" "docs" "study") :match_lanes nil
| LN    | DONE | NEXT     | IN-WORK    | WAITING        | HOLD       |
|-------+------+----------+------------+----------------+------------|
| dev   |      |          | GUI app    | D01 build      | serial app |
|-------+------+----------+------------+----------------+------------|
| docs  |      |          | doc update |                |            |
|-------+------+----------+------------+----------------+------------|
| study | b300 |          |            |                |            |
|-------+------+----------+------------+----------------+------------|
| ::    |      | CM admin |            | Correlator app |            |
#+END:

Thanks for the feature request.
At the moment this is not possible, and I think this might add too much features into the tables, especially because each lane would make up a new row, with individual separators.
In theory you could create a new table for each lane, but then you would loose the nice overview.
It might be possible to iterate over all the lanes, filter on them together with match (i guess the things should be and'ed) and then concatenate them all in a big table.
Not sure when I will come around to implement that.


Add shortcut keys to fancy zones

Fancy Zones 增加快捷键
增加四分之一窗口快捷方式
例如:
win+home设置在显示器左上角
win+end设置在显示器左下角
win+up设置在显示器右上角
win+down设置在显示器右下角
Add quarter window shortcut
For example:
Win + home is set in the upper left corner of the monitor
Win + end is set in the lower left corner of the monitor
Win + up is set in the upper right corner of the monitor
Win + down is set in the lower right corner of the monitor

tracked in https://github.com/microsoft/PowerToys/issues/492


Update the things

For information, if dependency version are backward compatible between 2 specs, you can add
[
  {:reaxt,[]},
  {:phoenix,[]},
  {:plug, "~> 0.9.0", override: true}
]

to your top project to fix manually the confict


Please invite me to the Recode-Hive GitHub Community Organization

Name
prathap v
Discord Username (if applicable)
prathap._
Additional Context
I’m genuinely excited about this project because it aligns with my interests and goals. I want to contribute my skills to help enhance its functionality and usability. Being part of this community would not only allow me to support a project I admire but also learn from like-minded individuals who are passionate about making a difference

Invitation sent to join the GitHub Organisation. Welcome to the community 🎉
Don't forget after accepting to make it public so it appears on your GitHub profile for everyone else to see. You can do this by finding your name in the GitHub organisation list and change the dropdown to public https://github.com/orgs/recodehive/people


Moves target_link_libraries() and target_compile_features() from cmak…

This fixes #169 and correctly determines BLAS and LAPACK location.
Both target_compile_features() and target_link_libraries() are meant to be used in CMakeLists.txt file (not the config). CMake will then export this information to the targets file.
The find_dependency() calls in the config file are supposed to be matched with find_package() calls in the CMakeLists.txt file.

Is there a reason why BLAS is not available during the appveyor test? Should BLAS and LAPACK be optional?

Thanks for the PR.
I think that you suggestion is not what is desired for general shipping of a library. If I’m not mistaken you will now encode the install-time dependencies in the config file. If install time is elsewhere (e.g. conda-build) the library will be left with irrelevant paths.
Instead, what is the current behaviour is that the dependencies are ‘searched’ when calling find_package(xtensor-blas) and are there the correct one for you current environment (and/or system)

A second this is that what would fix #169 is to get rid of more modern convenience functions. As specified in the issue, replacing:
target_link_libraries(xtensor-blas INTERFACE ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})

by
set_target_properties(xtensor-blas PROPERTIES
    INTERFACE_LINK_LIBRARIES "${BLAS_LIBRARIES};${LAPACK_LIBRARIES}"
)

Which retains the functionality fully but also works for CMake versions that do not yet have the convenience function target_link_libraries

I see. This is not an issue with conda as they set placeholder prefix paths when building and then do a string replace when users run conda install (see https://stackoverflow.com/a/65136313/1034772). This is how it works for the conda-forge shrinkwrap package, which is a header-only library that depends on three other libraries.
But I agree that this approach would likely be a problem if you want to support other package managers beyond conda. Both deb and rpm packages would contain the build paths instead of the install paths.
I updated the PR to remove the find_package and target_link_library calls from CMakeLists.txt. INTERFACE_LINK_LIBRARIES is not set in the config file. I left target_compile_features (which has been available since v3.1) in CMakeLists.txt since this will be exported to the targets file.