A little confuse about pty.StartWithSize

the high light code defer tty.Close()
I wonder why close slave after c.Start() without waiting it finishs
I have tried to close slave after cmd finished(the cmd is /bin/zsh), the origin shell can't come back

could you tell me the reason?

It has to do with fork() and how unix processes work.
We create the pty master/slave pair on the parent process, then fork the process, resulting in that pair being cloned. On the child process, we set the I/O to the slave and exec the target command, resulting in that command overriding the child process.
On the parent process, we don't use that slave at all as we use the master side of it to communicate with the child, so we close it, to be clean.
Technically, you don't have to close it, or you can close at a later time, it doesn't really matter.
I suspect your issue comes down to your I/O synchronization and not the closing order. Here is a sample code that duplicates the StartWithSize code, skipping the slave close and returning it instead so it can be closed after the command, as you described. I made it more "complicated" than it has to be so we can print debug logs each step of the way.
package main

import (
        "io"
        "os"
        "os/exec"
        "syscall"

        "github.com/kr/pty"
)

// startWithSize is a copy of pty.StartWithSize that doesn't close the slave, but returns it instead.
// Originally, the var names are "pty" and "tty", but as we talk about master/slave, I renamed them.
// pty = master, tty = slave.
func startWithSize(c *exec.Cmd, sz *pty.Winsize) (master, slave *os.File, err error) {
        master, slave, err = pty.Open()
        if err != nil {
                return nil, nil, err
        }
        // defer slave.Close()
        if sz != nil {
                err = pty.Setsize(master, sz)
                if err != nil {
                        slave.Close()
                        return nil, nil, err
                }
        }
        if c.Stdout == nil {
                c.Stdout = slave
        }
        if c.Stderr == nil {
                c.Stderr = slave
        }
        if c.Stdin == nil {
                c.Stdin = slave
        }
        if c.SysProcAttr == nil {
                c.SysProcAttr = &syscall.SysProcAttr{}
        }
        c.SysProcAttr.Setctty = true
        c.SysProcAttr.Setsid = true
        err = c.Start()
        if err != nil {
                slave.Close()
                return nil, nil, err
        }
        return master, slave, err
}

func main() {
        // Create the zsh command.
        cmd := exec.Command("/bin/zsh") // nolint: gosec
        // Start the command with a pty.
        master, slave, err := startWithSize(cmd, nil)
        if err != nil {
                panic(err)
        }

        // Copy stdin/stdout to/from the tty master. Use a channel to wait for the routines to end.
        ch := make(chan struct{}, 2)
        go func() {
                _, _ = io.Copy(os.Stdout, master)
                println("Stdout ended.")
                ch <- struct{}{}
        }()

        go func() {
                _, _ = io.Copy(master, os.Stdin)
                println("Stdin ended, exiting the shell and closing master.")
                _ = cmd.Process.Signal(os.Interrupt)
                _ = master.Close()
                ch <- struct{}{}
        }()
        // Wait for the I/O to be completed.
        <-ch
        <-ch
        println("Stdin and stdout closed. Waiting for process to end.")
        // Make sure the command is finished.
        _ = cmd.Wait()
        println("Command finished. Closing the slave.")
        // "close slave after cmd finished(the cmd is /bin/zsh)"
        if err := slave.Close(); err != nil {
                panic(err)
        }
        println("success")
}

Closing for now as it doesn't seem to be an issue with the library.

Note that it is the exact same concept as "regular" (i.e. without tty) Exec where the parent creates the pipes, forks, the child use the pipes as I/O to exec the target command (while in tty mode, all I/O are set the the tty). After the fork, the parent closes the child's side of the pipe to cleanup.

@creack
I try your code and I found a problem:
When I input ls, the gnome-shell will display

sherlock ~ ls
ls
./ ../ somedir/ somefile

I read https://github.com/kr/pty#shell and it use
// Set stdin in raw mode.
        oldState, err := terminal.MakeRaw(int(os.Stdin.Fd()))
        if err != nil {
                panic(err)
        }
        defer func() { _ = terminal.Restore(int(os.Stdin.Fd()), oldState) }() // Best effort.

After use  https://github.com/kr/pty#shell codes, now when I input ls, it will display

sherlock ~ ls
./ ../ somedir/ somefile

But when I set stdin in raw mode, your code like my code, the problem happened again
I modify the codes
package main

import (
	"io"
	"os"
	"os/exec"
	"syscall"

	"github.com/kr/pty"
	"golang.org/x/crypto/ssh/terminal"
)

// startWithSize is a copy of pty.StartWithSize that doesn't close the slave, but returns it instead.
// Originally, the var names are "pty" and "tty", but as we talk about master/slave, I renamed them.
// pty = master, tty = slave.
func startWithSize(c *exec.Cmd, sz *pty.Winsize) (master, slave *os.File, err error) {
	master, slave, err = pty.Open()
	if err != nil {
		return nil, nil, err
	}
	// defer slave.Close()
	if sz != nil {
		err = pty.Setsize(master, sz)
		if err != nil {
			slave.Close()
			return nil, nil, err
		}
	}
	if c.Stdout == nil {
		c.Stdout = slave
	}
	if c.Stderr == nil {
		c.Stderr = slave
	}
	if c.Stdin == nil {
		c.Stdin = slave
	}
	if c.SysProcAttr == nil {
		c.SysProcAttr = &syscall.SysProcAttr{}
	}
	c.SysProcAttr.Setctty = true
	c.SysProcAttr.Setsid = true
	err = c.Start()
	if err != nil {
		slave.Close()
		return nil, nil, err
	}
	return master, slave, err
}

func main() {
	// Create the zsh command.
	cmd := exec.Command("/bin/zsh") // nolint: gosec
	// Start the command with a pty.
	master, slave, err := startWithSize(cmd, nil)
	if err != nil {
		panic(err)
	}

	// Set stdin in raw mode.
	oldState, err := terminal.MakeRaw(int(os.Stdin.Fd()))
	if err != nil {
		panic(err)
	}
	// defer func() { _ = terminal.Restore(int(os.Stdin.Fd()), oldState) }() // Best effort.

	// Copy stdin/stdout to/from the tty master. Use a channel to wait for the routines to end.
	ch := make(chan struct{}, 2)
	go func() {
		_, _ = io.Copy(os.Stdout, master)
		println("Stdout ended.")
		ch <- struct{}{}
	}()

	go func() {
		_, _ = io.Copy(master, os.Stdin)
		println("Stdin ended, exiting the shell and closing master.")
		_ = cmd.Process.Signal(os.Interrupt)
		_ = master.Close()
		ch <- struct{}{}
	}()
	// Wait for the I/O to be completed.
	<-ch
	println("ch 1")
	<-ch
	println("ch 2")
	println("Stdin and stdout closed. Waiting for process to end.")
	// Make sure the command is finished.
	_ = cmd.Wait()
	println("Command finished. Closing the slave.")
	// "close slave after cmd finished(the cmd is /bin/zsh)"

	_ = terminal.Restore(int(os.Stdin.Fd()), oldState)

	if err := slave.Close(); err != nil {
		panic(err)
	}
	println("success")
}

so I can get more debug info. When I run it, there is no logs when I input Ctrl+D to exit zsh shell, it meens io.Copy(os.Stdout, master) and io.Copy(master, os.Stdin) havn't return

This is the expected behavior. The provided code was an example based on your question.
Is there a particular reason you use a custom startWithSize and close the slave later on? As mentioned, as it is not used in the parent, there is no impact.
Using the raw mode changes how the process and I/O behave. "ctrl-d" doesn't close stdin anymore, but sends EOT to the shell which exits. You need to properly arrange your copy routines / watch for the child process status and adjust accordingly.
The point of ptys is to manage processes that require the terminal. In a "real world" use-case, you would de-couple the process ttys and the parent's I/Os.
In order to couple the command tty's with the parent's I/Os, it is easier to use something like this instead:
func main() {
        cmd := exec.Command("/bin/zsh") // nolint: gosec
        cmd.Stdin = os.Stdout
        cmd.Stdout = os.Stdout
        cmd.Stderr = os.Stderr
        if err := cmd.Run(); err != nil {
                panic(err)
        }
}

If you explain what you are trying to achieve, I might be able to help. Issues on this repo are for the pty lib itself though. How to use the tty / how to manage i/o pipes questions would be better suited on the golang-nuts google group or stackoverflow.

I extended on the example I gave you, not sure what you are trying to do, but here is an example showcasing how one could create a process multiplexer (multiple clients using the same process, like tmux/screen & co).
package main

import (
        "io"
        "os"
        "os/exec"
        "sync"
        "time"

        "github.com/kr/pty"
        "golang.org/x/crypto/ssh/terminal"
)

// Cmd extends exec.Cmd to support multiple clients.
type Cmd struct {
        *exec.Cmd
        sync.RWMutex

        ttyW io.Writer

        clients map[int]chan []byte
        idx     int
}

// Attach the process tty to then given in/out stream.
// Return the detach function.
func (c *Cmd) Attach(in io.Reader, out io.Writer) func() {
        // Buffer channel for the tty reads.
        ch := make(chan []byte, 10) // Arbitrary buffer size, just need to hold what's coming while we actually print it.

        // Pick an idx and increment the counter. Store the buf channel in the clients list.
        c.Lock()
        idx := c.idx
        c.idx++
        c.clients[idx] = ch
        c.Unlock()

        // Setup the pipe for Stdin -> tty. (So we can detach without closing either side.)
        r, w := io.Pipe()
        go func() {
                _, _ = io.Copy(w, in)
                println("Attach stdin pipe ended.\r")
                _ = r.Close()
        }()
        go func() {
                _, _ = io.Copy(c.ttyW, r)
                println("TTY stdin pipe ended.\r")
        }()

        // Start the buffer channel consumer routine.
        go func() {
                defer println("Attach stdout pipe ended.\r")

        loop:
                select {
                case buf, ok := <-ch: // Consume the chan.
                        if !ok { // If closed, we are dettached, stop here.
                                return
                        }
                        // Write the buf to stdout.
                        if _, err := out.Write(buf); err != nil {
                                // If the destination is closed, stop consuming the chan.
                                if err == io.EOF {
                                        return
                                }
                                // Otherwise, it is an actual issue.
                                panic(err)
                        }
                }
                goto loop
        }()

        // Return the detach function.
        return func() {
                println("Detach called\r")
                c.Lock() // Make sure to lock to avoid races around the close / map delte.
                if ch, ok := c.clients[idx]; ok {
                        close(ch) // Close the tty's stdout read routine.
                        delete(c.clients, idx)
                }
                c.Unlock()
                _ = r.Close() // Close the Stdin's read routine.
        }
}

