  This is no longer supported. This option is obsolete.

Could it be the reason of my fail or it's caused by gurobi?
So, how to workaround it?

Which compiler are you using?
Here is mine:
clang -v
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.6.0
Thread model: posix
InstalledDir:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Laurent Perron | Operations Research |<EMAIL_ADDRESS>| (33) 1 42 68 53
00
2017-07-21 3:32 GMT-07:00 gmarchi<EMAIL_ADDRESS>
Reopened #438 https://github.com/google/or-tools/issues/438.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/438#event-1173649864, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AKj17Vib6OnFIEhPk_8PwlSEnbhbf1Rzks5sQH45gaJpZM4OfPAl
.

This one seems mine:
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

I pushed a fix that removes the link.
Can you try it out?
Thanks
Laurent Perron | Operations Research |<EMAIL_ADDRESS>| (33) 1 42 68 53
00
2017-07-21 8:40 GMT-07:00 gmarchi<EMAIL_ADDRESS>
This one seems mine:
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/438#issuecomment-317035156,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKj17VSn83u89EcJcEsWGXm73zPszHZuks5sQMZ8gaJpZM4OfPAl
.

Ok thanks @lperron ! However i'm in travel until monday, so i'll try it on monday, sorry.

Ok @lperron I'm here, compiling has gone well and with every solver, thank you.
However I made some tests (using your makefiles): C++ interface seems working without errors, but python test raise me this exception:
Traceback (most recent call last):
  File "/Users/Giacomo/or-tools/ortools/constraint_solver/../gen/ortools/constraint_solver/pywrapcp.py", line 14, in swig_import_helper
    return importlib.import_module(mname)
  File "/Users/Giacomo/anaconda/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 978, in _gcd_import
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 648, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 560, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 922, in create_module
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
ImportError: dlopen(/Users/Giacomo/or-tools/ortools/constraint_solver/../gen/ortools/constraint_solver/_pywrapcp.so, 2): Symbol not found: _SCIPtpiCollectJobs
  Referenced from: /Users/Giacomo/or-tools/lib/libortools.dylib
  Expected in: flat namespace
 in /Users/Giacomo/or-tools/lib/libortools.dylib

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "examples/python/hidato_table.py", line 27, in <module>
    from ortools.constraint_solver import pywrapcp
  File "/Users/Giacomo/or-tools/ortools/constraint_solver/../gen/ortools/constraint_solver/pywrapcp.py", line 17, in <module>
    _pywrapcp = swig_import_helper()
  File "/Users/Giacomo/or-tools/ortools/constraint_solver/../gen/ortools/constraint_solver/pywrapcp.py", line 16, in swig_import_helper
    return importlib.import_module('_pywrapcp')
  File "/Users/Giacomo/anaconda/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_pywrapcp'
make: *** [test_python_examples] Error 1

can you type
otool -L /libortools.dylib?
I would expect it does not find a scip dynamic library.
Laurent Perron | Operations Research |<EMAIL_ADDRESS>| (33) 1 42 68 53
00
2017-07-23 13:24 GMT-07:00 gmarchi<EMAIL_ADDRESS>
Ok @lperron https://github.com/lperron I'm here, compiling has gone
well and with every solver, thank you.
However I made some tests (using your makefiles): C++ interface seems
working without errors, but python test raise me this exception:
Traceback (most recent call last):
File "/Users/Giacomo/or-tools/ortools/constraint_solver/../gen/ortools/constraint_solver/pywrapcp.py", line 14, in swig_import_helper
return importlib.import_module(mname)
File "/Users/Giacomo/anaconda/lib/python3.6/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 978, in _gcd_import
File "", line 961, in _find_and_load
File "", line 950, in _find_and_load_unlocked
File "", line 648, in _load_unlocked
File "", line 560, in module_from_spec
File "", line 922, in create_module
File "", line 205, in _call_with_frames_removed
ImportError: dlopen(/Users/Giacomo/or-tools/ortools/constraint_solver/../gen/ortools/constraint_solver/_pywrapcp.so, 2): Symbol not found: _SCIPtpiCollectJobs
Referenced from: /Users/Giacomo/or-tools/lib/libortools.dylib
Expected in: flat namespace
in /Users/Giacomo/or-tools/lib/libortools.dylib
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "examples/python/hidato_table.py", line 27, in
from ortools.constraint_solver import pywrapcp
File "/Users/Giacomo/or-tools/ortools/constraint_solver/../gen/ortools/constraint_solver/pywrapcp.py", line 17, in
_pywrapcp = swig_import_helper()
File "/Users/Giacomo/or-tools/ortools/constraint_solver/../gen/ortools/constraint_solver/pywrapcp.py", line 16, in swig_import_helper
return importlib.import_module('_pywrapcp')
File "/Users/Giacomo/anaconda/lib/python3.6/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_pywrapcp'
make: *** [test_python_examples] Error 1
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/438#issuecomment-317279557,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKj17WudkiwxJFym9dyM8eLodDsDgEuEks5sQ6vxgaJpZM4OfPAl
.

otool -L /Users/Giacomo/or-tools/lib/libortools.dylib

gives me this output:
/Users/Giacomo/or-tools/lib/libortools.dylib:
	/Users/Giacomo/or-tools/lib/libortools.dylib (compatibility version 6.3.0, current version 6.3.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.60.2)
	libgurobi75.so (compatibility version 7.5.0, current version 7.5.1)
	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.8)

otool -L /Users/Giacomo/or-tools/lib/libortools.dylib

gives me this output:
/Users/Giacomo/or-tools/lib/libortools.dylib:
	/Users/Giacomo/or-tools/lib/libortools.dylib (compatibility version 6.3.0, current version 6.3.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.60.2)
	libgurobi75.so (compatibility version 7.5.0, current version 7.5.1)
	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.8)

Il giorno 23 lug 2017, alle ore 23:52, lperron<EMAIL_ADDRESS>ha scritto:
can you type
otool -L /libortools.dylib?
I would expect it does not find a scip dynamic library.
Laurent Perron | Operations Research |<EMAIL_ADDRESS>| (33) 1 42 68 53
00
2017-07-23 13:24 GMT-07:00 gmarchi<EMAIL_ADDRESS>
Ok @lperron https://github.com/lperron I'm here, compiling has gone
well and with every solver, thank you.
However I made some tests (using your makefiles): C++ interface seems
working without errors, but python test raise me this exception:
Traceback (most recent call last):
File "/Users/Giacomo/or-tools/ortools/constraint_solver/../gen/ortools/constraint_solver/pywrapcp.py", line 14, in swig_import_helper
return importlib.import_module(mname)
File "/Users/Giacomo/anaconda/lib/python3.6/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 978, in _gcd_import
File "", line 961, in _find_and_load
File "", line 950, in _find_and_load_unlocked
File "", line 648, in _load_unlocked
File "", line 560, in module_from_spec
File "", line 922, in create_module
File "", line 205, in _call_with_frames_removed
ImportError: dlopen(/Users/Giacomo/or-tools/ortools/constraint_solver/../gen/ortools/constraint_solver/_pywrapcp.so, 2): Symbol not found: _SCIPtpiCollectJobs
Referenced from: /Users/Giacomo/or-tools/lib/libortools.dylib
Expected in: flat namespace
in /Users/Giacomo/or-tools/lib/libortools.dylib
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "examples/python/hidato_table.py", line 27, in
from ortools.constraint_solver import pywrapcp
File "/Users/Giacomo/or-tools/ortools/constraint_solver/../gen/ortools/constraint_solver/pywrapcp.py", line 17, in
_pywrapcp = swig_import_helper()
File "/Users/Giacomo/or-tools/ortools/constraint_solver/../gen/ortools/constraint_solver/pywrapcp.py", line 16, in swig_import_helper
return importlib.import_module('_pywrapcp')
File "/Users/Giacomo/anaconda/lib/python3.6/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_pywrapcp'
make: *** [test_python_examples] Error 1
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/438#issuecomment-317279557,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKj17WudkiwxJFym9dyM8eLodDsDgEuEks5sQ6vxgaJpZM4OfPAl
.

—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub https://github.com/google/or-tools/issues/438#issuecomment-317284792, or mute the thread https://github.com/notifications/unsubscribe-auth/ALqfr0iAUCnyLdjsSGTelR43-QAuzLdsks5sQ8CZgaJpZM4OfPAl.

I have changed the way to build scip.
can you try the instructions there:
http://or-tools.blogspot.com/2017/03/changing-way-we-link-with-scip.html

Everything works! Thank you!

Il giorno 01 ago 2017, alle ore 16:51, lperron<EMAIL_ADDRESS>ha scritto:
I have changed the way to build scip.
can you try the instructions there:
http://or-tools.blogspot.com/2017/03/changing-way-we-link-with-scip.html http://or-tools.blogspot.com/2017/03/changing-way-we-link-with-scip.html
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub https://github.com/google/or-tools/issues/438#issuecomment-319394106, or mute the thread https://github.com/notifications/unsubscribe-auth/ALqfrwXa5CaJu4DAUfLzo6QvokgnW8C9ks5sTzt1gaJpZM4OfPAl.


font awesome

Type: Bug
Hi, once introduced the link rel from font awesome an putting it on my weg page it works, bur after working on CSS and adding some border to the icon it doesn't work anymore, it shows a square inaide my round button that noramlly is a cart on font awesome.
HTML code:

apple
Apple Serie 1

$150

and the CSS code:
#product1 .pro .cart {
width: 40px;
height: 40px;
line-height: 40px;
border-radius: 50px;
background-color: #e8f6ea;
font-weight: 500;
color: #088178;
border-color: 1px solid #cce7d0;
position: absolute;
bottom: 20px;
right: 10px;
}

VS Code version: Code 1.75.0 (e2816fe719a4026ffa1ee0189dc89bdfdbafb164, 2023-02-01T15:23:45.584Z)
OS version: Windows_NT x64 10.0.19045
Modes:
Sandboxed: No

@OviCONsoft can you please explain the issue in detail.

I found out what the issue was. The problem i had was that the font awesome text i had wrote it incorectly:
 This is the correct one and i had it like this before
  That b was causing me problems when displaying the icon

Closing for now. @OviCONsoft, please re-open if the issue persists.


Combined Atracsys + Kuka logging

Depends on:

https://github.com/ahundt/grl/issues/140 Kuka
https://github.com/ahundt/grl/issues/143 Atracsys

Fill out and read/write:
https://github.com/ahundt/grl/blob/master/include/grl/flatbuffer/LogKUKAiiwaFusionTrack.fbs

Done.


Hawq-353 fix the bug of segment number mismatch in master's RM

