Threaded GLFW: Never a GL Context?

Environment

LWJGL version: 3.2.1
LWJGL build #: 12
Java version: 11.0.2
Platform: Linux
Module: GLFW/GL

Description
While splitting a program into multiple threads, one for GLFW events and the other for rendering/game logic there is never a valid GL context in the worker thread, despite calling GLFW.glfwMakeContextCurrent(windowHandle); from the worker.
This causes one of three things to happen from my testing:

Causes an exception to be thrown from X

glfwInit: true
glfwCreateWindow:<PHONE_NUMBER>45936
glfwTerminate
Returned handle:<PHONE_NUMBER>45936
glfwMakeContextCurrent
X Error of failed request:  GLXBadContext
  Major opcode of failed request:  152 (GLX)
  Minor opcode of failed request:  5 (X_GLXMakeCurrent)
  Serial number of failed request:  178
  Current serial number in output stream:  178

Causes GL.createCapabilities to throw an exception

glfwInit: true
glfwCreateWindow:<PHONE_NUMBER>64096
glfwTerminate
Returned handle:<PHONE_NUMBER>64096
glfwMakeContextCurrent
Exception in thread "new main" java.lang.IllegalStateException: There is no OpenGL context current in the current thread.
	at org.lwjgl.opengl.GL.createCapabilities(GL.java:378)
	at org.lwjglx.debug.opengl.GL.createCapabilities(GL.java:52)
	at org.lwjglx.debug.$Proxy$14.createCapabilities7(Unknown Source)
	at net.gudenau.game.Window.<init>(Window.java:45)
	at net.gudenau.game.Game.run(Game.java:13)
	at net.gudenau.game.Game.lambda$main$0(Game.java:25)
	at java.base/java.lang.Thread.run(Thread.java:834)

Causes the JVM to crash

glfwInit: true
glfwCreateWindow:<PHONE_NUMBER>20512
glfwTerminate
Returned handle:<PHONE_NUMBER>20512
glfwMakeContextCurrent
Exception in thread "new main" java.lang.IllegalStateException: There is no OpenGL context current in the current thread.
	at org.lwjgl.opengl.GL.createCapabilities(GL.java:378)
	at net.gudenau.game.Window.<init>(Window.java:32)
	at net.gudenau.game.Game.run(Game.java:6)
	at net.gudenau.game.Game.lambda$main$0(Game.java:18)
	at java.base/java.lang.Thread.run(Thread.java:834)
-- Native dump snipped, just had ASLR addresses and no names/symbols --

I have stepped though the code several times and verified the Threads and window states are consistent between threads.
Unfortunately because of the threading and synchronization mechanisms I can't think of a way to make this much smaller than this. Sorry about that.
net.gudenau.game.Game
package net.gudenau.game;

public class Game implements Runnable{
    @Override
    public void run(){
        try(var window = new Window(640, 480, "Game")){
            window.makeCurrent();
            window.setVisible(true);
            while(!window.shouldClose()){
                window.swap();
                GlfwHelper.poll();
            }
        }
        GlfwHelper.stop();
    }

    public static void main(String[] arguments){
        GlfwHelper.start(()->new Game().run());
    }
}

net.gudenau.game.Window
package net.gudenau.game.Window;

import org.lwjgl.glfw.GLFW;
import org.lwjgl.opengl.GL;
import org.lwjgl.opengl.GLCapabilities;

import static org.lwjgl.system.MemoryUtil.NULL;

public class Window{
    private final GLCapabilities capabilities;

    private long handle;

    public Window(int width, int height, CharSequence title){
        handle = GlfwHelper.runSync(()->{
            GLFW.glfwDefaultWindowHints();
            GLFW.glfwWindowHint(GLFW.GLFW_SAMPLES, 1);
            GLFW.glfwWindowHint(GLFW.GLFW_CONTEXT_VERSION_MAJOR, 3);
            GLFW.glfwWindowHint(GLFW.GLFW_CONTEXT_VERSION_MINOR, 3);
            GLFW.glfwWindowHint(GLFW.GLFW_OPENGL_FORWARD_COMPAT, GLFW.GLFW_TRUE);
            GLFW.glfwWindowHint(GLFW.GLFW_OPENGL_PROFILE, GLFW.GLFW_OPENGL_CORE_PROFILE);
            GLFW.glfwWindowHint(GLFW.GLFW_VISIBLE, GLFW.GLFW_FALSE);
            GLFW.glfwWindowHint(GLFW.GLFW_RESIZABLE, GLFW.GLFW_FALSE);
            long result = GLFW.glfwCreateWindow(width, height, title, NULL, NULL);
            System.out.printf("glfwCreateWindow: %d\n", result);
            return result;
        });
        System.out.printf("Returned handle: %d\n", handle);

        System.out.println("glfwMakeContextCurrent");
        GLFW.glfwMakeContextCurrent(handle);
        capabilities = GL.createCapabilities(true);
    }

    public void setVisible(boolean visible){
        if(visible){
            GlfwHelper.runAsync(()->{
                System.out.println("glfwShowWindow");
                GLFW.glfwShowWindow(handle);
            });
        }else{
            GlfwHelper.runAsync(()->{
                System.out.println("glfwHideWindow");
                GLFW.glfwHideWindow(handle);
            });
        }
    }

    public boolean shouldClose(){
        var result = GLFW.glfwWindowShouldClose(handle);
        System.out.printf("glfwWindowShouldClsoe:  %s\n", result ? "true" : "false");
        return result;
    }

    public void swap(){
        System.out.println("glfwSwapBuffers");
        GLFW.glfwSwapBuffers(handle);
    }

    public void makeCurrent(){
        System.out.println("glfwMakeContextCurrent");
        GLFW.glfwMakeContextCurrent(handle);
        GL.setCapabilities(capabilities);
    }

    public void destroy(){
        GlfwHelper.runSync(()->{
            System.out.println("glfwDestroyWindow");
            GLFW.glfwDestroyWindow(handle);
        });
    }
}

net.gudenau.game.GlfwHelper
package net.gudenau.game;

import java.util.LinkedList;
import java.util.Queue;
import org.lwjgl.glfw.GLFW;
import org.lwjgl.glfw.GLFWErrorCallback;

public class GlfwHelper{
    private static final Queue<Runnable> workQueue = new LinkedList<>();
    private static volatile boolean shouldRun = true;
    private static volatile Thread worker;

    public static void start(Runnable runnable){
        worker = Thread.currentThread();
        new Thread(runnable, "new main").start();
        GLFWErrorCallback.createPrint(System.err).set();
        System.out.printf("glfwInit: %s\n", GLFW.glfwInit() ? "true" : "false");
        runEventLoop();
        System.out.println("glfwTerminate");
        GLFW.glfwTerminate();
        GLFW.glfwSetErrorCallback(null).free();
    }

    private static void runEventLoop(){
        while(shouldRun && !workQueue.isEmpty()){
            Runnable work;
            synchronized(workQueue){
                work = workQueue.poll();
                if(work == null){
                    try{
                        workQueue.wait();
                    }catch(InterruptedException e){
                        return;
                    }
                }else{
                    work.run();
                }
            }
        }
    }

    public static void runAsync(Runnable runnable){
        synchronized(workQueue){
            workQueue.add(runnable);
            workQueue.notify();
        }
    }

    public static void runSync(Runnable runnable){
        final Runnable newRunnable = ()->{
            synchronized(runnable){
                runnable.run();
                runnable.notify();
            }
        };

        synchronized(runnable){
            synchronized(workQueue){
                workQueue.add(newRunnable);
                workQueue.notify();
            }
            try{
                runnable.wait();
            }catch(InterruptedException ignored){}
        }
    }

    public static <T> T runSync(RunnableResult<T> runnable){
        final Object[] result = new Object[1];
        runSync(()->{
            result[0] = runnable.run();
        });
        //noinspection unchecked
        return (T)result[0];
    }

    public static void poll(){
        runAsync(()->{
            System.out.println("glfwPollEvents");
            GLFW.glfwPollEvents();
        });
    }

    public static void stop(){
        shouldRun = false;
        worker.notify();
    }

    public interface RunnableResult<T>{
        T run();
    }
}

Your glfwInit call isn't guaranteed to occur before the runnable you pass starts. So that's probably part of what's happening.

How is that the case? Before the GLFW thread can process events it calls glfwInit, no runnable can run before that.

Ah, I missed the details of runSync. I'm not sure then, I'd have to try running it myself.

The problem is in this piece of code:
worker = Thread.currentThread();
new Thread(runnable, "new main").start(); // <- Thread starts at some point
GLFWErrorCallback.createPrint(System.err).set();
System.out.printf("glfwInit: %s\n", GLFW.glfwInit() ? "true" : "false");
runEventLoop(); // <- event loop may terminate immediately due to no elements to process
System.out.println("glfwTerminate");
GLFW.glfwTerminate();
GLFW.glfwSetErrorCallback(null).free();

