Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package efm-langserver for openSUSE:Factory 
checked in at 2026-09-21 12:20:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/efm-langserver (Old)
 and      /work/SRC/openSUSE:Factory/.efm-langserver.new.383539 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "efm-langserver"

Mon Sep 21 12:20:30 2026 rev:4 rq:1379258 version:0.0.57

Changes:
--------
--- /work/SRC/openSUSE:Factory/efm-langserver/efm-langserver.changes    
2024-12-18 20:11:30.140704765 +0100
+++ 
/work/SRC/openSUSE:Factory/.efm-langserver.new.383539/efm-langserver.changes    
    2026-09-21 12:20:35.056682706 +0200
@@ -1,0 +2,24 @@
+Wed Sep 16 17:37:00 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to version 0.0.57:
+  * Kill lint process groups so lint-on-change cannot forkbomb
+  * Add format-ignore-exit-code configuration
+  * Compare document URIs case-insensitively
+  * Avoid reporting a fake formatter error
+  * Fix panics: position boundary off-by-one, unknown
+    lint-category-map types, and lint after shutdown
+  * Fix data races between handler and lint goroutines
+  * Keep debounced lint requests for other files
+  * Handle didChange with multiple content changes
+  * Use symbol-formats for documentSymbol; drop duplicates
+  * Support %e/%k diagnostic end positions
+  * Fix formatting edits on CRLF files and files without a
+    trailing newline
+  * Publish same-file diagnostics under the client's URI
+  * Honour the -loglevel flag; ignore unknown notifications
+  * Update jsonrpc2 and errorformat dependencies
+- Require golang(API) >= 1.23 to match go.mod
+- Switch prep to %autosetup and enable unit tests
+- Add a go_modules source service
+
+-------------------------------------------------------------------

Old:
----
  efm-langserver-0.0.54.tar.gz

New:
----
  _service
  efm-langserver-0.0.57.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ efm-langserver.spec ++++++
--- /var/tmp/diff_new_pack.VTG4Yw/_old  2026-09-21 12:20:35.786713230 +0200
+++ /var/tmp/diff_new_pack.VTG4Yw/_new  2026-09-21 12:20:35.788713313 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package efm-langserver
 #
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           efm-langserver
-Version:        0.0.54
+Version:        0.0.57
 Release:        0
 Summary:        General purpose language server
 License:        MIT
@@ -26,14 +26,14 @@
 Source1:        vendor.tar.zst
 BuildRequires:  c_compiler
 BuildRequires:  zstd
-BuildRequires:  golang(API) >= 1.20
+BuildRequires:  golang(API) >= 1.23
 
 %description
 General purpose Language Server that can use specified error message format 
generated from specified command e.g.
 using linters and other tooling that supports the LSP specification.
 
 %prep
-%setup -qa1
+%autosetup -p1 -a1
 
 %build
 %ifarch ppc64
@@ -47,6 +47,9 @@
 %install
 install -Dm755 %{name} %{buildroot}%{_bindir}/%{name}
 
+%check
+go test -mod=vendor ./...
+
 %files
 %{_bindir}/%{name}
 %license LICENSE

++++++ _service ++++++
<services>
  <service name="go_modules" mode="manual">
    <param name="compression">zst</param>
  </service>
</services>

++++++ efm-langserver-0.0.54.tar.gz -> efm-langserver-0.0.57.tar.gz ++++++
++++ 2132 lines of diff (skipped)