please review, thanks!

The fix looks good. +1

The fix looks good. +1


Allow for restarts at non-original mesh positions

Currently we perform overset connectivity before nalu-wind has had a chance to populate a restart.  Moving the connectivity calculations after the solvers prepare themselves should account for this scenario.  Still needs to be tested.

I don't have merge powers so someone else will have to make this official


Allow empty strings for arguments

For pss, an empty string is a valid target value. Currently the parser does not allow it. We need a property to allowEmptyStrings.

How about making the target optional instead of required argument?

@agazso I feel like it conveys a different meaning.
Also, my assumption is that it would be used mainly without a target then, which to my understanding, is an unreliable way of sending PSS messages.
Not strong opinions - if you think these are not valid, or acceptable risks, then let's do it as you suggest.

Empty target no longer seems to be a valid value


Add "raw" body request/response sub-tabs to Request tab.

Adds a "raw" sub-tab to the request/response tabs within the Request tab, displaying the un-formatted, un-highlighted body content of the request/response.

Associated with #135.

Looks great, just the quote usage nit.

I just realized, this quite the right functionality for the tab. This tab is supposed to show the "whole" raw req/res. Currently this just shows the raw body, but the whole raw req/res also includes the heads, body, etc.

Yeah, at @avanderhoorn just mentioned, this should show the raw HTTP request or response.

Are you happy that this is a reconstruction vs an exact copy? An exact copy would require us to essentially have all the data duplicated.

I'm happy with it being a reconstruction. Just watch things like the sort order for headers, and capitalization, we'll want to get those right.

Re sort order... I'm not 100% sure if we get in at the level where sort order is maintained. Additionally on the response we may not get all headers since some headers are added downstream of where we tap.

I'm happy with it being a reconstruction. Just watch things like the sort order for headers, and capitalization, we'll want to get those right.

We won't necessarily get the actual sort order for headers, as it's just a map with no guarantees about enumeration order.  (We could theoretically capture set order within the application for responses, but that's not necessarily transmittal order.) The proxies also do not, currently capture the exact capitalization of set headers (as the spec says they are case-insensitive way).

Closing for the time being.


Issue77 Create an ElephantSQL test Database

connected a new elephant sql database as user provided service in ibm cloud
changed the code and setting files for the test database
pasted the new vcap service environment variable in our pipeline

IBM Cloud toolchain: Delivery Pipeline deployed products to dev, including commit 6d63d3c1e060bb7b22f9728679936441c504181f

IBM Cloud toolchain: Delivery Pipeline deployed products to prod, including commit 6d63d3c1e060bb7b22f9728679936441c504181f


Fixing bug where watch fails when etcd revisions are compacted

@vareti we need to add this again, can you create a new PR?


OpenAI Key entered and no GPT 4 to see anymore

Hello together
Interesting. I entered the OpenAI Key and it shows only GPT 3 and no GPT 4. You can not select GPT 4.
Why ?
Can you help me there ?
I still think gpt4-playground is great because you don't have to log in. Thanks a lot
Greetings Michael

im pretty sure it means that your specific api access does not include gpt4

I on the other hand see the choise on the left hand side but even if i choose gpt4, api still got the answer that it's gpt3

Hello good morning
I just received an email from Open AI saying : You now have access to
the GPT-4 API.
As part of the general availability of the GPT-4 API, your OpenAI
organization (org-3bm8oR0btJ08S31nMny1TzJk) can now access GPT-4 models
with 8k context size via the existing OpenAI API.
You can learn more about GPT-4 in our API documentation.
Try it on the OpenAI Playground
Best,
The OpenAI Team
Just wanted to let you know
Greetings Michael
------ Originalnachricht ------
Von "shafran666" @.>
An "Nashex/gpt4-playground" @.>
Cc "Mike2023a" @.>; "Author"
@.>
Datum 06.07.2023 13:02:52
Betreff Re: [Nashex/gpt4-playground] OpenAI Key entered and no GPT 4 to
see anymore (Issue #13)

I on the other hand see the choise on the left hand side but even if i
choose gpt4, api still got the answer that it's gpt3
image
https://user-images.githubusercontent.com/83636793/251431157-e0b3e03c-4761-4dd3-95e3-a00a1cbc96f5.png
—
Reply to this email directly, view it on GitHub
https://github.com/Nashex/gpt4-playground/issues/13#issuecomment-1623474269,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A6V4ZZZRKPRRCHPRY7X3GCLXO2LNZANCNFSM6AAAAAAZKCH2OQ.
You are receiving this because you authored the thread.Message ID:
@.***>

Your E-Mail. Your Cloud. Your Office. eclipso Mail & Cloud. https://www.eclipso.de

@jahanshahub is right. See this article by OpenAI: How can I access GPT-4?
Excerpt:

On July 6, 2023 , we gave access to the GPT-4 API (8k) to all API users who have made a successful payment of $1 or more. We plan to open up access to new developers by the end of July 2023, and then start raising rate-limits after that depending on compute availability.


Deprecate @RequestObject in favor of @RequestBean

Motivation:
There is no reason to put @RequestObject for a parameter which needs to be converted into an object with a request converter, because all parameters in the annotated service method should be injectable and the others can be identified by annotations or their types. So, any parameter which does not have an annotation can be tried to be converted with a request converter.
However, in this case, we have an ambiguity which parameter can be converted into an object with a request converter or can be converted into a bean. So we need to introduce a new annotation @RequestBean which indicates a parameter needs to be converted into a bean, which is used relatively less than using a request converter.
Modifications:

Deprecate @RequestObject.
Add @RequestBean which is used for converting a request into a bean.
@RequestConverter can be put on a parameter of an annotated service method.
Remove @RequestObject from tests, except for minimal test cases for testing backward compatibility.

Result:
A user does not need to put @RequestObject annotation on a parameter which needs to be converted into an object with a request converter any more.

@trustin and I talked about this issue at office. And finally we realized that it's not necessary to deprecate @RequestObject by introducing new annotations like @RequestBean. Instead, it's enough to make @RequestObject annotation optional in the parameter list of a service method.
So let me close this PR now, and then make a new PR for making @RequestObject annotation optional in the parameter list of a service method.
Thanks, reviewers. :-)


Backend PPL queries should support more than 2 fields

What happened:
if you try to alert on a PPL query that returns more than 2 fields, the error
Failed to evaluate queries and expressions: [plugin.downstreamError] failed to query data: Failed to query data: rpc error: code = Unknown desc = response should have 2 fields but found 3 is returned.
This is because the PPL response parser is hardcoded to only accept 2 fields (with the value field being a number)
This was originally reported in a support escalation.
What you expected to happen:
I expected the query to succeed and return data that can be alerted on.
How to reproduce it (as minimally and precisely as possible):
I reproduced it using the local opensearch instance we were setting up for local traces and the query
source = security-auditlog-2023.05.22 | stats count(audit_cluster_name ) by @timestamp , audit_node_id  (though the source would need to be a valid source from the local opensearch)
Anything else we need to know?:
I suspect that even once the data is parsed correctly, it may have the same issues as https://github.com/grafana/grafana/issues/63388 , where string fields in the data passed to the alerting code causes it to error, and cloudwatch has to group the fields before returning them. Though the customer was asking about multidimensional alerts, and I may be misunderstanding how those work.
Environment:

Grafana version:
Plugin version:

Hello, I'm the original reporter referenced above in the support escalation. I've been keeping an eye on this issue and as far as I know it's still relevant. We would absolutely use this capability in our alerting if it was supported.
Thanks!

Hi @JesseStimpson ! We're still planning to work on this, I removed the stale label.


Move modules into contrib

The following modules should be moved into contrib:

django_orm
flask_util
keyring_storage
locked_file
multistore_file
appengine

@nathanielmanistaatgoogle @dhermes I'll be sending a PR shortly for this, but I wanted to make sure you two were comfortable with the list.

SGTM :+1:

I'm not so sure about the name contrib. What are some other choices? third_party? optional? ext? extensions?

I'd be fine with ext, but I actually like the idea of "contrib" as a concept. The concept of a community-driven but project-sponsored set of modules is something I think could be very valuable. So long as we don't lose that, I'm fine with whatever we call it.

I like contrib well enough. third_party is inappropriate as that name implies that the code is homed somewhere else and merely replicated in our repository.
Plan sounds good to me too.


UUID mask

Hello please create format UUID for beacon.
UUID format
It's separated by time-version-clock_seq_hi- clock_seq_lo- node, as indicated in the followoing rfc.
From the IETF RFC4122:
4.1.2.  Layout and Byte Order

   To minimize confusion about bit assignments within octets, the UUID
   record definition is defined only in terms of fields that are
   integral numbers of octets.  The fields are presented with the most
   significant one first.

   Field                  Data Type     Octet  Note
                                        #

   time_low               unsigned 32   0-3    The low field of the
                          bit integer          timestamp

   time_mid               unsigned 16   4-5    The middle field of the
                          bit integer          timestamp

   time_hi_and_version    unsigned 16   6-7    The high field of the
                          bit integer          timestamp multiplexed
                                               with the version number

   clock_seq_hi_and_rese  unsigned 8    8      The high field of the
   rved                   bit integer          clock sequence
                                               multiplexed with the
                                               variant

   clock_seq_low          unsigned 8    9      The low field of the
                          bit integer          clock sequence

   node                   unsigned 48   10-15  The spatially unique
                          bit integer          node identifier

   In the absence of explicit application or presentation protocol
   specification to the contrary, a UUID is encoded as a 128-bit object,
   as follows:

   The fields are encoded as 16 octets, with the sizes and order of the
   fields defined above, and with each field encoded with the Most
   Significant Byte first (known as network byte order).  Note that the
   field names, particularly for multiplexed fields, follow historical
   practice.

   0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          time_low                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       time_mid                |         time_hi_and_version   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |clk_seq_hi_res |  clk_seq_low  |         node (0-1)            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         node (2-5)                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The internal representation of a UUID is a specific sequence of
 bits in memory, as described in Section 4.  To accurately
 represent a UUID as a URN, it is necessary to convert the bit
 sequence to a string representation.

 Each field is treated as an integer and has its value printed as a
 zero-filled hexadecimal digit string with the most significant
 digit first.  The hexadecimal values "a" through "f" are output as
 lower case characters and are case insensitive on input.

 The formal definition of the UUID string representation is
 provided by the following ABNF [7]:

 UUID                   = time-low "-" time-mid "-"
                          time-high-and-version "-"
                          clock-seq-and-reserved
                          clock-seq-low "-" node
 time-low               = 4hexOctet
 time-mid               = 2hexOctet
 time-high-and-version  = 2hexOctet
 clock-seq-and-reserved = hexOctet
 clock-seq-low          = hexOctet
 node                   = 6hexOctet
 hexOctet               = hexDigit hexDigit
 hexDigit =
       "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" /
       "a" / "b" / "c" / "d" / "e" / "f" /
       "A" / "B" / "C" / "D" / "E" / "F"

Same this ________-____-____-____-____________

@kerimkuscu ,
Have a try with
       Inputmask({
            regex: "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}",
            casing: "upper"
        }).mask("input");

https://codepen.io/robinherbots/pen/WqaLBd


RFE: Cluster Read Only Admin

Rancher version:
2.2.2
Description:
We would like to give some users the ability to see everything in the cluster, but not edit everything. They should still be able to edit their own projects. Right now we have to just give these people Admin and hope they don't do anything they shouldn't
gz#4463

This is a role you can create yourself; inherit from Kubernetes view.

That does not seem to do what we are looking for.
Here's how I tested it.

Added a new Cluster Role called  "Cluster Admin Viewer", had that role inherit from "Kubernetes view" role.
Added a new user as a standard user
3   Granted the new user access to our test cluster using the "Cluster Admin Viewer"  role
Logged into the new test account

Doing so allows me to see that the test cluster exists but no information about the cluster, the nodes or any of the projects
What we are looking for is the exact same thing a cluster admin  or better yet a Rancher admin can see but in a read only state.  I.e all data about Rancher, all its clusters and all of the nodes, projects, deployments and other resources.

Ok yes; to see all clusters it would have to be a global role.

This is how I was able to solve this. Does it work? The only thing is that I have to add the user to each cluster manually.

@ankur111 This does appear to solve most of what we were wanting.  It's not a true Readonly Rancher admin,  but close enough.
It would be cool if you shipped a pre-built read only admin roll using settings like these.
FYI, I added a bunch more resource types in mine to flesh it out, things like: StatefulSets, Jobs, Events, etc  I have 20 resources total.  Still not sure I missed anything critical and this won't allow this user to see CRDs (I don't think)