together with this:
private static void runEventLoop(){
  while(shouldRun && !workQueue.isEmpty()){ // <- may return false if no items in workQueue

Due to the new Thread(runnable, "new main").start(); thread starting at some point asynchronous to the calling code and your runEventLoop() immediately terminating, you are terminating glfw and all windows/contexts via glfwTerminate().
Even your stdout messages that you posted tells that you are always calling glfwTerminate(). You cannot call glfwTerminate() and expect everything to still work.

 Sorry about that.


Private Subnet for the Redis VCN

Is there a way to create the Redis cluster inside a private subnet instead of a public one?

I created the cluster in a private subnet using this example,
https://github.com/oracle-devrel/terraform-oci-arch-redis/tree/main/examples/module-use-existing-private-network-with-bastion-host


[5.3][CodeCompletion] Fix non-determinisc failures in dependency check tests

Cherry-pick of #32030 into release/5.3 (Test only changes)

@swift-ci Please test


Improve search result listing

The search result listing should follow a format such as:

Avi Kivity, Dor Laor, Glauber Costa, Pekka Enberg, Nadav Har’El, Don Marti, Vlad Zolotarov (2014). OSv-Optimizing the Operating System for Virtual Machines. In ATC ‘14. [PDF] [Code] [Slides]

Fixed by fdca48080bc8e76dbe0455c0019031fc8df04942, except for the year, which the API doesn't return.


Substitution with range - mistake in cmdline.txt?

I tried to create a substitute that will match the current line and five lines below with range like this:
.+5 s/a/A/g

but it doesn't work it says that pattern was not found, yet
.,+5 s/a/A/g

works fine, therefore the following patch should be applied? Or am I doing something wrong?
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index 8186678..d4c32e7 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -680,7 +680,7 @@ use it as a count do use it as a zero (|:tag|, |:pop|, etc).  Some commands
 interpret the zero as "before the first line" (|:read|, search pattern, etc).

 Examples: >
-       .+3             three lines below the cursor
+       .,+3            three lines below the cursor
        /that/+1        the line below the next line containing "that"
        .,$             from current line until end of file
        0;/that         the first line containing "that", also matches in the

No, this patch should not be applied. You've misunderstood the meaning of the help, here.
".+3" does not mean "the current line and three lines below". It means "the single line which is three lines below the current line".


isIP() rejects scoped IPv6 address

isIP() does not accept scoped IPv6 address. That is, addresses terminated by '%X' or '%ethX' where X is the interface number.
Demonstration: This sandbox is using vee-validate, which uses isIP() to check for an IP address, to validate an IPv6 address:
https://codesandbox.io/s/j42zv5v3p9
Enter '::1', no error message.  Enter '::1%1', error message.

PR is welcome! 👍

@StephenWall @profnandaa
Opened #1160 to solve this bug 😄


Add initial framework for building filter sexps.

Demonstrates we can build an integer ast node in the filter parser.


Image recognition mixing context

Im experimenting with image recognition with various models. I have noticed, that after the first image it responds correctly, but when you send next one in next message it tends to mix these two and describes them both, like as it was a single image with these two contents. Im wondering if this can be somehow corrected with some kind of prompting or designing the message correctly. Only solution I have found so far is to reset the context when sending an image, and then it's like starting from scratch. But this solution is not perfect, as the consequence is that model forgets previous conversation context. Any recommendations what can I do with this issue?

Thanks for the response @guinmoon. This is exactly what I did.


Dropped items from blocks oddly large and staying upright?

At least in the case of dirt blocks dropping stones in TTA - they used to be smaller and/or fall over, now they just sort of stand there:

Sticks dropping from trees also seem oddly specific on how they drop/land on a flat surface:

I'm not sure if they're actually larger or just looking that way from landing funny. If there is more than one item then drops happen more normally and random (like two stones in one dirt block causes them to fall over, a stick falling on top of another stick also makes sense)
@Josharias maybe something for you?

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/24990262-dropped-items-from-blocks-oddly-large-and-staying-upright?utm_campaign=plugin&utm_content=tracker%2F5279&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F5279&utm_medium=issues&utm_source=github).

Sending this @portokaliu's way since it still seems active yet closely relates to some of the physics stuff around dropping/throwing things. I figure as a default anything dropped should have a slight (slight!) bit of random impulse added to it.
As a good example compare grass drops in Core to JS. In Core the actual billboard plant drops but has a random impulse added to it so it shoots off into a random direction (maybe even a little too forcefully, but maybe that's more about them being too low mass). In JS instead grass drops organic matter items, which just plop into existence standing upright with no random motion added at all.


[NEW] check install location for a servers.json as well

@RocketChat/core

Closes #455

Loading servers.json file from install location unless a servers.json is placed in user's local config, e.g. in %APPDATA%/Roaming on Windows. Why that? If deploying rocket.chat client with /allusers, a deployment tool in a last step could copy a preconfigured servers.json into the global installation location. If the client is started the server URL is preconfigured to the own server by the global servers.json to any user on the system unless a user overwrites it by an own one.

@localguru could you please take a look at Alex's comment above and update the PR? Thank you.


Leaderboard api

Implemented API functionality
Used modular es6 code
Used proper gitflow
Checked linters
Created PR

Hello @wayungi., thank you for your review. I appreciate your optional suggestions. I will implement them in the styling section🙏🏾


Using irate to see connection rate (req/sec) is not showing what is expected

What did you do?
Collected metrics from front end of haproxy using haproxy exporter
What did you expect to see?
We would like to see Connectation rate , ie avg req/sec
What did you see instead? Under which circumstances?
The graphs shows connection counter total, and resets to null value in given interval
Environment

System information:
Linux 3.10.0-327.4.5.el7.x86_64 x86_64

Prometheus version:

   prometheus, version 1.3.1 (branch: master, revision: be476954e80349cb7ec3ba6a3247cd712189dfcb)
  build user:       root@37f0aa346b26
  build date:       20161104-20:24:03
  go version:       go1.7.3

Graphs are shown here:
Trying to see req/sec, the interval is 5m
with irate

without irate

What i was expecting was irate would take two data points between 5min  and get the difference and which then gets divided by number of seconds in 5min interval..
for exampe at timestamp t1, we have 65000request_total and at t2=t1+5min , 75000 request
i was under the impression that the req /s wold yield a data point with
(75000-65000)/300 = 33.33 req/sec.
but the numbers i am getting in the graps are way too high.. Could you please explain how is it being calculated.
A 24hr graph cycle for the request rate that i am trying to graph looks like this

Which does not make sense for me at all. By the way i have 24hr retention time. Is there any docs etcs i am missing info about.

Can you share the raw data points for a 5m period in which irate is producing the wrong answer?

sure , here it goes.
{"status":"success","data":{"resultType":"matrix","result":[{"metric":{"frontend":"public","instance":"<IP_ADDRESS>:9101","job":"haproxy"},"values":[[1481292030.781,"20991.033333333333"],[1481292045.781,"20991.033333333333"],[1481292060.781,"208.5"],[1481292075.781,"208.5"],[1481292090.781,"221.13333333333333"],[1481292105.781,"221.13333333333333"],[1481292120.781,"675.5"],[1481292135.781,"675.5"],[1481292150.781,"21931.966666666667"],[1481292165.781,"21931.966666666667"],[1481292180.781,"608.5666666666667"],[1481292195.781,"608.5666666666667"],[1481292210.781,"202.76666666666668"],[1481292225.781,"202.76666666666668"],[1481292240.781,"273.9"],[1481292255.781,"273.9"],[1481292270.781,"254.8"],[1481292285.781,"254.8"],[1481292300.781,"220.76666666666668"],[1481292315.781,"220.76666666666668"],[1481292330.781,"252.63333333333333"],[1481292345.781,"252.63333333333333"],[1481292360.781,"252.86666666666667"],[1481292375.781,"252.86666666666667"],[1481292390.781,"23825.633333333335"],[1481292405.781,"23825.633333333335"],[1481292420.781,"694.5666666666667"],[1481292435.781,"694.5666666666667"],[1481292450.781,"279.26666666666665"],[1481292465.781,"279.26666666666665"],[1481292480.781,"236.9"],[1481292495.781,"236.9"],[1481292510.781,"232.1"],[1481292525.781,"232.1"],[1481292540.781,"151.56666666666666"],[1481292555.781,"151.56666666666666"],[1481292570.781,"25231.633333333335"],[1481292585.781,"25231.633333333335"],[1481292600.781,"811.7333333333333"]]}]}}

generated via
api/v1/query_range?query=irate(haproxy_frontend_http_requests_total{frontend='public'}[5m])&start=2016-12-09T14:00:30.781Z&end=2016-12-09T14:10:00.781Z&step=15s

The problems is, i am seeing with the irate graph, it increases to some maximum to some point  for a period of time and then resets.
How ever the new session graphs seems to point at the things what we are expecting to see.

Also we see different behvaiours from front_end_connection rate which seems to be expected, and is in align with the new session rate.

while backend connection_rate graphs show similar problematic behaviour, which seemes to grow to a certain point and then drop like some kind of counter.

which cannot be related to front-end connection rate graph at all.

That data looks like a mix of data from 2-3 exporters. Are you sure each instance represents a single haproxy?

so the setup is , we have 3 haproxy containers (pods), that have same haproxy config, running under a service, There is only only one exporter scraping from the the haproxy service in openshift origin as follows
scrape_configs:
- job_name:  "haproxy"
  static_configs:
    - targets:
      - "<IP_ADDRESS>:9101"

where the above ip is the haproxy service-ip that has three haproxy pods underneath.

That won't work, and will have oddness as you've discovered. You need a haproxy exporter per haproxy, and you need to scrape all 3 independently..

Thanks a lot ,
Now i have adjusted the config to query each the haproxy exporter individually.  And now it shows exactly as expected :)


for multi-tag pose estimations, use reproduction error to represent accuracy of estimate

From this CD thread, instead of using ambiguity (which is always set to 0.2 for multi-tag), we should use the reprojection error:
cam.getLatestResult().getMultiTagResult().estimatedPose.bestReprojErr

This is also available from the PNPResult object.

PNPResult (PhotonVision dev-v2024.3.0-44-g3c58b05a) 5 works too :slight_smile: (although I think these docs might be just the latest, not pinned to any particular version)

We need to experiment some and see what is the range of values for the reproduction error and what values represent "good" estimates.

Fixed in 3061-lib 2025 beta 0.


Support multiple configuration files to seperate passwords from preconfigured models

Hi,
first of all: thanks for your great work. It's really a pleasure to make backups with the backup gem!
And here is my question/usecase:
I have a repository with my code (and multiple backup configs, f.e. hourly, daily, weekly, monthly, each of them with some minor adjustments), and some servers which are build/provisioned with salt..
Since there is only support for one config file, it makes it quite hard to:

deploy backup-config with salt, which includes SMTP/DB-passwords (pwd file stored locally or on salt master)
use preconfigured models (code should stay in repository! passwords are deployed with salt)
use custom models with preconfigured background (code also stays in repository)

I'm not sure if my description is easy to understand, so here is it a bit shorter: i would like to seperate the passwords from the preconfigured models - but at the moment both of them stay in the same file, so its harder to seperate the passwords file (locally) from the model configuration (repository).
If you would support multiple configs like
backup perform --trigger myconfig_monthly --config_file file1.conf  --config_file file2.conf

# or maybe something like this
backup perform --trigger myconfig_monthly --config_file file1.conf  --preconfig_models preconfig_models.conf

# or maybe something like this
backup perform --trigger myconfig_monthly --config_file file1.conf  --password_file passwords.conf

it would be really great..
What do you think?
Thanks!

I can't say that I follow. You're trying to have a different configuration (passwords) per model? but want to configure this on the preconfigured models?
Every model is it's own config, so configure everything there. You don't have to use the config.rb file to configure any preconfigured thing.
Adding more configuration options will get confusing I think.


Create a Discord bot frontend

User Input

[ ] Send CSVs and ask for metadata
[ ] Send RKGs
[ ] Slash commands

Bot Output

[ ] Receive frame sync information (e.g. 327/1438)
[ ] Receive desync location (e.g. KartPhysics: vel0)
[ ] Receive link to download run frame data

This will only hold relevancy as we start actively looking for desyncs in a completed environment. This issue will remain open, as we will revisit this when the current test case fully syncs.


First mkdocs migration commit

Transferred docs as-is for first pass. Renders locally. API needs to be cleaned up

A couple of issues to be resolved:

[ ] interface.py API does not render.
[ ] api/make_pages.py may need updating for non-elements repos.
[ ] Delete old sphinx docs folder?

Marked as draft while I attempt to fix API

Thanks @kushalbakshi. I will close this pull request since our team has made the difficult decision to not actively maintain this package. We will refer users to our legacy docs.


[Feature Request] Score Cards... hide list numbers and space initials from score

I think this will complete the Score Cards' awesomeness!
The high scores are crunched together... would like to add some space between the columns (space out between initials and scores) and also completely remove the list numbers. right now it looks a bit smooshed together...

vs...

Sure, adding a flag to leave the position number is easy.
I will use the padding value as additional separator for the initials and score value.
Regarding the overall format: you should use a monospaced font. The will make look the card way more aligned.

ah, yeah... good thought. now I gotta figure out which are! :)