++++++ vendor.tar.zst ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/reviewdog/errorformat/.gitignore 
new/vendor/github.com/reviewdog/errorformat/.gitignore
--- old/vendor/github.com/reviewdog/errorformat/.gitignore      1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/github.com/reviewdog/errorformat/.gitignore      2026-09-16 
19:35:20.000000000 +0200
@@ -0,0 +1,6 @@
+# Folders to ignore
+.vscode/
+.idea/
+
+# Files to ignore
+.drone.sec.yaml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/sourcegraph/jsonrpc2/README.md 
new/vendor/github.com/sourcegraph/jsonrpc2/README.md
--- old/vendor/github.com/sourcegraph/jsonrpc2/README.md        2024-12-18 
08:43:08.000000000 +0100
+++ new/vendor/github.com/sourcegraph/jsonrpc2/README.md        2026-09-16 
19:35:20.000000000 +0200
@@ -3,9 +3,8 @@
 
 Package jsonrpc2 provides a [Go](https://golang.org) implementation of 
[JSON-RPC 2.0](http://www.jsonrpc.org/specification).
 
-This package is **experimental** until further notice.
-
-[**Open the code in 
Sourcegraph**](https://sourcegraph.com/github.com/sourcegraph/jsonrpc2)
+* [Documentation](https://pkg.go.dev/github.com/sourcegraph/jsonrpc2)
+* [Open the code in 
Sourcegraph](https://sourcegraph.com/github.com/sourcegraph/jsonrpc2)
 
 ## Known issues
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/sourcegraph/jsonrpc2/SECURITY.md 
new/vendor/github.com/sourcegraph/jsonrpc2/SECURITY.md
--- old/vendor/github.com/sourcegraph/jsonrpc2/SECURITY.md      1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/github.com/sourcegraph/jsonrpc2/SECURITY.md      2026-09-16 
19:35:20.000000000 +0200
@@ -0,0 +1,12 @@
+# Security Policy
+
+## Supported Versions
+
+Security updates are applied only to the latest release.
+
+## Reporting a Vulnerability
+
+If you have discovered a security vulnerability in this project, please report 
it privately. **Do not disclose it as a public issue.** This gives us time to 
work with you to evaluate and fix the issue before public exposure, reducing 
the chance that the exploit will be used before a patch is released.
+
+Please disclose it privately via email to [email protected]. We will 
work with you to understand and resolve the issue promptly.
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/sourcegraph/jsonrpc2/conn.go 
new/vendor/github.com/sourcegraph/jsonrpc2/conn.go
--- old/vendor/github.com/sourcegraph/jsonrpc2/conn.go  2024-12-18 
08:43:08.000000000 +0100
+++ new/vendor/github.com/sourcegraph/jsonrpc2/conn.go  2026-09-16 
19:35:20.000000000 +0200
@@ -166,9 +166,7 @@
 }
 
 func (c *Conn) close(cause error) error {
-       c.sending.Lock()
        c.mu.Lock()
-       defer c.sending.Unlock()
        defer c.mu.Unlock()
 
        if c.closed {
@@ -189,15 +187,17 @@
 }
 
 func (c *Conn) readMessages(ctx context.Context) {
-       var err error
-       for err == nil {
+       for {
                var m anyMessage
-               err = c.stream.ReadObject(&m)
+               err := c.stream.ReadObject(&m)
                if err != nil {
-                       break
+                       c.close(err)
+                       return
                }
 
                switch {
+               // TODO: handle the case where both request and response are 
nil.
+
                case m.request != nil:
                        for _, onRecv := range c.onRecv {
                                onRecv(m.request, nil)
@@ -206,49 +206,53 @@
 
                case m.response != nil:
                        resp := m.response
-                       if resp != nil {
-                               id := resp.ID
-                               c.mu.Lock()
-                               call := c.pending[id]
-                               delete(c.pending, id)
-                               c.mu.Unlock()
+                       id := resp.ID
+                       c.mu.Lock()
+                       call := c.pending[id]
+                       delete(c.pending, id)
+                       c.mu.Unlock()
+
+                       var req *Request
+                       if call != nil {
+                               call.response = resp
+                               req = call.request
+                       }
 
-                               if call != nil {
-                                       call.response = resp
-                               }
-
-                               if len(c.onRecv) > 0 {
-                                       var req *Request
-                                       if call != nil {
-                                               req = call.request
-                                       }
-                                       for _, onRecv := range c.onRecv {
-                                               onRecv(req, resp)
-                                       }
-                               }
-
-                               switch {
-                               case call == nil:
-                                       c.logger.Printf("jsonrpc2: ignoring 
response #%s with no corresponding request\n", id)
-
-                               case resp.Error != nil:
-                                       call.done <- resp.Error
-                                       close(call.done)
-
-                               default:
-                                       call.done <- nil
-                                       close(call.done)
-                               }
+                       for _, onRecv := range c.onRecv {
+                               onRecv(req, resp)
                        }
+
+                       if call == nil {
+                               c.logger.Printf("jsonrpc2: ignoring response 
#%s with no corresponding request\n", id)
+                               continue
+                       }
+
+                       var err error
+                       if resp.Error != nil {
+                               err = resp.Error
+                       }
+
+                       call.done <- err
+                       close(call.done)
                }
        }
-       c.close(err)
 }
 
 func (c *Conn) send(_ context.Context, m *anyMessage, wait bool) (cc *call, 
err error) {
        c.sending.Lock()
        defer c.sending.Unlock()
 
+       // double check the error isn't due to being closed while sending.
+       defer func() {
+               if err != nil {
+                       c.mu.Lock()
+                       if c.closed {
+                               err = ErrClosed
+                       }
+                       c.mu.Unlock()
+               }
+       }()
+
        // m.request.ID could be changed, so we store a copy to correctly
        // clean up pending
        var id ID
@@ -330,25 +334,20 @@
 // error is returned.
 func (w Waiter) Wait(ctx context.Context, result interface{}) error {
        select {
+       case <-ctx.Done():
+               return ctx.Err()
+
        case err, ok := <-w.call.done:
                if !ok {
-                       err = ErrClosed
+                       return ErrClosed
                }
-               if err != nil {
+               if err != nil || result == nil {
                        return err
                }
-               if result != nil {
-                       if w.call.response.Result == nil {
-                               w.call.response.Result = &jsonNull
-                       }
-                       if err := json.Unmarshal(*w.call.response.Result, 
result); err != nil {
-                               return err
-                       }
+               if w.call.response.Result == nil {
+                       w.call.response.Result = &jsonNull
                }
-               return nil
-
-       case <-ctx.Done():
-               return ctx.Err()
+               return json.Unmarshal(*w.call.response.Result, result)
        }
 }
 
@@ -414,12 +413,7 @@
                        return errors.New("jsonrpc2: invalid empty batch")
                }
                for i := range msgs {
-                       if err := checkType(&msg{
-                               ID:     msgs[i].ID,
-                               Method: msgs[i].Method,
-                               Result: msgs[i].Result,
-                               Error:  msgs[i].Error,
-                       }); err != nil {
+                       if err := checkType(&msgs[i]); err != nil {
                                return err
                        }
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/sourcegraph/jsonrpc2/conn_opt.go 
new/vendor/github.com/sourcegraph/jsonrpc2/conn_opt.go
--- old/vendor/github.com/sourcegraph/jsonrpc2/conn_opt.go      2024-12-18 
08:43:08.000000000 +0100
+++ new/vendor/github.com/sourcegraph/jsonrpc2/conn_opt.go      2026-09-16 
19:35:20.000000000 +0200
@@ -43,24 +43,10 @@
 
                OnRecv(func(req *Request, resp *Response) {
                        switch {
-                       case req != nil:
-                               mu.Lock()
-                               reqMethods[req.ID] = req.Method
-                               mu.Unlock()
-
-                               params, _ := json.Marshal(req.Params)
-                               if req.Notif {
-                                       logger.Printf("jsonrpc2: --> notif: %s: 
%s\n", req.Method, params)
-                               } else {
-                                       logger.Printf("jsonrpc2: --> request 
#%s: %s: %s\n", req.ID, req.Method, params)
-                               }
-
                        case resp != nil:
-                               var method string
+                               method := "(no matching request)"
                                if req != nil {
                                        method = req.Method
-                               } else {
-                                       method = "(no matching request)"
                                }
                                switch {
                                case resp.Result != nil:
@@ -70,18 +56,22 @@
                                        err, _ := json.Marshal(resp.Error)
                                        logger.Printf("jsonrpc2: --> error #%s: 
%s: %s\n", resp.ID, method, err)
                                }
-                       }
-               })(c)
-               OnSend(func(req *Request, resp *Response) {
-                       switch {
+
                        case req != nil:
+                               mu.Lock()
+                               reqMethods[req.ID] = req.Method
+                               mu.Unlock()
+
                                params, _ := json.Marshal(req.Params)
                                if req.Notif {
-                                       logger.Printf("jsonrpc2: <-- notif: %s: 
%s\n", req.Method, params)
+                                       logger.Printf("jsonrpc2: --> notif: %s: 
%s\n", req.Method, params)
                                } else {
-                                       logger.Printf("jsonrpc2: <-- request 
#%s: %s: %s\n", req.ID, req.Method, params)
+                                       logger.Printf("jsonrpc2: --> request 
#%s: %s: %s\n", req.ID, req.Method, params)
                                }
-
+                       }
+               })(c)
+               OnSend(func(req *Request, resp *Response) {
+                       switch {
                        case resp != nil:
                                mu.Lock()
                                method := reqMethods[resp.ID]
@@ -98,6 +88,14 @@
                                        err, _ := json.Marshal(resp.Error)
                                        logger.Printf("jsonrpc2: <-- error #%s: 
%s: %s\n", resp.ID, method, err)
                                }
+
+                       case req != nil:
+                               params, _ := json.Marshal(req.Params)
+                               if req.Notif {
+                                       logger.Printf("jsonrpc2: <-- notif: %s: 
%s\n", req.Method, params)
+                               } else {
+                                       logger.Printf("jsonrpc2: <-- request 
#%s: %s: %s\n", req.ID, req.Method, params)
+                               }
                        }
                })(c)
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/sourcegraph/jsonrpc2/handler_with_error.go 
new/vendor/github.com/sourcegraph/jsonrpc2/handler_with_error.go
--- old/vendor/github.com/sourcegraph/jsonrpc2/handler_with_error.go    
2024-12-18 08:43:08.000000000 +0100
+++ new/vendor/github.com/sourcegraph/jsonrpc2/handler_with_error.go    
2026-09-16 19:35:20.000000000 +0200
@@ -30,20 +30,16 @@
        if err == nil {
                err = resp.SetResult(result)
        }
-       if err != nil {
-               if e, ok := err.(*Error); ok {
-                       resp.Error = e
-               } else {
-                       resp.Error = &Error{Message: err.Error()}
-               }
+
+       if e, ok := err.(*Error); ok {
+               resp.Error = e
+       } else if err != nil {
+               resp.Error = &Error{Message: err.Error()}
        }
 
-       if !req.Notif {
-               if err := conn.SendResponse(ctx, resp); err != nil {
-                       if err != ErrClosed || !h.suppressErrClosed {
-                               conn.logger.Printf("jsonrpc2 handler: sending 
response %s: %v\n", resp.ID, err)
-                       }
-               }
+       err = conn.SendResponse(ctx, resp)
+       if err != nil && (err != ErrClosed || !h.suppressErrClosed) {
+               conn.logger.Printf("jsonrpc2 handler: sending response %s: 
%v\n", resp.ID, err)
        }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/sourcegraph/jsonrpc2/request.go 
new/vendor/github.com/sourcegraph/jsonrpc2/request.go
--- old/vendor/github.com/sourcegraph/jsonrpc2/request.go       2024-12-18 
08:43:08.000000000 +0100
+++ new/vendor/github.com/sourcegraph/jsonrpc2/request.go       2026-09-16 
19:35:20.000000000 +0200
@@ -55,6 +55,10 @@
 // UnmarshalJSON implements json.Unmarshaler.
 func (r *Request) UnmarshalJSON(data []byte) error {
        r2 := make(map[string]interface{})
+       pop := func(key string) interface{} {
+               defer delete(r2, key)
+               return r2[key]
+       }
 
        // Detect if the "params" or "meta" fields are JSON "null" or just not
        // present by seeing if the field gets overwritten to nil.
@@ -68,36 +72,37 @@
        if err := decoder.Decode(&r2); err != nil {
                return err
        }
+
        var ok bool
-       r.Method, ok = r2["method"].(string)
+       r.Method, ok = pop("method").(string)
        if !ok {
                return errors.New("missing method field")
        }
-       switch {
-       case r2["params"] == nil:
+       switch params := pop("params"); params {
+       case nil:
                r.Params = &jsonNull
-       case r2["params"] == emptyParams:
+       case emptyParams:
                r.Params = nil
        default:
-               b, err := json.Marshal(r2["params"])
+               b, err := json.Marshal(params)
                if err != nil {
                        return fmt.Errorf("failed to marshal params: %w", err)
                }
                r.Params = (*json.RawMessage)(&b)
        }
-       switch {
-       case r2["meta"] == nil:
+       switch meta := pop("meta"); meta {
+       case nil:
                r.Meta = &jsonNull
-       case r2["meta"] == emptyMeta:
+       case emptyMeta:
                r.Meta = nil
        default:
-               b, err := json.Marshal(r2["meta"])
+               b, err := json.Marshal(meta)
                if err != nil {
                        return fmt.Errorf("failed to marshal Meta: %w", err)
                }
                r.Meta = (*json.RawMessage)(&b)
        }
-       switch rawID := r2["id"].(type) {
+       switch rawID := pop("id").(type) {
        case nil:
                r.ID = ID{}
                r.Notif = true
@@ -115,13 +120,12 @@
                return fmt.Errorf("unexpected ID type: %T", rawID)
        }
 
+       // The jsonrpc field should not be added to ExtraFields.
+       delete(r2, "jsonrpc")
+
        // Clear the extra fields before populating them again.
        r.ExtraFields = nil
        for name, value := range r2 {
-               switch name {
-               case "id", "jsonrpc", "meta", "method", "params":
-                       continue
-               }
                r.ExtraFields = append(r.ExtraFields, RequestField{
                        Name:  name,
                        Value: value,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2024-12-18 08:43:08.000000000 +0100
+++ new/vendor/modules.txt      2026-09-16 19:35:20.000000000 +0200
@@ -3,10 +3,10 @@
 # github.com/mattn/go-unicodeclass v0.0.2
 ## explicit
 github.com/mattn/go-unicodeclass
-# github.com/reviewdog/errorformat v0.0.0-20240608101709-1d3280ed6bd4
+# github.com/reviewdog/errorformat v0.0.0-20250320004447-223c26dbe212
 ## explicit; go 1.13
 github.com/reviewdog/errorformat
-# github.com/sourcegraph/jsonrpc2 v0.2.0
+# github.com/sourcegraph/jsonrpc2 v0.2.1
 ## explicit; go 1.12
 github.com/sourcegraph/jsonrpc2
 # gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15

Reply via email to