Thanks @dsargent3220. I think read-only admin could be a useful role. We will keep this in mind the next time we update our roles (no ETA yet)

Hello,
Now with Rancher 2.4.x it is possible to create custom Global role, any idea on how to do some kind of Global Admin Read-only role?

@straffalli did you ever figure this out?
I'm also trying to do this; I tried cloning restricted-admin and changing permissions to be only get+list+watch, however this does not appear to work. I cannot see the resources.
It's weird because even when not changing the cloned role, it appears the "real" restricted-admin role gives me permissions that the cloned restricted-admin role does not, when I assign the cloned role instead of the built-in role...

I would still like to know this so would rather not close fwiw.

+1,
We wanted to add the groups with read-only permission, So they can view all the cluster and resources deployed in it and not able to edit/delete it.

with above privilege we can able to see the clusters but not able to view deployments in project as shown below

I would still like to know this so would rather not close fwiw.

I vote for this feature as well!

I would still like to know this so would rather not close fwiw.

I would still like to know this so would rather not close fwiw.

Same, highly interested in that. We have a need to create a role that will list all clusters, except the local one.  Users with that role shouldn't be able to change anything, just read only.

restricted-admin

I think this is related to the fact that the restricted-admin is hardcoded in Rancher: https://github.com/rancher/rancher/search?q=GlobalRestrictedAdmin
I am trying to achieve the same - a power user with view only access, but it seems like it's impossible.

We talked to Rancher about getting that feature added in a future version. It might help with the progress of the issue.

/remove-state stale

/remove-state stale

/remove-state stale

/remove-state stale

Hey, there are still not very much updates on this topics. I'm also trying to create some custom roles, but as discussed before. There is an issue to see some resources on the cluster, if not restricted admin is used.
Even if I try to create the resources like the others.
Something else, which I find confusing is that I can't only use a custom role and don't use the pre-created roles.
I provided also a Screenshot, maybe you can see what I meant to mean.

Why its not possible to use my custom roles only? The problem is I don't get really the information from the docs to create some custom roles.

+1 for this feature

/remove-state stale

https://www.suse.com/c/rancher_blog/building-a-custom-read-only-global-role-with-the-rancher-kubernetes-api/


feature: Add support for nodePort to be specified in helmchartt

what
Adds ability for user to explicitly set a nodePort value in the helmchart (to avoid kube allocating one).
why
Some folks may require an explicity nodeport to be set when working with an external loadbalancer etc.
tests
I have tested these changes by running it in a test cluster.
references
https://github.com/runatlantis/helm-charts/pull/296 (attempting to fix this other contribution up and get it merged in)

Thanks for the contribution @mattjamesaus


chore: add pre-commit to check conventional commit msg