mdns is not working on wifi-ap (hotspot) mode (IDFGH-6391)

esp-idf v4.3.1
module : ESP32-S2
IDE : eclipse
Hi to all.
I want to run mDns in hotspot mode , But not work.

Hi @ESP3235
Could you please share more details? What exactly does not work? Querying, discovery, services, hostnames, which tools are you using for discoveries, publishing services, sending queries?
This scenario (mdns on AP) is a very basic use case which must work and is being continuously tested. The only trouble I could think of is that the mdns library probes and advertizes after the AP started, so whenever a station joins this AP, the advertizing packets of the published services might be already sent out. The services should be still discoverable.

mDns is working when ESP32 connected to wifi network , but when working in hotspot mode , http server just work with IP <IP_ADDRESS>


reorganize README

We have PLUGIN_FIRST_STEP_GUIDE.md and README.md. The latter is too bloat right now.
Here are what I think what we need:

README.md : the entry point readme. Explains the basic architecture.
PLUGIN_SCRATCH_GUIDE.md : almost the same as current PLUGIN_FIRST_STEP_GUIDE, but it will be rewritten to be based on prefab-based aars.

Therefore this task is blocked by prefab integration.

USERS_GUIDE.md : for AAP "users" i.e. non-app (plugin/host) developers.
HOSTING.md : first step readme for hosting.
DESIGN_NOTES.md : design notes. NdkBinder, Shared Memory, etc.
BUILDING.md : explain how build script is designed. ("How to build" should be readable from GitHub Actions workflows.)

Maybe BUILDING.md -> HACKING.md.

HOSTING.md should rather be DEVELOPERS.md that contains both plugin and host development stuff, as they overlap.

done.


在login事件接收到之前,如果收到其他的消息,会崩溃.

如果微信已经登录,运行此程序会等待一段时间(刚好20秒)才收到login事件,如果在此之前收到别人发送的消息, 程序会崩溃.
__currentUserId 是在login事件里面被设置的.
06:06:19 INFO StarterBot Starter Bot Started.
file:///C:/MyPC/puppet-xp/node_modules/wechaty-puppet/src/mixins/login-mixin.ts:25
        throw new Error('not logged in, no this.__currentUserId yet.')
              ^