func start() *Cmd {
        // Create the zsh command.
        cmd := &Cmd{
                Cmd:     exec.Command("/bin/zsh"), // nolint: gosec
                clients: map[int]chan []byte{},
        }

        // Start the command with a pty.
        master, err := pty.Start(cmd.Cmd)
        if err != nil {
                panic(err)
        }
        // Keep the master in the Cmd struct so we can write to it.
        cmd.ttyW = master

        // Start the process's tty stdout read dispatach.
        go func() {
                defer println("Process read dispatch ended.\r")
                buf := make([]byte, 32*1024)
        loop:
                n, err := master.Read(buf) // Read the tty.
                if err != nil {            // In case of error, close everyone.
                        cmd.RLock()
                        defer cmd.RUnlock()
                        for idx, client := range cmd.clients {
                                close(client)
                                delete(cmd.clients, idx)
                        }
                        return
                }
                out := make([]byte, n) // Make a copy of the read buffer and start reading again.
                copy(out, buf[:n])
                go func() { // Send the copy to each clients.
                        cmd.RLock()
                        defer cmd.RUnlock()
                        for _, client := range cmd.clients {
                                select {
                                case client <- out:
                                default:
                                        println("\r\n*dropped data*\r")
                                }
                        }
                }()
                goto loop
        }()

        // When the command is done, close the master and all the pipes.
        go func() {
                _ = cmd.Wait()
                println("Command exited\r")
                _ = master.Close()
                _ = cmd.Process.Release()
        }()

        return cmd
}

func main() {
        // As we deal with UI tty proccesses, set the raw mode.
        oldState, err := terminal.MakeRaw(int(os.Stdin.Fd()))
        if err != nil {
                panic(err)
        }
        defer func() { _ = terminal.Restore(int(os.Stdin.Fd()), oldState) }() // Best effort.

        // Start the command.
        cmd := start()

        // Attach to the process tty.
        dettach := cmd.Attach(os.Stdin, os.Stdout)

        time.Sleep(5e9)

        dettach()
        println("detached\r")

        println("process still running, but not hooked to current stdin/stdout\r")
        time.Sleep(5e9)

        println("re-attaching\r")
        dettach = cmd.Attach(os.Stdin, os.Stdout)

        time.Sleep(5e9)

        println("re-detaching\r")
        dettach()

        println("process still running, but not hooked to current stdin/stdout\r")
        time.Sleep(5e9)

        println("killing process.\r")
        _ = cmd.Cmd.Process.Kill()
        time.Sleep(1e9)

        println("bye\r")
}

Actually I am learning docker and writing a docker daemon, I try to write a feature like docker attach or docker run -it alpine sh. I create pty master and slave, and then let slave be cmd's stdout stdin stderr. To save cmd output, I use bytes.Buffer and then io.Copy(buffer, master). So I want to know what else I should do to master, is it necessary to set raw mode for master?

The client will communicate daemon with grpc stream, daemon will put []byte into a grpc response and send it by grpc stream

docker attach / docker run -it behavior can easily be achieved using the provided example. Here is a more concrete example showcasing it, using http.
package main

import (
        "bufio"
        "fmt"
        "io"
        "net"
        "net/http"
        "os"
        "os/exec"
        "sync"

        "github.com/kr/pty"
        "golang.org/x/crypto/ssh/terminal"
)

// Cmd extends exec.Cmd to support multiple clients.
type Cmd struct {
        *exec.Cmd
        sync.RWMutex

        ttyW io.Writer

        clients map[int]chan []byte
        idx     int

        wait chan struct{}
}

// Wait blocks until the command ends.
func (c *Cmd) Wait() {
        <-c.wait
}

// Attach the process tty to then given in/out stream.
// Return the detach function.
func (c *Cmd) Attach(in io.Reader, out io.Writer) func() {
        // Buffer channel for the tty reads.
        ch := make(chan []byte, 10) // Arbitrary buffer size, just need to hold what's coming while we actually print it.

        // Pick an idx and increment the counter. Store the buf channel in the clients list.
        c.Lock()
        idx := c.idx
        c.idx++
        c.clients[idx] = ch
        c.Unlock()

        // Setup the pipe for Stdin -> tty. (So we can detach without closing either side.)
        r, w := io.Pipe()
        go func() {
                _, _ = io.Copy(w, in)
                println("Attach stdin pipe ended.\r")
                _ = r.Close()
        }()
        go func() {
                _, _ = io.Copy(c.ttyW, r)
                println("TTY stdin pipe ended.\r")
        }()

        // Start the buffer channel consumer routine.
        go func() {
                defer println("Attach stdout pipe ended.\r")

        loop:
                select {
                case buf, ok := <-ch: // Consume the chan.
                        if !ok { // If closed, we are dettached, stop here.
                                return
                        }
                        // Write the buf to stdout.
                        _, _ = out.Write(buf)
                }
                goto loop
        }()

        // Return the detach function.
        return func() {
                println("Detach called\r")
                c.Lock() // Make sure to lock to avoid races around the close / map delte.
                if ch, ok := c.clients[idx]; ok {
                        close(ch) // Close the tty's stdout read routine.
                        delete(c.clients, idx)
                }
                c.Unlock()
                _ = r.Close() // Close the Stdin's read routine.
        }
}

func start() *Cmd {
        // Create the zsh command.
        cmd := &Cmd{
                Cmd:     exec.Command("/bin/zsh"), // nolint: gosec
                clients: map[int]chan []byte{},
                wait:    make(chan struct{}),
        }

        // Start the command with a pty.
        master, err := pty.Start(cmd.Cmd)
        if err != nil {
                panic(err)
        }
        // Keep the master in the Cmd struct so we can write to it.
        cmd.ttyW = master

        // Start the process's tty stdout read dispatach.
        go func() {
                defer println("Process read dispatch ended.\r")
                buf := make([]byte, 32*1024)
        loop:
                n, err := master.Read(buf) // Read the tty.
                if err != nil {            // In case of error, close everyone.
                        cmd.RLock()
                        defer cmd.RUnlock()
                        for idx, client := range cmd.clients {
                                close(client)
                                delete(cmd.clients, idx)
                        }
                        return
                }
                out := make([]byte, n) // Make a copy of the read buffer and start reading again.
                copy(out, buf[:n])
                go func() { // Send the copy to each clients.
                        cmd.RLock()
                        defer cmd.RUnlock()
                        for _, client := range cmd.clients {
                                select {
                                case client <- out:
                                default:
                                        println("\r\n*dropped data*\r")
                                }
                        }
                }()
                goto loop
        }()

        // When the command is done, close the master and all the pipes.
        go func() {
                _ = cmd.Cmd.Wait()
                close(cmd.wait)
                println("Command exited\r")
                _ = master.Close()
                _ = cmd.Process.Release()
        }()

        return cmd
}

type server struct {
        sync.RWMutex
        commands map[string]*Cmd
}

func (srv *server) start(w http.ResponseWriter, req *http.Request) {
        srv.Lock()
        defer srv.Unlock()

        _ = req.ParseForm()

        name := req.Form.Get("name")
        if name == "" {
                http.Error(w, "missing name", http.StatusBadRequest)
                return
        }

        if _, ok := srv.commands[name]; ok {
                println(name, "Already started.")
                return
        }

        srv.commands[name] = start()

        println("Started", name)
}

type writeFlusher struct {
        *bufio.Writer
}

func (w *writeFlusher) Write(buf []byte) (int, error) {
        n, err := w.Writer.Write(buf)
        _ = w.Writer.Flush()
        return n, err
}

func (srv *server) attach(w http.ResponseWriter, req *http.Request) {
        srv.RLock()
        defer srv.RUnlock()

        _ = req.ParseForm()

        name := req.Form.Get("name")
        if name == "" {
                http.Error(w, "missing name", http.StatusBadRequest)
                return
        }

        cmd, ok := srv.commands[name]
        if !ok {
                http.Error(w, "name not found", http.StatusNotFound)
                return
        }

        println("Hijacking socket.")
        conn, rw, err := w.(http.Hijacker).Hijack()
        if err != nil {
                panic(fmt.Errorf("server hihack: %s", err))
        }
        go func() {
                cmd.Wait()
                _ = conn.Close()
                srv.Lock()
                delete(srv.commands, name)
                srv.Unlock()
        }()

        println("Hijacked.")
        _ = cmd.Attach(rw, &writeFlusher{rw.Writer})
        println("Attach ended.")
}

func newServer() {
        srv := &server{
                commands: map[string]*Cmd{},
        }

        http.HandleFunc("/start", srv.start)
        http.HandleFunc("/attach", srv.attach)
        http.HandleFunc("/run", func(w http.ResponseWriter, req *http.Request) { srv.start(w, req); srv.attach(w, req) })
        println("ready")
        _ = http.ListenAndServe(":8080", nil)
}

func main() {
        if len(os.Args) == 1 {
                panic("Missing args.")
        }
        if os.Args[1] == "-d" {
                newServer()
                return
        }

        if len(os.Args) == 2 {
                panic("Missing name.")
        }

        // As we deal with UI tty proccesses, set the raw mode.
        oldState, err := terminal.MakeRaw(int(os.Stdin.Fd()))
        if err != nil {
                panic(err)
        }
        defer func() { _ = terminal.Restore(int(os.Stdin.Fd()), oldState) }() // Best effort.

        start := func() {
                _, _ = http.Get("http://localhost:8080/start?name=" + os.Args[2])
        }
        attach := func() {
                println("calling attach\r")

                conn, _ := net.Dial("tcp", "localhost:8080")
                _, _ = fmt.Fprintf(conn, "GET /attach?name=%s HTTP/1.1\r\nHost:Localhost\r\n\r\n", os.Args[2])

                println("hijacked\r")
                rw := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn))

                go func() {
                        _, _ = io.Copy(rw, os.Stdin)
                        println("stdin ended\r")
                }()
                _, _ = io.Copy(os.Stdout, rw)
                println("stdout ended\r")
        }

        switch os.Args[1] {
        case "start":
                start()
        case "attach":
                attach()
        case "run":
                start()
                attach()
        default:
                panic("Unknown command.")
        }
}

From there, you can easily cleanup, handle errors and switch from http to gRPC.
To save the command input/output, you could update the "start" function and write to a file (or buffer) each time there is activity on the master.
I hope that helps, however, we are way beyond the original question and the scope of this library's issues. I'd suggest trying the golang-nuts or docker google group or stackoverflow.

Thanks for your help, I think I found a good idea to handle it


Segfault when running bmi-tester

Running bmi-tester causes a segfault when testing bmiHeatDiffusion.
The command:
$ bmi-test heat:BmiHeatDiffusion --config-file=./examples/config.yaml --root-dir=./examples -vvv

The result:
=============================== test session starts ================================
platform linux -- Python 3.11.6, pytest-7.4.3, pluggy-1.3.0 -- /home/mpiper/anaconda3/envs/logo/bin/python
cachedir: .pytest_cache
rootdir: /home/mpiper
plugins: anyio-4.0.0, cov-4.1.0, dependency-0.5.1
collected 6 items

../../../anaconda3/envs/logo/lib/python3.11/site-packages/bmi_tester/tests/stage_2/test_var.py::test_get_var_itemsize[plate_surface__temperature] Fatal Python error: Segmentation fault

Thread 0x00007fbeb68ea700 (most recent call first):
  <no Python frame>