Add pre-commit to check Conventional Commits(https://www.conventionalcommits.org/en/v1.0.0/).
To finish setup:

Run pip install -r requirements-dev.txt
Run pre-commit install --hook-type commit-msg

I think work on this has stalled. If that isn't the case, this can be reopened.


Slider widget prevents vertical scrolling

Hello,
I've got an application that has a bunch of sliders repeating vertically.  If I am trying to scroll down the page by swiping up anywhere on any of the sliders ( not just the circle in the sliders), the touch is blocked, and the view will not scroll.  I have to touch somewhere else on the screen where there isn't a slider to slide vertically.
Ideally the slider should be able to detect if you are swiping horizontally or vertically.  If you swipe vertically then it should just scroll the page.  You should also have to touch the actual sliding part as well; a touch anywhere on the slider should not move it.
This is the default behavior for iOS.  To see, go to settings -> sounds, and see how the scrolling works when you swipe up and down on the "ringer and alerts" volume slider.
Thanks!  Ionic is awesome!

Greetings @dtruel!
My sensors indicate that you need to update your issue through our custom issue form. We are now requiring all issues to be submitted this way, to ensure that we have all of the information necessary to fix them as quickly as possible.
Click Here To Update Your Issue
I will have no choice but to close this issue if it is not resubmitted through the form. Please fill out the rest of the form, so that I may use my friendly robot powers to assist you.
Thank you!

Well, I found that using a different slider that is angular compatible works.  Looks like the "range" input isn't yet working that great in the iOS browser.  I used the following slider and it works as it should.
https://github.com/rzajac/angularjs-slider

The angularjs-slider still doesn't fix this. The problem remains the same, when you tap on the slider with an intention to scroll, slider changes value. It doesn't work with overflow-scroll="true|false".


build pipeline fails ocassionally in jdk11 server integration test

We found that timeout happens from time to time when processing complete-mock - ExplanationOfBenefit-1.json. and seems this only happens for jdk11, and we have not run into this error in jdk8 so far.
The CI Workflow generated the following error on one of the complete-mock resources - OK         ibm/complete-mock/ExplanationOfBenefit-1.json.
 [ERROR] processExamples(com.ibm.fhir.server.test.R4ExampleServerTest)  Time elapsed: 130.08 s  <<< FAILURE!
javax.ws.rs.client.ResponseProcessingException: Problem with reading the data, class com.ibm.fhir.model.resource.ExplanationOfBenefit, ContentType: application/fhir+json.

The resource generates the following parameters:
Starting Test -> testExtractAll
0|care-team|=[eVOYEME6M8]
1|claim|=[ldKETF2ZcD]
2|coverage|=[QCuLLknY32]
Value DateTime: [2019-08-03T00:12:34.062-04:00]
3|created|=[2019-08-03T00:12:34.062-04:00]
4|detail-udi|=[WhMqzPWY0J]
5|disposition|=[CzARoc8inI]
6|encounter|=[FsfGHHCM4v]
7|enterer|=[FJTi3mIU49]
8|facility|=[819y6m8cV7]
9|identifier|=[null]
10|item-udi|=[XU7oL5ld4n]
11|patient|=[Jad8F8OL2Z]
12|payee|=[gnk1pVCcYx]
13|procedure-udi|=[ZA8nSONiyf]
14|provider|=[NvE9EamfCR]
15|status|=[cancelled]
16|subdetail-udi|=[JSHDCyCWuh]
17|_id|=[YSbxPVnN2s]
Value DateTime: [2019-08-03T00:12:34.152-04:00]
18|_lastUpdated|=[2019-08-03T00:12:34.152-04:00]
19|_profile|=[pjq89TOc13]
20|_security|=['true']
21|_source|=[aTBkgna3DR]
22|_tag|=['true',ibm/complete-mock]
End of Test -> testExtractAll
PASSED: testExtractAll

I did some rough math and lots of tests 1000 loops of the minimal spec test.  It resulted in 25 to 25 seconds to complete each loop.
A few causes could be:

Row to Table Locking Switch (We could tune this) http://db.apache.org/derby/docs/10.12/tuning/ctunoptimz26019.html
derby.stream.error.logSeverityLevel also the lock log severity
http://db.apache.org/derby/docs/10.12/adminguide/cadminlockvti83889.html

To see a thread's stack trace when a lock is requested, set derby.locks.deadlockTrace to true. This property is ignored if derby.locks.monitor is set to false.

Linked Failure on OpenJDK8 - https://github.com/IBM/FHIR/pull/357/checks?check_run_id=288198433

I run into this issue locally with jdk8 and the same sample json. and there is not time out in server side at all, the processings of the sample json file are always within only 1 second. the timeout happens in the client side. and this should be a unsolved issue of apache cxf async http client just as mentioned there<EMAIL_ADDRESS>

Per Albert's fix, I've marked this as closed


Update Python.github to include new venv excl

Gaining in popularity in multi-national corps I work at.  Proposed change since projects often include other venvs and need to be name specific.
ex:
./.spack-env
./.python-env
Reasons for making this change:
TODO
Links to documentation supporting these rule changes:
TODO
If this is a new template:

Link to application or project’s homepage: TODO

Gaining in popularity in multi-national corps I work at.

@whardier any links to StackOverflow discussions or other documentation about this change?

No just what I’ve seen at big telecom over the years.
On Tue, Sep 10, 2019 at 6:09 AM Brendan Forster<EMAIL_ADDRESS>wrote:

Gaining in popularity in multi-national corps I work at.
@whardier https://github.com/whardier any links to StackOverflow
discussions or other documentation about this change?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/github/gitignore/pull/3170?email_source=notifications&email_token=AACKRFP7MS23YE5XZZ7VVZDQI6TBHA5CNFSM4ITBUWLKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6LGYAQ#issuecomment-529951746,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AACKRFKROK3ZRU6V4ZL3XJTQI6TBHANCNFSM4ITBUWLA
.

--
[image: --]
Shane R. Spencer
[image: https://]about.me/ShaneSpencer
https://about.me/ShaneSpencer?promo=email_sig

Closing this out due to inactivity and lack of clarity about the benefits of the proposed changes.


YOURLS_UNIQUE_URLS slows down large instances

Code of Conduct

[X] I agree to follow this project's Code of Conduct.

Submission validity

[X] This is not a personal support request, that should be posted on discussions community.
[X] I checked current issues and this request isn't a duplicate of an existing issue, opened or closed.

Self troubleshooting

[X] I've read the documentation and made sure to follow it.
[X] I've read the troubleshooting first steps and frequent issues guides.

Version
1.9.2
Description
As the table of shorturls grows into the millions of rows, if YOURLS_UNIQUE_URLS is enabled (the default), checking whether a new url value already exists in the table takes longer and longer.
Expectation
No response
Reproduction steps
No response
Context
This is a follow-up issue to #3791 in which a user traced slow performance when adding new links on their system to the SQL query run by yourls_long_url_exists(), and found that setting YOURLS_UNIQUE_URLS to false sped up adding new links.
As a first step, I identified three possibilities for making this check faster:

Create an index on the url column
The limitation of this option is that TEXT columns (which url is) must index on a prefix only. With a sufficiently long prefix, it should still improve performance. MySQL should find possible matches using the prefix index, then only perform a full comparison on the candidate rows.
However, the user in question indicated that they have many, many similar URLs, and the prefix index wouldn't help if the prefix is shorter than the links' common portion.
Add a FULLTEXT index on the url column and change the code to use MATCH(url) AGAINST(:url IN BINARY MODE) or similar
Add an indexed url_hash column and use that for lookups instead

Options 2 and 3 both require code changes—with 3 being the most drastic. Creating a prefix index (option 1) is the simplest, and should improve performance in most cases with an appropriately-chosen prefix length.

Option 3 sounds like a pretty stout solution that would future-proof and potentially be the most performative, as well.  I'd be interested in drafting up a PR for that if it would be worth considering.


Refactor test_native/test_rolemanagement.py to use BoaConstructor

Refactored test_native/test_rolemanagement.py files to use BoaTestCase in place of BoaTest for unit testing.

Task linked: CU-86drpnc8q Refactor test_native/test_rolemanagement.py to use BoaConstructor

coverage: 92.111% (+0.005%) from 92.106%
when pulling b0e9d34c729d6bcff8c25e71bed318c8cb3aacb7 on CU-86drpnc8q
into a860744862ccaa8b2f686699535a540d63ad21e8 on development.


Prepare for new release of Jira

Workflow links: https://github.com/atlassian-labs/atlassian-slack-integration-server/actions/runs/1240216959, https://github.com/atlassian-labs/atlassian-slack-integration-server/actions/runs/1240217698.

Compatibility with bugfix versions is updated automatically. We should adjust release checked to ignore bugfix version in #130 .


Override Print::write(const uint8_t *buffer, size_t size)

Felt slow.
Then I noticed you only overrode write(uint8_t c) on Print, so when using EthenetClient as my stream each char gets sent one at a time vs. using EthernetClient's buffers.
The fix is to override virtual size_t write(const uint8_t *buffer, size_t size) from Print.
PR incoming...

fixed in 0.2.0


Add _is_null and _is_not_null operators

This PR is related to #682 and #823.

Add _is_null and _is_not_null operators.
Add test cases.
Update README.

example
db.todos = [
  { id: 1, completeDate: null },
  { id: 2, completeDate: null },
  { id: 3, completeDate: '2022-11-20T13:02:47.210Z' },
  { id: 4, completeDate: '2023-12-05T17:58:17.420Z' },
]

attr_is_null
// GET /todos?completeDate_is_null
[
  { id: 1, completeDate: null },
  { id: 2, completeDate: null }
]

attr_is_not_null
// GET /todos?completeDate_is_not_null
[
  { id: 3, completeDate: '2022-11-20T13:02:47.210Z' },
  { id: 4, completeDate: '2023-12-05T17:58:17.420Z' },
]

Hi @typicode,
I want to express my gratitude for the valuable tool that json-server is, enabling us to swiftly set up mock servers for testing purposes. Your effort in providing this as an open-source project is highly appreciated.
While working with json-server, I noticed a limitation in its current functionality related to querying null and non-null values. I believe incorporating support for such queries would be a beneficial addition. This idea has also been raised in issues #682 and #823.
I observed attempts by others to implement this as a custom filter, but unfortunately, it didn't yield the desired results. Consequently, I took the initiative to contribute a feature that allows querying null values.
Initially, I envisioned designing the single is_null operator as follows:

URL
description

GET /todos?completeDate_is_null
return null values (default is true)

GET /todos?completeDate_is_null=true
return null values

GET /todos?completeDate_is_null=false
return non-null values

However, during the implementation, it seems that this design required some code refactoring. Consequently, I opted for a solution involving separate is_null and is_not_null operators. I would greatly appreciate any advice or guidance you could provide on this approach.
Thank you for your time and consideration.
Best,
Leon


fix: ensure unique instances for each Service subclass using Map

Previously, the Service base class used a single static instance, which caused
all subclasses to share the same instance. This update replaces the static
instance with a Map to manage unique instances for each subclass

Many of the services load up models and such and we probably only want one instance, ever, enforcing the singleton pattern, if we add a map won't we have several instances of each class? That's why I made it this service pattern.

Many of the services load up models and such and we probably only want one instance, ever, enforcing the singleton pattern, if we add a map won't we have several instances of each class? That's why I made it this service pattern.

I see, but in the context of the Discord bot, we require two services: ISpeechService and ITranscriptionService. (Also, there are IVideoService and IBrowserService, but I'm not sure if these are necessary for the bot.) Would you like me to implement the Singleton pattern specifically for ISpeechService and ITranscriptionService, or would you prefer a different approach? Let me know how you'd like to proceed!

I want one class of each service shared across all running agents, imagine we are running 10 agents, we want them to share the transcription service

I agree with @lalalune we should close this PR as the singleton pattern would work best in this usecase.

I agree with @lalalune we should close this PR as the singleton pattern would work best in this usecase.

@monilpat thanks for the review but from my understanding, the current implementation ensures that each service type has its own singleton instance. This means only one instance of each subclass is created and reused. Could you clarify if the intent is different?

I agree with @lalalune we should close this PR as the singleton pattern would work best in this usecase.

@monilpat thanks for the review but from my understanding, the current implementation ensures that each service type has its own singleton instance. This means only one instance of each subclass is created and reused. Could you clarify if the intent is different?

Yeah of course anytime! Here was my thought process if it helps: Should unrelated services (e.g., transcription and speech) share a single instance, or should each service type have its own singleton?
Are there current or future use cases where having service-specific singletons is necessary?
Recommendation:
If one global instance for all services is the clear requirement, stick with the static singleton approach.
If service-specific singleton instances are required now or likely in the future, proceed with the Map implementation to ensure flexibility and scalability.

I agree with @lalalune we should close this PR as the singleton pattern would work best in this usecase.

@monilpat thanks for the review but from my understanding, the current implementation ensures that each service type has its own singleton instance. This means only one instance of each subclass is created and reused. Could you clarify if the intent is different?

Yeah of course anytime! The intent is not different. I just share @lalalune 's concern around multiple instances of service rather than a 1-> many from service -> agents.


feature(quarkus): Updating dependency to fix vulnerabilities

TypeDescriptions no longer necessary because unknown reasons. But it works, so maybe now the representers are enough.

There are still vulnerabilities that (hopefully) will be fixed on future Quarkus releases. Right now we can only wait.

Codecov Report

Merging #163 (607a2c6) into main (350faad) will decrease coverage by 0.13%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##               main     #163      +/-   ##
============================================
- Coverage     80.46%   80.32%   -0.14%
- Complexity      103      104       +1
============================================
  Files            42       42
  Lines          2063     2069       +6
  Branches        289      293       +4
============================================
+ Hits           1660     1662       +2
  Misses          288      288
- Partials        115      119       +4

Impacted Files
Coverage Δ

...ployment/generator/kamelet/KameletRepresenter.java
90.90% <ø> (-0.82%)
:arrow_down:

...io/kaoto/backend/api/service/step/StepService.java
100.00% <0.00%> (ø)

.../backend/api/service/language/LanguageService.java
80.00% <0.00%> (ø)

...kend/api/service/deployment/DeploymentService.java
67.64% <0.00%> (ø)

.../backend/api/metadata/catalog/AbstractCatalog.java
100.00% <0.00%> (ø)

.../service/viewdefinition/ViewDefinitionService.java
100.00% <0.00%> (ø)

...end/api/service/step/parser/StepParserService.java
100.00% <0.00%> (ø)

...ployment/generator/DeploymentGeneratorService.java
100.00% <0.00%> (ø)

...va/io/kaoto/backend/deployment/ClusterService.java
60.12% <0.00%> (+0.50%)
:arrow_up:

...io/kaoto/backend/api/resource/v1/StepResource.java
79.06% <0.00%> (+2.40%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Structured logging

Description
Structured logging a'la K8s
Issue link
#253
Checklist

Purpose

[ ] Bug fix
[x] New functionality
[ ] Documentation
[ ] Refactoring
[ ] CI

Test

[x] Unit test
[ ] E2E Test
[x] Tested manually

Introduce a breaking change

[ ] Yes (description required)
[x] No

Introduce changes in the Operator

[ ] Yes (description required)
[x] No

Shall we make the ADP format the only one?
My approach was that Meridio is an open-source project first and Ericsson second. But let's be realistic, Meridio will be used only by Ericsson for a long time. As such we can make the Ericsson format the only format and add different formats later if needed. The current implementation can be seen as a PoC that different formats can be supported.

Shall we have a global logger?
I have kind of gone all-in on the go-logr/logr concepts (except for Fatal()). E.g. the WithValues() function can be used to pass adapted loggers down the food-chain. But the individual parts of Meridio are fairly small (at least compared to K8s) so a more pragmatic approach may be acceptable. For instance;
// New() is supposed to be called once and will also set the global Logger
// (multiple calls to New() are allowed but will over-write the global Logger)
logger := log.New("Meridio-ipam", config.LogLevel)
// The global logger can be used anywhere
log.Logger.Info("Printed by the global logger")

N.B. the intended way of using go-logr/logr is still possible, but it is not enforced.

The latest commit implements an NSM logger, used as (see load-balancer/main.go);
	// Work-around for hard-codes logrus dependency in NSM
	if config.LogLevel == "TRACE" {
		nsmlog.EnableTracing(true)
		logrus.SetLevel(logrus.TraceLevel)
	}
	logger.Info("NSM trace", "enabled", nsmlog.IsTracingEnabled())
	ctx = nsmlog.WithLog(ctx, log.NSMLogger(logger)) // allow NSM logs

but trace logs are not formatted so I guess NSM uses it's own logger for trace.

Some thoughts about "subsystems"
These should be used with care (if used at all). It does not help any one (developers or users) to just make them up. IMO the only two real subsytems that make sense are bird and nfqlb. If we catch log printouts from those and use a "logger" to re-emit them in our choosen format (as we should IMO), then a "subsystem" entry shall be used.

I have removed all conversion to structured logging in Meridio code and made this PR a pure add-on.
I would like a fast review/approval to allow independent and parallel conversion to structured logging of Meridio code.

The usage of the log package is removed from this PR but an example output can be found in https://github.com/Nordix/Meridio/pull/275#issuecomment-1238355515.


AzureCLI: ##[error]Script failed with error: ERROR: command authoring error for 'account set': 'subscription' conflicting option string: --subscription

##[debug]Processed: ##vso[task.issue type=error;]Script failed with error: ERROR: command authoring error for 'account set': 'subscription' conflicting option string: --subscription%0A

Debug logs
7.txt

This is unexpected. Can you verify if the service connection is valid. To do so, you can go to
Project Settings -> Service Connections -> Choose the Service Connection being used in the task -> Verify connection
Let me know if it is successfully validated.
Also can you let us know, what type of agent pool you were using, private or some hosted agent pool ?

i tried both private and hosted agent, same errors.

Okay, and is the service connection verified to be working.

This seems to be a problem with the specific version of az cli tool: 2.0.46, this is quite an old version released on nov 6, 18. The hosted ubuntu agent pools should have a much latest version 2.0.68.
Can you try using a updated tool version, and see if it unblocks you ? Like 2.0.68
FYI I could see some fixes regarding --subscription parameter in 2.0.48 version: https://docs.microsoft.com/en-us/cli/azure/release-notes-azure-cli?view=azure-cli-latest#core-14

The probvlem was because 2.0.46 version (faulty) was being explicitly installed and thus casuing the issue. This was resolved by explicitly installing 2.0.49 or above version.

hi hiyadav,
SO solution is to edit this line :
pip install azure-cli==2.0.46
which is inside environment_setup/install_requirements.sh


Use new pypolyclip function name

This should not be merged until a new pypolyclip is released on PyPI.
https://pypi.org/project/pypolyclip/#history
Tests are not going to pass because the tox test env will be installing the 0.1a version of pypolyclip.

pypolyclip 1.0.0 is released.  This PR is ready for review.


Upgrade rustls-pemfile and tokio-rustls

@gustavowd thanks for contributing! Would you mind to run cargo fmt and also fix the tests?

In order to compile the aws-lc-sys v0.13.3 library, that is request for the new version of rustls i have to install some packets in ubuntu. I don´t now how to do this in the autotest. This are the packets:
sudo apt install bindgen cmake libclang-dev


hyprctl switchxkblayout lagging

Regression?
Yes
System Info and Version
 System/Version info
Hyprland, built from branch main at commit 99088eaed806d9268967baf09bc09cdb987c5357  (compositor: simplify getWindowFromSurface).
Date: Wed Jul 24 10:07:28 2024
Tag: v0.41.2-84-g99088eae, commits: 4970

flags: (if any)

System Information:
System name: Linux
Node name: ***
Release: 6.10.0-arch1-2
Version: #1 SMP PREEMPT_DYNAMIC Mon, 22 Jul 2024 17:28:23 +0000

GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] [8086:9a49] (rev 01) (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux"

Description
Here is the video where layouts don't match what hyprctl shows and what I see when type.
This bug seems to appear randomly
How to reproduce
I use hyprctl switchxkblayout ACTIVE_KEYBOARD_NAME INDEX to switch layouts
and
hyprctl devices -j | jq '.keyboards.[] | select(.main == true).active_keymap' to see active keymap,
I'm typing to see actual keymap (Latin or Cyrillic)
Index 0 - us_en
Index 1 - uk Cyrillic
watch command is helpful to automate getting results
# hyprland.conf
input {
  kb_layout = us,ua
  kb_variant =
  kb_model =
  kb_options = grp:alt_shift_toggle,caps:backspace
  kb_rules =
}

Crash reports, logs, images, videos
https://github.com/user-attachments/assets/3dbc833a-71ee-42cd-a659-2b65e57aede3
watch "hyprctl devices -j | jq '.keyboards.[] | select(.main == true).active_keymap'"
hyprctl switchxkblayout keychron-keychron-k2 1

can you bisect if this is a regression

I rolled back to v0.41.1, and it is not affected.
v0.41.2 is affected for sure

You're using default watch refresh rate which is every 2s. In fact, watch can't go faster than every 100ms. I don't know why it works for you on 0.41.1 better.
Trying to recreate the same demo on e728e56cbc6af0a9be1276b2cf8e019a894016e7 (0.41.2 pre aquamarine):
https://github.com/user-attachments/assets/121de973-7582-49de-9694-f9b7ed439d88
Seems to be working fine.
while true; do
    hyprctl devices -j | jq '.keyboards.[] | select(.main == true).active_keymap';
    sleep 0.01s; # because watch sucks
done

Did aquamarine break something?
Here is 33a5c8ce325e1657ec5571b57e05c6378706f4cd with latest aquamarine/hyprutils/hyprlang (disregard the comment on the right, it was recorded out of order):
https://github.com/user-attachments/assets/3f02aad0-4877-494c-bded-cd8e261a8d14
And here I set russian layout for the left window and english for the right, via my hyprland-per-window-layout.
https://github.com/user-attachments/assets/d8cb7e20-bc90-4971-a749-18a659516da8
I was trying to input w and ц (which are the same physical key) as fast as I could to show that layout actually changes, and that hyprctl reflects it correctly. And then I was switching as fast as possible to try to break it.
Seems to work fine?
But notice how waybar's layout is broken.

You are trying to do it differently, I'm using Indexes when switching. Also your config is different. I will try to experiment with this.
2 sec is fast enough for video to see that the layout was changed, I don't make an effort to break it with fast moves

@MahouShoujoMivutilde I tried your way and your config on v0.41.2-84-g99088eae
device {
    name = keychron-keychron-k2
    kb_layout = us,ru
    kb_options = caps:escape,grp:alt_shift_toggle
}

and it reproduced as well:
https://github.com/user-attachments/assets/0769b3a6-12ac-4e25-ab32-c1528920a08f
watch -n 0.5 "hyprctl devices -j | jq '.keyboards.[] | select(.main == true).active_keymap'"
When I'm using Alt+Shift it actually changes the layout well, but with hyprctl switchxkblayout keychron-keychron-k2 next - some mess

Looks like I have a somewhat similar or related problem.
"hyprctl switchxkblayout at-translated-set-2-keyboard next
doesn't switch the keyboard, although
input {
  kb_layout = us,ru
  kb_variant =
  kb_model =
  kb_options = grp:alt_shift_toggle
  kb_rules =

in my config allows me to switch the layouts with shift+alt key combination.

@coffebar sorry, it was late, and I didn't notice that you checked with typing too.
Tested it some more. This is on aquamarine 0.1.0_r157.g0ab8ffa-1 and Hyprland 33a5c8ce325e1657ec5571b57e05c6378706f4cd
When layout is defined in general:

switching via hotkey - events are emitted, active keymap in hyprctl devices -j is updated, and the right letters are used.
via hyprctl switchxkblayout - events are not emitted, active keymap is updated, and right letters are not used (last layout switched by hotkey used).

When layout is defined per device:

layout can be switched by hotkey - events are emitted, active keymap in hyprctl devices -j is updated, and right letters are used.
via hyprctl switchxkblayout - events are not emitted, active keymap is updated, and right letters are not used (last layout switched by hotkey used).

WTF? It worked just this night. More so, it worked when I first booted just now.
But, for both general and per device:

When switchxkblayout doesn't actually switch - you can press Shift (and nothing else, it's not a grp: hotkey), and then events will be emitted, and layout will change for real.

I kid you not, I discovered this by trying to write 'WTF' to mark the moment of it glitching out in recording.
Okay, so something fucky with the state is going on.
I'll try to reboot and recreate my original demos, see at what point they break.

You're right, it's broken. So why did it work for me earlier?
Modifier keys! Super | Ctrl | Shift | Alt.
I was holding Super to switch between windows. It forced proper layout updates like the Shift did, above.
In the first comment, you say that its "random".
My guess is that you're experiencing this issue with your layout switcher, and you too switch windows using one of the mod keys, and sometimes you don't hold it long enough for it to manage to switch layout for real.
So it is a problem that didn't happen before, it's just that it can be weirdly worked around by holding mod keys longer, so I didn't notice it initially.

Here I switch layout via hotkey a few times, type to show that it works, and then use hyprctl to switch to russian, type to check, it didn't work, and then I press Super and it changes layout for real.
https://github.com/user-attachments/assets/2e2db561-3618-43b8-814d-bd18618916dd

Alright, I've tried to recreate what's going on when you press mod keys, so here is the patch that """fixes""" the issue.
Patch

diff --git a/src/devices/Keyboard.cpp b/src/devices/Keyboard.cpp
index 0a8f6b57..48159339 100644
--- a/src/devices/Keyboard.cpp
+++ b/src/devices/Keyboard.cpp
@@ -38,6 +38,15 @@ CKeyboard::CKeyboard(SP<Aquamarine::IKeyboard> keeb) : keyboard(keeb) {
             .state   = E.pressed ? WL_KEYBOARD_KEY_STATE_PRESSED : WL_KEYBOARD_KEY_STATE_RELEASED,
         });

+        // updateModifiersState(); // not enough
+
+        keyboardEvents.modifiers.emit(SModifiersEvent{
+            .depressed = modifiersState.depressed,
+            .latched   = modifiersState.latched,
+            .locked    = modifiersState.locked,
+            .group     = modifiersState.group,
+        });
+
         updateXkbStateWithKey(E.key + 8, E.pressed);
     });

It probably should be more concrete, like seeing what actually unfucks the layout during the processing of modifiers and doing that. At least it doesn't seem to break anything.
I would investigate further, but I don't really have an environment for C++ set up to do all this "go to references" etc, this is really just courtesy of ripgrep.

The patch in action:
Defined per device
https://github.com/user-attachments/assets/10a86769-c53e-49a1-908e-2ca1360739c7
Defined in global input
https://github.com/user-attachments/assets/4c16dcbb-18ab-4c64-9bb2-b8a7c582e63d
Now, witch the patch, on hyprctl layout switching:

layout is really changed
event is emitted, as it should
active keymap updated in hyprctl devices

Never mind, found a better place to put it, here is the patch:
Details

diff --git a/src/devices/IKeyboard.cpp b/src/devices/IKeyboard.cpp
index 09a18477..e3517bf1 100644
--- a/src/devices/IKeyboard.cpp
+++ b/src/devices/IKeyboard.cpp
@@ -325,6 +325,13 @@ void IKeyboard::updateModifiers(uint32_t depressed, uint32_t latched, uint32_t l
     if (!updateModifiersState())
         return;

+    keyboardEvents.modifiers.emit(SModifiersEvent{
+        .depressed = modifiersState.depressed,
+        .latched   = modifiersState.latched,
+        .locked    = modifiersState.locked,
+        .group     = modifiersState.group,
+    });
+
     updateLEDs();
 }

Now, with the patch, on hyprctl layout switching:

layout is really changed
event is emitted, as it should
active keymap updated in hyprctl devices

https://github.com/user-attachments/assets/9d74701b-e993-4233-9d05-8870b0cb5012
(sleep 1s so I can see that it changes because of hyprctl request, and nothing else)
Seems to just work at this point?

Applied this patch, seems to work. Did you figure out what happened to broke it?

It seems earliest version of IKeyboard::updateModifiers()
https://github.com/hyprwm/Hyprland/blame/7dee974be8915864e05e1b3cc8bb3eb3fdb7fc90/src/devices/IKeyboard.cpp#L290-L300
didn't ever emit event (which, apparently, fixes layout somewhere down the line).
This function, at least without some extra effort to find its earlier variations unseen by git blame, only appears with aquamarine.
So, migration to aquamarine broke it.
I didn't bisect for this exact reason - suspected it'll come down to that anyway.

Something is broken here after the update v0.42.0-73-g1ea47950 AUR
When I'm using hyprland-per-window-layout - my layouts go crazy

What's the version you upgraded from, that worked?
I'm on v0.42.0-65-g66586c38 and hyprctl switchxkblayout works fine, my script works, your app works too.

After some debugging I can say that it's related to config autoreload.
switchxkblayout seems to be fine. Is maintaining the correct hashtable mapping windows to layouts right after config reload the issue here?
Recently I noticed that focused window changes after reload, if you had multiple windows opened - it always focuses window under the cursor for me (just checked with floating windows to make sure); mouse is also centered after reload.
Maybe what's happening is that right after reload events are messed up...
I also did https://github.com/hyprwm/Hyprland/pull/7486 that influences mod state after reload (if numlock_by_default is on) and thus emits the same (internal) event #7070 added, but that shouldn't matter, I think.
Let's see.
Details

activewindow>>foot,~ - zsh
activewindowv2>>562804a873e0
activelayout>>logitech-usb-keyboard,Russian
activelayoutv2>>logitech-usb-keyboard\,Russian
# ❗Switched to russian, and running hyprctl reload in 562804a873e0 window,
#  which is at the side, with 5628057fea20 at the center
activelayout>>power-button,English (US)
activelayoutv2>>power-button\,English (US)
activelayout>>power-button-1,English (US)
activelayoutv2>>power-button-1\,English (US)
activelayout>>logitech-usb-keyboard,English (US)           # ❗lost right layout for this window here
activelayoutv2>>logitech-usb-keyboard\,English (US)
activelayout>>logitech-usb-keyboard-consumer-control,English (US)
activelayoutv2>>logitech-usb-keyboard-consumer-control\,English (US)
activelayout>>logitech-usb-keyboard-system-control,English (US)
activelayoutv2>>logitech-usb-keyboard-system-control\,English (US)
activelayout>>eee-pc-wmi-hotkeys,English (US)
activelayoutv2>>eee-pc-wmi-hotkeys\,English (US)
configreloaded>>
activewindow>>foot,~/projects/installed/coffebar-hyprland-per-window-layout/target/release - zsh
activewindowv2>>5628057fea20
activelayout>>logitech-usb-keyboard,English (US)   # ❗❗❗why again, and after automatic focus change at that?
activelayoutv2>>logitech-usb-keyboard\,English (US)ac

The layout is still not preserved when numlock_by_default = no ... because I forgot about it in stuck mods MR.
But when it is yes it was preserved anyway (before my MRs), so probably not the cause here - overall, layout-related behavior there didn't change.
Details

activewindow>>foot,~ - zsh
activewindowv2>>562804a873e0
activelayout>>logitech-usb-keyboard,Russian
activelayoutv2>>logitech-usb-keyboard\,Russian
# ❗Switched to russian, and running hyprctl reload in 562804a873e0 window (at the side), 5628057fea20 (center)
activelayout>>power-button,English (US)
activelayoutv2>>power-button\,English (US)
activelayout>>power-button-1,English (US)
activelayoutv2>>power-button-1\,English (US)
activelayout>>logitech-usb-keyboard,Russian
activelayoutv2>>logitech-usb-keyboard\,Russian        # ❗right layout for focused window is preserved...
#                                                                                but focus is already changed
activelayout>>logitech-usb-keyboard-consumer-control,English (US)
activelayoutv2>>logitech-usb-keyboard-consumer-control\,English (US)
activelayout>>logitech-usb-keyboard-system-control,English (US)
activelayoutv2>>logitech-usb-keyboard-system-control\,English (US)
activelayout>>eee-pc-wmi-hotkeys,English (US)
activelayoutv2>>eee-pc-wmi-hotkeys\,English (US)
configreloaded>>
activewindow>>foot,~/projects/installed/coffebar-hyprland-per-window-layout/target/release - zsh
activewindowv2>>5628057fea20                                 # and now it actually noticed that focus changed
# ❗no extra activelayout events

Even if layout was always preserved (not only when numlock_by_default = yes) on reload, it'll still be a problem when you have:

focused window with layout X
another that will be under cursor (should it be centered) with saved layout Y

Layout X will redefine layout Y for this other window on reload.
But, if layout is not preserved - it'll be redefined even if it's a single window on workspace.
But focus shouldn't change at all on reload. I don't yet understand why it does.
It all comes down to it.

Hold up.
Basic stuff.
Sometimes, somehow switchxkblayout doesn't actually change the layout right after reload when its inside (your) hyprland-per-window-layout. I triggered it once, and can't reproduce anymore. Idk.
Is this is what you mean? Can you give me a way to reproduce it?

My app runs hyprctl devices -j on startup and see this:
{
    "mice": [

    ],
    "keyboards": [

    ],
    "tablets": [

    ],
    "touch": [

    ],
    "switches": [

    ]
}

However, when I run this command later, it shows actual devices.

Ah, that.
That's an unfortunate change that I noticed too, but I don't know what caused it.
I didn't bother investigating it, I just added the back-off strategy on my script's init - devices are queried up to 3 times, until the keyboard is found, with progressively longer sleep at each failure.

Also noticed that main in devices is unreliable at startup.
If layout configured in general input, at hyprland's launch at first there is nothing in devices, then eee-pc-wmi-hotkeys (for me) has main: true, and only then my actual keyboard.


Skip TextBody or HTMLBody if empty.

A few problems with this one, the template actually should be:
{{with .TextBody}}--===============284fad24nao8f4na284f2n4==
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

{{.}}{{end}}{{with .HTMLBody}}--===============284fad24nao8f4na284f2n4==
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

{{.}}{{end}}
--===============284fad24nao8f4na284f2n4==--

In your branch there's a missing } and this doesn't even start. And when the {{with .HTMLBody}} is on a separate line it actually adds an extra newline when TextBody is missing. Newlines in SMTP are meaningful, which is why this template is so ugly to begin with.
In addition to that, I'd like to ask why you'd like to add this "feature". It's very good practice to send both an HTML body and a plain text body so that various e-mail clients can open it without any problems. When I built this that was what I had in mind, thoughts on that?

Stale.


position resets after adding an extra :hover animation

I'm adding an extra :hover to my class,
however it fires off, but resets automatically when finshed.
(Example scss)
.nudge-up {
  @include transition(transform .2s ease-in-out);
  &:hover {
    @include transform(translate(0px, -5px));
  }
}

i wish for it to stick until i loose focus, when i remove my WOW js init, this is the desired behavour.

ok, i've solved my problem, could this be considered a bug?
.nudge-up {
  @include transition(transform .2s ease-in-out);
  &:hover {
    @include animation(0);
    @include transform(translate(0px, -5px));
  }
}

should it automatically stop any animations after finished? or would this be an animate.css issue?

Afaik it's a WOW 'issue' as it doesn't remove the animated class once the animation is complete. For now use your fix, I'll see if I can fix this and I'll do a pull request.
Would you mind giving it a spin when I fixed it? :+1:

ok thansk, and of course :)