Error: not logged in, no this.__currentUserId yet.
    at PuppetXp.currentUserId (file:///C:/MyPC/puppet-xp/node_modules/wechaty-puppet/src/mixins/login-mixin.ts:25:15)
    at PuppetXp.onHookRecvMsg (file:///C:/MyPC/puppet-xp/src/puppet-xp.ts:359:19)
    at WeChatSidecar.<anonymous> (file:///C:/MyPC/puppet-xp/src/puppet-xp.ts:117:16)
    at WeChatSidecar.emit (node:events:513:28)
    at WeChatSidecar.emit (node:domain:489:12)
    at WeChatSidecar.[hookEventHandler] (file:///C:/MyPC/puppet-xp/node_modules/sidecar/src/sidecar-body/sidecar-body.ts:450:10)
    at WeChatSidecar.[scriptMessageHandler] (file:///C:/MyPC/puppet-xp/node_modules/sidecar/src/sidecar-body/sidecar-body.ts:372:35)
    at C:\MyPC\puppet-xp\node_modules\frida\dist\script.js:95:21

同样遇到这种情况，是啥问题？
C:\Users\xmygb\Desktop\test\wechaty-puppet-xp>npm start

<EMAIL_ADDRESS>start
cross-env NODE_OPTIONS="--no-warnings --loader=ts-node/esm" node examples/ding-dong-bot.ts

15:50:23 INFO options... {"wechatVersion":"<IP_ADDRESS>"}
Puppet Version: 0.0.0
Please wait... I'm trying to login in...
msgType 49
file:///C:/Users/xmygb/Desktop/test/wechaty-puppet-xp/node_modules/wechaty-puppet/src/mixins/login-mixin.ts:25
throw new Error('not logged in, no this.__currentUserId yet.')
^
Error: not logged in, no this.__currentUserId yet.
at PuppetXp.currentUserId (file:///C:/Users/xmygb/Desktop/test/wechaty-puppet-xp/node_modules/wechaty-puppet/src/mixins/login-mixin.ts:25:15)
at PuppetXp.onHookRecvMsg (file:///C:/Users/xmygb/Desktop/test/wechaty-puppet-xp/src/puppet-xp.ts:373:19)
at WeChatSidecar. (file:///C:/Users/xmygb/Desktop/test/wechaty-puppet-xp/src/puppet-xp.ts:120:16)
at WeChatSidecar.emit (node:events:513:28)
at WeChatSidecar.emit (node:domain:489:12)
at WeChatSidecar.[hookEventHandler] (file:///C:/Users/xmygb/Desktop/test/wechaty-puppet-xp/node_modules/sidecar/src/sidecar-body/sidecar-body.ts:450:10)
at WeChatSidecar.[scriptMessageHandler] (file:///C:/Users/xmygb/Desktop/test/wechaty-puppet-xp/node_modules/sidecar/src/sidecar-body/sidecar-body.ts:372:35)
at C:\Users\xmygb\Desktop\test\wechaty-puppet-xp\node_modules\frida\dist\script.js:95:21

I think this is a known issue:  Wechaty need to delay process any events from the puppet before the login event emitted, because all other event processing needs current user information, which only will be ready after processed the login event.
what version of Wechaty are you using? Have you tried the latest version of Wechaty, does the problem still exist?

I think this is a known issue: Wechaty need to delay process any events from the puppet before the login event emitted, because all other event processing needs current user information, which only will be ready after processed the login event.
what version of Wechaty are you using? Have you tried the latest version of Wechaty, does the problem still exist?

我用另外一个微信号（群和好友都比较少）登入期间信息少，这个微信就没问题。目前观察：就是在登入期间有接收大量信息就是出现这种错误。
Wechaty版本信息：
"node_modules/wechaty": {
"version": "1.20.2",
"resolved": "https://registry.npmjs.org/wechaty/-/wechaty-1.20.2.tgz",
"integrity": "sha512-bIZ8m2lOya4SKnxVunbMGemE8JyZdnXhnLnfXtBAZV997ef6uqP4pJxuwiJnV0qbXGyIE+F3B2b8yjQOZh43lQ==",
"dev": true,
"dependencies": {
"clone-class": "^1.1.1",
"cmd-ts": "^0.10.0",
"cockatiel": "^2.0.2",
"cross-spawn": "^7.0.3",
"dotenv": "^16.0.0",
"file-box": "^1.4.15",
"fp-ts": "^2.11.9",
"gerror": "^1.0.16",
"get-port": "^6.1.2",
"json-rpc-peer": "^0.17.0",
"memory-card": "^1.1.2",
"open-graph": "^0.2.6",
"rx-queue": "^1.0.5",
"state-switch": "^1.6.3",
"uuid": "^8.3.2",
"wechaty-puppet": "^1.20.1",
"wechaty-puppet-service": "^1.19.8",
"wechaty-puppet-wechat4u": "^1.11.1",
"wechaty-token": "^1.1.1",
"ws": "^8.5.0"
},
"bin": {
"wechaty": "dist/esm/bin/cli.js",
"wechaty-doctor": "dist/esm/bin/doctor.js",
"wechaty-io-client": "dist/esm/bin/io-client.js",
"wechaty-puppet-install": "dist/esm/bin/puppet-install.js",
"wechaty-version": "dist/esm/bin/version.js"
},
"engines": {
"node": ">=16",
"npm": ">=7"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/wechaty"
}
},
"node_modules/wechaty-grpc": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/wechaty-grpc/-/wechaty-grpc-1.5.2.tgz",
"integrity": "sha512-oOXU62oDf8/LIg8wAqSoZogZ+NFSGIAJvYuTewR6x5Ia4iWjbfrlwy7NHjWGBLkKM2EpnxgOAjyxhAb1iMxTJg==",
"dev": true,
"dependencies": {
"@grpc/grpc-js": "^1.3.7",
"google-protobuf": "^3.18.0",
"stronger-typed-streams": "^0.2.0"
},
"engines": {
"node": ">=16",
"npm": ">=7"
}
},
"node_modules/wechaty-puppet": {
"version": "1.20.2",
"resolved": "https://registry.npmjs.org/wechaty-puppet/-/wechaty-puppet-1.20.2.tgz",
"integrity": "sha512-IXcnUc9A3hGIT+9CEF8KLkbdld+AQPfVlWLeUXmmSvm3I9NbSbVfU43FZvKMjvLCexvN5DZq2+JZdASESohI5Q==",
"dependencies": {
"@alloc/quick-lru": "^5.2.0",
"brolog": "^1.14.2",
"clone-class": "^1.1.1",
"file-box": "^1.4.13",
"fp-ts": "^2.11.5",
"gerror": "^1.0.16",
"memory-card": "^1.1.2",
"state-switch": "^1.7.1",
"typed-emitter": "^1.5.0-from-event",
"typesafe-actions": "^5.1.0",
"uuid": "^8.3.2",
"watchdog": "^0.9.2"
},
"engines": {
"node": ">=16",
"npm": ">=7"
}
},
其它依赖版本信息：

{
"name": "wechaty-puppet-xp",
"version": "1.13.8",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "wechaty-puppet-xp",
"version": "1.13.8",
"license": "Apache-2.0",
"dependencies": {
"cuid": "^2.1.8",
"sidecar": "^0.17.8",
"xml2js": "^0.4.23",
"xmlreader": "^0.2.3"
},
"devDependencies": {
"@chatie/eslint-config": "^1.0.4",
"@chatie/git-scripts": "^0.7.7",
"@chatie/semver": "^0.4.7",
"@chatie/tsconfig": "^4.5.3",
"@types/cuid": "^2.0.1",
"@types/faker": "^5.5.9",
"@types/frida-gum": "^18.5.1",
"@types/node": "^20.10.5",
"@types/qrcode-terminal": "^0.12.2",
"@types/xml2js": "^0.4.9",
"frida-compile": "^16.4.1",
"husky": "^7.0.4",
"qrcode-terminal": "^0.12.0",
"tstest": "^1.0.1",
"typed-emitter": "^1.4.0",
"wechaty": "^1.20.2"
},
"engines": {
"node": ">=16",
"npm": ">=7"
},
"peerDependencies": {
"wechaty-puppet": "^1.10.2"
}
},

This issue has been resolved in the latest version.


[High Priority] Enforce consistent number of leading zeros for all subjects and (separately) sessions within a project.

When creating subject folders, the @TO@ command will use the maximum number of leading zeros supplied.
For example, if sub-001@TO@02 the folders sub-001, sub-002 are created.
I am 99% this behaviour is replicated when creating ranges of subject or session files to transfer. I.e. in the case above, only subjects with two leading zeros will be searched and transferred (if they exist). This works well when subject names are formatted properly, with consistent number of leading zeros. However, it is inevitable that mistakes will result in inconsistent leading zeros in the sub / session keys within a single project.
I think this is a pattern we do not want to support. As such, rather than change the logic of the data transfer, it might be better to validate all subject and session names in the repository before data transfer (and, during make_sub_folders). If a subject folder is going to be made with inconsistent number of zeros to existing folders, this should not be allowed. Also, data transfer should be prohibited (error raised) if inconsistent leading zeros are present. Finally, a warning can be raised during the datashuttle start-up message if any inconsistencies are detected.
It will also be necessary to provide a convenience subject to make these consistent, as it is conceivable that researchers may start a project with two leading zeros, then get to 100 subjects or sessions and need to re-name all folders. This is a little bit hairy as they will need to rename on all local and the central machines. Maybe think about this convenience function a bit more, but as a first step the validation will be useful.

Turned this into warning on project startup and warning for data transfer, as we don't want people to have to undertake a potentially large or delicate renaming in order to push files in day-to-day use as this will be needlessly frustrating. The warning should be enough in this case as the issue is only with @TO@ tags been missed.
Error is raised if new sub or ses created name has an inconsistent number of leading zeros to others in the project.


How to get version from python scripts?

How to get version from python scripts?
For «normally» versioned packages we ask __version__
import numpy as d;print(d.__version__)

How to do this for «setuptools-git-versioning-ed» packages?

Hi.
As Limitation section in the Readme says:
Currently does not support exporting version to file for runtime use

You can run python setup.py --version to get the current version, and then write it to a file or script, before backing it into a package. But there is no builtin option for that


vscode doesnt run R code in radian when i hit control enter

Hello, I just set up radian to run R code. I thought i did everything correctly but I guess might have goofed somewhere. :)
I pip installed radian and it works when I run 'radian' from the windows cmd (I am running windows 10). When I go into vscode and hit control enter it does not execute radian. At first I get an error that says 'There are no open terminals'. When I open a new terminal and repeat control enter, it runs the code in the command prompt but does not open radian first. I wasn't sure if it is possible to have radian launch when the line is executed (similar to how python works with vscode).
Below is the settings in vscode:
"r.rterm.windows": "C:\\Users\\XXXX\\AppData\\Local\\Continuum\\miniconda3\\Scripts\\radian.exe",
"r.rterm.option": [ "--no-save", "--no-restore", "radian" ]
"r.terminalPath": "D:\\R-4.0.2\\bin\\x64\\r.exe"
"r.alwaysUseActiveTerminal": true,
"r.editor.bracesOnNewLine": true,
"r.bracketedPaste": true,
"r.lsp.path": "D:\\R-4.0.1\\bin\\x64",
The vscode extensions I have installed are:
-R
-R Extension Pack
-R LSP Client
-R Tools
-r-vscode-tools
I appreciate any help you all could provide.

There might be conflicts between the extensions you installed. R, R Extension Pack, and R LSP Client are compatible, but probably not with R Tools and r-vscode-tools. Please try removing R Tools and r-vscode-tools, and remove the settings r.terminalPath, r.editor.bracesOnNewLine which are from removed extensions.
Also, please ensure r.rterm.windows points to the executable path of radian, and r.rterm.option should be empty for radian. And r.lsp.path should be D:\\R-4.0.2\\bin\\x64\\R.exe in your case I guess?
Do you have an R installation with version written to registry? If so, you don't have to specify r.lsp.path, the extension will try to find the R executable in registry.

@bdeshon I also had some weird issues when I had both vscode-R (R) and R tools installed. Removing R tools fixed the issues.

thanks all!  it seemed to work when i removed those packages and i fixed the paths.  i appreciate it.


IndexError: list assignment index out of range

Got this while running pep8 tool against some functional tests:
Traceback (most recent call last):
  File "/Users/diminoten/git/project/ENV/bin/pep8", line 11, in <module>
    sys.exit(_main())
  File "/Users/diminoten/git/project/ENV/lib/python2.7/site-packages/pep8.py", line 2107, in _main
    report = pep8style.check_files()
  File "/Users/diminoten/git/project/ENV/lib/python2.7/site-packages/pep8.py", line 1830, in check_files
    self.input_dir(path)
  File "/Users/diminoten/git/project/ENV/lib/python2.7/site-packages/pep8.py", line 1866, in input_dir
    runner(os.path.join(root, filename))
  File "/Users/diminoten/git/project/ENV/lib/python2.7/site-packages/pep8.py", line 1844, in input_file
    return fchecker.check_all(expected=expected, line_offset=line_offset)
  File "/Users/diminoten/git/project/ENV/lib/python2.7/site-packages/pep8.py", line 1608, in check_all
    self.check_logical()
  File "/Users/diminoten/git/project/ENV/lib/python2.7/site-packages/pep8.py", line 1490, in check_logical
    for offset, text in self.run_check(check, argument_names) or ():
  File "/Users/diminoten/git/project/ENV/lib/python2.7/site-packages/pep8.py", line 573, in continued_indentation
    rel_indent[end[0] - first_row] = rel_indent[row]
IndexError: list assignment index out of range

Haven't investigated much further.

Can you provide information to reproduce this with?
Sent from my Android device with K-9 Mail. Please excuse my brevity.

Not sure which file in my project it's choking on.
Does it just run through the directory alphabetically?

Try running with verbose or debug output:
pep8 -v ...
pep8 -vv ...

Yes
Sent from my Android device with K-9 Mail. Please excuse my brevity.

Can repro it with this script:
foo = \
"""foo
bar"""

# noqa fixes crash per #45 dunno if that means this can close or not

❯❯❯ cat pep8_bug388.py
foo = \
"""foo
bar"""
❯❯❯ pep8 --version
1.5.7
❯❯❯ pep8 pep8_bug388.py
pep8_bug388.py:2:1: E122 continuation line missing indentation or outdented
❯❯❯ python pep8.py --version
1.6.3a0
❯❯❯ python pep8.py pep8_bug388.py
pep8_bug388.py:2:1: E122 continuation line missing indentation or outdented

So I can't reproduce this. It seems like @diminoten had some kind of work-around for this as well. So I'm going to close this. If this rears its head again, though, we should re-open this and re-investigate it.


chore: Merge upstream changes 20210629

What type of PR is this?
/kind cleanup

What this PR does / why we need it:

Merges changes from upstream as of 6/29/2021.
Implements kubernetes-sigs/azuredisk-csi-driver#904 for CloudProvisioner.

Which issue(s) this PR fixes:

Requirements:

[x] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

Pull Request Test Coverage Report for Build 983552106

11 of 30 (36.67%)  changed or added relevant lines in 3 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+16.8%) to 53.052%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/azuredisk/azuredisk.go
6
9
66.67%

pkg/provisioner/cloudprovisioner.go
2
9
22.22%

pkg/azuredisk/controllerserver.go
3
12
25.0%

Files with Coverage Reduction
New Missed Lines
%

pkg/azuredisk/controllerserver.go
1
79.41%

Totals

Change from base Build 981092656:
16.8%

Covered Lines:
2512

Relevant Lines:
4735

💛  - Coveralls


llama/decode-token will flush garbage if output ceases in the middle of a unicode value

llama/decode-token will flush garbage if output ceases in the middle of a unicode value.
(clojure.string/join
 (eduction
  (take 10)
  (llama/decode-token llama-context)
  (llutil/tokenize
   llama-context
   "a@45*D!😊")))
;; "a@45*D!�"

That's probably not a good default.
It's probably better to default to default to not flushing garbage and provide an option if for some reason someone did want that behavior.

Fix in v0.7


CI to build lean

Currently set to run on PR or push to main.
Warnings, like having a sorry, aren't counted as failing. If lean exits with an error then this counts as a fail.

Now let’s see its first run :)


[ARO] Fix #28197: Update permissions validation to correctly handle not_actions roles

Related command
az aro
Description
The az aro create command performs pre-flight validation of user permissions in order to ensure cluster creation is successful. This validation can also be explicitly performed via az aro validate.
This permissions validation has a bug in its handling, which incorrectly flags the presence of a matching not_action in any role to apply to all roles, rather than the specific role it is defined on.
Fixes #28197
Testing Guide
Given a user with multiple role assignments, one of which denies the required privilege via not_actions while another grants it:
{"actions": ["Microsoft.Network/virtualNetworks/*"], "not_actions": ["Microsoft.Network/virtualNetworks/write"]}
{"actions": ["Microsoft.Network/virtualNetworks/write"], "not_actions": []}

The functionality within az aro validate should allow this configuration, whereas the previous implementation would block the request, as seen in #28197.
History Notes
[ARO] az aro create/validate: Fix bug in permissions validation that was preventing cluster creation in cases where the invoking user had the necessary permissions

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

[X] The PR title and description has followed the guideline in Submitting Pull Requests.
[X] I adhere to the Command Guidelines.
[X] I adhere to the Error Handling Guidelines.

ARO

hi @kairu-ms @yonzhan  @jsntcy,  when can PR this be merged?  I have a customer being blocked by this bug and waiting for this fix for 2 months.  thank you.
@Devaraj004

Please fix CI issues first.

/azp run

@yonzhan The CI checks failed due to the format of the pull request title. I had fixed that, but that did not rerun the pipeline and I do not have permissions to do so. Can you rerun the pipeline for this PR?

/azp run


Native Drag & Drop disabled when holding SHIFT key in Chrome/Safari

The Native Drag and Drop appears to become disabled in Chrome (53) and Safari (10) when Shift is held down before starting to drag the element.
However, if you start dragging on an image (again, with the Shift key already pressed) it will work. If there is an image and text in the element being dragged, it'll only work when dragging on the image.
This is apparent on the demo page: http://rubaxa.github.io/Sortable/. The items of just text at the top won't move with the shift key pressed before dragging; the images of the people will work.
And here's a simplified version to demonstrate without using Sortable or other dependencies: http://jsbin.com/kunuxawomu/1/edit?html,css,js,output.
In my particular case, I was attempting to enable Sortable only when the Shift key was pressed and disable it when un-pressed. I was able to bypass this issue by using the "forceFallback" option.

НеIf you want to support shiftKey, turn on force Fallback initially.

If you want to support shiftKey, turn on force Fallback initially.


Update README.md :source example

:source takes a parameter, this isn't obvious when reading the README

Pull Request Test Coverage Report for Build 28

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

Totals

Change from base Build 26:
0.0%

Covered Lines:
150

Relevant Lines:
153

💛  - Coveralls


Add Solstice Client :latest

Adds Solstice client, an app used for mirroring the display to a TV in education/enterprise

Going to refuse since we can’t build a proper uninstall. Still, thank you for the contribution and the fast responses.


feat: update python-hacking to 4.1.0

Flake8 OpenStack Hacking Guidelines Enforcement plugins - Python 3.x
Issue: https://github.com/linuxdeepin/developer-center/issues/5718
Log: update repo

/approve


[ADDITION] Notesnook

Category
Productivity > Digital Notes
Software to be added
Notesnook is a (soon to be open source) end to end encrypted note taking alternative to Evernote & OneNote. I think it will be a good fit for the list of privacy focused software you are making.
Supporting Material
Website: https://notesnook.com
GitHub: https://github.com/streetwriters/notesnook/
Association Disclosure
I am the co-founder
Would you like to submit a PR?
Yes!
Please tick the boxes

[X] You have filled out this form accurately, and to the best of your knowledge
[X] You have indicated weather or not you are associated with the suggested addition
[X] A similar submission has not already been opened for this software/ service
[X] You agree to the code of conduct

Heya @thecodrr
Notesnook looks pretty cool, nice work :)
But lets wait until it's open source before considering it
And I guess that once the repo is updated, it will also be possible for users to self-host it if they wish?
Btw, I really like vericrypt.notesnook.com, solves a very important problem.
Not sure if you were aware, but on the homepage, the link to the privacy policy (https://notesnook.com/privacy) returns a 404.

And I guess that once the repo is updated, it will also be possible for users to self-host it if they wish?

Yes, that'll be possible eventually. Initially the client apps & the shared core will be open sourced. Afterwards, once we have properly tested the self hosting approach, we will open source the sync server.

I know umami is much better than GA, but is it the stuff in src/utils/analytics.ts off by default?

Analytics can be easily toggled on/off on the Importer (where they are used right now) like so:

Hovering on the toggle shows a tooltip which tells what is being collected & how.

On the same topic, maybe also verifying the integrity of imported scripts from external sources would add a layer of protection

All scripts are self-hosted so this is not necessary. They are all 1st party scripts.

Some of the regexs used in Vericrypt, in src/utils/curlparser.ts are susceptible to backtracking, see more: ReDoS

Thank you for the heads up. This curlparser approach was obsolete anyway. I went ahead & upgraded Vericrypt for the new Sync API being used in Notesnook (which uses WebSockets & Message Pack underneath). So this has been removed.

Though just the test environment, but having user-supplied values included in shell commands that are executed directly, may not be a great idea, in packages/tinymce-plugins/scripts/testHarness.js

The tinymce-plugins package is no longer being used or developed (I haven't updated the status yet). We migrated to Tiptap this month so these files will be archived/removed as well.

Minor one, but even though it's a trusted URL, if you're going to use JS instead of an anchor, them probably best to also specify noopener, in src/components/ErrorsList.tsx

Done.

Thank you for taking the time to review this. I am really excited about open sourcing Notesnook; it'll definitely open new opportunities for growth.

@Lissy93 Notesnook is now fully open source! You can check the code here: https://github.com/streetwriters/notesnook

@Lissy93 We have also open sourced the Notesnook Sync Server: https://github.com/streetwriters/notesnook-sync-server


[AVM Module Issue]: slot app settings only applied if appSettingsKeyValuePairs not empty

Check for previous/existing GitHub issues

[x] I have checked for previous/existing GitHub issues

Issue Type?
Bug
Module Name
avm/res/web/site
(Optional) Module Version
latest (0.11.1)
Description
Slot app settings for storage account and app insights are not applied, unless other app settings are specified with appSettingsKeyValuePairs.
I already looked at the source code and tracked down the issue:
In bicep-registry-modules/tree/main/avm/res/web/site/main.bicep:
module app_appsettings 'config--appsettings/main.bicep' = if (!empty(appSettingsKeyValuePairs) || !empty(appInsightResourceId) || !empty(storageAccountResourceId)) {

In bicep-registry-modules/tree/main/avm/res/web/site/main.bicep:
module slot_appsettings 'config--appsettings/main.bicep' = if (!empty(appSettingsKeyValuePairs)) {

The lines should be identical to have the same behavior for specifying slot app settings.
(Optional) Correlation Id
No response

Hey @tsc-buddy,
please triage this issue when you get the chance 🚀


Is it need a directive : hasAnyPermissions?

I define permissions like "resource:action",such as "resource:create,read,update,delete".
And in my web page, I have tree menu, which like
ResourceGroup
----Resource1
----Resource2
May be one user just has permission to access "Resourec1:read", it's need to show menu ResourceGroup and Resource1;
But  another user has no permission to access these two Resource, so ResourceGroup should be hide.
Certainly, I can create a permission "ResourceGroup:read",and assign it to user.
But I have to expend more energy to maintain relationship of them。
I think it's necessary to create hasAnyPermissions like hasAnyRole.
It's hard to describe  with my poor english. Shame~~~

Hi, gnavarro77!
What about create has-all-permission directive!?
In my case I need to check if a subject has twoo permitions at the sime time in order to perform an action.
Eg.: has-permission="['resource:action1', 'resource:action2']"
I have a button that is short for twoo tasks, so I need to check if both permition are satisfied in order to display this element.
The problem in using the has-permition directive is that its evaluate wrong when recieving an array. The result of isPermited method from subject called by this directive will be an array with true or falses, eg: [false, true]. So this directive will considered isPermited for whatever result from any given array, since an array object is evalueted as true for a if statement even if this array is something like that: [false, false, ..., false]
What about has-all-permission directive?

Just to ilustrate the point in code:
https://cloud.githubusercontent.com/assets/12412974/25109885/7947fc7a-23b6-11e7-81c6-ee2a4fa061a6.png

I needed to put it in my angular-shiro.js. Here it are the directive:
  var hasAllPermissionDirective = [ 'subject', '$animate', function(subject, $animate) {       return { 	  	transclude : 'element', 	  	priority : 600, 	  	terminal : true, 	  	restrict : 'A', 	  	$$tlb : true, 	  	link : function($scope, $element, $attr, ctrl, $transclude) { 	  	    var block, childScope, previousElements; 	  	    $scope.$watch(function() { 	  		return subject.authenticated; 	  	    }, function() { 	  		var permissions = $scope.$eval($attr.hasAllPermission) || $attr.hasAllPermission; 	  		permissions = angular.isArray(permissions) ? permissions : [ permissions ]; 	  		if (subject.isPermittedAll(permissions)) { 	  		    if (!childScope) { 	  			childScope = $scope.$new(); 	  			$transclude(childScope, function(clone) { 	  			    block = { 	  				clone : clone 	  			    }; 	  			    $animate.enter(clone, $element.parent(), $element); 	  			}); 	  		    } 	  		} else { 	  		    if (previousElements) { 	  			previousElements.remove(); 	  			previousElements = null; 	  		    } 	  		    if (childScope) { 	  			childScope.$destroy(); 	  			childScope = null; 	  		    } 	  		    if (block) { 	  			previousElements = getBlockElements(block.clone); 	  			$animate.leave(previousElements, function() { 	  			    previousElements = null; 	  			}); 	  			block = null; 	  		    } 	  		} 	  	    }); 	  	}       };   } ];


Add GKE gateway-api/servicepolicies to the catalog

Only all the standard CRDs: https://github.com/GoogleCloudPlatform/gke-networking-recipes/tree/main/gateway-api/config/servicepolicies/crd/standard.

Thanks a lot! Highly appreciated :heart:

Thanks for merging this and for #305!


chore(http-signature-utils): match JWK to Open Payments definition

Changes proposed in this pull request

Remove ~SBF~ nbf, etc from JWK
Return JWK from generateTestKeys
Flatten jwk in paymentPointerKeys table
Enforce payment pointer jwk type in admin api

Context

fixes #845
fixes #789
partially addresses #656

Checklist

[x] Related issues linked using fixes #number
[x] Tests added/updated
[ ] Documentation added
[ ] Make sure that all checks pass

I don't think it makes the package less open.
This removes optional fields that don't appear to exist in JWK specs.


[refactor] rename dataset; args group; et al.

Rename dataset name;
Arguments group setting;
Rating process in dataset: filter and binarization;
Arguments automatically parsing from configuration file.

Ok to merge.


Further DPE state validations upon warm/update reset

Check that active context thresholds aren't breached
Check that there are at least two contexts with TCI measurements
Check TCI types of root measurement and mbox valid pausers measurement

Add RT tests for these checks.

Decided not to implement the latter 2 checks since the caller can destroy the root measurement and mbox valid pausers measurement.


subroute doesn't work

it doesn't work, but $klein->respond('GET','/hello',function(){return 'hello';})  succeed.
help me pls.
http://api.dev/index.php/hello    (success)
http://api.dev/index.php/hello/go    (404 not found)

i solved this problem.
config nginx.conf:
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?$1 last;
}
}


Add missing librt on linux via NATS_EXTRA_LIB var

I was working on loading cnats via the ffi gem with jruby and noticed that I was having issues loading libnats because...
libnats.so: undefined symbol: clock_gettime.

This loads just fine under MRI.
I noticed we set the NATS_EXTRA_LIB var in the main CMakeLists.txt and that we use it for tests, but we we're not using it in src/CMakeLists.txt. Adding it back fixes the problem.
Here's a failing job in travis: https://travis-ci.org/abrandoned/protobuf-nats/jobs/218995507#L761

Btw, here's the same jruby job pointed at my cnats branch: https://travis-ci.org/abrandoned/protobuf-nats/jobs/219008594

Thanks for your contribution!
@abrandoned actually added NATS_BUILD_WITHOUT_CLOCK_MONOTONIC in src/CMakefile.txt to avoid this problem I believe. To be fair, this whole thing need revisiting because I used defined CLOCK_MONOTONIC but then only use CLOCK_REALTIME.
If the real issue was that rt was missing, I am also questioning if adding it in building nats library is the right thing to do. Maybe it should be added to the application linking to libnats.so? (like I do for the test and examples).
Let me experiment a bit and get back to you.
PS: At any rate, not sure it is doing anything to add it to nats_static.

Oh yeah, I totally forgot about NATS_BUILD_WITHOUT_CLOCK_MONOTONIC! And btw, you're right about nats_static.

Yes, but let me think more about it. I think that what @abrandoned did was actually making such that libnats would not use clock_gettime at all. I think that your fix would be better. Let me experiment and I will get back to you.

@film42 So I have verified that even if we add "rt" to nats target, the examples still need to be linked with "rt". Without adding "rt" in nats, you can see from Travis that the build of the library works fine.
So I wonder if adding "rt" to your build (without changing anything to libnats) would not be enough. That being said, it seems that it would not cause a problem adding it to libnats? And if so, maybe we could remove the CMake flag that we added to disable use of clock_gettime. Could you please experiment and see if:

adding "rt" in your build is enough
if not and you add it to libnats, remove NATS_BUILD_WITHOUT_CLOCK_MONOTONIC and see if @abrandoned issue is no longer relevant?

Thanks again!

@kozlovic I found that I can set my own cmake global vars with master branch, so I might not need this PR after all:
cmake .. -DCMAKE_SHARED_LINKER_FLAGS="-lrt"
make VERBOSE=1

[ 37%] Linking C shared library libnats.so
...
/usr/bin/cc  -fPIC   -std=c99 -pedantic -pthread  ... -lrt ...

So this might be good enough for me since it seems to be specific to loading in the JVM.
@abrandoned are working on the same thing, so we might not end up using NATS_BUILD_WITHOUT_CLOCK_MONOTONIC. So we can remove this and add the librt to the shared object if you prefer. Might be better to do this?

@kozlovic I ran travis with NATS_BUILD_WITHOUT_CLOCK_MONOTONIC and it passed, and ran with the fix in this branch and it worked, so I went ahead and removed NATS_BUILD_WITHOUT_CLOCK_MONOTONIC.

Thank you for your contribution!


fix(meta): fix catalog notification

I hereby agree to the terms of the Singularity Data, Inc. Contributor License Agreement.
What's changed and what's your intention?
as title
Please explain IN DETAIL what the changes are in this PR and why they are needed:

fix catalog notification

Checklist

~[ ] I have written necessary rustdoc comments~
~[ ] I have added necessary unit tests and integration tests~
[x] All checks passed in ./risedev check (or alias, ./risedev c)

Refer to a related PR or issue link (optional)

cc @zwang28 @yezizp2012


Push aws-ebs-csi-driver to default catalog

For AWS release v15 we need to push this into default-catalog. This needs to get rolled out in new clusters.

if its in default catalog it means it will be installed by default everywhere or only on release we specify?

if its in default catalog it means it will be installed by default everywhere or only on release we specify?

This will just push the tarball to the catalog repo. An app CR will only be created if the app is in the release CR.


Add domain aluno.unex.edu.br

The Association of Alumni of the State University of Bahia (UNEX/UNEB) is a non-profit association, formed by graduates of undergraduate and postgraduate courses at UNEB.
Course guide: https://unex.edu.br/graduacao/sistemas-de-informacao

Add domain aluno.unex.edu.br


deprecate DOCTEST_MATLAB/DOCTEST_OCTAVE

After #137, we don't need them.  Possible replacements:
XFAIL_IF(~(exist ('OCTAVE_VERSION', 'builtin')))
XSKIP_IF(is_octave())
[edited]

We could document the 2nd one in help doctest: Doctest provides a convenience function @code{is_octave()}, but you can access arbitrary variables and...

We could deprecate in the sense of removing from "help doctest" but leave it supported (and leave tests in place).

@catch22, I think you use these features: what do you think?

Great! Just to be sure, the above should read XFAIL_IF(...) rather than XFAIL(if ...), right?
The fact that is_octave is a private function but still reachable from the tests is somewhat cute (too cute? :smile:?) and avoids having to add a doctest_ prefix...

More to the point of your question: I think we are using DOCTEST_MATLAB in test_long_rows.m.
Upon reflection, I think that is_matlab() is semantically different from is_octave(). E.g., when excluding a doctest due to a MATLAB bug/misfeature we might want to skip based on the former. So I think it might be good to keep the two constants for now?

oops, editting...

yeah, maybe too cute.  For example., anyone writing %! octave tests might be mislead into using it there too.

re: semantically different: nothing stopping us from adding a too-cute is_matlab()...

Let's perhaps keep the constants for now. They are likewise defined in a local scope (only accessible by tests), but I think I like that the prefix makes it clear that they are defined by doctest. Would that be alright for you?

Sure, works for me.


Report a problem dialog cannot report a problem which is not included in document.

My machine which I installed visual studio is offline.
According to your previous suggestion I should be able to use setup on any other online machine and report my issue. It is funny that your setup cannot connect either (online machine).
Clicking on sign in in report a problem page shows following screen (opens a blank dialog box for about 1 miunte then closes and shows the screen below)
clicking signin again does nothing, clicking on let us know, takes me to a support page which is for paid license (not community).
Your support page only allow me to do license and refund related requests.
Since you left me no other way to contact an organization that loves to collect user data without their knowledge but when user want to give you information willingly, you don't accept it, I'm putting the issue here, hoping you that are working in said organization, contact it internally and let them know they screwed again!

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

ID: 2386e67e-a67b-de55-db57-e29a83dcb410
Version Independent ID: 6247fba9-4255-9a59-c206-0e8547e12335
Content: How to report a problem with Visual Studio - Visual Studio
Content Source: docs/ide/how-to-report-a-problem-with-visual-studio.md
Product: visual-studio-windows
Technology: vs-ide-general
GitHub Login: @seaniyer
Microsoft Alias: seiyer

@bobsort -- for sign-in errors or for issues with the Feedback Tool in Visual Studio, please email us at<EMAIL_ADDRESS>


fix(chat): fix downloading without extension and name of code block (Issue #2867)

Description:

fix downloading without extension
fix name of code block with sh-script
fix Dockerfile and Makefile syntax highlighting

Issues:

Issue #2867
Issue #2868

UI changes

Checklist:

[x] the pull request name complies with Conventional Commits
[x] the pull request name starts with fix(<scope>):, feat(<scope>):, feature(<scope>):, chore(<scope>):, hotfix(<scope>): or e2e(<scope>):. If contains breaking changes then the pull request name must start with fix(<scope>)!:, feat(<scope>)!:, feature(<scope>)!:, chore(<scope>)!:, hotfix(<scope>)!: or e2e(<scope>)!: where <scope> is name of affected project: chat, chat-e2e, overlay, shared, sandbox-overlay, etc.
[x] the pull request name ends with (Issue #<TICKET_ID>) (comma-separated list of issues)
[x] I confirm that do not share any confidential information like API keys or any other secrets and private URLs

/deploy-review


File not found error when using the "Pasting with Turndown" powerpack with TypeScript

Error:
<path>/node_modules/hypermd/powerpack/paste-with-turndown.d.ts
(1,22): File '<path>/node_modules/hypermd/src/powerpack/typings/turndown.d.ts' not found.

This is because the paste-with-turndown.d.ts file is referencing a file not included in the npm package:
/// <reference path="../src/powerpack/typings/turndown.d.ts" />

Thanks. I will fix this in few days.


OCPBUGS-8631: remove dependency on go.mongodb.org/mongo-driver

This commit updates a number of packages to remove any dependency on the MongoDB Go Driver in the dpu-network-operator.
Backport of https://github.com/openshift/dpu-network-operator/pull/80

/jira refresh

Hi @zhaozhanqi is it possible to verify this change? Backport of https://github.com/openshift/dpu-network-operator/pull/80

@wizhaoredhat @bn222 PTAL Backport of https://github.com/openshift/dpu-network-operator/pull/80, need lgtm/approved

/label approved

/lgtm

/label approved

/label cherry-pick-approved


HDDS-4861. [SCM HA Security] Implement generate SCM certificate.

What changes were proposed in this pull request?
This Jira is to implement generatePeerSCMCertificate which will be called during bootStrap and also during init by primary SCM. This is similar to how OM and DN gets certificate.
During implementation as the validCerTable key is SerialId which is BigInteger, created a new table validScmCertsTable to store scm certs. This is being done so that we can implement querySCMCertificates which can return all SCM certs.
Also, I see there is a TODO for list Certs based on role. Not sure if there is a way in the current code to return certs from the table. If there is any approach, will rework this PR based on review comments.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-4861
How was this patch tested?

@xiaoyuyao I have addressed review comments.

Thank You everyone for the review.


Streamline LED roulette example

This PR brings the LED roulette to up-to-date dependencies and factors out the examples, so that they could be tested in CI.
I wanted to update all examples at once in the first place. But this did not get to the pace I wanted, so I will attempt this one after another.

r? @jamesmunns
(rust-highfive has picked a reviewer for you, use r? to override)


Add Adafruit GFX support for drawing a BMP from RAM

I'm using this to draw icons in my application. Compiling them in is simpler than putting them on an SD card (which I don't have in my current hardware, although there is a slot for one).
Note that this change includes #43 as well, under the assumption that that will be merged first. If changes need to be made to that PR, I'll rebase this one.

Hi Tim -- I'd be interested in integrating this PR as it would be really useful.
However, unfortunately I noticed that it will break compilation for Arduino targets (eg. ATmega2560) due to the use of FS.h (which is presumably only available in the ESP8266 arduino core). I'll continue to see if I can find a way that would support the same functionality with the libraries available on Arduino targets.
It does look like one could probably create a simple RAM/FLASH based version of the DrvRead#SD(), seek() and read() routines without much overhead. I'll take a look. Thanks again for the contribution.

Thanks for taking a look at it. I didn't realize FS.h only exists for the
ESP cores. I might find some time in the future to figure out an
alternative.
Relatedly, you might want to set up your repo to enable travis builds
(using eg. https://github.com/adafruit/travis-ci-arduino). That way this
would have been flagged as soon as I created the PR, and you wouldn't have
to spend your time running the build.
On Sat, Apr 14, 2018 at 11:56 PM, Calvin Hass<EMAIL_ADDRESS>wrote:

Hi Tim -- I'd be interested in integrating this PR as it would be really
useful.
However, unfortunately I noticed that it will break compilation for
Arduino targets (eg. ATmega2560) due to the use of FS.h (which is
presumably only available in the ESP8266 arduino core). I'll continue
to see if I can find a way that would support the same functionality with
the libraries available on Arduino targets.
It does look like one could probably create a simple RAM/FLASH based
version of the DrvRead#SD(), seek() and read() routines without much
overhead. I'll take a look. Thanks again for the contribution.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ImpulseAdventure/GUIslice/pull/44#issuecomment-381384772,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AC9X31LC5hOP-DM7hWpYlIM0Zt2yIsNqks5tou8KgaJpZM4TFk4u
.


Can we have the ability to change the attack speed of some items?

You shouldn't have to use the potiontick power to change the attack speed of an item. A new command should be added.
/rpgitem [Item] hitspeed [integer]
The attack meter would recharge according to the integer in ticks. Putting 0 or -1 would remove the attack cooldown completely.

 You can use NBT attribute modifier to change its damage and speed then.


integration-tests: print stack trace on error-exit

Pull Request Details
Just a quick attempt at trying to improve the test failure reporting, so they're easier to see.
Description
An error like this:
https://github.com/aSemy/gradle-intellij-plugin/actions/runs/3163794945/jobs/5151657253#step:7:13
Run ./verify-plugin-configuration/verify.main.kts `which gradle`
build directory does not exist: /home/runner/work/gradle-intellij-plugin/gradle-intellij-plugin/integration-tests/verify-plugin-configuration/build
Error: Process completed with exit code 255.

is not very useful.
I hope that adding the stacktrace will provide some useful information that will allow for better insight into the reason for the test failure.
Related Issue

Motivation and Context

How Has This Been Tested

Types of changes

[ ] Docs change / refactoring / dependency upgrade
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[ ] I have read the CONTRIBUTING document.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have included my change in the CHANGELOG.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

I think this is a little helpful
Example: https://github.com/aSemy/gradle-intellij-plugin/actions/runs/3164184085/jobs/5152312687#step:7:12
build directory does not exist: /home/runner/work/gradle-intellij-plugin/gradle-intellij-plugin/integration-tests/verify-plugin-configuration/build
java.lang.Exception: Stack trace
	at java.base/java.lang.Thread.dumpStack(Thread.java:1383)
	at Verify_utils.exitIf(verify.utils.kts:148)
	at Verify_utils.getBuildDirectory(verify.utils.kts:48)
	at Verify_main$1.invoke(verify.main.kts:9)
	at Verify_main$1.invoke(verify.main.kts:7)
	at Verify_utils.init(verify.utils.kts:[12](https://github.com/aSemy/gradle-intellij-plugin/actions/runs/3164184085/jobs/5152312687#step:7:13))
	at Verify_main.<init>(verify.main.kts:7)

It is indeed!


fixed: Mistake in the text of new JS challenge

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes https://github.com/freeCodeCamp/freeCodeCamp/issues/48027

As a new contributor, we encourage you to read our contributing guidelines.
We expect our contributors to be aware of the process specific to this project. Following the guidelines religiously earns you the respect of fellow maintainers and saves everyone time.
Some examples of this are:

Do not edit files directly through GitHub – while you can, it's not a good idea.
Make sure you follow the PR checklist and not just tick things off; otherwise, we won't take you seriously.
Use the correct way to link issues in the description of the PR by updating the XXXXXX. Do not just add issue numbers everywhere and anywhere you feel like.
Keep mentions and review requests to a minimum. We understand you are excited about contributing, and our maintainers will get back to you as soon as they get a chance.
Do not work directly off your main branch - create a new branch for the changes you are working on.

We appreciate you taking the time to help us, and we hope to see more contributions from you.
Happy Contributing.


Fix broken documentation links

Fixes https://github.com/k8s-operatorhub/operatorhub.io/issues/58
Fixes https://github.com/k8s-operatorhub/operatorhub.io/issues/11
Closes https://github.com/k8s-operatorhub/operatorhub.io/pull/49
I hope all links are correct now. Some of the links were 404, others linked to archived repositories.

Hey @mvalarh! Sorry for the ping, but are you still maintaining this repository? I would really like to get the broken links on operatorhub.io fixed.

Hey @jeff-phillips-18 and @jozzi. Sorry for the ping, but do you know someone who is still maintaining this repository or where to reach out to find someone?


Computed is not triggered anymore after upgrading vue from 3.2.25 to 3.2.45

Vue version
3.2.45
Steps to reproduce
Define computed field and return to HTML:
 const gridRows = computed(() => store.state.dynamicgrid["MyStore"].rows)
In HTML, use :isDisabled:
<CButton @click="doSomething" :disabled="!gridRows.filter(row => row.versleten || row.exchange).length">             Continue </CButton>
Set GridRows equal to an array of 5 items.
Now change a property in one of the 5 elements of your array. Do not change the array itself!
Vue used to be able to pick changes like this up, but it doesn't anymore.
Even when I rewrite the computed field to where it directly uses one the elements, purely for testing purposes, such as:
 const gridRows = computed(() => store.state.dynamicgrid["MyStore"].rows[0].isSomehing
It doesn't actually trigger anymore.
What is expected?
To pick changes up just like it normally would.
What is actually happening?
Button conditions are only evaluated once.
System Info
System:
    OS: Windows 10 10.0.22000
    CPU: (16) x64 AMD Ryzen 9 5900HX with Radeon Graphics
    Memory: 5.80 GB / 27.86 GB
  Binaries:
    Node: 16.14.2 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 8.5.0 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Spartan (44.22000.120.0), Chromium (108.0.1462.54)
    Internet Explorer: 11.0.22000.120
  npmPackages:
    vue: 3.2.45 => 3.2.45

Any additional comments?
This happened when upgrading Vue from 3.2.25 to 3.2.45

Please provide a runnable reproduction as is required in our issue guidelines.

https://6hrrjp.csb.app/

"runnable reproduction" means source code i can run. Either on sfc.vuejs.org or in a github repo or similar.


[Feature] How to cache DNS responses?

Verify steps

[X]  我已经在 Issue Tracker 中找过我要提出的请求 I have searched on the issue tracker for a related feature request.
[X]  我已经仔细看过 Documentation 并无法找到这个功能 I have read the documentation and was unable to solve the issue.

Description
is it possible to save or cache dns query responses so clash doesn't query the dns server every time a request to a domain is being made?
Possible Solution
an option in config file under dns to set the cache invalidation time so the lookup table could be reset after that time and refilled on new requests.

You can install some cache DNS server on the front, upstream use clashsDNS and ports.

I think it is cached based on ttl.
If you use nextdns you can make the ttl longer so clash would hold it longer in the cache also.
Anyway I'm using adguardhome with clash as upstream


Unable to connect Azure MySql via terminal or mysql client

I have followed the official tutorial to create azure mysql database
https://docs.microsoft.com/en-us/azure/mysql/quickstart-create-mysql-server-database-using-azure-cli
, the server has created but i am unable to connect it from my pc via terminal or workbench. Following is the error that i am receiving.
ERROR 2003 (HY000): Can't connect to MySQL server on 'xxxxxxxx.mysql.database.azure.com' (60)
Can you please tell me any workaround for this ? Thank you.

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

ID: 2e3e33cf-94ec-8b93-ad97-966ca045891d
Version Independent ID: f22a9c66-1939-9708-fff1-93602b24c1c7
Content: Quickstart: Create an Azure Database for MySQL server - Azure CLI
Content Source: articles/mysql/quickstart-create-mysql-server-database-using-azure-cli.md
Service: mysql
GitHub Login: @ajlam
Microsoft Alias: andrela

@omeraslam305 Thank you for your question.  We are investigating the issue.

@omeraslam305 Do you have a firewall rule in place to allow traffic from the PublicIP address your PC has currently been issues? You can use a service such as: https://www.whatismyip.com/ to identify what your PublicIP address is, and add that to your firewall rules.
If you navigate to the Connection security blade for your MySQL instance, you can then add the PublicIP address where you are attempting to connect from:

@omeraslam305 We will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion.

I am having the same issue. Followed the tutorial, added firewall role and all. But no luck.

@metin, is the error message the same as the original poster's? Also, is SSL enabled or disabled on the server?

@ajlam I just talked to our network guy, seems like it is because of our corporate network and firewall. I was able to connect outside of our work network.
Maybe you can include this as a notice in the tutorial.

@metin, thanks for the feedback. Will look to see how we can improve the quickstart with a warning/notice.


Printing debug logs not possible

Hello!
When I try to print the debug logs, I get an error. What is the problem here?
Printing debug logs. Be patient, this should take maximum 2 minutes ..
ls: reading directory '/mnt/hdd': Input/output error
(standard_in) 1: syntax error
/home/admin/config.scripts/blitz.datadrive.sh: line 438: * 1024: syntax error: operand expected (error token is "* 1024")
Redacting ..
redacting file: /var/cache/raspiblitz/debug.log
https://l.termbin.com/54jy

Your termbin link shows a working debug file ... so your problem is that its not printed on the console?


doesnt work for no reason (v56) (cracked)

i installed every version of it and tried but every try, it is not working. not only that, every try the profit quota is becoming zero. i dont know is it a setup issue or mod issue

i installed every version of it and tried but every try, it is not working. not only that, every try the profit quota is becoming zero. i dont know is it a setup issue or mod issue

Based on my testing and the fact BetterEmotes doesn't hook into or change the profit quota at all, have you tried with only BetterEmotes installed?


Correction for raw affiliation Univ Rennes, ENSCR, INSA Rennes, CNRS, ISCR - UMR 6226, F-35000, Rennes, France

Correction needed for raw affiliation Univ Rennes, ENSCR, INSA Rennes, CNRS, ISCR - UMR 6226, F-35000, Rennes, France
raw_affiliation_name: Univ Rennes, ENSCR, INSA Rennes, CNRS, ISCR - UMR 6226, F-35000, Rennes, France
new_rors: 04xaa4j22;015m7wh34;01h0ffh48;02feahw73;00adwkx90
previous_rors: 04xaa4j22;015m7wh34;01h0ffh48;02feahw73
works_examples: W4386139146
contact: 400d8ca277f98778afca80b67db35078:30b7116f7df7ca08f0e1d092d111b7df @ univ-rennes.fr

This issue was accepted and ingested by the OpenAlex team on 2024-10-10. The new affiliations should be visible within the next 7 days.


Helpers not available in error_404.php template

I am using the base_url function in my error_404.php template file. It works fine when the requested controller is found, but it fails when the controller is not found.
I have already loaded the url_helper through the autoload.php file, but still it doesn't work.

I have found a work around here. But still the devs should make sure that this work around is no longer required.

This is a technical limitation and even the work-around you have won't always work.

What kind of technical limitation? Can you please explain.

The auto-loader is triggered by the controller constructor, because libraries (and other classes like models) loaded by it are assigned to controller properties, and that's the earliest execution point possible for this.


New pc

Newly added function get_pc to response.py that calculates an approximate partial coding fraction (tested to be close to but slightly higher) by finding the number of dets with a line of sight to the src position that goes through the mask polygon. So heasoft is no longer required for the realtime search
This is now used instead of the partial coding image in the background script to find which srcs are in the fov and in do_manage to find where OFOV is.
This has been tested to work on trigger 706548264 with results listed here for config 99, https://guano.swift.psu.edu/trigger_report?id=706548264

Looks to be off the most at "middle" partial codings. The main difference is this calculation counts the large lead tiles that the support struts connect to as part of the mask (and some other smaller stuff too) while the partial coding image doesn't. For the stuff it's replacing, it's most important to be near correct at the boundary between in and out of fov, which seems like it's close enough for me.
theta, phi: 20.0 25.0
PC img = 0.988
PC new = 0.987
theta, phi: 35.0 25.0
PC img = 0.631
PC new = 0.714
theta, phi: 45.0 25.0
PC img = 0.316
PC new = 0.417
theta, phi: 50.0 25.0
PC img = 0.152
PC new = 0.245
theta, phi: 52.5 25.0
PC img = 0.050
PC new = 0.089
theta, phi: 54.0 25.0
PC img = 0.016
PC new = 0.029
theta, phi: 54.8 25.0
PC img = 0.007
PC new = 0.011


Bugfix: Missing "this.functions."

This was already fixed in version 1.6.1, but it seams that it got lost in version 1.6.2.

will have a look later today...

deployed v.1.6.3


ML Model Interface

Description
This will allow us to convert our remote models into a strong-type-like model, which we use an input and output in the model_interface field to annotate the input and the output schema for the model. Notably, this interface can also be used to validate the input and output of the model.
Issues Resolved
This issue is for the RFC #2354
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[X] Commits are signed per the DCO using --signoff

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.

@b4sjoo , could you share an example for input/output config? That will help us to understand the pr better.