Current thread 0x00007fbee5a31740 (most recent call first):
  Garbage-collecting
  File "/home/mpiper/anaconda3/envs/logo/lib/python3.11/site-packages/pynetlogo/core.py", line 367 in patch_report
  File "/home/mpiper/projects/bmi-example-pynetlogo/heat/bmi_heatdiffusion.py", line 236 in initialize
  File "/home/mpiper/anaconda3/envs/logo/lib/python3.11/site-packages/bmi_tester/tests/conftest.py", line 130 in initialized_bmi
  ...

From what I've observed so far, this is random. It tends to occur in stage 2, although in different tests, and always in the call to BmiHeatDiffusion.initialize.

My hunch is that the bridge between Python and Java is fragile. Data are transferred over the bridge by the pyNetLogo patch_report method, which we call in BmiHeatDiffusion.initialize. When we call it often enough, it just breaks randomly.

Possibly a clue here, under "Known Bugs/Limitations":

Because of lack of JVM support, you cannot shutdown the JVM and then restart it. Nor can you start more than one copy of the JVM.


dependency_mode STRICT will not cosider external interfaces

Simply put:

foo.js -

goog.provide('app');

/** @param {IMyType} arg My Type */
function foo(arg) {
  console.log(arg);
}

window['exp'] = foo;

bar.js -

/** @interface name */
function IMyType() {}
/** @type {string} */
IMyType.prototype.a;

Compiled with dependency_mode STRICT results into warning:
[14:16:39] gulp-google-closure-compiler: /src2/foo.js:3: WARNING - Bad type annotation. Unknown type IMyType
/** @param {IMyType} arg My Type */

What interests me is:
1.) I suppose compiler won't consider those interfaces and might "wrongly" rewrite some properties, right?
2.) Do I have to import all interfaces in single file (e.g. main, so it will just be included) or in each file where the interface is used?
3.) I don't understand quite well dependency mode LOOSE... does it keep all files for compilation process (e.g. it will be slower) or does it keep files in compiled code too (e.g. won't remove dead code)?

Yes, bar.js is essentially invisible to the compiler under --dependency_mode=STRICT.
You can goog.provide each interface from the files that define them, and goog.require in each file that uses a particular interface.
--dependency_mode=LOOSE will keep the files in the compiled code, see https://github.com/google/closure-compiler/wiki/Managing-Dependencies.

Working as intended, closing.

You must provide dependency information for every source file when using STRICT. Dependency information can be any combination of goog.require and goog.provide, CommonJS require and module.export with the --process_common_js_modules flag or ES6 import and export statements.

I am well aware I can do that, but I wasn't sure whether STRICT is just about better compilation speed or not. I understand why you chose this way. However how about larger libraries, that keep interfaces in separate files? LOOSE mode will keep entire code base and will not remove dead code, while STRICT might mess up compilation result. It's little bit lose-lose situation. The worst thing about it is the need to require interface in each file that need to implement it. For my current project GCC produced ~500 bad annotations warnings and each of them can cause error. Perhaps it would be beneficial to introduce new interface flag (path to files with interfaces) instead of importing interfaces (GCC will remove them anyway, right?)

That's not really feasible. The files are sorted and dropped long before any type information is available. Also, interfaces are not required to be in a file by themselves. The dependency management of the compiler works on the file level.
Once #1476 gets re-applied (now #1628), you can list all your files like this as entry points and they will be kept.

@tSte Is your code compatible with ADVANCED_OPTIMIZATIONS? If so you can get dead code elimination while using LOOSE mode.

@Dominator008 If the included file has side effects, it will never be completely removed.

@ChadKillingsworth That's true though.

@Dominator008 sure. It would have little sense to use it for me without ADVANCED :)  @ChadKillingsworth can you define "side effect"? Is it something like console.log() or exporting symbols via window['symbol']? Simply put: If a file (module) exports symbol, but there aren't any other modules, that do import from it (it's basicly dead code)... does compiler remove that module or not?
@ChadKillingsworth is there any chance to see #1476 (#1628) in official release any time soon?

A side effect would be any external side-effect causing method call (like console.log) or assignment to an external property (like window['symbol'] = foo) that happens in the global scope.
I don't know if those PRs will make it in before the next release or not. It's just a timing thing. They have already been reviewed, but something broke the internal builds at Google and they were rolled back.

I'll keep my fingers crossed...


Widen unix support

Xterm selection works the same way in all BSD's.
Closes #42

See https://github.com/sminez/ad/issues/42#issuecomment-2429686884
I'd rather handle this more robustly by detecting what clipboard provider to use based on the environment and available binaries. I'll take a look at that once the UI rewrite is complete 👍


the meaning of  "lmdb" in "self.lasot_lmdb_dir"

Hi! Could you please tell what is the meaning of "lmdb" in class EnvironmentSettings "self.lasot_lmdb_dir"? I guess it is the dir of val dataset of lasot?

No. "lmdb_dir" is only valid when you prepare your datasets into lmdb format.

No. "lmdb_dir" is only valid when you prepare your datasets into lmdb format.

ok,thanks.


Add 'swift_backup_url' back to cinder.conf

Removed as part of a cleanup to use FQDNs in place of IPs. However,
cinder swift driver does not support certificates other than those
acknowledged by curl or python requests. Thus we must connect
directly to swift without ssl. If we gather the url's from keystone
we are then trying to connect to the swift ssl port without using
ssl.

passed in local CI. Merging.


numpy vs pil simple memory usage

This is a simple memory usage comparison of Numpy and PIL mentioned at https://github.com/beijbom/pyspacer/pull/17#discussion_r420909318

@beijbom hey Oscar, as you mentioned at https://github.com/beijbom/pyspacer/pull/17#discussion_r420909318, one way to save more memory is to crop the image first using Image.crop() from PIL and convert the patches to Numpy after. So I did a very simple experiment to trace memory usage. Method for monitoring the memory usage adopted from Option 2: tracemalloc and refer to tracemalloc for more details.
Basically, crop_patches_pil() in extract_features_utils.py return a list of cropped PIL Image, if...else... in extract_features.py just make the comparison convenient. TestMemoryUsage in test_extract_features.py simply test the memory usage of extraction block. These auxiliary functions will be removed if we decide to merge this PR.
tracemalloc basically tracks the individual memory blocks allocated by the Python interpreter when __call__(self, im, rowcols) in EfficientNetExtractor() is completed so I assume this is equivalent to the memory usage measurement.
Result on 08bfc10v7t.png with 5 annotations. Looks like cropping the image first using Image.crop() from PIL and convert the patches to Numpy after would save more memory than converting to numpy array at the beginning.
-> Initializing EfficientNetExtractor
Numpy: Current memory usage is 0.464665MB; Peak was 4.160963MB
-> Initializing EfficientNetExtractor
PIL: Current memory usage is 0.46915MB; Peak was 2.939177MB

hey @qiminchen . Thanks for looking into this. It's interesting it saves so much memory since you are still converting it to an array in order to do the np.pad call. How much does this save on a 100 mega pixel image?
I'm inclined to stay with the old code since we know that it works (don't fix what ain't broken...). Also, I have had some bad experience with the PIL.convert('RGB') step -- just seem to cause trouble for some of the more unusual image formats.
But let's keep an eye on this fix if we run into memory issues down the road.

@beijbom

How much does this save on a 100 mega pixel image?

I will take a look at this after.

I'm inclined to stay with the old code since we know that it works (don't fix what ain't broken...). Also, I have had some bad experience with the PIL.convert('RGB') step -- just seem to cause trouble for some of the more unusual image formats.

I agree.

@qiminchen : I'm closing this PR for now. We can revisit later.


Cannot make the templates load from a subfolder

Describe the bug
It seems that loading a template from a folder relative to the presentation file does not work (Or maybe I do not know how to make it work?)
Samples to Reproduce
Presentation file:
---
title: Failed template load
theme: consult
---

<!-- slide template="[[templates.slides.def.splash]]" -->

## Works!

---

<!-- slide template="[[templates/slides/def/splash]]" -->

## Does not Work!

Template:
<grid drag="100 100" drop="top" style="background: radial-gradient(#F6F8FA, #808080);">

<% content %>

</grid>

The template file is saved twice, with the same contents in two different locations:

Once with the name templates.slides.def.splash.md in the same folder as my presentation (which "proves" that I can load templates that are in the same directory as the presenation.
Another copy at templates/slides/def/splash.md (which "proves" that I cannot load templates from a relative path)

Expected behavior
I would expect both slides to load the template.
The goal here is to be able to reuse the same set of templates across multiple presentations, but without having the templates "polluting" the folder that contains the presentations.  Maybe even be able to switch templates by using templates/slides/[theme-name/splash or something similar.
Thanks!

Hmmm, how can I get some traction with this?
I am forced to create multiple slide templates but they are so many and they "pollute" my root folder. I would like to put them all in a templates/slides/[somethemenames] subfolder... :(


give stashio his lotr supertrivia

added supertrivialotr command and implemented barebones support for trivia source selection for supertrivia

Implements https://github.com/charlesmadere/CynanBot/issues/32#issue-2303096837


add/test-token-buffer-memory [wip]

Fixes # (issue)

Will we need to fix these issues before submitting a PR?


Replace the Line function of go/token package

Replace the function Line. It spends much time.

will be fixed in #80


K8s Gateway API

https://gateway-api.sigs.k8s.io/
Already supports several implementations and we should be able to ride on its back.
An example of how it works https://github.com/kubernetes-sigs/gateway-api/blob/master/examples/v1alpha2/basic-http.yaml
If our operator was to configure something similar based on API object we should be golden.

This approach would supersede #370 and #371

The major drawback is that there are quite a few GEPs we could potentially contribute upstream to speed up the process. It gives us several benefits 1. gives Kubeshop street creds and 2. speeds up our delivery on kusk-gateway

We'll pick this up later on when Gateway API is more stable and it makes sense for us to use it. Perhaps we could even target https://github.com/envoyproxy/gateway instead.


Add support for custom k8s schedulers

Adding support for custom kubernetes schedulers such as runai-scheduler. These schedulers can be added in the k8s_v2 cluster config under the "scheduler" key. If left as "null", the default scheduler on the cluster will be used.

Closing in favor of the merged #418


Add Prop 225 to v17 Upgrade Handler

This PR adds the execution of Prop 225 to the v17 Upgrade Handler.
Relevant details can be found here and here.
In particular, 31,572.30 STRD should be released to stride1auhjs4zgp3ahvrpkspf088r2psz7wpyrypcnal from Community Pool Growth.

adding here makes sense, just checking - after the upgrade, this would also be possible through an executable gov prop, right?

adding here makes sense, just checking - after the upgrade, this would also be possible through an executable gov prop, right?

I believe that's right!


1.2.7 is breaking on Node9+

Hi,
this last release is running an error using Node 9. While debugging we saw this error running from our CI, pointing to your lasted release.
My solution was rollback to 1.2.3 version.

Hi! 👋 Thanks for the report! What was the error message?

This is the message I got:
output info<EMAIL_ADDRESS>is an optional dependency and failed compatibility check. Excluding it from installation.
output error<EMAIL_ADDRESS>The engine "node" is incompatible with this module. Expected version ">=8.0.0".
output error Found incompatible module
output info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
output 19:56:26 [exp] Unable to find an existing exp instance for this directory, starting a new one...
output 19:56:29 [exp] Error: node_modules directory is missing. Please run `npm install` in your project directory.

I'm using v9.9.0

😕🤔 I will look into this tomorrow.

No problems, man. I'll see if I could help you on this!

@ds300 , is there a reason to use "engineStrict": false? I know you want to mark this a required, since now the lib supports WASM, but can't it just be a warning setting engineStrict as false?

Yeah I'll do that. I'm pretty sure ">=8.0.0" is correct syntax, so this is really baffling. But I suppose an erroneous warning is better than an erroneous error.

alright, just publushed 1.2.8 without engineStrict!

Great, I'll try right now! Thanks!

It worked. Sorry the delay to answer you


Automatic $ref management while calling model's methods

Hi,
Is possible to get an automatic $ref management like this one:

You have a Schema object that contains a $ref
You call a method, for example schema.getName()
Inside the getName() call, the objects itself checks if it's a ref with get$ref() != null
If it's a ref, It automatically solves and populates itself and the function getName() returns the name solved

I think It can be achieved in a simple way subclassing the actual models and It should not create problems with circular $ref, because you solve only one "sublevel" for method call

@slinkydeveloper are you suggesting a lazy loading mechanism for references?

Yes, a sort of.
But the external refs are loaded during the parsing (in a cache or inside the spec), because a property access can became an expensive operation if it has to load external file. Or maybe with a flag we can leave this decision to the user.
In a big spec file, if you need to access only to one/two paths, you don't have to solve refs for 30/40 paths but only for two paths. Of course this depends on various use cases.


_ALD_InvInc_ec_base_RyanBrady should be checkbox instead of 1/0

As a rule, we can use checkboxes when parameters are boolean in current_law_policy.json.

@brittainhard

I'll look into this.


Troubleshooting kubeadm - invalid link

The section: https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/#kubeadm-blocks-when-removing-managed-containers
The link to "Debugging Kubernetes nodes with crictl" (https://kubernetes.io/docs/tasks/debug-application-cluster/crictl/)  is a 404
=== Original ===
A possible solution is to restart the container runtime and then re-run kubeadm reset. You can also use crictl to debug the state of the container runtime. See Debugging Kubernetes nodes with crictl.

we can change the link to /docs/tasks/debug)/debug-cluster/crictl
/help
/sig cluster-lifecycle

Hi @weaselchops @neolit123
It is working now.
reloved in this PR: #33314

Thanks for the PR
/close


TagHelper for adding 'active' class to current active link

TODO make the attr set on the parent nav tag with a value of the selected css class being passed in.
https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/intro?view=aspnetcore-2.1
https://stackoverflow.com/questions/42337101/asp-net-core-tag-helper-for-conditionally-add-class-to-an-element
https://gist.github.com/oguzhaneren/2953c9d81e296269fa3fce287fe542a6
https://benjii.me/2017/01/is-active-route-tag-helper-asp-net-mvc-core/

Though the code is there and works, I changed direction to use vuejs and vuetify and solved this problem from client side.
If this code is ever to be used again, it'd be nice to finish the TODO shown above.


HTML

HTML
User story
As a bootcamp student
I want the pre-work notes to be structured an a webpage
so that I can easily find and read information
##Acceptance Criteria
GIVEN a Prework Study Guide website
When I visit the website in my browser
Then I see four boxes named HTML, CSS, Git and JavaScript with associated notes listed

Task is accomplished!


useQuery->stale

Apollo doesn't seem to provide the .stale property on the currentResult, and it also returns false for loading on the first currentResult loaded from cache.

Hi @samdenty. What's your use case for this?

Stale returns true when the query was loaded from cache, and false after it's been fetched from the network
const query = useQuery(QUERY, { fetchPolicy: 'cache-and-network' })
return
{query.data.messageCount}


Combine the commands file and url and use the protocol to differentiate the options

We can determine where we need to load the package.json from the protocol string. For example if it starts with http, it is a web url.

Comment from Linear (#34)
We can probably also remove the commands portion as well

via LinearSync


PopulateDataDictionaries in TimeSlice is duplicating ticks

I put some trip wires into my application to to catch issues I was having with out of order data merging live and historical ticks (unrelated). I noticed something else quite strange when I fixed the original issue. The trip wire was firing while loading historical data from the History Provider. I'm getting each tick in my data file repeated twice. Tracked it down to PopulateDataDictionaries in TimeSlice

ticksList = new List<Tick> {(Tick) baseData};
Should this just create the list?

Great catch @lithast! Please submit a PR and we'll merge it into master.

An extra 10 bonus points if you submit a test with the PR :) /Tests/Engine/DataFeeds/TimeSliceTests.cs

Well now, can't be leaving points on the table. I'll take a look at it tomorrow :)

Fixed by 36f3ef8


Implement form validation on the client-side

https://github.com/sopra-fs23-group-32/SoPra23_Client/commit/4329e4ef37fb26e7574fba21c8ba8eddd717b385


[Bug]: After deleting a connection reference, if I try to add a new one with same name, I get an error saying it already exists

Contact Details
<EMAIL_ADDRESS>What happened?
Related to my other issue where I'm unable to connect to a dataverse environment with the application id/client secret when the token expires, I tried to delete the connection and then re-add it.  The issue was even though I deleted the connection, it seems like the name still exists in the back-end.  Please fix the delete procedure to remove that name to allow a re-add with the same name.
What version of the tool are you using?
v2.1.0
What version of Visual Studio Code are you running?
1.73.1 (user setup)
Relevant log output
No response

Fixed in v2.1.1


Overhaul of Region Management UI

(Not actually ready for merging yet. I'm opening this as the first part of a discussion—possibly just with myself.)

Rebuild the Region List View Controller (and do it in Swift)
Rebuild the New Custom API view controller (now called the Region Builder)

Fixes #548: Improve Management and Display of Regions and Custom API Servers
Region List Improvements:

Rebuild the Region List/Picker controller on top of the static table system and do it in Swift for good measure. This controller has far less code in it, perhaps a couple fewer features, but definitely far fewer bugs.
Automatically set the current region to be the most-recently-created custom region

Custom API Server:
So, it used to be that custom APIs were set by the user who would type in a URL that pointed to their custom OBA server. This is still the case, however now it has been greatly expanded. You no longer type in just your server URL, but now specify the entire region. There are, I think, still some bugs in the codebase around custom API server management, but multi-region support is quite solid. By bypassing the grafted-on custom API server stuff and sticking strictly to the multiregion code, things should be far smoother.
Static Table Editor Mode:

Create a text field row and cell combo for the static table system
Make it possible to use the static table system as an editor by dumping the user's inputted values into an NSMutableDictionary
Keyboard management for static table controller: the keyboard's appearance and disappearance will cause the scroll and content insets of the table to automatically update

Static Table:

Fix bugs in OBASwitchCell
OBATableRows support selection style
Add a standardized delete method to the OBAStaticTableViewController: -deleteRowAtIndexPath:
Add out of bounds safeguards to -[OBAStaticTableViewController rowAtIndexPath:]
Add a standardized remove method to OBABaseSection

General Regions Work:

Replace the confusingly-named readSetRegionAutomatically and writeSetRegionAutomatically methods on OBAModelDAO with a property named automaticallySelectRegion
Add an -isEqual: method to OBARegionV2
Change confusing method names in OBAApplicationDelegate
Move OBARegionHelper into OBAKit, and make necessary modifications to make this work properly

Custom API Work:

Rip out custom API support, replace with custom region support

Misc:

Move the Swift bridging header to a more reasonable location in the project
Add more GPX files to project
Move common localizable strings into a new class called OBAStrings
rename OBAModelDAO.region to currentRegion
Fix a warning saying that the map view was attempting to access the user's location before receiving authorization.

Other TODOs:

[ ] Test and improve error cases for regions. e.g. If the custom region has an incorrect URL for downloading agencies, show the user what the attempted URL was.

@aaronbrethorst IIRC OBA iOS hits the Regions API on every startup.  This really isn't necessary, and we could get away with far less frequent updates, which should help with both device and server performance.  OBA Android refreshes weekly.  If you're overhauling the region-related code you might want to consider this change.  This also helps us roll out features like trip planning (adding an OTP URL to a region) in a little more gradual manner, rather than flipping the switch and immediately going live in production for all users.  It's a crude method for controlling a rollout server-side, but it seems to work ok.

@barbeau I have opened #678 to address this for the upcoming release.

Awesome, thanks!


inability to omit mdast- for plugins in .mdastrc

When a plugin is prefixed with mdast- (which is recommended), the prefix can be omitted in the plugin list or map.
— mdast.5 doc

but apparently it doesnt work, found it while was reporting #99

This should work, but there’s some handling for globally installed plug-ins / mdast necessary.
Could you provide me with information where mdast and mdast-textr are located?

@iamstarkov Ping!

they are located locally
just run these lines:
git clone git@github.com:denysdovhan/pl.git
cd pl
npm install

cat .mdastrc
npm test # fine, because mdast-textr hadnt been found

git checkout mdast/no-problem
cat .mdastrc
npm test # bunch of problems, because of #99, but mdast-textr had been found and used

With the recent fix (4bb02b2) I get the following error:
foo.md
        1:1  error    TypeError: mws[i].apply is not a function
    at exec (/Users/tilde/projects/oss/pl/node_modules/textr/index.js:77:21)
    at api (/Users/tilde/projects/oss/pl/node_modules/textr/index.js:49:17)
    at /Users/tilde/projects/oss/pl/node_modules/mdast-textr/index.es5.js:35:11
    at one (/Users/tilde/projects/oss/pl/node_modules/unist-util-visit/index.js:96:22)
    at /Users/tilde/projects/oss/pl/node_modules/unist-util-visit/index.js:83:29
    at forwards (/Users/tilde/projects/oss/pl/node_modules/unist-util-visit/index.js:24:13)
    at all (/Users/tilde/projects/oss/pl/node_modules/unist-util-visit/index.js:82:16)
    at one (/Users/tilde/projects/oss/pl/node_modules/unist-util-visit/index.js:100:20)
    at /Users/tilde/projects/oss/pl/node_modules/unist-util-visit/index.js:83:29
    at forwards (/Users/tilde/projects/oss/pl/node_modules/unist-util-visit/index.js:24:13)

That seems to have to do with how mdast-textr passes middleware to textr, not with mdast.
Can I assume that 4bb02b2 closed this too?

do you get this error in pl’s master branch?

No, I got it on mdast/no-problem.
But, the master branch doesn’t seem to pass any plug-ins, even with the aforementioned mdast fix.

yep, with there are no problems with no-problems branch, because there mdast-textr added to to .mdastrc without ommitting mdast-.

But, the master branch doesn’t seem to pass any plug-ins, even with the aforementioned mdast fix.

yep, the problem is with master where mdast- omitted https://github.com/denysdovhan/pl/pull/2/files. So mdast-textr is not even required by mdast-cli. #101 doesnt relate to this issue

Thanks. There’s still some stuff wrong with textr/mdast-textr but I’ll leave that up to you :)

thank you for fix. and we will fix mdast-textr today =)

:+1:


EU vs non-EU country differentiation

For the year 2020, which non-EU country has the largest trade percentage with the EU?
People didn't know which countries were EU or not.

Stan to close this out.

Stan needs to close this out and put images of the before and after stuff. ...


[ko] Resolve conflicts on dev-1.20-ko.7 branch

This fixes conflict on #27374.
(#27374 is to merge dev-1.20-ko.7 into master)

/lgtm
/approve


Output channel is noticeably delayed

It probably waits a few moments before flushing the line. The delay could be problematic when watching logs

the whole output approach is not great but that is all vscode offers to us :( all the other approaches are more limited. Maybe there is something mis-configured on readline part? that is all I can think of

That won't work though because we need to chain up multiple commands and there is no way to know if one has crashed or not

ill see if pseudoterminal would be ideal in our case

I did my attempt with it a few releases in the past and it didn't work that well sadly, maybe you will have better luck on that

it seems to work well, and the delay is gone, plus it acts now as an actual terminal (like clickable paths). But I couldn't get ansi colors to work

But I couldn't get ansi colors to work as of now

I didn't managed to do that neither last time


blurry rendering when devicePixelRatio > 1

@hkang1
you need to size the canvas width/height for physical pixels (also make sure to round those dimensions), and then set the css style to logical pixels. you'll also need to adjust the font size from logical to physical before setting it on the ctx.
so for a requested width of 1000 your canvas.style.width should be 1000 but canvas.width should be Math.round(1000 * devicePixelRatio).
you can verify if it works as expected by zooming the browser and refreshing (without adjusting dpi settings on your display)

Thanks for reporting this @leeoniya ! I think it should be resolved with the merged PR

i replaced the version in the demo, and now i think it's over-doing it :). the canvas is now wider than my screen.

i have a 4k display but it's scaled down via browser unzoom to ~2k. my devicePixelRatio is 1.6.
i would expect the code to generate
<canvas width="3840" height="268" style="width: 2400px; height: 168px;">

doh, noticed it on the determined project as well. Well someone with a 4k noticed it. I'll get this fixed, accidentally applied device pixel ratio twice...

nope, 3rd times the charm


[FEATURE] Arrray wide equality snippet

[FEATURE] All equal check on values of an array
Category: Array
Description

Would an allEqual function that would check if all the values of an array are equal be worth putting on this repo?
I found this example here:
const allEqual = arr => arr.every(val => val === arr[0])

And I couldn't find anything that would do the same job on the list of this repo.

This seems like an adequate beginner snippet, so why not? You can submit a PR adding the snippet to the project.

Okay, will do.

Done.
Am I correct in assuming that the docs are automatically generated?


sheet_to_csv number format issue

the utils.sheet_to_csv function converts cells using the text value (w) instead of the value(v) (so numbers are rounded ...)

This is consistent with Excel.  If you have an example where saving as CSV from excel does not round and exporting to csv from js-xls does round, please share or email me the file.
I wouldn't be against making this an option (like the JSON raw option)

Hi,
thank you for your extremely quick answer and for your work in updating
your amazing library! You are right: it is consistent with Excel. However
it would be nice to have the possibility to load the data without the
rounding (consider for example the possibility to import data from an excel
to a database, etc...).
Thanks again for your time,
Have a nice day!
Andrea
2015-02-27 18:08 GMT+00:00 SheetJSDev<EMAIL_ADDRESS>
This is consistent with Excel. If you have an example where saving as CSV
from excel does not round and exporting to csv from js-xls does round,
please share or email me the file.
I wouldn't be against making this an option (like the JSON raw option)
—
Reply to this email directly or view it on GitHub
https://github.com/SheetJS/js-xls/issues/71#issuecomment-76442597.

--
Andrea Carbone
VP Enterprise Solution
Fincluster LTD
Registered Office:
12, Bridewell Place,
EC4V 6AP, London (UK)
Registered in England & Wales no. 08359023
Operating Office:
3rd Floor, 28, Leman Street,
E1 8ER, London (UK)
M UK:                 +44<PHONE_NUMBER>
M IT:                  +39<PHONE_NUMBER>
E<EMAIL_ADDRESS>Skype:  andrea.carbone.fincluster
This e-mail contains confidential information or information belonging to
the Fincluster LTD entity sending it and is intended solely for the
addressees. Any views expressed in this message are those of the individual
sender and its contents do not constitute a commitment by Fincluster LTD unless
confirmed by letter or fax. The unauthorised disclosure, use, dissemination
or copying (either whole or partial) of this e-mail, or any information it
contains, is prohibited. E-mails are susceptible to alteration and their
integrity cannot be guaranteed. Internet communications are not secured and
therefore Fincluster LTD shall not be liable for this e-mail if modified or
falsified. If you are not the intended recipient of this e-mail, please
notify the sender of the wrong delivery and delete it immediately from your
system.

To understand the problem with "raw csv", lets start from a simple question: how should dates be written?  After all, CSV is ultimately a string.  There are multiple "good" answers here:

Converting the date object to a string: Fri Feb 27 2015 14:11:00 GMT-0500 (EST)

The ISO8601 with milliseconds (JSON.stringify does this): 2015-02-27T19:12:08.000Z

Duration format (used in ODS)

Try to determine the system locale

If you just want an array-of-arrays, the sheet_to_json function can be called with the options {header:1, raw:true}

Hi,  thank you for your answer.
I would suggest you to give the option to save numbers in raw and date using in ISO format.
The only thing that really matter is not to lose precision in saving any kind of data.
Best regards

@carbuz migrating to js-xlsx

Is it now possible to get raw values for numbers in sheet_to_csv with the new js-xlsx?
I could not find the answer in the documentation: https://github.com/SheetJS/js-xlsx
Thanks


LIST ONLY GOES UP TO 99 [REQUEST]

https://imgur.com/9QFGPjN
Example:
9
10
101
102
11
12
121
13

It's because you ordered them by name and it's using the alphabet instead of the numeric value. Just don't touch the column header and it should be fine.


Compatibility with OlympusExtra

Hello!
I've just started playing Hades again, and decided to look into mods.
Having changed monitor since I've played Hades first, I now needed Hepahistos to bring the right resolution to the game. Thanks a lot for building this.
I've also installed OlympusExtra which adds a bunch of boons, dialogues, and... keepsakes.
I've found the keepsake page to be a bit broken after installing both mods. I did not try without and it might be another issue, but this is the result I'm seeing when looking at the keepsake page in my home.

I am assuming the addition of the keepsakes (and the added invocation and arrows to switch pages for invocation) are not compatible with the mods.
Might be something to do with the order I installed the mod as well? iirc i installed modimporter, modutility, OlympusExtra and then hephaistos.
Would you be able to help?
Thanks,
Mickael

Adding a comment here, looking for issues on the OlympusExtra github page and found this: https://github.com/AlexKage69/OlympusExtra/issues/149 ; thought I would add it here for reference, it's unclear to me how this can be solved

Hey, sorry for not answering earlier in here. I actually had started a discussion with Alex directly about this, but we didn't really push for anything. The crux of the issue is that OlympusExtra and Hephaistos both try to hook into the same thing and end up conflicting with each other. From initial investigation, the fix should be done directly in OlympusExtra, because if done in Hephaistos it would require more work and special case handling, whereas in OlympusExtra it could be done in a generic way. However neither Alex nor I got to implementing this.
If anyone wants to take this up, I'm happy to give more pointers. I honestly don't think either of us will ever do it at this point, we've mostly moved on to Hades 2 by now.


Project settings were made.

Kotlin version was upgraded.
Gradle settings was made.

LGTM

Hi @SigmanZero Will you review the PR? 👁👁


CMake fails as it wants to have a binary directory set to something other than the source dir despite CMAKE_BINARY_DIR being different.

Just recursively cloned the master branch and ran cmake. (all libraries are installed as in the build instructions)
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_LIBDIR=lib .
and got the following error
`CMake Error at cmake/cmake-4.0.0-modules/RequireOutOfSourceBuild.cmake:41 (message):
You must set a binary directory that is different from your source
directory.  You might consider /home/ufeindschiff/OSVR-Core/build or
/home/ufeindschiff/build-osvrcore
Call Stack (most recent call first):
cmake/cmake-4.0.0-modules/autoinclude.cmake:13 (include)
cmake/UseBackportedModules.cmake:92 (include)
vendor/vrpn/CMakeLists.txt:15 (include)
-- Configuring incomplete, errors occurred!`
So I set CMAKE_BINARY_DIR thinking that it is speaking about that variable and ran
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BINARY_DIR=build . yet it produces the same error. Therefore it seems like there is either a flaw in the CMakeLists or it is another variable that the script wants to differ from the "source directory", which I presume is CMAKE_SOURCE_DIR in which case it would be nice to have an output that actually tells you which CMake variable is the problem.

The issue here is that you're running CMake from the source directory - indicated by the  . at the end of your command line. Where you initially start CMake (if you're using command line) is the binary directory: the variable is just automatically set to match. When using the CMake GUI, you can "select" your binary directory right below where you select the source directory, hence the wording of the message.  In your case, do something like:
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_LIBDIR=lib ..

and you'll have much more luck. You may need to remove a few CMake-generated files from your source directory before this will work - you should be able to see them with git status. (There is lots of information if you search for "cmake out of source build")
Good luck!


not listed under Plugins menu

I've installed this plugin by :

open NPP
select Plugins / Open Plugins Folder
copying latest DLL there
restart NPP
Open a json file, and navigate to Plugins / ... but no "JSON Viewer" option :(

Also tried with plugin Admin... select from "Available" json viewer 1.32, Install, but nothing again... not even the DLL on the folder...
So, what's wrong? Thanks for any hint

Create a folder as above in the npp plugins directory. Let me know if that works

thanks.. that worked! Now, I see that this is almost identical to the JSON Viewer that comes with JSON Tools plugin... That other one, also includes a "refresh" button (when I switch tabs/files) and a "search" button, which is really handy... are they the same?

JSON Tools is a different plugin. The JSON Viewer was forked from this plugin. Both plugins share some features.


new airline theme

Hello,
Please, please add this theme link

the PR is wrong. Please only include the newly added file, do not included previous commits.

please squash into a single commit only the newly added theme.


Force plate streaming

Support for streaming force data to Unity.
New Scene
DemoForceDataScene.unity
Featuring two force plates and a marker stream.
Open the new demo file DemoForceDataQtm.qtm and select Play with Real-Time Output in QTM to see it in action.
New Component
RTForcePlate
Add this to a game object and assign the name of the force plate you want to stream.
Assign a line-renderer to it to display an arrow indicating the applied force.
Assign a second line-renderer to display the moment.
Assign a cube to display the plate itself.

I think the parameter struct should be introduced since there are so many parameters and this code added a new parameter to that. It will just keep growing. I'll approve anyway since it is not critical.

Related issue: #30


Mutliline values for traceback or stdout/stderr are not properly indented

I have observed this issue with junit-xml==1.8 and Jenkins 2.46.3.
In case it matters I'm using xUnit plugin to publish Junit results.
Steps to reproduce
Create a test case with a multi-line output or traceback, e.g.
stdout = "line1\nline2"
traceback = "line1\nline2"
tc = TestCase(name=name, classname=classname, stdout=stdout)
tc.add_error_info(output=traceback)

Expected behavior
In the test case details displayed in Jenkins the multi-line values are shown like
line1
line2

Based on the formatting of test cases in the xunit plugin, I assume the proper tag to be generated should be:
			<system-out>
				line1
                                line2
			</system-out>

Actual behavior
The first line has an extra indentation:
            line1
line2

That is caused by the indentation given to text of the relevant tag:
			<system-out>
				line1
line2
			</system-out>

Thanks @memoselyk - please submit a PR with tests if you'd like this behavior to change


Remove incorrect/trivial examples in the ItemList class documentation

3.2 version of https://github.com/godotengine/godot/pull/46635.
This closes https://github.com/godotengine/godot-docs/issues/4712.

Thanks!


Lint Javascript with StandardJS

This adds the StandardJS linter as advised in https://github.com/alphagov/styleguides/blob/master/js.md#linting
This uses NPM to install the linter rather than Yarn as our CI servers
do have NPM installed and don't have Yarn. Since Yarn plays nicer with
Rails that is probably a better option to take moving forward if we make
use of node-modules in the app, but this seems a reasonable approach for
now.
This sets up a lint and a lint:fix command, the latter can be used to
fix issues automatically.
Slightly annoying thing with this is not caching the node_modules between builds :-/
@alex-ju you might have opinions on this and the usefulness of it. It also seems like we've jumped from a no semi-colon land to a semi-colon land in GDS JS standards in the switch from standardJs to XO.

The GDS Way recommendations refer to NodeJS and it's not aligned with the GOV.UK coding standards nor with the GOV.UK Frontend/Design System coding standards.

The GDS Way recommendations refer to NodeJS and it's not aligned with the GOV.UK coding standards nor with the GOV.UK Frontend/Design System coding standards.

Dang! I set this all up with Standard then discovered the GDS way advice was a lot newer than the other linting guidlines so switched to that - any particular reason why we've we got different standards for JS in node vs client side?
Oh well - I've switched this back to standard now.

Dang! I set this all up with Standard then discovered the GDS way advice was a lot newer than the other linting guidlines so switched to that - any particular reason why we've we got different standards for JS in node vs client side?

No strong reasons. I think it's about different people preferring different styles of writing JavaScript. For example GOV.UK Frontend and GOV.UK Design System were both written using Standard for both node and client side because the GDS Way didn't exist at that point and we used the GOV.UK coding standards. I'll ask around and try to understand the reason for the change.


MutationObserver is not defined

It seems that standard doesn't recognise the MutationObserver class to be globally available when writing browser JS.
What's the recommended way of dealing with this?

window.MutationObserver

or
/* eslint-env browser */

or
/* global MutationObserver */

from the rules:

Always prefix browser globals with window – except document and navigator are okay

Thanks a billion!


Baldur's Gate crashing and broken interface

I know it's not on the list of compatible games, but would you consider supporting it at some point?
Videos/intro etc work just fine but the menu interface is broken and starting a new game crashes the game completely.

Log file here of me opening the game, clicking new game and then crashing:
cnc-ddraw.log

Seems to be working fine now so I'm closing this.
Make sure you enable "Software Mirror Blt" in the in-game graphic settings to fix the issues with the fog
cnc-ddraw.zip


It needs a basic tutorial

Please, I no have idea how to start after install it.
Please, I would like to know if it has multi lang support for templates?
How works the template manager ?
Can use it to make a multilanguage post app?
Thanks a lot, great work

by the way there is a way to make plugings?

Thanks for the comment, it definitely does.
Multilang support is simple, just use utf8 encoding for whatever language you like and it should just work, any problems report them here.
Template manager, you have to specify the template in the view, I think that'd be a good start for the tutorial. I have just finished some major changes, so wanted to get them deployed and then start on a tutorial. If you have any thoughts on the major points you'd like to see cleared up in a getting started guide, please do post them here.

Going to close this one to put all discussion on #19 which is pretty much the same thing. Definitely need better introductory docs, I have been too busy to look at them.


feat: implement 0x9C - SWAP13 Opcode

Kakarot v0 implementation: https://github.com/kkrt-labs/kakarot/blob/main/src/kakarot/instructions/exchange_operations.cairo
Kakarot v0 tests: https://github.com/kkrt-labs/kakarot/blob/44dabfcab05a87f85bcfe0a457809059d11d83fb/tests/src/kakarot/instructions/test_exchange_operations.cairo#L107
EELS Implementation: https://github.com/ethereum/execution-specs/blob/fade6e95726c9c0b47b779fd8873b5737fbea3b3/src/ethereum/paris/vm/instructions/stack.py#L108
SinceGroupFrontierExchange OperationsIndex 1 is top of the stack. See PUSH.Stack inputa: value to swap.ignored value.ignored value.ignored value.ignored value.ignored value.ignored value.ignored value.ignored value.ignored value.ignored value.ignored value.ignored value.b: value to swap.Stack outputb: swapped value.ignored value.ignored value.ignored value.ignored value.ignored value.ignored value.ignored value.ignored value.ignored value.ignored value.ignored value.ignored value.a: swapped value.ExampleInputOutput11220030040050060070080090010001100120013001421Reproduce in playground.Error casesThe state changes done by the current context are reverted in those cases:Not enough gas.Not enough values on the stack.

Important update: we are gathering some bugs in the Kakarot v0 codebase, we need to make sure each issue and each PR in Kakarot-ssj is aware of the lists of known bugs. Look at this link everytime you take an issue and check your issue isn't targeted by a known bug.

Important update: we are gathering some bugs in the Kakarot v0 codebase, we need to make sure each issue and each PR in Kakarot-ssj is aware of the lists of known bugs. Look at this tracking issue everytime you take an issue and check your issue isn't targeted by a known bug.


COM parameter ownership doc

Summary
Creates a public document for detailing value ownership transfer across COM method calls.
The formatting style and wording needs to be changed and more examples need to be added, but I want to start with feedback on if this is the right way to think about COM ownership and explain it to users.

Internal previews

📄 File
🔗 Preview link

docs/standard/native-interop/com-lifetimes-and-ownership-examples.md
docs/standard/native-interop/com-lifetimes-and-ownership-examples

docs/standard/native-interop/com-parameter-ownership.md
docs/standard/native-interop/com-parameter-ownership

docs/standard/native-interop/cominterop.md
COM Interop in .NET

@jtschuster
I'm closing this as very stale. It's been more than a year since the last comment, and it's still in draft status. If you want to reopen the PR, address the conflicts and the comments, we'll take another look.


cmd/cgo: panic while checking **unsafe.Pointer in cgo call

What version of Go are you using (go version)?
$ go version
go version go1.6beta1 darwin/amd64

What operating system and processor architecture are you using?
$ uname -a
Darwin xlab-dev.local 15.2.0 Darwin Kernel Version 15.2.0: Fri Nov 13 19:56:56 PST 2015; root:xnu-3248.20.55~2/RELEASE_X86_64 x86_64

What did you do?
I'm trying to pass a pointer into a cgo call. The program below is a full demo.
package main

import "unsafe"

// typedef void Bar;
// void Foo(Bar** ptr) {};
import "C"

type Bar [0]byte

func Foo(arg **Bar) {
	ptr := (**C.Bar)(unsafe.Pointer(arg))
	C.Foo(ptr)
}

func main() {
	var ptr *Bar
	Foo(&ptr)
}

What did you expect to see?
The pointer successfully passed or a failure because of Go 1.6 restrictions against passing a pointer to Go allocated memory that has pointers to Go allocated memory.
What did you see instead?
$ go run main.go
panic: interface conversion: interface {} is **main._Ctype_Bar, not *unsafe.Pointer

goroutine 1 [running]:
main._cgoCheckPointer0(0x40552e0, 0xc82002a008, 0x0, 0x0, 0x0, 0x4056420)
	command-line-arguments/_obj/_cgo_gotypes.go:40 +0x91
main.Foo(0xc82002a008)
	cgofail/main.go:13 +0x48
main.main()
	cgofail/main.go:18 +0x31
exit status 2

The helper has been generated as:
func _cgoCheckPointer0(p interface{}, args ...interface{}) *unsafe.Pointer {
	return _cgoCheckPointer(p, args...).(*unsafe.Pointer)
}

Surprisingly enough, I'm getting a compilation error instead with Go 1.5.2:
$ go version
go version go1.5.2 darwin/amd64

$ go run main.go
# command-line-arguments
./main.go:13: cannot use ptr (type **C.Bar) as type *unsafe.Pointer in argument to _Cfunc_Foo

The wrapper has been generated as:
func _Cfunc_Foo(p0 *unsafe.Pointer) (r1 _Ctype_void)

The workaround is to pass it as ptr := (*unsafe.Pointer)(unsafe.Pointer(arg)) which looks strange but works.

cgo treats this as a type error because a pointer to void is handled as unsafe.Pointer.  Since you have typedef void Bar, the C type Bar* is the Go type unsafe.Pointer, and the C type Bar** is the Go type *unsafe.Pointer.
The fix for Go 1.6 is to report an error at compile time rather than at run time, as Go 1.5 does.

Turns out to be hard to check at compile time, for exactly the reason that helper cgoCheckPointer functions were introduced, so postponing to 1.7.

@ianlancetaylor, should this be postponed to Go 1.8?

Dropping to unplanned.  I would like to have better compile time checking but I'm not sure how to do it.

This doesn't appear to even require a double-pointer.  A plain old void* - as for C.free - suffices.  I think this implies that every program that calls C.free on a typed parameter ends up triggering the panic.
For example, this program panics:
package main

/*
#include <stdlib.h>
*/
import "C"
import "unsafe"

func main() {
	var dt *C.div_t
	dt = (*C.div_t)(C.malloc(C.size_t(unsafe.Sizeof(*dt))))
	defer C.free(dt)
}

whereas this one does not:
package main

/*
#include <stdlib.h>
*/
import "C"
import "unsafe"

func main() {
	var dt *C.div_t
	dt = (*C.div_t)(C.malloc(C.size_t(unsafe.Sizeof(*dt))))
	defer C.free(unsafe.Pointer(dt))
}

Yes.  The first program is invalid, the second is not.  The way to fix this bug is to catch the invalid case at compile time rather than execution time.  In Go 1.5 and earlier we caught the invalid case at compile time, but unfortunately the cgo checks broke that.  And, even more unfortunately, it's hard to fix.  At least, I don't see how to fix it.

I'm sure I'm missing something, but why do the _cgoCheckPointer calls need to be inline in the function parameters at all?
For the example above, cgo generates this code:

func _cgoCheckPointer0(p interface{}, args ...interface{}) unsafe.Pointer {
        return _cgoCheckPointer(p, args...).(unsafe.Pointer)
}

func _Cfunc_free(p0 unsafe.Pointer) (r1 _Ctype_void) {
        _cgo_runtime_cgocall(_cgo_188eb01e039f_Cfunc_free, uintptr(unsafe.Pointer(&p0)))
        [...]
}

[...]

func main() {
        var dt *_Ctype_struct___0
        dt = (*_Ctype_struct___0)(_Cfunc__CMalloc(_Ctype_size_t(unsafe.Sizeof(*dt))))
        defer _Cfunc_free(_cgoCheckPointer0(unsafe.Pointer(dt)))
}

Why does the _cgoCheckPointer call need to occur on the caller side of _Cfunc_free?  It seems like we could fix both this issue and #15921 by instead emitting:

func _Cfunc_free(p0 unsafe.Pointer) (r1 _Ctype_void) {
        _cgoCheckPointer0(p0)
        _cgo_runtime_cgocall(_cgo_188eb01e039f_Cfunc_free, uintptr(unsafe.Pointer(&p0)))
        [...]
}

[...]

func main() {
        var dt *_Ctype_struct___0
        dt = (*_Ctype_struct___0)(_Cfunc__CMalloc(_Ctype_size_t(unsafe.Sizeof(*dt))))
        defer _Cfunc_free(dt)
}

Is the problem that the generated function generally accept C types but we need/want to elide the pointer checks based on the corresponding Go types?  If that's the case, perhaps we could move the checks to the _Cfunc side only for parameter types that must be transformed between the two.

The problem with your suggestion is that given a pointer to an element in a slice, we only want to check that slice.  Given a pointer to a field, we only want to check that field.  We only know the extent of the area of memory to check at the call site, not in the wrapper.  This extent is expressed as additional arguments to cgoCheckPointer.  See #14210 for relevant examples.

Ok.  So it's not just type information, but also information about the origins of the values: a *foo that points to an element of a []foo needs a different check from a *foo that points to a member of a struct.
And presumably we need call sites to remain expressions (not statements), because the result of a C function call could itself be a function parameter.  So we can't pull the _cgoCheckPointer calls out into separate statements unless they're in a func literal.
...and we can't use func literals because we can't necessarily name the return-type in the current file (if the type happens to include unsafe.Pointer).  So now I understand where the _cgoCheckPointer0 function comes from.
So what about the definition of _cgoCheckPointer0 itself?  Is there a reason the first arg needs to be an interface{} when we know we're just going to pass it through the runtime and type-assert it to something else?
In src/cmd/cgo/out.go, could we change
  fmt.Fprintf(fgo2, "\nfunc %s(p interface{}, args ...interface{}) %s {\n", n, t)

to
  fmt.Fprintf(fgo2, "\nfunc %s(p %s, args ...interface{}) %s {\n", n, t, t)

?

Yes, I think we could change the _cgoCheckPointer0 function to specify the type of the first parameter.  I think I didn't do that because I thought of _cgoCheckPointer0 as essentially the same as the generic function _cgoCheckPointer, and the latter function necessarily has a first argument of type interface{}.
Ah, I see what you mean; that fixes this issue.  Thanks!  I'll try that--maybe I've forgotten some reason it won't work.


"Tip" is misformatted

**Description:**
"Tip" is misformatted at https://apim.docs.wso2.com/en/latest/get-started/integration-quick-start-guide/
**Suggested Labels:**

Suggested Assignees:

Affected Product Version:
OS, DB, other environment details and versions:
Steps to reproduce:
Related Issues:

Problem is at
https://apim.docs.wso2.com/en/latest/get-started/integration-quick-start-guide/


dimension limits

Hi, is there a practical limit of dimensions for vector fields?  Are all vectors in one table supposed to have the same dimensions?

Is it possible to have a vector with 30k dimensions, please?

We have evaluated 1024 dimensions. For larger dimensions, we have not tried it but we don't see any constraints in the current code base.


Fix for references being overwritten when multiple elements instantiate dfp

Currently references are are being overwritten when dfp is instantiated on multiple elements at the same time. For example:

In the above example the '#my-ad-2' will be displayed and '#my-ad-1' will be empty. This is because the references are being overridden in options and $adCollection.  Granted, in the above example you could instead instantiate a single instance of dfp and use a selector that would find both elements. However, if you need to dynamically create ad units on the fly this becomes problematic.

Thanks for this! :smile:


Add EnvVars to NSM CR on the operator

Describe the problem you're solving.
Allow the user to specify environment variables for NSMs workloads in order to have more flexibility when configuring the platform.
Describe that task step by step.
Add a field of type []corev1.EnvVar to each type of workload such as forwarder and registry. And use the value from the operator to configure the workloads.
Describe alternatives you've considered or would consider
We consider using a configmap but it would be another step for the user.

closed by #57


merge main to live : product taxonomy update

Docs Build status updates of commit 1f3aae7:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

docs-ref-autogen/BoundingBox.yml
:x:Error

Details

docs-ref-autogen/Map.yml
:x:Error

Details

docs-ref-autogen/index.yml
:x:Error

Details

docs-ref-autogen/azure-devops-extension-api/CoreRestClient.yml
:warning:Warning

Details

docs-ref-autogen/azure-devops-extension-api/GalleryRestClient.yml
:warning:Warning

Details

docs-ref-autogen/toc.yml
:warning:Warning

Details

docs-ref-autogen/BoundingBox.yml

Line 1, Column 1: [Error-schema-not-found] Unknown schema 'UniversalReference'.

docs-ref-autogen/Map.yml

Line 1, Column 1: [Error-schema-not-found] Unknown schema 'UniversalReference'.

docs-ref-autogen/index.yml

Line 1, Column 1: [Error-schema-not-found] Unknown schema 'UniversalReference'.

docs-ref-autogen/azure-devops-extension-api/CoreRestClient.yml

Line 564, Column 54: [Warning-file-not-found] Invalid file link: '../../operations/operations/get'.
Line 585, Column 54: [Warning-file-not-found] Invalid file link: '../../operations/operations/get'.

docs-ref-autogen/azure-devops-extension-api/GalleryRestClient.yml

Line 954, Column 17: [Warning-xref-not-found] Cross reference not found: 'Gallery.ExtensionStatsAggregateType'.

docs-ref-autogen/toc.yml

Line 1020, Column 16: [Warning-xref-not-found] Cross reference not found: 'azure-devops-extension-api.CommentReportingList'.
Line 2026, Column 16: [Warning-xref-not-found] Cross reference not found: 'azure-devops-extension-api.FieldsToEvaluate'.
Line 2599, Column 16: [Warning-xref-not-found] Cross reference not found: 'azure-devops-extension-api.GraphMemberSearchFactor'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 1f3aae7:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

docs-ref-autogen/Map.yml
:x:Error

Details

docs-ref-autogen/BoundingBox.yml
:x:Error

Details

docs-ref-autogen/index.yml
:x:Error

Details

docs-ref-autogen/azure-devops-extension-api/CoreRestClient.yml
:warning:Warning

Details

docs-ref-autogen/azure-devops-extension-api/GalleryRestClient.yml
:warning:Warning

Details

docs-ref-autogen/toc.yml
:warning:Warning

Details

docs-ref-autogen/Map.yml

Line 1, Column 1: [Error-schema-not-found] Unknown schema 'UniversalReference'.

docs-ref-autogen/BoundingBox.yml

Line 1, Column 1: [Error-schema-not-found] Unknown schema 'UniversalReference'.

docs-ref-autogen/index.yml

Line 1, Column 1: [Error-schema-not-found] Unknown schema 'UniversalReference'.

docs-ref-autogen/azure-devops-extension-api/CoreRestClient.yml

Line 564, Column 54: [Warning-file-not-found] Invalid file link: '../../operations/operations/get'.
Line 585, Column 54: [Warning-file-not-found] Invalid file link: '../../operations/operations/get'.

docs-ref-autogen/azure-devops-extension-api/GalleryRestClient.yml

Line 954, Column 17: [Warning-xref-not-found] Cross reference not found: 'Gallery.ExtensionStatsAggregateType'.

docs-ref-autogen/toc.yml

Line 1020, Column 16: [Warning-xref-not-found] Cross reference not found: 'azure-devops-extension-api.CommentReportingList'.
Line 2026, Column 16: [Warning-xref-not-found] Cross reference not found: 'azure-devops-extension-api.FieldsToEvaluate'.
Line 2599, Column 16: [Warning-xref-not-found] Cross reference not found: 'azure-devops-extension-api.GraphMemberSearchFactor'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Mol2 files bonds

PandasMol2().read_mol2() reads and parses a mol2 file, however, in the dataframe, only the @ATOM section is present. Is there any way to access the bonds?
Thanks
Botond

Hi, thanks for your answer. Just wrote a quick, dirty and probably non-optimal parser. It could serve as a temporary solution:
def bond_parser(filename):
    f = open(filename,'r')
    f_text = f.read()
    f.close()
    bond_start = f_text.find('@<TRIPOS>BOND')
    bond_end = f_text[bond_start:].replace('@<TRIPOS>BOND','').find('@')
    df_bonds = pd.DataFrame(np.array(f_text[bond_start:bond_end].replace('@<TRIPOS>BOND\n','').replace('\n',' ').split(' ')).reshape((-1,4)),
            columns=['bond_id', 'atom1', 'atom2', 'bond_type'])
    df_bonds.set_index(['bond_id'], inplace=True)
    return df_bonds

Here is a shorter version of of what @btyukodi wrote that uses regex:
dwef bond_parset(filename):
    with open(filename, 'r') as f:
        f_text = f.read()
    bonds = np.array(re.sub(r'\s+', ' ', re.search(r'@<TRIPOS>BOND([a-z0-9\s]*)@', f_text).group(1)).split()).reshape((-1, 4))

Thanks a lot. I totally forgot about this / got to busy to work on this. Thanks for sharing though, I hopefully will get to it one day (or maybe someone else :))

Hey there all, was this ever implemented?

No, sorry, never really found the time to do that :(

Seems like this is still an open issue?

yeah, this is still an open issue


comparison with 0 cause error

            Bigint bi = 0;
            if (bi == 0)    // crach
                bi = 1;

There's an infinite loop in the comparison method, might be related to that https://github.com/kasparsklavins/bigint/blob/master/src/bigint.cpp#L256
I'll look into it.

bigint = 0  ->  number.size() == 0   ->  number.size() - 1 == max_unsigned --> out of range

Solved by #7


fix(css/parser): lexer errors

Description:
Add lexer errors for CSS parser.
We need to sort them in test because when we consume using tokens we run the lexer firstly and then the parser, but when we parser using string we lazy consume tokens, so errors have different order.
BREAKING CHANGE:
No
Related issue (if exists):
No

@kdy1 Fixed, also fixed for swc_html_parser


FIP 45 - De-couple verified registry from markets

Issue summary

[ ] Are there any changes to the actor data structures that we need to be aware of?
[ ] Are there any changes to the network protocol?
[ ] Are there any changes to node behavior (eg. changes in block validation criteria, random number generation, etc)?
[ ] Are there any new magic numbers?

Other information and links

https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0045.md

Data structure changes
SectorOnChainInfo will have to be modified, adding a field SimpleQAPower. We will most likely be able to grab it (or import) from the builtin-actors repository.
All other changes seem like they will be self-contained in builtin-actors given that we do not have migrations at the moment.
Related Pull Request (in progress): https://github.com/filecoin-project/builtin-actors/tree/decouple-fil+


Increase mouse tilt event proc rate

I have the scrollwheel tilt bound to middle click. However, successive clicks aren't registered properly, and neither is holding down the button.
eventType:MouseDown       code:0x2        name:middle          flags:                                   misc:{752, 119} 1
eventType:MouseUp         code:0x2        name:middle          flags:                                   misc:{752, 119} 1
eventType:MouseDown       code:0x2        name:middle          flags:                                   misc:{752, 119} 1
eventType:MouseUp         code:0x2        name:middle          flags:                                   misc:{752, 119} 1

The event pair ticks every 500ms or so, and successive clicks in a 500ms window aren't registered properly.

These events are actually sent by your device.
So, our options are limited.

Karabiner can ignore successive events. Only the first events will be sent to app.
Karabiner can send mousedown and mouseup events with properly interval at physical MouseDown events.

Please use this setting.
    <block>
      <!-- ignore successive middle click -->
      <lastpressedphysicalkey_only>PointingButton::MIDDLE</lastpressedphysicalkey_only>
      <!-- elapsed time since last pressed less than 600ms -->
      <elapsedtimesincelastpressed_lessthan>Millisecond::RawValue::600</elapsedtimesincelastpressed_lessthan>
      <!-- drop event -->
      <autogen>__KeyToKey__ PointingButton::MIDDLE, KeyCode::VK_NONE</autogen>
    </block>
    <autogen>
      __KeyToKey__
      PointingButton::MIDDLE,

      <!-- send mousedown and mouseup event at the same time. -->
      PointingButton::MIDDLE,
      KeyCode::VK_NONE,
    </autogen>

If the middle click is not recognized in app,
please increase "Wait before and after a pointing device click event" parameter.
(It is in "Key Repeat" tab in the stable release, "Parameters" tab in the beta version.)


eslint no-unexpected-multiline error was ignored when I fixed with eslint

Playground link
# Options (if any):
--fix

Input:
const a = 1
      (() => {
        const c = 1;
        console.log(c)
      })()

Output:
const a = 1(() => {
  const c = 1;
  console.log(c);
})();

Expected behavior:

Hi! It is not clear what your issue is. Can you clarify?

when I use eslint --fix , the code is form
const a = 1
(() => {
    const c = 1;
    console.log(c);
})()

to
const a = 1(() => {
  const c = 1;
  console.log(c);
})();
```,
I think this should throw error，like the rule 'no-unexpected-multiline' in eslint

@lydell you can see this [issue] in eslint (https://github.com/eslint/eslint/issues/9354)

Prettier takes valid JavaScript as input and produces valid JavaScript as output. That's it. It does not try to fix errors in your code.
This:
const a = 1
(() => {
    const c = 1;
    console.log(c);
})()

... is valid JavaScript. Prettier doesn't use whitespace before the ( paren of function calls, so Prettier turns it into:
const a = 1(() => {
  const c = 1;
  console.log(c);
})();

If you run Prettier inside ESLint using eslint-plugin-prettier with the --fix flag, or if you just happen to run Prettier before ESLint (lots of people run Prettier on save in their editors), ESLint's no-unexpected-multiline rule doesn't get a chance to report the unexpected newline since it's already gone by that point.
This is unfortunate, and we haven't come up with any perfect solution. Here are some things you can do:

Run Prettier (or eslint --fix) (on save) in your editor. Then you'll see the lines being merged together in real time and can just insert the missing semicolon.
Adopt the habit of always adding a semicolon at the beginning of a line if it starts with ( or [. (Prettier or ESLint can then (re)move it.) This is useful regardless of whether you are a "semicolon person" or "no semicolon person".
Make sure to always run ESLint before Prettier.
Test your code.
Use Flow or TypeScript.

See also these prettier issues:

https://github.com/prettier/prettier/issues/2662
https://github.com/prettier/prettier/issues/1143


style question

Is it possible to style the background of the slider to be transparent? I only want the thumbs to be visible. I was able to set .range-slider__range transparent but not the background of the whole slider itself.

I was able to do it by using background with a random color and a set to 0. If I set opacity to 0 everything disappeared.
#range-slider {
other styling*
background: rgba(16, 141, 66, 0);
}


initCollapsed: true will not collapse array fields

Link to reproduction
No response
Payload Version
3.0.0-beta.63
Node Version
v22.4.1
Next.js Version
15.0.0-canary.53
Describe the Bug
Setting this property
admin: {
  initCollapsed: true,
}

has no effect on admin UI. Fields are not collapsed when I reload the page
Reproduction Steps
add this property to any array field
Adapters and Plugins
No response

Hi @jankvapil I just tested this and admin.initCollapsed: true works for me on the latest beta.
Note that we keep some user preferences around the UI saved in the database like below:

So if your user has collapsed or expanded various items then they will stay that way. This config only affects the default experience. Let me know if that answers your issue!


Object reference not set to an instance of an object

I have a json file like this
{
"data": {
"id": "1",
"name": null,
"url": "http://www.google.com"
}
}
I want to deserialize it to JilTest class
class JilTest
{
[JilDirective("data")]
public dynamic Data { get; set; }
}
I deserialize it like this
JilTest jilTest = Jil.JSON.Deserialize(json);
It works, but when I access jilTest.Data["name"] an exception throw as "Object reference not set to an instance of an object".
I try to deserialize it like
dynamic jilTest = Jil.JSON.DeserializeDynamic(json);
and access member jilTest["data"]["name"], it doesn't work also.

I can reproduce this issue.
Findings
Only the accessor Data["name"] gives a NullReferenceException for null values, accessing it as a member Data.name works as expected (returns null)
var json = "{\"data\":{\"id\":\"1\",\"name\":null,\"url\":\"http://www.google.com\"}}";
var result = JSON.Deserialize<JilTest>(json); // or JSON.DeserializeDynamic(json);
// calling "result.Data.name" returns null here, as expected.
// calling "result.Data["name"]" throws a NullReferenceException

Code
The TryGetMember method in JsonObject.Dynamic.cs has an if statement that handles null values, on line 879.
if (val == null)
{
    result = null;
    return true;
}

But the TryGetIndex method does not. This causes an NullReferenceException to be thrown on line 826 in JsonObject.Dynamic.cs because rawValue will be null.
return rawValue.InnerTryConvert(returnType, out result);

Solution
@crushglass: For now, use the member access notation (e.g. result.Data.name) to access the value.
I think the behaviour of member access and index access should be the same. So I will make a pull request regarding this issue. But it's up to @kevin-montrose to give a final say if this is a bug or desired behaviour.


Wrong header line position in IRC trajectory output

Describe the bug
Blank lines and header lines in the IRC trajectory output are incorrectly positioned.
They appear within the data block, preceding the last data line.
          FINAL GEOMETRY OBTAINED                                 CHARGE
 PM6 IRC=1 LARGE=10 PRECISE GNORM=0.05 NOINTER CHARGE=-1

 Winmostar
  Br    0.000000  0    0.000000  0    0.000000  0   0  0  0   -0.7550      10AA*
   H    2.617814  1    0.000000  0    0.000000  0   1  0  0    0.1515      10AB*
   H    1.871893  1   69.052080  1    0.000000  0   2  1  0    0.1515      10AC*
   H    1.871889  1   60.000390  1   77.232599  1   3  2  1    0.1515      10AD*
   C    1.080877  1   66.535361  1   32.370204  1   2  1  3    0.0067      10AE*
  Cl    2.196958  1   90.919770  1  179.999988  1   5  2  1   -0.7061      10AF*
      11     -71.58974      0.00123        -71.58851  -0.00003    11   %  0.0127
      12     -71.59034      0.00182        -71.58851  -0.00004    12   %  0.0129
      13     -71.59119      0.00268        -71.58852  -0.00004    13   %  0.0131
      14     -71.59243      0.00391        -71.58852  -0.00005    14   %  0.0135
      15     -71.59425      0.00570        -71.58854  -0.00007    15   %  0.0141
      16     -71.59694      0.00835        -71.58858  -0.00011    16   %  0.0149
      17     -71.60016      0.01152        -71.58864  -0.00016    17   %  0.0159
      18     -71.60351      0.01482        -71.58869  -0.00021    18   %  0.0169
      19     -71.60697      0.01823        -71.58874  -0.00027    19   %  0.0179

     POINT   POTENTIAL  +  ENERGY LOST   =   TOTAL      ERROR    REF%   MOVEMENT
      20     -71.61054      0.02174        -71.58880  -0.00032    20   %  0.0188

To Reproduce
Always input with IRC keyword:
PM6 IRC=1 LARGE=10 PRECISE GNORM=0.05 NOINTER CHARGE=-1

Winmostar
Br 0.000000     1 0.000000     1 0.000000     1
H  2.617012     1 0.000000     1 0.000000     1
H  1.947557     1 1.748111     1 0.000000     1
H  1.947598     1 0.745900     1 1.581018     1
C  2.177769     1 0.834029     1 0.528717     1
Cl 4.188952     1 1.604298     1 1.017015     1

Expected behavior
Blank lines and header line are at the top of each data block:
          FINAL GEOMETRY OBTAINED                                 CHARGE
 PM6 IRC=1 LARGE=10 PRECISE GNORM=0.05 NOINTER CHARGE=-1

 Winmostar
  Br    0.000000  0    0.000000  0    0.000000  0   0  0  0   -0.7550      10AA*
   H    2.617814  1    0.000000  0    0.000000  0   1  0  0    0.1515      10AB*
   H    1.871893  1   69.052080  1    0.000000  0   2  1  0    0.1515      10AC*
   H    1.871889  1   60.000390  1   77.232599  1   3  2  1    0.1515      10AD*
   C    1.080877  1   66.535361  1   32.370204  1   2  1  3    0.0067      10AE*
  Cl    2.196958  1   90.919770  1  179.999988  1   5  2  1   -0.7061      10AF*

     POINT   POTENTIAL  +  ENERGY LOST   =   TOTAL      ERROR    REF%   MOVEMENT
      11     -71.58974      0.00123        -71.58851  -0.00003    11   %  0.0127
      12     -71.59034      0.00182        -71.58851  -0.00004    12   %  0.0129
      13     -71.59119      0.00268        -71.58852  -0.00004    13   %  0.0131
      14     -71.59243      0.00391        -71.58852  -0.00005    14   %  0.0135
      15     -71.59425      0.00570        -71.58854  -0.00007    15   %  0.0141
      16     -71.59694      0.00835        -71.58858  -0.00011    16   %  0.0149
      17     -71.60016      0.01152        -71.58864  -0.00016    17   %  0.0159
      18     -71.60351      0.01482        -71.58869  -0.00021    18   %  0.0169
      19     -71.60697      0.01823        -71.58874  -0.00027    19   %  0.0179
      20     -71.61054      0.02174        -71.58880  -0.00032    20   %  0.0188

Operating system
Mac, Windows, maybe also Linux
Additional context
I found that this issue first appeared in version 22.0.2 where src/reactions/drcout.F90 was modified.

The IRC and DRC features have a complicated control flow, and a previous bug fix to one mode of operation caused this bug. I've fixed this bug while preserving the effect of the previous fix, and hopefully there aren't any other unforeseen consequences.
This is now fixed in the development version, and it will be included in the next release, which should be in a few months.