@modstudio please see my commit / pull request. Should have fixed your issue. I tried removing the animated class after animation has ended in my browser first, after that hovering with a transform worked correctly so now I included it in WOW.
https://github.com/mdeboer/WOW/commit/8aca072d0df3a68b7fb0760a9e4a2db5a23c56ca

Great. Works fine. It's funny becauses that error only shows up in Safari on my system.. Firefox seems figure it all out... thanks for the quick fix!


Consider using koin context isolation

Instead of the custom model we should use context isolation to provide DI per simulation
https://insert-koin.io/docs/reference/koin-core/context-isolation/

Alternatively, we could bind the koin scope to the thread.
Constraining the koin scope to the is unlikely to work because of the common Environment().apply pattern (unless we would overload apply itself.


pgbouncer with vault working and almost completely automated

pgbouncer is now working correctly with vault and can scale up replicas. The only issue I've been having now is creating the function in template1 in an automated way as I am doing for the postgres db as I can't hold onto a connection to template1 as then we won't be able to create dbs as there should be no connections to template1.
My initial thought was to use dblink which is why I have created a custom docker image to include dblink extension however postgresxl doesn't yet support dblink.
For the time being it isn't really a big problem as it just means the following must be run on template1 db manually
DO $FUNC1$ BEGIN     IF NOT EXISTS (SELECT 1 FROM information_schema.schemata WHERE schema_name = 'connection_pool') THEN         CREATE SCHEMA connection_pool;         GRANT USAGE ON SCHEMA connection_pool TO connection_pool;         CREATE OR REPLACE FUNCTION connection_pool.lookup (            INOUT p_user     name,            OUT   p_password text         ) RETURNS record            LANGUAGE sql SECURITY DEFINER SET search_path = pg_catalog AS         $FUNC2$ SELECT usename, passwd FROM pg_shadow WHERE usename = p_user $FUNC2$;         REVOKE EXECUTE ON FUNCTION connection_pool.lookup(name) FROM PUBLIC;         GRANT EXECUTE ON FUNCTION connection_pool.lookup(name) TO connection_pool;     END IF; END $FUNC1$;
Ideally in the long term it would be nice to be able to include an init script as a parameter to the helm chart somehow.
I need extensions for my use anyway so here is the image if anyone else needs it as an example https://hub.docker.com/r/sstubbs/pgxl I have asked if these can be included in the original image https://github.com/pavouk-0/postgres-xl-docker/issues/42

pgbouncer is now working correctly with vault and can scale up replicas. The only issue I've been having now is creating the function in template1 in an automated way as I am doing for the postgres db as I can't hold onto a connection to template1 as then we won't be able to create dbs as there should be no connections to template1.
My initial thought was to use dblink which is why I have created a custom docker image to include dblink extension however postgresxl doesn't yet support dblink.
For the time being it isn't really a big problem as it just means the following must be run on template1 db manually
DO $FUNC1$ BEGIN IF NOT EXISTS (SELECT 1 FROM information_schema.schemata WHERE schema_name = 'connection_pool') THEN CREATE SCHEMA connection_pool; GRANT USAGE ON SCHEMA connection_pool TO connection_pool; CREATE OR REPLACE FUNCTION connection_pool.lookup ( INOUT p_user name, OUT p_password text ) RETURNS record LANGUAGE sql SECURITY DEFINER SET search_path = pg_catalog AS $FUNC2$ SELECT usename, passwd FROM pg_shadow WHERE usename = p_user $FUNC2$; REVOKE EXECUTE ON FUNCTION connection_pool.lookup(name) FROM PUBLIC; GRANT EXECUTE ON FUNCTION connection_pool.lookup(name) TO connection_pool; END IF; END $FUNC1$;
Ideally in the long term it would be nice to be able to include an init script as a parameter to the helm chart somehow.
I need extensions for my use anyway so here is the image if anyone else needs it as an example https://hub.docker.com/r/sstubbs/pgxl I have asked if these can be included in the original image pavouk-0/postgres-xl-docker#42

Hi
I agree on the init script though there is another way. Have you considered init containers
?
As for the init script, I would love to do that but would need to think how and where... I think doing that on the gtm is best.
Best

An init container does make the most sense. I was trying to think of another way as I'm already using everpeace/curl-jq as an init container for the pgbouncer deployment and there doesn't seem to be a way of ordering init containers.
I was thinking of just creating container like everpeace/curl-jq but adding in the postgres client. I guess I'lll just do that for the time being so this is completely automated. I hate having to remember small little quirks like running this sql and I don't really want to add it to a readme as it doesn't feel like the right way of doing things.

Another small issue. I recommend separating any script files from the main script. This to allow for code clarity.
See here how to use sed with template files:
From: https://stackoverflow.com/questions/13043344/search-and-replace-in-bash-using-regular-expressions
See example:
#!/usr/bin/env bash

function replace_with_env(){
    # replace any {{ENV_NAME}} with its respective env value.
    value="$1"

    # the regular expression matches {{ [SOME NAME] }}
    re='(.*)\{\{\s*(\w+)\s*\}\}(.*)'

    # search for all replacements.
    while [[ "$value" =~ $re ]]; do
        env_name=${BASH_REMATCH[2]}
        value="${BASH_REMATCH[1]}${!env_name}${BASH_REMATCH[3]}"
    done

    echo "$value"
}

export LAMA_1="this is an env1"
export LAMA_2="this is an env2"

file_data=$'{{LAMA_1}} and {{ LAMA_2 }}. \n Current path is:\n {{PATH}}'
result_string=$(replace_with_env "$file_data")
echo "$result_string"

An init container does make the most sense. I was trying to think of another way as I'm already using everpeace/curl-jq as an init container for the pgbouncer deployment and there doesn't seem to be a way of ordering init containers.
I was thinking of just creating container like everpeace/curl-jq but adding in the postgres client. I guess I'lll just do that for the time being so this is completely automated. I hate having to remember small little quirks like running this sql and I don't really want to add it to a readme as it doesn't feel like the right way of doing things.

Hum.. another thing you can add is a wait for port script that would wait until the db has loaded.
U can use pg_isready with the specified host and wait until it up. That is what I was going to do with the startup script.

ok sure I've cleaned up the script a bit like you suggested. Let me know if there is anything else that you can suggest regarding that. Will now do the new init container before this can be merged.

OK I've refactored some of the script as you suggested. The only thing is I'm creating helmfile.yaml from helmfile_template.yaml and doing the same for the values. I'm sure there is a cleaner way of doing this. Can you think of a way to perhaps pass these into helmfile sync without needing an extra file?
If not I think this is fine to be merged for now.
Regarding the sql vault takes a json array and uses it''s own templating. I think the bulk of this sql should be added to the init of pgxl itself. Then only the following will remain here.
"CREATE ROLE \"{{name}}\" WITH LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expiration}}' IN ROLE connection_pool;"
What would be nice in the pgxl init sql value would be an array of arrays in json something like this:
[[DATABASE_NAME, SQL]]
Then within pgxl it runs psql on each of these. I am adding jq now to the image on dockerhub and will start working on a prototype of this.

OK I've refactored some of the script as you suggested. The only thing is I'm creating helmfile.yaml from helmfile_template.yaml and doing the same for the values. I'm sure there is a cleaner way of doing this. Can you think of a way to perhaps pass these into helmfile sync without needing an extra file?
If not I think this is fine to be merged for now.
Regarding the sql vault takes a json array and uses it''s own templating. I think the bulk of this sql should be added to the init of pgxl itself. Then the only sql that will remain here is.
"CREATE ROLE \"{{name}}\" WITH LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expiration}}' IN ROLE connection_pool;"
What would be nice in the pgxl init sql value would be an array of arrays in json something like this:
[[DATABASE_NAME, SQL]]
Then within pgxl it runs psql on each of these. I am adding jq now to the image on dockerhub and will start working on a prototype of this.

Hi, yea there is a way. Helmfile sync has these options:
   --set value                   additional values to be merged into the command
   --values value                additional value files to be merged into the command
   --concurrency value           maximum number of concurrent helm processes to run, 0 is unlimited (default: 0)
   --args value                  pass args to helm exec
   --skip-deps helm repo update  skip running helm repo update and `helm dependency buil

That said, this is usually not what I do. I prefer to write files for everything into the temp directory by using mktemp, apply the file, and then delete it. This allows for cleaner templeting.
As for the sql, since this is experimental, I am fully ok of leaving it in the bash. You can separate it by changing the regular expression and use a different template for replacement. I.e.
{{{ ENV_NAME }}} instead of {{ENV_NAME}}. But that is ok. I will add the sql init script soon (2-3 weeks, maybe a month) and that should not be an issue anymore.


coursier-shared depends on org.scala-sbt %% sbt

As I was integrating coursier with sbt-librarymanagement, I noticed that coursier-shared depends on
org.scala-sbt %% sbt, so the entirety of sbt.
This creates circular dependency as the dependency chain is:
sbt -> librarymanagement -> librarymanagement-coursier -> coursier-shared -> sbt ...

This creates (I think) a weird compilation issue: https://github.com/sbt/librarymanagement/pull/190#issuecomment-358897786
I believe a dependency on librarymanagement would be enough, however I'm unsure where exactly it is defined. Does it come from the recently added sbt-compat?

Ok, I think I've removed all the sbt._ types from coursier-shared.
After the next release, I'm going to try it out again. 1.0.1 didn't solve all of the compilation/linking problems.

I've build sbt/librarymangement with 1.0.2 and I'm nearly there.
I missed a single sbt._ import it seems:
[error] java.lang.NoClassDefFoundError: sbt/package$
[error] 	at coursier.ToSbt$.$anonfun$updateReport$1(ToSbt.scala:253)
[error] 	at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234)
[error] 	at scala.collection.MapLike$MappedValues.$anonfun$foreach$3(MapLike.scala:253)
[error] 	at scala.collection.TraversableLike$WithFilter.$anonfun$foreach$1(TraversableLike.scala:789)
[error] 	at scala.collection.immutable.HashMap$HashMap1.foreach(HashMap.scala:231)
[error] 	at scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:462)
[error] 	at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:788)
[error] 	at scala.collection.MapLike$MappedValues.foreach(MapLike.scala:253)
[error] 	at scala.collection.TraversableLike.map(TraversableLike.scala:234)
[error] 	at scala.collection.TraversableLike.map$(TraversableLike.scala:227)
[error] 	at scala.collection.AbstractTraversable.map(Traversable.scala:104)
[error] 	at coursier.ToSbt$.updateReport(ToSbt.scala:223)

I will open a PR in the next few days.

FWIW, I also ran into an issue resolving sbt-compat:
 [error]     com.dwijnand:sbt-compat;sbtVersion=1.0;scalaVersion=2.12:1.2.5:
 [error]         not found:```

I downgraded to version 1.0.0 and the error went away. I saw the error with 1.0.1 and 1.0.2

Looking forward to your PR @leonardehrenfried !

The repo where sbt-compat is hosted was down a few days ago: https://twitter.com/scala_sbt/status/960928916750917632
I guess this happend more recently, correct?

Could you try to add Resolver.sbtPluginRepo("releases") to your resolvers?

Thanks @leonardehrenfried  -- I was able to use 1.0.2

@dqdinh that should actually work out of the box.  This works out of the box. I misread the README and put addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.2") into .sbt/1.0/global.sbt instead of .sbt/1.0/plugins/plugins.sbt.
After resolve an error related to https://github.com/coursier/coursier/issues/450#issuecomment-334863786 I was able to run it out of the box. This was my mistake. Thanks for responding so quickly.

The 1.1.0-M1 release can now be compiled with sbt/librarymanagement.
Thanks @alexarchambault!


Fix high CPU load

This PR fixes #50 by using a channel instead of a boolean flag that is polled in a fixed interval.
Currently all updates done by the file watcher will only be applied before displaying the window, which wasn't the case before, but I think it is still sufficient for the current usecase.

I wasn't aware of this feature and it seems like a regression that can be fixed by handling the pinnedTrigger in a similar way as it is the case with the signals. With this patch the window needs to be closed and reopened for the changes to appear.
Maybe it would also be a good idea to handle the pinned items differently without destroying & recreating the container for the buttons, but I think that should be part of a different issue / PR.

Maybe it would also be a good idea to handle the pinned items differently without destroying & recreating the container for the buttons

Setting a filter function would be the natural way, but it's not implemented in gotk3. In this use case it has little to none effect on overall performance, so I don't care.


UKI: encryption of additional partitions

agent has trickled down to framework, closing this as next version will have the newer framework and this works in there

I'm re-opening to add docs for this.

Docs for this are done along https://github.com/kairos-io/kairos-docs/pull/133/


Add text translation capabilities

This PR adds a text translation mechanism to the starter-projects.  It is heavily based upon the CFM translation model seen here:
https://github.com/concord-consortium/cloud-file-manager/blob/master/src/code/utils/translate.js
I tested this in Chrome, Firefox, Edge, Safari.  Works well in all cases by both changing the lang property in index.html or by changing the browser settings.
Notes on implementation:

translation json files are added to utils/lang
translation is handled in utils/lang/translate.ts and can be added by importing the translate function and calling the function with the appropriate translation key:
t("INTRO.HELLO")
I'm not crazy about the translation keys using a tilde, but this was the approach used in the CFM, and I wanted to be consistent. Also it makes it much easier to search for text keys.  Does anyone have an opinion on this?
EDIT: I changed the code and removed the tilde
by default we choose the language by first looking at the HTML DOM lang property of the root element of the document and then by looking at first valid language specified by the browser.  This is the technique used by the CFM, and I think it is fine as long as we know to remove/update/change the lang="en" attribute from index.html.  I'm also open to switching the check and looking at the browser specified language first.
EDIT: I think we should leave the checks as is but remove the lang property in index.html so that the translation works out of the box by changing browser settings.
I made the decision to remove a couple of the optional parameters (vars, lang) that were used in the CFM translate function seen here:
https://github.com/concord-consortium/cloud-file-manager/blob/master/src/code/utils/translate.js#L77
I'm open to bringing these params back, but it seemed that they added extra complexity to a function that at least for a base implementation should be fairly simple.  Thoughts?
EDIT: I added all of the parameters seen in the CFM function.
I chose not to translate the intro "Hello World" text that is first displayed in the app.  I don't want users of the starter-projects to feel as if the translation is a tool that needs to be used, but rather a lightweight option that is there by default which can be used, left for future use, or removed.
EDIT: the intro hello world text is now wrapped in the translation function.  Users of the starter-projects can remove the translation if they don't want it, but it is in use by default.

Response to notes on implementation (prior to review):

I'm not crazy about the translation keys using a tilde, but this was the approach used in the CFM, and I wanted to be consistent. Also it makes it much easier to search for text keys. Does anyone have an opinion on this?

I don't recall if there was any particular reason for the tilde (I think it predated my involvement). I'd be fine with eliminating it and just using the uppercase constants.

by default we choose the language by first looking at the HTML DOM lang property of the root element of the document and then by looking at first valid language specified by the browser. This is the technique used by the CFM, and I think it is fine as long as we know to remove/update/change the lang="en" attribute from index.html (I added a comment in translate.ts about this). I'm also open to switching the check and looking at the browser specified language first.

I think this may have been a response to use with CODAP/SproutCore which handles localization by generating separate language-coded static HTML pages for each language. In that context, once you've been directed to a static HTML page coded to a particular language it's better to be consistent. If our HTML pages aren't language-coded then it shouldn't matter. If we believe that our HTML pages should be language-coded but then the browser language should override the page we can change it, but I suspect it won't really matter.

I made the decision to remove a couple of the optional parameters (vars, lang) that were used in the CFM translate function seen here:
https://github.com/concord-consortium/cloud-file-manager/blob/master/src/code/utils/translate.js#L77
I'm open to bringing these params back, but it seemed that they added extra complexity to a function that at least for a base implementation should be fairly simple. Thoughts?

Variable replacement is critical. You can't do localization without it. (You have 2 new messages.) I don't recall the rationale for allowing the client to override the language, but maybe it had something to do with explicit language references, e.g. English: "foo", Spanish: "bar", Your Language: "baz". I'd be inclined to take the function as it's used in CFM/CODAP/Sage since that's where we've made the heaviest use of translation. Presumably, the features are there because they came up in real use cases.

I chose not to translate the intro "Hello World" text that is first displayed in the app. I don't want users of the starter-projects to feel as if the translation is a tool that needs to be used, but rather a lightweight option that is there by default which can be used, left for future use, or removed.

I understand that rationale, but I think we should make it easy to do the "right" thing while still allowing the expedient thing. I don't think it would be a bad thing if by default CC apps were set up to support localization. If someone's in a hurry and doesn't want to deal with it they can just use strings instead of t(STRING_KEY).

I think this may have been a response to use with CODAP/SproutCore which handles localization by generating separate language-coded static HTML pages for each language. In that context, once you've been directed to a static HTML page coded to a particular language it's better to be consistent. If our HTML pages aren't language-coded then it shouldn't matter. If we believe that our HTML pages should be language-coded but then the browser language should override the page we can change it, but I suspect it won't really matter.

@kswenson at present, the starter-projects does have a static language set in the HTML page (en).  If we're going to turn translation on by default then we should probably remove the static language setting (so we can actually see the translation working.  I think it's still fine to leave in the getPageLanguage test and to have it be the first thing checked to determine the language, but no language should on the page be set by default (let the engineers add it if needed).  Then we can actually see the translation working by changing the browser language.

@kswenson as per your feedback I did the following:

added parameters from the CFM example back into the translate function
turned on translation by default ("Hello World" has Spanish translation available).  In line with this, the lang property in index.html has been removed.  Users can see the translation in action by running the starter project and changing the browser setting to Spanish.

It be nice to include some doc on how to use variables in the strings. That could just be a comment in the translate.ts file.
It'd also be nice to publish this is a package so it is easier to update after someone has cloned the starter project.
But those suggestions shouldn't hold up the PR.

I added a README file that goes into more detail and shows some examples.  Should get us closer to eventually carving this out into an independent translation library/tool.

I added a comment about changing the API of the translate() function that will be easier to do now than later.

I like your ideas.  I updated the translate function.

@kswenson thanks for the readme suggestions.  I made changes and think this is finally ready to merge.


Remove era|legacy transaction view

Changelog
- description: |
    Remove `era transaction view` and `transaction view` commands. Use `debug transaction view` instead.
# uncomment types applicable to the change:
  type:
  # - feature        # introduces a new feature
  - breaking       # the API has changed in a breaking way
  # - compatible     # the API has changed but is non-breaking
  # - optimisation   # measurable performance improvements
  # - refactoring    # QoL changes
  # - bugfix         # fixes a defect
  # - test           # fixes/modifies tests
  # - maintenance    # not directly related to the code
  # - release        # related to a new release preparation
  # - documentation  # change in code docs, haddocks...

Context

Follow-up of https://github.com/IntersectMBO/cardano-cli/pull/858
Fixes https://github.com/IntersectMBO/cardano-cli/issues/843

How to trust this PR

It only removes code

Checklist

[X] Commit sequence broadly makes sense and commits have useful messages
[X] Self-reviewed the diff

I'm wondering if it's not too soon.

@Jimbo4350> what do you think?
This can clearly wait a bit more if you feel like it. It's just I like my issues' list to shrink :smile:


In FHIRPersistenceJDBCImpl connect transactionDataImpl to transaction provider framework

Currently transactionDataImpl receives transaction event callbacks from JTA UserTransaction. However, transactions in unit tests are managed differently, and so the transaction framework needs to be updated to feed similar transaction events to transactionDataImpl when executing unit tests.

@punktilious do we still need this one?

I'm going to reshape this one because there's some cleanup that we can do here because we now hold all the data collected during a transaction in the FHIRPersistenceJDBCImpl.


Update source-ip.md

Change run=source-ip-app to app=source-ip-app cleanup section
Label used for selector is app

cla signed

/test

page was updated


not working

i've installed this plugin, and configured phpcs, but it's not working at all

Can you provide some more informations, like your Operating System for example?

Can't get it to work either. I get the error message: "Failed to spawn command php php-cs-fixer. Make sure php php-cs-fixer is installed and on your PATH".
the ~/.composer is part of my PATH and the terminal allows execution of php-cs-fixer anywhere i like.
Any ideas?

+1
Changed the executable path to php-cs-fixer (installed via brew) and does not work.
I can run php-cs-fixer on my terminal, but atom can´t:

Failed to spawn command php-cs-fixer. Make sure php-cs-fixer is installed and on your PATH

I just published a new version that adds support for the phpExecutablePath, because Windows system do require it. Please update and try to use the complete path to the php-cs-fixer executable.

@andrefrcastro, @SrgSteak to get it to work with brew, you need to cat the contents of the script installed with brew install php-cs-fixer:
Check to see where it installed
which php-cs-fixer

/usr/local/bin/php-cs-fixer

Cat the script
cat /usr/local/bin/php-cs-fixer

#!/bin/sh

/usr/bin/env php -d allow_url_fopen=On -d detect_unicode=Off /usr/local/Cellar/php-cs-fixer/1.8.1/libexec/php-cs-fixer.phar $*

Paste the path for php-cs-fixer.phar in Executable Path
Go back to settings in Atom for php-cs-fixer.
/usr/local/Cellar/php-cs-fixer/1.8.1/libexec/php-cs-fixer.phar
FYI: PHP Executable Path is empty for my set up. I also installed PHP with brew.
Use the keystroke: ctrl-cmd-s
I hope this helps 8)

@gammamatrix thanks for the workaround. It works.

@gammamatrix thanks a lot for the detailed HOWTO!

@pfefferle No problem, should we put this in the FAQ?

Sure, good idea!


Support to load a single value

Currently, Jakarta Config allows for loading config into an interface
@Configuration
public interface A {
   String value();
}

The most use-cases, however, are as follows:
if (config.property('NAME1')) {
     // do something
}
if (config.property('NAME2')) {
   // do something else
}

The convenient way is to allow the possibility to load the single value as Loader.bootstrap().path("NAME1").asString().
In MP config, there is a similar notion: config.getValue("NAME1", String.class)

There are the following possibilities:

Allow just few methods: asInt(), asBoolean, asString
Allow all primitive types: boolean, byte, short, float, double, int, long, char, and String
Allow just asString() and more generic as(Class<T> type) and as(TypeToken type) - this has an advantage that later on the config could support as(UserDefinedType), but a disadvantage that we should define a way to pass convertors to the Loader.

The use-case usually checks whether the property is present. That can be implemented by:

returning null when not available
returning Optional<> (my favourite)
throwing NoSuchObjectException
implement a complementary isProperty()

In the case of Optional, it would be possible to use:
loader.path("my.property").asString().ifPresent(myProperty -> doSomething(myProperty))

Out of the discussion, should we keep load(Interface.class), or would it better be as(Interface.class) which then can be as(String.class) as well?